daala.git
3 years agoRemoves more unneeded code exp_paint_deringing2
Jean-Marc Valin [Tue, 9 Dec 2014 19:53:05 +0000 (14:53 -0500)]
Removes more unneeded code

3 years agoRemoves code that's not used for deringing
Jean-Marc Valin [Tue, 9 Dec 2014 19:46:50 +0000 (14:46 -0500)]
Removes code that's not used for deringing

3 years agoMerge remote-tracking branch 'origin/master' into exp_paint_deringing2
Jean-Marc Valin [Tue, 9 Dec 2014 19:18:44 +0000 (14:18 -0500)]
Merge remote-tracking branch 'origin/master' into exp_paint_deringing2

Conflicts:
Makefile.am
src/encode.c
src/state.c
src/state.h

3 years agoautotools: fix make distcheck
Tristan Matthews [Mon, 8 Dec 2014 18:44:50 +0000 (13:44 -0500)]
autotools: fix make distcheck

Regression from 8a20bea6e881a747743d4e6f6604a52e6915dd4c

3 years agoCorrect typo in previous commit.
Jack Moffitt [Mon, 8 Dec 2014 17:32:07 +0000 (10:32 -0700)]
Correct typo in previous commit.

3 years agoDon't check corner level 3 MVs.
Jack Moffitt [Sat, 6 Dec 2014 19:20:17 +0000 (12:20 -0700)]
Don't check corner level 3 MVs.

This bug never triggered since the encoder is careful to set these
corner level 3 MV flags to invalid. We were erroneously looking at them
even though they were always invalid and would have coded a tristate and
perhaps peeked outside the grid to do so.

Spotted by Tim during review of https://review.xiph.org/451/

3 years agoScripts to run a randomized comparison test.
Timothy B. Terriberry [Wed, 30 Apr 2014 23:04:02 +0000 (16:04 -0700)]
Scripts to run a randomized comparison test.

This is very rough initial work.
The goal is to be able to test multiple versions of the same image
 against a reference, and randomize the order the images are
 presented as well as the order each version is presented.
These scripts produce a bare-bones webpage and a set of numbered
 images in a directory which can be tarred up and distributed, along
 with a key for descrambling the numbers, and a script that can
 process rankings against the key to give unscrambled totals.

There is currently no means to enter the test results in the web page.
We should probably be looking at quality measured on some scale
 instead of just rankings.
There is currently no way to declare a tie.
The page itself should probably be split into multiple pages (one per
 set of images) with keybindings for easy navigation.

3 years agoAdd AVX2, SSE2, and SSE4.1 8x8 DCT implementation
Andreas Gal [Wed, 3 Sep 2014 20:32:32 +0000 (13:32 -0700)]
Add AVX2, SSE2, and SSE4.1 8x8 DCT implementation

3 years agoJointly signalling whether each of the directions should be skipped
Jean-Marc Valin [Fri, 28 Nov 2014 03:23:32 +0000 (22:23 -0500)]
Jointly signalling whether each of the directions should be skipped

subset1:
           RATE (%) DSNR (dB)
    PSNR -0.0609499 0.00364128
 PSNRHVS -0.0845392 0.00576046
    SSIM -0.0620935 0.00300164
FASTSSIM -0.0871825 0.00281497

video1-short:
           RATE (%)  DSNR (dB)
    PSNR -0.02604  0.00133
 PSNRHVS -0.02885  0.00214
    SSIM -0.00334  0.00015
FASTSSIM 0.02953  -0.00168

3 years agofixes some comments
Jean-Marc Valin [Tue, 25 Nov 2014 06:41:34 +0000 (01:41 -0500)]
fixes some comments

3 years agoMoves pvq.c functions to encoder/decoder-specific files
Jean-Marc Valin [Tue, 25 Nov 2014 06:30:53 +0000 (01:30 -0500)]
Moves pvq.c functions to encoder/decoder-specific files

No change to the functions themselves

3 years agoMore simplifications to pvq_synthesis_partial().
Jean-Marc Valin [Sat, 22 Nov 2014 06:19:15 +0000 (01:19 -0500)]
More simplifications to pvq_synthesis_partial().

