]> granicus.if.org Git - libvpx/log
libvpx
9 years agoUse balanced model for intra prediction mode coding sandbox/jingning@google.com/experimental
Jingning Han [Sat, 20 Jun 2015 00:31:34 +0000 (17:31 -0700)]
Use balanced model for intra prediction mode coding

This commit replaces the previous table based intra mode model
coding with a more balanced entropy coding system. It reduces the
decoder lookup table size by 1K bytes. The key frame compression
performance is about even on average. There are a few points where
the compression performance is improved by over 5%. Most test
points are fairly close to the lookup table approach.

Change-Id: I47154276c0a6a22ae87de8845bc2d494681b95f6

9 years agoMake tx partition entropy coder account for block size
Jingning Han [Thu, 18 Jun 2015 19:39:09 +0000 (12:39 -0700)]
Make tx partition entropy coder account for block size

This commit allows the entropy coder for transform block partition
to account for its relative position with respect to the block size.

Change-Id: I2b5019c378bfb58c11b926fa50c0db1933f35852

9 years agoAdd max_tx_size to MB_MODE_INFO
Jingning Han [Thu, 18 Jun 2015 16:50:20 +0000 (09:50 -0700)]
Add max_tx_size to MB_MODE_INFO

Refactor the recursive transform block partition to reduce repeated
computation maximum transform block size per block.

Change-Id: Ib408c78dc6923fe7d337dc937e74f2701ac63859

9 years agoMake loop filter support variable transform block size
Jingning Han [Tue, 16 Jun 2015 23:04:37 +0000 (16:04 -0700)]
Make loop filter support variable transform block size

This commit refactors the loop filter implementation to make it
support recursive transform block partition.

Change-Id: Ica2daa9cb54730cff7770ee2c2d7ffdb240ff418

9 years agoTurn on loop filter
Jingning Han [Tue, 16 Jun 2015 15:46:21 +0000 (08:46 -0700)]
Turn on loop filter

Temporarily use univariate transform size for loop filter.
As compared to VP9 master branch with loop filter turned on, the
compression gains are:

derf  0.671%
mr    0.749%
stdhd 0.886%
hr    1.394%

The encoding speed currently is about 1.3X that of speed 0.

Change-Id: I64788f894e70fde14c5be3159501bedf836e5998

9 years agoUpdate transform block partition information for intra blocks
Jingning Han [Mon, 15 Jun 2015 17:04:27 +0000 (10:04 -0700)]
Update transform block partition information for intra blocks

If a block is coded in the intra modes, update the transform block
partition information as maximum block size.

Change-Id: I5ea440c700fc887ff2fe84fabde77a9d896d16f4

9 years agoRefactor tx_block_rd_b() to compute per block rd cost
Jingning Han [Fri, 12 Jun 2015 20:51:29 +0000 (13:51 -0700)]
Refactor tx_block_rd_b() to compute per block rd cost

This commit makes the tx_block_rd_b() compute the rate and
distortion cost per transform block, instead of accumulating these
costs.

Change-Id: Iff5adc4c27cc54f8e6eb3abd95f8d88ba00f462c

9 years agoSkip redundant flag reset
Jingning Han [Thu, 11 Jun 2015 23:05:04 +0000 (16:05 -0700)]
Skip redundant flag reset

If the skip flag is already on, there is no need to further check
the all zero block case. This improves encoding speed at no coding
statistics change.

Change-Id: Icab997ca2977e650351a47ff1314def5ac4ecb1d

9 years agoAllow encoder to force all zero coefficient block
Jingning Han [Thu, 11 Jun 2015 19:07:27 +0000 (12:07 -0700)]
Allow encoder to force all zero coefficient block

This commit allows the encoder to force all zero quantized
coefficient block per transform block, if that provides better
rate-distortion trade-off.

Change-Id: I5b57b28cccd257ebfaf7c1749dda7be482abc834

9 years agoAssign largest transform block size to skip block
Jingning Han [Thu, 11 Jun 2015 18:00:58 +0000 (11:00 -0700)]
Assign largest transform block size to skip block

If a block has all coefficients quantized to zero, the codec will
assume that it uses largest transform block size.

Change-Id: I1a32527e50026e8e4759ad8de474189cd20e89c8

9 years agoRefactor transform block partition entropy coding
Jingning Han [Wed, 10 Jun 2015 19:55:04 +0000 (12:55 -0700)]
Refactor transform block partition entropy coding

This commit refactors the transform block partition entropy
coding process to improve the encoding speed. There is no change
in the compression statistics.

