summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2014-12-17Corrected value range of --cpu-used for vp9Yaowu Xu
This commit removes undefined value options of cpu-used for VP9 and changed vpxenc prompt to reflect the usable range of [-8,8] Change-Id: Ib80fef3dbb6ec9aabac45ed13e8ab6fbaf94f55e
2014-12-17Merge "Set second ref frame to be NONE in key frame coding"Jingning Han
2014-12-16Merge "Fix intra mode update process in vp9_pick_inter_mode"Jingning Han
2014-12-16Set second ref frame to be NONE in key frame codingJingning Han
This commit explicitly set the second reference frame type to be NONE in key frame coding mode. This fixes a subtle dependency of reference motion vector used by next inter frame on mode_info reset before key frame coding. Change-Id: I5ff0359753fdc9992b0bfe889490f7a32d7d5f6a
2014-12-16Merge "Revert "Revert "Add support for setting byte alignment."""Frank Galligan
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-15Fix intra mode update process in vp9_pick_inter_modeJingning Han
When multiple intra modes are tested, the previous mode info update process may overwrite the selected best intra mode and make the final selection use an inter mode. This commit fixes this issue by moving the mode_info reset outside the intra mode search loop. Change-Id: I15ed4288a6b3cb0832104a5e6d5d9a25cd1a5b2b
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-15Revert "Revert "Add support for setting byte alignment.""Frank Galligan
This reverts commit 91471d6aad285ff10e7582e485d8adadd1986fe2. Fixes the compile issues if post_proc is enabled. Change-Id: Ib40a15ce2c194f9b5adfa65a17ab01ddf60f5a59
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