]> granicus.if.org Git - libvpx/log
libvpx
10 years agoEnable arbitrary tile size support
Jingning Han [Thu, 21 May 2015 19:44:29 +0000 (12:44 -0700)]
Enable arbitrary tile size support

This commit allows the encoder to process tile coding per 64x64
block. The supported upper limit of tile resolution is the minimum
of frame size and 4096 in each dimension. To turn on, set
--experiment --row-tile
and compile.

It overwrite the old --tile-columns and --tile-rows configurations.
These two parameters now tell the encoder the width and height of
tile in the unit of 64x64 block. For example,
--tile-columns=1 --tile-rows=1
will make a tile contains a single 64x64 block.

Change-Id: Id515749a05cfeb9e9d008291b76bdfb720de0948

10 years agoMake internal codec support arbitrary tile size
Jingning Han [Thu, 21 May 2015 16:19:20 +0000 (09:19 -0700)]
Make internal codec support arbitrary tile size

This commit allows the internal codec handle arbitrary tile size
in the unit of 64x64 pixel blocks.

Change-Id: I3ad24de392064645bebab887c94e1db957794916

10 years agoRefactor internal tile_info variables to support 1024 tiles
Jingning Han [Wed, 20 May 2015 17:15:25 +0000 (10:15 -0700)]
Refactor internal tile_info variables to support 1024 tiles

Move the 2D tile info arrays as global variables. This resolves
the local function stack overflow issue due to excessively large
tile info variables. This allows the internal operation to support
up to 1024 row and column tiles.

Change-Id: I6644cc929e5d3a778a5c03a712ebfc0b8729f576

10 years agoSupport up to 64 row tile coding
Jingning Han [Wed, 20 May 2015 00:17:28 +0000 (17:17 -0700)]
Support up to 64 row tile coding

This commit allows the codec to use up to row tiles (optionally
in combination with up to 64 column tiles per row tile). The
minimum tile size is set to be 256x256 pixel block.

Change-Id: I811ca93f0c5eba41e190f6c7c0f064d1083f530f

10 years agoSupport up to 1024 row/column tiles in bit-stream syntax
Jingning Han [Tue, 19 May 2015 22:41:57 +0000 (15:41 -0700)]
Support up to 1024 row/column tiles in bit-stream syntax

Add syntax support to allow up to 1024 row/column tiles
respectively.

Change-Id: I84278589364b658d6c4dd05f0771795f732ad68f

10 years agoSet row and col tile number upper limit as 1024
Jingning Han [Tue, 19 May 2015 22:26:40 +0000 (15:26 -0700)]
Set row and col tile number upper limit as 1024

Increase the supported row and col tile numbers from 4 and 64,
respectively to 1024 both.

Change-Id: Ic07435ff6783940a466a549a69a11ab3faf3247a

10 years agoRename variables in tile info decoding
Jingning Han [Tue, 19 May 2015 22:21:46 +0000 (15:21 -0700)]
Rename variables in tile info decoding

The max and min tile number reference should be used to support
both row and column tiles. This commit renames the previous col
prefix to avoid confusion.

Change-Id: I487bea43701af946b79023597a9a9a0516480380

10 years agoRemoved the unused modes newmvref and compound-modes
Zoe Liu [Tue, 19 May 2015 23:20:37 +0000 (16:20 -0700)]
Removed the unused modes newmvref and compound-modes

Change-Id: Ia51913d48a09a7ea7502e8c49ee0159492e58b96

10 years agoCombined two experiments of NEWMVREF and COMPOUND_MODES to NEW_INTER
Zoe Liu [Tue, 19 May 2015 17:16:44 +0000 (10:16 -0700)]
Combined two experiments of NEWMVREF and COMPOUND_MODES to NEW_INTER

Runborgs results on derflr show consistent results between NEW_INTER
and the previous combination of NEWMVREF and COMPOUND_MODES.

Change-Id: Ieba239c4faa7f93bc5c05ad656a7a3b818b4fbfc

10 years agoMerge "Fix mismatch in handling of 8x4/4x8 blocks with supertx" into nextgen
Julia Robson [Tue, 19 May 2015 16:06:24 +0000 (16:06 +0000)]
Merge "Fix mismatch in handling of 8x4/4x8 blocks with supertx" into nextgen

10 years agoRemoving unnecessary syntax remaping for mc filter type
Pieter Kapsenberg [Mon, 18 May 2015 19:14:12 +0000 (12:14 -0700)]
Removing unnecessary syntax remaping for mc filter type

Change-Id: Iba067eb2bcf519dc5776976c3ab0a694ff3feb12