Change-Id: I237466fd95c1b888df432babfa36e01f74240eef

9 years agoRefactor transform block partition update process
Jingning Han [Wed, 10 Jun 2015 17:00:13 +0000 (10:00 -0700)]
Refactor transform block partition update process

Unify transform block partition update process used in rate
distortion optimization and encoding stage.

Change-Id: I4e5f2b6d2482c53ceadb7c8743435158f229a82c

9 years agoAccount for context information for partition rate estimate
Jingning Han [Tue, 28 Apr 2015 19:16:51 +0000 (12:16 -0700)]
Account for context information for partition rate estimate

This commit allows the encoder to account for the boundary block
information to estimate the transform block partitiion rate cost
in the rate-distortion optimization scheme.

Change-Id: Idb79cf936d96cdd15bcba27e47318295413a5f5d

9 years agoEnable transform block partition entropy coding
Jingning Han [Mon, 27 Apr 2015 16:46:21 +0000 (09:46 -0700)]
Enable transform block partition entropy coding

Select the probability model for transform block partition coding
conditioned on the neighbor transform block sizes.

Change-Id: Ib701296e59009bad97dbd21d8dcd58bc5e552f39

9 years agoProperly handle boundary block rate distortion computation
Jingning Han [Tue, 9 Jun 2015 18:09:20 +0000 (11:09 -0700)]
Properly handle boundary block rate distortion computation

This commit makes the encoder to properly compute the rate
distortion cost for blocks that partially cover extend pixels.

Change-Id: I44529af6f76925cdc0f6b24a5d190b51b0813983

9 years agoAlign the intra and inter mode cost measurement
Jingning Han [Fri, 5 Jun 2015 18:32:15 +0000 (11:32 -0700)]
Align the intra and inter mode cost measurement

This commit aligns the measurement method used to evaluate both
intra and inter modes.

Change-Id: I8071584ce87fa3c5401800363daa0e670de29af5

10 years agoConditionally use recursive transform block partition search
Jingning Han [Wed, 3 Jun 2015 18:13:04 +0000 (11:13 -0700)]
Conditionally use recursive transform block partition search

If the frame header sets to use fixed transform block size, use
the univariate transform block partition search flow.

Change-Id: Ic422ecb6565642cd8ddb96dc67a37109ef3ce90f

10 years agoRework the rate and distortion computation pipeline
Jingning Han [Tue, 2 Jun 2015 17:02:08 +0000 (10:02 -0700)]
Rework the rate and distortion computation pipeline

This allows the encoder to use more precise rate and distortion
costs for mode decision.

Change-Id: I7cfd676a88531a194b9a509375feea8365e5ef12

10 years agoFix rate estimate issue in transform block partition coding
Jingning Han [Wed, 3 Jun 2015 01:45:29 +0000 (18:45 -0700)]
Fix rate estimate issue in transform block partition coding

This commit fixes the over count issue in the recursive transform
block partition rate cost estimation. It improves the compression
performance by about 0.45%.

Change-Id: I01ccda954ed0e120263977472c1c759c3c67170c

10 years agoEnable rate-distortion optimization for transform partition
Jingning Han [Wed, 22 Apr 2015 05:22:08 +0000 (22:22 -0700)]
Enable rate-distortion optimization for transform partition

This commit enables the rate-distortion optimization for recursive
transform block partition for inter mode blocks based on luma
component. The chroma component infers the transform block size
decision from those of luma component.

Change-Id: I907cc52af888a606b718e087e717b189fa505748

10 years agoRefactor per block rate distortion estimate
Jingning Han [Wed, 22 Apr 2015 00:08:35 +0000 (17:08 -0700)]
Refactor per block rate distortion estimate

Move the rate-distortion estimate function outside the recursion
as an individual operating module.

Change-Id: I662199223c256664bcd312084b3aebffb8a8034b

10 years agoMake chroma component RD estimate support transform partition
Jingning Han [Tue, 21 Apr 2015 22:34:39 +0000 (15:34 -0700)]
Make chroma component RD estimate support transform partition

This commit makes the rate-distortion estimation of the chroma
components support the recursive transform block partition
inferred from the luma component mode decisions.

Change-Id: I2e038bebf558da406e966015952ad1058bdf4766

10 years agoAdd decoder support to recursive transform block partition
Jingning Han [Tue, 21 Apr 2015 18:56:43 +0000 (11:56 -0700)]
Add decoder support to recursive transform block partition

It allows the decoder to recursively parse and use the transform
block size for inter coded blocks.

Change-Id: I12ceea48ab35501ac1a3447142deb2a334eff3b8

