Граф коммитов

400 Коммитов

Автор SHA1 Сообщение Дата
Deng 9abdec64ba simp-mv-pred integration with ref-mv to save memory bandwidth and reduce
the line buffer.

As compared to ref-mv, the results of this integration are:
low-delay BDR gain: 0.03%
High-delay BDR gain: 0.01%
memory/memory bandwidth saving: 40%
local memory/gate count saving: 20%

Change-Id: Ic4006e041fc58ede411da83d0d730c464ebe1749
2016-10-29 09:20:51 -07:00
Alex Converse f2753c34b6 Add ec_multisymbol for common daala_ec and rans code
The new ec_multisymbol experiment supersedes the rans experiment and is
used for multisymbol features that can be backed by either daala_ec or
rans.

This experiment is automatically enabled by ec_adapt and will try to
enable daala_ec or ans (in that order).

Change-Id: Ie75b4002b7a9d7f5f7b4d130c1aacb3dbe97e54f
2016-10-20 16:12:32 +00:00
Yaowu Xu 8d09947f04 configure: remove misc-fixes
Since all misc-fixes are now merged.

Change-Id: I5ddfa30f28b7685c740d6c69cd487cbbd905188c
2016-10-12 00:43:55 +00:00
Alex Converse aa34609e6f Handle entropy coder experiment dependencies
Change-Id: I854c53d9379f820b5a78fcb53f9ef09bc6f9d9e7
2016-10-12 00:43:19 +00:00
Thomas b0112dfd9b Add EC_ADAPT experiment for symbol-adaptive entropy coding.
This experiment performs symbol-by-symbol statistics
adaptation for non-binary symbols. It requires DAALA_EC or
RANS and ANS to be enabled. The adaptation is currently
based on a simple recursive filter and is taken from
Daala. It has an adaptation rate dependent on alphabet size,
taken from Daala. It applies wherever non-binary symbols
are encoded using Cumulative Probability Functions rather
than trees.

Where symbols are adapted, forward updates in the compressed
header are removed.

In the case of RANS coefficient token values are adapted,
with the exception of the zero token which remains a
binary symbol. In the case of DAALA_EC other values
such as inter and intra modes are adapted as CDFs are
provided in those cases.

The experiment is configured with:

./configure --enable-experimental --enable-daala-ec --enable-ec-adapt

or

./configure --enable-experimental --enable-ans --enable-rans \
    --enable-ec-adapt

EC_ADAPT is not currently compatible with tiles.

BDR results on Objective-1-fast give a small loss:

PSNR YCbCr:      0.51%      0.49%      0.48%
PSNRHVS:      0.50%
SSIM:      0.50%
MSSSIM:      0.51%
CIEDE2000:      0.50%

Change-Id: I3888718e42616f3fd87144de7f125228446ac984
2016-10-04 17:23:02 +01:00
James Zern c834d01969 configure: remove old visual studio support (<2010)
BUG=b/29583530

Change-Id: If08ce6ca352f377ac4db6b9b1909b507bba6d872
(cherry picked from commit 078dff72ca7bff079cb3c56d98c588c6ea6d2814)
(cherry picked from commit 046226376533b610ddc700f14409f195aa6abd51)
2016-10-04 02:37:28 +00:00
Thomas Davies ce12003d60 Encode and decode multiple tile groups.
A tile group is a set of tiles in scan order.

Each tile group has a version of uncompressed and compressed headers,
identical apart from tile group parameters.
Encoding probability updates takes account of the number of
headers to control overheads.

The decoder supports arbitrary numbers of tile groups with
arbitrary number of tiles. The number of tiles in a TG is
signalled in the uncompressed header for that TG.

The encoder currently only supports a fixed number
of TGs (3, when error resilient mode is on) of equal size
(except possibly for the last one).

The average BDR performnce with 3 tile groups versus
anchor with error resilient mode and up to 16 tiles is:

NR YCbCr:      3.02%      3.04%      3.05%
PSNRHVS:      3.09%
SSIM:      3.06%
MSSSIM:      3.05%
CIEDE2000:      3.04%