10 years agoFix mismatch in handling of 8x4/4x8 blocks with supertx
Julia Robson [Mon, 18 May 2015 10:52:44 +0000 (11:52 +0100)]
Fix mismatch in handling of 8x4/4x8 blocks with supertx

Test VP9/EndToEndTestLarge.EndtoEndPSNRTest/1 (422 stream) failed when
supertx enabled. This was because 4x8 and 8x4 blocks were not being
split into 4x4s during tokenization in the encoder. This patch
uses vp9_foreach_transformed_block() to fix this.

Change-Id: I1f1cb27474eb9e04347067f5c4aff1942bbea8d9

10 years agoMerge "Fix a bug in tx-skip experiment" into nextgen
hui su [Mon, 18 May 2015 04:31:26 +0000 (04:31 +0000)]
Merge "Fix a bug in tx-skip experiment" into nextgen

10 years agoRow tile fix
Debargha Mukherjee [Fri, 15 May 2015 15:01:21 +0000 (08:01 -0700)]
Row tile fix

Fixes mismatch with intrabc experiment.

Change-Id: I1d83a8aa5584fb35396351f7fae7f9365598d00f

10 years agoMerge "Global motion enhancements" into nextgen
Debargha Mukherjee [Fri, 15 May 2015 05:48:26 +0000 (05:48 +0000)]
Merge "Global motion enhancements" into nextgen

10 years agoGlobal motion enhancements
Debargha Mukherjee [Thu, 7 May 2015 22:09:40 +0000 (15:09 -0700)]
Global motion enhancements

Adds warping functions. Also includes some refactoring.

Change-Id: I909830650f29046edf108ddaddceb1a5e7c6c61c

10 years agoAdded a new experiment "NEW_INTER"
Zoe Liu [Thu, 14 May 2015 21:39:45 +0000 (14:39 -0700)]
Added a new experiment "NEW_INTER"

Down the road this experiment will combine and replace both NEWMVREF
and COMPOUND_MODES.

Change-Id: I383291f94f3e80e5cbbabab45e31c4b48669f2e5

10 years agoFix a bug in tx-skip experiment
hui su [Tue, 12 May 2015 16:38:14 +0000 (09:38 -0700)]
Fix a bug in tx-skip experiment

Fix potential mismatch.

Change-Id: I51f9241c73d70c0c38fd7e2c15f4381350b60388

10 years agoChanged tokenize to correct tx_size for 440 input
Julia Robson [Tue, 12 May 2015 16:04:28 +0000 (17:04 +0100)]
Changed tokenize to correct tx_size for 440 input

Change-Id: I41995cfa03038ec45b5f0d6c68195cfa36d58ec8

10 years agoMerge "Removed unused macro for INTERINTRA" into nextgen
Zoe Liu [Tue, 12 May 2015 00:25:00 +0000 (00:25 +0000)]
Merge "Removed unused macro for INTERINTRA" into nextgen

10 years agoRemoved unused macro for INTERINTRA
Zoe Liu [Mon, 11 May 2015 20:01:25 +0000 (13:01 -0700)]
Removed unused macro for INTERINTRA

Change-Id: Ibdf4da969c17d4b1dff14a777ccb405763a62b75

10 years agoAdd row tile coding support in bit-stream
Jingning Han [Tue, 7 Apr 2015 19:23:26 +0000 (12:23 -0700)]
Add row tile coding support in bit-stream

Fix the row tile boundary detection issues. This allows to use
more resources for parallel encoding/decoding when avaiable.

Change-Id: Ifda9f66d1d7c2567dd4e0a572a99a83f179b55f9

10 years agoCleaned mv search code and added a few fixes on the experiments
Zoe Liu [Sat, 11 Apr 2015 00:08:31 +0000 (17:08 -0700)]
Cleaned mv search code and added a few fixes on the experiments

Besides code cleaning, this patch contains 3 fixes:
(1) Fixed the COMPOUND_MODES for the NEW_NEWMV mode;
(2) Fixed the joint search when the NEAR_FORNEWMV mode (in NEWMVREF)
is being evaluated;
(3) Fixed the WEDGE_PARTITION when the NEAR_FORNEWMV mode (in NEWMVREF)
is being evaluated.
(4) Adjusted the entropy probability value for NEAR_FORNEW mode.

On derflr turning on all 14 experiments (except for global-motion), the
average gain w.r.t. PSNR is +0.07%:
Maximum on bridge_far_cif: +1.02%
Minimum on hallmonitor_cif: -0.16%

Change-Id: I4c9c6ee24a981af7e655a629580641d9f9745f91

10 years agoMerge "Optimize entropy coding of non-transform tokens" into nextgen
hui su [Fri, 8 May 2015 18:18:48 +0000 (18:18 +0000)]
Merge "Optimize entropy coding of non-transform tokens" into nextgen