10 years agoRefactor bit-stream syntax support to transform partition
Jingning Han [Mon, 20 Apr 2015 22:59:45 +0000 (15:59 -0700)]
Refactor bit-stream syntax support to transform partition

Make the bit-stream syntax elelment coding ready to support
variable transform coding block sizes.

Change-Id: I07ae4ab62d1ecd46c4a5ae45702fc14bd1d4b07d

10 years agoInter block transform coding partition syntax elements
Jingning Han [Mon, 20 Apr 2015 22:34:44 +0000 (15:34 -0700)]
Inter block transform coding partition syntax elements

Allocate memory buffer to store the transform coding partition
information of inter prediction mode blocks.

Change-Id: I428b1dd0b26e8eaf24030a833554ceb4479c5551

10 years agoSynchronize encoding process and tokenization handle
Jingning Han [Mon, 20 Apr 2015 17:43:36 +0000 (10:43 -0700)]
Synchronize encoding process and tokenization handle

The encoding and tokenization process support the recursive
transform block partition coding scheme.

Change-Id: I47283cc6ee9c383059950623ece60a0fcce82e00

10 years agoSynchronize tokenization and detokenization process
Jingning Han [Fri, 17 Apr 2015 19:40:30 +0000 (12:40 -0700)]
Synchronize tokenization and detokenization process

Make the encoder and decoder synchronized for recursive
tokenization coding.

Change-Id: I84c5f3dfc3ee9982ab57e658ffe6cb17a949eda2

10 years agoArrange tokenization order to support recursive txfm block coding
Jingning Han [Thu, 16 Apr 2015 23:21:39 +0000 (16:21 -0700)]
Arrange tokenization order to support recursive txfm block coding

Make the encoder packetize transform block in a recursive order.
Note that the block index with respect to the coding block remains
identical.

Change-Id: I07c6d2017f4f150274aff46c05388a7fd47cd920

10 years agoSyntax coding support for transform block coding
Jingning Han [Wed, 15 Apr 2015 23:38:38 +0000 (16:38 -0700)]
Syntax coding support for transform block coding

This commit re-designs the bitstream syntax to support recursive
transform block partition. It disables the decoder vector unit
tests.

Change-Id: I6cac24c4f1e44f29ffcc9b87ba1167eeb32d1b69

10 years agoRemove get_nonrd_var_based_fixed_partition function
Jingning Han [Thu, 9 Apr 2015 16:49:09 +0000 (09:49 -0700)]
Remove get_nonrd_var_based_fixed_partition function

This function has been replaced by other approaches and is not
in use now.

Change-Id: I387f45b5607d202539e482468ccc70e6c0f9341f

10 years agoCompute prediction filter type cost only when needed
Jingning Han [Tue, 7 Apr 2015 19:39:54 +0000 (12:39 -0700)]
Compute prediction filter type cost only when needed

Skip redundant prediction filter type cost in filter search loop,
if the rate value will be reset in Hadamard transform based rate
distortion estimate.

Change-Id: Ie5221f4bc8da9461c449df367251aeeac52c6e5d

10 years agoEnable Hadamard transform based cost estimate for all block sizes
Jingning Han [Fri, 3 Apr 2015 18:33:24 +0000 (11:33 -0700)]
Enable Hadamard transform based cost estimate for all block sizes

This commit turns on the Hadamard transform based rate distortion
estimate for all block sizes in RTC coding mode. It conditionally
skips the rate distortion estimation if all zero block flag is set
on. No significant encoding speed change is observed. The
compression performance of speed -6 is improved by 1.7% over using
it only for block sizes of 32x32 and below.

Change-Id: I768145e6f05c737b05b5b5f1ee674e929532cafb

10 years agoAccount for eob cost in the RTC mode decision process
Jingning Han [Fri, 3 Apr 2015 16:20:25 +0000 (09:20 -0700)]
Account for eob cost in the RTC mode decision process

This commit accounts for the transform block end of coefficient flag
cost in the RTC mode decision process. This allows a more precise
rate estimate. It also turns on the model to block sizes up to 32x32.
The test sequences shows about 3% - 5% speed penalty for speed -6.
The average compression performance improvement for speed -6 is
1.58% in PSNR. The compression gains for hard clips like jimredvga,
mmmoving, and tacomascmv at low bit-rate range are 1.8%, 2.1%, and
3.2%, respectively.

Change-Id: Ic2ae211888e25a93979eac56b274c6e5ebcc21fb

