platform/upstream/libvpx.git
10 years agoMerge "fix: Only do spatial SVC when there are > 1 layers"
Tim Kopp [Fri, 27 Jun 2014 22:42:14 +0000 (15:42 -0700)]
Merge "fix: Only do spatial SVC when there are > 1 layers"

10 years agoMerge "VP9 denoiser: implemented update_frame_stats()"
Tim Kopp [Fri, 27 Jun 2014 22:41:51 +0000 (15:41 -0700)]
Merge "VP9 denoiser: implemented update_frame_stats()"

10 years agoMerge "[spatial svc] Remove encoding modes since we only need one mode at this time."
Minghai Shang [Fri, 27 Jun 2014 18:48:22 +0000 (11:48 -0700)]
Merge "[spatial svc] Remove encoding modes since we only need one mode at this time."

10 years agoMerge "[spatial svc]Remove key frame quantizer settings since key frame is decided...
Minghai Shang [Fri, 27 Jun 2014 18:48:16 +0000 (11:48 -0700)]
Merge "[spatial svc]Remove key frame quantizer settings since key frame is decided by rate control"

10 years agoMerge "Verify that the ouput of q0 is lossless in cpu speed test."
Alex Converse [Fri, 27 Jun 2014 18:09:14 +0000 (11:09 -0700)]
Merge "Verify that the ouput of q0 is lossless in cpu speed test."

10 years agoMerge "Better validation of invalid files"
Jim Bankoski [Fri, 27 Jun 2014 18:05:21 +0000 (11:05 -0700)]
Merge "Better validation of invalid files"

10 years agoVerify that the ouput of q0 is lossless in cpu speed test.
Alex Converse [Thu, 26 Jun 2014 23:19:40 +0000 (16:19 -0700)]
Verify that the ouput of q0 is lossless in cpu speed test.

Change-Id: Ib94ee638eb486f1368f2e3098d25c1d3d28fc265

10 years agoMerge "vp8: bugfix in postproc vp8_de_noise."
Marco Paniconi [Fri, 27 Jun 2014 17:14:56 +0000 (10:14 -0700)]
Merge "vp8: bugfix in postproc vp8_de_noise."

10 years agoMerge "Add realtime coverage to cpu speed test"
Alex Converse [Fri, 27 Jun 2014 17:07:03 +0000 (10:07 -0700)]
Merge "Add realtime coverage to cpu speed test"

10 years agoMerge "Use UV prediction when deciding to skip in for lossless."
Alex Converse [Fri, 27 Jun 2014 17:06:54 +0000 (10:06 -0700)]
Merge "Use UV prediction when deciding to skip in for lossless."

10 years agoBetter validation of invalid files
Jim Bankoski [Fri, 27 Jun 2014 17:03:15 +0000 (10:03 -0700)]
Better validation of invalid files

This patch checks that a decoder never tries to reference frame that's
outside the range of 2x to 1/16th the size of this frame.  Any attempt
to do so causes a failure.

Change-Id: I5c98fa7bb95ac4f29146f29dd92b62fe96164e4c

10 years agovp8: bugfix in postproc vp8_de_noise.
Marco Paniconi [Fri, 27 Jun 2014 16:20:58 +0000 (09:20 -0700)]
vp8: bugfix in postproc vp8_de_noise.

Set the proper number of mb_rows/cols.
Also remove warnings (unused variable) when configured with temporal-denoising disabled.

Change-Id: I8abd2372394ee55295feb87a66efd294ea6989d0

10 years agofix: Only do spatial SVC when there are > 1 layers
Tim Kopp [Thu, 26 Jun 2014 22:28:08 +0000 (15:28 -0700)]
fix: Only do spatial SVC when there are > 1 layers

Bug introduced in I930dced169c9d53f8044d2754a04332138347409. If
svc.number_temporal_layers == 1 and svc.number_spatial_layers == 1, the system
attempt to do spatial SVC. It no longer does that.

Change-Id: Ie6b130a72b1eea40c547c9a64447e40695f811c5

10 years agoVP9 denoiser: implemented update_frame_stats()
Tim Kopp [Tue, 17 Jun 2014 19:51:39 +0000 (12:51 -0700)]
VP9 denoiser: implemented update_frame_stats()

Also added reset_frame_stats()

Change-Id: I8e6ca00dbd5fa85cd39485d81c9343c0ff207d6c

10 years agoMerge "Multi-arf: Change ref buffer for primary arf."
Yaowu Xu [Fri, 27 Jun 2014 14:07:02 +0000 (07:07 -0700)]
Merge "Multi-arf: Change ref buffer for primary arf."

