summaryrefslogtreecommitdiff
path: root/vp9/common/vp9_blockd.h
AgeCommit message (Collapse)Author
2014-01-17Deprecate best_mv from encoderJingning Han
This commit deprecates the use of best_mv from encoding and bit-stream writing stages. It hence removes the definition from MACROBLOCKD. Change-Id: I8e5302775a2aa4a18900726df407bff881f2dfb1
2014-01-17Use a temp buffer for reconstruction whenhkuang
reference buffer is out of boarder. Change-Id: Ic7ad136e54a4d68abe0fd4345146a86b0ba824e1
2014-01-10Removing mi_height_log2_lookup table.Dmitry Kovalev
Change-Id: I1f0ae2edc3a96b33c0494d165ae756a8feba6184
2014-01-03Adding RefBuffer struct.Dmitry Kovalev
Adding RefBuffer to simplify reference buffer management. The struct has a pointer to image data and scale factors relative to the current frame. Change-Id: If38eb1491ff687cc11428aee339f3e052e2c5d9e
2013-12-19Using single struct to represent scale factors.Dmitry Kovalev
Moving back to scale_factors struct. We don't need anymore x_offset_q4 and y_offset_q4 because both values are calculated locally inside vp9_scale_mv function. Change-Id: I78a2122ba253c428a14558bda0e78ece738d2b5b
2013-12-19Merge "Converting vp9_treecoder.h to vp9_prob.{h, c}"Dmitry Kovalev
2013-12-16Remove border extension in intra frame prediction.hkuang
Change-Id: Id677df4d3dbbed6fdf7319ca6464f19cf32c8176
2013-12-16Converting vp9_treecoder.h to vp9_prob.{h, c}Dmitry Kovalev
Moving vp9_norm probability table from vp9_entropy.c to vp9_prob.c Change-Id: Ie757b73860c6f43130790c332b292e2a1a81b788
2013-12-09Merge "Implenment on demand border extension. In place extend the border ↵hkuang
now. Next commit will totally remove the border."
2013-12-09Implenment on demand border extension. In place extendhkuang
the border now. Next commit will totally remove the border. Change-Id: Ic1e1ca9cc34f81c688715b3948689b47df63a151
2013-12-09Removing max_uv_txsize_lookup lookup table.Dmitry Kovalev
Adding get_uv_tx_size_impl() with tx size selection logic, rewriting get_uv_tx_size(). Change-Id: I3ecb108059a41be227a8c89a0710bd174f508951
2013-12-06Removing BLOCK_TYPES and adding PLANE_TYPES constant instead.Dmitry Kovalev
Change-Id: Ic3bb862e93aedf6a489a33ea6f7e5097d96855ee
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-11-27Moving reaster_block_offset{,_int16} from vp9_blockd.h to vp9_rdopt.h.Dmitry Kovalev
Change-Id: I5a5888d4639cc6b7eb266be47581dd15ba08c91e
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-25Merge "Moving {left, right}_block_mode to vp9_blockd.h."Dmitry Kovalev
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-21Moving {left, right}_block_mode to vp9_blockd.h.Dmitry Kovalev
Both functions have no relation to motion vectors, so moving them from vp9_findnearmv.h to vp9_blockd.h. Change-Id: I74f524267886ab0fff4a2da793a10c906ed0f43a
2013-11-20Removing plane_block_{width, height} functions.Dmitry Kovalev
Change-Id: I29c0dfcf41a1253d5e2a0d2ff740c0c38ebaa5a2
2013-11-18Removing raster_block_offset_uint8() function.Dmitry Kovalev
There is no need to use that function, it is much clear to pass offset directly to the buffer. Change-Id: I9026cb0c5094c46f97df5d7f7daeb952f2843b24
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-13Merge "Optimizing set_contexts() function."Dmitry Kovalev
2013-11-12Moving q_index from MACROBLOCKD to MACROBLOCK.Dmitry Kovalev
Moving because q_index is used only by encoder. Change-Id: I0b96175614ed4fd3d76ee56a0ba36258e1e896f6
2013-11-12Merge "Moving {sb, mb, b, ab}_index from MACROBLOCKD to MACROBLOCK."Dmitry Kovalev
2013-11-11Moving {sb, mb, b, ab}_index from MACROBLOCKD to MACROBLOCK.Dmitry Kovalev
We use {sb, mb, b, ab}_index only inside encoder, so moving them into appropriate data structure. Change-Id: Ib5c1036716354d9d321e11a60c1634c1cb8f9716
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-08Optimizing set_contexts() function.Dmitry Kovalev
Inlining set_contexts_on_border() into set_contexts(). The only difference is the additional check that "has_eob != 0" in addition to "xd->mb_to_right_edge < 0" and "xd->mb_to_right_edge < 0". If has_eob == 0 then memset does the right thing and works faster. Change-Id: I5206f767d729f758b14c667592b7034df4837d0e
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-01Merge "Cleanup. Adding const to function pointer arguments."Dmitry Kovalev
2013-10-31Cleanup. Adding const to function pointer arguments.Dmitry Kovalev
Change-Id: I12c67c8c0fa1aa7fb3f7d6cc2ef65be29c4ea292
2013-10-28Removing is_intra_mode() function.Dmitry Kovalev
It is enough to check just block type: intra or inter. Intra block implies intra prediction mode, and inter block implies inter mode. Change-Id: I3cf98731a3935f670a3cd8e2b2443483eb944be4
2013-10-28vp9: add above/left_context to MACROBLOCKDJames Zern
Change-Id: I75aab21c1692cbad717564cbb436578fddbc348d
2013-10-28vp9: add above/left_seg_context to MACROBLOCKDJames Zern
Change-Id: I9cbb768c5f857a096cf6c29d6755d0e5e6728435
2013-10-24Merge changes I1868fb75,I9ff504c6Dmitry Kovalev
* changes: Renaming INTERPOLATIONFILTERTYPE to INTERPOLATION_TYPE. Adding VP9_FRAME_MARKER constant.
2013-10-24Merge "vp9/extend_for_intra: avoid crossing tile boundary"James Zern
2013-10-24vp9/extend_for_intra: avoid crossing tile boundaryJames Zern
Change-Id: I0d8a71778aa3c73b8b1673e14053074bb866548b
2013-10-23Renaming INTERPOLATIONFILTERTYPE to INTERPOLATION_TYPE.Dmitry Kovalev
Change-Id: I1868fb75ed88bfa65c1c2ca24677d65f2894d713
2013-10-23Merge "Make decode modules independent of tile index"Jingning Han
2013-10-22Remove right_available member from VP9_COMPAdrian Grange
This member of VP9_COMP is no longer used, so I removed it. Change-Id: I3509f52756da4768a3e4581cec5ed5d2a70d5fb8
2013-10-22Make decode modules independent of tile indexJingning Han
Assign the pointer to mode_info stream per tile. Remove the use of tile_col in the decoding modules. Change-Id: I7df87086708a3d92c5e20e86bcfb04e458ff47a6
2013-10-22Merge "Removing NUM_ prefix from constant names."Dmitry Kovalev
2013-10-21Inlining set_partition_seg_context function.Dmitry Kovalev
We used set_partition_seg_context() only before calls to: 1. update_partition_context() 2. partition_plane_context() Moving these functions from vp9_blockd.h to vp9_onyxc_int.h and inlining set_partition_seg_context into them. After that it is not necessary to have {above, left}_seg_context fields in MACROBLOCKD struture, so removing them also. Change-Id: I4723f59e1c8f3788432b7f51185d8d747b3a97f9
2013-10-21Moving allow_high_precision_mv from MACROBLOCKD to VP9_COMMON.Dmitry Kovalev
This value is a global frame-level flag, not a macroblock-level. Change-Id: Ie8c5790a931150741c2167c00c3e3dd2cf26744d
2013-10-18Removing NUM_ prefix from constant names.Dmitry Kovalev
Renames for consistency with other constants: NUM_FRAME_TYPES -> FRAME_TYPES NUM_PARTITION_CONTEXTS -> PARTITION_CONTEXTS Change-Id: I3db30acb2868eb0a424237c831087b2e264ec47f
2013-10-18Passing block index explicitly instead of using get_sb_index().Dmitry Kovalev
That makes decoder and encoder (only bitstream writing part) a little bit simpler and faster. Moving get_sb_index() function to the encoder. Change-Id: Ie91aaeefd69c84b085948267b33556a7666c6278
2013-10-16Use a separate MODE_INFO stream for each tile columnGuillaume Martres
This should make parallel tiles decoding easier to implement. Change-Id: I6226456dd11f275fa991e4a7a930549da6675915
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