10 years agoTune SSSE3 assembly implementation to improve quantization speed
Jingning Han [Wed, 1 Apr 2015 22:22:39 +0000 (15:22 -0700)]
Tune SSSE3 assembly implementation to improve quantization speed

Change-Id: If0ca8b25b4800d4336e6cbc97194cd9b01c5b5a3

10 years agoMerge "Simplify bsize calculation"
Yaowu Xu [Wed, 1 Apr 2015 22:06:55 +0000 (15:06 -0700)]
Merge "Simplify bsize calculation"

10 years agoMerge "Optimize quantization simd implementation"
Jingning Han [Wed, 1 Apr 2015 21:55:18 +0000 (14:55 -0700)]
Merge "Optimize quantization simd implementation"

10 years agoMerge "Simplify effective src_diff address computation"
Jingning Han [Wed, 1 Apr 2015 21:55:03 +0000 (14:55 -0700)]
Merge "Simplify effective src_diff address computation"

10 years agoMerge "Refactor block_yrd function for RTC coding mode"
Jingning Han [Wed, 1 Apr 2015 21:54:24 +0000 (14:54 -0700)]
Merge "Refactor block_yrd function for RTC coding mode"

10 years agoSimplify bsize calculation
Yaowu Xu [Wed, 1 Apr 2015 19:15:06 +0000 (12:15 -0700)]
Simplify bsize calculation

Change-Id: Ibc514684def9914c66f04cb7931f773e2b79c168

10 years agoSimplify effective src_diff address computation
Jingning Han [Wed, 1 Apr 2015 01:04:45 +0000 (18:04 -0700)]
Simplify effective src_diff address computation

Remove redundant offset calculation for effective src_diff address.

Change-Id: I4aab241a36abcef7fd8adf74aed5e12b8b88e0ef

10 years agoRefactor block_yrd function for RTC coding mode
Jingning Han [Wed, 1 Apr 2015 00:46:41 +0000 (17:46 -0700)]
Refactor block_yrd function for RTC coding mode

This commit separates Hadamard transform/quantization operations
from rate and distortion computation in block_yrd. This allows one
to skip SATD computation when all transform blocks are quantized
to zero. It also uses a new block error function that skips
repeated computation of sum of squared residuals. It reduces the
CPU cycles spent on block error calculation in block_yrd by 40%.

Change-Id: I726acb2454b44af1c3bd95385abecac209959b10

10 years agoOptimize quantization simd implementation
Jingning Han [Wed, 1 Apr 2015 18:39:36 +0000 (11:39 -0700)]
Optimize quantization simd implementation

This commit allows the quantizer to compare the AC coefficients to
the quantization step size to determine if further multiplication
operations are needed. It makes the quantization process 20% faster
without coding statistics change.

Change-Id: I735aaf6a9c0874c82175bb565b20e131464db64a

10 years agoEnhance the transform skipping decision-making in non-rd mode
Yunqing Wang [Wed, 25 Mar 2015 21:19:29 +0000 (14:19 -0700)]
Enhance the transform skipping decision-making in non-rd mode

For large partition blocks(block_size > 32x32), the variance
calculation is modified so that every 8x8 block's variance
is stored during the calculation, which is used in the
following transform skipping test. Also, the variance for
every tx block is calculated. The skipping test checks all tx
blocks in the partition, and sets the skip flag only if all tx
blocks are skippable. If the skip flag of Y plane is 1, a
quick evaluation is done on UV planes. If the current partition
block is skippable in YUV planes, the mode search checks fewer
inter modes and doesn't check intra modes.

The rtc set borg test(at speed 6) showed that:
Overall psnr: -0.527%; Avg psnr: -0.510%; ssim: -0.573%.
Average single-thread speedup on rtc set was 3.5%.
For 720p clips, more speedups were seen.
gipsrecmotion: 13%
gipsrestat: 12%
vidyo: 5 - 9%
dark: 15%
niklas: 6%

Change-Id: I8d8ebec0cb305f1de016516400bf007c3042666e

10 years agoMerge "Rename vbp thresholds"
Yunqing Wang [Tue, 31 Mar 2015 23:33:30 +0000 (16:33 -0700)]
Merge "Rename vbp thresholds"

10 years agoMerge "webmdec: Fix read_frame return value for calls after EOS"
Vignesh Venkatasubramanian [Tue, 31 Mar 2015 23:11:56 +0000 (16:11 -0700)]
Merge "webmdec: Fix read_frame return value for calls after EOS"

10 years agoMerge "Set postproc flags in decoder_get_frame."
Marco [Tue, 31 Mar 2015 22:22:14 +0000 (15:22 -0700)]
Merge "Set postproc flags in decoder_get_frame."

