Age | Commit message (Collapse) | Author |
|
With this fix, the experimental branch now builds and encodes correctly
with the following two configure options respectively:
--enable-experimental --enable-t8x8
--enable-experimental
Change-Id: I3147c33c503fe713a85fd371e4f1a974805778bf
|
|
Please refer to previous commit messages for detailed info:
https://on2-git.corp.google.com/g/#change,5940
https://on2-git.corp.google.com/g/#change,6045
Change-Id: I8b16992f2f69c5a808ad40a3e32ef589cce7c59d
|
|
|
|
allowing the compiler to inline this function. For real-time
encodes, this gave a boost of 1% to 2.5%, depending on the
speed setting.
Change-Id: I3929d176cca086b4261267b848419d5bcff21c02
|
|
|
|
This patch attempts to improve the handling of CBR streams with
respect to the short term buffering requirements. The "buffer level"
is changed to be an average over the rc buffer, rather than a long
running average. Overshoot is also tracked over the same interval
and the golden frame targets suppressed accordingly to correct for
overly aggressive boosting.
Testing shows that this is fairly consistently positive in one
metric or another -- some clips that show significant decreases
in quality have better buffering characteristics, others show
improvenents in both.
Change-Id: I924c89aa9bdb210271f2e03311e63de3f1f8f920
|
|
|
|
vpx_copy_and_extend_frame could incorrectly
resize uv frames which could result in a crash.
Change-Id: Ie96f7078b1e328b3907a06eebeee44ca39a2e898
|
|
|
|
|
|
|
|
|
|
|
|
Change-Id: I5fe581d797571a7a9432fbd17fc557591d0c1afa
|
|
Change-Id: I65105a9c63832669237e6a6a7fcb4ea3ea683346
|
|
|
|
Change-Id: I1ed739522db7c00c189851c7095c1b64ef6412ce
|
|
|
|
Separate simple filter with reduced no. of parameters.
MB filter level picking based on precalculated table. Level table updated for
each frame. Inside and edge limits precalculated and updated just when
sharpness changes. HEV threshhold is constant.
ARM targets use scalars and others vectors.
Change works only with --target=generic-gnu
All other targets have to be updated!
Change-Id: I6b73aca6b525075b20129a371699b2561bd4d51c
|
|
|
|
|
|
This should fix binaries using PIC on x86-32. Also should
fix issue 343.
Change-Id: I591de3ad68c8a8bb16054bd8f987a75b4e2bad02
|
|
Conflicts:
vp8/encoder/bitstream.c
Change-Id: I44c00f98dcb99eb728ce4f5256aefb135a711a74
|
|
Change-Id: I35c9ca116aecd0d03e762942d9cf1289edb4f23d
|
|
Change-Id: I3683cb87e9cb7c36fc22c1d70f0799c7c46a21df
|
|
|
|
Change-Id: I68e604e4a731f6703fdec7eff2c2c9b9e36879ea
|
|
|
|
|
|
There were many instances in the code of vp8_coef_tokens and
vp8_coef_tokens-1, which was a preprocessor macro despite the naming
convention. Replace these with MAX_ENTROPY_TOKENS and ENTROPY_NODES,
respectively.
Change-Id: I72c4f6c7634c94e1fa066cd511471e5592c748da
|
|
With this commit frames can be received partition-by-partition
from the encoder and passed partition-by-partition to the
decoder.
At the encoder-side this makes it easier to split encoded
frames at partition boundaries, useful when packetizing
frames. When VPX_CODEC_USE_OUTPUT_PARTITION is enabled,
several VPX_CODEC_CX_FRAME_PKT packets will be returned
from vpx_codec_get_cx_data(), containing one partition
each. The partition_id (starting at 0) specifies the decoding
order of the partitions. All partitions but the last has
the VPX_FRAME_IS_FRAGMENT flag set.
At the decoder this opens up the possibility of decoding partition
N even though partition N-1 was lost (given that independent
partitioning has been enabled in the encoder) if more info
about the missing parts of the stream is available through
external signaling.
Each partition is passed to the decoder through the
vpx_codec_decode() function, with the data pointer pointing
to the start of the partition, and with data_sz equal to the
size of the partition. Missing partitions can be signaled to
the decoder by setting data != NULL and data_sz = 0. When
all partitions have been given to the decoder "end of data"
should be signaled by calling vpx_codec_decode() with
data = NULL and data_sz = 0.
The first partition is the first partition according to the
VP8 bitstream + the uncompressed data chunk + DCT address
offsets if multiple residual partitions are used.
Change-Id: I5bc0682b9e4112e0db77904755c694c3c7ac6e74
|
|
Adding support in the encoder for generating
independent residual partitions by forcing
equal probabilities over the prev coef entropy
contexts.
Change-Id: I402f5c353255f3ca20eae2620af739f6a498cd21
|
|
The current code stores pointers to coefficient tables and loads them to
access the tables contents. As these pointers are stored in the code
sections, it means we end up with text relocations. eu-findtextrel will
thus complain about code not compiled with -fpic/-fPIC.
Since the pointers are stored in the code sections, we can actually cheat
and let the assembler generate relative addressing when accessing the
coefficient tables, and just load their location with adr.
Change-Id: Ib74ae2d3f2bab80b29991355f2dbe6955f38f6ae
|
|
|
|
Change-Id: Ia944723797d67abef24312cf928cf6fd64cd9766
|
|
Change Ieb746989: Removed B_MODE_INFO missed this.
Change-Id: I32202555581cc2a5d45e729c6650ada4d2df55d3
|
|
Change-Id: I689f4624a53184a72258df575305eb1aa97e61ca
|
|
|
|
Only the first frame buffer ref counter was being initialized
because the index was fixed at 0 rather than using i.
Change-Id: Ib842298be4a5e3607f9e21c2cd4bfbee4054ffc4
|
|
|
|
vp8_yv12_copy_frame_ptr() expects same size
buffers which was not previously gaurenteed.
Using an improperly allocated buffer would
cause a crash before.
Change-Id: I904982313ce9352474f80de842013dcd89f48685
|
|
About 9~10% decoding perf improvement on non-Neon ARM cpus
Change-Id: I7dc2a026764e84e9c2faf282b4ae113090326837
|
|
Conflicts:
vp8/encoder/encodeframe.c
vp8/encoder/rdopt.c
Change-Id: I183fd3ce9e94617ec888c9f891055b9f1f8ca6c5
|
|
Conflicts:
vp8/encoder/encodeframe.c
vp8/encoder/rdopt.c
Change-Id: I8bab720889ac652361abdedfe2cc91a89742cb30
|
|
Small decode performance gain (~1%) on keyframes. No
noticeable gains on encode. Also changed pick_intra4x4mby_modes()
to read the above and left block modes for keyframes only.
Change-Id: I1f4885252f5b3e9caf04d4e01e643960f910aba5
|
|
instead of every macro block.
Change-Id: I2604e94c6b89e3a8457777e21c8c38406d55b165
|
|
Better fix for #326. ICC happens to support the inline magic
Change-Id: Ic367eea608c88d89475cb7b05d73500d2a1bc42b
|
|
Conflicts:
vp8/encoder/encodeframe.c
Change-Id: Ibb5a3894ede08ed401ec6e974a8902d7393c9978
|
|
Change-Id: I81ac427cbaf3d0865df4acef3e0bfc2e95556c4b
|
|
Declared the bmi in BLOCKD as a union instead of B_MODE_INFO.
Then removed B_MODE_INFO completely.
Change-Id: Ieb7469899e265892c66f7aeac87b7f2bf38e7a67
|