17183 Commits

Author SHA1 Message Date
Alex Converse
cb785ade5b Merge "Deduplicate sign cost for ONE/TWO/THREE/FOUR tokens" 2016-01-19 20:04:28 +00:00
Debargha Mukherjee
63b57c311d Merge "Adding experimental tags for new experiments" into nextgenv2 2016-01-19 16:58:21 +00:00
paulwilkins
733bbab53a Loop filter search resets on overlay frame.
This patch fixes a bug that causes the loop filter search to reset to
a low value or zero after each arf overlay frame. We expect the overlay
frames to need little or no loop filtering but this should not propagate.

Change-Id: I895b28474cf200f20d82793f3de40b60b19579fd
2016-01-19 13:05:15 +00:00
Ronald S. Bultje
9134e9f8bb Use input framerate as timebase if none was explicitly specified.
After patch:
$ vpxenc tennis_sif.y4m --end-usage=q -q 20 -o x.ivf --ivf --codec=vp9 --limit=30
$ ffmpeg -i x.ivf -i tennis_sif.y4m -lavfi psnr -f null -
[..]
[Parsed_psnr_0 @ 0x7f8913c21e40] PSNR y:43.270594 u:46.300362 v:47.011172 average:44.097994 min:43.460704 max:52.509271

Before patch:
$ vpxenc tennis_sif.y4m --end-usage=q -q 20 -o x.ivf --ivf --codec=vp9 --limit=30
$ ffmpeg -i x.ivf -i tennis_sif.y4m -lavfi psnr -f null -
[..]
[Parsed_psnr_0 @ 0x7fbdaac22780] PSNR y:27.427366 u:41.505376 v:36.853477 average:28.990890 min:22.219454 max:52.509271
$ ffmpeg -i x.ivf -f rawvideo x.yuv
$ ffmpeg -f rawvideo -vcodec rawvideo -video_size 352x240 -framerate 29.97 -i x.yuv -i tennis_sif.y4m -lavfi psnr -f null -
[..]
[Parsed_psnr_0 @ 0x7fadf9e013a0] PSNR y:43.270594 u:46.300362 v:47.011172 average:44.097994 min:43.460704 max:52.509271

Change-Id: Ifac2d6c2ff8379b2d318fe5cfe4be0bf1bc9f27f
2016-01-18 14:05:07 -05:00
Yaowu Xu
d32c38c75c Merge branch 'master' into nextgenv2 2016-01-16 05:00:06 -08:00
Alex Converse
269428e35c Tie the bit cost scale to a define.
This is a pure-refactor in preparation to potentially raise the bit-cost
resolution.

Verified at good speed 0 and rt speed -6.

Change-Id: I5347e6e8c28a9ad9dd0aae1d76a3d0f3c2335bb9
2016-01-15 15:59:31 -08:00
Marco
c0307e6cea vp9-denoiser: Set motion threshold for skin_map to 0.
More aggresive on avoiding denoising on skin.
May supplement this later by adding condtion onn consec_zeromv.

Change-Id: Ied92b332f9b24e821d2009f81d1565758588d9a5
2016-01-15 15:04:14 -08:00
Yue Chen
1ac858794a EXT_INTER experiment
NEW2MV is enabled, representing a new motion vector predicted from
NEARMV. It is mostly ported from nextgen, where it was named
NEW_INTER.
A few fixes are done for sub8x8 RDO to correct some misused
mv references in the original patch.
A 'bug-fix' for encoding complexity is done, reducing the additional
encoding time from 50% to 20%. In sub8x8 case, the old patch
did motion search for every interpolation filter (vp9 only
searches once). This fix also slightly improves the coding gain.
This experiment has been made compatible with REF_MV and EXT_REFS.

Coding gain (derflr/hevcmr/hevchd): 0.267%/0.542%/0.257%

Change-Id: I9a94c5f292e7454492a877f65072e8aedba087d4
2016-01-15 14:47:02 -08:00
Alex Converse
dea6f5217e Deduplicate sign cost for ONE/TWO/THREE/FOUR tokens
Change-Id: I9c383d604dfd240e38b198ac5bf86ddd3456f442
2016-01-15 13:56:34 -08:00
Debargha Mukherjee
6a5a08ee1c Adding experimental tags for new experiments
ext-partition: to hold partition extensions (ex. ext-partition,
ext-coding-unit-size from nextgen)
loop-restore: to hold in-loop restoration filter (ex. loop-postfilter
from nextgen and other Wiener restoration filters)

Change-Id: I71c7f1588f05fb0f2b00f7004a78e90c9cceae3f
2016-01-15 12:55:03 -08:00
Debargha Mukherjee
eee6afe0b9 Fixing some compile issues
Fixes a breakage introduced with the latest merge from master and
cleans up a couple of compiler warnings.

