aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-09-29NV12Scale function and ScaleUV for packed UV plane bilinear scalingFrank Barchard
Bug: libyuv:718, libyuv:838, b/168918847 Change-Id: I3300c1e7d51407b9c3201cf52b68e2e11346ff5f Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2427868 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
2020-09-28NV12Scale function using split/merge on UV channalFrank Barchard
Bug: libyuv:718, libyuv:838, b/168918847 Change-Id: I78b27baac50f0ce955e00cb6aaf7dfe5a0cb1e3d Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2432067 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
2020-09-28ARGBSetRow_Any do memset for msanFrank Barchard
Bug: b/169296991 Change-Id: Ia000cdbca0d0d95465e09535b67775ad3b885038 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2434383 Reviewed-by: Mirko Bonadei <mbonadei@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-09-23Roll chromium_revision 5aa7e23974..4eeee82411 (807011:809748)libyuv-ci-autoroll-builder
Change log: https://chromium.googlesource.com/chromium/src/+log/5aa7e23974..4eeee82411 Full diff: https://chromium.googlesource.com/chromium/src/+/5aa7e23974..4eeee82411 Changed dependencies: * src/base: https://chromium.googlesource.com/chromium/src/base/+log/ea9d15525e..a278448812 * src/build: https://chromium.googlesource.com/chromium/src/build/+log/60f89634b9..82c761c4fc * src/ios: https://chromium.googlesource.com/chromium/src/ios/+log/f3c442d839..fd2ca05612 * src/testing: https://chromium.googlesource.com/chromium/src/testing/+log/56572a88df..39aee3c823 * src/third_party: https://chromium.googlesource.com/chromium/src/third_party/+log/9e2844b24a..31389c1539 * src/third_party/auto/src: https://chromium.googlesource.com/external/github.com/google/auto.git/+log/7eb2d47ad1..6bed859f25 * src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/534924ed9e..0de9874718 * src/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/f57e64e375..d1580d53b7 * src/third_party/freetype/src: https://chromium.googlesource.com/chromium/src/third_party/freetype2.git/+log/cb47331369..20186d1be6 * src/third_party/icu: https://chromium.googlesource.com/chromium/deps/icu.git/+log/79326efe26..aef20f06d4 * src/third_party/libjpeg_turbo: https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git/+log/8ca19625de..d5148db386 * src/third_party/robolectric/robolectric: https://chromium.googlesource.com/external/robolectric.git/+log/bd58bdd0c9..5a6468b452 * src/tools: https://chromium.googlesource.com/chromium/src/tools/+log/dfa91dac01..e11b041f6e DEPS diff: https://chromium.googlesource.com/chromium/src/+/5aa7e23974..4eeee82411/DEPS Clang version changed llvmorg-12-init-5627-gf086e85e:llvmorg-12-init-5035-gd0abc757 Details: https://chromium.googlesource.com/chromium/src/+/5aa7e23974..4eeee82411/tools/clang/scripts/update.py TBR=libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com BUG=None Change-Id: I3b66e3ded313ada58faedf287440b9d68736f3f3 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2425157 Reviewed-by: <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Commit-Queue: John Budorick <jbudorick@chromium.org>
2020-09-15Roll chromium_revision d17a413a10..5aa7e23974 (803002:807011)libyuv-ci-autoroll-builder
Change log: https://chromium.googlesource.com/chromium/src/+log/d17a413a10..5aa7e23974 Full diff: https://chromium.googlesource.com/chromium/src/+/d17a413a10..5aa7e23974 Changed dependencies: * src/base: https://chromium.googlesource.com/chromium/src/base/+log/cab0516855..ea9d15525e * src/build: https://chromium.googlesource.com/chromium/src/build/+log/2dbf41fec1..60f89634b9 * src/buildtools: https://chromium.googlesource.com/chromium/src/buildtools/+log/ff93f3ea1a..3ff4f5027b * src/ios: https://chromium.googlesource.com/chromium/src/ios/+log/fe8421a537..f3c442d839 * src/testing: https://chromium.googlesource.com/chromium/src/testing/+log/7f8ef3207a..56572a88df * src/third_party: https://chromium.googlesource.com/chromium/src/third_party/+log/7241a73925..9e2844b24a * src/third_party/auto/src: https://chromium.googlesource.com/external/github.com/google/auto.git/+log/47fc7b9f83..7eb2d47ad1 * src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/77fb6d1812..534924ed9e * src/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/a070dd18d7..f57e64e375 * src/third_party/freetype/src: https://chromium.googlesource.com/chromium/src/third_party/freetype2.git/+log/6730854c39..cb47331369 * src/third_party/libjpeg_turbo: https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git/+log/9d4f8005bc..8ca19625de * src/third_party/robolectric/robolectric: https://chromium.googlesource.com/external/robolectric.git/+log/27f73bf041..bd58bdd0c9 * src/tools: https://chromium.googlesource.com/chromium/src/tools/+log/57ec7a16d4..dfa91dac01 * src/tools/swarming_client: https://chromium.googlesource.com/infra/luci/client-py.git/+log/4c095d0417..44c13d7315 DEPS diff: https://chromium.googlesource.com/chromium/src/+/d17a413a10..5aa7e23974/DEPS Clang version changed llvmorg-12-init-4187-g33ce275f:llvmorg-12-init-5627-gf086e85e Details: https://chromium.googlesource.com/chromium/src/+/d17a413a10..5aa7e23974/tools/clang/scripts/update.py TBR=libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com BUG=None Change-Id: I7efbc55bdd19821564f478102f6bf9be7c8575e1 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2412271 Reviewed-by: <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Commit-Queue: <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
2020-09-15Fix libyuv deps autoroll and roll chromium deps.John Budorick
This includes: - fixing a handrolled raw exec-based DEPS parser that was failing to parse Str, similar to crbug.com/1106435. - rolling chromium forward by nearly a year. (The last roll that landed was crrev.com/c/1797295). This required a bunch of changes in order to be able to successfully sync, run gn, and compile: - switching the mirrors for three repositories to match chromium, which switched in crrev.com/c/2062580. - making libyuv write an empty gclient_args file - adding a few build_override gn arguments - adding nasm as a deps entry, as it's now required by libjpeg_turbo - android: - adding jdk, libunwindstack, and turbine - rolling the android sdk - rolling bazel and r8 - rolling the cipd packages managed by third_party/android_deps - adding six and requests to .vpython for the test runner - switching to memcpy in a few places to avoid SIGBUS errors on arm due to unaligned reads - linux: - checking out instrumented libraries for msan (including adding depot_tools to deps for the hook) - mac: - adding mac_xcode_version to gclient_gn_args - win: - limit mac_toolchain to checkout_mac Bug: 1063768, 1097306 Change-Id: Idd86fffcdac174fd2f7899243a56af4f1ed8077e Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2384320 Reviewed-by: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Mirko Bonadei <mbonadei@chromium.org> Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
2020-09-15libyuv: Expand is_linux to is_linux || is_chromeos.Hidehiko Abe
Currently is_linux is true on building Chrome OS, but it is planned to set to false. This is the preparation. Bug: chromium:1110266 Test: Build locally. Change-Id: Icf3445a8a828e1e1a637360363845bcca5863aca Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2400818 Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2020-08-17Fix failed unittest TestARGBQuantize.Lu Wang
Wrong stride used in the for block. Change the stride of x from 8 to 16. Change-Id: Ic0cddf8413d1bd2decf5752b7a92c16f0345f0fb Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2355693 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2020-08-12Fix two failed case after enabling msa optimization.Hao Chen
Failed case: LibYUVConvertTest.TestI400 and LibYUVPlanarTest.ARGBBlend_Unattenuated. This patch updates the I400ToARGBRow_MSA and ARGBBlendRow_MSA functions in the row_msa.cc file. Signed-off-by: Shiyou Yin <yinshiyou-hf@loongson.cn> Change-Id: Iec1a647af79be3ca1f2724802f6698deab60eac8 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2330807 Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-07-22ARGBToJ420 MMI and MSA version match C.Shiyou Yin
In commit 6cd1ff, C version has been updated. This patch update the MMI and MSA version to mach C version. Change-Id: Iea811e232f9c6019a80364d165f0255a37ce41b4 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2227755 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2020-07-16clamp C functions use compareFrank Barchard
Intel Was ARGBSubtract_Opt (1760 ms) Now ARGBSubtract_Opt (1546 ms) ARM Was ARGBAdd_Opt (1747 ms) Now ARGBAdd_Opt (1260 ms) Bug: None Change-Id: I52436f6390b6b7313f2a8820833bb4f60ae958be Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2299639 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
2020-07-13Rollback of ARGBAttentuateFrank Barchard
ARGBAttenuate AVX2 different than NEON/C Was C ARGBAttenuate_Opt (1151 ms) SSSE3 ARGBAttenuate_Opt (455 ms) AVX2 ARGBAttenuate_Opt (296 ms) Now C ARGBAttenuate_Opt (1765 ms) SSSE3 ARGBAttenuate_Opt (355 ms) AVX2 ARGBAttenuate_Opt (299 ms) BUG=b/153564664 Change-Id: I2f027339552e399b90cc5ffeffde4255e9ff175b Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2294488 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2020-06-30Remove comment from BUILD.gnMirko Bonadei
The goal of this CL is to trigger all the CI bots to ensure they have all been migrated to goma RBE. TBR=fbarchard@chromium.org Bug: None Change-Id: I201ac1852bac0d7f6a53f66a0ff56bc93096c005 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2274415 Reviewed-by: Mirko Bonadei <mbonadei@chromium.org> Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
2020-06-24Add J420AlphaToARGB and colortests for bt.709 and rec.2020Frank Barchard
Bug: libyuv:864, b/159753166 Change-Id: If6ba742a0e7c5baeab29e8b92569aee361af88e9 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2261568 Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-06-04Optimze ABGRToI420 for AVX2Frank Barchard
libyuv_test --gunit_filter=*ABGRToI420_Opt --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=1000 --libyuv_flags=-1 --libyuv_cpu_info=-1 Was SSSE3 ABGRToI420_Opt (324 ms) Now AVX2 ABGRToI420_Opt (253 ms) Bug: b/155989084 Change-Id: I4f3831e29b379be758f9d3fcb244be088bb1ca3c Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2229606 Reviewed-by: Miguel Casas <mcasas@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-06-04ARGBToI420 MMI and MSA version match C.Shiyou Yin
In commit 0b8bb6, C version has been updated. This patch update the MMI and MSA version to mach C version. Change-Id: Ib28da3629a8465990c8e2185278a95af8c27a31d Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2227754 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2020-06-04Add MirrorUVRow_MSA.Shiyou Yin
Change-Id: Ic498d1175c3f916d0101b0fd8603b5cae994138b Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2227753 Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-05-28Remove unnecessary include of convert_argbFrank Barchard
Bug: libyuv:861, b/156642185 Change-Id: I3ddbe2f7b61629ed18b6879203203a51b3700773 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2219047 Reviewed-by: Mirko Bonadei <mbonadei@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-05-27NV12ToABGR and RAW Matrix macrosFrank Barchard
Bug: libyuv:861, b/156642185 Change-Id: I5ebcff33aa1a419aa2e766f6133b349e4e658297 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2216704 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Hsiu Wang <hsiu@google.com>
2020-05-26Remove M420 and refactor NV12ToI420Frank Barchard
M420 is a row biplanar variation of NV12 supported on Microsoft webcams. The code was hardcoded to bt.601 and should be jpeg, but the format is very old and rare. Is a variation on NV12, so if someone needs it, it can be re-implemented easily. Bug: libyuv:858 Change-Id: I246167dba3c190cc76af741b8e91e58e68fde28f Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2212608 Reviewed-by: richard winterton <rrwinterton@gmail.com> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-05-20I400ToARGBMatrix Pass a color matrix to use different coefficientsFrank Barchard
32 bit Neon I400ToARGB_Opt (1937 ms) 64 bit C I400ToARGB_Opt (8957 ms) NEON I400ToARGB_Opt (2147 ms) x86 cI400ToARGB_Opt (1110 ms) AVX2 I400ToARGB_Opt (213 ms) SSE2 I400ToARGB_Opt (225 ms) Bug: libyuv:861, b/156642185 Change-Id: I96b6f4ebba6ff9c4ed8803291ce098de6f93fa4f Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2209718 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
2020-05-19YUV to RGB Matrix functions for color space supportFrank Barchard
Make all Matrix versions of conversions public. Bug: libyuv:861, b/156642185 Change-Id: Ida067c95dd041b612e2bab64dbface58b257038a Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2202748 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Chong Zhang <chz@google.com>
2020-05-13ARGBAttenuate AVX2 rewritten to match NEON/C codeFrank Barchard
Bug: 665 Change-Id: If26fb389dabbca870a0e720f5258d6c9b2cde156 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2196904 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
2020-05-08RGB565ToI420 C matches SIMD ARGB4444, RGB565 and ARGB1555 C versions mimic ↵Frank Barchard
AVX and Neon Neon move prfm after loads for all functions. Example performance improvement Was I444ToARGB_Opt (3275 ms) I444ToNV12_Opt (1509 ms) Now I444ToARGB_Opt (2751 ms) I444ToNV12_Opt (1367 ms) Bug: libyuv:447 Change-Id: I78bf797b3600084c1eceb0be44cdbc9a575de803 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2189559 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
2020-05-06ARGBToJ420 and ARGBAttenuate make C match SIMDFrank Barchard
Bug: libyuv:447 Change-Id: Ie1dd4a20fb8d5c96231dcfee9f8a0ac2edfb9bd8 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2185629 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
2020-05-06ARGBToI420 C version match SIMDFrank Barchard
Bug: libyuv:447 Change-Id: Iafb28cf635b355837caf41c26baee665642f4f95 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2181779 Reviewed-by: richard winterton <rrwinterton@gmail.com> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-05-04NV12Mirror and MirrorUVPlane functions addedFrank Barchard
HalfMergeUV AVX2 version Skylake Xeon performance for 1280x720 NV12Mirror_Any (109 ms) NV12Mirror_Unaligned (113 ms) NV12Mirror_Invert (107 ms) NV12Mirror_Opt (108 ms) NV12Mirror_NullY (19 ms) Slightly faster than comparable I420Mirror I420Mirror_Any (113 ms) I420Mirror_Unaligned (110 ms) I420Mirror_Invert (109 ms) I420Mirror_Opt (110 ms) BUG=libyuv:840, libyuv:858 Change-Id: I686b1b778383bfa10ecd1655e986bdc99e76d132 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2176066 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
2020-04-29Refine conditional compilation for MSA and MMI.Shiyou Yin
This patch is a complement for commit bed9292f2cbba2f8f9ff0f1635a8aa17a311f2f9. 1. Supplement inspection for macro HAS_***TOUV*ROW_MMI/MSA. 2. Reduce calls to function TestCpuFlag(). 3. Fix a mistake in source/convert.cc: line 1105. Change-Id: I5e7f9fe367fa0f6d1db6f7644c5b48d4ad85fedb Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2169342 Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-04-28i444tonv12_eg example programFrank Barchard
Bug: libyuv:858 Change-Id: I1b970f57a6ff6288afc8f60b2244e51bf6d30e78 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2169341 Reviewed-by: richard winterton <rrwinterton@gmail.com> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-04-28Move init process of msa after mmi.Shiyou Yin
Some processors support both MSA and MMI. when they are enabled together, MSA will be preferd. This patch move MSA initialization after MMI, so that MSA can overide MMI and be setted to effective. Change-Id: I8a52cce83ee4ec9727d47c99b287c9580329b149 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2155944 Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-04-23CPUID util add namespace if compiled as C++ Add comment about namespace for ↵Frank Barchard
C++ Remove unnecessary includes Bug: libyuv:858 Change-Id: I71473aff572752460a2f77b2b2058f78410b54af Tested: g++ -Iinclude/ -o cpuid util/cpuid.c source/cpu_id.cc Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2163353 Reviewed-by: richard winterton <rrwinterton@gmail.com> Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-04-20Use 8 bit RGB to Y coefficients for Y and YJ in MMI and MSA.Shiyou Yin
1. Switch to 8 bit precision. 2. Fix an error in the implementation of MMI and MSA. About the error: MMI and MSA implementation for RGBtoY and RGBToYJ used different precision according to the C implementation( The C version has been unified in commit fce0fed542001577e6b10f4cf859e0fa1774974e). This patch unifies the precision to 8 bit for RGBToYJ in MMI and MSA. Change-Id: Ic6a6e424d27a2f049b0c954f03174192d2beb091 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2155608 Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-04-17HalfMergeUVPlane function and optimized I444ToNV12 and I444ToNV21Frank Barchard
Bug: libyuv:858 Change-Id: Ie1f03a9acaff02ee8059cf1e5c2c2e5afcde8592 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2154608 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
2020-04-17libyuv r1749 upstream for I444ToNV12Frank Barchard
Bug: libyuv:858 Change-Id: Iacf70938ace6258e5bbd397cd78414f1025474c5 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2154331 Reviewed-by: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Mirko Bonadei <mbonadei@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-04-17Replace phoglund in libyuv OWNERS wth mbonadeiFrank Barchard
Patrik is leaving the company. Bug: None Change-Id: Ifd872700ee1f4ca5272a045513d0dcd9f5efe7d6 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2154253 Reviewed-by: Mirko Bonadei <mbonadei@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-04-16Add unittest TestLinuxMipsMsaMmi.Shiyou Yin
This unittest help to test MipsCpuCaps. Change-Id: I9e0ceeed0e5243446eaafa27e8de4c5f8163b09e Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2133314 Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-04-01Refine function MipsCpuCaps.Frank Barchard
1. Refactored function MipsCpuCaps. 2. allow msa and mmi can be enabled together. Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com> Signed-off-by: Shiyou Yin <yinshiyou-hf@loongson.cn> Change-Id: I7330d0551a6a167e4c76d37e4defcc20783f5815 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2131145 Reviewed-by: Hsiu Wang <hsiu@google.com> Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-04-01Apply clang format to libyuv sourceFrank Barchard
Bug: None Change-Id: Ifd16b59d7f0dbf4402dd5741bb89d1ec06dfaac8 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2131868 Reviewed-by: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Hsiu Wang <hsiu@google.com> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-03-31Fix prob of disabling mmi on loongson3 variant.Shiyou Yin
If 'mips_arch_variant=loongson3' is setted without 'mips_use_mmi=true', undefined reference of MMI functions will be reported. Change-Id: I2e91d63e1fa2d6c0db907aaab978227c87c991ac Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2129285 Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-03-24RGB24Mirror functionFrank Barchard
Bug: b/151960427 Change-Id: I413db0011a4ed87eefc0dd166bb8e076b5aa4b1d Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2116639 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
2020-03-23Remove HAVE_JPEG requirement from headers.Frank Barchard
JPeg is currently only enabled on Windows and Linux builds, so only call the functions if needed and available for your target platform. Bug: b/152178870 Change-Id: I99082d2d6b1440b26c4fe6840dfafe6fc9b1df9d Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2115190 Reviewed-by: Hsiu Wang <hsiu@google.com> Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-03-21Upstream all libyuv changes to version 1746 Prefetch for all arm functions - ↵Frank Barchard
helps performance at higher resolutions Make MirrorPlane function public. Bug: libyuv:855 Change-Id: I4020face6b52767ee78d81870314285d63e98b95 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2113650 Reviewed-by: Hsiu Wang <hsiu@google.com>
2020-02-24Remove unnessary .DS_Store file.Byoungchan Lee
Bug: None Change-Id: I6c6f4d06af61be2cb23f376bafd29c15edc9207b No-Try: True Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2062847 Reviewed-by: Patrik Höglund <phoglund@chromium.org> Commit-Queue: Patrik Höglund <phoglund@chromium.org>
2020-01-23RAWToJ400 and RGBToJ400 use 2 step row function for Intel. RAWToJ400 Was ↵Frank Barchard
3996 ms, now 3309. 20.7% faster. Call a row function for each row, based on ARGBToI400 code. But implement row functions as 2 step conversion. Adds the row functions: RAWToYJ, RGBToYJ, SSSE3 and AVX2 versions, and Any versions. The smaller row buffer is more cache friendly on large images. The max cache size can be configured, and is currently: // Maximum temporary width for wrappers to process at a time, in pixels. And the row buffer is SIMD_ALIGNED(uint8_t row[MAXTWIDTH * 4]); So 8192 bytes are used for the row buffer, leaving the rest for source and destination buffers. blaze-bin/third_party/libyuv/libyuv_test '--gunit_filter=*R*To?400_Opt' --libyuv_width=3600 --libyuv_height=2500 --libyuv_repeat=1000 --libyuv_flags=-1 --libyuv_cpu_info=-1 | sortms Was RAWToJ400_Opt (3996 ms) ARGBToI400_Opt (3964 ms) RGB24ToJ400_Opt (3960 ms) ARGBToJ400_Opt (3909 ms) RGBAToJ400_Opt (3885 ms) Now ARGBToJ400_Opt (4091 ms) ARGBToI400_Opt (3936 ms) RGBAToJ400_Opt (3428 ms) RGB24ToJ400_Opt (3324 ms) RAWToJ400_Opt (3309 ms) Bug: libyuv:854, b/147753855 Change-Id: Ieb65fbda94e812c737f4c3c74107354b73c4bcd2 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2016203 Reviewed-by: richard winterton <rrwinterton@gmail.com> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2020-01-16RAWToJ400 for big endian RGB to grey scale.Frank Barchard
On Pixel 3 Was BM_ConvertToGray/1280/720/3 2360958 ns 2334984 ns 2999 BM_ConvertToGray/1279/721/3 2360289 ns 2334329 ns 2994 BM_ConvertGrayTensorflowCoefficients/1280/720/3 2983296 ns 2947113 ns 2259 BM_ConvertGrayTensorflowCoefficients/1279/721/3 2871205 ns 2835359 ns 2170 Now BM_ConvertToGray/1280/720/3 2358469 ns 2334068 ns 2997 BM_ConvertToGray/1279/721/3 2364584 ns 2336892 ns 2995 BM_ConvertGrayTensorflowCoefficients/1280/720/3 281312 ns 278244 ns 25170 BM_ConvertGrayTensorflowCoefficients/1279/721/3 351310 ns 347229 ns 20217 BUG=libyuv:854 Change-Id: If2192affc2d3219e0fb824737d75b9374a25d709 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2003236 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
2019-12-09Floating point Gaussian kernelsFrank Barchard
On SkylakeX for 720p TestGaussPlane_F32 (657 ms) On Pixel3 TestGaussPlane_F32 (1787 ms) Bug: libyuv:852, b/145611468 Change-Id: I9859af1b9381621067992305727da285f82bdded Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/1949667 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Marat Dukhan <maratek@google.com>
2019-11-13Upstream minor changes. Faster tests, Faster YUV Rotate180 and MirrorFrank Barchard
Bug: libyuv:840, libyuv:849: b/144318948 Change-Id: I303c02ac2b838a09d3e623df7a69ffc085fe3cd2 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/1914781 Reviewed-by: Miguel Casas <mcasas@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2019-11-12I420ToI010 fix for missing LIBYUV_API in DLLFrank Barchard
Bug: libyuv:850 Change-Id: Ib10208955bd1b5614f9278fcbef2340bb7425888 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/1902252 Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
2019-11-06I210ToAR30 support for 422 10 bit to 10 bit RGBFrank Barchard
BUG=960620, libyuv:845, b/129864744 Change-Id: I43b152568b7f297f81624d47e56a334c127be17b Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/1901465 Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2019-11-05Add U444ToABGR, J444ToABGR, H444ToABGR, H444ToARGB and ConvertToARGB supportFrank Barchard
BUG=960620, libyuv:845, b/129864744 Change-Id: I9f80cda3be8e13298c596fac514f65a23a38d3d0 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/1900310 Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>