]> granicus.if.org Git - libvpx/log
libvpx
8 years agoMerge branch 'masterbase' into nextgenv2
Yaowu Xu [Mon, 28 Mar 2016 17:26:27 +0000 (10:26 -0700)]
Merge branch 'masterbase' into nextgenv2

Conflicts:
vp9/encoder/vp9_encoder.c
vpx_dsp/x86/convolve.h

Change-Id: I60c3532936bedd796a75dfe78245a95ec21e2e55

8 years agoMerge changes I3c72a2d8,I9905f3a8 into nextgenv2
Alex Converse [Mon, 28 Mar 2016 16:59:17 +0000 (16:59 +0000)]
Merge changes I3c72a2d8,I9905f3a8 into nextgenv2

* changes:
  Add pluggable bitwriters.
  Add pluggable bitreaders.

8 years agoMerge "Fixes for Palette mode" into nextgenv2
Hui Su [Mon, 28 Mar 2016 16:44:33 +0000 (16:44 +0000)]
Merge "Fixes for Palette mode" into nextgenv2

8 years agoMerge "vp8-denoiser: Use the same skin detection for model=1 as in vp9."
Marco Paniconi [Mon, 28 Mar 2016 16:05:46 +0000 (16:05 +0000)]
Merge "vp8-denoiser: Use the same skin detection for model=1 as in vp9."

8 years agoMerge "8x8/16x16 HT types V_DCT to H_FLIPADST SSE2 optimization" into nextgenv2
Yi Luo [Mon, 28 Mar 2016 15:39:24 +0000 (15:39 +0000)]
Merge "8x8/16x16 HT types V_DCT to H_FLIPADST SSE2 optimization" into nextgenv2

8 years agoRevert "third_party: Roll libwebm snapshot."
James Zern [Sat, 26 Mar 2016 19:52:49 +0000 (12:52 -0700)]
Revert "third_party: Roll libwebm snapshot."

This reverts commit 80ddeb281a0d4b3d9a6d39a7ef91370f52845b39.

breaks Android build and causes valgrind failures in the examples

Change-Id: Ie13ceed2f9f8970af87339b807032a52083f27fe

8 years agoMerge "third_party: Roll libwebm snapshot."
Tom Finegan [Sat, 26 Mar 2016 01:41:49 +0000 (01:41 +0000)]
Merge "third_party: Roll libwebm snapshot."

8 years agoFixes for Palette mode
hui su [Sat, 26 Mar 2016 00:28:15 +0000 (17:28 -0700)]
Fixes for Palette mode

This patch fixes 2 issues in Palette mode:
1. More memory is needed in PALETTE_BUFFER for 444 video format.
2. A merge issue caused by
https://chromium-review.googlesource.com/#/c/333940/7

Change-Id: I2aedc7dfdfb6b66fbd600189ec6e1e2cc6120d40

8 years agoMerge "Use speed 2 on superframe test." into nextgenv2
Alex Converse [Sat, 26 Mar 2016 00:49:06 +0000 (00:49 +0000)]
Merge "Use speed 2 on superframe test." into nextgenv2

8 years agoUse speed 2 on superframe test.
Alex Converse [Fri, 25 Mar 2016 23:11:17 +0000 (16:11 -0700)]
Use speed 2 on superframe test.

No need to do avoid shortcuts when all we are testing is the superframe
syntax. Decreases the run time up the VP10 version of the test from 22
seconds to 3 seconds on my machine.

Change-Id: If0c3551cbb8af8b803e02629e803e5f09da76cd1

8 years agoMerge "Fix failing test: VP10/SuperframeTest.TestSuperframeIndexIsOptional/0" into...
Alex Converse [Sat, 26 Mar 2016 00:14:21 +0000 (00:14 +0000)]
Merge "Fix failing test: VP10/SuperframeTest.TestSuperframeIndexIsOptional/0" into nextgenv2

8 years ago8x8/16x16 HT types V_DCT to H_FLIPADST SSE2 optimization
Yi Luo [Fri, 25 Mar 2016 23:48:19 +0000 (16:48 -0700)]
8x8/16x16 HT types V_DCT to H_FLIPADST SSE2 optimization

- Wrote function: fidtx8_sse2() and fidtx16_sse2().
- Turned on vp10_fht8x8_sse2()/vp10_fht16x16_sse2() for new types.
- Updated 8x8/16x16 unit tests for accuracy/speed.
- Running 20K times with random numbers and getting through
  tx type from V_DCT to H_FLIPADST, SSE2 speed improvement:
  8x8: ~131%
  16x16: ~66%

Change-Id: Ibbb707e932a08fec3b1f423a7dab280a1d696c9a

8 years agoFix failing test: VP10/SuperframeTest.TestSuperframeIndexIsOptional/0
Alex Converse [Fri, 25 Mar 2016 23:07:00 +0000 (16:07 -0700)]
Fix failing test: VP10/SuperframeTest.TestSuperframeIndexIsOptional/0

Failing since: 66f2f65 Merge MISC_FIXES

Change-Id: I8135d6a9d74972c595f1b6294fb842e68f91e50e

8 years agovp9: 1 pass vbr mode at speed 5: switch to use mv.search to NSTEP.
Marco [Fri, 25 Mar 2016 18:34:56 +0000 (11:34 -0700)]
vp9: 1 pass vbr mode at speed 5: switch to use mv.search to NSTEP.

Change only affects 1 pass, vbr, speed = 5 (real-time mode).

Some improvement for high motion content.
AvgPSNR/SSIM metrics for ytlive set all up, on average ~2%,
some clips (high motion ones) up 4/5%.

Encoder speed down: on mynintendo_x1.1280_720.y4m: 47fps -> 44fps.