Change-Id: Ia55b39ba78e43f6fe52c54d7f34faa4dd6bbbf26
2016-01-15 11:02:30 -08:00
Yaowu Xu
44da65fb44 Merge branch 'master' into nextgenv2 2016-01-14 13:57:27 -08:00
Debargha Mukherjee
dcc0c894c4 Merge "Adding an aq mode for 360 videos" 2016-01-14 16:13:56 +00:00
Scott LaVarnway
d4bc17d696 Merge "VP9: inline vp9_use_mv_hp()" 2016-01-14 13:36:40 +00:00
Scott LaVarnway
13177d7ecb Merge "VP9: Remove decoder args from find_mv_refs_idx()" 2016-01-14 13:30:30 +00:00
James Zern
b524cca58a configure: extend armv7 hf target autodetect
Change-Id: I51d42a50288fc5224eb3ed7f895c916ae53239c8
2016-01-13 23:16:10 -08:00
James Zern
8d92858a91 Merge changes I6998e15f,I88891d9f
* changes:
  Remove unused POSIX_MMAP references
  Remove unused stdint.h check
2016-01-14 04:13:24 +00:00
Jingning Han
c38fc52df4 Merge "Handle single ref mv pair in the candidate list for compound mode" into nextgenv2 2016-01-14 02:55:36 +00:00
Yaowu Xu
0dfe9618c3 Properly set segmentation for error-resilient mode
Change-Id: I0c85b637e51dc949a4e919f10a78870f23c2ca6a
2016-01-13 17:27:17 -08:00
Yaowu Xu
727ca802bf Merge "Merge branch 'master' into nextgenv2" into nextgenv2 2016-01-14 00:26:45 +00:00
Jingning Han
3944cfb14d Handle single ref mv pair in the candidate list for compound mode
This commit considers the case where a single reference motion
vector pair is found in the candidate list. It treats this pair
as the effective motion vector for nearestmv mode. This improves
the coding performance by 0.06% for stdhd sets.

Change-Id: I9ce12f456b52912933e05c18c3841a78c26155d2
2016-01-13 16:19:27 -08:00
Debargha Mukherjee
02345be986 Adding an aq mode for 360 videos
Different quality levels are used for different regions in
the frame depending on how far they are vertically from the
center. Specifically, three segments are used based on the
mi_row index with respect number to the number of mi_rows in
the frame.

Change-Id: Ifc8b777bc58ea8521dffc4640360c67d99f8d381
2016-01-13 16:17:37 -08:00
Alex Converse
28ff0e0d1d Merge "Revert "Merge "Change highbd variance rounding to prevent negative variance.""" 2016-01-13 21:51:23 +00:00
Scott LaVarnway
a85e552d95 VP9: Remove decoder args from find_mv_refs_idx()
The decoder does not use this function.

Change-Id: Ie67f909c0f4108ef286789c70df867d4b960a780
2016-01-13 13:30:40 -08:00
Yaowu Xu
0367f32ea8 Merge branch 'master' into nextgenv2
Manually resovled the following conflicts:
	vp10/common/blockd.h
	vp10/common/entropy.h
	vp10/common/entropymode.c
	vp10/common/entropymode.h
	vp10/common/enums.h
	vp10/common/thread_common.c
	vp10/decoder/decodeframe.c
	vp10/decoder/decodemv.c
	vp10/encoder/bitstream.c
	vp10/encoder/encodeframe.c
	vp10/encoder/rd.c
	vp10/encoder/rdopt.c

Change-Id: I15d20ce5292b70f0c2b4ba55c1f1318181481596
2016-01-13 13:18:06 -08:00
Yaowu Xu
ca4df94858 Merge "Fix encoder crashes and enc/dec mismatches" 2016-01-13 21:07:53 +00:00
Debargha Mukherjee
e9db70fb63 Merge "Use specific PICK_MODE_CONTEXT for supertx." into nextgenv2 2016-01-13 19:41:39 +00:00
Jingning Han
177601b561 Merge "Generate compound reference motion vector" into nextgenv2 2016-01-13 19:37:38 +00:00
Jingning Han
97629f5961 Merge "Refactor ref mv stack system" into nextgenv2 2016-01-13 19:36:16 +00:00
Alex Converse
ed3df445d9 Revert "Merge "Change highbd variance rounding to prevent negative variance.""
This reverts commit ea48370a500537906d62544ca4ed75301d79e772, reversing
changes made to 15939cb2d76c773950cda40988ede89e111872ea.

The commit was insufficiently tested and causes failures.

Change-Id: I623d6fc2cd3ae6fd42d0abab1f8eada465ae57a7
2016-01-13 11:19:06 -08:00
Yaowu Xu
d803e8a20e Fix encoder crashes and enc/dec mismatches
This commit adds the logic for segmentation map initialization and
disable temporal update of segmentation map when error-resilient
mode is on. It fixes the enc/dec mistmates (release build) and
assertions(debug) when both aq-mode and error-resilient are on.

Change-Id: Id2155e8b28962cf1f64494f4df0c8d79499b6890
2016-01-13 09:51:05 -08:00
Scott LaVarnway
de993a847f VP9: inline vp9_use_mv_hp()
Change-Id: Ib275bfc4c29c572d6c70e5ec6dbfc241590d3e3e
2016-01-13 08:02:05 -08:00
Alex Converse
ea48370a50 Merge "Change highbd variance rounding to prevent negative variance." 2016-01-13 00:25:54 +00:00
Jingning Han
33cc1bd21d Generate compound reference motion vector
This commit allows the codec to add motion vector pairs into
the candidate list. It further improves the compression performance
by 0.1% across derf, hevcmr, stdhd, and hevchr sets without adding
encode/decode time.

