Dmitry Kovalev
b035e2f9ae
Moving frame_coef_probs from VP9_COMP to local scope.
...
Change-Id: I58b82c94e893f37b3a07f481abdb3f6c6728f992
2014-04-30 12:52:13 -07:00
Dmitry Kovalev
e608418899
Renaming MB_PREDICTION_MODE to PREDICTION_MODE.
...
Actually, it would be great to have two separate enums INTRA_MODES and
INTER_MODES in future.
Change-Id: I6c4147cf0002853da9c1e03fe9514eab876f01c8
2014-04-22 17:48:31 -07:00
Dmitry Kovalev
ef003078e8
Renaming "onyx" to "encoder".
...
Actual renames:
vp9_onyx_if.c -> vp9_encoder.c
vp9_onyx_int.h -> vp9_encoder.h
Change-Id: I80532a80b118d0060518e6c6a0d640e3f411783c
2014-04-22 14:57:05 -07:00
Deb Mukherjee
d35df2d8ea
High-level hooks for Profile 2 (10/12 bit)
...
Adds some high-level hooks for profile 2 before further
progress on the implementation.
According to the definitiion in this patch:
1. Profile 2 only supports 10 or 12 bit color but not 8
2. Profile 2 supports all color sampling modes: 444, 422 and 420,
and alpha plane.
3. Profile 3 is currently undefined.
Please consider the definition carefully and suggest modifications
to the definition as needed.
Change-Id: I5b284fc679e54ac5aee171af72fa7994cfd28995
2014-04-08 16:18:34 -07:00
Dmitry Kovalev
107929dc6b
Adding FAST_COEFF_UPDATE enum.
...
Change-Id: I75ad328c6d719df81cc24f3ae21c152af4ebdacc
2014-04-04 10:31:34 -07:00
Dmitry Kovalev
db85ea2184
Making frame_branch_ct a local array.
...
Change-Id: Id79ed3b87fd6055e96738af53eb964addd0b918b
2014-04-02 19:07:51 -07:00
Deb Mukherjee
97f4fb7b5f
Rate ctrl changes to track target bitrates closer
...
Turns off the DISABLE_RC_LONG_TERM_MEM macro and makes other changes
in the way the bits are updated, to make 2-pass rate control track
target bitrates closer.
Change-Id: I5f3be4b11c2908e6a9a9a1dd4fcf4e65531c44d8
2014-04-02 11:16:20 -07:00
Dmitry Kovalev
86f44a91f4
Renaming two members in MACROBLOCKD struct.
...
Renames:
mi_8x8 -> mi
mode_info_stride -> mi_stride
Change-Id: I66f3e5fd1e7b7f46f108af5bb711c5fd9493c1be
2014-04-01 17:46:40 -07:00
Dmitry Kovalev
4cb37bff96
Removing redundant {above, left}_seg_context manipulation code.
...
Change-Id: Ib3c1746e61220c629cbd971b2458aa686b5c9e36
2014-03-21 12:12:55 -07:00
Dmitry Kovalev
7ad40117f1
Reusing {above, left}_seg_context vars in both encoder and decoder.
...
Change-Id: Id1fa36c92cb007b73a450cc8552e810cedad38b9
2014-03-20 16:15:57 -07:00
Dmitry Kovalev
f8f8c6d44c
Adding reusable get_y_mode_prob() function.
...
Change-Id: Iebd182d7aeebc0f8964b6fd35057449bb25b00c1
2014-03-10 10:50:16 -07:00
Dmitry Kovalev
ba4bcee616
Cleaning up pack_inter_mode_mvs() function.
...
Change-Id: Ia60352c7173b59f3f08920ba86096864d4e8250b
2014-03-07 16:00:23 -08:00
Dmitry Kovalev
72ba322060
Removing unused active_section global variable.
...
Change-Id: Ib8c41829a4b5a618b6bda24d9b7df2d491d0fca0
2014-03-07 14:05:51 -08:00
Dmitry Kovalev
021073fd5f
Adding vp9_cost.{h, c} files.
...
Change-Id: If90c1bc822873156d4e38fca1938e4907f6c95f0
2014-03-05 11:57:57 -08:00
Yaowu Xu
b9d28e715f
vp9_prob_diff_update_savings_search_model(): remove params
...
Two paramemters are not in use, therefore are removed.
Change-Id: I41eb601b7b4bf2feedb13b3f240315656d8694f9
2014-03-02 20:36:32 -08:00
Yaowu Xu
3678ed36b9
Remove a parameter from write_selected_tx_size()
...
The parameter was never used.
Change-Id: I99fd9aad697917ddbe3d10c71cae344228fafc31
2014-03-01 10:40:39 -08:00
Dmitry Kovalev
d5e6f09585
Merge "Cleaning up vp9_bitstream.{c, h} files."
2014-02-28 11:01:55 -08:00
Dmitry Kovalev
51e0e0c0a7
Merge "Cleaning up encode_ref_frame() to match read_ref_frames()."
2014-02-28 10:51:21 -08:00
Dmitry Kovalev
92a8beab1f
Cleaning up encode_ref_frame() to match read_ref_frames().
...
Change-Id: Ie9c66a93d45271e54b84bea6a38f07db6c4fd1ca
2014-02-27 18:24:16 -08:00
Dmitry Kovalev
bb65be98bb
Reusing existing mem_{get, put}_be32() functions.
...
Change-Id: Iba128039534e16a6e0a8cfe7e58306c4655e9f0d
2014-02-27 17:40:30 -08:00
Dmitry Kovalev
c63e27b6d8
Cleaning up vp9_bitstream.{c, h} files.
...
Change-Id: Ida712a91694e89e318181f93afee2d0ee4f4ad94
2014-02-27 15:32:11 -08:00
Paul Wilkins
98bf47df16
Merge "Remove comment from calls to vp9_clear_system_state."
2014-02-19 05:14:51 -08:00
Dmitry Kovalev
35bd886864
Merge "Cleaning up pack_inter_mode_mvs() function."
2014-02-19 01:04:36 -08:00
Adrian Grange
9b9c33a2b8
Remove comment from calls to vp9_clear_system_state.
...
Removed the comment "// __asm emms;" from all calls
to vp9_clear_system_state.
Change-Id: Ib4dae69c1cdf3f185b04184a870cd70c4d703f10
2014-02-18 15:43:42 -08:00
Dmitry Kovalev
a6bd65080f
Removing unused tree_update_hist[] array.
...
Change-Id: If2e8e06c74d065323523904ff1771590fd48cabc
2014-02-14 17:22:34 -08:00
Jim Bankoski
00717e804c
vp9_bitstream.c resolve warnings in vs
...
Change-Id: I65677b7822204dc7344c67b8080e90633afc13dc
2014-02-14 11:19:39 -08:00
Dmitry Kovalev
19a8eee1f0
Cleaning up pack_inter_mode_mvs() function.
...
Change-Id: I48ad06e3e1ae9720a0683022621f4504e3bebce6
2014-02-13 19:21:10 -08:00
Dmitry Kovalev
40af118a41
Removing reference to non-existing context_counters array.
...
Change-Id: I84668fa7b9487102e9bde5aea10f5f42efcd042c
2014-02-13 15:08:07 -08:00
Dmitry Kovalev
004c8c636e
Renaming skip_coeff to skip for consistency.
...
Change-Id: I036e815ca63d00cba71202ae09ba0f6ef745dcb8
2014-02-12 17:44:12 -08:00
Dmitry Kovalev
2b3b29332a
Merge "Removing SECTIONBITS_OUTPUT."
2014-02-04 16:52:12 -08:00
Jim Bankoski
9dec7712ab
static function convert to inline or global vp9_blockd.h
...
Change-Id: Ifdd951f24932839f06d1c700371662511dde6ebe
2014-01-31 19:50:40 -08:00
Dmitry Kovalev
b107f2c470
Renaming "mbskip" to "skip".
...
Change-Id: I27a30b43eae026a77f92958e2238d02d9cdf7832
2014-01-29 14:48:42 -08:00
Dmitry Kovalev
a8285de7a8
Removing SECTIONBITS_OUTPUT.
...
This code seems to be unmaintaned for a long time (e.g. because of __int64
type usage).
Change-Id: I35fd60d985032fe824f6fd6266910378adcca519
2014-01-29 14:15:34 -08:00
Dmitry Kovalev
4264c93844
Renaming INTERPOLATION_TYPE to INTERP_FILTER.
...
Corresponding renames:
subpel_kernel => interp_kernel
vp9_get_filter_kernel() => vp9_get_interp_kernel()
pred_filter_type => pred_interp_filter
adaptive_pred_filter_type => adaptive_pred_interp_filter
mcomp_filter_type => interp_filter
read_interp_filter_type() => read_interp_filter()
write_interp_filter_type() => write_interp_filter()
fix_mcomp_filter_type() => fix_interp_filter()
Change-Id: I1fa61fa1dc81ebbf043457c3ee2d8d4515bee6d3
2014-01-24 15:57:28 -08:00
Dmitry Kovalev
03eb63c114
Merge "Removing MODE_STATS."
2014-01-24 15:53:12 -08:00
Yaowu Xu
63fb34c9bc
Revert "Removing unnecessary vp9_clear_system_state() calls."
...
This reverts commit 36406fdb07
.
Change-Id: I0bd31d03ce2a562d0624f2cd67593d0d25df4a54
2014-01-23 09:05:08 -08:00
Dmitry Kovalev
36406fdb07
Removing unnecessary vp9_clear_system_state() calls.
...
Change-Id: I597645a15fff2d3a1104861a5c90f64394952e0b
2014-01-22 02:39:52 -08:00
Dmitry Kovalev
a001016996
Removing MODE_STATS.
...
Change-Id: I7520e1cc82b749187c9445356dd7b54f3f3826cc
2014-01-17 17:30:22 -08:00
Jingning Han
b461c0884e
Deprecate best_mv from encoder
...
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-17 17:15:34 -08:00
Dmitry Kovalev
b9592fa0b3
Removing intra_mode_stats.
...
Change-Id: I6e0895f7f826b484ac86945e6abe3a706a6b0399
2014-01-13 11:40:33 -08:00
Dmitry Kovalev
b16fac42d4
Using VP9_COMMON instead of VP9_COMP.
...
Change-Id: If7d3958653104f3e170853e931f8489de3ecf3cc
2014-01-08 18:36:38 -08:00
Dmitry Kovalev
7919bf6afd
Adding get_ref_frame_buffer() function.
...
Encapsulating direct references to lst_fb_idx, gld_fb_idx, alt_fb_idx.
Change-Id: I7e65ba3f131286e433e6651970c5647311fa4687
2014-01-06 14:50:54 -08:00
Dmitry Kovalev
1e8b5bf4ac
Merge "Removing vp9_findnearmv.{h, c} files."
2013-12-26 13:38:38 -08:00
Dmitry Kovalev
47d482cb0a
Merge "Reusing FRAME_COUNTS in the encoder."
2013-12-20 10:56:31 -08:00
Dmitry Kovalev
987810ad95
Removing vp9_findnearmv.{h, c} files.
...
Moving all code from that files to vp9_mvref_common.{h, c}.
Change-Id: Ibc4afcb8cea6847166ff411130e93611ebe63b20
2013-12-19 17:39:57 -08:00
Dmitry Kovalev
c67ee5ea24
Merge "Converting vp9_treecoder.h to vp9_prob.{h, c}"
2013-12-19 11:03:30 -08:00
Dmitry Kovalev
4e84ad1fc6
Reusing FRAME_COUNTS in the encoder.
...
Replacing: intra_inter_count, y_mode_count, y_uv_mode_count.
Change-Id: I5d70f73288af6effe6176e26400138067a2ae2a3
2013-12-18 18:52:58 -08:00
Dmitry Kovalev
1d23a6594b
Reusing FRAME_COUNTS in the encoder.
...
Change-Id: I6ab9fe2326ebbadf0dd10cca9f66cf8277e3f43b
Replacing: comp_inter_count, single_ref_count, comp_ref_count.
2013-12-16 20:12:47 -08:00
Dmitry Kovalev
b5c9261832
Converting vp9_treecoder.h to vp9_prob.{h, c}
...
Moving vp9_norm probability table from vp9_entropy.c to vp9_prob.c
Change-Id: Ie757b73860c6f43130790c332b292e2a1a81b788
2013-12-16 12:53:09 -08:00
Dmitry Kovalev
b41574e379
Removing unnecessary assert(delta != 0) from encode_loopfilter().
...
Change-Id: I8ae093d0b61d71d3c294b95d98d0178f7f67c8f6
2013-12-13 18:05:15 -08:00
Dmitry Kovalev
df13e01665
Merge "Renaming treed_write() to vp9_write_tree()."
2013-12-13 11:19:04 -08:00
Deb Mukherjee
7edd5170b5
Merge "Changes interfaces to vp9_get_compressed_data fn"
2013-12-11 15:50:40 -08:00
Deb Mukherjee
e33855cc47
Changes interfaces to vp9_get_compressed_data fn
...
Silences some lint warnings in previous patches
Change-Id: I04bf47ebe7e63a95fd322719a3154e589c115d78
2013-12-11 14:22:51 -08:00
Dmitry Kovalev
021a15fe9f
Renaming treed_write() to vp9_write_tree().
...
Making name consistent with vp9_read_tree().
Change-Id: Ie213ffe0d5345bf3035f28e17f610894fec79205
2013-12-10 18:13:29 -08:00
Dmitry Kovalev
2dd20e468a
Cleaning up skip context calculation.
...
Renames:
vp9_get_pred_context_mbskip => vp9_get_skip_context
vp9_get_pred_prob_mbskip => vp9_get_skip_prob
Change-Id: I2af499848ef73f3f5cd8cdb27852d0bcdfe31d09
2013-12-10 14:11:26 -08:00
Dmitry Kovalev
08c48ddc01
Renaming comp_pred_mode to reference_mode.
...
Change-Id: I83ffed2b1878a35ac35f07f9ee74309adc9c7b11
2013-12-09 15:13:34 -08:00
Dmitry Kovalev
a19d694f09
Merge "Removing BLOCK_TYPES and adding PLANE_TYPES constant instead."
2013-12-07 02:20:41 -08:00
Dmitry Kovalev
63963f51ef
Renaming reference mode context calculation function.
...
Renames:
vp9_get_pred_context_comp_inter_inter => vp9_get_reference_mode_context
vp9_get_pred_prob_comp_inter_inter => vp9_get_reference_mode_prob
Change-Id: I3bbb69481e6b0c848028667c9269f567f293d3bd
2013-12-06 11:23:01 -08:00
Dmitry Kovalev
d6b159d4a6
Removing BLOCK_TYPES and adding PLANE_TYPES constant instead.
...
Change-Id: Ic3bb862e93aedf6a489a33ea6f7e5097d96855ee
2013-12-06 10:54:00 -08:00
Dmitry Kovalev
8eac2ca840
Merge "Renaming constants."
2013-12-06 09:55:02 -08:00
Dmitry Kovalev
5be34ba80f
Merge "vp9_get_pred_context_intra_inter() clean up."
2013-12-06 09:14:36 -08:00
Dmitry Kovalev
377fa8aff8
Renaming PREV_COEF_CONTEXTS to COEFF_CONTEXTS.
...
Also adding BAND_COEFF_CONTEXTS macro to simplify for loop logic.
Change-Id: I12a78a49cf1addf81e6b3fe2a3736ec2b79bd79e
2013-12-05 17:08:06 -08:00
Dmitry Kovalev
6fd71e1b09
vp9_get_pred_context_intra_inter() clean up.
...
Renaming:
vp9_get_pred_context_intra_inter => vp9_get_intra_inter_context
vp9_get_pred_prob_intra_inter => vp9_get_intra_inter_prob
Change-Id: I2c1affea2e84f4e616137c6df82adb11c7845781
2013-12-05 17:01:03 -08:00
Dmitry Kovalev
0d4b8d7e43
Renaming constants.
...
NUM_YV12_BUFFERS => FRAME_BUFFERS
ALLOWED_REFS_PER_FRAME => REFS_PER_FRAME
NUM_REF_FRAMES_LOG2 => REF_FRAMES_LOG2
NUM_REF_FRAMES => REF_FRAMES
NUM_FRAME_CONTEXTS_LOG2 => FRAME_CONTEXTS_LOG2
NUM_FRAME_CONTEXTS => FRAME_CONTEXTS
Change-Id: I4e1ada08f25d8fa30fdf03aebe1b1c9df0f87e63
2013-12-05 16:23:09 -08:00
Dmitry Kovalev
3712b58c2f
Merge "Cleaning up vp9_entropy.h file."
2013-12-04 16:46:41 -08:00
Dmitry Kovalev
30a5a07a71
Removing old code.
...
Change-Id: I7ccbe13e1accd292a3e0e98522416f9c4b4bc82b
2013-12-03 19:44:48 -08:00
Dmitry Kovalev
8e89e2f2e0
Cleaning up vp9_entropy.h file.
...
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-12-03 17:23:03 -08:00
Dmitry Kovalev
f9da823216
Moving token-encoding related stuff from common to encoder.
...
Change-Id: I0e59d320407b3bed0ba3622a7b29975f6fad7ebf
2013-11-27 11:27:57 -08:00
Dmitry Kovalev
f4bf712fbb
Moving mode encodings from common to encoder + cleanup.
...
Change-Id: I248ccb1532e2cd95314d0b95108f2c2e71cf084f
2013-11-26 14:53:17 -08:00
Dmitry Kovalev
22216a8691
Merge "Cleaning up vp9_write_nmv_probs() function."
2013-11-25 11:03:00 -08:00
Dmitry Kovalev
e8af3db88a
Merge "Renaming COMPPREDMODE_TYPE enum and its members."
2013-11-25 10:59:08 -08:00
Dmitry Kovalev
c6c7557f8e
Cleaning up vp9_write_nmv_probs() function.
...
Change-Id: I9af38f1a0e226ee094c17081f044a722ac1caded
2013-11-24 16:20:59 -08:00
Dmitry Kovalev
fb9c19c62d
Renaming COMPPREDMODE_TYPE enum and its members.
...
List of renames:
COMPPREDMODE_TYPE => REFERENCE_MODE
SINGLE_PREDICTION_ONLY => SINGLE_REFERENCE
COMP_PREDICTION_ONLY => COMPOUND_REFERENCE
HYBRID_PREDICTION => REFERENCE_MODE_SELECT (like TX_MODE_SELECT)
NB_PREDICTION_TYPES => REFERENCE_MODES
Change-Id: If723dabe9435325d0165dcd028142a2c78b417b4
2013-11-22 16:35:37 -08:00
Dmitry Kovalev
75e4377d81
Using partition counts from FRAME_COUNTS struct in the encoder.
...
Change-Id: I6c3d47b00acabe7ffba22ffc73741173aa9a0bff
2013-11-22 14:26:39 -08:00
Dmitry Kovalev
0a64f943fc
Merge "Cleaning up entropy probability update in encoder."
2013-11-22 10:52:40 -08:00
Dmitry Kovalev
864e7c51b6
Syncing update_coef_probs() implementation with decoder.
...
Using for loop based on max_tx_size instead of separate checks. Combining
build_coeff_contexts() with update_coef_probs().
Change-Id: Ie335a7db29830677fbc14478a9c190d3c1068665
2013-11-21 12:36:02 -08:00
Dmitry Kovalev
87ff7f2af3
Removing old code.
...
Change-Id: I67d1681c7b17661deb792c5e6a9e2014a73ff9b7
2013-11-20 14:05:21 -08:00
Jim Bankoski
03276bf6e6
remove the model and copy in pack_mb_tokens
...
Change-Id: I00a5203c8ed76c184d936fccf93d76e7c06773d3
2013-11-20 10:06:04 -08:00
Dmitry Kovalev
c511f560bf
Cleaning up entropy probability update in encoder.
...
Change-Id: I94cb9e3d910dff74bf90906dd96e3a4e06ebdbe6
2013-11-19 19:49:56 -08:00
Dmitry Kovalev
d1899557eb
Merge "Syncing write_modes_{b, sb} implementation with decode_modes_{b, sb}."
2013-11-13 10:47:46 -08:00
Dmitry Kovalev
73a5cbeba4
Merge "Using max_tx_size instead of bsize when possible."
2013-11-12 16:54:30 -08:00
Dmitry Kovalev
20f34ff0db
Adding const to tree pointer inside vp9_extra_bit struct.
...
Change-Id: I60e02fa3de930ff1f969687ab5af93dee40d86ad
2013-11-12 14:21:15 -08:00
Dmitry Kovalev
3740d67d76
Syncing write_modes_{b, sb} implementation with decode_modes_{b, sb}.
...
Change-Id: Iaee740ec3bfb2b5328c24f4641c285e5a4a046dc
2013-11-11 17:29:31 -08:00
Dmitry Kovalev
c53a9c70fb
Merge "Localizing NEARESTMV special cases in the code."
2013-11-11 11:12:06 -08:00
Yaowu Xu
a596975eb6
Correct a couple of typos
...
Change-Id: Ic470c6c9ce27b615c9645b9cb0d67526417bc374
2013-11-08 12:43:51 -08:00
Dmitry Kovalev
4a96e64dc2
Using max_tx_size instead of bsize when possible.
...
Change-Id: I246364bc4270ca13aefb4bc3445bcf102b3170dc
2013-11-05 17:36:43 -08:00
Dmitry Kovalev
815189613b
Localizing NEARESTMV special cases in the code.
...
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-05 11:58:57 -08:00
Dmitry Kovalev
dde8069e57
Splitting partition_probs array into two arrays.
...
We only update partition_probs for inter frames but they are constant
for key frames. It is not necessary to have constants inside frame
context and copy them every time. This change reduces FRAME_CONTEXT size
by at least 48 bytes.
Change-Id: If70a53be51043f37fe7d113853217937710932a7
2013-11-04 14:26:16 -08:00
Dmitry Kovalev
df19c6b64c
Removing 'new' probability calculation from convert_distribution().
...
We don't have to calculate 'new' probability in convert_distribution()
because it is enough to calculate only 'new' counters which could be used
to calculate probability if necessary. That's why removing a lot of unused
temporary probability arrays and reducing number of get_binary_prob()
calls.
Change-Id: I4e14eb7203d1ace61bbddefd6b9b6326be83ba63
2013-11-01 15:09:43 -07:00
Dmitry Kovalev
6761872e49
Replacing (SWITCHABLE_FILTERS + 1) with SWITCHABLE_FILTER_CONTEXTS.
...
Change-Id: I9781a62bc1a4cd9176554d1271d87dbcafda9cb0
2013-10-30 14:40:34 -07:00
Dmitry Kovalev
19cf72eddc
Adding {read, write}_partition() instead of check_bsize_coverage().
...
Making partition read/write logic more clear.
Change-Id: I1981e90327257d37095567c62d72a103cda1da33
2013-10-28 15:14:45 -07:00
James Zern
58a0f6dbdd
vp9: add TileInfo
...
replaces use of cur_tile_mi_(row|col)_(start|end) by VP9_COMMON, making
it less stateful and more reusable for parallel tile decoding
Change-Id: I1df09382b4567a0e5f4434825d47c79afe2399be
2013-10-28 20:54:43 +01:00
James Zern
3ffa41aae3
Merge changes If9b16f7d,I75aab21c,I9cbb768c,If5cea3d3,I96940657,I025595d8,Ie0bc3935,I3ebb172d
...
* changes:
vp9: remove partition+entropy contexts from common
vp9: add above/left_context to MACROBLOCKD
vp9: add above/left_seg_context to MACROBLOCKD
vp9: add above/left_context to encoder
vp9: add above/left_seg_context to encoder
vp9: pass entropy context directly to set_skip_context
vp9: pass context directly to partition functions
vp9/decode: add alloc_tile_storage()
2013-10-28 12:45:11 -07:00
James Zern
d72dfab296
vp9: add above/left_seg_context to encoder
...
Change-Id: I969406574c6658936e9f6db5752f1b295025aab5
2013-10-25 22:01:14 +02:00
James Zern
88d79eabdc
vp9: pass context directly to partition functions
...
update_partition_context / partition_plane_context: this will allow for
separate storage to be used in tile decoding
Change-Id: Ie0bc393531ab7e9d2ce35c95111849b294aad4ed
2013-10-25 22:01:13 +02:00
Dmitry Kovalev
d5ac877f7f
Adding COLOR_SPACE enum.
...
Change-Id: If5711eb166609cce0a88b3cb5b56b3afeebc4fb0
2013-10-25 12:35:20 -07:00
Dmitry Kovalev
ad867fe237
Renaming INTERPOLATIONFILTERTYPE to INTERPOLATION_TYPE.
...
Change-Id: I1868fb75ed88bfa65c1c2ca24677d65f2894d713
2013-10-23 17:45:52 -07:00
Dmitry Kovalev
a53075f7c5
Adding VP9_FRAME_MARKER constant.
...
Also renaming SYNC_CODE_* to VP9_SYNC_CODE_*.
Change-Id: I9ff504c6ebce6cd6673d7df2085d597b818f5960
2013-10-23 17:24:17 -07:00
Dmitry Kovalev
fa57135b2c
Merge "Removing NUM_ prefix from constant names."
2013-10-22 11:34:28 -07:00
Jingning Han
7b54556008
Merge "Prevent left_block_mode stepping into left tile"
2013-10-22 09:37:17 -07:00
Jingning Han
c807949408
Prevent left_block_mode stepping into left tile
...
This commit uses left_available flag to decide if the left mode_info
struct is available for left_block_mode. As discussed with James
Zern (jzern@), this prevents the codec from fetching mode_info from
blocks in the left tile, which although effectively not used might
present concerns for multi-threaded tile decoding.
This is NOT a bit-stream change.
Change-Id: I1dc8cf1bcbf056688eee27c7bc5706ac4b4e0125
2013-10-22 09:02:41 -07:00
Dmitry Kovalev
a0be71c703
Inlining set_partition_seg_context function.
...
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-21 12:02:19 -07:00
Dmitry Kovalev
d1b65c6bda
Moving allow_high_precision_mv from MACROBLOCKD to VP9_COMMON.
...
This value is a global frame-level flag, not a macroblock-level.
Change-Id: Ie8c5790a931150741c2167c00c3e3dd2cf26744d
2013-10-21 10:12:14 -07:00
Dmitry Kovalev
6d2a0da7a7
Removing NUM_ prefix from constant names.
...
Renames for consistency with other constants:
NUM_FRAME_TYPES -> FRAME_TYPES
NUM_PARTITION_CONTEXTS -> PARTITION_CONTEXTS
Change-Id: I3db30acb2868eb0a424237c831087b2e264ec47f
2013-10-18 17:44:19 -07:00
Dmitry Kovalev
a8ffa96e9b
Passing block index explicitly instead of using get_sb_index().
...
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-18 11:02:32 -07:00
Guillaume Martres
acf0d56f0b
Get rid of "this_mi", use "mi_8x8[0]" everywhere instead
...
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-16 16:24:03 -07:00
Dmitry Kovalev
501a8c6b91
Merge "Removing print_prob_tree function and vp9_coeff_probs typedef."
2013-10-16 13:13:25 -07:00
Alexander Voronov
d6a59fb12c
Updated encoder to handle intra-only frames
...
Updated the encoder to handle frames that are coded
intra-only. Intra-only frames must be non-showable,
that is, the "show frame" flag must be set to 0 in
the frame header.
Tested by forcing the ARF frames to be coded intra-
only.
Note: The rate control code will need to be modified
to account for intra-only frames better than they
are currently handled.
Change-Id: I6a9dd5337deddcecc599d3a44a7431909ed21079
2013-10-15 16:44:02 -07:00
Dmitry Kovalev
6965e6f3d5
Removing print_prob_tree function and vp9_coeff_probs typedef.
...
Change-Id: If14265084e9b4c85c75b43e8d33a6fafad468cbc
2013-10-14 21:08:21 -07:00
Dmitry Kovalev
4a0f9478ef
Replacing {VP9_COEF, MODE}_UPDATE_PROB with DIFF_UPDATE_PROB.
...
Values of MODE_UPDATE_PROB and VP9_COEF_UPDATE_PROB are equal, so replacing
them with one constant. Inlining appropriate arguments for functions:
vp9_cond_prob_diff_update (encoder)
vp9_diff_update_prob (decoder)
Change-Id: I1255a1cb477743b799b3bfbbcd8de6b32b067338
2013-10-11 10:47:22 -07:00
Jingning Han
f0772dc5b8
Fix typo in comment message
...
Change-Id: Ifef756a3a91423bb9f5411f06fa092027be21ecf
2013-10-10 12:17:10 -07:00
Jingning Han
03fe08ca30
Deprecate the use of PARTITION_INFO from encoder
...
Use b_mode_info to store the inter prediction mode of sub8x8 block,
in replacement of the use of partition_info. Remove redundant buffer
update for partition_info. For bus_cif at 2000 kbps, this seem to make
speed 0 about 1% faster.
Change-Id: Id1b3be45e75a24fb4b42335ac480c23e440978f6
2013-10-09 09:23:52 -07:00
Jim Bankoski
9d4c6fab44
cpplint issue missed in first pass for vp9_bitstream.c
...
Change-Id: Ia725748acbc2a3f825f0d208f26522a0412301fa
2013-10-07 15:54:20 -07:00
Dmitry Kovalev
272adbbec4
Using inter_mode_offset_function instead of duplicated code.
...
Change-Id: I8de865cd1deca07b5c92c225782f0867367e9a11
2013-10-07 13:18:46 -07:00
Dmitry Kovalev
68a3e4a888
BITSTREAM - RESTORING BILINEAR INTERPOLATION FILTER SUPPORT
...
Adding appropriate test vector vp90-2-06-bilinear.webm.
Change-Id: Ia3bbf57318e0cc61a1b724fe751e3f9c7e11b337
2013-10-02 18:04:12 -07:00
Dmitry Kovalev
bb5e2bf86a
Adding best_mv[2] array instead of two variables.
...
Change-Id: I584fe50f73879f6a72fada45714ef80893b6d549
2013-09-20 17:08:53 +04:00
Yaowu Xu
79af591368
change to avoid invalid memory read.
...
The fake token EOSB may cause invaild memory read in pack token, this
commit reworked the loop to avoid such invalid read.
Change-Id: I37fdfce869b44a7f90003f82a02f84c45472a457
2013-09-19 08:22:10 -07:00
Scott LaVarnway
ac6093d179
New mode_info_context storage -- undo revert
...
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-11 13:45:44 -04:00
Ivan Maltz
01b35c3c16
API extensions and sample app for spacial scalable encoder
...
Sample app: vp9_spatial_scalable_encoder
vpx_codec_control extensions:
VP9E_SET_SVC
VP9E_SET_WIDTH, VP9E_SET_HEIGHT, VP9E_SET_LAYER
VP9E_SET_MIN_Q, VP9E_SET_MAX_Q
expanded buffer size for vp9_convolve
modified setting of initial width in vp9_onyx_if.c so that layer size
can be set prior to initial encode
Default number of layers set to 3 (VPX_SS_DEFAULT_LAYERS)
Number of layers set explicitly in vpx_codec_enc_cfg.ss_number_layers
Change-Id: I2c7a6fe6d665113671337032f7ad032430ac4197
2013-09-09 15:57:56 -07:00
Deb Mukherjee
b6dbf11ed5
Merge "Adds a speed feature for fast 1-loop forw updates"
2013-08-29 15:54:04 -07:00
James Zern
d765df2796
consistently name VP9_COMMON variables #3
...
stragglers
Change-Id: Ib1e853f9a331b7b66639dc34d79568d84d1930f1
2013-08-29 13:27:41 -07:00
James Zern
924d74516a
consistently name VP9_COMMON variables #1
...
pc -> cm
Change-Id: If3e83404f574316fdd3b9aace2487b64efdb66f3
2013-08-29 13:25:57 -07:00
Dmitry Kovalev
e80bf802a9
Merge "Renaming txfm_size to tx_size."
2013-08-29 12:30:18 -07:00
Dmitry Kovalev
b62ddd5f8b
General code cleanup.
...
Switching from mi_{width, height}_log2 and b_{width, height}_log2 to
num_8x8_blocks_{wide, high} and num_4x4_blocks_{wide, high}. Removing
redundant code, adding const.
Change-Id: Iaab2207590fd24d0b76999071778d1395dc5cd5d
2013-08-28 12:22:37 -07:00
Deb Mukherjee
e02dc84c1a
Adds a speed feature for fast 1-loop forw updates
...
Incorporates a speed feature for fast forward updates of
coefficients. This feature takes 3 values:
0 - use standard 2-loop version
1 - use a 1-loop version
2 - use a 1-loop version with reduced updates
Results: derfraw300 +0.007% (on speed 0) at feature value = 1
-0.160% (on speed 0) at feature value = 2
There is substantial speed up at speeds 2 and above for low
resolution sequences where the entropy updates are a big part
of the overall computations.
Change-Id: Ie96fc50777088a5bd441288bca6111e43d03bcae
2013-08-28 10:56:52 -07:00
Dmitry Kovalev
851a2fd72c
Renaming txfm_size to tx_size.
...
Change-Id: I752e374867d459960995b24d197301d65ad535e3
2013-08-27 19:47:53 -07:00
Dmitry Kovalev
7b95f9bf39
Renaming BLOCK_SIZE_TYPE to BLOCK_SIZE in the encoder.
...
Change-Id: I62bb07c377f947cb72fac68add7a6b199e42c6b9
2013-08-27 11:05:08 -07:00
James Zern
c8ba8c513c
cosmetics: strip 'VP9_' from defines in vp9 only code
...
Change-Id: I481d9bb2fa3ec72b6a83d5f04d545ad8013f295c
2013-08-23 19:16:49 -07:00
Dmitry Kovalev
335b1d360b
check_bsize_coverage cleanup.
...
Change-Id: Ib7803857b35c00e317c9deb8630e777e25eb278f
2013-08-22 15:45:56 -07:00
Dmitry Kovalev
b7616e387e
Moving segmentation struct from MACROBLOCKD to VP9_COMMON.
...
VP9_COMMON is the right place to segmentatation struct because it has
global segmentation parameters, not something specific to macroblock
processing.
Change-Id: Ib9ada0c06c253996eb3b5f6cccf6a323fbbba708
2013-08-15 10:47:48 -07:00
Paul Wilkins
26fead7ecf
Renaming in MB_MODE_INFO
...
The macro block mode info context originally contained an
entry for each 16x16 macroblock. In VP9 each entry refers
to an 8x8 region not a macro block, so the naming is misleading.
This first stage clean up changes the names of 3 entries in the
structure to remove the mb_ prefix.
TODO clean up the nomenclature more widely in respect of
mbmi and bmi.
Change-Id: Ia7305c6d0cb805dfe8cdc98dad21338f502e49c6
2013-08-14 12:47:52 +01:00
Dmitry Kovalev
816d6c989c
Moving loopfilter struct to VP9_COMMON.
...
Loop filter configuration doesn't belong to macroblock, so moving it from
MACROBLOCKD to VP9_COMMON. Also moving the declaration of loopfilter struct
from vp9_blockd.h to vp9_loopfilter.h.
Change-Id: I4b3e34be9623b47cda35f9b1f9951f8c5b1d5d28
2013-08-09 14:41:51 -07:00
Dmitry Kovalev
0c80065694
Inlining vp9_get_pred_probs_switchable_interp function.
...
There was no benefit having this function. For example, inside
read_switchable_filter_type switchable filter context was calculated twice.
Change-Id: I79cd5bf95cbc0f6d8bf91a2e32289e01b18dcff1
2013-08-06 11:04:31 -07:00
Dmitry Kovalev
3e51acafec
Merge "Finally removing all old block size constants."
2013-08-06 10:30:37 -07:00
Dmitry Kovalev
4a692e4168
Merge "Changing the order switchable filter enum constants."
2013-08-06 10:30:26 -07:00
Dmitry Kovalev
b9c7d04e95
Finally removing all old block size constants.
...
Change-Id: I3aae21e88b876d53ecc955260479980ffe04ad8d
2013-08-05 15:23:49 -07:00
Jim Bankoski
9f988a2edf
Merge "cleanups after bw bh code"
2013-08-05 14:02:02 -07:00
Dmitry Kovalev
3f611555d7
Changing the order switchable filter enum constants.
...
This changeset allows to remove vp9_switchable_interp and
vp9_switchable_interp_map arrays and make code much clear. Actually we
still have to use these mapping but only inside read_interp_filter_type and
write_interp_filter_type functions.
Change-Id: I4026c6f8c4acefba6c81421b7bacbaa52cc45f50
2013-08-05 12:26:15 -07:00
Jim Bankoski
5d2cb7ead0
cleanups after bw bh code
...
Cons bw/bh parms that should have been const. Additional formatting.
Change-Id: Icd36a5c9dc17dadd7284315ac0d6fef1a565ca16
2013-08-05 12:15:52 -07:00
Dmitry Kovalev
d007446b3f
Replacing long block size enum values with shorter ones (2).
...
Change-Id: I428c4d42212b757112e3acfe5b81314cfbb5fd6b
2013-08-05 10:51:02 -07:00
Dmitry Kovalev
ce8dedc353
Cleanup: removing unused function arguments.
...
Change-Id: I27471768980fc631916069f24bc7c482a5c9ca17
2013-08-01 13:41:38 -07:00
Dmitry Kovalev
3be9fd9120
Merge "Removing unused "ishp" arguments."
2013-07-31 12:03:04 -07:00
Dmitry Kovalev
500ade243a
Removing unused "ishp" arguments.
...
Using different variable names "allow_hp" and "use_hp" instead of "usehp".
Change-Id: I0cd5996ddeb46bd754473b680a993c0aaf8eb879
2013-07-31 11:27:53 -07:00
Dmitry Kovalev
8701bc11df
Consistent update for inter_mode probabilities.
...
Using inter-mode counts instead of inter-mode-tree branch counts inside
FRAME_COUNTS structure.
Change-Id: I60dde13af37d06146d7d15543311c1b5044e9e04
2013-07-30 18:06:34 -07:00
Dmitry Kovalev
828119d6ab
Renaming txfm to tx for consistency in some places.
...
Change-Id: I2a6a646570e2af66315e7c658d00d99f80c4b127
2013-07-29 14:35:55 -07:00
Dmitry Kovalev
23391ea835
Renaming TX_SIZE_MAX_SB to TX_SIZES.
...
Change-Id: I6aa4191935aa93461a07c41b59fdae1eb5f5f107
2013-07-29 12:25:34 -07:00
Dmitry Kovalev
08fd41ccd7
Adding lookup table for size group.
...
Change-Id: Ia6144d77ebed66e0739b62e4d673e26a95aa9550
2013-07-25 12:58:54 -07:00
Scott LaVarnway
a0e8b45fee
Merge "pack_inter_mode_mvs cleanup"
2013-07-25 04:47:56 -07:00
Dmitry Kovalev
fcc34796d2
Removing CONFIG_BALANCED_COEFTREE experiment.
...
Change-Id: I61a8b0101eac3ee2e0621d56151b90c269fd4db4
2013-07-24 15:53:42 -07:00
Dmitry Kovalev
1099a436d3
Moving counts from FRAME_CONTEXT to new struct FRAME_COUNTS.
...
Counts are separate from frame context. We have several frame contexts but
need only one copy of all counts.
Change-Id: I5279b0321cb450bbea7049adaa9275306a7cef7d
2013-07-23 17:02:08 -07:00