Again, not bit-exact, but equivalent.

3 years agoMore PVQ cleanup.
Jean-Marc Valin [Sat, 22 Nov 2014 05:37:36 +0000 (00:37 -0500)]
More PVQ cleanup.

Folds quality scaling directly inside od_gain_compand() and od_gain_expand().
Not bit-exact, but equivalent.

3 years agoconfigure: only require libpng when needed
Tristan Matthews [Thu, 27 Nov 2014 02:05:21 +0000 (21:05 -0500)]
configure: only require libpng when needed

3 years agoReducing the use of pow() by optmizing the beta=1 and beta=1.5 cases
Jean-Marc Valin [Fri, 21 Nov 2014 17:45:30 +0000 (12:45 -0500)]
Reducing the use of pow() by optmizing the beta=1 and beta=1.5 cases

Not bit-exact, but equivalent.

3 years agoUse special cases for "copy zero" and "copy reference"
Jean-Marc Valin [Fri, 21 Nov 2014 16:35:05 +0000 (11:35 -0500)]
Use special cases for "copy zero" and "copy reference"

This is done in the same way on both the encoder and decoder.
Does not change the output.

3 years agoMake rd_collect_x256.sh use the same parameters as AWCY.
Thomas Daede [Thu, 20 Nov 2014 19:26:25 +0000 (13:26 -0600)]
Make rd_collect_x256.sh use the same parameters as AWCY.

3 years agoRDO on last two pulses
Jean-Marc Valin [Thu, 30 Oct 2014 18:37:25 +0000 (14:37 -0400)]
RDO on last two pulses

subset1 results:
    PSNR -0.484764 0.0274871
 PSNRHVS -0.845353 0.0602
    SSIM -0.44044 0.0196383
FASTSSIM -0.36271 0.0119394

video1-short results:
    PSNR -0.35108  0.01798
 PSNRHVS -1.04906  0.07827
    SSIM -0.41128  0.01870
FASTSSIM -0.84908  0.04856

3 years agoAdding some RDO cost to using the H/V predictor
Jean-Marc Valin [Mon, 17 Nov 2014 22:21:01 +0000 (17:21 -0500)]
Adding some RDO cost to using the H/V predictor

subset1:
           RATE (%) DSNR (dB)
    PSNR -0.295475 0.0168111
 PSNRHVS -0.312016 0.0215276
    SSIM -0.2597 0.0118447
FASTSSIM -0.179223 0.00568647

3 years agoSimplifying IIR averaging as requested in review 511
Jean-Marc Valin [Mon, 17 Nov 2014 02:54:12 +0000 (21:54 -0500)]
Simplifying IIR averaging as requested in review 511

Rounding is slightly different so the bit-stream isn't fully compatible.
That being said, I got no desync over an entire image.

3 years agoSplitting the joing gain/theta cdf into luma and chromas
Jean-Marc Valin [Mon, 17 Nov 2014 02:21:42 +0000 (21:21 -0500)]
Splitting the joing gain/theta cdf into luma and chromas

3 years agoMerge branch 'remove_intra2'
Jean-Marc Valin [Fri, 14 Nov 2014 01:51:20 +0000 (20:51 -0500)]
Merge branch 'remove_intra2'

Conflicts:
src/intra.c

3 years agoTunes CfL for 4x4 blocks and compensate for TF scaling
Jean-Marc Valin [Wed, 29 Oct 2014 17:26:10 +0000 (13:26 -0400)]
Tunes CfL for 4x4 blocks and compensate for TF scaling

subset1 results
luma:
    PSNR -0.134846 0.00708469
 PSNRHVS -0.0827634 0.00606356
    SSIM -0.132282 0.00536598
FASTSSIM -0.0761702 0.00245465
Cb:
    PSNR -0.984953 0.0338204
 PSNRHVS -0.322431 0.015904
    SSIM -1.00691 0.0268581
FASTSSIM -0.594378 0.0124368
Cr:
    PSNR -0.496393 0.0232284
 PSNRHVS -0.20442 0.0117632
    SSIM -0.577023 0.0201109
FASTSSIM -0.608689 0.01373

