summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encodeframe.c
AgeCommit message (Collapse)Author
2013-05-07Merge "Merge SB8X8 into the codebase" into experimentalJingning Han
2013-05-07Merge SB8X8 into the codebaseJingning Han
Pull sb8x8 out of experimental list. verified via borg run tests. Fixed unit test failures. Change-Id: I12a4bbd17395930580c048ab68becad1ffe46e76
2013-05-06Removed vp9_setup_intra_recon()Scott LaVarnway
This setup is now handled by vp9_build_intra_predictors() when left_available and/or up_available is zero. Change-Id: I59cec0ab95f8be69ce885fd20727510e4deef8a0
2013-05-03Merge "Separate transform and quant from vp9_encode_sb" into experimentalJohn Koleszar
2013-05-03Separate transform and quant from vp9_encode_sbJohn Koleszar
This allows removing a large number of transform size specific functions, as well as supporting 444/alpha by routing all code through the subsampling-aware path. Change-Id: Ieb085cebe9f37f24fc24de179898b22abfda08a4
2013-05-03Merge "Create common vp9_encode_sb{,y}" into experimentalJohn Koleszar
2013-05-02Fix use of wrong rate/distortion variables in 16x8 r/d check.Ronald S. Bultje
Change-Id: Ib5961b4c8ca84d54c84b2651a4e0317c72fe7da4
2013-05-02Fix 16x16-iteration indexing bug in main encode_sb_row loop.Ronald S. Bultje
With this, encoder/decoder appear to match with sb8x8 experiment. Needs some larger-scale testing. Change-Id: I44d3cac37b3c98264985ed0a0fc763c30089aa64
2013-05-02Fix state update in sb8x8 rate-distortion loopJingning Han
Update mode_info of 8x8 blocks within the scope of current block. Change-Id: I110c599e60664a5acde6afd919b107cea8419a0d
2013-05-02Create common vp9_encode_sb{,y}John Koleszar
Creates a common encode (subtract, transform, quantize, optimize, inverse transform, reconstruct) function for all sb sizes, including the old 16x16 path. Change-Id: I964dff1ea7a0a5c378046a069ad83495f54df007
2013-05-02Fix i4x4 mode reading and writing in sb8x8 bitstream.Ronald S. Bultje
Don't allow i4x4 except for sb8x8 recursion step. Read only 4 (not 16) i4x4 submodes if we are i4x4. Change-Id: Iaaaced1a134006b2c96eed66f014300eae41e0ed
2013-05-02Set transform size correctly for non-tx_select splitmv/i4x4_pred.Ronald S. Bultje
Fixes mismatch in keyframes with sb8x8 experiment enabled. Change-Id: Id44c25e1cd32be5c6543ed8cd840a5b0c8e726f1
2013-05-02Always initialize values in sb/mb_partitioning.Ronald S. Bultje
This doesn't affect the output, because in previous cases where the values were uninitialized, this was because the mb_row/col is outside the codable area, and thus encode_sb will test them for the next decomposition-level, but return right after that on size-check. All this does is prevent a warning in valgrind. Change-Id: I90d8a29e6f8ebb2b0143684e08fe77ae3a0816b1
2013-05-02Fix some more offset errors in sb8x8.Ronald S. Bultje
Change-Id: I83677227f7610fdf2db9f15f87fecd4d8e072427
2013-05-01Store splitmv modes in context after 8x8 rd loop.Ronald S. Bultje
Change-Id: I07aa89a67e0ac5f99ef0c448553dbc46b0ed27f2
2013-04-30Merge "Make vp9_optimize_sb* common" into experimentalJohn Koleszar
2013-04-30Make vp9_optimize_sb* commonJohn Koleszar
Unify the various vp9_optimize_sb functions into one that handles all transform sizes. Change-Id: I48b642fbfb3e72cc2e0bcf1d0317a80a80547882
2013-04-30Merge "Cleaning up encoder segmentation code." into experimentalDmitry Kovalev
2013-04-30sb8x8 integration in rd loop.Ronald S. Bultje
Work-in-progress, not yet ready for review. TODO items: - bitstream writing (encoder) and reading (decoder) - decoder reconstruction Change-Id: I5afb7284e7e0480847b47cd0097cb469433c9081
2013-04-30Migrating SPLITMV_4X4 decoding into decode_atomJingning Han
Separate the decoding process of 4x4 block based coding (both intra and inter) from decode_mb and move it into decode_atom_. This allows to further move the rest per 16x16 block decoding of decode_mb into decode_sb, and hence eventually deprecating decode_mb when SB8X8 is enabled. Change-Id: I678cb8007d8a57b792d7a23020edb0c74fbf4237
2013-04-29Separate I4X4_PRED coding from macroblock modulesJingning Han
Separate the functionality of I4X4_PRED from decode_mb. Use decode_atom_intra instead, to enable recursive partition of superblock down to 8x8. Change-Id: Ifc89a3be82225398954169d0a839abdbbfd8ca3b
2013-04-29Cleaning up encoder segmentation code.Dmitry Kovalev
Moving code from vp9_pack_bitstream to new function encode_segmentation. Change-Id: I1f1e59a1f038618ad95162b7db4b6f8164850ea8
2013-04-29Merge "Merge encode_sb and encode_sb64 in a recursive encode_sb/b function." ↵Ronald S. Bultje
into experimental
2013-04-29Merge "Fix mi_row argument to update_stats()." into experimentalRonald S. Bultje
2013-04-29Merge "Factor out assigning correct partitioning seg_context pointers." into ↵Ronald S. Bultje
experimental
2013-04-29Merge "Use recursive function in resetting txfm_size for skip-blocks." into ↵Ronald S. Bultje
experimental
2013-04-29Merge encode_sb and encode_sb64 in a recursive encode_sb/b function.Ronald S. Bultje
Change-Id: Ifd1f7319e398381ca7d55aaacc68c39a1319d651
2013-04-29Fix mi_row argument to update_stats().Ronald S. Bultje
This doesn't change output, because the argument isn't actually used ATM. However, we should fix it for consistency. Change-Id: I7b7326a8e92c0d411c999ec2c781204b516ed53d
2013-04-29Factor out assigning correct partitioning seg_context pointers.Ronald S. Bultje
Change-Id: I6e787915a92e0abdea86adaa3e1106aa9c165034
2013-04-29Use recursive function in resetting txfm_size for skip-blocks.Ronald S. Bultje
This is shorter than fully writing out all cases (52 vs. 84 LOC), and is easier to extend. Change-Id: Ic75f86f15cf037543c3dc6234d9ac088205a0ed1
2013-04-29Merge "Immigrate tokenize_mb into tokenize_sb" into experimentalJingning Han
2013-04-29Immigrate tokenize_mb into tokenize_sbJingning Han
Unify the tokenize_ function and enable configurable block size for superblock 8x8. We are immigrating the functionalities of macroblock handles into superblock ones, and eventually will remove encode_mb and decode_mb. To be continued on detokenize_ module. Change-Id: I9f81e8c2291082535cf5e0c4b662eb24fb7c8a7f
2013-04-29Change above/left_context to use an 8x8 basis.Ronald S. Bultje
Output changes slightly because of a minor bug in (at least) the sb32x16 block2above tx16x16 tables that previously existed in vp9_blockd.c. Change-Id: I624af28ac200a8322d64454cf05c79e9502968cc
2013-04-26Grow MODE_INFO array to use an 8x8 basis.Ronald S. Bultje
Change-Id: I087e08e7909a406b71715b8525c104208daa6889
2013-04-26Remove destination pointers from BLOCKDJohn Koleszar
Access these members from MACROBLOCKD instead. Change-Id: I7907230dd473ff12ebe182b9280d8b7f12a888c4
2013-04-26Removed bmi from blockdScott LaVarnway
This originally was "Removed update_blockd_bmi()". Now, this patch removed bmi from blockd and uses the bmi found in mode_info_context. Eliminates unnecessary bmi copies between blockd and mode_info_context. Change-Id: I287a4972974bb363f49e528daa9b2a2293f4bc76
2013-04-25Remove BLOCK structureJohn Koleszar
All members can be referenced from their per-plane counterparts, and removes assumptions about 24 blocks per macroblock. Change-Id: I593fb0715e74cd84b48facd1c9b18c3ae1185d4b
2013-04-25Adding is_inter_mode function.Dmitry Kovalev
Change-Id: I2d32d46002cb92c63050c2b8328865c406103621
2013-04-25Merge "Move sbsegment out of experimental list" into experimentalJingning Han
2013-04-24Merge two similar functions into oneYaowu Xu
Function set_mb_row() and set_mb_col() do similar work and are always called together, this commit merged them into a single function for clarity and easy maintainence. This was a TODO item. Change-Id: I956bd9ed6afb8b2b0469b20fd8bc893b26f8a0f3
2013-04-24Move sbsegment out of experimental listJingning Han
Move rectangular superblock coding out of experimental list. Change-Id: I96c37547d122330d666a67b4bf577ae54547857f
2013-04-24Contextual entropy coding of partition syntaxJingning Han
This commit enables selecting probability models for recursive block partition information syntax, depending on its above/left partition information, as well as the current block size. These conditional probability models are reasonably stationary and consistent across frames, hence the backward adaptive approach is used to maintain and update the contextual models. It achieves coding performance gains (on top of enabling rectangular block sizes): derf: 0.242% yt: 0.391% hd: 0.376% stdhd: 0.645% Change-Id: Ie513d9673337f0d27abd65fb566b711d0844ec2e
2013-04-24Extension of segmentation to 8 segments.Paul Wilkins
Also some further simplification following removal of top node code. There is an issue in regards to the shared file vp8cx.h in regard to the roi_map as this interface assumes that there are only 4 segments. I have left the value here as 4 for now meaning that the roi_map interface is broken for VP9. Note that this change would have been easier if I hadn't had to search for hard wire instances of the number 4 and <= 3. Change-Id: Ia8b6deea4be4dbd20deb1656e689dd43a5f190e8
2013-04-23Merge "Remove coeff from BLOCK" into experimentalJohn Koleszar
2013-04-23Merge "Convert coeff to per-plane MACROBLOCK data" into experimentalJohn Koleszar
2013-04-23Merge "Enable rectangular support for comp inter-intra" into experimentalJingning Han
2013-04-23Remove coeff from BLOCKJohn Koleszar
Lookup the data per-plane from the MACROBLOCK struct. Change-Id: I9253c4d3cf886aa9ab4aeab23a2156bfcf994ede
2013-04-23Convert coeff to per-plane MACROBLOCK dataJohn Koleszar
This commit moves the coeff storage from the MACROBLOCK struct to its per-plane part. The next commit will remove the coeff member from the BLOCK structure so that it is consistently accessed per-plane. Also refactors vp9_sb_block_error_c and vp9_sb_uv_block_error_c to be variable subsampling aware. Change-Id: I18c30f87f27c3a012119b6c1970d5fa499804455
2013-04-23Merge "Move src_diff to per-plane MACROBLOCK data" into experimentalJohn Koleszar
2013-04-23Enable rectangular support for comp inter-intraJingning Han
This commit enables rectangular block prediction of compound inter-intra mode. It combines the mb/sb32/sb64 prediction functions into a unified version with configurable block width and height. This fixes the enc/dec mismatch of the codebase when comp-interintra-pred is enabled. Change-Id: I1d0db2f1f184007802df04fcd12b9dadb3189ff0