10 years agodenoising_sse2.c visual studio warnings/errors fix
Scott LaVarnway [Fri, 27 Jun 2014 12:00:26 +0000 (05:00 -0700)]
denoising_sse2.c visual studio warnings/errors fix

Fixed reported vs warnings/errors.

Change-Id: Ia4c44d64a69dbd9e1738c6ebb48be29582b7e1d3

10 years agoMulti-arf: Change ref buffer for primary arf.
Paul Wilkins [Thu, 26 Jun 2014 10:26:25 +0000 (11:26 +0100)]
Multi-arf: Change ref buffer for primary arf.

For the primary arf in a group, if multiple arfs
are enabled and we were using arfs in the previous
group, then allow the second arf from the previous
group to be used as an additional reference.

Change-Id: Iaf41706a52f54ef21548026851cd77100d6aebda

10 years agoAdd realtime coverage to cpu speed test
Alex Converse [Thu, 26 Jun 2014 23:16:38 +0000 (16:16 -0700)]
Add realtime coverage to cpu speed test

Change-Id: I33e8d1788ce29ffc695f7e9b84167ef446b1b56c

10 years agoAdaptive txfm size selection depending on residual sse/variance
Jingning Han [Wed, 25 Jun 2014 23:53:07 +0000 (16:53 -0700)]
Adaptive txfm size selection depending on residual sse/variance

This commit enables an adaptive transform size selection method
for speed -6. It uses largest transform size when the sse is more
than 4 times of variance, i.e., most energy is compacted in the
DC coefficient. Otherwise, use the default TX_8X8. It improves
the compression efficiency for rtc set of speed -6 by 0.8%, no
speed change observed.

Change-Id: Ie6ed1e728ff7bf88ebe940a60811361cdd19969c

10 years agoMerge "Skip the partition search for the frame with no motion"
Pengchong Jin [Thu, 26 Jun 2014 21:36:10 +0000 (14:36 -0700)]
Merge "Skip the partition search for the frame with no motion"

10 years agoUse UV prediction when deciding to skip in for lossless.
Alex Converse [Thu, 26 Jun 2014 19:55:37 +0000 (12:55 -0700)]
Use UV prediction when deciding to skip in for lossless.

Change-Id: Ic149749157d762039446d14472d40d9211c6451a

10 years agoMerge "vp8: Add temporal denoising for UV-channel."
Marco Paniconi [Thu, 26 Jun 2014 20:03:49 +0000 (13:03 -0700)]
Merge "vp8: Add temporal denoising for UV-channel."

10 years agoMerge "Add arm64-darwin-gcc target."
Tom Finegan [Thu, 26 Jun 2014 19:49:16 +0000 (12:49 -0700)]
Merge "Add arm64-darwin-gcc target."

10 years agoSkip the partition search for the frame with no motion
Pengchong Jin [Mon, 23 Jun 2014 20:00:16 +0000 (13:00 -0700)]
Skip the partition search for the frame with no motion

This patch allows the encoder to skip the partition search for the
frame if it is an inter frame and only zero motion vectors have
been detected in the first pass. The partition size is directly
assigned according to the difference variance.

Borg tests show overall little performance changes in term of PSNR
(derf -0.027%, yt 0.152%, hd 0.078%, stdhd 0%). The worst case of
PSNR loss is -0.514% from yt. The best PSNR gain is 4.293% from yt.
The second pass encoding speedup for slideshow clips is 15%-40%.

Change-Id: I881f347d286553ee5594a9ea09ba1a61ac684045

10 years agovp8: Add temporal denoising for UV-channel.
Scott LaVarnway [Wed, 25 Jun 2014 18:28:02 +0000 (11:28 -0700)]
vp8: Add temporal denoising for UV-channel.

C version and sse2 version, and off by default.
For the test clip used, the sse2 performance improved by ~5.6%

Change-Id: Ic2d815968849db51b9d62085d7a490d0e01574f6

10 years agoAdd arm64-darwin-gcc target.
Tom Finegan [Thu, 26 Jun 2014 01:32:16 +0000 (18:32 -0700)]
Add arm64-darwin-gcc target.

Change-Id: I251cca45db54d2947868e2b9c35cb54f86b10706

10 years agoMerge "Add const mark to const values in non-RD coding mode"
Jingning Han [Thu, 26 Jun 2014 18:00:34 +0000 (11:00 -0700)]
Merge "Add const mark to const values in non-RD coding mode"