3 years agofixes for issue 512
Jean-Marc Valin [Thu, 13 Nov 2014 20:17:03 +0000 (15:17 -0500)]
fixes for issue 512

3 years agoDefining skip as theta=-1 for keyframes since it's much more common
Jean-Marc Valin [Wed, 12 Nov 2014 23:24:28 +0000 (18:24 -0500)]
Defining skip as theta=-1 for keyframes since it's much more common

subset1:
           RATE (%) DSNR (dB)
    PSNR -0.375649 0.0213739
 PSNRHVS -0.433576 0.0292169
    SSIM -0.3784 0.0173524
FASTSSIM -0.446371 0.0144125

video1-short:
           RATE (%)  DSNR (dB)
    PSNR -0.01509  0.00077
 PSNRHVS -0.01745  0.00129
    SSIM -0.01507  0.00068
FASTSSIM -0.01611  0.00092

3 years agoImplements skip_rest flag on the first band
Jean-Marc Valin [Wed, 12 Nov 2014 01:15:02 +0000 (20:15 -0500)]
Implements skip_rest flag on the first band

Reduces the total number of symbols we have to code

video1-short:
           RATE (%)  DSNR (dB)
    PSNR -0.08130  0.00415
 PSNRHVS -0.07577  0.00561
    SSIM -0.06396  0.00291
FASTSSIM -0.12767  0.00727

subset1:
           RATE (%) DSNR (dB)
    PSNR 0.0163635 -0.000926524
 PSNRHVS 0.0184024 -0.00105508
    SSIM 0.0174851 -0.000821658
FASTSSIM 0.0242243 -0.000776809

3 years agoUsing joint noref/gain/theta coding for keyframes too
Jean-Marc Valin [Fri, 7 Nov 2014 02:57:15 +0000 (21:57 -0500)]
Using joint noref/gain/theta coding for keyframes too

subset1 results:
           RATE (%) DSNR (dB)
    PSNR -0.481762 0.0305003
 PSNRHVS -0.743942 0.0449025
    SSIM -0.56423 0.0312397
FASTSSIM -1.25077 0.0409497

3 years agoChange ordering of CfL flip flag so that it's encoder just after use.
Jean-Marc Valin [Fri, 7 Nov 2014 02:49:18 +0000 (21:49 -0500)]
Change ordering of CfL flip flag so that it's encoder just after use.

This will allow us to do joint noref/gain/theta coding on keyframes

3 years agoJointly coding gain/theta/noref on P-frames
Jean-Marc Valin [Thu, 6 Nov 2014 20:58:43 +0000 (15:58 -0500)]
Jointly coding gain/theta/noref on P-frames

video1-short results:
non-robust:
           RATE (%)  DSNR (dB)
    PSNR -0.35052  0.01787
 PSNRHVS -0.40397  0.03273
    SSIM -0.38161  0.01849
FASTSSIM -0.36484  0.02334

robust:
           RATE (%)  DSNR (dB)
    PSNR -1.85044  0.10021
 PSNRHVS -2.16841  0.17816
    SSIM -1.93902  0.09961
FASTSSIM -1.98467  0.13023

3 years agoRemove frequency-domain intra prediction
Jean-Marc Valin [Tue, 11 Nov 2014 10:38:42 +0000 (05:38 -0500)]
Remove frequency-domain intra prediction

We have been disabling it for a while and it is now broken (segfaults) due
to the 32x32 patch.

3 years agoApply CfL even when bx=0 or by=0
Jean-Marc Valin [Tue, 11 Nov 2014 10:36:32 +0000 (05:36 -0500)]
Apply CfL even when bx=0 or by=0

subset1 results:
luma:
           RATE (%) DSNR (dB)
    PSNR -0.00866973 0.00043853
 PSNRHVS -0.00523201 0.000370351
    SSIM -0.00830849 0.000327202
FASTSSIM -0.00439319 0.000142907

Cb:
           RATE (%) DSNR (dB)
    PSNR -0.0790465 0.0032213
 PSNRHVS -0.139634 0.00692313
    SSIM -0.0925816 0.00250521
FASTSSIM -0.118561 0.00254396

Cr:
           RATE (%) DSNR (dB)
    PSNR -0.0507446 0.0028209
 PSNRHVS -0.0755671 0.0043902
    SSIM -0.0810965 0.00241197
