12269 Commits

Author SHA1 Message Date
Deb Mukherjee
8c5ac79e66 Some build fixes with highbitdepth and new quant
Highbitdepth performance about the same as 8-bit.

Change-Id: If737962d8588dd190083edae4383b731f9d22873
2015-03-21 06:53:58 -07:00
Deb Mukherjee
c8ed36432e Non-uniform quantization experiment
This framework allows lower quantization bins to be shrunk down or
expanded to match closer the source distribution (assuming a generalized
gaussian-like central peaky model for the coefficients) in an
entropy-constrained sense. Specifically, the width of the bins 0-4 are
modified as a factor of the nominal quantization step size and from 5
onwards all bins become the same as the nominal quantization step size.
Further, different bin width profiles as well as reconstruction values
can be used based on the coefficient band as well as the quantization step
size divided into 5 ranges.

A small gain currently on derflr of about 0.16% is observed with the
same paraemters for all q values.
Optimizing the parameters based on qstep value is left as a TODO for now.

Results on derflr with all expts on is +6.08% (up from 5.88%).

Experiments are in progress to tune the parameters for different
coefficient bands and quantization step ranges.

Change-Id: I88429d8cb0777021bfbb689ef69b764eafb3a1de
2015-03-17 21:42:55 -07:00
Alex Converse
9a92891ac4 interintra: wedge: Get the correct wedge params.
Fixes an asan issue.

Change-Id: I671ffc382c77c2b38673e0b148f54e7bce2ce9c2
2015-03-17 10:49:22 -07:00
Alex Converse
7ca745a2df palette: Fix an illegal read
Change-Id: I71649f0a85d98b96efd08c8a9e3ee7372fd7d327
2015-03-16 17:13:15 -07:00
Deb Mukherjee
961fe77e70 Merge "Misc changes to support high-bitdepth with supertx" into nextgen 2015-03-12 17:42:20 -07:00
Deb Mukherjee
35d38646ec Misc changes to support high-bitdepth with supertx
Change-Id: I0331646d1c55deb6e4631e64bd6b092fb892a43e
2015-03-12 16:52:25 -07:00
Zoe Liu
0337ae5218 Fixed a bug & a build warning for newmvref-sub8x8
Change-Id: I799fc3fb4c1201da14c97bf66e06dec655f6a620
2015-03-12 11:31:33 -07:00
hui su
7621c779e5 Add palette coding mode for UV
For 444 videos, a single palette of 3-d colors is
generated for YUV. For 420 videos, there may be two
palettes, one for Y, and the other for UV.

Also fixed a bug when palette and tx-skip are both on.

on derflr
--enable-palette                    +0.00%
with all experiments                +5.87% (was +5.93%)

on screen_content
--enable-palette                    +6.00%
--enable-palette --enable-tx_skip   +15.3%

on screen_content 444 version
--enable-palette                    +6.76%
--enable-palette --enable-tx_skip   +19.5%

Change-Id: I7287090aecc90eebcd4335d132a8c2c3895dfdd4
2015-03-10 13:38:19 -07:00
Debargha Mukherjee
ee2f0bdfcd Merge "Global motion work continued" into nextgen 2015-03-10 11:27:04 -07:00
Spencer Egart
faaaf85fc3 Global motion work continued
Interface change for the global Mv functions.

Change-Id: Ie4722faa638ac557f99743f7b33ff46c3d29e9a1
2015-03-10 10:47:12 -07:00
Deb Mukherjee
d835821fa1 Merge "Make filterintra experiment work with highbitdepth" into nextgen 2015-03-10 10:42:58 -07:00
Deb Mukherjee
78bcc48756 Make filterintra experiment work with highbitdepth
All stats look fine.
derflr: +0.912 with respect to 10-bit internal baseline
               (Was +0.747% w.r.t. 8 bit)
        +5.545 with respect to 8-bit baseline