10 years agoMerge "Enable real-time version reference motion vector search"
Jingning Han [Thu, 26 Jun 2014 18:00:25 +0000 (11:00 -0700)]
Merge "Enable real-time version reference motion vector search"

10 years agoEnable real-time version reference motion vector search
Jingning Han [Tue, 24 Jun 2014 17:45:31 +0000 (10:45 -0700)]
Enable real-time version reference motion vector search

This commit enables a fast reference motion vector search scheme.
It checks the nearest top and left neighboring blocks to decide the
most probable predicted motion vector. If it finds the two have
the same motion vectors, it then skip finding exterior range for
the second most probable motion vector, and correspondingly skips
the check for NEARMV.

The runtime of speed -5 goes down
pedestrian at 1080p 29377 ms -> 27783 ms
vidyo at 720p       11830 ms -> 10990 ms
i.e., 6%-8% speed-up.

For rtc set, the compression performance
goes down by about -1.3% for both speed -5 and -6.

Change-Id: I2a7794fa99734f739f8b30519ad4dfd511ab91a5

10 years agoAdd const mark to const values in non-RD coding mode
Jingning Han [Thu, 26 Jun 2014 16:41:21 +0000 (09:41 -0700)]
Add const mark to const values in non-RD coding mode

Change-Id: I65209fd1e06fc06833f6647cb028b414391a7017

10 years agoMerge "Fix quality regression for multi arf off case."
Paul Wilkins [Thu, 26 Jun 2014 16:41:40 +0000 (09:41 -0700)]
Merge "Fix quality regression for multi arf off case."

10 years agoMerge "Make non-RD intra mode search txfm size dependent"
Jingning Han [Thu, 26 Jun 2014 16:10:07 +0000 (09:10 -0700)]
Merge "Make non-RD intra mode search txfm size dependent"

10 years agoFix quality regression for multi arf off case.
Paul Wilkins [Thu, 26 Jun 2014 08:48:31 +0000 (09:48 +0100)]
Fix quality regression for multi arf off case.

Bug introduced during multiple iterations on: I3831*

gf_group->arf_update_idx[] cannot currently be used
to select the arf buffer index if buffer flipping on overlays
is enabled (still currently the case when multi arf OFF).

Change-Id: I4ce9ea08f1dd03ac3ad8b3e27375a91ee1d964dc

10 years agoMerge "Dual arf: Name changes."
Paul Wilkins [Thu, 26 Jun 2014 08:55:00 +0000 (01:55 -0700)]
Merge "Dual arf: Name changes."

10 years agoMake non-RD intra mode search txfm size dependent
Jingning Han [Wed, 25 Jun 2014 18:41:49 +0000 (11:41 -0700)]
Make non-RD intra mode search txfm size dependent

This commit fixes the potential issue in the non-RD mode decision
flow that only checks part of the block to estimate the cost. It
was due to the use of fixed transform size, in replacing the
largest transform block size. This commit enables per transform
block cost estimation of the intra prediction mode in the non-RD
mode decision.

Change-Id: I14ff92065e193e3e731c2bbf7ec89db676f1e132

10 years agoMerge changes I915beaef,I229dd6ca
James Zern [Wed, 25 Jun 2014 21:26:18 +0000 (14:26 -0700)]
Merge changes I915beaef,I229dd6ca

* changes:
  vp9cx.mk: move avx c files outside of x86inc block
  test.mk: remove renamed file

10 years agovp9cx.mk: move avx c files outside of x86inc block
James Zern [Wed, 25 Jun 2014 19:20:46 +0000 (12:20 -0700)]
vp9cx.mk: move avx c files outside of x86inc block

same reasoning as:
9f3a0db vp9_rtcd: correct avx2 references

these are all intrinsics, so don't depend on x86inc.asm

Change-Id: I915beaef318a28f64bfa5469e5efe90e4af5b827

10 years agoMerge "Revert "Revert 3 patches from Hangyu to get Chrome to build:""
hkuang [Wed, 25 Jun 2014 18:42:08 +0000 (11:42 -0700)]
Merge "Revert "Revert 3 patches from Hangyu to get Chrome to build:""

10 years agoRevert "Revert 3 patches from Hangyu to get Chrome to build:"
hkuang [Tue, 24 Jun 2014 21:22:09 +0000 (14:22 -0700)]
Revert "Revert 3 patches from Hangyu to get Chrome to build:"

