Age | Commit message (Collapse) | Author |
|
|
|
Moving because q_index is used only by encoder.
Change-Id: I0b96175614ed4fd3d76ee56a0ba36258e1e896f6
|
|
|
|
We use {sb, mb, b, ab}_index only inside encoder, so moving them into
appropriate data structure.
Change-Id: Ib5c1036716354d9d321e11a60c1634c1cb8f9716
|
|
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
|
|
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
|
|
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
|
|
|
|
Change-Id: I12c67c8c0fa1aa7fb3f7d6cc2ef65be29c4ea292
|
|
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
|
|
Change-Id: I75aab21c1692cbad717564cbb436578fddbc348d
|
|
Change-Id: I9cbb768c5f857a096cf6c29d6755d0e5e6728435
|
|
* changes:
Renaming INTERPOLATIONFILTERTYPE to INTERPOLATION_TYPE.
Adding VP9_FRAME_MARKER constant.
|
|
|
|
Change-Id: I0d8a71778aa3c73b8b1673e14053074bb866548b
|
|
Change-Id: I1868fb75ed88bfa65c1c2ca24677d65f2894d713
|
|
|
|
This member of VP9_COMP is no longer used, so I removed it.
Change-Id: I3509f52756da4768a3e4581cec5ed5d2a70d5fb8
|
|
Assign the pointer to mode_info stream per tile. Remove the use of
tile_col in the decoding modules.
Change-Id: I7df87086708a3d92c5e20e86bcfb04e458ff47a6
|
|
|
|
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
|
|
This value is a global frame-level flag, not a macroblock-level.
Change-Id: Ie8c5790a931150741c2167c00c3e3dd2cf26744d
|
|
Renames for consistency with other constants:
NUM_FRAME_TYPES -> FRAME_TYPES
NUM_PARTITION_CONTEXTS -> PARTITION_CONTEXTS
Change-Id: I3db30acb2868eb0a424237c831087b2e264ec47f
|
|
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
|
|
This should make parallel tiles decoding easier to implement.
Change-Id: I6226456dd11f275fa991e4a7a930549da6675915
|
|
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
|
|
Also renaming dest_stride to stride in some places.
Change-Id: I75f602b623a5a7071d4922b747c45fa0b7d7a940
|
|
|
|
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
|
|
as the name implies, the segmentation pointer can be const
Change-Id: I945f01a077c112ec86c00e35a1e9395bc230c2d9
|
|
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
|
|
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
|
|
Change-Id: Ia41e1966431652b839134a1c27feccb25c762539
|
|
Change-Id: I99a1880aee015ae16311ba05a31aa307df89bef2
|
|
Change-Id: I584fe50f73879f6a72fada45714ef80893b6d549
|
|
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
|
|
This reverts commit dae17734ece414091ba1184f7becd0aa6c0004f1
Encode crashes, leaks and increases integer overflow errors.
Change-Id: I595aa2649bb8d0b6552ff91652837a74c103fda2
|
|
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
|
|
Change-Id: I752e374867d459960995b24d197301d65ad535e3
|
|
Moving common code from encoder and decoder to this function.
Change-Id: I60fa643fb1ddf7ebbff5e83b6c4710137b0195ef
|
|
|
|
|
|
Adding temporary "typedef BLOCK_SIZE BLOCK_SIZE_TYPE" which will go away
after encoder's patch.
Change-Id: I06ec6a6f079401439843ec981d1496234fd7775c
|
|
Change-Id: I481d9bb2fa3ec72b6a83d5f04d545ad8013f295c
|
|
I've already renamed d27_predictor to d207_predictor but forgot about the
corresponding constant.
Change-Id: Id312aa80fc5b5a1ab8a709a33418a029552a6857
|
|
|
|
|
|
Change-Id: I9f45af3894c57f35cb266c255e2b904295d39c34
|
|
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
|
|
Change-Id: I32e43474e8651ef2eb181d24860a8f118cfea7bf
|