summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2017-06-29vp9: Remove avg2x2 in skin detection and clean up.Jerome Jiang
Change-Id: I6510e36866138f8ac4cb82c207e58e0b9522e499
2017-06-28Merge "vp9: compute skinmap only once before encoding."Jerome Jiang
2017-06-27vp9: Speed >= 8: Remove logic on reducing subpel.Marco
Existing logic was only affecting resolutions above 720p. Needs more testing for reducing subpel for speed >= 8. No change on RTC metrics. Change-Id: I2f4bf9f25891614aafa9a86aa5a5063a3ccfce4d
2017-06-27Merge "highbd_quantize_fp_32x32: normalize abs_qcoeff type"James Zern
2017-06-27vp9: compute skinmap only once before encoding.Jerome Jiang
This could save some cycles since skin detection is used in multiple places in vp9. 1~2% speed up on ARM. Change-Id: I86b731945f85215bbb0976021cd0f2040ff2687c
2017-06-23Enable greedy version of optimize_b() in VP9 by default.Urvang Joshi
Improvements were already mentioned in the previous patch: https://chromium-review.googlesource.com/#/c/531675/ Change-Id: I4906ab1c61c25a815bdeb986016fad6dcb69eb71
2017-06-23vp9: Use scene detection for CBR mode.Marco
Use the scene detection for CBR mode, and use it to reset the rate control if large source sad is detected and rate correctioni fact/QP is at minimum state. Avoids large frame sizes after big content change following low content period. Only affects CBR mode for 1 pass at speeds 5, 6, 7. Change-Id: I56dd853478cd5849b32db776e9221e258998d874
2017-06-23Merge changes from topic 'missing-proto'James Zern
* changes: onyxd_int.h: add missing prototypes onyxd.h: add vp8dx_references_buffer prototype vp[89],vpx_dsp: add missing includes vp8,encodeframe.h: correct prototypes vp8: add temporal_filter.h add picklpf.h add ethreading.h vp8,bitstream.h: add missing prototypes vp8: remove vp8_fast_quantize_b_mmx vp8,loopfilter_filters: make some functions static vp9_ratectrl: make adjust_gf_boost_lag_one_pass_vbr static vp9_encodeframe: make scale_part_thresh_sumdiff static vp9_alt_ref_aq: correct vp9_alt_ref_aq_create proto tiny_ssim: make some functions static
2017-06-22Merge "vp9: Add high source sad to content state."Marco Paniconi
2017-06-22Merge "Fix int overflow in rate control for high bit rates."Paul Wilkins
2017-06-22Fix int overflow in rate control for high bit rates.paulwilkins
Fix misplaced cast that caused an overflow and incorrect rate adaptation behavior for high data rates. This in particular will have affected 4k encodes but could also have come into play for some higher rate 1080p cases. In our standard test sets the quality impact is small though several high rate clips show improved rate accuracy. This can also impact the number of recode loop hits and on one problem 4k clip the encode time for speeds 0 and 1 was reduced by >25% Change-Id: I108da7ca42f3bc95c5825dd33c9d84583227dac1
2017-06-21vp9: Add high source sad to content state.Marco
Use it to limit NEWMV early exit in nonrd pickmode Small change in RTC metrics, has some improvement for high motion clips. Change-Id: I1d89fd955e1b3486d5fb07f4472eeeecd553f67f
2017-06-22Merge "vp9: Adjustments for aq-mode and pickmode for speed >= 8."Marco Paniconi
2017-06-21vp[89],vpx_dsp: add missing includesJames Zern
quiets -Wmissing-prototypes Change-Id: I841cfc019d592f2bc6b3fec5818051a31f4c53b5
2017-06-21vp9_ratectrl: make adjust_gf_boost_lag_one_pass_vbr staticJames Zern
quiets -Wmissing-prototypes Change-Id: I72d899c2d8de1ddc52d90ac081f2629374b3a6e9
2017-06-21vp9_encodeframe: make scale_part_thresh_sumdiff staticJames Zern
quiets -Wmissing-prototypes Change-Id: I696223d75860edba13c6b6f38c1f8db353a6f812
2017-06-21vp9_alt_ref_aq: correct vp9_alt_ref_aq_create protoJames Zern
quiets -Wmissing-prototypes Change-Id: Ib2d4f294f1982739bb2ac98155e789e040d309a1
2017-06-21highbd_quantize_fp_32x32: normalize abs_qcoeff typeJames Zern
use an int to quiet an unsigned rollover warning similar to: 25110f283 Fix an ubsan warning: vp9_quantizer.c Change-Id: Iedecb79a17249bc18f10c0920f88cf704920f12b
2017-06-21vp9: Put skin detection usage around cpi flag.Marco
Skin detection usage in choose_partitioning should be around the cpi->use_skin_detection. Change-Id: I6986179af9ce94c60c0974d66c311fc07cc04cfe
2017-06-21vp9: Adjustments for aq-mode and pickmode for speed >= 8.Marco
Adjust the threshold for turning off cyclic refresh for high motion, and avoid testing golden in nonrd pickmode for speed >= 8 if golden refresh was long ago. No change/neutral on RTC metrics. Change-Id: I40959b8d9637f3553e7458bbabd8c6024c2c09c0
2017-06-20Merge "vp9: SVC: Rework the usage of base_mv for SVC."Marco Paniconi
2017-06-19vp9: Speed >= 8: Adjust resolution threshold for subpel.Marco
Get some quality gain on RTC metrics (~7%), with ~5-8% speed slowdown. Change-Id: I0d02942a77074424ee0326b6e110ddff09f2df5e
2017-06-18vp9: SVC: Rework the usage of base_mv for SVC.Marco
Set the base_mv_aggressive for temporal enhancement layers (TL > 0). Under the aggressive mode, skip the NEWMV depending on the SSE of the base_mv. Also reduce the subpel motion to 1/2 under aggressive mode if base_mv is good. Speedup ~3% with small/negligible loss in quality on RTC. Affects speed >= 6. Change-Id: I89341b279cad6da2a04b76d5e726016191dacdb8
2017-06-15VP9: Add greedy version of av1_optimize_b().Urvang Joshi
This was ported from the greedy version in AV1, written by Dake He (dkhe@google.com). See: https://aomedia.googlesource.com/aom/+/master/av1/encoder/encodemb.c#137 Greedy version is disabled by default, but can be picked by setting USE_GREEDY_OPTIMIZE_B to 1. To be enabled by default later. This is both faster and better in terms of compression. Compression Improvement: ------------------------ lowres: -0.119 midres: -0.064 hdres: -0.405 Speed Improvement: ------------------ (Based on encode time of 3 videos of different difficulties at 3 different target bitrates) With --cpu-used=0: 0.38% to 5.55% faster With --cpu-used=1: 0.24% to 2.79% faster With --cpu-used=2: 0.29% to 1.46% faster Change-Id: Ia7a23b3b244ad8eb253ac9e43cd03c5e021d2635
2017-06-13Clean array_transpose_{4X8,16x16,16x16_2) in x86Linfeng Zhang
Change-Id: I341399ecbde37065375ea7e63511a26bfc285ea0
2017-06-13Remove array_transpose_8x8() in x86Linfeng Zhang
Duplicate of transpose_16bit_8x8() Change-Id: Iaa5dd63b5cccb044974a65af22c90e13418e311f
2017-06-10Merge "Remove duplication on vp8/9_write_yuv_frame."Jerome Jiang
2017-06-09vp9: SVC: Use prune_evenemore only for non_reference.Marco
Set subpel prune_evenmore only for non_reference frames, instead of all TL > 0 frames. Gain some quality back at cost of small speed loss (~1-2%). Change only effects SVC encoding at speed >= 7. Change-Id: I5b9f51e51dccfd7050521a66996176b0415ca3f9
2017-06-09Remove duplication on vp8/9_write_yuv_frame.Jerome Jiang
Change-Id: Ib3546032a27c715bf509c0e24d26a189bc829da8
2017-06-08Merge "Merge skin detection code in vp8/9."Jerome Jiang
2017-06-07Merge skin detection code in vp8/9.Jerome Jiang
BUG=webm:1438 Change-Id: Ie3dc034c7dbb498a0b088a767b1936ddeed4df14
2017-06-07vp9: SVC: Enable simple_block_yrd for temporal layers.Marco
Enable simple_block_yrd for temporal enhancement layers (TL > 0). And remove block size condiiton for SVC mode. Only affects speed >= 7 SVC. Speedup ~3-4%. avgPSNR regression on RTC for (3 spatial, 3 temporal) layers: ~1%. Change-Id: Iff4fc191623b71c69cd373e7c0823385e7ac67ed
2017-06-06vp9: SVC: Adjust some speed settings for SVC speed >= 7.Marco
Keep the 1/4subpel for all frames, use SUBPEL_TREE_PRUNED_EVENMORE for all temporal enhancement layer frames. Change-Id: Ibc681acbb6fc75b7b3c57fc483fcb11d591dfc9a
2017-06-06Initialize cost_list all to INT_MAX.Jerome Jiang
It is initialized to be { INT_MAX, 0, ... } in ffe0f9b. No effect on encoders. Make it consistent with other initializations. BUG=webm:1440 Change-Id: Ie2a180d93626b55914c8c4255e466a1986d2b922
2017-06-05vp9_mcomp,get_cost_surf_min: quiet conversion warningJames Zern
visual studio will warn if a 32-bit shift is implicitly converted to 64. in this case integer storage is enough for the result. since: f3a9ae5ba Fix ubsan failure in vp9_mcomp.c. Change-Id: I7e0e199ef8d3c64e07b780c8905da8c53c1d09fc
2017-06-06Merge "Fix valgrind failure on uninitialized variables."Jerome Jiang
2017-06-05Fix valgrind failure on uninitialized variables.Jerome Jiang
BUG=webm:1440 Change-Id: I7074e42bdfa8dd25f11bbb3f2ab1b41d6f4c12e4
2017-06-02Fix ubsan failure in vp9_mcomp.c.Jerome Jiang
Change-Id: Iff1dea1fe9d4ea1d3fc95ea736ddf12f30e6f48d
2017-06-01vp9: SVC: Force subpel search off under certain conditions.Marco
For SVC 1 pass non-rd mode: Force subpel seach off for SVC for non-reference frames under motion threshold. Add flag to svc context to indicate if the frame is not used as a reference. Little/no quaity loss, ~2% speedup. Change-Id: Ic433c44b514d19d08b28f80ff05231dc943b28e9
2017-06-01vp9: Speed >8: Set subpel_search_method for low motion.Marco
Speed >=8: for resolutions above CIF, and for low motion content, set subpel_search_method to SUBPEL_TREE_PRUNED_EVENMORE. Small speed gain (~2%) on vga clips, RTC metrics up by ~2-3% on average. Change-Id: Ie26ba0264589652f92dfe74308740debf94cf0cc
2017-06-01Fix corruption in skin map debugging output yuv.Jerome Jiang
For both vp8 and vp9. BUG=webm:1437 Change-Id: Ifd06f68a876ade91cc2cc27c574c4641b77cce28
2017-05-30Merge "Fix vp8 race when build --enable-vp9-highbitdepth."Jerome Jiang
2017-05-26Fix vp8 race when build --enable-vp9-highbitdepth.Jerome Jiang
Split vp8/vp9 implementations on yv12_copy_frame_c. Remove high-bitdepth codes from vp8_yv12_extend_frame_borders_c. Clean up vp8 codes usage in vp9. BUG=webm:1435 Change-Id: Ic68e79e9d71e1b20ddfc451fb8dcf2447861236d
2017-05-26vp9: SVC: Fix to condiiton on using source_sad.Marco
Fix the condition on usage of source_sad for temporal layers. FIx allows it to be used for the case of 1 temporal layer. Change-Id: I02b1b0ade67a7889d1b93cee66d27c0951131fc3
2017-05-26Merge "vp9: Use source_sad only on top temporal enhancement layer."Marco Paniconi
2017-05-25vp9: Use source_sad only on top temporal enhancement layer.Marco
For 1 pass CBR SVC mode. Change-Id: Ic026740f9d0ec5eee7c5845be9c5b15884fec48d
2017-05-25vp9: SVC: Enable copy partition for SVC speed >= 7.Marco
Adjust the max_copied_frame setting for temporal layers. Keep the same setting for non-SVC at speed 8. This change also enables copy_partiton for non-SVC at speed 7, but with smaller value of max_copied_frame (=2). ~2% speedup for SVC speed 7, 3 layers, with little/no quality loss. Change-Id: Ic65ac9aad764ec65a35770d263424b2393ec6780
2017-05-22Merge "vp9: Adjustments to cyclic refresh for high motion."Marco Paniconi
2017-05-21vp9: Adjustments to cyclic refresh for high motion.Marco
For aq-mode=3: refactor the condition for turning off the refresh. Add some adjustments for high motion content. No/little change in RTC metrics, only affects high motion case. Change-Id: I7da8eabfb0e61db014be4562806f72ee5ef4a43b
2017-05-21vp9: Speed >= 8: Modify condition for low-resoln.Marco
No change on RTC metrics. Change-Id: I5abc573cb56572188d900645d13ba479f55a1ea0