10 years agoMerge "Try non-traditional intra prediction even when spatial isn't good." into nextgen
Alex Converse [Fri, 8 May 2015 01:27:12 +0000 (01:27 +0000)]
Merge "Try non-traditional intra prediction even when spatial isn't good." into nextgen

10 years agoOptimize entropy coding of non-transform tokens
hui su [Tue, 21 Apr 2015 21:10:19 +0000 (14:10 -0700)]
Optimize entropy coding of non-transform tokens

Use separate token probabilities and counters for non-transform
blocks (pixel domain) . Initial probabilities are trained with screen_content
clips. On screen_content, it improves coding performance by about
2% (from +16.4% to +18.45%).

The initial probabilities are not optimized for natural videos. So it should
not be used for natural videos. Set FOR_SCREEN_CONTENT as 0/1 to specify
whether or not to enable this patch.

Change-Id: Ifa361c94bb62aa4b783cbfa50de08c3fecae0984

10 years agoMerge "Fix a bug in copy_mode experiment" into nextgen
Debargha Mukherjee [Thu, 7 May 2015 05:10:00 +0000 (05:10 +0000)]
Merge "Fix a bug in copy_mode experiment" into nextgen

10 years agoMerge "Global motion continued" into nextgen
Debargha Mukherjee [Thu, 7 May 2015 05:09:33 +0000 (05:09 +0000)]
Merge "Global motion continued" into nextgen

10 years agoFix a bug in copy_mode experiment
Yaowu Xu [Thu, 7 May 2015 00:03:32 +0000 (17:03 -0700)]
Fix a bug in copy_mode experiment

Change-Id: I1cf7d51ba99e5b6f5cf7e0d1a5d86ce4f19046e5

10 years agoAdded highbitdepth sse2 acceleration for quantize and block error
Peter de Rivaz [Thu, 16 Oct 2014 12:38:46 +0000 (13:38 +0100)]
Added highbitdepth sse2 acceleration for quantize and block error

This is a partial cherry-pick of db7192e

Change-Id: Idef18f90b111a0d0c9546543d3347e551908fd78

10 years agoGlobal motion continued
Debargha Mukherjee [Thu, 23 Apr 2015 00:33:25 +0000 (17:33 -0700)]
Global motion continued

Implements a first version of global motion where the
existing ZEROMV mode is converted to a translation only
global motion mode.
A lot of the code for supporting a rotation-zoom affine
model is also incorporated.
WIP.

Change-Id: Ia1288a8dfe82f89484d4e291780288388e56d91b

10 years agoTry non-traditional intra prediction even when spatial isn't good.
Alex Converse [Wed, 29 Apr 2015 00:06:48 +0000 (17:06 -0700)]
Try non-traditional intra prediction even when spatial isn't good.

Change-Id: I3a9b94d52cc0e962d91827a9b7ca8b65e82130ca

10 years agoCorrected optimization of 8x8 DCT code
Peter de Rivaz [Thu, 11 Dec 2014 15:54:23 +0000 (15:54 +0000)]
Corrected optimization of 8x8 DCT code

The 8x8 DCT uses a fast version whenever possible.
There was a mistake in the checking code which
meant sometimes the fast version was used when it
was not safe to do so.

Change-Id: I154c84c9e2d836764768a11082947ca30f4b5ab7

10 years agoAdded tests for high bitdepth variance sse2 functions
Peter de Rivaz [Mon, 10 Nov 2014 13:59:28 +0000 (13:59 +0000)]
Added tests for high bitdepth variance sse2 functions

Change-Id: I72735e2e07464a0f7e44968fb14a195c84a58992

10 years agoFixed idct16x16_10 highbitdepth transform
Peter de Rivaz [Mon, 10 Nov 2014 16:17:49 +0000 (16:17 +0000)]
Fixed idct16x16_10 highbitdepth transform

In the case when there are only non-zero coefficients
in the first 4x4 block a special routine is called.
The highbitdepth optimized version of this routine
examined the wrong positions when deciding whether
to call an assembler or C inverse transform.

Change-Id: I62da663ca11775dadb66e402e42f4a1cb1927893

10 years agoIadst transforms to use internal low precision
Deb Mukherjee [Thu, 6 Nov 2014 20:50:33 +0000 (12:50 -0800)]
Iadst transforms to use internal low precision

Change-Id: I266777d40c300bc53b45b205144520b85b0d6e58

10 years agoAdded high bitdepth sse2 transform functions
Peter de Rivaz [Fri, 24 Oct 2014 07:48:02 +0000 (08:48 +0100)]
Added high bitdepth sse2 transform functions

