summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2013-11-11Merge "Allocate dual buffer sets for encoding"Jingning Han
2013-11-11Merge "Cleaning up joint_motion_search function."Dmitry Kovalev
2013-11-11Allocate dual buffer sets for encodingJingning Han
Allocate memory space of dual buffer sets that store the coeff, qcoeff, dqcoeff, and eobs. Connect the pointers of macroblock_plane and macroblockd_plane to the actual buffer in use accordingly. Change-Id: I2f0b5f482ca879fae39095013eaf8901db20a5a4
2013-11-11Cleaning up joint_motion_search function.Dmitry Kovalev
Change-Id: I70a0878b23bda0ac3ff8733b4c96d5c636bc551c
2013-11-11Decouple macroblockd_plane buffer usageJingning Han
Make the macroblockd_plane contain dynamic buffer pointers instead static pointers to the memory space allocated therein. The decoder uses the buffer allocated in pbi, while encoder will use a dual buffer approach for rate-distortion optimization search. Change-Id: Ie6f24be2dcda35df7c15b4014e5ccf236fb3f76c
2013-11-11Merge "Localizing NEARESTMV special cases in the code."Dmitry Kovalev
2013-11-11Merge "Cleaning up vp9_quantize_b_c() function."Dmitry Kovalev
2013-11-08Correct a couple of typosYaowu Xu
Change-Id: Ic470c6c9ce27b615c9645b9cb0d67526417bc374
2013-11-08Disable zeroblock forcing for lossless coding modeYaowu Xu
This to make sure that prediction residue always get coded in lossless mode. This commit also fixed lossless unit test Change-Id: I537726ee55328d4e4cf0a0196393a67e12bfcde1
2013-11-08Merge "Remove TEXTREL from 32bit encoder"Yunqing Wang
2013-11-08Merge "Removed unused rate parameter."Paul Wilkins
2013-11-07Remove TEXTREL from 32bit encoderYunqing Wang
This patch fixed the issue reported in "Issue 655: remove textrel's from 32-bit vp9 encoder". The set of vp9_subpel_variance functions that used x86inc.asm ABI didn't build correctly for 32bit PIC. The fix was carefully done under the situation that there was not enough registers. After the change, we got $ eu-findtextrel libvpx.so eu-findtextrel: no text relocations reported in 'libvpx.so' Change-Id: I1b176311dedaf48eaee0a1e777588043c97cea82
2013-11-07Merge "Fix the variable naming in encode_block"Jingning Han
2013-11-07Fix the variable naming in encode_blockJingning Han
The term x represents macroblock pointer across encode_block. Change the two local variable names to avoid confusion. Change-Id: Ic732e73023525d673c0a678ed2708ac1edf5a3f9
2013-11-07Removed unused rate parameter.Paul Wilkins
Change-Id: I6e4a266fdbad1d222eb45d45b67bbb82d091821a
2013-11-06Merge "Move SVC per-frame loop from sample app into libvpx proper"Ivan Maltz
2013-11-06Move SVC per-frame loop from sample app into libvpx properIvan Maltz
SVC multiple layer per frame encoding is invoked with vpx_svc_init and vpx_svc_encode. These interfaces are designed to be invoked from ffmpeg. Additional improvements: - make dummy frame handling a bit more explicit - fixed bug with single layer encodes - track individual frame sizes and psnrs instead of averages - parameterized quantizer, 16th scalefactors, more logging, - enabled single layer encodes to generate baseline - include new mode for 3 layer I frame with 5 total layers Change-Id: I46cfa600d102e208c6af8acd6132e0cc25cda8d4
2013-11-06Merge "Replacing mi_{width,height}_log2 with num_8x8_blocks_{wide,high}_lookup."Dmitry Kovalev
2013-11-06Replacing mi_{width,height}_log2 with num_8x8_blocks_{wide,high}_lookup.Dmitry Kovalev
Change-Id: I04c55daef89bca2b85cb7db0850f9b052abc5a7c
2013-11-06Merge "Removes stack allocation of token_cache"Deb Mukherjee
2013-11-06Removes stack allocation of token_cacheDeb Mukherjee
Removes stack-allocation of token_cache in the tokenize function in the encoder. Change-Id: Ifdbab76dc2b23384da0080d2e9390533e489db8c
2013-11-05Cleaning up vp9_quantize_b_c() function.Dmitry Kovalev
Change-Id: I42c75530a8c9cff68480657f074131e6b60d9fca
2013-11-05Merge "Removing old code."Dmitry Kovalev
2013-11-05Localizing NEARESTMV special cases in the code.Dmitry Kovalev
Removing special case handling from vp9_tree_probs_from_distribution(), tree_merge_probs(), and vp9_tokens_from_tree_offset() functions. Replacing inter_mode_offset() function with macro INTER_OFFSET which is used now for vp9_inter_mode_tree definition. Change-Id: Iff75a1499d460beb949ece543389c8754deaf178
2013-11-05Merge "Remove one shot q experiment"Deb Mukherjee
2013-11-05Merge "Fix the use case of plane_block_idx in sub8x8 RD"Jingning Han
2013-11-05Merge "Avoid mv cost check for invalid mv values"Jingning Han
2013-11-05Merge "Remove unused members from VP9_COMP"Adrian Grange
2013-11-04Avoid mv cost check for invalid mv valuesJingning Han
The compound inter prediction could potentially run with initial motion vectors of invalid value and check the mv_cost, which triggers overheap read. This commit resolves this issue by forcing a motion vector value check for compound inter modes of both superblock and sub8x8 block sizes. Change-Id: I4f4fc19ce83c8272782bc382f12c82a3f03212fc
2013-11-04Removing old code.Dmitry Kovalev
Change-Id: Ie05cc5e2d8ce12eacdf482a8b75e5a6ce6f59f57
2013-11-04Splitting partition_probs array into two arrays.Dmitry Kovalev
We only update partition_probs for inter frames but they are constant for key frames. It is not necessary to have constants inside frame context and copy them every time. This change reduces FRAME_CONTEXT size by at least 48 bytes. Change-Id: If70a53be51043f37fe7d113853217937710932a7
2013-11-04Remove unused members from VP9_COMPAdrian Grange
Removed: goldfreq, avg_encode_time, avg_pick_mode_time, cpu_freq, interquantizer member variables from VP9_COMP since they are no longer used in the code. Change-Id: I010a82c217d0da03c3f53d1858d3462190c12dcf
2013-11-04Merge "Remove unused member variables from VP9_COMP"Adrian Grange
2013-11-04Merge "Removing 'new' probability calculation from convert_distribution()."Dmitry Kovalev
2013-11-04Remove unused member variables from VP9_COMPAdrian Grange
Removed three members from the VP9_COMP data structure: inter_zz_count, gf_bad_count, gf_update_recommended. These were part of the VP8 real-time mode implementation that was removed from the initial VP9 codecbase. Change-Id: I866b083b88ef02c74837277d50ce532ca88492f3
2013-11-03Fix the use case of plane_block_idx in sub8x8 RDJingning Han
This commit fixes the use case of plane_block_idx, which determines the plane (Y/U/V) index based on block index. When block idx >= 4 in sub8x8 block loop, it should be of chroma components. Change-Id: I072705aa7b35445524ac607089ca8ce54b7ba478
2013-11-03Add second ref frame check back in rdcost histJingning Han
Update best_inter_rd and best_inter_ref_frame only in single ref frame case. Change-Id: Id56825b231a62d6852bd83811410c05a7569f715
2013-11-01Removing 'new' probability calculation from convert_distribution().Dmitry Kovalev
We don't have to calculate 'new' probability in convert_distribution() because it is enough to calculate only 'new' counters which could be used to calculate probability if necessary. That's why removing a lot of unused temporary probability arrays and reducing number of get_binary_prob() calls. Change-Id: I4e14eb7203d1ace61bbddefd6b9b6326be83ba63
2013-11-01Merge "Cleanup. Adding const to function pointer arguments."Dmitry Kovalev
2013-10-31Merge "Removing is_intra_mode() function."Dmitry Kovalev
2013-10-31Cleanup. Adding const to function pointer arguments.Dmitry Kovalev
Change-Id: I12c67c8c0fa1aa7fb3f7d6cc2ef65be29c4ea292
2013-10-31Merge "Fix x_offset_q4/y_offset_q4 calculation"Yunqing Wang
2013-10-31Remove one shot q experimentDeb Mukherjee
The experiment is no longer used and can be removed. Change-Id: I9feab378fc895c120aa375353c68f93cad090609
2013-10-30Updates to 1-pass:Marco Paniconi
-Don't reduce maxQ for gold/alt in CBR mode. -Fix to min/maxQ for first/initial key frame. -Add more speeds to datarate test and reduce the starting bitrate for test. Change-Id: Id2a333d76dd3f6a51b322ca984588e2a22159c58
2013-10-30Merge "Enable all-zero coeff block index for sub8x8 blk"Jingning Han
2013-10-30Replacing (SWITCHABLE_FILTERS + 1) with SWITCHABLE_FILTER_CONTEXTS.Dmitry Kovalev
Change-Id: I9781a62bc1a4cd9176554d1271d87dbcafda9cb0
2013-10-30Enable all-zero coeff block index for sub8x8 blkJingning Han
This commit makes zcoeff_blk cache the case where the entire block is quantized to be zero (without applying zero-forcing) in the rate- distortion optimization loop, and skip the forward DCT, quantization, inverse DCT, and reconstruction process in the encode_block stage. It now works for all the block sizes, including sub8x8 blocks. Change-Id: I5ae60a9c436ba3637d11666733554bec4580ef98
2013-10-29Fix x_offset_q4/y_offset_q4 calculationYunqing Wang
"<< SUBPEL_BITS" needs to be added in the calculation. Call set_scaled_offsets() to calculate x_offset_q4 and y_offset_q4. Change-Id: Ied130ea771510e918f51cd1dc3abe57f4c0962b5
2013-10-29Adding const to vp9_quantize_b_{32x32,} parameters.Dmitry Kovalev
Change-Id: I56f8c50ac382202f66040cd9cfaa05d889572fc7
2013-10-29Fixing wrongly initialized tx_type variable.Dmitry Kovalev
Wrong value was used in get_tx_type_4x4() function, so making initialization before that call. Change-Id: Ief30bb1e0c03b2f23d993bbf9ae18d7150ba9a83