summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2014-12-16Merge "Initialize best_tx_size with invalid value"Jingning Han
2014-12-16Merge "Use right shift to replace division in vp9_pick_inter_mode"Jingning Han
2014-12-16Fix for crash in highbitdepth rt modePeter de Rivaz
Change 72141 introduced a new use of vp9_avg_4x4. This call needs to switch to using vp9_highbd_avg_4x4 when performing high bitdepth encodes. Change-Id: I6a8ba4b62f8a75d0a917b365a55245e2f0438ea1
2014-12-15Initialize best_tx_size with invalid valueJingning Han
If vp9_pick_inter_mode works properly, it should at least check one coding mode and hence get best_tx_size assigned a valid value. There is no need to initialize best_tx_size with a legitimate value before starting the mode search. Change-Id: Ic0496cd89672ea9c2c512a9bd1da952190af9cba
2014-12-15Use right shift to replace division in vp9_pick_inter_modeJingning Han
Make the variable reduction_fac log2 based and explicitly use right shift when computing intra_cost_penalty. Change-Id: I208f1fb879a02debb3b3fc64f9fd06260dcf1c86
2014-12-15Simplify rate-distortion modeling functionJingning Han
Use left shift to replace one multiplication. The computation outcome remains identical. Change-Id: I1e1737af0a245de0d2a2bde10f0c171477199fc1
2014-12-15Revert "Add support for setting byte alignment."Paul Wilkins
Fails to compile. Bad calls to vp9_alloc_frame_buffer and vp9_realloc_frame_buffer in postproc.c This reverts commit 399823b6f50fb7465f62822d1395e2192e7b07fc. Change-Id: I29f0e173f8e185d3a303cfdb17813e1eccb51e3a
2014-12-12Merge "Add support for setting byte alignment."Frank Galligan
2014-12-12Merge "vp9: move encoder-only member from common"James Zern
2014-12-12Merge "Allow for 4x4 prediction blocks for key frame, speed 6."Marco
2014-12-12Add support for setting byte alignment.Frank Galligan
Add support for setting byte alignment on the Y, U, and V plane of the reference buffers. The byte alignment must be a power of 2, from 32 to 1024. A value of 0 sets legacy alignment. Change-Id: I7c1399622f7aa68e123646369216b32047dda73d
2014-12-12vp9: move encoder-only member from commonJames Zern
allow_comp_inter_inter VP9_COMMON -> VP9_COMP Change-Id: I6d9dc25d1cdd7e2ab62f5be69cd9fa883d21dbb6
2014-12-12Merge "Fix PICK_MODE_CONTEXT index in non-RD coding mode"Jingning Han
2014-12-11Fix PICK_MODE_CONTEXT index in non-RD coding modeJingning Han
This commit fixes a bug in the PICK_MODE_CONTEXT index for horizontal partition case. The compression performance change is less than 0.01% level, since most blocks are selected to use square block size in RTC coding mode. Change-Id: I67effc18ae8795fccdd82a55f4efc609fa5cb3e1
2014-12-11Allow for 4x4 prediction blocks for key frame, speed 6.Marco
For key frame under variance source partition: 4x4 prediction blocks may be selected when variance of 8x8 block is very high (threshold is set fairly high for now). Testing on some RTC clips shows this helps to reduce some ringing artifacts on key frame. Encoded key frame size increases about ~10%. Key frame PSNR increases about ~0.1-0.2dB. Change-Id: I56e203fac32ea6ef69897fb3ea269c59cb50d174
2014-12-11Merge "Replace division with bit shift in choose_partitioning"Jingning Han
2014-12-11Merge "Refactor choose_partitioning computing scheme"Jingning Han
2014-12-11Replace division with bit shift in choose_partitioningJingning Han
This commit explicitly uses the bit shift operation instead of division for computing block variance. Change-Id: Id19c0ff27dd1d1ae4aceee6657e1aad0d406bd74
2014-12-11Refactor choose_partitioning computing schemeJingning Han
This commit refactors the choose_partitioning function. It removes redundant memset calls and makes the encoder to calculate variance value per block only when it is needed. It reduces the average runtime cost of choose_partitioning by 60%. Overall it reduces speed -6 runtime by 2-5%. Change-Id: I951922c50d901d0fff77a3bafc45992179bacef9
2014-12-10Merge "Substantial restructuring of AQ mode 2."Paul Wilkins
2014-12-10Merge "Use use_prev_frame_mvs flag for ref mv search branch"Jingning Han
2014-12-10Merge "Refactor update_state_rt"Jingning Han
2014-12-10Merge "Make RTC coding flow support sub8x8 in key frame coding"Jingning Han
2014-12-10Merge "Cosmetic naming change"Jingning Han
2014-12-10Merge "Take out redundant setting of mode_info from set_block_size"Jingning Han
2014-12-10Merge "Remove unused rd cost calculation from nonrd_use_partition"Jingning Han
2014-12-09Use use_prev_frame_mvs flag for ref mv search branchJingning Han
Replace error_resilient flag with use_prev_frame_mvs in vp9_pick_inter_mode reference motion vector search selection. This effectively turns off the simplified ref mv search in the settings of frame resizing, even if error-resilient mode is off. Change-Id: I7fed814ee7bc0cb419a03b846e0fc2de46ba7686
2014-12-09Refactor update_state_rtJingning Han
Update the frame motion vector only if previous frame motion vector is needed for next frame reference motion vector. Change-Id: Ica50f9d7b46ad4f815bba0d9e30f5546df29546f
2014-12-09Make RTC coding flow support sub8x8 in key frame codingJingning Han
This commit enables the use of sub8x8 blocks in RTC key frame encoding. It requires the block size to be preset and will decide the coding mode and encode the bit-stream. Change-Id: I35aaf8ee2d4d6085432410c7963f339f85a2c19b
2014-12-09Cosmetic naming changeJingning Han
Rename set_modeinfo_offsets as set_mode_info_offsets, to be more consistent with naming convention. Change-Id: I68ca1f36c4a78127d9439a50c1506a2afd07927d
2014-12-09Take out redundant setting of mode_info from set_block_sizeJingning Han
The later encoding process will take the top-left block's mode_info for pre-determined block size. Change-Id: I76a90f9ce7f3b2dbc2975b52442114e461c465b5
2014-12-09Substantial restructuring of AQ mode 2.Paul Wilkins
The restructure moves the decision into the rd pick modes loop and makes a decision based at the 16x16 block level instead of only the 64x64 level. This gives finer granularity and better visual results on the clips I have tested. Metrics results are worse than the old AQ2 especially for PSNR and this mode now falls between AQ0 and AQ1 in terms of visual impact and metrics results. Further tuning of this to follow. It should be noted that if there are multiple iterations of the recode loop the segment for a MB could change in each loop if the previous loop causes a change in the complexity / variance bin of the block. Also where a block gets a delta Q this will alter the rd multiplier for this block in subsequent recode iterations and frames where the segmentation is applied. Change-Id: I20256c125daa14734c16f7cc9aefab656ab808f7
2014-12-08Remove unused rd cost calculation from nonrd_use_partitionJingning Han
The per block rd cost calculation is not needed when partition size is preset. Change-Id: Ie5575248bbffb584e908aa13097f697ace6ec747
2014-12-08Merge "Changes to assembler for NASM on mac."James Zern
2014-12-08Merge "Improve the performance by caching the left_mi and right_mi in ↵hkuang
macroblockd."
2014-12-08Merge "Use average mb energy from first pass in AQ2 test."Paul Wilkins
2014-12-07Merge "Fix potential integer overflow."Frank Galligan
2014-12-05Merge "vp9 asserts: fix compile warning"James Zern
2014-12-05Merge "vp9: fix frame-parallel encoding"James Zern
2014-12-05Merge "Some internal-stats, vp9-highbitdepth bug fixes"Deb Mukherjee
2014-12-05vp9: fix frame-parallel encodingJames Zern
the flag in the header wasn't being set based on the encoder configuration in non-intra only mode broken since: fbc2fbf Adding oxcf temp variable. Change-Id: Ib4cff9901889824bc4e68d7f0f6deb1e41df2f53
2014-12-05Merge "Remove redundant rdcost reset"Jingning Han
2014-12-05Merge "Fix a motion search skip condition in vp9_pick_inter_mode"Jingning Han
2014-12-05Merge "Remove redundant MB_MODE_INFO reset from vp9_pick_mode_inter"Jingning Han
2014-12-05Improve the performance by caching the left_mi and right_mi in macroblockd.hkuang
This improve the deocde performance by ~2% on Nexus 7 2013. Change-Id: Ie9c4ba0371a149eb7fddc687a6a291c17298d6c3
2014-12-05vp9 asserts: fix compile warningJames Zern
string literal to int within an assert Change-Id: I76a173f96b9add5bf27c3f5ad5d72c6f30e51629
2014-12-05Remove redundant rdcost resetJingning Han
The initial reset of this_rdc in vp9_pick_inter_mode is not needed, since it will be re-assign when used. Change-Id: Ic0e12d741cbab292fc214c1eabb48b129af7839b
2014-12-05Fix a motion search skip condition in vp9_pick_inter_modeJingning Han
Compare the current best mode rate-distortion cost with the skip threshold to decide if performing motion search. Change-Id: Ia071824f8dd3b7db485f424692a485a2da6a1a9f
2014-12-05Remove redundant MB_MODE_INFO reset from vp9_pick_mode_interJingning Han
Change-Id: I0222f7abc61202f4a83b117bbfb042ada6304562
2014-12-05Merge "Merge set_prev_mi function into encoder function."hkuang