Change-Id: If359f0e9a71bca9c2ba685a87a355873536bb282

10 years agoAdded sse2 acceleration for highbitdepth variance
Peter de Rivaz [Thu, 16 Oct 2014 13:00:54 +0000 (14:00 +0100)]
Added sse2 acceleration for highbitdepth variance

This is a combination of:
  4a19fa6 Added sse2 acceleration for highbitdepth variance
  c6f5d3b Fix high bit depth assembly function bugs

Change-Id: I446bdf3a405e4e9d2aa633d6281d66ea0cdfd79f

10 years agoRefactored idct routines and headers
Peter de Rivaz [Fri, 24 Oct 2014 07:37:39 +0000 (08:37 +0100)]
Refactored idct routines and headers

This change is made in preparation for a
subsequent patch which adds acceleration
for the highbitdepth transform functions.

The highbitdepth transform functions attempt
to use 16/32bit sse instructions where possible,
but fallback to using the C implementations if
potential overflow is detected.  For this reason
the dct routines are made global so they can be
called from the acceleration functions in the
subsequent patch.

Change-Id: Ia921f191bf6936ccba4f13e8461624b120c1f665

10 years agoAdded highbitdepth sse2 SAD acceleration and tests
Peter de Rivaz [Thu, 16 Oct 2014 12:41:55 +0000 (13:41 +0100)]
Added highbitdepth sse2 SAD acceleration and tests

Change-Id: I9f09e404e3136951e5cc15bf40b915c1fe10b620

10 years agoEnable build with vs20013
Yaowu Xu [Mon, 4 May 2015 20:02:58 +0000 (13:02 -0700)]
Enable build with vs20013

Change-Id: I0592b9e92c3ca45e0a81d9ce49a9f2381bec3e39

10 years agoChanged nearmv for one of the sub8x8 partitions
Zoe Liu [Thu, 30 Apr 2015 00:47:45 +0000 (17:47 -0700)]
Changed nearmv for one of the sub8x8 partitions

It is a minor change, but the essential idea is to use the mv of the
top right block as the nearmv for the bottom left partition in the
sub8x8 block. The change is under the experiment of NEWMVREF.

When all 13 experiments are on (except for INTRABC), the gain is +0.05%:
Worse on bowing_cif: -0.17%
Best on foreman_cif: +0.42%; and bridge_far_cif: +0.40%
The total 13 experiments achieved a gain of +6.97% against base.

Change-Id: I3a51d9e28b34b0943fe16a984d62bfb38304ebca

10 years agotx_skip: Avoid undefined shift behavior.
Alex Converse [Thu, 30 Apr 2015 19:52:36 +0000 (12:52 -0700)]
tx_skip: Avoid undefined shift behavior.

vp9_quantize_rect did illegal shifts but didn't use the results.
The shift |a << b| is unfortunately undefined if |a < 0|, but the
more verbose |a * (1 << b)| generates the same machine code.

Change-Id: I7ceac66fa20a700630cf8ed008949146b161dab4

10 years agoFix integer overflows in TX skipping
Alex Converse [Thu, 30 Apr 2015 18:24:25 +0000 (11:24 -0700)]
Fix integer overflows in TX skipping

Change-Id: Ic1fc0f1271065180cffcbd2906e8faac6d07d08d

10 years agoMerge "Consolidate common count updates" into nextgen
Debargha Mukherjee [Wed, 29 Apr 2015 22:08:25 +0000 (22:08 +0000)]
Merge "Consolidate common count updates" into nextgen

10 years agoConsolidate common count updates
Debargha Mukherjee [Tue, 28 Apr 2015 23:46:41 +0000 (16:46 -0700)]
Consolidate common count updates

Cleanup - does not have any change in RD performance.

Change-Id: Iaca9c7378b294bd8c780958f5e33e697690eebfa

10 years agoMerge "Add a necessary include file" into nextgen
Yaowu Xu [Tue, 28 Apr 2015 23:48:48 +0000 (23:48 +0000)]
Merge "Add a necessary include file" into nextgen

10 years agoAdd a necessary include file
Yaowu Xu [Tue, 28 Apr 2015 22:44:16 +0000 (15:44 -0700)]
Add a necessary include file

The include is necessary for --enable-coefficient-range-checking

Change-Id: I5cf7b2fca0ddd610815398b1e77f17df42f9785c

10 years agoMerge changes I33c72799,I3ee8974a,I38a42ed1,Iaad3dc3c into nextgen
Yaowu Xu [Tue, 28 Apr 2015 21:16:10 +0000 (21:16 +0000)]
Merge changes I33c72799,I3ee8974a,I38a42ed1,Iaad3dc3c into nextgen

