summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2013-11-12Use 1D array to store super block filter levelsYunqing Wang
As Jim suggested, 1D array was used to store filter levels instead of 2D array. This used shift_y in setup_mask directly, and saved few cycles. Change-Id: If61ab298784861f1806b1cd396d4e4e2e0f097b9
2013-11-12Merge "Rewrite filter_selectively_horiz for parallel loopfiltering"Yunqing Wang
2013-11-12Merge "Improve loopfilter function"Yunqing Wang
2013-11-11Merge "Removing redundant assignment."Dmitry Kovalev
2013-11-11Merge "Allocate dual buffer sets for encoding"Jingning Han
2013-11-11Removing redundant assignment.Dmitry Kovalev
xd->mi_8x8 is assigned inside set_offsets() for each prediction block. Change-Id: I20e5974a9eaf105e5a04fc7f99b7a93bd50e3d0a
2013-11-11Rewrite filter_selectively_horiz for parallel loopfilteringYunqing Wang
Added loop filter mask checking, and made the caller function ready for implementation of parallel loopfiltering in horizontal direction. Next, we need to go through the loopfilter functions (both c and optimized versions), and provide 16-byte wide loopfiltering for each filter type. Change-Id: Ifef47e7ef9086ebc2fd6ca7ede8f27c9bbf79e66
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-11Fix a bug in the assembly code.hkuang
Change-Id: Ic416e3f8a11e82ee298e6f709b2119a9ddf1e2f8
2013-11-11Merge "Replacing (raster_block >> tx_size) with (block >> (tx_size << 1))."Dmitry Kovalev
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-11Merge "Cleaning up read_mv_probs() function."Dmitry Kovalev
2013-11-11Merge "Adding read_reference_mode() function."Dmitry Kovalev
2013-11-09Merge "[BITSTREAM]Fix row tile mode_info pointer setup"Yaowu Xu
2013-11-08[BITSTREAM]Fix row tile mode_info pointer setupYaowu Xu
This commit fixes the assignment of mode_info pointer per tile. It makes recognition of tiles in both row and column formats and properly arrange the use of mode_info. The bug was first introduced in I6226456dd11f275fa991e4a7a930549da6675915 https://gerrit.chromium.org/gerrit/#/c/67492/ Change-Id: Ie12cd209f53241513728c461ee3d7b9599ddb860
2013-11-08Merge "Correct a couple of typos"Yaowu Xu
2013-11-08Correct a couple of typosYaowu Xu
Change-Id: Ic470c6c9ce27b615c9645b9cb0d67526417bc374
2013-11-08Merge "Improve vp9_idct4x4_1_add_sse2"Yunqing Wang
2013-11-08Improve loopfilter functionYunqing Wang
This patch continued the work done in "Rewrite loop_filter_info_n struct"(commit:00dbd369c70270428d56da6d15ea5486fc821c52) to further improve loopfilter function. 1. Instead of storing pointers to thresholds, store loopfilter levels within 64x64 SB; 2. Since loopfilter levels are already calculated in setup_mask, we don't need call build_lfi to look up them again. Just save loopfilter levels in setup_mask. 3. Reorganized and simplified filter_block_plane(). Tests showed a ~0.8% decoder speedup. Change-Id: I723c7779738bbc2afcb9afa2c6f78580ee6c3af7
2013-11-08Merge "Disable zeroblock forcing for lossless coding mode"Yaowu Xu
2013-11-08Merge "Unifying tile decoding for both direct and inverse tile order."Dmitry Kovalev
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-07Replacing (raster_block >> tx_size) with (block >> (tx_size << 1)).Dmitry Kovalev
The new expression is much more logical than previous one. Surprisingly both expressions give exactly the same set of dependent values -- have_top, have_left, have_right -- in vp9_predict_intra_block. Change-Id: I63eb1b592b8c37883b3a0dbb1f3daa271e446109
2013-11-07Merge "Add back vp9_short_idct32x32_1_add_neon which is deleted in cleanup ↵hkuang
I63df79a13cf62aa2c9360a7a26933c100f9ebda3."
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-07Merge "Miscelleneous changes in detokenize for speed"Deb Mukherjee
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-06Unifying tile decoding for both direct and inverse tile order.Dmitry Kovalev
Now tile decoding consists of two stages: 1. Find tile buffer start and its size, put this info into tile_buffers. 2. Decode each tile based on information from tile_buffers. It seems that stage 1 can also be reused by multithreaded tile decoder. Change-Id: If0cdaefdd6d10bb41c63561346c9ae4cfac081dd
2013-11-06Merge "Move SVC per-frame loop from sample app into libvpx proper"Ivan Maltz
2013-11-06Merge "Using pd->dqcoeff instead of pd->qcoeff in the decoder."Dmitry Kovalev
2013-11-06Using pd->dqcoeff instead of pd->qcoeff in the decoder.Dmitry Kovalev
It is more logical to use dqcoeff buffer to put there *dequantized* transform coefficients (inside inverse_transform_block and decode_coefs functions). Dequantization happens inside WRITE_COEF_CONTINUE macro. qcoeff buffer should be only used in the encoder for *quantized* transform coefficients. Change-Id: Ifd54bef272bbf5311ced6669c4f1079f998af5d7
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-06Merge "Missing _ means no sse3 for vp9_h_predictor_32x32."Yaowu Xu
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-06Merge "optimize decode_bool operation"Yaowu Xu
2013-11-06Missing _ means no sse3 for vp9_h_predictor_32x32.Paul Wilkins
Error in script means vp9_h_predictor_32x32 sse3 version is not enabled. Change-Id: Ia43672740da1ecdfb7fcd420490ef424b04accc4
2013-11-05Cleaning up vp9_quantize_b_c() function.Dmitry Kovalev
Change-Id: I42c75530a8c9cff68480657f074131e6b60d9fca
2013-11-05Simply a macroYaowu Xu
Change-Id: I1c0c1b92aab33b1e4321b8e584a934fe58e0b324
2013-11-05Add back vp9_short_idct32x32_1_add_neon which is deleted inhkuang
cleanup I63df79a13cf62aa2c9360a7a26933c100f9ebda3. Change-Id: I034848cf05031618818f7df2e7f9c35102686948