summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2013-05-14WIP: 32x32 idct/recon mergeScott LaVarnway
This patch eliminates the intermediate diff buffer usage by combining the short idct and the add residual into one function. The encoder can use the same code as well. Change-Id: I4ea09df0e162591e420d869b7431c2e7f89a8c1a
2013-05-14Enable recursive partition down to 4x4Jingning Han
This commit allows the rate-distortion optimization recursion at encoder to go down to 4x4 block size. It deprecates the use of I4X4_PRED and SPLITMV syntax elements from bit-stream writing/reading. Will remove the unused probability models in the next patch. The partition type search and bit-stream are now capable of supporting the rectangular partition of 8x8 block, i.e., 8x4 and 4x8. Need to revise the rate-distortion parts to get these two partition tested in the rd loop. Change-Id: I0dfe3b90a1507ad6138db10cc58e6e237a06a9d6
2013-05-14Merge "Do joint motion search iteratively" into experimentalYunqing Wang
2013-05-14Merge "Revert "Preparing vp9_deblock and vp9_denoise to alpha support."" ↵John Koleszar
into experimental
2013-05-14Revert "Preparing vp9_deblock and vp9_denoise to alpha support."John Koleszar
This reverts commit a933311131bfc77ffd1c64b29f7e1688a1c4b192 Change-Id: I2321f88011178381adbcffeda1bcc6a430ab8f1d
2013-05-13Merge "Using loop through all planes inside scale_and_extend_frame ↵Dmitry Kovalev
function." into experimental
2013-05-13Merge "Preparing vp9_deblock and vp9_denoise to alpha support." into ↵Dmitry Kovalev
experimental
2013-05-13Merge "Adding encode_quantization function." into experimentalDmitry Kovalev
2013-05-13Merge "Code cleanup inside vp9_firstpass.c." into experimentalDmitry Kovalev
2013-05-13Adding encode_quantization function.Dmitry Kovalev
Change-Id: Ib7448f7f325ba34a3cba8ab3129028e31e593cf5
2013-05-13Using loop through all planes inside scale_and_extend_frame function.Dmitry Kovalev
Change-Id: I493bcf7bac930e9937a9b57e4b7c803da22728bd
2013-05-13Preparing vp9_deblock and vp9_denoise to alpha support.Dmitry Kovalev
Change-Id: Id1cc1c2663b9c2219cb830ffb4b0c6ab3468dc04
2013-05-13Do joint motion search iterativelyYunqing Wang
Allow motion search multiple times iteratively, and break out the loop if this search couldn't find better motion vectors. Limit the maximum number of search to 2. Tests results: 1. stdhd set: 0.311%(overall psnr); 0.346%(ssim). positive gain on 10 out of 16 clips(best: 2.746% on sunflower; worst: -0.434% on old_town_cross). 2. derf set: 0.016%(overall psnr); 0.062%(ssim). positive gain on half of the clips(best: 0.499% on bowing; worst: -0.387 on city). Change-Id: Ibf0a51776d4caf7707be0586346db08128117559
2013-05-13Merge "Use consistent partition context setup in enc/dec" into experimentalJingning Han
2013-05-13Merge "Force bsize for UV in I4X4 and SPLITMV" into experimentalJingning Han
2013-05-13Merge "Move get_sb_index to vp9_blockd.h" into experimentalJingning Han
2013-05-13Change to band calculation.Paul Wilkins
Change band calculation back to simpler model based on the order in which coefficients are coded in scan order not the absolute coefficient positions. With the scatter scan experiment enabled the results were appear broadly neutral on derf (-0.028) but up a little on std-hd +0.134). Without the scatterscan experiment on the results were up derf as well. Change-Id: Ie9ef03ce42a6b24b849a4bebe950d4a5dffa6791
2013-05-11Use consistent partition context setup in enc/decJingning Han
Move set_partition_seg_context_ to common file. Use consistent context setup conditions for partition probability model update at encoder and decoder. Change-Id: I24b7ed3b1c48e3d2568191a46b70136b99b67b1a
2013-05-11Force bsize for UV in I4X4 and SPLITMVJingning Han
Use 4x4 block coding for UV components arbitrarily in I4X4_PRED and SPLITMV coding modes. This is a temporary solution to enable bit-stream support for recursive partition down to 4x4 block size. Will separate the functionalities of 4x4 block coding rate-distortion out from those of superblocks. Change-Id: I03dc15d5897014f175f3f2c91e9b266091d56797
2013-05-11Move get_sb_index to vp9_blockd.hJingning Han
Use common function to fetch/assign sb_index in rd loop, bit-stream writing and reading. Change-Id: I1d8a214a57ed9cbcd026040436ef33e5e39d65b7
2013-05-10Merge "Fix 4:2:0 assumptions in debug plane output" into experimentalJohn Koleszar
2013-05-10Merge "Subsampling aware allocs and bitstream" into experimentalJohn Koleszar
2013-05-10Merge "Enable recursive partition type search" into experimentalJingning Han
2013-05-10Remove unused mdcountsYunqing Wang
mdcounts seems no longer used. Change-Id: Idd8162e8acfa3f5be7a18767156cc79ccbc2bdee
2013-05-10Add joint motion search in comp_inter_inter mode(experiment)Yunqing Wang
In current code, motion vectors got from single prediction mode are used in compound prediction mode directly. These motion vectors may not give accurate prediction since they are searched independently. In this patch, we took Pascal's suggestion, and did joint motion search in compound prediction mode to find better motion vectors in this situation. Test results: Overall PSNR: 0.570%(derf), 0.918%(stdhd); SSIM: 0.572%(derf), 1.009%(stdhd); The encoder is a little slower. This can be improved since some c code is used in motion search. Change-Id: Ib30c9240f6c56c9b070867b4ca89412a76d9f3c6
2013-05-10Enable recursive partition type searchJingning Han
This commit enables the search for the optimal superblock partition types in the recursion form. The intention is to make the optimization process more concise and ready to support partition down to 4x4 block size next. Change-Id: Iae279a67df3a7cc372553c84c775bc4d2f3e4336
2013-05-09Fix 4:2:0 assumptions in debug plane outputJohn Koleszar
Fixes some debugging code to be able to write out frames with chroma other than 4:2:0. Change-Id: I5ee3d29e584db1f52d2de344db249e927eff10b7
2013-05-09Subsampling aware allocs and bitstreamJohn Koleszar
Make framebuffer allocations according to the chroma subsamping factors in use. A bit is placed in the raw part of the frame header for each of the two subsampling factors. This will be moved in a future commit to make them part of the TBD feature set bits, probably only set on keyframes, etc. Change-Id: I59ed38d3a3c0d4af3c7c277617de28d04a001853
2013-05-09Merge "Use common get_uv_tx_size()" into experimentalJohn Koleszar
2013-05-09Merge "Make firstpass encode Y-only" into experimentalJohn Koleszar
2013-05-09Make firstpass encode Y-onlyJohn Koleszar
The chroma planes are not used during the first pass encode, but the vp9_encode_sb() function was operating on them anyway. This was causing the use of uninitialized memory. Change-Id: I5ebafcd3d5e34ed91a8336dad159b573995a939f
2013-05-08Use common get_uv_tx_size()John Koleszar
Use a single method for calculating the transform size of non-luma planes. Change-Id: I16ebd10e7944d7b9075ab79d15e6a5b5f9bab775
2013-05-08Code cleanup inside vp9_firstpass.c.Dmitry Kovalev
Change-Id: Ia2814402e3c2ec97c24c536c05f0f526fe1a431c
2013-05-08Removing LOOPFILTER_TYPE and corresponding bit in bitstream.Dmitry Kovalev
We don't have two loopfilter types anymore. Change-Id: I53c0137361342c7d00887ad03be3490f0dfa3532
2013-05-08Merge "Removing unused YV12_BUFFER_CONFIG arguments from motion search ↵Dmitry Kovalev
functions." into experimental
2013-05-08Merge "Eliminating several YV12_BUFFER_CONFIG usages." into experimentalDmitry Kovalev
2013-05-08Merge "Renaming 'Speed' to 'speed' inside VP9_COMP struct." into experimentalDmitry Kovalev
2013-05-08Merge "Removing y_to_uv_block_size and y_bsizet_to_block_size functions." ↵Dmitry Kovalev
into experimental
2013-05-08Merge "Extend left/above partition context to per mi(8x8)" into experimentalJingning Han
2013-05-08Removing y_to_uv_block_size and y_bsizet_to_block_size functions.Dmitry Kovalev
Change-Id: I49527ff8dd8bef1074c18a964fed2a575f0b118a
2013-05-08Renaming 'Speed' to 'speed' inside VP9_COMP struct.Dmitry Kovalev
Change-Id: I4374b5af40ee9082ddf7956a9756a15ad9ad5436
2013-05-08Removing unused YV12_BUFFER_CONFIG arguments from motion search functions.Dmitry Kovalev
Also doing a little bit of cleanup inside vp9_mbgraph.c. Change-Id: I9c6711b73810969d2d8fdb19f8edf9ed6e49d1e3
2013-05-08Eliminating several YV12_BUFFER_CONFIG usages.Dmitry Kovalev
Change-Id: Ia85b987c935d545920dcae5a6f44136b1a08a008
2013-05-08Merge "Replacing vp9_{write, write_literal, bit} macros with functions." ↵Dmitry Kovalev
into experimental
2013-05-08Extend left/above partition context to per mi(8x8)Jingning Han
Update and buffer left/above partition information context per 8x8 block. This allows to further enable recursive partition down to 4x4 block size, and hence deprecating I4X4_PRED and SPLITMV. This commit also fixes a context buffer swap/restore issue in 32x32 partition type search. This gives 0.1% performance gain for derf/yt. Will refactor the superblock partition type search into recursion form. Change-Id: Ib61975aca5f12b78d8018481d7fa1393d085689b
2013-05-07Make switchable filter search subsampling-awareJohn Koleszar
Makes the temporary storage of the filtered data agnostic to the number of planes and how they're subsampled. Change-Id: I12f352cd69a47ebe1ac622af30db29b49becb7f4
2013-05-07Merge "Make setup_pred_block subsampling-aware." into experimentalJohn Koleszar
2013-05-07Replacing vp9_{write, write_literal, bit} macros with functions.Dmitry Kovalev
Also removing BOOL_CODER and using vp9_writer instead. Change-Id: I31d1ec661872f7eb1fe869607b6ed0ebfbb03e01
2013-05-07Merge "Renaming Y1 and UV quant prefixes to y_ and uv_." into experimentalDmitry Kovalev
2013-05-07Merge "Adding get_switchable_rate function." into experimentalDmitry Kovalev