FASTSSIM -0.536316 0.0119179

3 years agoAdd casts to avoid precision loss warnings under MSVC.
randomguy [Tue, 11 Nov 2014 02:21:20 +0000 (21:21 -0500)]
Add casts to avoid precision loss warnings under MSVC.

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoUse OD_LOG2 macro instead of log2().
Nathan E. Egge [Mon, 10 Nov 2014 23:46:10 +0000 (18:46 -0500)]
Use OD_LOG2 macro instead of log2().

3 years agoProvide alignment macros and use them.
Timothy B. Terriberry [Mon, 10 Nov 2014 19:26:49 +0000 (11:26 -0800)]
Provide alignment macros and use them.

The syntax for declaring aligned variables differs by platform.
Furthermore, the existing use of aligned variableson the stack is
 unreliable (on x86-32 gcc can and will ignore alignment requests
 larger than 8 bytes).
This provides macros for requesting alignment in declarations and
 moves the stack declarations in the generic platform-independent
 code into structures where we can actually guarantee alignment.

3 years agoFix compiler warnings when --enable-assertions=no.
Nathan E. Egge [Mon, 10 Nov 2014 20:35:34 +0000 (15:35 -0500)]
Fix compiler warnings when --enable-assertions=no.

3 years agoFix typo in pvq.c
Thomas Szymczak [Wed, 29 Oct 2014 17:43:27 +0000 (13:43 -0400)]
Fix typo in pvq.c

This fixes an issue that was introduced in commit
f1a9307c8752883e8692476de72a0e1f9665ba30, "Add a 32x32 transform (and
inverse)."

Because of this bug, changing OD_DISABLE_QM to 1 in internal.h doesn't work.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoRemoves unused zigzag data
Jean-Marc Valin [Sat, 25 Oct 2014 01:25:48 +0000 (21:25 -0400)]
Removes unused zigzag data

3 years agoRemove AWCY submission until it works.
Jack Moffitt [Sat, 25 Oct 2014 06:33:04 +0000 (00:33 -0600)]
Remove AWCY submission until it works.

3 years agoSupport python pre-2.7.
Jack Moffitt [Sat, 25 Oct 2014 04:34:54 +0000 (22:34 -0600)]
Support python pre-2.7.

3 years agoSubmit latest master to AWCY.
Jack Moffitt [Fri, 24 Oct 2014 00:19:38 +0000 (18:19 -0600)]
Submit latest master to AWCY.

3 years agoSimple horizontal/vertical intra predictor
Jean-Marc Valin [Thu, 2 Oct 2014 19:58:21 +0000 (15:58 -0400)]
Simple horizontal/vertical intra predictor

subset1 results:
           RATE (%) DSNR (dB)
    PSNR -1.24925 0.0714962
 PSNRHVS -1.68005 0.118698
    SSIM -1.61579 0.0741426
FASTSSIM -1.85896 0.0609082

Conflicts:
src/decode.c
src/encode.c

3 years agoplayer_example: show one plane at a time
Tristan Matthews [Fri, 24 Oct 2014 08:02:13 +0000 (04:02 -0400)]
player_example: show one plane at a time

3 years agobo needs to be calculated after taking decimation into account.
Jack Moffitt [Fri, 24 Oct 2014 04:22:07 +0000 (22:22 -0600)]
bo needs to be calculated after taking decimation into account.

3 years agoFix coefficient dumping.
Jack Moffitt [Fri, 24 Oct 2014 03:50:45 +0000 (21:50 -0600)]
Fix coefficient dumping.

Forgot to translate to the right block. Also replaced some hard coded
numbers with OD_LOG_BSIZE0.

3 years agoFix unix Makefile for 32x32
Tristan Matthews [Thu, 23 Oct 2014 18:30:25 +0000 (14:30 -0400)]
Fix unix Makefile for 32x32

3 years agoAdd a 32x32 transform (and inverse).
Jack Moffitt [Wed, 22 Oct 2014 20:31:56 +0000 (14:31 -0600)]
Add a 32x32 transform (and inverse).