10 years agoRename vbp thresholds
Yunqing Wang [Tue, 31 Mar 2015 22:14:44 +0000 (15:14 -0700)]
Rename vbp thresholds

Code refactoring

Change-Id: I410fcce1bc6d95c62c474445f4c97ea8469f1e79

10 years agoMerge "Tuning SATD rate calculation for speed"
Jingning Han [Tue, 31 Mar 2015 21:24:26 +0000 (14:24 -0700)]
Merge "Tuning SATD rate calculation for speed"

10 years agoMerge "Use aligned copy in 8x8 Hadamard transform SSE2"
Jingning Han [Tue, 31 Mar 2015 19:16:47 +0000 (12:16 -0700)]
Merge "Use aligned copy in 8x8 Hadamard transform SSE2"

10 years agoMerge "Allow block skip coding option in RTC mode"
Jingning Han [Tue, 31 Mar 2015 19:16:36 +0000 (12:16 -0700)]
Merge "Allow block skip coding option in RTC mode"

10 years agoMerge "Fix 8x8 Hadamard SSE2 implementation"
Jingning Han [Tue, 31 Mar 2015 19:16:27 +0000 (12:16 -0700)]
Merge "Fix 8x8 Hadamard SSE2 implementation"

10 years agoMerge "VP9E_GET_ACTIVE_MAP API function."
Alex Converse [Tue, 31 Mar 2015 18:52:56 +0000 (11:52 -0700)]
Merge "VP9E_GET_ACTIVE_MAP API function."

10 years agoTuning SATD rate calculation for speed
Jingning Han [Tue, 31 Mar 2015 17:57:41 +0000 (10:57 -0700)]
Tuning SATD rate calculation for speed

This commit allows the encoder to check the eob per transform
block to decide how to compute the SATD rate cost. If the entire
block is quantized to zero, there is no need to add anything; if
only the DC coefficient is non-zero, add its absolute value;
otherwise, sum over the block. This reduces the CPU cycles spent
on vp9_satd_sse2 to one third.

Change-Id: I0d56044b793b286efc0875fafc0b8bf2d2047e32

10 years agoMerge "Move vp9_coef_con_tree to common/"
hui su [Tue, 31 Mar 2015 17:51:10 +0000 (10:51 -0700)]
Merge "Move vp9_coef_con_tree to common/"

10 years agoUse aligned copy in 8x8 Hadamard transform SSE2
Jingning Han [Tue, 31 Mar 2015 17:08:29 +0000 (10:08 -0700)]
Use aligned copy in 8x8 Hadamard transform SSE2

This reduces the 8x8 Hadamard transform cycles by 20%.

Change-Id: If34c5e02f3afa42244c6efabe121f7cf5d2df41b

10 years agoMerge "Enable 16x16 Hadamard transform in SATD based mode decision"
Jingning Han [Tue, 31 Mar 2015 16:55:41 +0000 (09:55 -0700)]
Merge "Enable 16x16 Hadamard transform in SATD based mode decision"

10 years agoMerge "Use SATD based mode decision for block sizes below 16x16"
Jingning Han [Tue, 31 Mar 2015 16:47:47 +0000 (09:47 -0700)]
Merge "Use SATD based mode decision for block sizes below 16x16"

10 years agoAllow block skip coding option in RTC mode
Jingning Han [Tue, 31 Mar 2015 16:25:21 +0000 (09:25 -0700)]
Allow block skip coding option in RTC mode

When the estimated rate-distortion cost of skip coding mode is
lower than that of sending quantized coefficients, allow the
encoder to drop these coefficients. This improves the compression
performance of speed -6 by 0.268% and makes the encoding speed
slightly faster.

Change-Id: Idff2d7ba59f27ead33dd5a0e9f68746ed3c2ab68

10 years agoMove vp9_coef_con_tree to common/
hui su [Tue, 31 Mar 2015 16:20:46 +0000 (09:20 -0700)]
Move vp9_coef_con_tree to common/

This tree should be defined in common/, as it is needed for
both encoder and decoder.

Change-Id: I4f5cbc80025cf2ced14182c98f7c82dc7d0f87db

10 years agoSet postproc flags in decoder_get_frame.
Marco [Mon, 30 Mar 2015 23:13:38 +0000 (16:13 -0700)]
Set postproc flags in decoder_get_frame.

The postproc settings were not set in decoder_get_frame().

Change-Id: I20d23de3ea18f6df061a53d691d4095d5c62532a

