summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
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-11Merge "Skip the last frame update for some frame repeats."paulwilkins
2015-05-09Merge "build_intra_predictors*: reduce left_col size"James Zern
2015-05-08Fix clang ioc warning due to NULL mi pointer.hkuang
The warning only happens in VP9 encoder's first pass due to src_mi is not set up yet. But it will not fail the encoder as left_mi and above_mi are not used in the first_pass and they will be set up again in the second pass. Change-Id: I0713b4660d71e229e196654cb0970ba6b1574f28
2015-05-08Merge "Add more sse2 code for intra prediction."hkuang
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-08Merge "mips msa vp9 idct 32x32 optimization"Parag Salasakar
2015-05-07build_intra_predictors*: reduce left_col sizeJames Zern
this should only need to be the size of the largest block, i.e., 32, not 64. Change-Id: Ib8cb2424771fdd2a64c55379597248b2722a5ceb
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 "Remove an unnecessary check."hkuang
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-07mips msa vp9 idct 32x32 optimizationParag Salasakar
average improvement ~4x-6x Change-Id: Idaba7e49fbd7f388caee0d73773ccf6e4807ef17
2015-05-06Add more sse2 code for intra prediction.hkuang
vp9_dc_left_predictor_16x16 vp9_dc_top_predictor_32x32 vp9_dc_left_predictor_32x32 vp9_dc_128_predictor_32x32 Change-Id: Ib9861deefd01c3527235b92ff6b3d571ef6b4bc6
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
2015-05-06Move shared SAD code to vpx_dspJohann
Create a new component, vpx_dsp, for code that can be shared between codecs. Move the SAD code into the component. This reduces the size of vpxenc/dec by 36k on x86_64 builds. Change-Id: I73f837ddaecac6b350bf757af0cfe19c4ab9327a
2015-05-06Remove an unnecessary check.hkuang
Change-Id: Id0f224ac4667dd173363b0f05711678448291d4e
2015-05-06Correct the inter prediction coordinate calculation which greatly reduced thehkuang
times of border extension. Change-Id: I8e5bd590cc696ee71cfe1f4cc66c12fb24aaf44e
2015-05-06Merge "Optimize the read_partition."hkuang
2015-05-06Merge "Add intra mode early termination in non-rd mode"Yunqing Wang
2015-05-06Merge "mips msa vp9 idct 16x16 optimization"Parag Salasakar
2015-05-05Add intra mode early termination in non-rd modeYunqing Wang
Added the intra mode early termination in order to speed up the mode search in non-rd case since we started to include more intra modes in the search list. Borg tests(rtc set) showed a 0.048% PSNR gain and 0.061 SSIM gain. No speed change. Change-Id: I6f255fe534dc50b736e6a66a726ad458eb9b4443
2015-05-05Optimize the read_partition.hkuang
Change-Id: I5a796425ce5706824a2fc17c6f24f983c5b9e43b
2015-05-05fix and enable vp9_dc_128_predictor_16x16James Zern
widen the loads and stores to 128-bit. this was added, but not enabled in: 493a857 Add some sse2 code for intra prediction. Change-Id: I277d7db608a7db7d75cc0bde86f48fa66ad487e4
2015-05-05Merge "Add some sse2 code for intra prediction."hkuang
2015-05-05Merge "Remove CONSTRAIN_NEIGHBORING_MIN_MAX."paulwilkins
2015-05-05Merge "Adjust ARF min and max interval."paulwilkins
2015-05-05mips msa vp9 idct 16x16 optimizationParag Salasakar
average improvement ~4x-6x Change-Id: I55e95b7f2ba403dff11813958dc7c73a900dd022
2015-05-04Allow for H and V intra modes for non-rd mode.Marco
For non-rd mode (speed >=5): use mask based on prediction block size, and (for non-screen content mode) allow for checking horiz and vert intra modes for blocks sizes < 16x16. Avg psnr/ssim metrics go up by about ~0.2%. Only allowing H/V intra on block sizes below 16x16 for now, to keep encoding time increase very small, and also when allowing H/V on 16x16 blocks, metrics went down on a few clips which need to be further examined. Change-Id: I8ae0bc8cb2a964f9709612c76c5661acaab1381e
2015-05-01vp9_idct_intrin_sse2: cosmetics: reindentJames Zern
+ fix some whitespace Change-Id: Id61b739282014288a7e5d3c17a9d6448d9d4cda2
2015-05-01Merge "Reduce intra_cost_penalty for BLOCK_8X8"Yunqing Wang
2015-05-01Merge "Adjust the vbp early termination threshold slightly"Yunqing Wang
2015-05-01FIX: Use correct above/left in read_intra_frame_mode_infoScott LaVarnway
Should be using xd->above_mi and xd->left_mi. Change-Id: Ifab83512db5491a955a3ed44a2d6e3b25b5ae5a5
2015-05-01Image size restriction to rd auto partition search.paulwilkins
Impose a limit on the rd auto partition search based on the image format. Smaller formats require that the search includes includes a smaller minimum block size. This change is intended to mitigate the visual impact of ringing in some problem clips, for smaller image formats. Change-Id: Ie039e5f599ee079bbef5d272f3e40e2e27d8f97b
2015-05-01Remove CONSTRAIN_NEIGHBORING_MIN_MAX.paulwilkins
Remove one of the auto partition size cases. This case can behaves badly in some types of animated content and was only used for the rd encode path. A subsequent patch will add additional checks to help further improve visual quality. Change-Id: I0ebd8da3d45ab8501afa45d7959ced8c2d60ee4e
2015-05-01Adjust ARF min and max interval.paulwilkins
Previously limit on max interval set to 0.5 seconds. Though this helped some low frame rate material it appears to be a bit too aggressive for some 24 and 25 fps content. This patch relaxes the limit to 0.75 seconds. The patch also adds a new minimum interval variable to replace the current hard wired value. This allows us to impose a limit on the maximum number of primary arfs per second for high frame rate (e.g. 50 & 60fps) content. This is to address concerns regarding playback performance on some platforms if there is a high base frame rate and very frequent arfs. Change-Id: I373e8b6b2a8ef522eced6c6d2cceb234ff763fcf
2015-04-30vp9: RECON_AND_STORE4X4: remove dest offsetJames Zern
offsetting by a variable stride prevents instruction reordering, resulting in poor assembly Change-Id: Id62d6b3299cdd23f8c44f97b630abf4fea241446
2015-04-30vp9_idct_intrin_*: RECON_AND_STORE: remove dest offsetJames Zern
offsetting by a variable stride prevents instruction reordering, resulting in poor assembly. additionally reroll 16x16/32x32 loops to reduce register spill with this new format Change-Id: I0635b8ba21ecdb88116e927dbdab53acdf256e11
2015-04-30Merge "Remove vp9_idct16x16_10_add_ssse3()"Yaowu Xu
2015-04-30Merge "vp9_decodeframe: simplify compare_tile_buffers"James Zern
2015-04-30Add some sse2 code for intra prediction.hkuang
Change-Id: I16c0a62e52dab62837c547345df31e7518620ed4
2015-04-30Reduce intra_cost_penalty for BLOCK_8X8Yunqing Wang
This patch reduced the BLOCK_8X8's intra_cost_penalty, which allows 8x8 blocks to conduct intra mode search. Borg test result(rtc set): 0.077% PSNR gain, 0.228% SSIM gain. No speed changes. Change-Id: Icfe90c4f6969de24bda8ecacbd3da50330bf22b2
2015-04-30Remove vp9_idct16x16_10_add_ssse3()Yaowu Xu
The rotation computation using 2X of cos(pi/16) has a potential to overflow 32 bit, this commit disable the function to allow further investigation and optimization. Change-Id: I4a9803bc71303d459cb1ec5bbd7c4aaf8968e5cf
2015-04-30Merge "Improve golden frame refreshing in non-rd mode"Yunqing Wang
2015-04-30Adjust the vbp early termination threshold slightlyYunqing Wang
Calculated cpi->vbp_threshold_sad from this frame's dequant value. The encoding quality and speed didn't change much. Borg test result: PSNR: -0.002%, SSIM: -0.003%. Change-Id: I97c9826986f39582f29910d637d08a69c90afdee
2015-04-30Merge "mips msa vp9 copy and avg convolve optimization"Parag Salasakar
2015-04-30Merge "Disable ssse3 version idct16x16_256_add()"Yaowu Xu
2015-04-29vp9_decodeframe: simplify compare_tile_buffersJames Zern
return the difference between the 2 buffer sizes rather than exactly -1/0/1. Change-Id: Idf1ccff7088b31845470bcc71bea5927b0598cc7
2015-04-29Disable ssse3 version idct16x16_256_add()Yaowu Xu
The version is currently producing different result from c version for some input. Disable the use of it for now to allow time for investigation the source of mismatch. Change-Id: Id039455494ee531db4886a9f1fa4761174ef6df3