This patch reverts the previous revert from Jim and also add a
variable user_priv in the FrameWorker to save the user_priv
passed from the application. In the decoder_get_frame function,
the user_priv will be binded with the img. This change is needed
or it will fail the unit test added here:
https://gerrit.chromium.org/gerrit/#/c/70610/

This reverts commit 9be46e4565f553460a1bbbf58d9f99067d3242ce.

Change-Id: I376d9a12ee196faffdf3c792b59e6137c56132c1

10 years agotest.mk: remove renamed file
James Zern [Wed, 25 Jun 2014 18:04:14 +0000 (11:04 -0700)]
test.mk: remove renamed file

vp90-2-15-fuzz-flicker.webm was renamed in:
c3db2d8 error check vp9 superframe parsing

Change-Id: I229dd6ca4c662802c457beea0f7b4128153a65dc

10 years agoMerge "Allow lossless breakout in non-rd mode decision."
Alex Converse [Wed, 25 Jun 2014 17:51:57 +0000 (10:51 -0700)]
Merge "Allow lossless breakout in non-rd mode decision."

10 years agoMerge "decode_test_driver: check HasFailure() in RunLoop"
James Zern [Wed, 25 Jun 2014 17:44:36 +0000 (10:44 -0700)]
Merge "decode_test_driver: check HasFailure() in RunLoop"

10 years agoMerge "decode_test_driver: fix type size warning"
James Zern [Wed, 25 Jun 2014 17:43:49 +0000 (10:43 -0700)]
Merge "decode_test_driver: fix type size warning"

10 years ago[spatial svc] Remove encoding modes since we only need one mode at this time.
Minghai Shang [Wed, 25 Jun 2014 17:42:04 +0000 (10:42 -0700)]
[spatial svc] Remove encoding modes since we only need one mode at this time.

Change-Id: I1b6ed2e82a7e3e8a9e790bf29d667a3f856a9518

10 years ago[spatial svc]Remove key frame quantizer settings since key frame is decided by rate...
Minghai Shang [Wed, 25 Jun 2014 17:36:24 +0000 (10:36 -0700)]
[spatial svc]Remove key frame quantizer settings since key frame is decided by rate control

Change-Id: I7eda0f5e678034f0e9c2ab481c517d2e9b280eb5

10 years agoMerge "[spatial svc]Don't skip motion search in first pass encoding"
Minghai Shang [Wed, 25 Jun 2014 17:31:21 +0000 (10:31 -0700)]
Merge "[spatial svc]Don't skip motion search in first pass encoding"

10 years agoMerge "[spatial svc]Implement lag in frames for spatial svc"
Minghai Shang [Wed, 25 Jun 2014 17:31:05 +0000 (10:31 -0700)]
Merge "[spatial svc]Implement lag in frames for spatial svc"

10 years agoMerge "Replace cpi->common with preset variable cm"
Jingning Han [Wed, 25 Jun 2014 15:57:18 +0000 (08:57 -0700)]
Merge "Replace cpi->common with preset variable cm"

10 years agoMerge "Add vp9_ prefix to mv_pred and setup_pred_block functions"
Jingning Han [Wed, 25 Jun 2014 15:57:08 +0000 (08:57 -0700)]
Merge "Add vp9_ prefix to mv_pred and setup_pred_block functions"

10 years agoMerge "Reuse inter prediction result in real-time speed 6"
Yunqing Wang [Wed, 25 Jun 2014 15:18:33 +0000 (08:18 -0700)]
Merge "Reuse inter prediction result in real-time speed 6"

10 years agoDual arf: Name changes.
Paul Wilkins [Wed, 25 Jun 2014 09:31:32 +0000 (10:31 +0100)]
Dual arf: Name changes.

Cosmetic patch only in response to comments on
previous patches suggesting a couple of name changes
for consistency and clarity.

Change-Id: Ida3a359b0d5755345660d304a7697a3a3686b2a3

10 years agoMerge "Dual ARF changes: Buffer index selection."
Paul Wilkins [Wed, 25 Jun 2014 09:35:56 +0000 (02:35 -0700)]
Merge "Dual ARF changes: Buffer index selection."

10 years agoMerge "Adjust arf Q limits with multi-arf."
Paul Wilkins [Wed, 25 Jun 2014 09:35:45 +0000 (02:35 -0700)]
Merge "Adjust arf Q limits with multi-arf."

10 years agodecode_test_driver: fix type size warning
James Zern [Wed, 25 Jun 2014 05:44:24 +0000 (22:44 -0700)]
decode_test_driver: fix type size warning