Change-Id: I9e3eaa6392dcb6b5b44ee6f43004f97ba859bc11

8 years agoA major speed up for obmc experiment
Yue Chen [Thu, 24 Mar 2016 19:05:19 +0000 (12:05 -0700)]
A major speed up for obmc experiment

Skip checking obmc when regular inter predictor is not so good (the
rd-cost for Y residual is greater than the total rd of the best mode
so far.)

Performance change compared to full rd search:
  +0.006% lowres, -0.056% midres
Encoding time :
  1.14X baseline (was 1.42X)

Change-Id: I11350f955a20e1a2331be458537a915e09fbedf3

8 years agoMerge "Fix memory leak and slopiness around the uncompressed ANS buffer." into nextgenv2
Alex Converse [Fri, 25 Mar 2016 20:08:00 +0000 (20:08 +0000)]
Merge "Fix memory leak and slopiness around the uncompressed ANS buffer." into nextgenv2

8 years agoMerge "Recover tile coding performance" into nextgenv2
Yunqing Wang [Fri, 25 Mar 2016 19:18:58 +0000 (19:18 +0000)]
Merge "Recover tile coding performance" into nextgenv2

8 years agoFix memory leak and slopiness around the uncompressed ANS buffer.
Alex Converse [Fri, 25 Mar 2016 18:07:39 +0000 (11:07 -0700)]
Fix memory leak and slopiness around the uncompressed ANS buffer.

Change-Id: Ic9ed1f88f5550b69a45a0fdc71aae5864db7e178

8 years agoAdd pluggable bitwriters.
Alex Converse [Mon, 21 Mar 2016 21:23:55 +0000 (14:23 -0700)]
Add pluggable bitwriters.

This will make the code change for a pure ANS experiment manageable.

Change-Id: I3c72a2d8e75afa2cc8e56992ee91f4760202f4d4

8 years agoAdd pluggable bitreaders.
Alex Converse [Mon, 21 Mar 2016 21:08:57 +0000 (14:08 -0700)]
Add pluggable bitreaders.

This will make the code change for a pure ANS experiment manageable.

Change-Id: I9905f3a89f492a4346860463a72fa8c52aac4c8e

8 years agoMerge "Speed up ext-intra" into nextgenv2
Hui Su [Fri, 25 Mar 2016 17:52:33 +0000 (17:52 +0000)]
Merge "Speed up ext-intra" into nextgenv2

8 years agothird_party: Roll libwebm snapshot.
Tom Finegan [Thu, 24 Mar 2016 20:12:51 +0000 (13:12 -0700)]
third_party: Roll libwebm snapshot.