Change-Id: I88d36da25a2a89bb506d411844af667081eba98b
2016-01-12 15:28:47 -08:00
Alex Converse
0f840cc3eb Compress the final ANS state.
The '110' prefix on a final byte indicates a superframe marker. Coded
data is not allowed to use this pattern on a final byte.

Code |state - l_base| little endian with the following prefix scheme:
Prefix '00': Single byte coded state.
Prefix '01': Two bytes le coded state.
Prefix '10': Three bytes le coded state.

Change-Id: Ibc953b67675b567394b93de39b7cb22cadc47435
2016-01-12 23:11:17 +00:00
Alex Converse
5311ad9e83 Merge "Code DCT tokens with ANS" into nextgenv2 2016-01-12 23:08:36 +00:00
Alex Converse
dff3ea7ab3 Merge "Add an implementation of Asymetric Numeral Systems (ANS)." into nextgenv2 2016-01-12 23:05:31 +00:00
Scott LaVarnway
15939cb2d7 Merge "VP9: Eliminate unnecessary nearest/near searches" 2016-01-12 20:00:59 +00:00
Scott LaVarnway
d8aa40634a VP9: Eliminate unnecessary nearest/near searches
Prior to this patch, read_inter_block_mode_info() would
find the nearmv and nearestmv for all modes.  Now it does not
search for ZEROMV modes and breaks out early for NEARMV and
NEWMV modes.

Change-Id: Ifa7b1eaf58bb03b9c7792ea5012fef477527d0fd
2016-01-12 05:09:06 -08:00
Geza Lore
e4663e6da1 Use specific PICK_MODE_CONTEXT for supertx.
Change-Id: I402d10dd666ebc4a06ce4472810a7e22f2e056ff
2016-01-12 13:06:42 +00:00
Alex Converse
d1893f64e0 Code DCT tokens with ANS
Change-Id: I452f9675325a5f45bfbbe3e7e135009a125539f1
2016-01-12 09:08:19 +00:00
Alex Converse
9ffcb469fb Add an implementation of Asymetric Numeral Systems (ANS).
Change-Id: Ie41bc72127e700887566dcc951da9d83a0b94891
2016-01-11 16:26:30 -08:00
Jingning Han
253a200d3b Refactor ref mv stack system
This commit re-works the reference motion vector stack process
and make it support extended context set. It unifies reference
motion vector checking process for row and column scan, as well as
for single block scan.

Change-Id: I68c05cde93cf8b0ca2ef4d1523399f405bd0a337
2016-01-11 12:39:29 -08:00
Debargha Mukherjee
d738ce2b0a Merge "Fixing issue with txfm context when var_tx and supertx are enabled" into nextgenv2 2016-01-11 18:40:25 +00:00
Debargha Mukherjee
a0900fd0db Remove experimental flag for ext_tx
Also includes a bug fix.

Change-Id: Ia49ed00f8ffd1531c10bcf89b1f497310ee7cb82
2016-01-08 13:48:24 -08:00
Debargha Mukherjee
004b546ae1 Merge "Modifies inter/intra coding to allow all tx types" 2016-01-08 20:02:41 +00:00
Yunqing Wang
ff0107f60d Amend and improve VP8 multithreading implementation
There are flaws in current implementation of VP8 multithreading encoder
and decoder as reported in the following issue:
https://code.google.com/p/chromium/issues/detail?id=158922

Although the data race warnings are harmless, and wouldn't cause real
problems while encoding and decoding videos, it is better to fix the
warnings so that VP8 code could pass the TSan test.

To synchronize the thread-shared data access and maintain the speed
(i.e. decoding speed), use multiple mutexes based on mb_rows to reduce
the number of synchronizations needed, make the reads and writes of
the shared data protected, and reduce the number of mb_col writes by
nsync times.

The decoder speed tests showed < 3% speed loss while using 2 ~ 4
threads.

Change-Id: Ie296defffcd86a693188b668270d811964227882
2016-01-08 11:59:49 -08:00
Debargha Mukherjee
f7dfa4ece7 Modifies inter/intra coding to allow all tx types
The nominal tx_type for a given mode is used as a context
to encode the actual tx_type for intra.

Results:
derflr: -0.241% BDRATE
hevcmr: -0.366% BDRATE

Change-Id: Icfe7b0a58d79bc6497a06e3441779afec6e01e21
2016-01-08 11:13:46 -08:00
Jingning Han
387a10e3dc Enable context analyzer for inter mode entropy coding
It allows the codec to account for certain corner cases when
processing inter prediction mode entropy coding.

Change-Id: Ied451f4fff26ba579f6556554b8381ff2ccd0003
2016-01-08 10:27:27 -08:00
Yaowu Xu
c557efafeb Merge branch 'master' into nextgenv2 2016-01-08 05:00:05 -08:00