like vpx_codec_decode(), vpx_codec_peek_stream_info() takes an unsigned
int, not size_t, parameter for buffer size

Change-Id: I4ce0e1fbbde461c2e1b8fcbaac3cd203ed707460

10 years agovp9: check tile column count
James Zern [Sat, 21 Jun 2014 23:55:29 +0000 (16:55 -0700)]
vp9: check tile column count

the max is 6. there are assumptions throughout the decode regarding
this; fixes a crash with a fuzzed bitstream

$ zzuf -s 5861 -r 0.01:0.05 -b 6- \
  < vp90-2-00-quantizer-00.webm.ivf \
  | dd of=invalid-vp90-2-00-quantizer-00.webm.ivf.s5861_r01-05_b6-.ivf \
    bs=1 count=81883

Change-Id: I6af41bb34252e88bc156a4c27c80d505d45f5642

10 years agoAllow lossless breakout in non-rd mode decision.
Alex Converse [Tue, 24 Jun 2014 23:39:20 +0000 (16:39 -0700)]
Allow lossless breakout in non-rd mode decision.

This is very helpful for large moving windows in screencasts.

Change-Id: I91b5f9acb133281ee85ccd8f843e6bae5cadefca

10 years agoReplace cpi->common with preset variable cm
Jingning Han [Mon, 23 Jun 2014 22:52:16 +0000 (15:52 -0700)]
Replace cpi->common with preset variable cm

This commit replaces a few use cases of cpi->common with preset
variable cm, to avoid unnecessary pointer fetch in the non-RD
coding mode.

Change-Id: I4038f1c1a47373b8fd7bc5d69af61346103702f6

10 years agoAdd vp9_ prefix to mv_pred and setup_pred_block functions
Jingning Han [Mon, 23 Jun 2014 22:49:12 +0000 (15:49 -0700)]
Add vp9_ prefix to mv_pred and setup_pred_block functions

Make these two functions accessible by both RD and non-RD coding
modes.

Change-Id: Iecb39dbf3d65436286ea3c7ffaa9920d0b3aff85

10 years ago[spatial svc]Don't skip motion search in first pass encoding
Minghai Shang [Tue, 17 Jun 2014 21:58:25 +0000 (14:58 -0700)]
[spatial svc]Don't skip motion search in first pass encoding

Change-Id: Ia6bcdaf5a5b80e68176f60d8d00e9b5cf3f9bfe3

10 years ago[spatial svc]Implement lag in frames for spatial svc
Minghai Shang [Tue, 24 Jun 2014 21:01:17 +0000 (14:01 -0700)]
[spatial svc]Implement lag in frames for spatial svc

Change-Id: I930dced169c9d53f8044d2754a04332138347409

10 years agoReuse inter prediction result in real-time speed 6
Yunqing Wang [Fri, 20 Jun 2014 17:11:34 +0000 (10:11 -0700)]
Reuse inter prediction result in real-time speed 6

In real-time speed 6, no partition search is done. The inter
prediction results got from picking mode can be reused in the
following encoding process. A speed feature reuse_inter_pred_sby
is added to only enable the resue in speed 6.

This patch doesn't change encoding result. RTC set tests showed
that the encoding speed gain is 2% - 5%.

Change-Id: I3884780f64ef95dd8be10562926542528713b92c

10 years agoAdd unit test to test user_priv parameter.
hkuang [Mon, 23 Jun 2014 21:59:20 +0000 (14:59 -0700)]
Add unit test to test user_priv parameter.

Change-Id: I6ba6171e43e0a43331ee0a7b698590b143979c44

10 years agoFix test on maximum downscaling limits
Adrian Grange [Wed, 18 Jun 2014 21:34:24 +0000 (14:34 -0700)]
Fix test on maximum downscaling limits

There is a normative scaling range of (x1/2, x16)
for VP9. This patch fixes the maximum downscaling
tests that are applied in the convolve function.

The code used a maximum downscaling limit of x1/5
for historic reasons related to the scalable
coding work. Since the downsampling in this
application is non-normative it will revert to
using a separate non-normative scaler.

Change-Id: Ide80ed712cee82fe5cb3c55076ac428295a6019f

10 years agoMerge "Fixed VP9 denoiser COPY_BLOCK case"
Tim Kopp [Tue, 24 Jun 2014 16:48:11 +0000 (09:48 -0700)]
Merge "Fixed VP9 denoiser COPY_BLOCK case"

10 years agoDual ARF changes: Buffer index selection.
Paul Wilkins [Mon, 23 Jun 2014 12:07:24 +0000 (13:07 +0100)]
Dual ARF changes: Buffer index selection.