The transform uses TFed 16x16s. This also enables 32x32 blocks in the codec.

3 years agoSpecial case for encoding K=1 PVQ codewords
Jean-Marc Valin [Wed, 22 Oct 2014 22:58:30 +0000 (18:58 -0400)]
Special case for encoding K=1 PVQ codewords

Subset1:
           RATE (%) DSNR (dB)
    PSNR -0.13131 0.00814259
 PSNRHVS -0.184684 0.0125804
    SSIM -0.139072 0.00717853
FASTSSIM -0.225148 0.00738782

Video1-short:
           RATE (%)  DSNR (dB)
    PSNR -0.04805  0.00251
 PSNRHVS -0.07723  0.00581
    SSIM -0.04611  0.00214
FASTSSIM -0.07197  0.00417

3 years agoSimplifies cdf initialization
Jean-Marc Valin [Wed, 22 Oct 2014 20:35:14 +0000 (16:35 -0400)]
Simplifies cdf initialization

3 years agoUse better probabilities for MV flag coding.
Jack Moffitt [Thu, 21 Aug 2014 19:27:12 +0000 (13:27 -0600)]
Use better probabilities for MV flag coding.

3 years agoRemove left over code from last block size encoding rewrite
Jean-Marc Valin [Tue, 21 Oct 2014 21:19:59 +0000 (17:19 -0400)]
Remove left over code from last block size encoding rewrite

3 years agoAdd entropy coder accounting support.
Jack Moffitt [Thu, 21 Aug 2014 18:59:55 +0000 (12:59 -0600)]
Add entropy coder accounting support.

This generalizes the tool to record symbols and their contexts for doing
entropy coding optimization work. You add labels and then record symbols
with contexts for offline analysis.

3 years agoClean up decoder to match encoder changes in issue 490
Thomas Daede [Tue, 21 Oct 2014 17:12:33 +0000 (11:12 -0600)]
Clean up decoder to match encoder changes in issue 490

3 years agoRemove remaining use of USE_BAND_PARTITIONS
Jean-Marc Valin [Mon, 20 Oct 2014 23:30:56 +0000 (19:30 -0400)]
Remove remaining use of USE_BAND_PARTITIONS

Also, some functions that needed to be static

3 years agoClean up od_encode_block()/od_block_encode()/OD_ENCODE_BLOCK[]
Jean-Marc Valin [Mon, 20 Oct 2014 19:14:21 +0000 (15:14 -0400)]
Clean up od_encode_block()/od_block_encode()/OD_ENCODE_BLOCK[]

3 years agoNever use noref for gain=0 on non-keyframes
Jean-Marc Valin [Fri, 17 Oct 2014 20:45:54 +0000 (16:45 -0400)]
Never use noref for gain=0 on non-keyframes

3 years agoReplace noref=1,gain=0 by a skip on inter when the reference is small
Jean-Marc Valin [Fri, 17 Oct 2014 08:08:27 +0000 (04:08 -0400)]
Replace noref=1,gain=0 by a skip on inter when the reference is small

This makes us use noref much less often.
video1-short results:
           RATE (%)  DSNR (dB)
    PSNR -1.68026  0.08641
 PSNRHVS -2.10895  0.15816
    SSIM -1.25716  0.05708
FASTSSIM -3.63240  0.22229

3 years agoMakes keyframes entropy decoding independent of PVQ
Jean-Marc Valin [Fri, 17 Oct 2014 02:09:34 +0000 (22:09 -0400)]
Makes keyframes entropy decoding independent of PVQ

This makes it possible to do the intropy decoding in parallel with the PVQ
decoding.
subset1 results:
           RATE (%) DSNR (dB)
    PSNR 1.97396 -0.110506
 PSNRHVS 1.77392 -0.124211
    SSIM 2.05182 -0.0904858
FASTSSIM 1.68843 -0.0548173

3 years agoRemove inter-band masking
Jean-Marc Valin [Thu, 16 Oct 2014 23:32:20 +0000 (19:32 -0400)]
Remove inter-band masking

