- Localize static lookup tables in the sole functions that use them.
- Remove dead high bit-depth IDST functions.
- Apply clang-format
Change-Id: Ibbd7db4259f9ea64d695b2f13f5c118aac8f1cf9
This patch completes the global motion experiment
implementation. It modifies the format of the motion
parameters to use the mv union to facilitate faster
copying and checks for parameters equal to 0 that occur
frequently in rdopt. The rd decisions for the global motion experiment
have also been added to rdopt.
Change-Id: Idfb9f0c6d23e538221763881099c5a2a3891f5a9
03394bd Remove dead code from av1_dering_search.
337b23a Changing the weights of the first CRF filter in deringing
Change-Id: I1216c146dc3f72f24ceec3d3c65c4dd6cd73623e
Use table to replace the arithmetic computation for mapping between
transform block and pixel number.
Change-Id: Ica71af9891bb9ab8f0bab30794e1021066d57d64
The values after right shifts should fit into 32bit int. The commit
fixes MSVC build warning when new-quant is enabled.
Change-Id: Ic89dd86fb981a1206653943658af2b6b2925a676
When the experiment is ON, we use Paeth predictor instead of TM
predictor.
For derf set, this gives about 0.09% improvement overall, and 0.55%
improvement if all frames are forced to be intra-only.
Also, if the EXT_INTRA experiment is also on, the improvement overall
is 0.056%, and improvement if all frames are forced to be intra-only is
0.465%.
Change-Id: Id74e107ede70a8d2107fa14fcb3f44b23a437274
Function ans_read_int() takes int as parameter, this commit uses an
explicit conversion to avoid MSVC building warning.
Change-Id: Ia405e1d5a86c0f42932fa1da29417ccbf2dd58e7
Cherry-Picked the following commits:
0defd8f Changed "WebM" to "AOMedia" & "webm" to "aomedia"
54e6676 Replace "VPx" by "AVx"
5082a36 Change "Vpx" to "Avx"
7df44f1 Replace "Vp9" w/ "Av1"
967f722 Remove kVp9CodecId
828f30c Change "Vp8" to "AOM"
030b5ff AUTHORS regenerated
2524cae Add ref-mv experimental flag
016762b Change copyright notice to AOMedia form
81e5526 Replace vp9 w/ av1
9b94565 Add missing files
fa8ca9f Change "vp9" to "av1"
ec838b7 Convert "vp8" to "aom"
80edfa0 Change "VP9" to "AV1"
d1a11fb Change "vp8" to "aom"
7b58251 Point to WebM test data
dd1a5c8 Replace "VP8" with "AOM"
ff00fc0 Change "VPX" to "AOM"
01dee0b Change "vp10" to "av1" in source code
cebe6f0 Convert "vpx" to "aom"
17b0567 rename vp10*.mk to av1_*.mk
fe5f8a8 rename files vp10_* to av1_*
Change-Id: I6fc3d18eb11fc171e46140c836ad5339cf6c9419
This patch fixed issue 47: "Segfault when encoding 10bit video".
The incorrect setting of use_highbitdepth caused a crash.
Change-Id: I5657342f57d57dd08598bb25cbe7f8fcee809bd7
Palette code originally by huisu@. Gives 11.68% BDRate improvement on
screen content set.
Last 7 small speedup patches from me, giving 10% speedup overall for
screen content set.
From aomedia/master:
Revert 57fa626 : Remove color_index_map
From libvpx/nextgenv2:
c93e5cc : Bring palette back to nextgenv2
827e1b3 : Add test for screen content coding tools in end to end test
78b0bd0 : Complete (mostly) migration of palette mode
8a128c2 : Fixes for Palette mode
4ab0091 : Palette mode: record selected transform type
cbb8be7 : Set block size upper bound for Palette mode
bb0e692 : Convert palette from double to float.
a0a23b7 : faster code: replace nested for loops by memcpy().
016a5da : Palette code: simpler and faster duplicate removal
d000020 : Palette code cleanup
6dde801 : Use built-in qsort(); create remove_dup() method.
f746c10 : Handle centroid rounding inside palette.c itself.
d68c7b6 : Palette: count Y colors only for screen content.
f1906e9 : Palette code: remove the use of same if condition twice.
Locally made sure all combinations of "--enable-ext-intra" and/or
"--enable-palette" and/or "--enable-aom-highbitdepth" build OK.
P.S. Note for future reference:
EXT_INTRA experiment has only been moved *partially* to aomedia at this
point. If and when the rest is moved to aomedia, EXT_INTRA + PALETTE
combo needs to be moved to aomedia as well.
Change-Id: I8826780014ec8a88281e56c8258b7c966121b46f
Count updates were previously in 3 different places in the codebase,
and only updated when output_enabled was true. This patch moves them
all into update_stats and does some related cleanup.
Change-Id: I004774c1ffa2f1f0038e27bd04736d1e31701031
Cherry-pick vp10 fd96aec9: Don't send segment probability updates when
the map isn't updated.
This patch only effects --enable-misc-fixes.
Change-Id: Ia1acfc59e4f2e5383a26c786bdd90c02ac49df9f
The swap_block_ptr functionality was removed by
0d6980d7a1 in nextgenv2.
This patch removes all the code removed in nextgenv2 and deletes
some now unnecessary left over struct members as well.
Change-Id: I1e22514c6fe5af556710254278f2f8a5805db999
This change is similar to the one done for choose_tx_size_from_rd in
daf841b4a1
It gives a 4% speed-up on bus_cif.y4m with the following settings:
--cpu-used=4 -p 1 --end-usage=q --cq-level=40 --tile-columns=0 --tile-rows=0
Change-Id: Ic54fe4a066a2c0b5f6349d80cd13de8bb8ddcabc
- Eliminate the awkward _av1 suffix/infix in local variable names.
- Lift bitdepth selection out of the token loop.
Change-Id: I26d3397464f7808e0481a804033a93ca4f01f5d5
The SSSE3 version of av1_quantize_fp stored the new value of eob
with a 32bit mov instruction, but the eob values are stored in an
array of uint16_t. This caused the last eob store to write 2 extra
bytes off the end of the eob array.
This doesn't seem to currently be a problem on master, but it
causes errors for my RDO refactoring under certain conditions.
Change-Id: I9f7e9c4e40b37b8a2c232b87d170d24593c1066c
This array was allocated and used to save and restore segmentation map,
however the original segmentation map was never modified between the
calls to save and restore.
Change-Id: Iaf0fbfed733c097e84cf44d2aa6b8f35d2fb456b
Currently the RD loop traverses 4X8 blocks in inverted N order while
the bitstream stores blocks smaller than 8x8 in Z order. This causes a
discrepancy where the RD loop reads uninitialized data while
performing intra prediction. As a temporary fix simply disable the
use of the extended right edge for 4X8 blocks, until the bitstream can
be changed to match the logical structure of the blocks.
Change-Id: I44a9e4fc1a15cd551a7b38c3c1227bc5dac77e9a
Also port SIMD optimization of weighted sad/variance functions to
av1.
Coding gain improvement: 0.339/0.413/0.328 (lowres/midres/hdres)
Current coding gain: 2.437/2.428/2.294
Encoding time overhead: 17% (soccer_cif), 30% (ped_1080p25), was
12% and 18% without motion search
Change-Id: I101d6ce729f769853756edc8ced6f3a2b8d8f824
For a 16x16 pixel block, one needs to allocate 16x16 coefficient
tokens, plus up to 16 eob tokens, per plane. This commit increases
the token allocation size to cover the case where all the transform
blocks are of size 4x4 in format 444.
Change-Id: I5755e6a53771053d51163d01ec1d62e670c5009e
Move computing the partition_cdf tables per symbol to
computing them only when the probabilities are updated.
Change-Id: I442f9230ba00be7f5d0558d7c38d7324ad009ee8
Move computing the inter_ext_tx_cdf tables per symbol to
computing them only when the probabilities are updated.
Change-Id: I5e1e62f8eae8f6b2edbbd378beeb786649502c10
Move computing the intra_ext_tx_cdf tables per symbol to
computing them only when the probabilities are updated.
Change-Id: I26d5e419e103093e98a7d896c196176305b50fc9
This commit makes the encoder to use different frame context index
for different frame types. In the baseline setting, it sets the
frame context index of the overlay frame to be different from other
regular inter frames. In the ext-refs setting, it further allows
the backward reference frame to use a different index.
It improves the compression performance for both settings.
Baseline
lowres 0.1%
midres 0.15%
ext-refs
lowres 0.42%
midres 0.35%
Change-Id: Ie033fcc16af20dace9a70386dc35dad6c5744f09
SIMD optimization for 1d blending functions in obmc mode, and some
code refactoring and cleanup.
(ped_1080p25.y4m, 150 frame, 2000 tb)
Encoding time overhead: +18.8% -> +18.1%
Decoding time overhead: +21.3% -> +8.7%
Change-Id: I9d856c32136e7e0e6e24ab5520ef901d7b1ee9c8
While we are at it:
- Rename some variables to more meaningful names
- Reuse some common consts from a header instead of redefining them.
Change-Id: I110491c071ae6f68378030493679d49fe670129a
By turning on ext_interp experiment
Encoder time is reduced for 26.7%
Decoder time is reduced for 15.4%
Change-Id: I14e197dd7ed3261339b0643fa4ed0947f74274fc
- Change struct name to all caps SCAN_ORDER to be locally consistent.
- Rename struct pointers to 'scan_order' instead of hard to read short
names 'so' and 'sc'.
Change-Id: Ia131f14320c1a18aa12654cdb87bf8008878950a
Move from computing the switchable_interp_cdf per symbol to
computing once per frame when the probabilities are adapted.
Change-Id: I6571126239f0327e22bb09ee8bad94114291683e
Move the av1_indices_from_tree() function from av1/encoder/treewriter.c
to aom_dsp/prob.c so that it can be used by both the encoder and
the decoder.
Change-Id: Ie43c599f425c3503b1ff93f0c77b5033a05b1bb4
Add av1_indices_from_tree() function that computes a forward and inverse
mapping of the tree leaf-node symbols to their in-order traversal.
This is necessary because many of the aom_tree binary trees have their
leaf nodes out of order (e.g., an in-order traversal of a tree with n
nodes does not start at symbol 0 and go to symbol n - 1), but the CDFs
created by tree_to_cdf() are indexed in-order.
Change-Id: Icd0dbed4c171a67c9e84a634106c4fdb5b1b3488
For now this is in its own experiment for benchmarking purposes, but it
will eventually be folded into the main ANS experiment.
Change-Id: Icdb54b6ca3c0191ba717d6d10aaaffb11e2bebea
In the experiment of EXT_REFS, add the use of the 3 extra reference
frames, including the 2 forward reference frames LAST2 and LAST3, and
the one backward reference frame BWDREF, for the encoding.
For lowres, EXT_REFS achieves following bitrate saving on overall PSNR
compared against baseline:
Avg: -4.581 BDRate: -4.358
Change-Id: Ib15b65681c39892ddfce5e4107598c0a22317ccd
- Const correctness
- Refactoring
- Make variables local when possible
etc
- Remove -Wcast-qual to allow explicitly casting away const.
Change-Id: I6ecb7d345162dc08ccdd17095b0800fb3a00cf2f
In super_block_uvrd(),if is_cost_valid == 0, all return parameters,
i.e. rate, distortion, skippable, and sse, are reset.
So, should not call txfm_rd_in_plane() if is_cost_valid == 0.
Also, the bug causes av1_xform_quant() to see invalid diff signal
since av1_subtract_plane() is not called in super_block_uvrd().
Change-Id: Iaa06061e2e9aa8876b4611a54f4ae6b8d499332b
Given the largest transform size is 32x32, this commmit changes size
estiiation based on the size rounding up to 32 multiples to avoid
insufficient buffer allocations.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=36
Change-Id: I6eab09dc6acdc0f5a6bcadb918d62c4852aae21f
This commit increases the minimum size for allocated buffer for
compressed data. The old size underestimated the size needed for
small images with width or height less than 64 pixels.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=31
Change-Id: Ia12507edc2be1e737ec49c32f64fd2ebf1eab41f
This improves the encoding speed. For bus at CIF 1000 kbps, the
encoding time (speed 0) goes down from 248000 ms to 231000 ms,
i.e., 7% speed-up.
Change-Id: Ic59b39b7eb1b6e72fdb646e22bfeddd3eff1cb71
This commit resets the transform size to be the maximum possible
value. It avoids out-of-boundary writing when the ActiveMap is
turned on.
Change-Id: I8302dd9a5c9fffaea3edf9ad33f72aa111999737
This avoids an encoding segmentation fault in speed 5, due to the
use of uninitialized dummy inter prediction filter buffer in the
dynamic motion vector referencing scheme.
Change-Id: Icd888d46623e8abf34267838135eed8656d552e4
It was used by skin detection and the denoiser both of which were
removed. The similar av1_write_yuv_rec_frame() remains for your frame
dumping needs.
Change-Id: I2d4e25367c4c3381c98134408aa5d77a52e38c1d
This commit makes the decoder to construct the reference motion
vector candidate list only for the selected reference frames. This
improves the decoder speed. For the test clip pedestrian_area at
1080p, coded at 3000 kbps, the decoding speed goes up from 58.4 fps
to 72 fps.
Change-Id: I257c521f46221936028ae01f205520d94ba7f16e
Adds ext-tx transforms to enums.h and adds implementations
for idtx and flip functions for FLIPADST. Note that 32x32 transforms
are now included for ext-tx only.
Change-Id: I8bc98ee63f35688064a64e51eb0873c2a31f8cac
The ans writer is currently allocated in the encoder context to prevent
per frame reallocation of the reversal buffer.
Change-Id: I22602fa0890d9aad6de389a7f5eec7121a6a1f1a
In the experiment of EXT_REFS, MAX_REF_FRAMES has increased from 4
to 7, as 3 more reference frames have been added.
Change-Id: I3fec2c2078f925afe518b454e3f71afbd7379d06
For the experiment of EXT_REFS, add following functionalities to
support new references, in particular, to support the bi-directional
prediction:
(1) Add support to handle reference frame update; and
(2) And support to handle show_existing_frame == 1.
Change-Id: I74f88c098f1b8d07a63fcd53aa5ed51a8926d513
This removes the unused spatial scalability, temporal layers, and svc
parameters from the aom API. There is no code implementing these APIs,
and if it they are needed in the future, just resurrect them from this
commit. The skin_detection code is unused and won't be used.
Change-Id: I3185bad6ec58c55426953b658a12a06ed041d7cd
Handle the sub8x8 chroma component at the unit of 2x2/4x2/2x4 level
and use the motion vector inherited from the luma component. This
improves the coding performance:
lowres 0.4%
midres 0.25%
hdres 0.15%
Change-Id: I34dff4218cfa3e5d55e7ed0341f36f4719389f7e
Following supports are added in the decoder:
(1) Decoder support to show_existing_frame == 1;
(2) Decoder support to avoid the referring to non-reference frames;
(3) Decoder support to handle the case when cm->prev_frame gets retired
in the reference buffer.
Change-Id: Ibe8590da8db26e18bcf149b9f155db71636ba890
This commit makes the dynamic motion vector referencing system
support multiple backward reference frames, hence making the
two experiments work properly.
Change-Id: I7b9812a29d9e634ca4817d5d1116cd093fa74e68
For the experiment of EXT_REFS, add the handling of the context
probabilities for both forward reference frames (namely
LAST/LAST2/LAST3/GOLDEN) and backward reference frames
(namely BWDREF/ALTREF).
Change-Id: Ibd991673acf6ff2fc9a56b8805eca9173cbf5fdc
For the experiment of EXT_REFS, 3 new frame update types are added,
namely
(1) BRF_UPDATE: The frame served as BWDREF_FRAME;
(2) LAST_BIPRED_UPDATE: The last frame within the BWDREF_FRAME group
that is being bi-directionally predicted using BWDREF_FRAME; and
(3) BIPRED_UPDATE: The frame, except the last one, within the
BWDREF_FRAME group that is being bi-directionally predicted using
BWDREF_FRAME.
Change-Id: I64f6ba3f45d6a3dcd1ee97567c6f904ad4e7bad3
The skip_recode speed feature is removed by commmit 00cd5de536,
so delete related codes in speed_feature.c.
Change-Id: Ica25bbd22504ff91be186402a5a6e07da616a7ee
Up-sampled the reference frames to 8 times in each dimension using the
8-tap interpolation filter. In sub-pixel motion search, use the up-sampled
reference frames to find the best matching blocks to increase the motion
search precision. This is enabled as a speed feature for speed 0 and
speed 1, and this is encoder-only improvement.
Overall PSNR: -1.456%(lowres); -0.430(hdres)
SSIM: -1.687(lowres); -0.551(hdres)
Change-Id: I2085d87e41f6b91d0221dc11dc7ffd003075ba2e
When building with --enable-daala_ec, calls to aom_write_tree() and
aom_read_tree() will convert a aom_tree_index structure with associated
aom_prob probabilities into a CDF on the fly for use with the
od_ec_encode_cdf_q15().
The number of symbols in the CDF is capped at 16, and trees that contain
more than 16 leaf nodes are handled by splitting the most likely, e.g.,
highest probability symbols, first and coding multiple symbols if
necessary.
ntt-short-1:
MEDIUM (%) HIGH (%)
PSNR 0.000227 0.000213
PSNRHVS 0.000215 0.000205
SSIM 0.000229 0.000209
FASTSSIM 0.000229 0.000214
subset1:
RATE (%) DSNR (dB)
PSNR -0.00026 0.00002
PSNRHVS -0.00026 0.00002
SSIM -0.00026 0.00001
FASTSSIM -0.00026 0.00001
Change-Id: Icb1a8cb854fd81fdd88fbe4bc6761c7eb4757dfe
Rename av1_write_tree() to aom_write_tree() and move it into bitwriter.h
to match aom_read_tree() in bitreader.h.
Change-Id: I49a2e418a4bb8d724cb033b787b650da0bc28833
The decision framework in enc (without obmc mv refinement) and
reconstruction at both sides is implemented.
Performance gain: 2.229/2.000/1.915% lowres/midres/hdres
Encodinig time: +13%
Change-Id: I5ab634c17d7050f15ecf5d4145626d0eaa425058
Including functions that generates predictions using neighbor
predictors, and the function that combines them with the base
prediction.
Change-Id: Iec6a2fbd6494a5bb335a7b36ec31a66799499b6f
This commit uses a non-local mean filter as temporal filter to
produce the original alternate reference frame. It improves the
compression performance:
lowres 1.0%
midres 1.1%
hdres 2.1%
Change-Id: Iecae01a1e9398d870f13bf060d214cfb40a9a26e
Merge the part for intra prediction reference data. It makes the
codebase easier to read, and also improves coding performance
slightly.
Change-Id: I15fa7bd43fb1bae596c43e88327abb37bc6145f7
On average no compression performance changes. Encoding speed is
increased by 10~20% on some test clips in the derf set.
Change-Id: I9856caaa260303f6f6259686671bed7d51012277
Cherry-pick af7fb17 Upgrade fwht4x4_mmx() to fwht4x4_sse2() for vp9 and
vp10.
Function level timing test shows about 27% time saving on
a Xeon E5-2680 v2 desktop.
Rename dct_sse2.c to dct_intrin_sse2.c to avoid duplicate basenames.
Change-Id: I2c504130099af8f0ccc07da0dacef2464197b0ac
The inter modes now support and test multiple transform types. The
assumption of skip_recode mode no longer exist. Remove this speed
feature.
Change-Id: I2e6798fc841d8ca3838dabed7741950552961a13
Drop some speed features used in speed 2 and above, during the
algorithm development process. This helps simplify the codebase.
Change-Id: I3b2f5560d90b00d2d8fd57c2cb36f6ddd3f228e4
This commit makes the encoder and decoder use the same motion
compensated prediction functions to simplify the codebase.
Change-Id: Ic492700bd003aec658e95cb39bcc2ba60bc6e2e4
This commit makes the motion vector coding context account for the
dynamic motion vector predictor index.
Change-Id: I86fc98668130140118458c773b3dd6d3ed4bc448
The av1_token encodings must match the contents of the aom_tree_index
structures so generate all encodings from the symbol trees.
Change-Id: I37be9f12c86a02693ae3c3c1d24b00f2abb29bfb
This commit changes to use uint32_t for cost (always non-negative),
and promote to int64_t before calculation of the savings.
This fixes an integer overflow.
Change-Id: I71c2580d188cc79d2d8069241d0353cf331b5c83
this matches style guidelines and stabilizes successive runs of
clang-format across the tree. remaining types should be address in
successive commits.
Change-Id: I6ad3f69cf0a22cb9a9b895b272195f891f71170f
this was missed in the resurrected examples/aom_cx_set_ref.c and the
accompanying fix in av1/decoder/decoder.c as well as in:
2a10c91 rdopt,rd_pick_intra4x4block: port tsan fix from libvpx
Change-Id: Ie47eabf7869f629ffb82257f09665165083aef96
This commit changes to use int instead of unsigned for a variable used in
inverse quantization.
Ported from libvpx/master: d3fe3b2abb
Change-Id: I8f0ff5f80c9e68d52425265ef177357c65ead1e2
This code was pulled over from libvpx (89a8174 and 9aaa3c9
Make set_reference control API work in VP9 and VP10). The testing
script was added to insure it's working properly.
Change-Id: Ica311c169a1e51718503e23756c4c394818217dd
minus the non-existent nonrd portion. original change:
commit d642294b1c
Author: Jingning Han <jingning@google.com>
Date: Thu Feb 11 12:36:49 2016 -0800
Fix tsan error in VP9 sub8x8 intra mode search
This commit fixes issue 1141. The issue was triggered in multi-tile
encoding. The change properly saves and restores the block context
information in the real-time mode selection process. It removes
several redundant memcpy operations in sub8x8 intra block mode
search.
Change-Id: I35c9ad197f4bd500ec39b5fc833f052f19eee010
Change-Id: If0c11092450ede0450fc9bcf5db2f7349ac2860c
calls into pickdering.c are protected by CONFIG_DERING as are its common
headers. fixes missing dering.h when trying to build in a 'make dist'
directory
Change-Id: I6089f48eecfe82e98b316bef12c2bf045d226f3c
The tables av1_kf_uv_mode_prob[INTRA_MODES][INTRA_MODES - 1] and
av1_kf_partition_probs[PARTITION_CONTEXTS][PARTITION_TYPES - 1] are not
referenced anywhere in vp10 or av1 and can be removed.
Change-Id: Ibaf8d8de125fc2341beaf14733200d792d8d583c
This commit makes the codec to store the predicted motion vector
at 8x8 block level and assign them when the reference motion vector
is obtained from collocated blocks in the previous frame.
Change-Id: I7e0403dad1df012f3994846939bb799e2445736c
This commit enables motion estimation process based on the dynamic
motion vector referencing system. It allows the codec to select
the optimal predicted motion vector for motion vector coding.
Change-Id: Ic2a4d16e17c3fc320b1435d9ff564d5902c89f16
This commit allows the compound mode to use entropy coding contexted
on the dynamic motion vector referencing system.
Change-Id: Ie6f3219183ac3fce322d340728af26c1c1dfa37f
This allows the codec to use effective motion vector as the candidate
to produce the reference motion vector list.
Change-Id: I4e00719f059ad82e5e8a0c843f7f96f59135cefd
The old taps were equivalent to [2 2 3 2 3 2 2], while the new taps are
equivalent to [1 2 3 4 3 2 1]. The new coefficients improve metrics
slightly (not clear why).
ntt-short1 results:
LOW (%) MEDIUM (%) HIGH (%)
PSNR NaN -0.126426 -0.209062
PSNRHVS NaN 0.043873 -0.038114
SSIM NaN -0.054293 -0.138431
FASTSSIM NaN -0.143498 0.245350
Change-Id: Iecadda68a4e9b33a49a807faf0a7dee6c9a119cb
Skip the transform type search in the dynamic motion vector
referencing mode. Always fall back to 2D-DCT setting.
Change-Id: Ia483172e13ce0da313855106a194fee48fcc0514
This commit accounts for the context based probability model for
motion vector cost estimate in rate-distortion optimization.
Change-Id: I18961b25ef356e4751407a178702e9a7a1213100
This commit converts the scalar motion vector probability model
into vector format for entropy coding contexted on the predicted
motion vector.
Change-Id: I09a17ed4d01efa49640c2882efbf78913b32556e
This commit extends the search range to include the motion vectors
from collocated reference blocks.
Change-Id: I1c856ab42c78d7a92cdb8bc169713a9335b0e908
This commit enables entropy coding of the syntax elements used in
the dynamic motion vector referencing system.
Change-Id: If876c7df6402caf4b6daa3d511328da522e95233
This commit enables the dynamic reference motion vector coding mode
for the compound inter blocks.
Change-Id: I3d6edea7cf241cbb108709b57aeb54f811029237
This commit generalizes dynamic reference motion vector coding mode
to support multiple candidate modes in the rate-distortion
optimization scheme and to support the selection in the bit-stream
syntax. The maximum number of modes allowed is currently limited to
4. The syntax elements for the dynamic reference motion vector
modes are using binary codes.
Change-Id: I63ada01c18d4aaa2e3770811130fa8a42a88ab62
This commit enables the dynamice motion vector referencing system
for inter predicted modes with single reference frame.
Change-Id: Ib3502c746276a859a7b443ec2687b71d4c788dc0
Use and compare the reference frame vector to find the reference
motion vector candidates for compound mode.
Change-Id: Ie9d1006f5121593a2311fcaeac411a54a705d266
When the current frame does not have its previous frame for
reference, reset the ZEROMV mode context.
Change-Id: I6018ede03adea76c4c5335e0eb34ab60df0576c7
This commit synchronizes the value assigned to cm->use_prev_frame_mvs.
It resolves a potential mismatch between encoder and decoder.
Change-Id: I2208017db73f8a83cbb50027776db8dc67526b44
Unify the reference motion vector candidate search for row, column,
and single block cases. Make it support later extended reference
frame contexts.
Change-Id: I1278a9f1ed8561eccc8460b4edff4b97d438ad9b
It allows the codec to account for certain corner cases when
processing inter prediction mode entropy coding.
Change-Id: I51a1adda0d9e27bd1e18d912fd56ca4422b607b4
This commit allows the codec to analyze the reference motion vector
candidate list and adaptively reduce the size of inter prediction
mode set.
Change-Id: I98f25bbf17cc844a84cfc568be27912f31fbe478
This commit re-works the entropy coding scheme of the motion
compensated prediction modes. It allows a more flexible hyperplane
partition for precise classification.
Change-Id: Id02d4015a053affea9c19b1188873fbd7b906e92
This commit allows the codec to check the top-right neighbor block
when available for reference motion vector candidates.
Change-Id: I94c19bdb5e2cb8c1f58bd39a3001873fcc55b08c
Check all motion vectors in the immediate above and left blocks if
the boundary condition matched with that of the reference block.
Change-Id: Ie1c263065eded01fbf735c1518de8162cc377e89
This commit ports the motion vector stack from motion field
analyzer to the encoding and decoding pipeline.
Change-Id: I9f265f198b3f7b52dad8948490959041159fd6b2
Change the name of source files to replace "vpx" with "aom".
Change occurences of "vpx" in the code to "aom".
Change-Id: I002c0eaa2c350cf1a895bf01bea5788c61328027