4ff5785 cmake: Add C++11 move ctor and member initializer tests.
402ef4d cmake: remove argc and argv from C++11 test main fns.
cbe5c40 Restore original namespaces for mkvmuxer and mkvparser.
504e0f2 Mass file extension update.
79cb980 Android.mk: Update source file locations.
01db4c2 webmids: Move to common/ sub dir.
235ce59 mkvparser: Explicitly reference internal sources in includes.
f578419 mkvmuxer: Move sources to mkvmuxer/ sub dir.
5f1065e webvtt: Organize and clean up webvtt support.
7abe8ac cmake: Add missing dumpvtt target.
f2f87e2 Makefile.unix: Tidy things up.
12f6dc3 Use <stdint.h> types instead of custom typedefs.
0407360 mkvmuxer: Write last block in each Cluster with Duration
008aa63 mkvparser: move to mkvparser sub dir.
e64bf75 Namespace reorg: Make everything a child of libwebm.
5fdb386 cmake: move c++11 checks into build/cxx11_tests.cmake.
3672488 Copy reference block values in Frame::CopyFrom()
91ca780 reapply clang-format
8d34215 Merge "Clean up AddAudioTrack in muxer_tests"
90861d4 Clean up AddAudioTrack in muxer_tests
a9dfb3d Un-ignore webm files in testdata
c5b76d8 Extract PES parser from WebM2Pes tests.
16524e8 cmake: Add include-what-you-use integration.
7015af5 iwyu/vpxpes2ts: Update includes.
c1d6a70 iwyu/webm2pes: Update includes.
110e797 iwyu/libwebm_util: Update includes.
44e31fb iwyu/webm2pes_tests: Update includes.
d919f96 iwyu/mkvwriter: Update includes.
75790e1 iwyu/mkvparser: Update includes.
5f673ca iwyu/webm2pes_main: Update includes.
747244a iwyu/vpxpes2ts_main: Update includes.
94c985f iwyu/mkvmuxerutil: Update includes.
c365630 iwyu/mkvmuxer: Update includes.
b15b8ef iwyu/file_util: Update includes.
3dfba95 iwyu/hdr_util: Update includes.
baba8b1 iwyu/vttdemux: Update includes.
3212ec1 iwyu/webvttparser: Update includes.
b6d8d92 iwyu/sample_muxer_metadata: Update includes.
a9a1a01 iwyu/sample_muxer: Update includes.
e020ffd iwyu/sample: Update includes.
18834bc iwyu/parser_tests: Update includes.
9c00ae3 iwyu/muxer_tests: Update includes.
41a17eb iwyu/test_util: Update includes
b6174be muxer_tests: Fix windows brokenness.
e092515 file_util: Remove tmpnam() usage in MSVC.
b9dc4ac test_util: Don't pass NULL to std::string() in GetTestDataDir().
1f74651 webmts: Move PES/TS sources to m2ts sub directory.
1b895e9 Rename libwebm_utils to libwebm_util.
2fabcd3 sample_muxer: Replace std::tmpnam() with libwebm::GetTempFileName().
e6a0033 Add file_util.
87f9bea Move hdr_util to common.
1f64aaf cmake: Expand C++11 tests.
6dc81c1 muxer_tests: Die immediately when unable to prep for file writing.
521ce4d webm2pes: Fix type limit warning.
64c4163 vpxpes2ts: Fix sign-compare and type-limits warnings.
741ba68 muxer_tests: Replace std::tmpnam() with GetTempFileName().
6159e83 Merge "test_util: add missing include for close()"
ff81c74 parser_tests: Fix sign compare warnings.
163f57d test_util: add missing include for close()
7c89eb5 Merge "test_util: Remove tmpnam() usage on non-MSVC targets."
c4b8686 Merge "webm2pes_tests: Fix sign compare warnings."
9c9f546 Merge "muxer_tests: Fix sign compare warnings."
0fbefef webm2pes: Silence sign compare warnings.
599e4e8 cmake: Silence clang/gcc deprecation warnings.
82f376f test_util: Remove tmpnam() usage on non-MSVC targets.
4d31d6b webm2pes_tests: Fix sign compare warnings.
07ed7e0 muxer_tests: Fix sign compare warnings.
ae2fbfe parser_tests: Silence sign compare warning.
f488528 libwebm_utils: Silence sign compare warning.
777247b Add C++11 detection to cmake file.
9b89187 Add missing include to libwebm_utils.h.
421874a Merge "mkvmuxer: Fix GCC build."
dd6ab35 Set the mastering metadata on the muxers colour
8b61ef5 mkvmuxer: Fix GCC build.
353b050 Add hdr_util.
c92e080 mkvmuxer: Use kValueNotPresent in Colour/MasteringMetadata.
2d09128 Colour element: TransferFunction renamed to TransferCharacteristics.
f2fc28e Colour element: Matrix renamed to MatrixCoefficients.
e0b1135 cmake: Minor CMakeLists.txt refactor.
1e1872b Revert change from auto_ptr to unique_ptr in sample code.
d7fc382 Track updates to the proposed Matroska Colour spec.
99981ee sample(mkvparser): Output Colour element when present.
375e416 mkvmuxer: Fix Colour element support.
eaeca34 mkvmuxer: Fix bits per channel in the colour element.
1dab7f3 mkvparser: Avoid crash when encountering a Colour element.
a1517aa sample_muxer: copy the Colour element.
ea9dd94 Merge "webm2pes: Fix tests."
8635c5b Merge "mkvparser: Make omitted values detectable in the Colour element."
ae4ae7e mkvparser: Make omitted values detectable in the Colour element.
8c8cba6 webm2pes: Fix tests.
a281a22 mkvmuxer: Add support for the Colour element and its children.
41a9147 sample_muxer: clang-format include order fix.
939a64d Signal E_BUFFER_NOT_FULL in EBMLHeader::Parse
fb1406e mkvparser: Add support for the Colour element and its children.
22bfdf7 Merge "parser_tests: Add validation of cues."
b873000 parser_tests: Add validation of cues.
799891e Update .gitignore to include some new binaries
e051c60 Merge "Update muxer test gold files"
b81d5f0 Update muxer test gold files
48b1e9a mkvparser: clang format run
93c4690 webm2pes: Add PES packet parsing tests.
65ca38f Merge "test_util: Fix gcc build."
520ca6c Merge "parser_tests: Fix gcc build."
37a38ca test_util: Fix gcc build.
ee0ebba parser_tests: Fix gcc build.
c32f970 Replace auto_ptr usage with unique_ptr.
e569ab0 webm2pes/ts: Fix gcc build.
2e55d6c Merge "add bitcode embedding support for ios"
0cfb2dc add bitcode embedding support for ios
bb8cefd webm2ts: Converts WebM VPx video to a MPEG TS.
453bf44 webm2pes: Begin addition of tests.
9299bbb libwebm: Googletest integration.
3bec1ba Merge changes I7bcb5b3e,I8ce733be,I98a928ff,I71910f24
5c83bbe Fix ParseElementHeader to support 0 payload elements
be35869 libwebm_utils: Add FileDeleter.
d6db1e1 webm2pes: Add a WebM parser init method.
aa3593e webm2pes: Rename Convert to ConvertToFile().
e8fca12 webm2pes: Fix super frame splitting.
3cb96b6 webm2pes: Move main() and helper functions into their own files.
021432b webm2pes: Fix the linux build.
82ac5fc Remove RELEASE.TXT.
852e173 webm2pes: Split super frames and packetize large frames.
faf85c2 webm2pes: Refactor header/optional header writing.
7c19266 Add Webm2Pes.
01fdee4 mkvmuxer: Disallow AddTrack() after Tracks element is output.
1ad314e mkvparser: EBMLHeader::Parse: remove dead init

Change-Id: I4026f52f59c6f7644af49b0393af502079b2fbec

8 years agoRecover tile coding performance
Yunqing Wang [Fri, 25 Mar 2016 16:05:25 +0000 (09:05 -0700)]
Recover tile coding performance

After porting tile coding from VP9 to VP10, some performance
degradation was seen because of the difference between VP9 and
Vp10 baseline. This patch disabled some features in VP10 while
tile coding is turned on. Also, an encoder control API was added
back for this use case.

Change-Id: I8f736db8388408a8cc35320a2f80abb02906571c

8 years agoSpeed up ext-intra
hui su [Thu, 24 Mar 2016 23:38:04 +0000 (16:38 -0700)]
Speed up ext-intra

Skip filtered intra modes search in inter frame when DC mode is
worse than the best mode so far.

With ext-intra enabled, the overall speed is increased by 20~40%;
performance drop is 0.03% on lowres and 0.05% on midres.

Change-Id: I75d2503b067cf5e46e3533b97fb01497e125baa7