Add indirection to the section of buffer indices.
This is to help simplify things in the future if we
have other codec features that switch indices.

Limit the max GF interval for static sections to fit
the gf_group structures.

Change-Id: I38310daaf23fd906004c0e8ee3e99e15570f84cb

10 years agoAdjust arf Q limits with multi-arf.
Paul Wilkins [Mon, 23 Jun 2014 13:59:46 +0000 (14:59 +0100)]
Adjust arf Q limits with multi-arf.

Adjust enforced minimum arf Q deltas for non primary arfs
in the middle of an arf/gf group.

Change-Id: Ie8034ffb3ac00f887d74ae1586d4cac91d6cace2

10 years agoFurther dual arf changes: multi_arf_allowed.
Paul Wilkins [Mon, 23 Jun 2014 11:17:07 +0000 (12:17 +0100)]
Further dual arf changes: multi_arf_allowed.

Add multi_arf_allowed flag.
Re-initialize buffer indices every kf.
Add some const indicators.

Change-Id: If86c39153517c427182691d2d4d4b7e90594be71

10 years agoFix some bugs in multi-arf
Paul Wilkins [Tue, 17 Jun 2014 14:31:24 +0000 (15:31 +0100)]
Fix some bugs in multi-arf

Fix some bugs relating to the use of buffers
in the overlay frames.

Fix bug where a mid sequence overlay was
propagating large partition and transform sizes into
the subsequent frame because of :-
  sf->last_partitioning_redo_frequency  > 1 and
  sf->tx_size_search_method == USE_LARGESTALL

Change-Id: Ibf9ef39a5a5150f8cbdd2c9275abb0316c67873a

10 years agoClean out old CONFIG_MULTIPLE_ARF code.
Paul Wilkins [Tue, 17 Jun 2014 14:31:24 +0000 (15:31 +0100)]
Clean out old CONFIG_MULTIPLE_ARF code.

Remove the old experimental multi arf code that was under
the flag CONFIG_MULTIPLE_ARF.

Change-Id: Ib24865abc11691d6ac8cb0434ada1da674368a61

10 years agoExperiment for mid group second arf.
Paul Wilkins [Mon, 9 Jun 2014 15:25:31 +0000 (16:25 +0100)]
Experiment for mid group second arf.

This patch implements a mechanism for inserting a second
arf at the mid position of arf groups.

It is currently disabled by default using the flag multi_arf_enabled.

Results are currently down somewhat in initial testing if
multi-arf is enabled. Most of the loss is attributable to the
fact that code to preserve the previous golden frame
(in the arf buffer) in cases where we are coding an overlay
frame, is currently disabled in the multi-arf case.

Change-Id: I1d777318ca09f147db2e8c86d7315fe86168c865

10 years agoMerge "Switch active map implementation to segment based."
Alex Converse [Tue, 24 Jun 2014 01:25:51 +0000 (18:25 -0700)]
Merge "Switch active map implementation to segment based."

10 years agoMerge "Fork vp9_rd_pick_inter_mode_sb_seg_skip"
Alex Converse [Tue, 24 Jun 2014 01:25:46 +0000 (18:25 -0700)]
Merge "Fork vp9_rd_pick_inter_mode_sb_seg_skip"

10 years agoAllocate buffers based on correct chroma format
Adrian Grange [Mon, 16 Jun 2014 23:22:28 +0000 (16:22 -0700)]
Allocate buffers based on correct chroma format

The encoder currently allocates frame buffers before
it establishes what the chroma sub-sampling factor is,
always allocating based on the 4:4:4 format.

This patch detects the chroma format as early as
possible allowing the encoder to allocate buffers of
the correct size.

Future patches will change the encoder to allocate
frame buffers on demand to further reduce the memory
profile of the encoder and rationalize the buffer
management in the encoder and decoder.

Change-Id: Ifd41dd96e67d0011719ba40fada0bae74f3a0d57

10 years agoMerge "Add Check for Peek Stream validity to decoder test."
Jim Bankoski [Mon, 23 Jun 2014 18:21:07 +0000 (11:21 -0700)]
Merge "Add Check for Peek Stream validity to decoder test."

10 years agoMerge "Actually skip blocks in skip segments in non-rd encoder."
Alex Converse [Mon, 23 Jun 2014 17:23:20 +0000 (10:23 -0700)]
Merge "Actually skip blocks in skip segments in non-rd encoder."