It never helped much (and now it's hurting curves slightly apparently) and
it blocks doing entropy decoding independently from (and in parallel with)
PVQ. Also, we had to disable it for robust streams anyway.

subset1 results:
           RATE (%) DSNR (dB)
    PSNR -0.745795 0.0404235
 PSNRHVS -0.263827 0.017698
    SSIM -0.42999 0.0204819
FASTSSIM -0.113949 0.00366062

3 years agoFixes decoder-side robust bit-streams
Jean-Marc Valin [Sat, 4 Oct 2014 06:22:45 +0000 (02:22 -0400)]
Fixes decoder-side robust bit-streams

relying on post-deinterleaved qg==0 wasn't a good idea for robustness

3 years agostate: check ref_img allocation
Tristan Matthews [Sat, 11 Oct 2014 22:59:58 +0000 (18:59 -0400)]
state: check ref_img allocation

3 years agodecode: refactor
Tristan Matthews [Sat, 11 Oct 2014 22:59:06 +0000 (18:59 -0400)]
decode: refactor

3 years agoSimplifies CfL by signalling the gain and sign through PVQ
Jean-Marc Valin [Mon, 6 Oct 2014 06:11:39 +0000 (02:11 -0400)]
Simplifies CfL by signalling the gain and sign through PVQ

3 years agoRemove support for scalar quantization
Jean-Marc Valin [Mon, 6 Oct 2014 05:24:08 +0000 (01:24 -0400)]
Remove support for scalar quantization

Reasons are:
- No quantization matrix support (and none planned) so impossible to have a
  reasonable comparison with PVQ anyway
- We need to reduce the number of interactions between OD_DISABLE* flags
- We need to tune tools for PVQ rather than scalar, which will make scalar worse
- The new intra and CfL patches can't work with scalar

Conflicts:
src/decode.c
src/encode.c

3 years agoper-superblock strength
Jean-Marc Valin [Wed, 1 Oct 2014 21:44:57 +0000 (17:44 -0400)]
per-superblock strength

3 years agoUpdate bd_rate.m to run from any directory.
Nathan E. Egge [Tue, 30 Sep 2014 22:39:17 +0000 (18:39 -0400)]
Update bd_rate.m to run from any directory.

3 years agoRewrite superblock splitting code to make it easier to understand
Guillaume Martres [Tue, 23 Sep 2014 08:43:51 +0000 (10:43 +0200)]
Rewrite superblock splitting code to make it easier to understand

Also try to follow the coding style more closely.

3 years agoAdd od_block_size enum to give names to the block sizes
Guillaume Martres [Wed, 24 Sep 2014 19:44:07 +0000 (21:44 +0200)]
Add od_block_size enum to give names to the block sizes

3 years agoBypass PVQ sythesis when the gain is zero
Jean-Marc Valin [Thu, 25 Sep 2014 03:01:26 +0000 (23:01 -0400)]
Bypass PVQ sythesis when the gain is zero

3 years agoencode: refactor
Tristan Matthews [Tue, 23 Sep 2014 13:38:08 +0000 (14:38 +0100)]
encode: refactor

3 years agologging: fix memory leak
Vittorio Giovara [Tue, 23 Sep 2014 13:01:41 +0000 (14:01 +0100)]
logging: fix memory leak

3 years agofast search
Jean-Marc Valin [Tue, 23 Sep 2014 07:35:54 +0000 (03:35 -0400)]
fast search

3 years agoencoder_example: remove duplicate code
Tristan Matthews [Mon, 22 Sep 2014 12:23:52 +0000 (13:23 +0100)]
encoder_example: remove duplicate code

3 years agoencode: move img_dump_padded out of encode_img_in
Tristan Matthews [Sun, 21 Sep 2014 16:15:44 +0000 (17:15 +0100)]
encode: move img_dump_padded out of encode_img_in

3 years agoencode: use QUALITY_SHIFT
Tristan Matthews [Sun, 21 Sep 2014 15:52:51 +0000 (16:52 +0100)]
encode: use QUALITY_SHIFT

3 years agoencode: factor copy_and_pad out of encode_img_in
Tristan Matthews [Sun, 21 Sep 2014 12:57:51 +0000 (13:57 +0100)]
encode: factor copy_and_pad out of encode_img_in

3 years agoencode: do quality scaling internally
Tristan Matthews [Sun, 21 Sep 2014 11:17:38 +0000 (07:17 -0400)]
encode: do quality scaling internally

3 years agoRemove unused MV visualization code
Guillaume Martres [Mon, 8 Sep 2014 17:30:12 +0000 (19:30 +0200)]
Remove unused MV visualization code

3 years agoMore accurate MV rate estimation
Guillaume Martres [Tue, 9 Sep 2014 22:03:43 +0000 (00:03 +0200)]
More accurate MV rate estimation

This could be even more accurate by making mv_small_rate_est adaptive or
by using a better estimate for the >=3 part of the component magnitudes,
but so far my attempts to do so have only decreased quality.

Results on video-1-short:
           RATE (%)  DSNR (dB)
    PSNR -0.89100  0.04614
 PSNRHVS -1.04905  0.08080
    SSIM -1.09365  0.05120
FASTSSIM -1.30466  0.07874

Results on sintel_trailer_2k_short:
           RATE (%)  DSNR (dB)
    PSNR -4.66465  0.22110
 PSNRHVS -5.80139  0.31411
    SSIM -4.75017  0.16922
FASTSSIM -4.92864  0.21090

3 years agoplayer_example: give warning on skeleton streams
Tristan Matthews [Sat, 20 Sep 2014 14:19:08 +0000 (10:19 -0400)]
player_example: give warning on skeleton streams

3 years agoMake it possible to encode robust streams with PVQ
Jean-Marc Valin [Tue, 16 Sep 2014 05:37:04 +0000 (01:37 -0400)]
Make it possible to encode robust streams with PVQ

Three changes:
1) theta is now encoded without assuming we know max_theta (most of the loss
   is from here)