8 years agoMerge "4x4 hybrid transform type V_DCT to H_FLIPADST SSE2 optimization" into nextgenv2
Yi Luo [Fri, 25 Mar 2016 00:07:17 +0000 (00:07 +0000)]
Merge "4x4 hybrid transform type V_DCT to H_FLIPADST SSE2 optimization" into nextgenv2

8 years agovp8-denoiser: Use the same skin detection for model=1 as in vp9.
Marco [Thu, 24 Mar 2016 22:42:28 +0000 (15:42 -0700)]
vp8-denoiser: Use the same skin detection for model=1 as in vp9.

Keep setting for model = 0 for now in vp8.

Change-Id: I79c5fa24d5d16b14651f44db9526aa01dbd70ec9

8 years ago4x4 hybrid transform type V_DCT to H_FLIPADST SSE2 optimization
Yi Luo [Wed, 23 Mar 2016 23:22:43 +0000 (16:22 -0700)]
4x4 hybrid transform type V_DCT to H_FLIPADST SSE2 optimization

- Added function fidtx4_sse2().
- Turned on vp10_fht4x4_sse2() for these tx types.
- Updated 4x4 unit test for speed/accuracy.
- 4x4 Unit test passed.
- Running 20K times with random numbers for tx type from
  V_DCT to H_FLIPADST, SSE2 against C, speed improves ~46%.

Change-Id: I828088b7f98dc0f5939a72e3fcd6cb0b8d8dd8bf

8 years agoMerge changes Id0a490bc,I1b4a0504
James Zern [Thu, 24 Mar 2016 22:04:11 +0000 (22:04 +0000)]
Merge changes Id0a490bc,I1b4a0504

* changes:
  vp9/inverse_transform_block_inter: move eob check
  vp9/inverse_transform_block_intra: move eob check

8 years agoFix compiling error in highbd transform unit test
Jingning Han [Thu, 24 Mar 2016 19:01:14 +0000 (12:01 -0700)]
Fix compiling error in highbd transform unit test

Change-Id: Id09e1913c1ac965b78df2e67471807019c89f8ab

8 years agoMerge "Fix an enc/dec mismatch issue in DRL experiment" into nextgenv2
Jingning Han [Thu, 24 Mar 2016 19:02:13 +0000 (19:02 +0000)]
Merge "Fix an enc/dec mismatch issue in DRL experiment" into nextgenv2

8 years agoMerge "Force recode for bad rate misses."
Paul Wilkins [Thu, 24 Mar 2016 18:05:24 +0000 (18:05 +0000)]
Merge "Force recode for bad rate misses."

8 years agoMerge "Fix some HBD scaling bugs."
Paul Wilkins [Thu, 24 Mar 2016 18:04:52 +0000 (18:04 +0000)]
Merge "Fix some HBD scaling bugs."

8 years agoFix an enc/dec mismatch issue in DRL experiment
Jingning Han [Thu, 24 Mar 2016 16:40:27 +0000 (09:40 -0700)]
Fix an enc/dec mismatch issue in DRL experiment

This was broken due the leakage between consecutive CLs.

Change-Id: I08ba8c67a42871d9488729ed854845641aa7ca30

8 years agoPort large scale tile coding features from nextgen.
Geza Lore [Fri, 11 Mar 2016 17:42:49 +0000 (17:42 +0000)]
Port large scale tile coding features from nextgen.

If configured with --enable-ext-tile, the codec uses an alternative
tile coding syntax in the bitstream. Changes include::
 - The maximum number of tile rows and columns is extended to 1024
   each.
 - The minimum tile width/height is 64 pixels (1 superblock).
 - A tile copy mode is added where a tile directly reuse the coded
   data of a previous tile
 - The meaning of the tile-columns and tile-rows codec parameters are
   overloaded to mean tile-width and tile-height in units of 64
   pixels.
 - All tiles should now be independent, including rows within the
   same columns, so large scale parallel, or independent decoding is
   possible.
 - vpxdec also gained the options to decode only a particular tile,
   tile row, or tile column.

Changes without --enable-ext-tile:
 - All tiles should now be independent, including rows within the
   same columns, so large scale parallel, or independent decoding is
   possible.
 - vpxenc default tile configuration changed to use 1 tile column.

Change-Id: I0cd08ad550967ac18622dae5e98ad23d581cb33e

8 years agoVP9: Eliminate extra mv clamp in decoder
Scott LaVarnway [Wed, 10 Feb 2016 13:06:13 +0000 (05:06 -0800)]
VP9: Eliminate extra mv clamp in decoder

The mv is clamped in dec_find_mv_refs() to a smaller region
than the clamp in dec_find_best_ref_mvs().  See clamp_mv_ref
and clamp_mv2.

Change-Id: I47dd5f7fa8b42f2cc593559b4d7c782fe7bcb1db

8 years agoMerge "Add a TODO for using tile rows while encoding with multiple threads"
James Zern [Thu, 24 Mar 2016 03:57:28 +0000 (03:57 +0000)]
Merge "Add a TODO for using tile rows while encoding with multiple threads"

8 years agovp9/inverse_transform_block_inter: move eob check
James Zern [Thu, 24 Mar 2016 03:32:12 +0000 (20:32 -0700)]
vp9/inverse_transform_block_inter: move eob check

1 level up. the function is a no-op for eob == 0 and shouldn't be called

Change-Id: Id0a490bcce78c2b2ec6ea24d942191eb9b2bc16e

8 years agovp9/inverse_transform_block_intra: move eob check
James Zern [Thu, 24 Mar 2016 03:24:17 +0000 (20:24 -0700)]
vp9/inverse_transform_block_intra: move eob check

