Age | Commit message (Collapse) | Author |
|
This commit fixed a uninitialized value use in the intra 4x4/8x4/4x8
rate-distortion loop.
Change-Id: I5c25b3536b59e4f5fbb23cf85baf93b2ccec7d72
|
|
This commit refactors the iterative motion search for compound
inter-inter mode, to make it support all partition types including
4x4/4x8/8x4 block sizes.
Change-Id: I5f1212b0f307377291763e45c6bdc9693b5f04c8
|
|
Removal from under configure flag.
A bit renaming
Change-Id: I2213229dfe852001dfec16b149f47c52ce88f3aa
|
|
Move 4x4/4x8/8x4 partition coding out of experimental list.
This commit fixed the unit test failure issues. It also resolved
the merge conflicts between 4x4 block level partition and iterative
motion search for comp_inter_inter.
Change-Id: I898671f0631f5ddc4f5cc68d4c62ead7de9c5a58
|
|
|
|
|
|
Reverts to using 128 bit LUT for the coef models rather than 48
to ease hardware implementation.
Also incorporates some cleanups including removing various
hooks to support different lookup tables based on block_type and
ref_type.
Change-Id: I54100c120cca07a2ebd3a7776bc4630fa6a153f6
|
|
Merge this experiment so that it is under a speed feature
flag not a configuration flag.
Change-Id: I536f7f125a4ff5149bb3a64f791e835c324535fd
|
|
This commit allows the rate-distortion optimization of intra coding
capable of supporting 8x4 and 4x8 partition settings.
It enables the entropy coding of intra modes in key frame using a
unified contextual probability model conditioned on its above/left
prediction modes.
Coding performance:
derf 0.464%
Change-Id: Ieed055084e11fcb64d5d5faeb0e706d30268ba18
|
|
|
|
Merges the experiment.
Change-Id: I4eb19af6de6df6aa3a96a2e82f231d47ed9b3ae9
|
|
|
|
Change-Id: I4f1a4eca6794cda78d00512196caacd5567e2dcc
|
|
Cleans up the experiment. Actually uses reduced counts for backward
updates, and reduced number of probabilities in the context.
No change in bitstream when the experiment is on.
Between expt on and off:
derfraw300 is down only -0.062% (which is better than when expts
were run previously).
Change-Id: I55285a049a0c22810bdb42914212ab5a4f8521b5
|
|
This patch eliminates the intermediate diff buffer usage by
combining the short idct and the add residual into one function.
The encoder can use the same code as well.
Change-Id: I296604bf73579c45105de0dd1adbcc91bcc53c22
|
|
The recursive partition type search is enabled down to 4x4, 4x8 and
8x4, followed by the corresponding rate-distortion optimization for
the per-partition encoding mode decisions.
The bit-stream writing/reading synchronized in supporting the
rectangular partition of 8x8 block.
This provides above 1% coding performance gains on derf.
To do next:
1. re-design the rate-distortion loop for inter prediction below 8x8.
2. re-design the rate-distortion loop for intra prediction below 4x4.
3. make the loop-filter aware of rectangular partition of 8x8 block.
4. clean the unused probability models.
5. update default probability values.
Change-Id: Idd41a315b16879db08f045a322241f46f1d53f20
|
|
This is a mostly-working implementation of an extra channel in the
bitstream. Configure with --enable-alpha to test. Notable TODOs:
- Add extra channel to all mismatch tests, PSNR, SSIM, etc
- Configurable subsampling
- Variable number of planes (currently always uses all 4)
- Loop filtering
- Per-plane lossless quantizer
- ARNR support
This implementation just uses the same contents as the Y channel
for the A channel, due to lack of content and general pain in
playing back 4 channel content. A later patch will use the actual
alpha channel passed in from outside the codec.
Change-Id: Ibf81f023b1c570bd84b3064e9b4b8ae52e087592
|
|
These building blocks enable rate-distortion optimization search
over block sizes of 8x4 and 4x8. Need to convert them into mmx/sse
forms.
Change-Id: I570ea2d22d14ceec3fe3575128d7dfa172a577de
|
|
This commit allows proper transform type (DCT/ADST) selection in
the settings of partition 4x4 level.
Change-Id: Iec6f922a46480d777e7ca9142a99e8c131f0077b
|
|
This commit allows the rate-distortion optimization recursion
at encoder to go down to 4x4 block size. It deprecates the use
of I4X4_PRED and SPLITMV syntax elements from bit-stream
writing/reading. Will remove the unused probability models in
the next patch.
The partition type search and bit-stream are now capable of
supporting the rectangular partition of 8x8 block, i.e., 8x4
and 4x8. Need to revise the rate-distortion parts to get these
two partition tested in the rd loop.
Change-Id: I0dfe3b90a1507ad6138db10cc58e6e237a06a9d6
|
|
|
|
Allow motion search multiple times iteratively, and break out
the loop if this search couldn't find better motion vectors.
Limit the maximum number of search to 2.
Tests results:
1. stdhd set: 0.311%(overall psnr); 0.346%(ssim).
positive gain on 10 out of 16 clips(best: 2.746% on sunflower;
worst: -0.434% on old_town_cross).
2. derf set: 0.016%(overall psnr); 0.062%(ssim).
positive gain on half of the clips(best: 0.499% on bowing;
worst: -0.387 on city).
Change-Id: Ibf0a51776d4caf7707be0586346db08128117559
|
|
|
|
Change band calculation back to simpler model based
on the order in which coefficients are coded in scan order
not the absolute coefficient positions.
With the scatter scan experiment enabled the results were
appear broadly neutral on derf (-0.028) but up a little on std-hd +0.134).
Without the scatterscan experiment on the results were up derf as well.
Change-Id: Ie9ef03ce42a6b24b849a4bebe950d4a5dffa6791
|
|
Use 4x4 block coding for UV components arbitrarily in I4X4_PRED and
SPLITMV coding modes. This is a temporary solution to enable
bit-stream support for recursive partition down to 4x4 block size.
Will separate the functionalities of 4x4 block coding rate-distortion
out from those of superblocks.
Change-Id: I03dc15d5897014f175f3f2c91e9b266091d56797
|
|
mdcounts seems no longer used.
Change-Id: Idd8162e8acfa3f5be7a18767156cc79ccbc2bdee
|
|
In current code, motion vectors got from single prediction mode are used
in compound prediction mode directly. These motion vectors may not give
accurate prediction since they are searched independently. In this patch,
we took Pascal's suggestion, and did joint motion search in compound
prediction mode to find better motion vectors in this situation.
Test results:
Overall PSNR: 0.570%(derf), 0.918%(stdhd);
SSIM: 0.572%(derf), 1.009%(stdhd);
The encoder is a little slower. This can be improved since some c
code is used in motion search.
Change-Id: Ib30c9240f6c56c9b070867b4ca89412a76d9f3c6
|
|
|
|
Change-Id: I49527ff8dd8bef1074c18a964fed2a575f0b118a
|
|
Change-Id: I4374b5af40ee9082ddf7956a9756a15ad9ad5436
|
|
Makes the temporary storage of the filtered data agnostic to
the number of planes and how they're subsampled.
Change-Id: I12f352cd69a47ebe1ac622af30db29b49becb7f4
|
|
|
|
|
|
Delete code under the CONFIG_CODE_ZEROGROUP flag.
Change-Id: I5fe6c7b42a5da9b73118e33594301da4129f320a
|
|
Change-Id: I71311a14f8d7f48508b250f25d1d0914c6a1ac72
|
|
Delete code under the CONFIG_COMP_INTERINTRA_PRED
flag.
Change-Id: I3d1079cf46305c08f7e11d738596ea112e7b547f
|
|
Clean out code relating to newbintramode.
Change-Id: Ie91f4f156cdf60ce0da8ca407c1c9cb00c7d0705
|
|
Macro ab4x4 contains experiments for recursive partition down to
4x4 block size.
Change-Id: Ic727842fa98a4df9fd51e0025a545dc76a5c76c1
|
|
Code previously set up the pointers by scaling by MI_UV_SIZE, which
is 4:2:0 only.
Change-Id: Ic13a92895cff018ec1345736746ed84cb31e6e31
|
|
Pull sb8x8 out of experimental list. verified via borg run tests.
Fixed unit test failures.
Change-Id: I12a4bbd17395930580c048ab68becad1ffe46e76
|
|
Iterating over all planes in the loop instead of custom y,uv code inside
handle_inter_mode function.
Change-Id: I301f9276d6d544c2fd7203d84f1318ac80ea625d
|
|
Disable the use of scaled reference frame for motion search in
SPLITMV mode. This fixes the unit test failure issue triggered
when merging sb8x8 from experimental list.
Change-Id: I02ac25fd8db8d5762f8fee29513b947189875fa0
|
|
Change-Id: I1df17f45721c690d157800daa6a0b377e3d32bc2
|
|
|
|
|
|
This allows removing a large number of transform size specific functions,
as well as supporting 444/alpha by routing all code through the
subsampling-aware path.
Change-Id: Ieb085cebe9f37f24fc24de179898b22abfda08a4
|
|
Change-Id: I61ef1f198c876f9f79787ea7d7385a862cfbae19
|
|
Change-Id: I51c53692b1150005645bf362c5e5a8275178a8fd
|
|
Change-Id: I07aa89a67e0ac5f99ef0c448553dbc46b0ed27f2
|
|
Change-Id: I390bb1cedc835f439fd5dd6cda6572b29cbb139c
|