summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2014-12-05Merge "Use hybrid RD and non-RD coding flow for key frame coding"Jingning Han
2014-12-05Use hybrid RD and non-RD coding flow for key frame codingJingning Han
When block size is below 16x16, the encoder swap from non-RD to RD mode for key frame coding. This largely brough back the key frame compression performance. For vidyo1 at 1000 kbps, the key frame coding statistics are changed 9978F, 34.183 dB, 36807 us -> 9838F, 35.020 dB, 61677 us As compared to the full RD case 7187F, 34.930 dB, 214470 us The overall rtc set coding performance (single key frame setting) is improved by 1.5%. Change-Id: I78a4ecf025d7b24ec911e85be94e01da05e77878
2014-12-05Merge "vp9_ethread: the tile-based multi-threaded encoder"Yunqing Wang
2014-12-05Merge "Increase strength of AQ1."Paul Wilkins
2014-12-04Merge "Use the RTC optimizations when in high bitdepth mode."Debargha Mukherjee
2014-12-04Merge "vp9_reader: reorder struct members"James Zern
2014-12-04Merge "Corrected the renaming of CONFIG_VP9_HIGH ro CONFIG_VP9_HIGHBITDEPTH."Debargha Mukherjee
2014-12-04Use the RTC optimizations when in high bitdepth mode.Peter de Rivaz
Change 72193 made the encoder behave differently when configured with and without high bitdepth. This change means the same algorithm is used for both. Change-Id: I707a44a94afca773a9e0c2f7ebeeea83030257c5
2014-12-04vp9_ethread: the tile-based multi-threaded encoderYunqing Wang
Currently, VP9 supports column-tile encoding, which allows a frame to be encoded in multiple column tiles independently. The number of column tiles are set by encoder option "--tile-columns". This provides a way to encode a frame in parallel. Based on previous set of patches, this patch implemented the tile- based multi-threaded encoder. Each thread processes one or more tiles. Usage: For HD clips: --tile-columns=2 --threads=1/2/3/4 While using 4 threads, tests showed that the encoder achieved 2.3X - 2.5X speedup at good-quality speed 3, and 2X speedup at realtime speed 5. Change-Id: Ied987f8f2618b1283a8643ad255e88341733c9d4
2014-12-04Merge "Fixes a missing highbitdepth convolve call bug"Deb Mukherjee
2014-12-04Merge "Free motion vector array before re-allocating"Adrian Grange
2014-12-04Corrected the renaming of CONFIG_VP9_HIGH ro CONFIG_VP9_HIGHBITDEPTH.Peter de Rivaz
Change 71789 renamed CONFIG_VP9_HIGH to CONFIG_VP9_HIGHBITDEPTH. However, one use of CONFIG_VP9_HIGH was missed. Change-Id: I0ebb9c71380c6d810a25708d15471abf9533e695
2014-12-03Merge "sse2 visual studio build fix"Tom Finegan
2014-12-03Fixes a missing highbitdepth convolve call bugDeb Mukherjee
Bug was introduced in https://gerrit.chromium.org/gerrit/#/c/72122/ Change-Id: Idb500ea619a30e7bc50e22fb8ee03be5282f41db
2014-12-03Merge "Use memset for initialization to 0"Adrian Grange
2014-12-03sse2 visual studio build fixDeb Mukherjee
Change-Id: Id8c8c3be882bcd92afea3ccec6ebdf3f208d28ef
2014-12-03Free motion vector array before re-allocatingAdrian Grange
Change-Id: I0c39136d67e1e83020d61f86b062a04182ec9b00
2014-12-03Merge "Increase delta-qp for aq=3 mode, after key frame."Marco
2014-12-03Merge "Fix indent in source_var_based_partition_search_method"Jingning Han
2014-12-03Use memset for initialization to 0Adrian Grange
Change-Id: I714ca22b5d51016bf8b035cf457616c707257641
2014-12-03Merge "vp9: sync threads after a longjmp"James Zern
2014-12-03Increase delta-qp for aq=3 mode, after key frame.Marco
For a few refresh periods after key frame, use large qp-delta to increase quality ramp-up. Change-Id: Ib5a150fb2dfa6bafd0d4e6b5d28dfd0724b61319
2014-12-03Fix indent in source_var_based_partition_search_methodJingning Han
Change-Id: I6e5e0571d6967b9b992966336715e35bb97f187e
2014-12-03Merge "Remove unused ONE_LOOP entry from speed feature"Jingning Han
2014-12-03Merge "Rework coeff probability model update for rtc coding"Jingning Han
2014-12-03Enable non-rd mode coding on key frame, for speed 6.Marco
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
2014-12-03Remove unused ONE_LOOP entry from speed featureJingning Han
Change-Id: I56ead0ebc2491144c4e79e5859b05e126176702c
2014-12-03Rework coeff probability model update for rtc codingJingning Han
This commit reworks the ONE_LOOP_REDUCED coefficient probability model update process. It allows model update for every coefficient across the spectrum at a coarser resolution, instead of performing precise update only for certain subset of probability models. The overall runtime remains nearly same (<1% change) for speed -6. The compression performance is improved by 7.5% in PSNR for speed -5 and 4.57% for speed -6, respectively. Change-Id: Ifb17136382ee7e39a9f34ff4a4f09a753125c8d1
2014-12-02vp9: sync threads after a longjmpJames Zern
Synchronize all threads immediately as a subsequent decode call may cause a resize invalidating some allocations. fixes one aspect of crbug.com/437655 Change-Id: Ie993b62c2756478543206ddbe43ec6268d90a470
2014-12-02Merge "Reinsert macro to fix issue 884."Debargha Mukherjee
2014-12-02Merge "Fix a warning related to VPX_EFLAG_FORCE_KF check"Deb Mukherjee
2014-12-02Reinsert macro to fix issue 884.Peter de Rivaz
Change 72056 unfolded some macro definitions, but lost some alternative behaviour required for high bitdepth encodes. This causes the encoder to crash, see issue 884. Change-Id: I8ce4d73c9fe0a3c10ccb86fba210fabc8b2f0ccc
2014-12-02Fix a warning related to VPX_EFLAG_FORCE_KF checkDeb Mukherjee
Fixes a warning in chrome build. Change-Id: I8fa0fd3e7ba1aecf89e5f79ce94cd64ed6a9567c
2014-12-02Added high bitdepth sse2 transform functionsPeter de Rivaz
Also removes some spurious changes in common/vp9_blockd.h which was introduced by a rebase issue between nextgen and master branches. Change-Id: If359f0e9a71bca9c2ba685a87a355873536bb282 (cherry picked from commit 005d80cd05269a299cd2f7ddbc3d4d8b791aebba) (cherry picked from commit 08d2f548007fd8d6fd41da8ef7fdb488b6485af3) (cherry picked from commit 4230c2306c194c058f56433a5275aa02a2e71d56)
2014-12-01Cyclic refresh: factor segment delta-q into rate control.Marco Paniconi
Incorporate segment delta-q into estimated bits. This generally improves the rate control under cyclic refresh (aq=3) mode. Change-Id: I1dc60fb230e7d08357fae18909d8ed27bf58e037
2014-12-01Merge "Remove repeated search_type_check_frequency assign"Jingning Han
2014-12-01Merge "vp9_ethread: calculate and save the tok starting address for tiles"Yunqing Wang
2014-11-27Increase strength of AQ1.Paul Wilkins
This patch greatly increase the strength of AQ1. Visual tests show strong gains on many clips but their is a big hit on psnr. SSIM is more mixed with some winners and losers. Change-Id: Idaa5d3b41d8576096bfa000b62bc531c3d8bf6a1
2014-11-25Remove repeated search_type_check_frequency assignJingning Han
This parameter is initialized as 50. No need to re-assign the same value in speed -6. Change-Id: I8735a5593412df2fdcee53ae45c8ebd1c3d792e7
2014-11-25vp9_ethread: calculate and save the tok starting address for tilesYunqing Wang
Each tile's tok starting address is calculated before the encoding process. These addresses are stored so that the same calculation won't be done again in packing bit stream. Change-Id: I0a3be0301f002260c19a850303f2f73ebc47aa50
2014-11-25Separate rate_correction_factor for boosted GFsYaowu Xu
When the golden frame is boosted, the rate correction factor is not correlated well with other inter frames even in CBR mode. This commit changes to use GF specific rate_correction_factor when gf_cbr_boost is greater than 20%. Change-Id: I6312c1564387bcacc11f4c5e8a9cfdc781b5c3ab
2014-11-25Cosmetic change in vp9_pick_inter_modeJingning Han
Change-Id: Ic072585ebffdb36982ed7b8b9f875ca6c1c656c4
2014-11-25Adaptively adjust mode test kick-off thresholds in RTC codingJingning Han
This commit allows the encoder to increase the mode test kick-off thresholds if the previous best mode renders all zero quantized coefficients, thereby saving motion search runs when possible. The compression performance of speed -5 and -6 is down by -0.446% and 0.591%, respectively. The runtime of speed -6 is improved by 10% for many test clips. vidyo1, 1000 kbps 16578 b/f, 40.316 dB, 7873 ms -> 16575 b/f, 40.262 dB, 7126 ms nik720p, 1000 kbps 33311 b/f, 38.651 dB, 7263 ms -> 33304 b/f, 38.629 dB, 6865 ms dark720p, 1000 kbps 33331 b/f, 39.718 dB, 13596 ms -> 33324 b/f, 39.651 dB, 12000 ms mmoving, 1000 kbps 33263 b/f, 40.983 dB, 7566 ms -> 33259 b/f, 40.978 dB, 7531 ms Change-Id: I7591617ff113e91125ec32c9b853e257fbc41d90
2014-11-25Merge "Rework forward txfm/quantization skip system in RTC coding mode"Jingning Han
2014-11-24Merge "Remove redundant intra mode penalty from vp9_pick_inter_mode"Jingning Han
2014-11-24vp9_reader: reorder struct membersJames Zern
improves locality of reference Change-Id: Ia4d55bb8c98e479528d88303fa35e8c74fbf939d
2014-11-24vp9_ethread: modify VP9_COMP structureYunqing Wang
This patch modified struct VP9_COMP. Created a struct ThreadData to include data that need to be copied for each thread. In multiple thread case, one thread processes one tile. all threads share one copy of VP9_COMP, (refer to VP9_COMP *cpi in the code) but each thread has its own copy of ThreadData, (refer to ThreadData *td in the code). Therefore, within the scope of encode_tiles(), both cpi and td need to be passed as function parameters. In single thread case, the FRAME_COUNTS pointer in ThreadData points to "counts" in VP9_COMMON. Change-Id: Ib37908b2d8e2c0f4f9c18f38017df5ce60e8b13e
2014-11-24Merge "Fix a tautological assert."Alex Converse
2014-11-24Fix a tautological assert.Alex Converse
Change-Id: I90ad08823e1d038384536fa9f458caadc2c87f38
2014-11-24Remove redundant intra mode penalty from vp9_pick_inter_modeJingning Han
The intra mode penalty is covered by intra_cost_penalty. This commit removes the other intra cost threshold, provided that the constant 50 is negligible in normal rate-distortion cost. Change-Id: I9b8b7483c43b9a41741622e7057def1f7d51bb72