* changes:
  usage.dox: fix doxygen warnings in 1.8.x
  Fix doxygen warning with usage.dox
  Remove obsolete doxygen tags
  Fix comments for doxygen

10 years agoMerge "palette: Add missing consts" into nextgen
Alex Converse [Tue, 28 Apr 2015 19:51:16 +0000 (19:51 +0000)]
Merge "palette: Add missing consts" into nextgen

10 years agousage.dox: fix doxygen warnings in 1.8.x
James Zern [Sat, 14 Mar 2015 01:49:03 +0000 (18:49 -0700)]
usage.dox: fix doxygen warnings in 1.8.x

use \li to denote list items with \if.

fixes the following likely visible in <1.8.3:
usage.dox: warning: Invalid list item found
usage.dox: warning: End of list marker found without any preceding list items

Change-Id: I33c72799edf9f8866596ac8f79247050b8c75681

10 years agoFix doxygen warning with usage.dox
Yaowu Xu [Thu, 15 Jan 2015 19:42:04 +0000 (11:42 -0800)]
Fix doxygen warning with usage.dox

Change-Id: I3ee8974a66f186fb0eb15b1078a3c7b9cbf5ec80

10 years agoRemove obsolete doxygen tags
Yaowu Xu [Thu, 15 Jan 2015 02:09:14 +0000 (18:09 -0800)]
Remove obsolete doxygen tags

Change-Id: I38a42ed1d0be4fbfce6c9f3f5d021055107933d7

10 years agoMerge "Refactor 4:4:4 palette selection." into nextgen
Alex Converse [Tue, 28 Apr 2015 19:07:40 +0000 (19:07 +0000)]
Merge "Refactor 4:4:4 palette selection." into nextgen

10 years agoFix comments for doxygen
Yaowu Xu [Tue, 13 Jan 2015 22:32:09 +0000 (14:32 -0800)]
Fix comments for doxygen

Change-Id: Iaad3dc3cdd25275939b475706eb7d136a5a10174

10 years agopalette: Add missing consts
Alex Converse [Tue, 28 Apr 2015 18:31:57 +0000 (11:31 -0700)]
palette: Add missing consts

Change-Id: I83a2e57dc5dbc328c7bfea421ffbaeb83b7ca3bd

10 years agoRefactor 4:4:4 palette selection.
Alex Converse [Tue, 28 Apr 2015 18:15:06 +0000 (11:15 -0700)]
Refactor 4:4:4 palette selection.

Move 444 palette selection out of vp9_rd_pick_intra_mode_sb and into
a subfunction.

Change-Id: Ib323b740318626e2a68cd3d106dbd27c8f4652a6

10 years agoUse uniform quantization settings for non-transform blocks
hui su [Fri, 17 Apr 2015 18:38:37 +0000 (11:38 -0700)]
Use uniform quantization settings for non-transform blocks

Do not treat first element (dc) differently.

on screen_content
tx-skip only: +16.4% (was +15.45%)

no significant impact on natrual videos

Change-Id: I79415a9e948ebbb4a69109311c10126d8a0b96ab

10 years agoFix bugs in palette and intrabc expt
hui su [Fri, 24 Apr 2015 21:01:31 +0000 (14:01 -0700)]
Fix bugs in palette and intrabc expt

palette expt: correctly update color buffer
intrabc expt: update zcoeff_blk so that residue coding will not
              be mistakenly skipped

Change-Id: I870f5b742c2ac394f4c871aa65e6591e293d8ef6

10 years agoReplace vp9_get_bit_depth with vp9_ceil_log2.
Alex Converse [Thu, 23 Apr 2015 17:26:57 +0000 (10:26 -0700)]
Replace vp9_get_bit_depth with vp9_ceil_log2.

The current name is confusing with regard to high bit depth buffers.

Change-Id: Ieacd55ec22c81bd2f013f2e3d73a095affc93689

10 years agoMerge "Some minor improvements in bilateral filter expt." into nextgen
Debargha Mukherjee [Thu, 23 Apr 2015 01:14:44 +0000 (01:14 +0000)]
Merge "Some minor improvements in bilateral filter expt." into nextgen

10 years agoSome minor improvements in bilateral filter expt.
Debargha Mukherjee [Tue, 21 Apr 2015 16:29:56 +0000 (09:29 -0700)]
Some minor improvements in bilateral filter expt.

Changes include:

* Uses double for RD cost computation to guard against overflow
for large resolution frames.
* Use previous frame's filter level to code the level better.
* Change precision of the filter parameters.
* Allow spatial variance for x and y to be different

Change-Id: I1669f65eb0ab1e8519962954c92d59e04f1277b7
derflr: +0.556% (a little up from before)

