summaryrefslogtreecommitdiff
path: root/vp9/common/vp9_blockd.h
AgeCommit message (Collapse)Author
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-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
2013-10-11Making input pointer of any inverse transform constant.Dmitry Kovalev
Also renaming dest_stride to stride in some places. Change-Id: I75f602b623a5a7071d4922b747c45fa0b7d7a940
2013-10-10Merge "Removing inv_txm4x4_1_add and inv_txm4x4_add function pointers."Dmitry Kovalev
2013-10-08Removing inv_txm4x4_1_add and inv_txm4x4_add function pointers.Dmitry Kovalev
We already have itxm_add member in MACROBLOCKD structure. Both inv_txm4x4_1_add and inv_txm4x4_add are just its special cases for different eob values. But eob logic is already implemented in vp9_iwht4x4_add and vp9_idct4x4_add (that's why also removing inverse_transform_b_4x4_add). Change-Id: I80bec9b6f7d40c5e5033c613faca5c819c3e6326
2013-10-07vp9_blockd.h: update get_tx_eob() signatureJames Zern
as the name implies, the segmentation pointer can be const Change-Id: I945f01a077c112ec86c00e35a1e9395bc230c2d9
2013-10-03Adding vp9_get_filter_kernel() function.Dmitry Kovalev
Moving INTERPOLATIONFILTERTYPE enum and subpix_fn_table struct to vp9_filter.h. Adding convenient typedef for subpel kernels. Function vp9_setup_interp_filters() besides setting xd->subpix.filter_x & xd->subpix.filter_y has a side effect of also setting scale factors. This is not required inside decode_modes_b() because scale factors have been already set by set_ref() calls. That's why replacing vp9_setup_interp_filters() call with newly created vp9_get_filter_kernel() call. The behavior of vp9_setup_interp_filters() is unchanged (it is used from the encoder). Change-Id: I3f36d3f7cd8d15195a6e2fafd1777cdaf9ecb847
2013-10-03Change b_mode_info definition from union to structJingning Han
This commit defines b_mode_info as a struct type. This will allow us to further remove the use of PARTITION_INFO in the encoding process. Change-Id: I975b0f7d557b5e0f66545a61b472def76b671cce
2013-09-29cpplint issue in blockd.hJim Bankoski
Change-Id: Ia41e1966431652b839134a1c27feccb25c762539
2013-09-24Replacing unsigned char* with uint8_t*.Dmitry Kovalev
Change-Id: I99a1880aee015ae16311ba05a31aa307df89bef2
2013-09-20Adding best_mv[2] array instead of two variables.Dmitry Kovalev
Change-Id: I584fe50f73879f6a72fada45714ef80893b6d549
2013-09-11New mode_info_context storage -- undo revertScott LaVarnway
mode_info_context was stored as a grid of MODE_INFO structs. The grid now constists of pointers to MODE_INFO structs. The MODE_INFO structs are now stored as a stream (decoder only), eliminating unnecessary copies and is a little more cache friendly. Change-Id: I031d376284c6eb98a38ad5595b797f048a6cfc0d
2013-09-09Revert "New mode_info_context storage"James Zern
This reverts commit dae17734ece414091ba1184f7becd0aa6c0004f1 Encode crashes, leaks and increases integer overflow errors. Change-Id: I595aa2649bb8d0b6552ff91652837a74c103fda2
2013-09-06New mode_info_context storageScott LaVarnway
mode_info_context was stored as a grid of MODE_INFO structs. The grid now constists of a pointer to a MODE_INFO struct and a "in the image" flag. The MODE_INFO structs are now stored as a stream, eliminating unnecessary copies and is a little more cache friendly. For the test clips used, the decoder performance improved by ~4.3% (1080p) and ~9.7% (720p). Patch Set 2: Re-encoded clips with latest. Now ~1.7% (1080p) and 5.9% (720p). Change-Id: I846f29e88610fce2523ca697a9a9ef2a182e9256
2013-08-27Renaming txfm_size to tx_size.Dmitry Kovalev
Change-Id: I752e374867d459960995b24d197301d65ad535e3
2013-08-27Adding get_entropy_context function.Dmitry Kovalev
Moving common code from encoder and decoder to this function. Change-Id: I60fa643fb1ddf7ebbff5e83b6c4710137b0195ef
2013-08-27Merge "Renaming BLOCK_SIZE_TYPE to BLOCK_SIZE in the common/decoder."Dmitry Kovalev
2013-08-27Merge "Renaming D27 to D207."Dmitry Kovalev
2013-08-26Renaming BLOCK_SIZE_TYPE to BLOCK_SIZE in the common/decoder.Dmitry Kovalev
Adding temporary "typedef BLOCK_SIZE BLOCK_SIZE_TYPE" which will go away after encoder's patch. Change-Id: I06ec6a6f079401439843ec981d1496234fd7775c
2013-08-23cosmetics: strip 'VP9_' from defines in vp9 only codeJames Zern
Change-Id: I481d9bb2fa3ec72b6a83d5f04d545ad8013f295c
2013-08-23Renaming D27 to D207.Dmitry Kovalev
I've already renamed d27_predictor to d207_predictor but forgot about the corresponding constant. Change-Id: Id312aa80fc5b5a1ab8a709a33418a029552a6857
2013-08-22Merge "Cleaning up foreach_transformed_block_in_plane."Dmitry Kovalev
2013-08-22Merge "Removing unused foreach_predicted_block function."Dmitry Kovalev
2013-08-21Cleaning up foreach_transformed_block_in_plane.Dmitry Kovalev
Change-Id: I9f45af3894c57f35cb266c255e2b904295d39c34
2013-08-21Removing a lot of duplicated code.Dmitry Kovalev
Adding set_contexts contexts function and call it instead of set_contexts_on_border. Calling txfrm_block_to_raster_xy to get aoff and loff. Change-Id: I41897e344afd2cae1f923f4fdbe63daccf6fe80e
2013-08-21Fix typos and minor stylistic cleanupAdrian Grange
Change-Id: I32e43474e8651ef2eb181d24860a8f118cfea7bf
2013-08-20Removing unused foreach_predicted_block function.Dmitry Kovalev
Moving foreach_predicted_block_in_plane function to vp9_reconinter.c because there is only one usage. Change-Id: I9852feae43fc3cf809b817fc541d043bc5496209
2013-08-20Merge "Passing plane_bsize to foreach_transformed_block_visitor."Dmitry Kovalev
2013-08-20Merge "Moving plane_block_idx from vp9_blockd.h to vp9_quantize.c."Dmitry Kovalev
2013-08-19Adding has_second_ref function.Dmitry Kovalev
Updating implementation of vp9_get_pred_context_single_ref_p1 using has_second_ref function to make code easier to read. Change-Id: Ie8f60403a7195117ceb2c6c43176ca9a9e70b909
2013-08-19Moving plane_block_idx from vp9_blockd.h to vp9_quantize.c.Dmitry Kovalev
Change-Id: Ib8af21f2e7f603c2fb407e5d15a3bba64b545b49