1 level up. the function is a no-op for eob == 0 and shouldn't be called

Change-Id: I1b4a050424cf2d0ea820120c8e7c4fb3065e39e7

8 years agoMerge "Call vp10_fwd_txfm_4x4 in encode_inter_mb_segment" into nextgenv2
Angie Chiang [Thu, 24 Mar 2016 00:38:03 +0000 (00:38 +0000)]
Merge "Call vp10_fwd_txfm_4x4 in encode_inter_mb_segment" into nextgenv2

8 years agoMerge "Misc. updates for highbd changes" into nextgenv2
Yi Luo [Wed, 23 Mar 2016 22:43:46 +0000 (22:43 +0000)]
Merge "Misc. updates for highbd changes" into nextgenv2

8 years agoMerge "Allows sub-second frame rates in vp9"
Johann Koenig [Wed, 23 Mar 2016 20:04:59 +0000 (20:04 +0000)]
Merge "Allows sub-second frame rates in vp9"

8 years agoAdd a TODO for using tile rows while encoding with multiple threads
Yunqing Wang [Wed, 23 Mar 2016 19:23:02 +0000 (12:23 -0700)]
Add a TODO for using tile rows while encoding with multiple threads

Added a TODO in vp9_cx_iface.c.

Change-Id: Ib987f20cab8417340a23ae676616de1df48e8a12

8 years agoMisc. updates for highbd changes
Yi Luo [Wed, 23 Mar 2016 19:10:52 +0000 (12:10 -0700)]
Misc. updates for highbd changes

- Use Makefile to control the build for highbd_fwd_txfm_sse4.c.
- Fixed hybrid transform (HT) types due to recent update.
- Added new unit test cases for highbd HT.

Change-Id: Ifd768a9b429a8c21ed40c1de8152fb5ac71e2f90

8 years agoRefactor motion vector residual coding process
Jingning Han [Mon, 21 Mar 2016 19:55:24 +0000 (12:55 -0700)]
Refactor motion vector residual coding process

This commit separates the predicted motion vector from the nearestmv
motion vector in the coding process for both regular and sub8x8
block sizes.

Change-Id: I703490513b0194e6669ebf719352db015facb3e1

8 years agoCall vp10_fwd_txfm_4x4 in encode_inter_mb_segment
Angie Chiang [Mon, 21 Mar 2016 19:15:00 +0000 (12:15 -0700)]
Call vp10_fwd_txfm_4x4 in encode_inter_mb_segment

Change-Id: Ieabe5534e5f4fb3f2d751a3cfc682208b3913715

8 years agoMerge "Highbd fht4x4 SSE4.1 optimization for DCT_DCT mode - Setup function vp10_highb...
Yi Luo [Wed, 23 Mar 2016 18:30:39 +0000 (18:30 +0000)]
Merge "Highbd fht4x4 SSE4.1 optimization for DCT_DCT mode - Setup function vp10_highbd_fht4x4_sse4_1 for highbd SSE4.1   intrinsics optimization. - Wrote SSE4.1 functions: load_buffer_4x4(), write_buffer_4x4(),   and fdct4x4_sse4_1(). - Used logic right shift to avoid coeff memory write/read. - Turned on vp10_highbd_fht4x4_sse4_1 for DCT_DCT mode only. - Improved overall encoding performance >2.3% for 50 frames   sequence, park_joy_1080p_12.y4m, in which, --input-bit-depth=12,   --bit-depth=12, 50 frames. - Unit test passed." into nextgenv2

8 years agoMerge "Add "entropy" experiment" into nextgenv2
Hui Su [Wed, 23 Mar 2016 17:50:56 +0000 (17:50 +0000)]
Merge "Add "entropy" experiment" into nextgenv2

8 years agoMerge "Add buf_ans.h to the Makefile." into nextgenv2
Alex Converse [Wed, 23 Mar 2016 16:27:12 +0000 (16:27 +0000)]
Merge "Add buf_ans.h to the Makefile." into nextgenv2

8 years agoMerge "Add some ANS helpers needed to replace the vpx bool coder with pure ANS."...
Alex Converse [Wed, 23 Mar 2016 16:21:58 +0000 (16:21 +0000)]
Merge "Add some ANS helpers needed to replace the vpx bool coder with pure ANS." into nextgenv2

8 years agoMerge "Small speed up for super_block_uvrd" into nextgenv2
Hui Su [Wed, 23 Mar 2016 16:16:46 +0000 (16:16 +0000)]
Merge "Small speed up for super_block_uvrd" into nextgenv2

8 years agoHighbd fht4x4 SSE4.1 optimization for DCT_DCT mode
Yi Luo [Wed, 16 Mar 2016 00:09:38 +0000 (17:09 -0700)]
Highbd fht4x4 SSE4.1 optimization for DCT_DCT mode
- Setup function vp10_highbd_fht4x4_sse4_1 for highbd SSE4.1
  intrinsics optimization.
- Wrote SSE4.1 functions: load_buffer_4x4(), write_buffer_4x4(),
  and fdct4x4_sse4_1().
- Used logic right shift to avoid coeff memory write/read.
- Turned on vp10_highbd_fht4x4_sse4_1 for DCT_DCT mode only.
- Improved overall encoding performance >2.3% for 50 frames
  sequence, park_joy_1080p_12.y4m, in which, --input-bit-depth=12,
  --bit-depth=12, 50 frames.
- Unit test passed.

Change-Id: Idd6dc6e472cbbf235f0ade4f66fbe859a860a004

8 years agoMerge "Prevent encoder crash caused by row tile dependencies"
Yunqing Wang [Wed, 23 Mar 2016 15:52:35 +0000 (15:52 +0000)]
Merge "Prevent encoder crash caused by row tile dependencies"