10 years agoModify scan order for non-transform coding blocks
hui su [Fri, 17 Apr 2015 00:39:31 +0000 (17:39 -0700)]
Modify scan order for non-transform coding blocks

Use raster scan order for non-transform blocks

+15.45% (+2.1%) on screen_content
no significant change on natural videos

Change-Id: I0e264cb69e8624540639302d131f7de9c31c3ba7

10 years agoRemove unused variable in new-quant expt
hui su [Mon, 20 Apr 2015 18:14:51 +0000 (11:14 -0700)]
Remove unused variable in new-quant expt

remove dequant_val_nuq in macroblock_plane

Change-Id: I4b4070ae2d01c2403c781433030204d6e95c3750

10 years agoMerge "Don't use old uv scores for NEWDV and cleanup mbmi saving." into nextgen
Alex Converse [Fri, 17 Apr 2015 19:47:23 +0000 (12:47 -0700)]
Merge "Don't use old uv scores for NEWDV and cleanup mbmi saving." into nextgen

10 years agoMerge "Add high bit depth support for tx-skip expt" into nextgen
hui su [Fri, 17 Apr 2015 18:37:39 +0000 (11:37 -0700)]
Merge "Add high bit depth support for tx-skip expt" into nextgen

10 years agoDon't use old uv scores for NEWDV and cleanup mbmi saving.
Alex Converse [Fri, 10 Apr 2015 22:29:55 +0000 (15:29 -0700)]
Don't use old uv scores for NEWDV and cleanup mbmi saving.

Change-Id: Ic0fae1b348ad7659e4a41db29d075ae5eb6cdc82

10 years agoMerge "Simplify bilateral filter search for speed" into nextgen
Debargha Mukherjee [Fri, 17 Apr 2015 01:58:03 +0000 (18:58 -0700)]
Merge "Simplify bilateral filter search for speed" into nextgen

10 years agoSimplify bilateral filter search for speed
Debargha Mukherjee [Wed, 15 Apr 2015 16:43:36 +0000 (09:43 -0700)]
Simplify bilateral filter search for speed

Adds an internal buffer in the encoder to store the deblocked
result to help speed up the search for the best bilateral filter.

Very small change in performance but a lot faster:
derflr: +0.518%

Change-Id: I5d37e016088e559c16317789cfb1c2f49334b2b9

10 years agoFix palette expt asan failure
hui su [Thu, 16 Apr 2015 18:18:58 +0000 (11:18 -0700)]
Fix palette expt asan failure

Account for 422 video format.

Change-Id: Ic5af661720fc5fa7142210d907dd25e1e79ff653

10 years agoAdd high bit depth support for tx-skip expt
hui su [Fri, 10 Apr 2015 18:25:09 +0000 (11:25 -0700)]
Add high bit depth support for tx-skip expt

+0.3% on 10-bit
+0.3% on 12-bit

With other high bit compatible experiments on 12-bit
+12.44% (+0.17) over 8-bit baseline

Change-Id: I40b4c382fa54ba4640d08d9d01950ea8c1200bc9

10 years agoFix a bug in tx_skip expt
hui su [Tue, 14 Apr 2015 18:25:55 +0000 (11:25 -0700)]
Fix a bug in tx_skip expt

tx_skip is not enabled for sub8x8 blocks.

Change-Id: I3797238735f85fb2bd07b50ca2845611b198bff6

10 years agoMerge "refactoring in tx_skip experiment" into nextgen
hui su [Tue, 14 Apr 2015 15:12:08 +0000 (08:12 -0700)]
Merge "refactoring in tx_skip experiment" into nextgen

10 years agorefactoring in tx_skip experiment
hui su [Thu, 9 Apr 2015 16:30:18 +0000 (09:30 -0700)]
refactoring in tx_skip experiment

simplify code logic

Change-Id: Ifafc712f3f85abafadb429a04e295cf8cbb185d2

10 years agoMerge "High bit-depth support for wedge partition expt" into nextgen
Debargha Mukherjee [Mon, 13 Apr 2015 17:09:51 +0000 (10:09 -0700)]
Merge "High bit-depth support for wedge partition expt" into nextgen

10 years agoHigh bit-depth support for wedge partition expt
Debargha Mukherjee [Sat, 11 Apr 2015 00:45:02 +0000 (17:45 -0700)]
High bit-depth support for wedge partition expt

Change-Id: Idbd27e66d4f4a7953f888137d5752856215a6760

10 years agoFix a mismatch bug
hui su [Fri, 10 Apr 2015 23:06:38 +0000 (16:06 -0700)]
Fix a mismatch bug

In the tx_skip experiment, dpcm is not used for 64x64 blocks.

Change-Id: Iafbed3b5e411954b80e898f10def3757f2cf44c1

