- 26 Oct, 2017 1 commit
-
-
Scott LaVarnway authored
Eliminates the following instruction for the x86 (64 bit) intrinsic code: movslq %esi,%rax Change-Id: I8f5ebd40726f998708a668b0f52ea7a0576befae
-
- 01 Feb, 2017 1 commit
-
-
Jingning Han authored
This commit resolves the compression performance regression in real-time encoding setting when high bit-depth mode is enabled. The current solution temporarily disables the SIMD implementations of vpx_satd, hadamard8x8, and hadamard16x16 in high bit-depth mode. The commit makes the coding results bit-wise identical between regular coding pipeline and high bit-depth at profile 0. BUG=webm:1365 Change-Id: Icfb900821733749685370460a1a5a7e07f76f4bf
-
- 25 Jul, 2016 1 commit
-
-
clang-format authored
Change-Id: I3ea3e77364879928bd916f2b0a7838073ade5975
-
- 21 Apr, 2016 1 commit
-
-
Johann authored
The order of the output structure is not currently important. BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1021 Change-Id: Ibc0006d569675db6c5060c4529f5d9e73f2e96a6
-
- 14 Apr, 2016 1 commit
-
-
Johann authored
Change-Id: Ic6b695442e319f7582a7ee8e52a47ae3e38c7298
-
- 14 Dec, 2015 1 commit
-
-
James Zern authored
Change-Id: I7bc991abea383db1f86c1bb0f2e849837b54d90f
-
- 20 Nov, 2015 1 commit
-
-
James Zern authored
the final sum may use up to 26 bits + add a unit test + disable the sse2 as the result will rollover; this will be fixed in a future commit Change-Id: I2a49811dfaa06abfd9fa1e1e65ed7cd68e4c97ce
-
- 31 Jul, 2015 1 commit
-
-
Jingning Han authored
Change-Id: If536ad31046ecd9e2ecd9c21f52f8192c8153ad7
-
- 20 Jun, 2015 1 commit
-
-
Jingning Han authored
Change-Id: Icaa643568159c4e2db24eef42090b002ae02a45e
-
- 19 Jun, 2015 1 commit
-
-
Jingning Han authored
Change-Id: If14d9f874bd0bf2c5a455982088fd70591f5ea5a
-
- 18 Jun, 2015 1 commit
-
-
Jingning Han authored
Change-Id: I75873846e6fdafbe7597a1bd0192115d2d1e9987
-
- 12 Jun, 2015 2 commits
-
-
Jingning Han authored
This commit fixes a potential integer overflow issue in function hadamard_16x16. It adds corresponding dynamic range comment. Change-Id: Iec22f3be345fb920ec79178e016378e2f65b20be
-
Jingning Han authored
Add comment to assist SIMD optimization. Change-Id: I300d5a848e6e9947e451de2a871a88940703fc9f
-
- 15 May, 2015 1 commit
-
-
James Zern authored
silences a missing declaration warning Change-Id: I59a34e1a1377cf3529b678d7ec0122bd43ab1bf1
-
- 20 Apr, 2015 1 commit
-
-
Yaowu Xu authored
Change-Id: Ib64786fcc0d6dc11c4e66f5b7f3e93b2a4fcb664
-
- 17 Apr, 2015 1 commit
-
-
Marco Paniconi authored
This reverts commit 004b9d83 Change-Id: I2f2d0bdb9368c2c07f1d29a69cd461267a3a8743
-
- 14 Apr, 2015 1 commit
-
-
Yunqing Wang authored
This reverts commit eb8c6675. The patch caused mismatch while using multi-threads. Change-Id: Icd646340af25b5d91e32f03ed3ea212e00e3e0be
-
- 13 Apr, 2015 1 commit
-
-
Marco authored
Force split on 16x16 block (to 8x8) based on the minmax over the 8x8 sub-blocks. Also increase variance threshold for 32x32, and add exit condiiton in choose_partition (with very safe threshold) based on sad used to select reference frame. Some visual improvement near moving boundaries. Average gain in psnr/ssim: ~0.6%, some clips go up ~1 or 2%. Encoding time increase (due to more 8x8 blocks) from ~1-4%, depending on clip. Change-Id: I4759bb181251ac41517cd45e326ce2997dadb577
-
- 30 Mar, 2015 2 commits
-
-
Jingning Han authored
This commit replaces the 16x16 2D-DCT transform with Hadamard transform for RTC coding mode. It reduces the CPU cycles cost on 16x16 transform by 5X. Overall it makes the speed -6 encoding speed 1.5% faster without compromise on compression performance. Change-Id: If6c993831dc4c678d841edc804ff395ed37f2a1b
-
Jingning Han authored
This commit uses Hadamard transform based rate-distortion cost estimate for rtc coding mode decision. It improves the compression performance of speed -6 for many hard clips at lower bit-rates. For example, 5.5% for jimredvga, 6.7% for mmmoving, 6.1% for niklas720p. This will introduce extra encoding cycle costs at this point. Change-Id: Iaf70634fa2417a705ee29f2456175b981db3d375
-
- 18 Mar, 2015 1 commit
-
-
Jingning Han authored
Make the C and SSE2 versions consistent. Change-Id: I03c405d22a36bd1a97480efb96dc5af230667424
-
- 03 Mar, 2015 1 commit
-
-
Jingning Han authored
Change-Id: I0a26994bf65ea224e496b09af2ce71e1a4210433
-
- 01 Mar, 2015 1 commit
-
-
Jingning Han authored
This commit replaces the SAD with variance as metric for the integral projection vector match. It improves the search accuracy in the presence of slight light change. The average speed -6 compression performance for rtc set is improved by 1.7%. No speed changes are observed for the test clips. Change-Id: I71c1d27e42de2aa429fb3564e6549bba1c7d6d4d
-
- 19 Feb, 2015 1 commit
-
-
Jingning Han authored
This commit introduces a new block match motion estimation using integral projection measurement. The 2-D block and the nearby region is projected onto the horizontal and vertical 1-D vectors, respectively. It then runs vector match, instead of block match, over the two separate 1-D vectors to locate the motion compensated reference block. This process is run per 64x64 block to align the reference before choosing partitioning in speed 6. The overall CPU cycle cost due to this additional 64x64 block match (SSE2 version) takes around 2% at low bit-rate rtc speed 6. When strong motion activities exist in the video sequence, it substantially improves the partition selection accuracy, thereby achieving better compression performance and lower CPU cycles. The experiments were tested in RTC speed -6 setting: cloud 1080p 500 kbps 17006 b/f, 37.086 dB, 5386 ms -> 16669 b/f, 37.970 dB, 5085 ms (>0.9dB gain and 6% faster) pedestrian_area 1080p 500 kbps 53537 b/f, 36.771 dB, 18706 ms -> 51897 b/f, 36.792 dB, 18585 ms (4% bit-rate savings) blue_sky 1080p 500 kbps 70214 b/f, 33.600 dB, 13979 ms -> 53885 b/f, 33.645 dB, 10878 ms (30% bit-rate savings, 25% faster) jimred 400 kbps 13380 b/f, 36.014 dB, 5723 ms -> 13377 b/f, 36.087 dB, 5831 ms (2% bit-rate savings, 2% slower) Change-Id: Iffdb6ea5b16b77016bfa3dd3904d284168ae649c
-
- 03 Dec, 2014 1 commit
-
-
Marco authored
For key frame at speed 6: enable the non-rd mode selection in speed setting and use the (non-rd) variance_based partition. Adjust some logic/thresholds in variance partition selection for key frame only (no change to delta frames), mainly to bias to selecting smaller prediction blocks, and also set max tx size of 16x16. Loss in key frame quality (~0.6-0.7dB) compared to rd coding, but speeds up key frame encoding by at least 6x. Average PNSR/SSIM metrics over RTC clips go down by ~1-2% for speed 6. Change-Id: Ie4845e0127e876337b9c105aa37e93b286193405
-
- 18 Oct, 2014 1 commit
-
-
Peter de Rivaz authored
Cherry-picked from https://gerrit.chromium.org/gerrit/#/c/71914/ (a92f987a) on highbitdepth branch. Change-Id: I6903e4e4cb57d90590725c8a1c64c23da7ae65e8
-
- 07 Oct, 2014 1 commit
-
-
Jim Bankoski authored
The concept: There's too much noise in source pixels for variance and at low bitrate the reconstructed looks nothing like the source so we have problems getting good partitionings with either. This skirts the issue by using a box blur scaled down version for variance calculations. To compare against source_var_ moved keyframe to be rd based like source_var. Change-Id: Ie3babdbfadae324b7b5a76bea192893af27f0624
-
- 06 Feb, 2014 1 commit
-
-
Dmitry Kovalev authored
Right now only IVF format is supported which is enough for example code. Other formats like y4m, webm, raw yuv will be supported later. Change-Id: I34c6f20731c1851947587ca5c589d7856b675164
-
- 24 Jan, 2014 1 commit
-
-
James Zern authored
Change-Id: I13b434b1e6621e31962b08831c3587c039368c83
-
- 17 Dec, 2013 1 commit
-
-
James Zern authored
Change-Id: Ia8789a8f864e0edc0bf94f00f6430846f86911c3
-
- 01 Nov, 2012 1 commit
-
-
Ronald S. Bultje authored
Change-Id: Ic084c475844b24092a433ab88138cf58af3abbe4
-
- 31 Oct, 2012 1 commit
-
-
Ronald S. Bultje authored
For local symbols, make them static instead. Change-Id: I13d60947a46f711bc8991e16100cea2a13e3a22e
-
- 15 Mar, 2012 1 commit
-
-
Yaowu Xu authored
This is a code snapshot of experimental work currently ongoing for a next-generation codec. The codebase has been cut down considerably from the libvpx baseline. For example, we are currently only supporting VBR 2-pass rate control and have removed most of the code relating to coding speed, threading, error resilience, partitions and various other features. This is in part to make the codebase easier to work on and experiment with, but also because we want to have an open discussion about how the bitstream will be structured and partitioned and not have that conversation constrained by past work. Our basic working pattern has been to initially encapsulate experiments using configure options linked to #IF CONFIG_XXX statements in the code. Once experiments have matured and we are reasonably happy that they give benefit and can be merged without breaking other experiments, we remove the conditional compile statements and merge them in. Current changes include: * Temporal coding experiment for segments (though still only 4 max, it will likely be increased). * Segment feature experiment - to allow various bits of information to be coded at the segment level. Features tested so far include mode and reference frame information, limiting end of block offset and transform size, alongside Q and loop filter parameters, but this set is very fluid. * Support for 8x8 transform - 8x8 dct with 2nd order 2x2 haar is used in MBs using 16x16 prediction modes within inter frames. * Compound prediction (combination of signals from existing predictors to create a new predictor). * 8 tap interpolation filters and 1/8th pel motion vectors. * Loop filter modifications. * Various entropy modifications and changes to how entropy contexts and updates are handled. * Extended quantizer range matched to transform precision improvements. There are also ongoing further experiments that we hope to merge in the near future: For example, coding of motion and other aspects of the prediction signal to better support larger image formats, use of larger block sizes (e.g. 32x32 and up) and lossless non-transform based coding options (especially for key frames). It is our hope that we will be able to make regular updates and we will warmly welcome community contributions. Please be warned that, at this stage, the codebase is currently slower than VP8 stable branch as most new code has not been optimized, and even the 'C' has been deliberately written to be simple and obvious, not fast. The following graphs have the initial test results, numbers in the tables measure the compression improvement in terms of percentage. The build has the following optional experiments configured: --enable-experimental --enable-enhanced_interp --enable-uvintra --enable-high_precision_mv --enable-sixteenth_subpel_uv CIF Size clips: http://getwebm.org/tmp/cif/ HD size clips: http://getwebm.org/tmp/hd/ (stable_20120309 represents encoding results of WebM master branch build as of commit#7a159071) They were encoded using the following encode parameters: --good --cpu-used=0 -t 0 --lag-in-frames=25 --min-q=0 --max-q=63 --end-usage=0 --auto-alt-ref=1 -p 2 --pass=2 --kf-max-dist=9999 --kf-min-dist=0 --drop-frame=0 --static-thresh=0 --bias-pct=50 --minsection-pct=0 --maxsection-pct=800 --sharpness=0 --arnr-maxframes=7 --arnr-strength=3(for HD,6 for CIF) --arnr-type=3 Change-Id: I5c62ed09cfff5815a2bb34e7820d6a810c23183c
-
- 06 Feb, 2012 1 commit
-
-
Paul Wilkins authored
This commit merges the NEWNEAR experiment such that it is effectively always on. The fact that there were changes in the threading code again highlights the need to strip out such features during the bitstream development phase as trying to maintain this code (especially as it is not being tested) slows the development cycle. Change-Id: I8b34950a1333231ced9928aa11cd6d6459984b65
-
- 09 Dec, 2011 1 commit
-
-
Yaowu Xu authored
A previous commit 76feb965 made the vp8_mode_context adaptive on a frame frame basis, this commit further made the coding context adaptive to two frame types separately. Tests on derf set showed a further small gain on all metrics: avg psnr 0.10%, glb psnr: 0.11%, ssim: 0.08% http://www.corp.google.com/~yaowu/no_crawl/newNearMode_1209.html Change-Id: I7b3e32ec8729de1903d14a3f1213f1624b78cdee
-
- 07 Dec, 2011 1 commit
-
-
Yaowu Xu authored
vp8_mode_contexts[] is an entropy table used to code inter mode choices. It was a fixed constant table. This commit made the entropy context adaptive. Tests on derf set showed very good consistent gains on all metrics: avg psnr .47%, overall psnr .46% and ssim .40%. http://www.corp.google.com/~yaowu/no_crawl/newModeContext.html Change-Id: Ia62b14485c948e2b74586118619c5eb2068b43b2
-
- 09 Sep, 2010 1 commit
-
-
John Koleszar authored
Changes 'The VP8 project' to 'The WebM project', for consistency with other webmproject.org repositories. Fixes issue #97. Change-Id: I37c13ed5fbdb9d334ceef71c6350e9febed9bbba
-
- 18 Jun, 2010 1 commit
-
-
John Koleszar authored
When the license headers were updated, they accidentally contained trailing whitespace, so unfortunately we have to touch all the files again. Change-Id: I236c05fade06589e417179c0444cb39b09e4200d
-
- 04 Jun, 2010 1 commit
-
-
John Koleszar authored
Change-Id: Ieebea089095d9073b3a94932791099f614ce120c
-
- 18 May, 2010 1 commit
-
-
John Koleszar authored
-