2) Approximate sin(theta)=theta when computing K
3) Disable inter-band masking

Changes 1) and 2) only apply to P-frames, but 3) is even for key-frames to
avoid them looking different from P-frames.

Metrics on video-1-short:
           RATE (%)  DSNR (dB)
    PSNR 0.31829  -0.01388
 PSNRHVS 1.62467  -0.12656
    SSIM 0.86702  -0.03900
FASTSSIM 1.15187  -0.06973

3 years agoDC RDO using the actual skip probabilities
Jean-Marc Valin [Thu, 11 Sep 2014 05:37:36 +0000 (01:37 -0400)]
DC RDO using the actual skip probabilities

video-1-short metrics:
           RATE (%)  DSNR (dB)
    PSNR -0.41900  0.02230
 PSNRHVS -0.47261  0.03719
    SSIM -0.54069  0.02580
FASTSSIM -0.34503  0.02112

3 years agoAdds optional code to measure the actual overhead of the entropy coder
Jean-Marc Valin [Fri, 12 Sep 2014 05:44:10 +0000 (01:44 -0400)]
Adds optional code to measure the actual overhead of the entropy coder

3 years agoUsing finer quantizer for keyframes
Jean-Marc Valin [Wed, 10 Sep 2014 18:56:40 +0000 (14:56 -0400)]
Using finer quantizer for keyframes

Metrics on video-1-short:
           RATE (%)  DSNR (dB)
    PSNR -0.20639  0.01102
 PSNRHVS -0.16628  0.01316
    SSIM -0.20454  0.00984
FASTSSIM -0.22283  0.01366

3 years agoEnable the SSE2 4x4 IDCT
Thomas Daede [Wed, 10 Sep 2014 23:15:33 +0000 (16:15 -0700)]
Enable the SSE2 4x4 IDCT

This should have been enabled earlier but slipped through.

3 years agoupload_commits.sh: Use the full commit message
Guillaume Martres [Fri, 5 Sep 2014 19:06:50 +0000 (21:06 +0200)]
upload_commits.sh: Use the full commit message

3 years agoFix desync by properly clearing mv_grid in the decoder
Guillaume Martres [Tue, 9 Sep 2014 09:05:38 +0000 (11:05 +0200)]
Fix desync by properly clearing mv_grid in the decoder

The desync happens since dd3fca176f087d8fe72ddf2e972d728ef92d941f which
assumes that the grid is cleared. It was reproducable by encoding 16
frames of parkjoy_1080p at -v 50.