10 years agoMerge "An experiment introducing a bilateral loop filter" into nextgen
Debargha Mukherjee [Fri, 10 Apr 2015 23:46:16 +0000 (16:46 -0700)]
Merge "An experiment introducing a bilateral loop filter" into nextgen

10 years agoAn experiment introducing a bilateral loop filter
Debargha Mukherjee [Tue, 31 Mar 2015 23:49:38 +0000 (16:49 -0700)]
An experiment introducing a bilateral loop filter

Adds a framework to incorporate a parameterized loop
postfilter in the coding loop after the application of the
standard deblocking loop filter.

The first version uses a straight bilateral filter
where the parameters conveyed are just spatial and
intensity gaussian variances.

Results on derflr:
+0.523% (only with this experiment)
+6.714% (with all expts other than intrabc)

Change-Id: I20d47285b4d25b8c6386ff8af2a75ff88ac2b69b

10 years agotx-skip experiment: improve entropy coding of coeff tokens
hui su [Mon, 30 Mar 2015 23:36:15 +0000 (16:36 -0700)]
tx-skip experiment: improve entropy coding of coeff tokens

This patch allows the prediction residues of tx-skipped blocks
to use probs that are different from regular transfrom
coefficients for token entropy coding. Prediction residues are
assumed as in band 6.

The initial value of probs is obtained with stats from limited
tests. The statistic model for constrained token nodes has not
been optimized. The probs for token extra bits have not been
optimized. These can be future work.

Certain coding improvment is observed:
derflr with all experiments:                +6.26%  (+0.10%)
screen_content with palette:               +22.48%  (+1.28%)

Change-Id: I1c0d78178ee9f3655febb6f30cdaef8ee9f8e3cc

10 years agoPreparation for end to end test turn on
Debargha Mukherjee [Fri, 3 Apr 2015 23:44:40 +0000 (16:44 -0700)]
Preparation for end to end test turn on

Change-Id: Ibc53bf50c8164b413749aaa8baa08e2f6e928e1b

10 years agoAdd an intra block copy mode (NEWDV).
Alex Converse [Mon, 1 Dec 2014 22:30:22 +0000 (14:30 -0800)]
Add an intra block copy mode (NEWDV).

Change-Id: I82b261c54ac9db33706bb057613dcbe66fc71387

10 years agoClean the COMPOUND_MODES mv initialization for sub8x8
Zoe Liu [Thu, 2 Apr 2015 22:12:58 +0000 (15:12 -0700)]
Clean the COMPOUND_MODES mv initialization for sub8x8

Change-Id: I04f4ad41c002c761d55093432d6c437c25e5bddd

10 years agoAdd a new PREDICTION mode using NEARMV as ref mv
Zoe Liu [Tue, 17 Mar 2015 23:48:48 +0000 (16:48 -0700)]
Add a new PREDICTION mode using NEARMV as ref mv

This experiment, referred as NEWMVREF, also merged with NEWMVREF_SUB8X8
and the latter one has been removed. Runborgs results show that:

(1) Turning on this experiment only, compared against the base:
derflf: Average PSNR 0.40%; Overall PSNR 0.40%; SSIM 0.35%
(2) Turning on all the experiments including this feature, compared against
that without this feature, on the highbitdepth case using 12-bit:
derflf: Average PSNR 0.33%; Overall PSNR 0.32%; SSIM 0.30%.

Now for highbitdepth using 12-bit, compared against base:
derflf: Average PSNR 11.12%; Overall PSNR 11.07%; SSIM 20.27%.

Change-Id: Ie61dbfd5a19b8652920d2c602201a25a018a87a6

10 years agopalette experiment: remove run-length coding
hui su [Fri, 27 Mar 2015 21:49:58 +0000 (14:49 -0700)]
palette experiment:  remove run-length coding

Change-Id: I1e52475d0179cf019841d09a53b3b7fc53c79336

10 years agoMerge "Palette experiment: encode color indices based on context" into nextgen
hui su [Fri, 27 Mar 2015 01:34:43 +0000 (18:34 -0700)]
Merge "Palette experiment: encode color indices based on context" into nextgen

10 years agoMerge "Palette experiment: adaptly update probs" into nextgen
hui su [Fri, 27 Mar 2015 01:34:28 +0000 (18:34 -0700)]
Merge "Palette experiment: adaptly update probs" into nextgen

10 years agoPalette experiment: encode color indices based on context
hui su [Thu, 19 Mar 2015 22:55:29 +0000 (15:55 -0700)]
Palette experiment: encode color indices based on context