8 years agoMerge "Porting ext_partition experiment from nextgen" into nextgenv2
Debargha Mukherjee [Wed, 23 Mar 2016 04:58:37 +0000 (04:58 +0000)]
Merge "Porting ext_partition experiment from nextgen" into nextgenv2

8 years agoMerge "vp9: Non-rd partition selection: use consec_zeromv to set sb_is_skin."
Marco Paniconi [Wed, 23 Mar 2016 01:06:57 +0000 (01:06 +0000)]
Merge "vp9: Non-rd partition selection: use consec_zeromv to set sb_is_skin."

8 years agoMake the tile independence test shorter
Debargha Mukherjee [Wed, 23 Mar 2016 00:53:43 +0000 (17:53 -0700)]
Make the tile independence test shorter

Uses 15 frames instead of 30. Also only test speed 0 for VP10.

Change-Id: Icace050edd974622d83bdf843058f63bd8d3a84b

8 years agoMerge "Simplify the loopfilter synchronization logic in VP8 encoder"
Yaowu Xu [Tue, 22 Mar 2016 23:45:28 +0000 (23:45 +0000)]
Merge "Simplify the loopfilter synchronization logic in VP8 encoder"

8 years agoAdd some ANS helpers needed to replace the vpx bool coder with pure ANS.
Alex Converse [Mon, 21 Mar 2016 21:56:58 +0000 (14:56 -0700)]
Add some ANS helpers needed to replace the vpx bool coder with pure ANS.

Change-Id: I32b63fca020c410cef16e93379b4e6e281ccbccd

8 years agoPrevent encoder crash caused by row tile dependencies
Yunqing Wang [Tue, 22 Mar 2016 17:54:43 +0000 (10:54 -0700)]
Prevent encoder crash caused by row tile dependencies

In multi-thread case, the encoder may crash if using encoder option
tile-rows > 0. To prevent that, force tile-rows=0 in this situation.
This is a workaround for WebM issue 1095:
https://bugs.chromium.org/p/webm/issues/detail?id=1095

The further fix can be done by adding synchronizations after a tile
row is encoded. But this will hurt multi-threaded encoder performance.
So, it is recommended to use tile-rows=0 while encoding with threads
> 1.

Change-Id: I656cbcc200f8d0410d09530e7981ad8f32fe7bc9

8 years agoSimplify the loopfilter synchronization logic in VP8 encoder
Yunqing Wang [Tue, 22 Mar 2016 21:13:18 +0000 (14:13 -0700)]
Simplify the loopfilter synchronization logic in VP8 encoder

This patch was to fix a reported Hangouts deadlock/freezing issue
in VP8 encoder(issue 27232610). The original encoder loopfilter
synchronization happened in the following frame, which was prone
to causing problems in some complex use cases. This patch simplified
the synchronization logic.

More testing needs to be done.

Change-Id: I38fd3f35d11f98fae1e44546aa5e4c6d6e19c4be

8 years agoMerge "Refactor prediction functions of OBMC" into nextgenv2
Yue Chen [Tue, 22 Mar 2016 21:06:16 +0000 (21:06 +0000)]
Merge "Refactor prediction functions of OBMC" into nextgenv2

8 years agoForce recode for bad rate misses.
Paul Wilkins [Tue, 15 Mar 2016 19:54:52 +0000 (12:54 -0700)]
Force recode for bad rate misses.

Adds a second threshold for recodes even on frames where
recode is normally disabled if there is a big rate miss.

Change-Id: Ifd4a34707da55ec15eb7cfb87de4644b8d76deb2

8 years agoPorting ext_partition experiment from nextgen
Julia Robson [Thu, 17 Mar 2016 16:50:28 +0000 (16:50 +0000)]
Porting ext_partition experiment from nextgen

This has been ported under ext_partition_types because it is due
to be combined with the coding_unit_size experiment which is
already being ported under ext_partition

Change-Id: I47af869ae123ddf0aa99160dac644059d14266ee

8 years agoFix some HBD scaling bugs.
Paul Wilkins [Fri, 18 Mar 2016 17:25:46 +0000 (10:25 -0700)]
Fix some HBD scaling bugs.

Fixed a bug for HBD in stats output and scaling of a threshold
within the first pass code.

Change-Id: Icd0463d78cc9ce4661b027b0612c55c0628d212f

8 years agovp9: Non-rd partition selection: use consec_zeromv to set sb_is_skin.
Marco [Tue, 22 Mar 2016 00:10:23 +0000 (17:10 -0700)]
vp9: Non-rd partition selection: use consec_zeromv to set sb_is_skin.

Change-Id: I084360cdeabfc63e146a969053d91baee27f4001

8 years agoWrap write_modes functions with macros to avoid ifdefs at all the callsites.
Alex Converse [Tue, 22 Mar 2016 17:01:26 +0000 (10:01 -0700)]
Wrap write_modes functions with macros to avoid ifdefs at all the callsites.

Change-Id: I5a960bf63ec404f0fbfe6a404f436ef4122a219d

8 years agoMerge "mv vp10_fwd_txfm2d_#x# into vp10_rtcd.h" into nextgenv2
Angie Chiang [Tue, 22 Mar 2016 01:07:56 +0000 (01:07 +0000)]
Merge "mv vp10_fwd_txfm2d_#x# into vp10_rtcd.h" into nextgenv2

8 years agoMerge "Passing TXFM_TYPE instead of func pointer" into nextgenv2
Angie Chiang [Tue, 22 Mar 2016 01:07:42 +0000 (01:07 +0000)]
Merge "Passing TXFM_TYPE instead of func pointer" into nextgenv2