Change-Id: I3c14fd17718a640ea2f6bd39534e0b5cbe04fb66
2015-03-10 07:59:59 -07:00
Alex Converse
efe2b3cbc6 Fix tx_skip debug build.
Change-Id: I20a3e4e34f10485aa5e6723cd33b0311bdbf1320
2015-03-09 14:57:13 -07:00
Yaowu Xu
41eb20d1e9 Add encoder control for setting color space
This commit adds encoder side control for vp9 to set color space info
in the output compressed bitstream.

It also amends the "vp9_encoder_params_get_to_decoder" test to verify
the correct color space information is passed from the encoder end to
decoder end.

Change-Id: Ibf5fba2edcb2a8dc37557f6fae5c7816efa52650
(cherry picked from commit e94b415c3479129944a69fafbeacf550fb9237b7)
2015-03-06 16:42:09 -08:00
Yaowu Xu
63537df4c0 Enable decoder to pass through color space info
This commit added a field to vpx_image_t for indicating color space,
the field is also added to YUV_BUFFER_CONFIG. This allows the color
space information pass through the decoder from input stream to the
output buffer.

The commit also updates compare_img() function with added verification
of matching color space to ensure the color space information to be
correctly passed from encode to decoder in compressed vp9 streams.

Change-Id: I412776ec83defd8a09d76759aeb057b8fa690371
(cherry picked from commit 6b223fcb588c865ae6f5abfd3d9de3ba2ae0540f)
2015-03-06 15:57:12 -08:00
Yaowu Xu
b7913deb7e Added plumbing for setting color space
Change-Id: If64052cc6e404abc8a64a889f42930d14fad21d3
(cherry picked from commit ce52b0f8d347224cd526dc1ba55597a2aa79c341)
2015-03-06 14:51:49 -08:00
James Zern
cd152849ea vp9_highbd_tm_predictor_16x16: fix win64
by saving xmm8; cglobal's xmm reg arg is 0-based

Change-Id: Ic8426ec9ac59ab4478716aa812452a6406794dcb
(cherry picked from commit 923cc0bf51a24d05c6aa68f80e09d485a54431f6)
2015-03-06 13:29:00 -08:00
Yaowu Xu
6fcaa06911 Correct the miscalculation in uv dimensions
The calculation of required extension used in HBD case was wrong due
to rounding for UV when y dimension is odd. This commit replace the
computation with correct version.

This fixes a crash caused by writting beyond buffer boundary.

Change-Id: Ic7c9afeb7388cd1341ec4974a611dacfb74ac6b6
(cherry picked from commit 4bca73b609bfe9a5cb86fc25b69c6128d9041504)
2015-03-06 09:47:57 -08:00
Yaowu Xu
7b4ff46175 Prevent VP8 encoding crash
This commit changes the value of highbitdepth flag to avoid conflict
with vp8 refresh_last_frame flag.

Change-Id: Idcff2cf44f0a200bd935b326f785c0cf32d7228a
(cherry picked from commit dd27307cac5ac7f346888d219877041563eea0a2)
2015-03-06 09:47:56 -08:00
Zoe Liu
cf004a0845 Merge "Fixed the build for newmvref-sub8x8" into nextgen 2015-03-06 08:54:11 -08:00
Zoe Liu
6c7b4ed355 Fixed the build for newmvref-sub8x8
Change-Id: Ie042001e69d80b1fc52368f29617ad2e51a5e250
2015-03-06 00:01:30 -08:00
Zoe Liu
756a18663c Merge "Cleaned code further for newmvref-sub8x8 and compound-modes" into nextgen 2015-03-05 15:41:28 -08:00
Zoe Liu
1192f99976 Cleaned code further for newmvref-sub8x8 and compound-modes
Change-Id: I9f869c37566aaf81910d1d6ab1b2ac0d2a2f0a23
2015-03-05 15:40:36 -08:00
Zoe Liu
e222d46658 Merge "Changed mv ref to nearestmv always for sub8x8" into nextgen 2015-03-05 11:57:21 -08:00
Zoe Liu
b359952c2c Changed mv ref to nearestmv always for sub8x8
For all sub8x8 partition, the mv ref has changed to its own nearest_mv
instead of the nearest_mv of the super 8x8 block:

--enable-newmvref-sub8x8: ~0.1% gain for derflr

Besides the above new experiment, code has been cleaned largely for the
sub8x8 motion search, such that the mv ref can be fairly easily changed to
use other options, e.g., the next step's global motion effort.

Change-Id: I8e3f4aaa8553ba8c445369692e079db5ce282593
2015-03-05 11:09:58 -08:00
Zoe Liu
a9040ea40c Corrected comment in mode_2_counter for compound
Change-Id: I5459550e62cff79182fa0ac5a24edb56cb64d608
2015-03-04 10:16:25 -08:00
Zoe Liu
30720adf6e Fixed the build for denoiser in new compound mode
Change-Id: Ifb824ce87db9c00c8c87f52d9b8718669fb39d05
2015-03-04 09:29:05 -08:00
Deb Mukherjee
4c1049d7a8 Some fixes to quantization and compiler warnings
The bugs affected only the tx64x64 experiment. This patch fixes
them.

Also fixes some compiler warnings

Change-Id: I4cf1e24a4f1fa59831bf29750cf6daa8373e8e8f
2015-03-03 14:07:17 -08:00
Deb Mukherjee
9909903229 Adds translation model to global motion estimation
Change-Id: Ie1791ab7cfdd3f7a1b03404627246c923f1bd51f
2015-02-25 09:57:33 -08:00
hui su
caccf06acd Palette-based coding experiment
Added palette coding option for Y channel only, key frame only.
Palette colors are obtained with k-means clustering algorithm.
Run-length coding is used to compress the color indices.

On screen_content:
--enable-palette                            + 5.75%
--enable-palette --enable-tx_skip           +15.04% (was 13.3%)

On derflr:
--enable-palette                            - 0.03%
with all the other expriments               + 5.95% (was 5.98%)

Change-Id: I6d1cf45c889be764d14083170fdf14a424bd31b5
2015-02-23 09:23:50 -08:00
Zoe Liu
7d8840a082 Removed redundant src_mi in mv ref candidates
Change-Id: I4eb144e7c9d2c8568388ae58001cc7b7498967e4
2015-02-19 09:44:05 -08:00
Spencer Egart
d8983f0dd7 Global Motion block-based
Uses block-based motion fields with ransac to find transformation between
frames.

Change-Id: I6293fbb690cdad854a1140fb6af76b326abfe964
2015-02-18 11:52:39 -08:00
Spencer Egart
edffe3f956 Global motion experiment
Added a function to compute a motion field for a pair of buffers, for use in
finding an affine transform or homography.

Change-Id: Id5169cc811a61037e877dfd57fccaca89d93936f
2015-02-10 11:15:39 -08:00
Deb Mukherjee
2aef964519 Merge "Adds code for corner detection and ransac" into nextgen 2015-02-10 08:18:03 -08:00
Deb Mukherjee
1fc70e47cd Adds code for corner detection and ransac
This code is to start experiments with global motion models.

The corner detection can be either fast_9 or Harris.
Corner matching is currently based on normalized correlation.
Three flavors of ransac are used to estimate either a
homography (8-param), or an affine model (6-param) or a
rotation-zoom only affine model (4-param).

The highest level API for the library is in vp9_global_motion.h,
where there are two functions - one for computing a single model
and another for computing multiple models up to a maximum number
provided or until a desired inlier probability is achieved.

Change-Id: I3f9788ec2dc0635cbc65f5c66c6ea8853cfcf2dd
2015-02-10 00:48:56 -08:00
Zoe Liu
48da7bf004 Cleaned up the COMPOUND_MODES code in sub8x8
Change-Id: I571ff39799c3257b5c6db82660364ce412c7f6e2
2015-02-09 11:58:54 -08:00
hui su
2118f66a91 Enable tx_skip for inter blocks
Enable tx_skip for inter blocks whose q-index is smaller than 64.

tx_skip experiment alone:
derflr: +0.233% (was +0.038%)

all experiments:
derflr: +5.98% (was +5.94%)