10 years agoMerge "Remove unused vp9_init_quant_tables function"
Jingning Han [Mon, 23 Jun 2014 16:37:30 +0000 (09:37 -0700)]
Merge "Remove unused vp9_init_quant_tables function"

10 years agoMerge "error check vp9 superframe parsing"
Jim Bankoski [Mon, 23 Jun 2014 15:58:36 +0000 (08:58 -0700)]
Merge "error check vp9 superframe parsing"

10 years agoAdd Check for Peek Stream validity to decoder test.
Jim Bankoski [Mon, 23 Jun 2014 15:37:18 +0000 (08:37 -0700)]
Add Check for Peek Stream validity to decoder test.

Change-Id: I9b745670a9f842582c47e6001dc77480b31fb6a1

10 years agoerror check vp9 superframe parsing
Jim Bankoski [Mon, 23 Jun 2014 14:04:57 +0000 (07:04 -0700)]
error check vp9 superframe parsing

This patch insures that the last byte of a chunk that contains a
valid superframe marker byte,  actually has a proper superframe index.
If not it returns an error.

As part of doing that the file : vp90-2-15-fuzz-flicker.webm now fails
to decode properly and moves to the invalid file test from the test
vector suite.

Change-Id: I5f1da7eb37282ec0c6394df5c73251a2df9c1744

10 years agodecode_test_driver: check HasFailure() in RunLoop
James Zern [Sun, 22 Jun 2014 02:04:12 +0000 (19:04 -0700)]
decode_test_driver: check HasFailure() in RunLoop

avoids unnecessary errors due to e.g., read (Next()) failures

Change-Id: I70b1d09766456f1c55367d98299b5abd7afff842

10 years agoRevert 3 patches from Hangyu to get Chrome to build:
Jim Bankoski [Sat, 21 Jun 2014 18:36:51 +0000 (11:36 -0700)]
Revert 3 patches from Hangyu to get Chrome to build:

Avoids failures:
MSE_ClearKey/EncryptedMediaTest.Playback_VP9Video_WebM/0
MSE_ClearKey_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
MSE_ExternalClearKey_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
MSE_ExternalClearKey/EncryptedMediaTest.Playback_VP9Video_WebM/0
MSE_ExternalClearKeyDecryptOnly/EncryptedMediaTest.Playback_VP9Video_WebM/0
MSE_ExternalClearKeyDecryptOnly_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
SRC_ExternalClearKey/EncryptedMediaTest.Playback_VP9Video_WebM/0
SRC_ExternalClearKey_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
SRC_ClearKey_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0

Patches are
This reverts commit 9bc040859b0ca6869d31bc0efa223e8684eef37a
This reverts commit 6f5aba069a2c7ffb293ddce70219a9ab4a037441
This reverts commit 9bc040859b0ca6869d31bc0efa223e8684eef37a

I1f250441 Revert "Refactor the vp9_get_frame code for frame parallel."
Ibfdddce5 Revert "Delay decreasing reference count in frame-parallel decoding."
I00ce6771 Revert "Introduce FrameWorker for decoding."

Need better testing in libvpx for these commits

Change-Id: Ifa1f279b0cabf4b47c051ec26018f9301c1e130e

10 years agoMerge "Fix bug in error handling that causes segfault"
Jim Bankoski [Fri, 20 Jun 2014 23:46:31 +0000 (16:46 -0700)]
Merge "Fix bug in error handling that causes segfault"

10 years agoMerge "fix peek_si to enable 1 byte show existing frames."
Jim Bankoski [Fri, 20 Jun 2014 23:28:07 +0000 (16:28 -0700)]
Merge "fix peek_si to enable 1 byte show existing frames."

10 years agoMerge "Added Test vector that tests more show existing frames."
Jim Bankoski [Fri, 20 Jun 2014 23:27:57 +0000 (16:27 -0700)]
Merge "Added Test vector that tests more show existing frames."

10 years agoAdd back libmkv ebml writer files.
Frank Galligan [Fri, 20 Jun 2014 22:00:08 +0000 (15:00 -0700)]
Add back libmkv ebml writer files.

Another project in ChromeOS is using these files. To make libvpx
rolls simpler, add these files back unitl the other project removes
the dependency.

crbug.com/387246 tracking bug to remove dependency.

Change-Id: If9c197081c845c4a4e5c5488d4e0190380bcb1e4

10 years agoMerge "Introduce FrameWorker for decoding."
hkuang [Fri, 20 Jun 2014 21:47:46 +0000 (14:47 -0700)]
Merge "Introduce FrameWorker for decoding."

