Adds options --i422 and --i444 which along with --input-bit-depth
will allow raw video input in 422 and 444 sampling at the given
bit-depth. For the decoder, the new option --rawvideo allows
decoding to raw yuv at the color sampling of the decoded bit-stream.
Change-Id: I5b3979be66c0dd2672391400850c97260cc8e1e8
These changes allow 10 and 12 bit depth streams
to encode at higher quality by using a finer
quantizer. Category 6 tokens now transmit 18
extra bits instead of 14 in order to be able to
encode the greater range of output coefficients.
The extended quantizer range is only used when
configured with the following options:
--enable-vp9-high
--enable-high-transforms
--enable-high-quant
Change-Id: I58d2981676d67b65cc022e98cf443603d38ba6ff
Splits profile 2 into Profile 2 and 3, where profile 2
ony supports 420 sampling, while profile 3 adds 422/444 and
alpha. Keeps room for further expansion.
Also makes some minor changes in the decoder parameters,
replacing --convert-to-8bit with output-bit-depth.
Change-Id: I713525880512de6c36698d212795db1543c1d0dd
Improves performance on derf by 0.89% for 10-bit internal
and by 0.55% for 12-bit internal, both for 8-bit sources.
Change-Id: I181fd9fb10e2259233d67cdd7933fb3cae334afc
vpxenc now accepts high bitdepth y4m files
vpxdec now produces high bitdepth y4m files
(Only if the bitstream is high bitdepth)
Can force 8bit output via --covert-to-8bit
Change-Id: Ife9fc40772aceed32ba47d7ca81024ed09563721
Deprecates --input-shift parameter and instead derives that from
bit-depth assuming 8-bit input source. Eventually this needs to be
derived from the input-bit-depth parameter once we support high
bit depth input. Another parameter --test-high-internal is added
to force use of 16 bit internal buffers for testing purposes, in
profile 0 and 1.
Also --bit-depth parameter now uses values 8/10/12 which is more
intuitive than 0/1/2.
Also includes some cleanups.
Change-Id: I0bdd6d9caae8bb339d217551bb35a001057805ec
--output-shift now infers the amount to shift
from the bitdepth of the decoded file.
Option has been renamed to
--convert-to-8bit
Change-Id: Ieb2945bb282bb81c52a0c4f1b691c82bec5ec18c
Changes in this patch are only enabled if configured with
--enable-experimental --enable-vp9_high
Using a encoder command line argument of --input-shift=0 tells the coder
to work with 16bit framebuffers.
The output should be identical to before. Some features (such as input
image resizing) are not yet supported in 16bit mode.
Specifically, the behavior of the input-shift parameter is as follows:
* No argument : Behaviour as before, using 8bit frame buffers
* --experimental-bitstream --profile=2 --input-shift=0: Uses
16bit frame buffers to store 8-bit data, should give identical output
to before.
* --experimental-bitstream --profile=2 --input-shift=2 --bit-depth=1: Uses
16bit frame buffers to store 10-bit data, encodes a version 2 stream
with bitdepth 10
* --experimental-bitstream --profile=2 --input-shift=4 --bit-depth=2: Uses
16bit frame buffers to store 12-bit data, encodes a version 2 stream
with bitdepth 12
The decoder has an --output-shift argument which should be used when
decoding profile 2 streams.
So far support for the following has been added:
Intra filtering
Deblocking
Motion compensation
Variance calculation
Sad calculation
Transform
Change-Id: If345c88234aafdd40caea0d88935b1f07aaebe22
Adding a --(enable|disable)-webm-io flag to control WebM container input and
output support. For now, enabling WebM IO by default only when there is a C++
compiler. Doing so because eventually we will move WebM IO to libwebm and it
is built using C++.
Change-Id: I210ac36c23528e382ed41d3c4322291720481492
Change dx_time data type to int64_t to prevent
test time overflow when decoding long video.
Change-Id: I3dd5e324a246843e07e635fd25c50e71e385ed70
Signed-off-by: James Yu <james.yu@linaro.org>
Added support for external frame buffers to libvpx's VP9 decoder.
If the external frame buffer functions are set then libvpx will
call the get function whenever it needs a new frame buffer to
decode a frame into. And it will call the release function
whenever there are no more references to that buffer.
Change-Id: Id2934d005f606af6e052fb6db0d5b7c02f567522
the public typedef already includes a const, quiets
'same type qualifier used more than once' warnings
Change-Id: Ib118b3b116fba59d4c6ead84d85b26e5d3ed363d
File type check inside ivf_read_frame() is not necessary (it is done
before this function get called).
Change-Id: Iede8feb358d25878b340473d85c3b01d701fc624
There are three contributors to the definition of how the
display size is set:
(1) display width/height set in the container.
(2) display size (optional in the frame header)
(3) decoded frame size (from the frame header)
This patch modifies the way that vpxdec defines the display
size to give preference to these three criteria in the order
given above. If the container sets a non-zero size, it is
used, otherwise the display size specified in the first
decoded frame is used (if specified), with the raw
decoded frame size of the first frame used as a last resort.
The display size set in frames other than the first is
always ignored in this implementation.
Change-Id: I7e98d817d3f5894d559dd2aeb0a6cb1959b9092b
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