3 years agoFix AVX2 feature detection
Thomas Daede [Thu, 4 Sep 2014 20:17:27 +0000 (13:17 -0700)]
Fix AVX2 feature detection

3 years agoRevert Makefile.am changes from previous commit
Thomas Daede [Tue, 9 Sep 2014 18:37:30 +0000 (11:37 -0700)]
Revert Makefile.am changes from previous commit

avx2dct.c is part of a separate patch series, and should have not been included.

3 years agoAdd AVX2 intrinsics detection to autotools
Thomas Daede [Thu, 4 Sep 2014 20:18:31 +0000 (13:18 -0700)]
Add AVX2 intrinsics detection to autotools

3 years agoMaking it easier to change the mode selection block size
Jean-Marc Valin [Tue, 9 Sep 2014 17:46:57 +0000 (13:46 -0400)]
Making it easier to change the mode selection block size

3 years agoUse AC_TRY_LINK in tests for intrinics so that a missing intrinsics symbol is noticed.
Thomas Daede [Tue, 9 Sep 2014 00:36:40 +0000 (17:36 -0700)]
Use AC_TRY_LINK in tests for intrinics so that a missing intrinsics symbol is noticed.

3 years agodoc: fix pdf generation
Tristan Matthews [Sun, 17 Aug 2014 22:51:36 +0000 (15:51 -0700)]
doc: fix pdf generation

3 years agoAdd check functions for optimized DCT implementations.
Thomas Daede [Mon, 8 Sep 2014 20:18:52 +0000 (13:18 -0700)]
Add check functions for optimized DCT implementations.

Checks are enabled by defining OD_CHECKASM.

3 years agoPer-block switch for deringing
Jean-Marc Valin [Mon, 8 Sep 2014 19:00:03 +0000 (15:00 -0400)]
Per-block switch for deringing

3 years agoSimplify (and improve) the adaptation of MV expectation
Guillaume Martres [Fri, 5 Sep 2014 16:31:05 +0000 (18:31 +0200)]
Simplify (and improve) the adaptation of MV expectation

Use generic_{encode,decode} to do the adaptation instead of doing it by
hand.
Results on video-1-short:
           RATE (%)  DSNR (dB)
    PSNR -0.01933  0.00103
 PSNRHVS -0.02247  0.00178
    SSIM -0.01943  0.00093
FASTSSIM -0.02078  0.00127

3 years agoFix calculation of MV expectation
Guillaume Martres [Wed, 3 Sep 2014 23:15:58 +0000 (01:15 +0200)]
Fix calculation of MV expectation

We were calculating E(ox) instead of E(abs(ox) - 3 | abs(ox) >= 3) (same
for oy).
Results on video-1-short:
           RATE (%)  DSNR (dB)
    PSNR -0.09505  0.00506
 PSNRHVS -0.10656  0.00841
    SSIM -0.09582  0.00459
FASTSSIM -0.10099  0.00617

3 years agoAdd more assertions to level 3 MV encoding
Guillaume Martres [Fri, 5 Sep 2014 18:19:34 +0000 (20:19 +0200)]
Add more assertions to level 3 MV encoding

This should make it harder to introduce desyncs like the one fixed by
by the previous commit.

3 years agoFix desync introduced by dd3fca176f087d8fe72ddf2e972d728ef92d941f
Guillaume Martres [Fri, 5 Sep 2014 18:17:01 +0000 (20:17 +0200)]
Fix desync introduced by dd3fca176f087d8fe72ddf2e972d728ef92d941f

Note that dd3fca176f087d8fe72ddf2e972d728ef92d941f itself fixed by
accident another desync introduced by
f317efd3bd8fa07ba5b7cfca139712ac3b200a78.

3 years agoCode for computing the optimal gain (off by default)
Jean-Marc Valin [Fri, 5 Sep 2014 07:39:13 +0000 (03:39 -0400)]
Code for computing the optimal gain (off by default)

Also no-signalling case starting to kinda work

3 years agoUsing quantizer to adapt deringing strength
Jean-Marc Valin [Thu, 4 Sep 2014 16:25:11 +0000 (12:25 -0400)]
Using quantizer to adapt deringing strength