summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encodemb.c
AgeCommit message (Collapse)Author
2013-12-04Merge "Cleaning up vp9_entropy.h file."Dmitry Kovalev
2013-12-03Moving eob array to the encoder.Dmitry Kovalev
In the decoder we don't need to save eobs, we can pass eob as an argument. That's why removing eob arrays from VP9Decompressor and TileWorkerData, and moving eob pointer from macroblockd_plane to macroblock_plane. Change-Id: I8eb919acc837acfb3abdd8319af63d1bbca8217a
2013-12-03Cleaning up vp9_entropy.h file.Dmitry Kovalev
Renaming constants for consistency: DCT_VAL_CATEGORY1 => CATEGORY1_TOKEN DCT_VAL_CATEGORY2 => CATEGORY2_TOKEN DCT_VAL_CATEGORY3 => CATEGORY3_TOKEN DCT_VAL_CATEGORY4 => CATEGORY4_TOKEN DCT_VAL_CATEGORY5 => CATEGORY5_TOKEN DCT_VAL_CATEGORY6 => CATEGORY6_TOKEN DCT_EOB_TOKEN => EOB_TOKEN DCT_EOB_MODEL_TOKEN => EOB_MODEL_TOKEN MAX_ENTROPY_TOKENS => ENTROPY_TOKENS Moving constants: INTER_MODE_CONTEXTS from vp9_entropy.h to vp9_blockd.h. EOSB_TOKEN from vp9_entropy.h to vp9_tokenize.h Change-Id: I5fcbf081318e1d365792b6d290a930c6cb0f3fc2
2013-12-02Fix intra prediction ref selection in skip_encodeJingning Han
This commit fixes the intra prediction reference source selection in the settings of skip_encode. Use original boundary pixels as prediction reference, when the inverse transform and reconstruction are skipped in the per block size rate-distortion optimization loop. Change-Id: I36081aa30aa46e203e0e6f4e8a420fd08269469a
2013-11-26Removing qcoeff buffers from the decoder.Dmitry Kovalev
We only need qcoeff buffers in the encoder. Reducing TileWorkerData struct and VP9Decompressor struct sizes by 24K. Change-Id: Id148868461f7ffa3d3dd634b371503ae9c57e207
2013-11-25Reusing txfrm_block_to_raster_xy in vp9_xform_quant().Dmitry Kovalev
Change-Id: Ib273dfff3be284f3c9ae288e5315fb6c6126f9c2
2013-11-22Organizing all scan tables into lookup table.Dmitry Kovalev
Change-Id: Ie829ee58a55157e6972c63cebe69a5d0a3221349
2013-11-22Merge "Removing txfrm_block_to_raster_xy() call from extend_for_intra()."Dmitry Kovalev
2013-11-21Removing txfrm_block_to_raster_xy() call from extend_for_intra().Dmitry Kovalev
Change-Id: I6a48d1f35ed5fe7a2c7499675b339994c9c3bdf2
2013-11-21Merge "Removing plane_block_{width, height} functions."Dmitry Kovalev
2013-11-21Merge "Using txfrm_block_to_raster_xy() in encoder."Dmitry Kovalev
2013-11-20Using txfrm_block_to_raster_xy() in encoder.Dmitry Kovalev
Change-Id: Ibe847000467fe46bf8ce87d8f1ef8f2d5ad1eaf4
2013-11-20Removing plane_block_{width, height} functions.Dmitry Kovalev
Change-Id: I29c0dfcf41a1253d5e2a0d2ff740c0c38ebaa5a2
2013-11-20Using is_inter_block() and has_second_ref() functions.Dmitry Kovalev
Change-Id: Iadd771a33c8874f3b774923bca4da3c8fe5429ee
2013-11-19Move vp9_setup_interp_filter() to encoderYaowu Xu
As it is used in encoder only. Change-Id: I5f2a8abbe72bb18cbf6ce36a3dc7e132aeae8ec2
2013-11-18Merge "Finally removing txfrm_block_to_raster_block() function."Dmitry Kovalev
2013-11-15Removing vp9_encodeintra.{h, c} files.Dmitry Kovalev
There was only one function in *.c file, so moving it to vp9_encodemb.c. Change-Id: I728859d08b3d6c05c33c1c5b21f0ea1d0e0f83af
2013-11-14Finally removing txfrm_block_to_raster_block() function.Dmitry Kovalev
We only use txfrm_block_to_raster_xy() now. Change-Id: I4242cd592da99e761041acf9fef1bac3d55a48e1
2013-11-14Merge "Eliminating usage of txfrm_block_to_raster_block() from encode_block()."Dmitry Kovalev
2013-11-13Simplifies band-getting with a static arrayDeb Mukherjee
Simplifies the code by implementing band mapping with static arrays. A lot of the code complexity introduced in a previous patch disappears. Change-Id: Ia3fac36e594fb5ad2d55ae141c58bba4c55c2d28
2013-11-13Eliminating usage of txfrm_block_to_raster_block() from encode_block().Dmitry Kovalev
Change-Id: I7d11f1b6075a1115cdc2dcd605225b9c9c9b39c7
2013-11-13Merge "Dual buffer encoding for intra modes"Jingning Han
2013-11-13Merge "Replacing raster_block with block in the encoder."Dmitry Kovalev
2013-11-13Dual buffer encoding for intra modesJingning Han
Overall change (using dual buffer scheme for superblocks of both inter and intra modes) reduces speed 2 runtime: bluesky_1080p at 6000kbps: 263553ms -> 257441ms riverbed_1080p at 8000kbps: 233230ms -> 225308ms. Change-Id: Idf8d70f768a4b0d97b2a8506372c57b7b4022119
2013-11-12Merge "Enable dual buffer rd search and encoding scheme"Jingning Han
2013-11-12Removes conditional statements from band gettingDeb Mukherjee
Implements scan order to band map with arrays in both the encoder and decoder to remove conditional statements. Encoding seems to be about 1% faster at speed 0, tested on football. Decoding seems to be about 0.5-1% faster on a set of 25 videos. Change-Id: Idb233ca0b9e0efd790e30880642e8717e1c5c8dd
2013-11-11Enable dual buffer rd search and encoding schemeJingning Han
This commit enables the dual buffer rate-distortion optimization and encoding scheme. It stacks the original transform coefficients, quantized levels, and reconstructed coefficients, in the rate- distortion optimization search process, hence eliminates the need to re-run residual generation, forward transform, and quantization in the encoding stage. Change-Id: I011bfad3a59a380a869ee552e91dae0394ec492e
2013-11-11Replacing raster_block with block in the encoder.Dmitry Kovalev
We only used "ib" to call get_scan() function, which in turn calls get_tx_type_4x4() function. The latter one only needs block index if bsize < BLOCK_8X8 -- under that condition raster_block == block. Change-Id: I697306a0c3cf937acdd4f5e623d4367c5acc0b2f
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-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-25Adding fht{4x4, 8x8, 16x16} functions.Dmitry Kovalev
Adding these functions to encapsulate tx_type check. Changing TX_TYPE to int to match the declaration in vo9_rtch.h. Change-Id: I6f3a2df6e35595ca73b6aaa9e3909ee7bc3fd16f
2013-10-24Merge "Separate encode_block for pass 1 and 2"Jingning Han
2013-10-23Renaming vp9_short_fdct32x32 to vp9_fdct32x32.Dmitry Kovalev
For consistency with idct function names. Change-Id: Ie77b7178e0894c57cd5cb9243c949eb9224ece18
2013-10-23Merge "Renaming vp9_short_fdct16x16 to vp9_fdct16x16."Dmitry Kovalev
2013-10-23Separate encode_block for pass 1 and 2Jingning Han
The encode_block for pass 1 takes simpler functionalities and can save a few branches. The main reason is to make encode_block only used after running rate-distortion optimization search in pass 2, hence allowing dual buffer stack approach later. Change-Id: I9e549ffb758e554fe185e48a07d6e0e01e475bcf
2013-10-23Renaming vp9_short_fdct16x16 to vp9_fdct16x16.Dmitry Kovalev
For consistency with idct function names. Change-Id: I5ca355ba99fdba04f09254be95cf79808b534f71
2013-10-23Renaming vp9_short_fdct8x8 to vp9_fdct8x8.Dmitry Kovalev
For consistency with idct function names. Change-Id: I7b6af2f92c66eff56f84ed29edc3a66af8dc421f
2013-10-22Merge "Using stride (# of elements) instead of pitch (bytes) in fdct4x4."Dmitry Kovalev
2013-10-22Merge "Using stride (# of elements) instead of pitch (bytes) in fdct8x8."Dmitry Kovalev
2013-10-21Using stride (# of elements) instead of pitch (bytes) in fdct4x4.Dmitry Kovalev
Just making fdct consistent with iht/idct/fht functions which all use stride (# of elements) as input argument. Change-Id: I0ba3c52513a5fdd194f1e7e2901092671398985b
2013-10-18Using stride (# of elements) instead of pitch (bytes) in fdct8x8.Dmitry Kovalev
Just making fdct consistent with iht/idct/fht functions which all use stride (# of elements) as input argument. Change-Id: Ibc944952a192e6c7b2b6a869ec2894c01da82ed1
2013-10-18Using stride (# of elements) instead of pitch (bytes) in fdct16x16.Dmitry Kovalev
Just making fdct consistent with iht/idct/fht functions which all use stride (# of elements) as input argument. Change-Id: I2d95fdcbba96aaa0ed24a80870cb38f53487a97d
2013-10-17Using stride (# of elements) instead of pitch (bytes) in fdct32x32.Dmitry Kovalev
Just making fdct consistent with iht/idct/fht functions which all use stride (# of elements) as input argument. Change-Id: Id623c5113262655fa50f7c9d6cec9a91fcb20bb4
2013-10-16Merge changes I6226456d,I97925178,I766c4b74Guillaume Martres
* changes: Use a separate MODE_INFO stream for each tile column Get rid of "this_mi", use "mi_8x8[0]" everywhere instead Make the static_segmentation feature work again
2013-10-16Get rid of "this_mi", use "mi_8x8[0]" everywhere insteadGuillaume Martres
The only case where they were intentionally pointing to different structures was in mbgraph, and this didn't have the expected behavior because both of these pointers are used interchangeably through the code Change-Id: I979251782f90885fe962305bcc845bc05907f80c
2013-10-16Merge "Adding get_band_translate() function."Dmitry Kovalev
2013-10-16Merge "change to use vp9_idct_32x32_add"Yaowu Xu
2013-10-16Adding get_band_translate() function.Dmitry Kovalev
Moving code that gets band_translate array from get_scan_and_band() function to get_band_translate() function. Renaming get_scan_and_band() to get_scan(). Change-Id: I43047c205a1ca2a6e24be44db39dc04b7a385008
2013-10-16Inlining and removing fwd_txm16x16 and fwd_txm8x8 pointers.Dmitry Kovalev
Change-Id: I3528ba1c3fee761918509f9d9dc2d842c69f5a44
2013-10-16change to use vp9_idct_32x32_addYaowu Xu
instead of vp9_idct32x32_1024_add by making use the eob positions Change-Id: Iafcad20f0c75d8e00536c6a20dda76fe40a973fb