Change-Id: I9b97c5ed733103b9160a3a5d4370de5322c00c0b
2016-09-23 20:07:43 +00:00
Angie Chiang 7a3ceab09a Add bitstream debug tool
This is a debug tool used to detect bitstream error. On encoder side, it
pushes each bit and probability into a queue before the bit is written into
the Arithmetic coder. On decoder side, whenever a bit is read out from the
Arithmetic coder, it pops out the reference bit and probability from the
queue as well. If the two results do not match, this debug tool will report
an error.  This tool can be used to pin down the bitstream error precisely.
By combining gdb's backtrace method, we can detect which module causes the
bitstream error.

This tool is moved from following two CLs of nextgenv2
https://chromium-review.googlesource.com/#/c/366432/
https://chromium-review.googlesource.com/#/c/380300/

Change-Id: Iec6d4c2e3851b8ac1db35776fd7a216a9230a983
2016-09-22 09:13:37 -07:00
Angie Chiang fe0f8c304d Add adapt_scan experimental flag
Change-Id: Id2fd7fcb2240fbcf9384b3c9b2be5fe15fd1945f
2016-09-19 13:38:32 -07:00
Arild Fuldseth 0fe65112f9 Support for delta-q at superblock level
Change-Id: I4128af44776d1f361bddc1fdffb75ed2224dbfa5
2016-09-15 12:56:22 +00:00
Arild Fuldseth f761795853 7-bit interpolation filters
Purpose:
-Reduce dynamic range of interpolation filter coefficents from 8
bits to 7 bits.
-Inner product for 8-bit input data can be stored in a 16-bit signed
integer.

Impact on compression efficiency:
-Marginal improvement, typically less than 0.5% BDR.