10 years agoMerge "Reuse inter prediction pixel block for Hadamard transform"
Jingning Han [Mon, 30 Mar 2015 23:09:38 +0000 (16:09 -0700)]
Merge "Reuse inter prediction pixel block for Hadamard transform"

10 years agoFix 8x8 Hadamard SSE2 implementation
Jingning Han [Mon, 30 Mar 2015 22:02:54 +0000 (15:02 -0700)]
Fix 8x8 Hadamard SSE2 implementation

This commit fixes the SSE2 version 8x8 Hadamard transform
alignment and makes it consistent with the C version.

Change-Id: I1304e5f97e0e5ef2d798fe38081609c39f5bfe74

10 years agoEnable 16x16 Hadamard transform in SATD based mode decision
Jingning Han [Mon, 30 Mar 2015 19:31:46 +0000 (12:31 -0700)]
Enable 16x16 Hadamard transform in SATD based mode decision

This commit replaces the 16x16 2D-DCT transform with Hadamard
transform for RTC coding mode. It reduces the CPU cycles cost
on 16x16 transform by 5X. Overall it makes the speed -6 encoding
speed 1.5% faster without compromise on compression performance.

Change-Id: If6c993831dc4c678d841edc804ff395ed37f2a1b

10 years agoMerge "Hadamard transform based coding mode decision process"
Jingning Han [Mon, 30 Mar 2015 22:43:15 +0000 (15:43 -0700)]
Merge "Hadamard transform based coding mode decision process"

10 years agoUse SATD based mode decision for block sizes below 16x16
Jingning Han [Mon, 30 Mar 2015 18:09:29 +0000 (11:09 -0700)]
Use SATD based mode decision for block sizes below 16x16

This commit makes the encoder to select between SATD/variance as
metric for mode decision. It also allows to account chroma
component costs for mode decision as well. The overall encoding
time increase as compared to variance based mode selection is about
15% for speed -6. The compression performance is on average 2.2%
better than variance based approach, with about 5% compression
performance gains for hard clips (e.g., jimredvga, nikas720p, and
mmmoving) at lower bit-rate range.

Change-Id: I4d04a31d36f4fcb3f5f491dacd6e7fe44cb9d815

10 years agoReuse inter prediction pixel block for Hadamard transform
Jingning Han [Fri, 27 Mar 2015 00:08:35 +0000 (17:08 -0700)]
Reuse inter prediction pixel block for Hadamard transform

It saves one unnecessary motion compensated prediction constructed
by using 8-tap filter.

Change-Id: I101215131e6f38621d5935885f94cc74de6a5377

10 years agoHadamard transform based coding mode decision process
Jingning Han [Mon, 23 Mar 2015 17:02:42 +0000 (10:02 -0700)]
Hadamard transform based coding mode decision process

This commit uses Hadamard transform based rate-distortion cost
estimate for rtc coding mode decision. It improves the compression
performance of speed -6 for many hard clips at lower bit-rates.
For example, 5.5% for jimredvga, 6.7% for mmmoving, 6.1% for
niklas720p. This will introduce extra encoding cycle costs at
this point.

Change-Id: Iaf70634fa2417a705ee29f2456175b981db3d375

10 years agowebmdec: Fix read_frame return value for calls after EOS
Vignesh Venkatasubramanian [Mon, 30 Mar 2015 19:58:26 +0000 (12:58 -0700)]
webmdec: Fix read_frame return value for calls after EOS

webm_read_frame assumes that it won't be called once end of file
is reached. But for frame parallel mode that turns out to be not
true. this patch fixes that behavior by checking for EOS and
returning the appropriate value for subsequent calls.

Change-Id: Ie2fddbe00493a0f96c4172c67be1eb719f0fe8ed

10 years agoMerge "Simplify skip check."
Alex Converse [Mon, 30 Mar 2015 18:31:45 +0000 (11:31 -0700)]
Merge "Simplify skip check."

10 years agoMerge "vp9_postproc.c: eliminate -Wshadow build warnings."
jackychen [Mon, 30 Mar 2015 17:29:39 +0000 (10:29 -0700)]
Merge "vp9_postproc.c: eliminate -Wshadow build warnings."

10 years agovp9_postproc.c: eliminate -Wshadow build warnings.
jackychen [Fri, 27 Mar 2015 23:22:34 +0000 (16:22 -0700)]
vp9_postproc.c: eliminate -Wshadow build warnings.

Change-Id: I6df525a9ad1ae3cfbba8710d21db8fee76e64dbb