The basic idea is to use a pixel’s neighboring colors as
context to predict its own color. Up to 4 neighbors are
considered here: left, left-above, above, right-above.
To reduce the number of contexts,  the combination of any
4 (or less) colors are mapped to a reduced number of
patterns. For example, 1111, 2222, 3333, … , can be mapped
to the same pattern: AAAA. SImilarly, 1122, 1133, 2233, …,
can be mapped to the pattern AABB. In this way, the total
number of color contexts is reduced to 16.

This almost doubles the gain of palette coding on screen
content videos.

on screen_content
--enable-palette                                  +14.2%
--enable-palette --enable-tx-skip                 +21.2%

on derflr
--enable-palette                                  +0.12%
with all other experiments                        +6.16%

Change-Id: I560306dae216f2ac11a9214968c2ad2319fa1718

10 years agoMerge "Add palette coding mode for inter frames" into nextgen
Debargha Mukherjee [Thu, 26 Mar 2015 18:59:36 +0000 (11:59 -0700)]
Merge "Add palette coding mode for inter frames" into nextgen

10 years agoPalette experiment: adaptly update probs
hui su [Sat, 7 Mar 2015 02:08:50 +0000 (18:08 -0800)]
Palette experiment: adaptly update probs

Also make changes to transmit palette-enabled flag using
neighbor blocks as context.

on screen_content
--enable-palette                            +7.35%

on derflr
with all other experiments                  +6.05%

Change-Id: Id6c2f726d21913d54a3f86ecfea474a4044c27f6

10 years agoCleaned the code in handle_inter_mode
Zoe Liu [Mon, 23 Mar 2015 22:33:25 +0000 (15:33 -0700)]
Cleaned the code in handle_inter_mode

borgs show consistent results as before this patch

Change-Id: I3d21623cb03ea169a031328e9dde9c26ba1bd016

10 years agoAdd palette coding mode for inter frames
hui su [Wed, 25 Feb 2015 18:00:40 +0000 (10:00 -0800)]
Add palette coding mode for inter frames

on screen_content
--enable-palette                                    +6.74%

on derflr
with all other experiments                          +6.02%
(--enable-supertx --enable-copy-mode
 --enable-ext-tx --enable-filterintra
 --enable-tx64x64 --enable-tx-skip
 --enable-interintra --enable-wedge-partition
 --enable-compound-modes --enable-new-quant
 --enable-palette)

Change-Id: Ib85049b4c3fcf52bf95efbc9d6aecf53d53ca1a3

10 years agoMerge "Make interintra experiment work with highbitdepth" into nextgen
Deb Mukherjee [Mon, 23 Mar 2015 05:48:56 +0000 (22:48 -0700)]
Merge "Make interintra experiment work with highbitdepth" into nextgen

10 years agoMake interintra experiment work with highbitdepth
Deb Mukherjee [Wed, 18 Mar 2015 04:32:21 +0000 (21:32 -0700)]
Make interintra experiment work with highbitdepth

Also includes some adjustments to the algorithm.
All stats look good.

Change-Id: I824ef8ecf25b34f3feb358623d14fe375c3e4eb7

10 years agoSome build fixes with highbitdepth and new quant
Deb Mukherjee [Fri, 20 Mar 2015 03:32:07 +0000 (20:32 -0700)]
Some build fixes with highbitdepth and new quant

Highbitdepth performance about the same as 8-bit.

Change-Id: If737962d8588dd190083edae4383b731f9d22873

10 years agoNon-uniform quantization experiment
Deb Mukherjee [Wed, 4 Mar 2015 22:04:11 +0000 (14:04 -0800)]
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

10 years agointerintra: wedge: Get the correct wedge params.
Alex Converse [Tue, 17 Mar 2015 17:49:22 +0000 (10:49 -0700)]
interintra: wedge: Get the correct wedge params.

Fixes an asan issue.

Change-Id: I671ffc382c77c2b38673e0b148f54e7bce2ce9c2

10 years agopalette: Fix an illegal read
Alex Converse [Mon, 16 Mar 2015 23:47:38 +0000 (16:47 -0700)]
palette: Fix an illegal read

Change-Id: I71649f0a85d98b96efd08c8a9e3ee7372fd7d327

10 years agoMerge "Misc changes to support high-bitdepth with supertx" into nextgen
Deb Mukherjee [Fri, 13 Mar 2015 00:42:20 +0000 (17:42 -0700)]
Merge "Misc changes to support high-bitdepth with supertx" into nextgen

10 years agoMisc changes to support high-bitdepth with supertx
Deb Mukherjee [Tue, 10 Mar 2015 19:46:52 +0000 (12:46 -0700)]
Misc changes to support high-bitdepth with supertx

Change-Id: I0331646d1c55deb6e4631e64bd6b092fb892a43e