8 years agoMerge "Refactor transform type-size search function" into nextgenv2
Yue Chen [Tue, 22 Mar 2016 00:58:44 +0000 (00:58 +0000)]
Merge "Refactor transform type-size search function" into nextgenv2

8 years agoMerge "Refactor sub8x8 reference motion vector search function" into nextgenv2
Jingning Han [Tue, 22 Mar 2016 00:07:45 +0000 (00:07 +0000)]
Merge "Refactor sub8x8 reference motion vector search function" into nextgenv2

8 years agoMerge "Rework the DRL syntax entropy coding system" into nextgenv2
Jingning Han [Tue, 22 Mar 2016 00:07:35 +0000 (00:07 +0000)]
Merge "Rework the DRL syntax entropy coding system" into nextgenv2

8 years agoRefactor prediction functions of OBMC
Yue Chen [Mon, 21 Mar 2016 21:44:48 +0000 (14:44 -0700)]
Refactor prediction functions of OBMC

Merge the functions that generate prediction by above/left predictors
for the encoder and the decoder.

Change-Id: I57e53a8f2eb8d3028c4ed0c9abdcbf00503f95a0

8 years agoRefactor transform type-size search function
Yue Chen [Mon, 21 Mar 2016 18:53:57 +0000 (11:53 -0700)]
Refactor transform type-size search function

Decompose choose_tx_size_from_rd into three functions that determine
the transform coding rd at different stages. Besides the original
function, txfm_yrd() calculates the rd for fixed size and type.
choose_tx_size_fix_type() fixes the type and searches for the size.
It can enable other experiments to do restricted tx searches so as to
reduce the impact on speed.
Similar refactoring is done for select_tx_type_yrd() in VAR_TX.

Performance change in baseline is trivial:
0.014/0.001/-0.020 for lowres/midres/hdres.

Change-Id: I2ecbf6066329be088ec1bfb69013b657b14b8afe

8 years agoAdd buf_ans.h to the Makefile.
Alex Converse [Mon, 21 Mar 2016 21:11:03 +0000 (14:11 -0700)]
Add buf_ans.h to the Makefile.

Change-Id: I6339912d240a1c2c3aa2f7303e7ca4d9721a29f4

8 years agoMerge "Properly set rate_nocoef when pallete mode is used" into nextgenv2
Yaowu Xu [Mon, 21 Mar 2016 20:44:17 +0000 (20:44 +0000)]
Merge "Properly set rate_nocoef when pallete mode is used" into nextgenv2

8 years agoMerge "Adds 1D transforms for ADST/FlipADST to make 16" into nextgenv2
Debargha Mukherjee [Mon, 21 Mar 2016 20:40:20 +0000 (20:40 +0000)]
Merge "Adds 1D transforms for ADST/FlipADST to make 16" into nextgenv2

8 years agoWrite MB tokens using the forward buffered ANS writer.
Alex Converse [Wed, 17 Feb 2016 19:07:20 +0000 (11:07 -0800)]
Write MB tokens using the forward buffered ANS writer.

This allows sharing more code paths with the rest of the code an allows
for easier compatibility with the other experiments.

Change-Id: Id288b533805a4d0657ec2f17542f2e6ad23ebdb4

8 years agoMerge "Add a placeholder forward buffered ANS coder." into nextgenv2
Alex Converse [Mon, 21 Mar 2016 18:41:32 +0000 (18:41 +0000)]
Merge "Add a placeholder forward buffered ANS coder." into nextgenv2

8 years agoAdds 1D transforms for ADST/FlipADST to make 16
Debargha Mukherjee [Tue, 15 Mar 2016 05:30:09 +0000 (22:30 -0700)]
Adds 1D transforms for ADST/FlipADST to make 16

Makes a set of 16 transforms total, adding all 1D
combinations of ADST and FlipADST, and removng all DST
transforms.

lowres, midres both improve by about 0.1% and hdres by
-0.378% in BDRATE but with fewer transforms that are also
simpler.

Further experiments to continue later.

Change-Id: I7348a4c0e12078fdea5ae3a2d36a89a319ffcc6e

8 years agoProperly set rate_nocoef when pallete mode is used
Yaowu Xu [Mon, 21 Mar 2016 17:28:29 +0000 (10:28 -0700)]
Properly set rate_nocoef when pallete mode is used

Change-Id: Iff04c82b3d3b5cf2c7700717c3c3d678bbbb9f9b

8 years agomv vp10_fwd_txfm2d_#x# into vp10_rtcd.h
Angie Chiang [Fri, 18 Mar 2016 21:09:06 +0000 (14:09 -0700)]
mv vp10_fwd_txfm2d_#x# into vp10_rtcd.h

Change-Id: Iad7352698786791b0fd7c005a7edfd1724b71599

8 years agoPassing TXFM_TYPE instead of func pointer
Angie Chiang [Thu, 17 Mar 2016 00:15:27 +0000 (17:15 -0700)]
Passing TXFM_TYPE instead of func pointer

This is to facilitate sse2 implementation

Change-Id: Id2f53e83c5508c4445d9b1bba00a649cb4da6b74

8 years agoRefactor sub8x8 reference motion vector search function
Jingning Han [Mon, 14 Mar 2016 22:04:58 +0000 (15:04 -0700)]
Refactor sub8x8 reference motion vector search function

Rework the interface to allow codec store the reference motion
vector list information for coding process.

Change-Id: I47e26587f6c0808655e4626f316ec7614a7ad8ed

8 years agoRework the DRL syntax entropy coding system
Jingning Han [Thu, 17 Mar 2016 18:26:52 +0000 (11:26 -0700)]
Rework the DRL syntax entropy coding system

This commit re-designs the probability model for the syntax elements
of the dynamic motion vector referencing system.