Change-Id: I35245a476ff7039fec8468a92a6aa63feaf74831
2015-02-08 17:57:51 -08:00
hui su
1ae3989558 Fix a bug in filterintra experiment
All expts together: +5.946% (up about 0.3%)

Change-Id: If686e5e97209b4cc4a8115f920e1f4f35ded5a1d
2015-01-31 00:43:06 -08:00
Yue Chen
2ed2f29d21 Fix a bug in COPY_MODE + EXT_TX experiment
Remove the duplicated step counting the overhead for ext_tx, because
it has been counted in super_block_yrd().

Change-Id: I50bc01d8166572bc0847305565cf33c14ee516e6
2015-01-27 12:02:54 -08:00
Jingning Han
50cab76f12 Removal of legacy zbin_extra / zbin_oq_value.
Change-Id: I07f77a63aa98087626e45c4e87aa5dcafc0b0b07
(cherry picked from commit d0f237702745c4bfc0297d24f9465f960fb988ed)
2015-01-21 20:37:19 -08:00
Deb Mukherjee
7a993f850e Adds inter-intra combination with wedge partitions
Also fixes some build issues with certain experimental combinations.

Results on derflr with all experiments on: +5.516%

Change-Id: I9b492f3d3556bd1f057005571dc9bee63167dd95
2015-01-21 15:45:22 -08:00
Deb Mukherjee
760219d0fd Some build fixes
Related zbin boost removal.

Change-Id: I0f34d31038c29d5cb78bc5d110159df01e41e328
2015-01-21 13:37:24 -08:00
Paul Wilkins
dfed541f21 Remove mode dependent zbin boost.
Initial patch to remove get_zbin_mode_boost() and
cpi->zbin_mode_boost.

For now sets a dummy value of 0 for zbin extra pending
a further clean up patch.

Change-Id: I64a1e1eca2d39baa8ffb0871b515a0be05c9a6af
(cherry picked from commit 60e9b731cf8945403dbcf149a0f6dc745e5cabe1)
2015-01-21 11:05:55 -08:00
Spencer Egart
347c31b48f Created COMPOUND_MODES experiment.
COMPOUND_MODES experiment encodes separate MV modes for each frame in a compound
reference prediction.  Added modes NEAREST_NEARESTMV, ZERO_ZEROMV,
NEW_NEWMV, NEAREST_NEARMV, NEAR_NEARESTMV, NEW_NEARESTMV, NEAR_NEWMV,
NEW_NEARMV, and NEAREST_NEWMV.

Also enhances the wedge-partition expt to work better with compound
modes.

Results:
derflr +0.227
All experiments on: derflr +5.218

Change-Id: I719e8a34826bf1f1fe3988dac5733a845a89ef2b
2015-01-16 14:48:56 -08:00
Deb Mukherjee
db5dd49996 Adds wedge-partitions for compound prediction
Results with this experiment only: +0.642% on derflr.
With other experiments: +4.733%

Change-Id: Ieb2022f8e49ac38a7e7129e261a6bf69ae9666b9
2015-01-15 15:59:33 -08:00
punksu
5f0093bb98 Merge "dpcm intra prediction for tx_skip" into nextgen 2015-01-15 11:53:06 -08:00
punksu
571fdbb05f dpcm intra prediction for tx_skip
Implements vertical, horizontal, and tm dpcm intra prediction for
blocks in tx_skip mode. Typical coding gain on screen content video
is 2%~5%.

Change-Id: Idd5bd84ac59daa586ec0cd724680cef695981651
2015-01-14 14:54:09 -08:00
Zoe Liu
a56ff2d323 Fixed a bug in the experiment EXT_TX.
Change-Id: I1adf0e916f9414e6dfe1d07cefc0693bc63b7e97
2015-01-14 14:27:51 -08:00
hui su
f60b844974 Merge "Turn on tx_skip for inter modes" into nextgen 2015-01-14 08:57:41 -08:00
Deb Mukherjee
3960e92c8b Merge "Some fixes in interintra expt" into nextgen 2015-01-13 12:34:24 -08:00