summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2015-06-03Duplicate reference variance codeJohann
Some places are using the unoptimized variance function. This was never intended and does not fit into the optimization framework. Change-Id: Id96238407aad03b0ffd4a46cd183555a026daedc
2015-06-02Vidyo patch: Rate control for SVC, 1 pass CBR mode.Marco
-Make Rate control work for SVC 1 pass CBR mode. -Added temporal layering mode. -Fixed bug in non-rd variance partition. -Modified/updated the sample encoders (vp9_spatial_svc_encoder, vpx_temporal_svc_encoder). -Added datarate unittest(s) for 1 pass CBR SVC. Change-Id: Ie94b1b68a56ea1267b5087c625e5df04def2ee48
2015-06-01Merge "Fast feedback of bits on undershoot."paulwilkins
2015-05-28For non-rd pickmode: remove VAR_PARTITION condition.Marco
Keep the logic, transform size based on cyclic refresh and bsize, (that was conditioned on VAR_PARTITION conditions) the same for all speeds in non-rd mode (speeds >= 5). No change to speeds >=6. Small improvement for speed 5, ~0.5/1.5% gain for avg psnr/ssim. Change-Id: If9c5657f3d30efd3c7f147166bba7cb69ea55114
2015-05-28Merge "[svc] Disable tiles for spatial svc case"Minghai Shang
2015-05-28Merge "Re-worked header files"Scott LaVarnway
2015-05-28Merge "Add error handling when running out of free frame buffers."hkuang
2015-05-27Add error handling when running out of free frame buffers.hkuang
Change-Id: If28b59b9521204a6e3aecedcf75932d76a752567
2015-05-27Non-rd variance partition: Adjust thresholds for 1080p.Marco
Increase the 32x32 split threshold, to allow for more 32x32 at expense of 16x16. Visually looks somewhat better. Change-Id: Ia1439c3a0dc2d7933468b88bd59266fcd9f03505
2015-05-27Merge "Refactor set_vbp_thresholds."Marco
2015-05-27Merge "[svc] Make size of empty frame to be 16x16 all the time"Minghai Shang
2015-05-27Refactor set_vbp_thresholds.Marco
Break out the setting of the block variance split thresholds, since they are locally modified, e.g., based on local/segment qp. No change in performance. Change-Id: I0a3238e6dab05140657539fc4bd27ac5ff7a554e
2015-05-26[svc] Make size of empty frame to be 16x16 all the timeMinghai Shang
Change-Id: Ibab09aa0e8c69cf5efea2f0ec035e5da9cc894b0
2015-05-26Merge "Move variance functions to vpx_dsp"Johann
2015-05-26Move variance functions to vpx_dspJohann
subpel functions will be moved in another patch. Change-Id: Idb2e049bad0b9b32ac42cc7731cd6903de2826ce
2015-05-26Merge "[svc] Turn on frame_parallel_decoding_mode"Minghai Shang
2015-05-22Fix integral projection motion search for frame resizeJingning Han
This commit fixes the integral projection motion search crash when frame resize is used. It fixes issue 994. Change-Id: Ieeb52619121d7444f7d6b3d0cf09415f990d1506
2015-05-22Re-worked header filesScott LaVarnway
Various header/test files had to be re-worked in order to build "Remove cm parameter from vp9_decode_block_tokens()". This patch reverts the "Remove cm" part and only contains the re-worked header files. Change-Id: I520958a88d1991fee988a3c784d0eac40e117a32
2015-05-20[svc] Disable tiles for spatial svc caseMinghai Shang
Change-Id: I8655a6760ab61947c09f337ddd9f4c1baf803a56
2015-05-20[svc] Turn on frame_parallel_decoding_modeMinghai Shang
Change-Id: I33b0384ee87f83950e03be6c999bc5f193055fd3
2015-05-20Fast feedback of bits on undershoot.paulwilkins
This patch provides a partial rapid feedback of bits resulting from extreme undershoot. Some improvement on some problem animated material but in its current form only a small impact on the metrics results of our standard test sets. Change-Id: Ie03036ea8123bc2553437cb8c8c9e7a9fc5dac5d
2015-05-20Fix issues with mixed ARF and GF groups.paulwilkins
This patch addresses two issues that can occur when the encoder chooses to use a mixture of ARF and GF groups. The first issue relates to a failure to reset the "ARF active" flag correctly when transitioning from coding ARF groups to coding GF groups. This caused some golden frames to be encoded with an incorrect bit rate target as if they were ARF overlay frames. The second issue relates to the encoding of a single short GF group just before a key frame. Where the last group before a key frame is an ARF group we expect the final frame before the key frame to be an low data rate overlay frame. However, when the last group is a GF group, the final frame before the key frame should be a normal frame with a normal bit allocation. This issue had the potential to cause a single poorly coded frame just before a key frame. If that key frame were a forced key frame rather than a real scene cut, this might cause pulsing. Change-Id: Idf1eb5eaf63a231495a74de7899236e1ead9fb00
2015-05-15rename vp9_dct_impl_sse2.c to vp9_dct_sse2_impl.hJames Zern
this file shouldn't be built directly, it is included in vp9_dct_sse2.c to create a non-high-bitdepth and a high-bitdepth version silences missing prototype warnings for the unused FDCT* functions Change-Id: Ide6ff8c24ab31bdb0f833260505ae33660a1ad5b
2015-05-15rename vp9_dct32x32_sse2.c to vp9_dct32x32_sse2_impl.hJames Zern
this file shouldn't be built directly, it is included in vp9_dct_sse2.c to create a non-high-bitdepth and a high-bitdepth version silences missing prototype warnings for the unused FDCT32x32* functions Change-Id: I0e38f16dae5ea1728de184ee2c89287d48675c51
2015-05-15rename vp9_dct32x32_avx2.c to vp9_dct32x32_avx2_impl.hJames Zern
this file shouldn't be built directly, it is included in vp9_dct_avx2.c to create a non-high-bitdepth and a high-bitdepth version silences missing prototype warnings for the unused FDCT32x32* functions Change-Id: I4c19935c0e035b393be513bde735e9a78064a494
2015-05-15Merge changes from topic 'missing-proto'James Zern
* changes: vp9_subexp.h: add a missing prototype vp9: add some missing includes vp9 intrinsics: add vp9_rtcd include vp9: correct some function signatures vp9_variance_sse2: sync function signatures vp9/encoder: make some functions static vp9_dct_sse2: make some functions static vp9_decodeframe.c: make a function static
2015-05-15Change tx_size_search_method setting for non-rd speed 5.Marco
Use the same settting as in speed >=6. This will use same logic for tx_size selecton as in speed >=6, which limits the transform size and reduces ringing artifact. Also metrics go up on average with this change: ~2% for PSNR, ~10% for SSIM. Change-Id: Ia2d50db236ae1cc72f742bfa6c9ec5ea50ff0e0a
2015-05-15vp9_subexp.h: add a missing prototypeJames Zern
+ include the .h in the .c silences missing prototype warnings Change-Id: Ia87366dccb4bf4e9f2ffa5d3ab51ac6ca5488c91
2015-05-15vp9: add some missing includesJames Zern
mostly: <file>.c should include <file>.h silences missing prototype warnings Change-Id: Ic05ec32c6f7b2224b78825904d96d73aacad6000
2015-05-15vp9 intrinsics: add vp9_rtcd includeJames Zern
silences a missing declaration warning Change-Id: I59a34e1a1377cf3529b678d7ec0122bd43ab1bf1
2015-05-15vp9: correct some function signaturesJames Zern
silences missing prototype warnings Change-Id: Idaf68d83d2cb03847f3ee002c4d00c2ac79da604
2015-05-15vp9_variance_sse2: sync function signaturesJames Zern
+ include vp9_rtcd.h silences missing prototype warnings Change-Id: I77902f07a454029baad4fe5fe6fc37c65644e6f7
2015-05-15vp9/encoder: make some functions staticJames Zern
silences missing prototype warnings Change-Id: I3338fcaa67b5dcdf6bf237e8b374db3befd18753
2015-05-15vp9_dct_sse2: make some functions staticJames Zern
silences missing prototype warnings Change-Id: I773b6a6b5bd7c57db18c3b17c519534f80e131de
2015-05-15Merge "Revert "Skip the last frame update for some frame repeats.""paulwilkins
2015-05-14Revert "Skip the last frame update for some frame repeats."paulwilkins
Testing on another rate control patch reveals that in some situations, where the encoder is flipping in and out of arf mode, we get an encoder decoder mismatch. Whilst it is still not clear why, skipping the last buffer update seems to trigger the problem. Until I can establish why, or if there is another underlying cause, I am reverting this change. This reverts commit e5112b3ae3352c4c55fb31235305f3f80f4b8f7e. Change-Id: I315c5200414de89458015823344b7367e9dd75ba
2015-05-13Merge "Relocate memory operations for common code"Johann
2015-05-13Relocate memory operations for common codeJohann
With the sad functions, and hopefully the variance functions soon, moving to the vpx_dsp location, place the defines used in the reference C code in a common location. Change-Id: I4c8ce7778eb38a0a3ee674d2f1c488eda01cfeca
2015-05-12Merge "Remove unneeded variable declaration"Yunqing Wang
2015-05-12Merge "Protect new metric computation with use_highbitdepth flag"Yaowu Xu
2015-05-12Protect new metric computation with use_highbitdepth flagYaowu Xu
The computation of new metrics is not supported yet in highbitdepth mode. This commit adds protection to make sure the computation is done only when highbitdepth is not on. This protection shall be revised when support of highbitdpeth computation is added. This resolves the encoder crash when configured with both --enable-internal-stats --enable-vp9-highbitdepth Change-Id: Id9f4bcc4fa26d9ca0e9eabade83f3f88a5b212e6
2015-05-12Remove unneeded variable declarationYunqing Wang
This patch fixed the following warning: src\third_party\libvpx\source\libvpx\vp9\encoder\vp9_pickmode.c(1607) : warning C6246: Local declaration of 'this_mode' hides declaration of the same name in outer scope. Change-Id: I1d93c4a47a13cb13089fec5bd61e8b58e6cd8d58
2015-05-11Recompute tile params on frame resizeAdrian Grange
When the frame size changes we must recompute details of the tile dimensions. Change-Id: Ie519bd6da47b5cd43933c0bcfc0f2429bcb01986
2015-05-11Fix rate control issue with layers and aq-mode=3.Marco
When aq-mode=3 is enabled, only for base layer frames should the qp of the frame incorporate the segment delta-qp. This was causing more rate mismatch for the enhancement layer frames when running temporal layers with aq-mode=3 on. Change-Id: I1c5e69d1ef8a51188af8696753c17fd8f67699b3
2015-05-08Skip the last frame update for some frame repeats.paulwilkins
Where a frame appears to be a repeat of an earlier frame or frame buffer, but the first pass code does not anticipate this (usually because it is matching the GF or ARF buffer not the last frame buffer), do not update the last frame buffer. This helps ensure that the content of the last frame buffer is kept "different" where possible, and not updated to match the GF or ARF. This is particularly helpful in some animated sequences where there are groups of repeating frames. Here it has quite a big impact. However, in most of our standard test clips it has little or no impact. Change-Id: I77332ee1a69f9ffc0c6080bfeb811c43fd8828e6
2015-05-07replace DECLARE_ALIGNED_ARRAY w/DECLARE_ALIGNEDJames Zern
this macro was used inconsistently and only differs in behavior from DECLARE_ALIGNED when an alignment attribute is unavailable. this macro is used with calls to assembly, while generic c-code doesn't rely on it, so in a c-only build without an alignment attribute the code will function as expected. Change-Id: Ie9d06d4028c0de17c63b3a27e6c1b0491cc4ea79
2015-05-07Merge "Move shared SAD code to vpx_dsp"Johann
2015-05-07Merge "Remvoe EIGHTTAP_SHARP filter check for non-rd mode."Marco
2015-05-07Merge "Image size restriction to rd auto partition search."paulwilkins
2015-05-06Remvoe EIGHTTAP_SHARP filter check for non-rd mode.Marco
Using EIGHTTAP and EIGHTTAP_SMOOTH seem sufficient. Hard to see any visual gain from allowing EIGHTTAP_SHARP, and it is rarely selected. PSNR/SSIM metrics go up by ~0.18/0.14%. Change-Id: I96fa0d98f9321b913e3ebcd464d4ff3c63018791