Change-Id: I58d1408307ae7d2a6f9de8965c5877b258703199
2016-09-13 16:20:59 +00:00
Michael Bebenita e6b129446b Bit accounting.
This patch adds bit account infrastructure to the bit reader API.
When configured with --enable-accounting, every bit reader API
function records the number of bits necessary to decoding a symbol.
Accounting symbol entries are collected in global accounting data
structure, that can be used to understand exactly where bits are
spent (http://aomanalyzer.org). The data structure is cleared and
reused each frame to reduce memory usage. When configured without
--enable-accounting, bit accounting does not incur any runtime
overhead.

All aom_read_xxx functions now have an additional string parameter
that specifies the symbol name. By default, the ACCT_STR macro is
used (which expands to __func__). For more precise accounting,
these should be replaced with more descriptive names.

Change-Id: Ia2e1343cb842c9391b12b77272587dfbe307a56d
2016-09-07 17:12:09 +00:00
Arild Fuldseth b87951a66a Always send frame size explicitly when error_resilient_mode=1.
Purpose is to allow parsing of bitstream after a packet loss.

Change-Id: I7d1c010a465aa18914762cc1a3e61db377304c08
2016-09-07 11:52:49 +00:00
Urvang Joshi 764d1266a6 Move palette code from libvpx/nextgenv2 to aomedia.
Palette code originally by huisu@. Gives 11.68% BDRate improvement on
screen content set.

Last 7 small speedup patches from me, giving 10% speedup overall for
screen content set.

From aomedia/master:
Revert 57fa626 : Remove color_index_map

From libvpx/nextgenv2:
c93e5cc : Bring palette back to nextgenv2
827e1b3 : Add test for screen content coding tools in end to end test
78b0bd0 : Complete (mostly) migration of palette mode
8a128c2 : Fixes for Palette mode
4ab0091 : Palette mode: record selected transform type
cbb8be7 : Set block size upper bound for Palette mode
bb0e692 : Convert palette from double to float.
a0a23b7 : faster code: replace nested for loops by memcpy().
016a5da : Palette code: simpler and faster duplicate removal
d000020 : Palette code cleanup
6dde801 : Use built-in qsort(); create remove_dup() method.
f746c10 : Handle centroid rounding inside palette.c itself.
d68c7b6 : Palette: count Y colors only for screen content.
f1906e9 : Palette code: remove the use of same if condition twice.

Locally made sure all combinations of "--enable-ext-intra" and/or
"--enable-palette" and/or "--enable-aom-highbitdepth" build OK.

P.S. Note for future reference:
EXT_INTRA experiment has only been moved *partially* to aomedia at this
point. If and when the rest is moved to aomedia, EXT_INTRA + PALETTE
combo needs to be moved to aomedia as well.

Change-Id: I8826780014ec8a88281e56c8258b7c966121b46f
2016-08-26 14:45:53 -07:00
Urvang Joshi 4790a69faa Add compiler warning flag -Wextra and fix related warnings.
Note: some of these warnings are enabled by a combination of -Wunused
(added earlier) and -Wextra.

Change-Id: I322a1366bd4fd6c0dec9e758c2d5e88e003b1cbf
2016-08-22 23:32:56 +00:00
Jingning Han 5592b699e2 Add cb4x4 experimental flag
Experiment on coding block at resolution of 4x4 block.

Change-Id: I6aa201038f00c590747d800edb0a3e76ab1a51e8
2016-08-19 10:11:12 -07:00
Urvang Joshi 953f086c33 Add complier warning -wunused and related fixes.
In particular, match use of -Wno-unused-function to that in libvpx
master branch.

Change-Id: I027a4f2a540af5a304b358ddbf293965b4211b9e
2016-08-16 17:17:47 -07:00
Urvang Joshi b96cbc44fb Fix warnings reported by -Wshadow: Part6: main directory
Now that all warnings are taken care of, add warning flag -Wshadow to
configure.

Note: Enabling this flag for C++ generates some useless warnings about
some function parameters shadowing class member function names. So, only
enabling this warning for C code.

Change-Id: I53ffb763483fec675a3358c5e64a737a03b93eb1
2016-08-09 22:47:57 +00:00
Alex Converse 362888b911 Use rANS to code constrained token set.
For now this is in its own experiment for benchmarking purposes, but it
will eventually be folded into the main ANS experiment.

Change-Id: Icdb54b6ca3c0191ba717d6d10aaaffb11e2bebea
2016-07-18 11:49:58 -07:00
Urvang Joshi c27fccccdf Code cleanup: mainly rd_pick_partition and methods called from there.
- Const correctness
- Refactoring
- Make variables local when possible
etc
- Remove -Wcast-qual to allow explicitly casting away const.

Change-Id: I6ecb7d345162dc08ccdd17095b0800fb3a00cf2f
2016-07-13 08:42:29 -07:00
Urvang Joshi ebeb1155d4 Add compiler flag -Wsign-compare
Also, fix the warnings generated by this flag.

Change-Id: I1dc6e61caa5d56af4a55b6692ab620bb3144652a
2016-07-11 09:43:19 -07:00
Ryan Lei 42ff3881ac check in the final code implementation for parallel deblocking proposal from Intel. code changes have been reviewed and approved.
Change-Id: I4a3cdb939b7b96a3aa27f6a00da7a0e73222f3f3
2016-07-06 18:02:07 -07:00
Jingning Han 76fb5dffc7 Add sub8x8_mc experimental flag
Change-Id: Ifcc329df240c0771172180933a6180b21fd31abe
2016-06-23 09:45:20 -07:00
Sarah Parker 2ee5260505 Add EXT_TX experiment flag
Change-Id: I285140c335c0044a9dc4219a9f58dbd1f8cf17ce
2016-06-22 00:49:22 +00:00
Nathan E. Egge 59f7dd6494 Add Daala entropy coder.
Change-Id: I2849a50163268d58cc5d80aacfec1fd02299ca43
2016-06-20 15:21:19 -04:00
hui su de383d081b Add ext-intra experiment
compression improvement:
lowres  0.54%
midres  1.00%

Average encoding time increase is about 5%.

Change-Id: I397afcb59d56e39efe4262b444205ed53f53b518
2016-06-15 16:57:59 -07:00
Alex Converse 0031508573 Add ans experiment.
Change-Id: Ib3a3b69d0fa683813b2f2dcf8ca42785863c293d
2016-06-15 10:40:32 -07:00
Debargha Mukherjee d2202a103c Add experiment tags for ext_compound and supertx
supertx: super transform
ext_compound: various prediciton modes that combine multiple
              inter or intra predictors

Change-Id: I82f50f6647dd2d79e33be1461a6e5a21fcd34167
2016-06-15 07:31:08 -07:00
Zoe Liu 6d4fdeb9c4 Add the experiment flag of EXT_REFS
This experiment will add 3 more reference frames and support
bi-predictive frames.

Change-Id: I76ce9b25f2fa4c47c9cef906ee6aab5869337f2f
2016-06-14 16:02:10 -07:00
Yue Chen 6d0152ea1a Add MOTION_VAR experiment flag
Will include variantions of motion compensation, including overlapped
block prediction and possibly warped motion.

Change-Id: Ibe393828cf01e8cc31100eb464bf4800b6a4443e
2016-06-10 22:50:16 +00:00
Angie Chiang fa0076a7b6 Add ext_interp experiment flag
Change-Id: I2b71be802ee7aa5b6130b9f66ace987878577ada
2016-06-08 10:56:54 -07:00
Adrian Grange 0defd8f261 Changed "WebM" to "AOMedia" & "webm" to "aomedia"
Change-Id: I5e1a9b79ecc50ea9e7eea2746f40ba872d7d80e4
2016-03-29 23:04:48 +00:00
Jingning Han 2524caeeb6 Add ref-mv experimental flag
Change-Id: Ifbb899b36ffccd461367806dc0a3cb1ed3a41cbe
2016-03-29 11:24:25 -07:00
Yaowu Xu 01dee0bba5 Change "vp10" to "av1" in source code
Change-Id: Ifd0d08b97538dcc04227eceb6fb087224c760c59
2016-03-25 12:43:01 -07:00
Adrian Grange cebe6f0cf5 Convert "vpx" to "aom"
Change the name of source files to replace "vpx" with "aom".
Change occurences of "vpx" in the code to "aom".

Change-Id: I002c0eaa2c350cf1a895bf01bea5788c61328027
2016-03-25 12:25:01 -07:00
Yaowu Xu cfea7dd766 vp10/ -> av1/
Change-Id: Ia055d03656ad1580447eced8687949583fdf4089
2016-03-22 09:53:27 -07:00
Yaowu Xu bf4202ed50 Rename vpx to aom
Change-Id: Ibc7933fba85feeb30ef9b14b302d932aff19f54e
2016-03-22 08:52:19 -07:00
Jean-Marc Valin 51b7a99807 Adds the Daala deringing filter as experimental
The deringing filter documentation is in:
J.-M. Valin, The Daala Directional Deringing Filter, arXiv:1602.05975 [cs.MM],
2016.
http://arxiv.org/pdf/1602.05975.pdf

ntt-short1 results:
          MEDIUM (%) HIGH (%)
    PSNR  -2.488088 -2.003235
 PSNRHVS  -1.588932 -0.797850
    SSIM  -1.522767 -1.287861
FASTSSIM   4.307822  3.983496

subset1 improvement is around 2-3% on PSNR (but the rate is mostly outside
the AWCY testing range)

Change-Id: Ic02344ce9faa509f5c3a50a0fb7a7b84a7977e72
2016-02-25 15:23:05 -05:00
Steinar Midtskogen 95a89994cf Enable CLPF
This commit adds the constrained low-pass filter. For details, please
see document here: https://goo.gl/VUzEED

Change-Id: Idc21d62052071e6c939c91c0cc8246eed768e6b0
2016-02-24 19:09:02 -08:00
Thomas Davies 73bae50901 Add quantisation matrices and selection functions.
Change-Id: Ic7a57957ad47e78300e73b85fa26e56b594a3a90
2016-02-24 15:39:05 +00:00
Yaowu Xu f32a0f5825 Remove vp9 specific configure options 2016-01-21 14:49:40 -08:00
Yaowu Xu 6435821697 Remove postproc and postproc-visualizer 2016-01-21 14:41:27 -08:00
Yaowu Xu 0738390c19 Remove vp9_temporal denoiser
Change-Id: Id1a12e1aa97e1baa68a640d1233bf8ab01058d89
2016-01-20 17:47:06 -08:00
Yaowu Xu b89861a463 Remove vp9-postproc from configure
Change-Id: I601464f0b74183daa80730856dfbf33ddfce2cfe
2016-01-20 17:38:01 -08:00
Yaowu Xu 3246fc04fb vp9->vpx in --enable-vp9-highbitdepth
Also changed all related macros and tests

Change-Id: I5269578c0f716fd391111a43932f856778494d29
2016-01-20 16:14:22 -08:00
Yaowu Xu 67e64cbebf Enable VP10 by default
Since VP10 is now the only codec supported.

Change-Id: I3226dceacb87f422f87c9f4af06c73a254143436
2016-01-19 14:23:14 -08:00
Jim Bankoski f0d007abdc proposed-aom : remove vp8, vp9 from directory configure and vpx
Change-Id: Ibb9192913f235ace2f6b8ef3c0eeabc3fd4cab11
2016-01-19 14:12:00 -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
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 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