Dmitry Kovalev
4ac6a2552b
Moving vp9_tree_probs_from_distribution() to encoder.
...
Writing custom coeff branch count calculation (which is much clearer) in
adapt_coef_probs() function. Removing vp9_treecoder.c file.
Change-Id: I8880fb7a39996c8bcf6cd0acf9898a8c712ba91f
2013-12-05 18:13:26 -08:00
Dmitry Kovalev
d72c847fe8
Merge "Renaming PREV_COEF_CONTEXTS to COEFF_CONTEXTS."
2013-12-05 17:54:44 -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
Deb Mukherjee
8de1d8bfe3
Merge "Further rate control cleanups"
2013-12-05 16:55:35 -08:00
Dmitry Kovalev
da519166e9
Merge "Cleaning up vp9_detokenize.c file."
2013-12-05 16:45:10 -08:00
Dmitry Kovalev
f7396f3394
Merge "Removing vp9_default_coef_probs.h file."
2013-12-05 16:44:26 -08:00
Deb Mukherjee
52d273674b
Further rate control cleanups
...
Includes various cleanups.
Streamlines the interfaces so that all rate control state
updates happen in the vp9_rc_postencode_update() function.
This will hopefully make it easier to support multiple
rate control schemes.
Removes some unnecessary code, which in rare cases can casue
a difference in the constrained quality mode output, but
other than that there is no bitstream change yet.
Change-Id: I3198cc37249932feea1e3691c0b2650e7b0c22fc
2013-12-05 16:31:04 -08:00
Dmitry Kovalev
3eb0170ea6
Using lookup to determine tx_size in encode_superblock().
...
Change-Id: I68d6217db6f67da15380cd59ec5eda0c44da7d34
2013-12-05 12:25:03 -08:00
Dmitry Kovalev
6df9ec52a0
Merge "Cleaning up vp9_get_pred_context_tx_size() function."
2013-12-05 09:59:00 -08:00
Yaowu Xu
bdf3f07677
Merge "Disable --tune=ssim for vp9"
2013-12-05 09:15:13 -08:00
Frank Galligan
7ecf3bc91c
Fix ref count decrement code.
...
Buffer 0 would never be decremented, so it could only be used
once.
Change-Id: I605d99fa2a513eadae6a0e230161729880653282
2013-12-04 22:21:00 -08:00
Dmitry Kovalev
5eeffc9fc5
Cleaning up vp9_get_pred_context_tx_size() function.
...
Change-Id: Ia6ef876e3d1e66b2182a9c0bce3fd758691cd381
2013-12-04 21:35:30 -08:00
Dmitry Kovalev
a1123538a5
Moving vp9_token from common to encoder.
...
Change-Id: I40a070c353663e82c59e174d7c92eb84f72ed808
2013-12-04 19:36:58 -08:00
Frank Galligan
8363349b84
Merge "Fix the initial references to frame buffers."
2013-12-04 19:26:40 -08:00
Dmitry Kovalev
934e10d0f1
Cleaning up vp9_detokenize.c file.
...
Using consistent names (block_idx => block, dqcoeff_ptr => dqcoeff,
pt => ctx), inlining get_tx_eob() call.
Change-Id: I05208e57df81bbb8f25b8274684a48192e9de464
2013-12-04 17:24:18 -08:00
Jingning Han
61da0870b9
Merge "Add a test vector for loopfilter"
2013-12-04 17:13:57 -08:00
Dmitry Kovalev
4afd141a05
Removing vp9_default_coef_probs.h file.
...
Moving all probability tables from removed file to vp9_entropy.c.
Change-Id: I12846f1da778c3016d96b82e53384d4634883430
2013-12-04 17:04:35 -08:00
Dmitry Kovalev
cf8e3d2c5c
Merge "Cleaning up vp9_dec_build_inter_predictors_sb function."
2013-12-04 16:57:54 -08:00
Frank Galligan
9ed616a56c
Fix the initial references to frame buffers.
...
The old code would start in a mixed state, where all the reference
frames were pointing to frame buffer 0, but the reference counts
were 0. This is why we needed special code for the first frame.
Change-Id: I734961012917654ff8c0c8b317aac00ab75ded1a
2013-12-04 16:53:18 -08:00
Dmitry Kovalev
3712b58c2f
Merge "Cleaning up vp9_entropy.h file."
2013-12-04 16:46:41 -08:00
Dmitry Kovalev
97b36b26e0
Merge "Removing old code."
2013-12-04 16:45:11 -08:00
Dmitry Kovalev
16c3a25f71
Merge "Compact formatting default_coef_probs_{4x4, 8x8, 16x16, 32x32}."
2013-12-04 16:37:10 -08:00
Adrian Grange
bc02079cb2
Merge "Modified spatial scalable encoder & unit tests"
2013-12-04 15:49:12 -08:00
Dmitry Kovalev
c6ca5c5ad9
Compact formatting default_coef_probs_{4x4, 8x8, 16x16, 32x32}.
...
Change-Id: If40b930431766d5179b9769509b5e4ca1628e9cc
2013-12-04 15:45:28 -08:00
Jingning Han
ebb583d291
Add a test vector for loopfilter
...
The test vector exercises the loopfilter behavior at frame boundary.
blue_sky_1080p25.y4m --good --cpu-used=2 --threads=0 --profile=0
--lag-in-frames=25 --limit=300 --min-q=0 --max-q=63 --cq-level=20
--end-usage=0 --auto-alt-ref=1 -p 2 --kf-max-dist=9999 --kf-min-dist=0
--drop-frame=0 --static-thresh=0 --bias-pct=50 --minsection-pct=0
--maxsection-pct=2000 --arnr-maxframes=7 --arnr-strength=5
--arnr-type=3 --sharpness=0 --undershoot-pct=100 --target-bitrate=6000
Change-Id: Ibd0807395d2fe87f24f81f990369678df3de7c23
2013-12-04 13:05:21 -08:00
Yaowu Xu
d84c098417
Disable --tune=ssim for vp9
...
The feature is not yet supported.
Change-Id: If46382302d2077b20670391b4a03017045a104f5
2013-12-04 12:39:15 -08:00
Dmitry Kovalev
da2da79012
Merge "Formatting vp9_pareto8_full array."
2013-12-04 12:22:50 -08:00
Dmitry Kovalev
beb35aba19
Cleaning up vp9_dec_build_inter_predictors_sb function.
...
Using get_plane_block_size() instead of manipulation with subsampling
values, calculating all required values only once without redundant calls
to b_width_log2().
Change-Id: I00303f2a0926f9c4cb17f34591adda60615f8919
2013-12-04 12:11:01 -08:00
Adrian Grange
475d1d60b8
Modified spatial scalable encoder & unit tests
...
Modifications to the spatial scalable encoder to match
changes made to the scaling code in the decoder.
In particular, the use of a dummy first frame was removed
now that the decoder is able to handle a smaller first
frame.
SvcTest.FirstFrameHasLayers unit test re-enabled.
Change-Id: Ic2e91fbe4eadf95895569947670d36d68abaf458
2013-12-04 11:45:40 -08:00
Yunqing Wang
f6582d6928
Revert "Simplify mask checking in loop filters"
...
Jingning saw bitstream change with this patch. It could be true
that (mask_16x16_0 & 1) is 1, but (mask_16x16_1 & 1) is 0 in some
edge cases.
This reverts commit 8f05e70340
.
Change-Id: I0a529435ce816a1e14653eb510d5090de276070a
2013-12-04 11:31:19 -08:00
Dmitry Kovalev
1470789927
Merge "Moving eob array to the encoder."
2013-12-04 10:58:02 -08:00
Adrian Grange
584c72992a
Merge "Change default behavior to assume sampled chroma"
2013-12-04 09:35:14 -08:00
Yunqing Wang
920a074e89
Merge "Improve idct16x16: _256_add_sse2(x1.107)&_10_add_sse2(x1.012)"
2013-12-04 08:50:51 -08:00
Dmitry Kovalev
30a5a07a71
Removing old code.
...
Change-Id: I7ccbe13e1accd292a3e0e98522416f9c4b4bc82b
2013-12-03 19:44:48 -08:00
Dmitry Kovalev
ff6d6a9f07
Formatting vp9_pareto8_full array.
...
Change-Id: Ic7f47a8d233daf5e61e82092865837ea4eda4095
2013-12-03 18:49:19 -08:00
Yaowu Xu
ecc0a1ece8
Merge "Fix a spelling mistake in filename"
2013-12-03 18:11:36 -08:00
Yaowu Xu
43110b2c29
Merge "Fix VP8 border replication for very small image"
2013-12-03 18:03:08 -08:00
Dmitry Kovalev
f00d157c12
Moving eob array to the encoder.
...
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-03 17:59:32 -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
Yaowu Xu
33e5e35fdb
Fix a spelling mistake in filename
...
Change-Id: Ic06124ed95a50935b1c6509907dcac87c7707bcc
2013-12-03 17:19:41 -08:00
Yaowu Xu
a0f77f6acb
Fix VP8 border replication for very small image
...
Also added a test vector for this issue.
Change-Id: I8a8654f9d33b27afd53c295f1ea44d198550d067
2013-12-03 17:06:17 -08:00
Jingning Han
3c34619125
Fix initialization order for the encoder
...
This commit makes the coefficient tree initialized prior to token
initialization, where the coefficient costs are filled out according
to the probabilities associated with coefficient value categories.
Change-Id: If4e89c3923058376f8382c683fe4a225a4a38af3
2013-12-03 15:29:24 -08:00
Dmitry Kovalev
fd16baae25
Merge "Making names consistent with REFERENCE_MODE enum name."
2013-12-03 12:48:34 -08:00
Dmitry Kovalev
4585b9dbac
Merge "Removing token_to_counttoken array."
2013-12-03 12:29:56 -08:00
Dmitry Kovalev
ac830b3970
Merge "Using local variable for token_cache."
2013-12-03 12:29:50 -08:00
Dmitry Kovalev
09577b8c8d
Merge "Removing dummy assignments."
2013-12-03 10:59:34 -08:00
Alex Converse
f63c75de84
Merge "Remove plane_block_idx."
2013-12-03 10:51:13 -08:00
Jingning Han
b88b49a7bc
Merge "Fix intra prediction ref selection in skip_encode"
2013-12-03 09:47:41 -08:00
Paul Wilkins
8a4310b160
Merge "Fix use_uv_intra_estimate in rd loop"
2013-12-03 04:30:50 -08:00
Jingning Han
f01ad926d0
Fix intra prediction ref selection in skip_encode
...
This commit fixes the intra prediction reference source selection
in the settings of skip_encode. Use original boundary pixels as
prediction reference, when the inverse transform and reconstruction
are skipped in the per block size rate-distortion optimization loop.
Change-Id: I36081aa30aa46e203e0e6f4e8a420fd08269469a
2013-12-02 18:48:51 -08:00