Change-Id: Icfb8203c7e8f64e10e99f5890e25e6f6b15fe5d1

8 years agoMerge "Enable dynamic motion vector referencing for newmv mode" into nextgenv2
Jingning Han [Sat, 19 Mar 2016 00:40:04 +0000 (00:40 +0000)]
Merge "Enable dynamic motion vector referencing for newmv mode" into nextgenv2

8 years agoMerge "Add ext_partition_types config option" into nextgenv2
Debargha Mukherjee [Fri, 18 Mar 2016 23:51:55 +0000 (23:51 +0000)]
Merge "Add ext_partition_types config option" into nextgenv2

8 years agoMerge "Refactor bsse and skip_txfm in MACROBLOCK." into nextgenv2
Debargha Mukherjee [Fri, 18 Mar 2016 23:51:40 +0000 (23:51 +0000)]
Merge "Refactor bsse and skip_txfm in MACROBLOCK." into nextgenv2

8 years agoMerge "Refactor save_context restore_context in rd_pick_partition." into nextgenv2
Debargha Mukherjee [Fri, 18 Mar 2016 23:51:06 +0000 (23:51 +0000)]
Merge "Refactor save_context restore_context in rd_pick_partition." into nextgenv2

8 years agoMerge "Refactor mbmi->inter_tx_size to 2D array." into nextgenv2
Debargha Mukherjee [Fri, 18 Mar 2016 23:50:25 +0000 (23:50 +0000)]
Merge "Refactor mbmi->inter_tx_size to 2D array." into nextgenv2

8 years agoMerge "Remove prune three from speed features" into nextgenv2
Sarah Parker [Fri, 18 Mar 2016 21:29:24 +0000 (21:29 +0000)]
Merge "Remove prune three from speed features" into nextgenv2

8 years agoRemove prune three from speed features
Sarah Parker [Fri, 18 Mar 2016 20:06:40 +0000 (13:06 -0700)]
Remove prune three from speed features

Not getting good results for this feature, will try again
when transforms are frozen.

Change-Id: Id12396786cb9369ad34d0bd845f7beba3a037726

8 years agoAdd a placeholder forward buffered ANS coder.
Alex Converse [Wed, 17 Feb 2016 19:07:20 +0000 (11:07 -0800)]
Add a placeholder forward buffered ANS coder.

This buffered ANS coder supports coding the symbols in forward (decode)
order. Rather than windowing or growing the buffer, right now this
coder merely asserts that the buffer will never overflow.

This approach should allow ANS to be used as a drop in replacement for
other entropy coders rather than requiring complicated reversal logic
throughout the codebase.

Change-Id: I6689271233d0e22fea94c51950415dad5af96598

8 years agoTwo minor logic fixes
Yaowu Xu [Fri, 18 Mar 2016 18:38:56 +0000 (11:38 -0700)]
Two minor logic fixes

Change-Id: I1d5624fb2f34f87a55613036851034ec7c2d0b76

8 years agoMerge "vp9: Improvement to skin detection."
Marco Paniconi [Fri, 18 Mar 2016 17:58:03 +0000 (17:58 +0000)]
Merge "vp9: Improvement to skin detection."

8 years agoEnable dynamic motion vector referencing for newmv mode
Jingning Han [Tue, 15 Mar 2016 22:58:03 +0000 (15:58 -0700)]
Enable dynamic motion vector referencing for newmv mode

This commit enables the dynamic motion vector predictor for NEWMV
mode. It allows the codec to select the best motion vector predictor
in a rate-distortion optimization framework for motion vector
residual coding. The compression performance is improved:
lowres  0.14%
midres  0.27%
hdres   0.24%

Change-Id: I6a601c74eb6cb0b71a613336d40363359f2edecd

8 years agoSmall speed up for super_block_uvrd
hui su [Thu, 17 Mar 2016 18:20:59 +0000 (11:20 -0700)]
Small speed up for super_block_uvrd

Eearly termination if U plane RD cost is large enough.

No notable compression performance changes.

Change-Id: Ieeefc5859cb55d94391b502b4bd840bc8bcb2578

8 years agovp8-denoiser: Update on the sum_diff threshold.
Marco [Fri, 18 Mar 2016 15:38:29 +0000 (08:38 -0700)]
vp8-denoiser: Update on the sum_diff threshold.

Change-Id: I0d459c7ba358da287aff1c706279603d6d4d3c48

8 years agoRefactor bsse and skip_txfm in MACROBLOCK.
Geza Lore [Wed, 3 Feb 2016 11:42:29 +0000 (11:42 +0000)]
Refactor bsse and skip_txfm in MACROBLOCK.

Simple refactoring to 2 dimensional arrays, in preparation for 128
wide superblocks.

Change-Id: I40d447bd9fbd4f755534ea3cc82fc8f4676cea07

8 years agoRefactor mbmi->inter_tx_size to 2D array.
Geza Lore [Wed, 16 Mar 2016 18:03:57 +0000 (18:03 +0000)]
Refactor mbmi->inter_tx_size to 2D array.

This is in preparation of increasing the superblock size.

Change-Id: I9197e397399fbe8aec1178a45ea0337dd90412d7

8 years agoAdd ext_partition_types config option
Julia Robson [Fri, 18 Mar 2016 15:22:42 +0000 (15:22 +0000)]
Add ext_partition_types config option

Change-Id: I91d280a64d1da77be31004ea91d08d1a70529e42

8 years agoMerge "Minor bug fix in ex-intra experiment" into nextgenv2
Hui Su [Fri, 18 Mar 2016 05:01:56 +0000 (05:01 +0000)]
Merge "Minor bug fix in ex-intra experiment" into nextgenv2