Age | Commit message (Collapse) | Author |
|
Gradually integrate the single-/multi-layer ARF and dual ARF
encoder control. Remove deprecated code.
Change-Id: Idcd6dcbca3f8d7597878d83dec421e16be819f55
|
|
ARF_DECAY_BREAKOUT is no long used.
Change-Id: I553f8a3087389f0343444e2551581e9de02d3427
|
|
Localize variable definitions in setup_frames() and
two_pass_first_group_inter().
Change-Id: I66e842791d679be6d22cef50e0b395b5aa380eac
|
|
|
|
|
|
|
|
|
|
This function is used to in part decide if to trigger recode loop
for the first normal P frame in a GOP. Rework its design logic to
support the GOP with multi-layer ARF. Allow recode when there is
a transition from ARF/OVERLAY/USE_BUF to normal P frame.
The overall coding performance for multi-ARF gets slightly better
(less than 0.1% for show_existing_frame case). Tested on a few
clips, the encoding speed remains similar too. This change primarily
serves to help integration of multi-layer ARF and dual-ARF systems.
Change-Id: Ia44e44526b05029b1546985b3eb649e767d5444f
|
|
Merge two identical if branches.
Change-Id: Ie012ba9c116a30ef6fa2e7868c7a4ba886b99bc6
|
|
Use separate frame context index to code frames at different layers.
The maximum index cap is set as 3. This improves the compression
performance of multi-layer ARF by 0.15% across the test sets.
The overall coding gains from multi-layer ARF are
avg PSNR ovarall PSNR SSIM
lowres -3.9% -3.7% -3.2%
midres -3.5% -3.2% -2.3%
nflx2k -4.3% -4.6% -3.0%
Change-Id: I8a0b345fdd47823c018544a6b4748753faf89dc1
|
|
match the const in the header; quiets a visual studio warning.
since:
04b3d49ba vp9-svc: Allow for setting framerate per spatial layer.
Change-Id: I0a216eb8fe1a689fe6822bbfac70f7c98e9b1a70
|
|
|
|
|
|
|
|
Assign layer depth for the base layer ARF and the normal frames.
Change-Id: I81cbb2846c3176336622f9006701c0219652905a
|
|
|
|
Temporarily fork the auto-alt-ref control meaning. When it is set
to be 1, use single layer ARF as baseline. The value 2 would enable
dual ARF system. Any number above it would trigger automatic multi-
layer ARFs.
We would gradually refactor and integrate dual ARF and multi-layer
ARF systems next, and eventually make auto-alt-ref directly control
the layer depth.
Change-Id: I292d27111ae8a596b97444afecf4b896043e543f
|
|
Extend the upper limit from 2 (dual ARFs) to maximum ARF layers.
This would later allow --auto-alt-ref to directly control the
ARF layer depth later on.
Change-Id: I6324fe980122e73dc98f81c8d7de1193a1a16e51
|
|
Normal frame boost factor is set to be 100 as the baseline for
ARF boost. Replace the hard coded number with a macro.
Change-Id: I81ce30138f7819844e7a2d811de9e1ccbeb85da5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This fixes the multi-thread encoder test failure.
Change-Id: I0c1845922068e71097a387db0969ca419accb3ed
|
|
The experiment aims at making non-greedy mv search decision
Change-Id: I3d77048ce106771fe003f250d07b7ddf0112536f
|
|
Add duration to set_svc_ref_frame_config.
BUG=b/113346831
Change-Id: I63613aed6b1183f98d04831600a6bdd645c740df
|
|
Re-count the factors to decide bit boost factor for the
intermediate layer ARFs. Make the gfu_boost factor assigned to
each ARF adapt to its local factors.
This and the recursive change 5bfe9eb together improves the
multi-layer ARF compression performance:
avg_psnr ovr_psnr ssim
lowres -0.39% -0.54% -1.6%
midres -0.98% -1.26% -2.3%
hdres -0.95% -1.13% -2.3%
Change-Id: I5fec3ea75cae58825787dc88dadc7e8697a041ea
|
|
Recursively calculate the rate boost for the ARF frames at the
given layer depth from the remaining available bit resource after
the prior layer ARFs consumption.
Change-Id: I0e31bac4f87b895ca20605dc1307a8fc0d2a516d
|
|
Increase the bit allocation for the intermediate layer ARFs. The
current strategy assigns higher offset to the lower layer ARFs.
The needed budget is borrowed from the base layer ARF allocation.
Change-Id: I16b6e9cce4dab8e73e7b097674d1a8504205026e
|
|
|
|
|
|
|
|
|
|
Clean up vp9_encodeframe.c.
Change-Id: I4035fee94da746c74d72f71ca8334f91c5d10116
|
|
Change-Id: I876f69acf9420b3b013cb3048bbfa8ff059e2e50
|
|
When multi-layer ARF mode is enabled, increase the encoder buffer
to account for the situation where several ARFs are coded together
in a frame packet.
Change-Id: I4e53095f6b6ac5a3c8d79414411ac39880bf1523
|
|
Fine tune the multi-layer ARF location decisions. Support deeper
layer structure.
Change-Id: I3e44cf52b6813f6267bcd7266f9aa1b7ded57f8e
|
|
|
|
This change is in response to quality issue in b/112953058
The quality regression observed is a result of a bug that manifested
because of a very short key frame group at the start of a chunk.
The group was so short that it was less than the minimum allowed
length of an ARF group, so the initial group was coded as a GF only
group. However, group length was not set correctly and the result
was a frame coded with a target of 0 bits.
This causes two problems:
Firstly one very poor frame that caused the issue to be raised.
Secondly that one frame obviously overshoots its 0 target very heavily
and this has the effect moving the needle significantly in terms of the
adaptive rate control (specifically the estimate of bits per macro block
used to estimate the active Q range). Consequently there is undershoot
for most of the rest of the chunk and the overall rate ends up much lower
than the target (14Mb/s vs a target of 22Mb/s). (The sharp drop in the
overall rate is also noted in the issue.
BUG=b/112953058
Change-Id: Ide9cce57acd3dee0f9496b752902e7b4735f2c7f
|
|
Keep the ARF and P frame rate allocation distribution. All the
intermediate ARFs are treated same as regular P frames.
Change-Id: I7807b8e6a8f19b6e1b09b9b7d119b3c88ef90b67
|
|
|
|
|
|
|
|
The additional constraint imposed on inter-layer
prediction should only be done for non-bypass (fixed)
svc mode.
Change-Id: Ia22cdb7bc21684776c9a13397e177a1e1c3d55a2
|
|
This rate control bug in the original patch is not the underlying cause
of the quality regression but simply unmasked a problem which stems
from applying 0 bits to the last frame in a short KF group at the start
of a chunk.
This reverts commit d10b1f233657054b1465d40f0b409c20029a540b.
Change-Id: I32c91a24a14d013853bb8e5587aa69600e6a0063
|
|
For fixed/non-flexible SVC mode: on non-key spatial
enhancement layers modify constraint on the inter-layer
prediction to include the first_spatial_layer_to_encode.
Change-Id: I6a59174976ad72d555653704dcd3b03c52e31b6f
|
|
Update the raw_src_frame to be the current input source frame in
the show_existing_frame mode.
Change-Id: Ia8edf49ca948c45ffe6c60556756b36124ab092a
|