10 years agoIntroduce FrameWorker for decoding.
hkuang [Tue, 17 Jun 2014 01:23:06 +0000 (18:23 -0700)]
Introduce FrameWorker for decoding.

When decoding in serial mode, there will be only
one FrameWorker doing decoding. When decoding in
parallel mode, there will be several FrameWorkers
doing decoding in parallel.

Change-Id: If53fc5c49c7a0bf5e773f1ce7008b8a62fdae257

10 years agoAdded Test vector that tests more show existing frames.
Jim Bankoski [Thu, 19 Jun 2014 14:00:39 +0000 (07:00 -0700)]
Added Test vector that tests more show existing frames.

Change-Id: I0ddd7dd55313ee62d231ed4b9040e08c3761b3fe

10 years agoFix bug in error handling that causes segfault
Jim Bankoski [Thu, 19 Jun 2014 19:10:05 +0000 (12:10 -0700)]
Fix bug in error handling that causes segfault

See: https://code.google.com/p/chromium/issues/detail?id=362697

The code properly catches an invalid stream but seg faults instead of
returning an error due to a buffer not having been initialized. This
code fixes that.

Change-Id: I695595e742cb08807e1dfb2f00bc097b3eae3a9b

10 years agoMerge "Validate error checking code in decoder."
Jim Bankoski [Fri, 20 Jun 2014 21:44:25 +0000 (14:44 -0700)]
Merge "Validate error checking code in decoder."

10 years agoValidate error checking code in decoder.
Jim Bankoski [Fri, 20 Jun 2014 20:52:06 +0000 (13:52 -0700)]
Validate error checking code in decoder.

This patch adds a mechanism for insuring error checking on invalid files
by creating a unit test that runs the decoder and tests that the error
code matches what's expected on each frame in the decoder.

Disabled for now as this unit test will segfault with existing code.

Change-Id: I896f9686d9ebcbf027426933adfbea7b8c5d956e

10 years agoSwitch active map implementation to segment based.
Alex Converse [Fri, 20 Jun 2014 17:36:18 +0000 (10:36 -0700)]
Switch active map implementation to segment based.

Change-Id: Ibb841a1fa4d08d164cf5461246ec290f582b1f80

10 years agoFork vp9_rd_pick_inter_mode_sb_seg_skip
Alex Converse [Fri, 30 May 2014 23:02:46 +0000 (16:02 -0700)]
Fork vp9_rd_pick_inter_mode_sb_seg_skip

Change-Id: I549868725b789f0f4f89828005a65972c20df888

10 years agoActually skip blocks in skip segments in non-rd encoder.
Alex Converse [Fri, 20 Jun 2014 17:15:37 +0000 (10:15 -0700)]
Actually skip blocks in skip segments in non-rd encoder.

Copy split from macroblock to pick mode context so it doesn't get lost.

Change-Id: Ie37aa12558dbe65c4f8076cf808250fffb7f27a8

10 years agoMerge "Include type defines"
Johann [Fri, 20 Jun 2014 18:29:19 +0000 (11:29 -0700)]
Merge "Include type defines"

10 years agoDon't return value for void functions
Johann [Tue, 6 May 2014 16:28:12 +0000 (09:28 -0700)]
Don't return value for void functions

Clears "warning: 'return' with a value, in function returning void"

Change-Id: I93972610d67e243ec772a1021d2fdfcfc689c8c2

10 years agoInclude type defines
Johann [Tue, 6 May 2014 16:21:01 +0000 (09:21 -0700)]
Include type defines

Clears error: unknown type name 'uint8_t'

Change-Id: I9b6eff66a5c69bc24aeaeb5ade29255a164ef0e2

10 years agoMerge "VP9 denoiser bugfixes"
Tim Kopp [Fri, 20 Jun 2014 17:37:46 +0000 (10:37 -0700)]
Merge "VP9 denoiser bugfixes"

10 years agoMerge "Allow key frame more flexibility in mode search"
Jingning Han [Fri, 20 Jun 2014 16:38:02 +0000 (09:38 -0700)]
Merge "Allow key frame more flexibility in mode search"

10 years agoFixed VP9 denoiser COPY_BLOCK case
Tim Kopp [Fri, 13 Jun 2014 23:02:36 +0000 (16:02 -0700)]
Fixed VP9 denoiser COPY_BLOCK case

Now copies the src to the correct location in the running average buffer.

Change-Id: I9c83c96dc7a97f42c8df16ab4a9f18b733181f34