10 years agoSpeed 5: use non-rd mode for key frame coding.
Marco [Wed, 25 Mar 2015 21:40:33 +0000 (14:40 -0700)]
Speed 5: use non-rd mode for key frame coding.

Metrics on RTC set go down by ~1.5% on average.
Key frame encoding time goes down by factor of ~5.

Change-Id: Ia83acc55848613870e5ac6efe7f3d904d877febb

10 years agoMerge "Fix the issue that --limit is not working in --frame-parallel mode."
hkuang [Fri, 27 Mar 2015 17:12:45 +0000 (10:12 -0700)]
Merge "Fix the issue that --limit is not working in --frame-parallel mode."

10 years agoMerge "Remove 8-bit array in HBD"
Adrian Grange [Thu, 26 Mar 2015 23:31:27 +0000 (16:31 -0700)]
Merge "Remove 8-bit array in HBD"

10 years agoMerge "Replace heap with stack memory allocation"
Adrian Grange [Thu, 26 Mar 2015 23:31:06 +0000 (16:31 -0700)]
Merge "Replace heap with stack memory allocation"

10 years agoMerge "Fix use of scaling in joint motion search"
Adrian Grange [Thu, 26 Mar 2015 23:30:35 +0000 (16:30 -0700)]
Merge "Fix use of scaling in joint motion search"

10 years agoFix the issue that --limit is not working in --frame-parallel mode.
hkuang [Thu, 26 Mar 2015 22:36:22 +0000 (15:36 -0700)]
Fix the issue that --limit is not working in --frame-parallel mode.

The reason is due to early break out before outputting all the frames inside
decoder.

Change-Id: I4a138fba08d12935c39bd7602c95f8c18b474e29

10 years agoRemove duplicate code from merge
Johann [Thu, 26 Mar 2015 21:56:17 +0000 (14:56 -0700)]
Remove duplicate code from merge

Change-Id: I5e2a1270001b7e29f3f198d57ea40e1efccef367

10 years agoRemove 8-bit array in HBD
Adrian Grange [Tue, 24 Mar 2015 21:28:15 +0000 (14:28 -0700)]
Remove 8-bit array in HBD

Creating both 8- and 16-bit arrays and then only using one
of them is wasteful.

Change-Id: Ic5b397c283efaff7bcfff2d2413838ba3e065561

10 years agoReplace heap with stack memory allocation
Adrian Grange [Tue, 24 Mar 2015 16:44:07 +0000 (09:44 -0700)]
Replace heap with stack memory allocation

Replaced the dynamic memory allocation of the
second_pred buffer with an allocation on the stack.

Change-Id: I2716c46b71e8587714ca5733a99eca2c68419b23

10 years agoFix use of scaling in joint motion search
Adrian Grange [Tue, 24 Mar 2015 15:55:35 +0000 (08:55 -0700)]
Fix use of scaling in joint motion search

To enable us to the scale-invariant motion estimation
code during mode selection, each of the reference
buffers is scaled to match the size of the frame
being encoded.

This fix ensures that a unit scaling factor is used in
this case rather than the one calculated assuming that
the reference frame is not scaled.

Change-Id: Id9a5c85dad402f3a7cc7ea9f30f204edad080ebf

10 years agoParall -> Parallel
Johann [Wed, 25 Mar 2015 19:45:27 +0000 (12:45 -0700)]
Parall -> Parallel

Change-Id: I565fef382fa17a00d5ae54e980ef14d9f0ad4f55

10 years agoMerge "fix static analysis warnings related to CHECK_MEM_ERROR"
James Zern [Wed, 25 Mar 2015 06:56:04 +0000 (23:56 -0700)]
Merge "fix static analysis warnings related to CHECK_MEM_ERROR"

10 years agomips msa configuration patch for MIPS SIMD Arch (MSA) P5600 and I6400
Parag Salasakar [Mon, 16 Mar 2015 07:06:59 +0000 (12:36 +0530)]
mips msa configuration patch for MIPS SIMD Arch (MSA) P5600 and I6400

For P5600:
CROSS=$MTI/bin/mips-mti-linux-gnu- CFLAGS='-EL' CXXFLAGS='-EL' LDFLAGS='-EL'\
 ../configure --target=mips32-linux-gcc --cpu=p5600 --enable-msa

For I6400:
CROSS=$IMG/bin/mips-img-linux-gnu- CFLAGS='-EL' CXXFLAGS='-EL' LDFLAGS='-EL'\
 ../configure --target=mips64-linux-gcc --cpu=i6400 --enable-msa

Change-Id: Id25f721ea1f1991d5116e04dba713aebd7378f05

10 years agoMerge "Enable group adaptive max q by default."
paulwilkins [Tue, 24 Mar 2015 22:00:12 +0000 (15:00 -0700)]
Merge "Enable group adaptive max q by default."

10 years agoVP9E_GET_ACTIVE_MAP API function.
Alex Converse [Fri, 20 Mar 2015 21:55:43 +0000 (14:55 -0700)]
VP9E_GET_ACTIVE_MAP API function.

This is useful when aq mode 3 (cyclic refresh) reactivates segments for refresh.

Change-Id: I3ad1d9410b899ede393d82bb8db14e2da4d84eca

10 years agoRefactor fast loop filter code to handle 444.
Alex Converse [Fri, 20 Mar 2015 21:51:59 +0000 (14:51 -0700)]
Refactor fast loop filter code to handle 444.

Change-Id: I921b1ebabdf617049f8fa26fbe462c3ff115c1ce

10 years agoMerge "vp9_pred_mv(): misc fixes and optimizations"
Yaowu Xu [Tue, 24 Mar 2015 17:36:51 +0000 (10:36 -0700)]
Merge "vp9_pred_mv(): misc fixes and optimizations"

10 years agoMerge "A tiny cyclic refresh / active map fix."
Alex Converse [Tue, 24 Mar 2015 16:43:24 +0000 (09:43 -0700)]
Merge "A tiny cyclic refresh / active map fix."

10 years agoMerge "Revised rd adjustment for variance."
paulwilkins [Tue, 24 Mar 2015 10:12:56 +0000 (03:12 -0700)]
Merge "Revised rd adjustment for variance."

10 years agoMerge "Experimental rd bias based on source vs recon variance."
paulwilkins [Tue, 24 Mar 2015 10:12:41 +0000 (03:12 -0700)]
Merge "Experimental rd bias based on source vs recon variance."

10 years agoA tiny cyclic refresh / active map fix.
Alex Converse [Tue, 24 Mar 2015 01:20:35 +0000 (18:20 -0700)]
A tiny cyclic refresh / active map fix.

Change-Id: I198727461455c8c198a0c892d02ed3cb1673aa50

10 years agoMerge "vp8cx.h: vpx/vpx_encoder.h -> ./vpx_encoder.h"
James Zern [Tue, 24 Mar 2015 00:19:52 +0000 (17:19 -0700)]
Merge "vp8cx.h: vpx/vpx_encoder.h -> ./vpx_encoder.h"

10 years agoMerge "Optimize the intra frame decode to skip some unnecessary copy."
hkuang [Mon, 23 Mar 2015 23:50:37 +0000 (16:50 -0700)]
Merge "Optimize the intra frame decode to skip some unnecessary copy."

10 years agoMerge "Safely free all the frame buffers after all the workers finish the work."
hkuang [Mon, 23 Mar 2015 23:50:15 +0000 (16:50 -0700)]
Merge "Safely free all the frame buffers after all the workers finish the work."

10 years agovp8cx.h: vpx/vpx_encoder.h -> ./vpx_encoder.h
James Zern [Mon, 23 Mar 2015 23:07:21 +0000 (16:07 -0700)]
vp8cx.h: vpx/vpx_encoder.h -> ./vpx_encoder.h

this matches the other includes and simplifies include paths in builds
from source

Change-Id: I344902c84f688ef93c9f3a53e7c06c30db49d8d3

10 years agoSimplify skip check.
Alex Converse [Mon, 23 Mar 2015 17:53:31 +0000 (10:53 -0700)]
Simplify skip check.

SEG_LVL_SKIP implies skip. This is enforced by skip = write_skip().

Change-Id: I61c79581c9c53deae36685c2bcf388cb4d8827d3

10 years agoOptimize the intra frame decode to skip some unnecessary copy.
hkuang [Tue, 17 Mar 2015 21:08:16 +0000 (14:08 -0700)]
Optimize the intra frame decode to skip some unnecessary copy.

This speeds up a normal YT style 1080P clip decode by ~1% on nexus 7.

Change-Id: Ied7fa0d8bc941b2adb4db9382f549ee4d5654f3a

10 years agoMerge "Don't apply active map on key frames."
Alex Converse [Mon, 23 Mar 2015 17:04:38 +0000 (10:04 -0700)]
Merge "Don't apply active map on key frames."

10 years agoMerge "Set loop filter level to zero on inactive segment."
Alex Converse [Mon, 23 Mar 2015 17:04:29 +0000 (10:04 -0700)]
Merge "Set loop filter level to zero on inactive segment."