daala.git
3 years agoDon't bother with the RDO search if we can't beat the skip distortion
Jean-Marc Valin [Fri, 17 Jun 2016 00:45:02 +0000 (20:45 -0400)]
Don't bother with the RDO search if we can't beat the skip distortion

No change in metrics

3 years agoskipping the search when there's no new pulses to add
Jean-Marc Valin [Fri, 17 Jun 2016 00:02:55 +0000 (20:02 -0400)]
skipping the search when there's no new pulses to add

No change in metrics

3 years agoSorting theta search so that we can use "induction search" all the time
Jean-Marc Valin [Wed, 15 Jun 2016 10:56:33 +0000 (06:56 -0400)]
Sorting theta search so that we can use "induction search" all the time

3 years agoPVQ search induction: refine the lower-K search rather than search from scratch
Jean-Marc Valin [Thu, 16 Jun 2016 10:56:11 +0000 (06:56 -0400)]
PVQ search induction: refine the lower-K search rather than search from scratch

Default (speed=0):
PSNR YCbCr:     -0.05%     -0.01%     -0.02%
   PSNRHVS:     -0.02%
      SSIM:     -0.03%
    MSSSIM:     -0.03%
 CIEDE2000:     -0.01%

speed=1:
PSNR YCbCr:     -0.06%     -0.06%     -0.23%
   PSNRHVS:     -0.08%
      SSIM:     -0.06%
    MSSSIM:     -0.07%
 CIEDE2000:     -0.07%

3 years agoImproving rate approximation
Jean-Marc Valin [Wed, 15 Jun 2016 12:54:02 +0000 (08:54 -0400)]
Improving rate approximation

No change in metrics by default, but when enabled (compared to previous
approximation):
PSNR YCbCr:     -0.16%      0.39%      0.12%
   PSNRHVS:     -0.13%
      SSIM:     -0.18%
    MSSSIM:     -0.16%
 CIEDE2000:     -0.01%

3 years agoFirst PVQ optimization: using the od_pvq_rate() approximation on RDO pass
Jean-Marc Valin [Tue, 14 Jun 2016 20:41:36 +0000 (16:41 -0400)]
First PVQ optimization: using the od_pvq_rate() approximation on RDO pass

No change in metrics by default, but when enabled:
PSNR YCbCr:      0.44%     -0.05%      0.17%
   PSNRHVS:      0.53%
      SSIM:      0.47%
    MSSSIM:      0.45%
 CIEDE2000:      0.34%

3 years agopvq: use int beta in od_pow
Tristan Matthews [Fri, 19 Aug 2016 17:30:53 +0000 (10:30 -0700)]
pvq: use int beta in od_pow

Note that the gains on objective1-fast are on wikipedia_420.y4m, which
regressed on 8b42d91e983cb3742bb7e4794f374385adfc3820.

objective1-fast:
PSNR YCbCr:     -0.22%     -0.18%     -0.63%
   PSNRHVS:     -0.20%
      SSIM:     -0.22%
    MSSSIM:     -0.22%
 CIEDE2000:     -0.20%

subset1:
PSNR YCbCr:      0.00%      0.01%     -0.00%
   PSNRHVS:     -0.00%
      SSIM:      0.01%
    MSSSIM:      0.01%
 CIEDE2000:      0.00%

3 years agopvq: keep beta int until used in computation
Tristan Matthews [Fri, 19 Aug 2016 16:24:37 +0000 (09:24 -0700)]
pvq: keep beta int until used in computation

No change in metrics.

3 years agoAdd set parameter to submit_awcy.py.
Thomas Daede [Fri, 19 Aug 2016 19:34:49 +0000 (12:34 -0700)]
Add set parameter to submit_awcy.py.

3 years agopvq: fix documentation
Tristan Matthews [Fri, 19 Aug 2016 16:44:14 +0000 (09:44 -0700)]
pvq: fix documentation

3 years agopvq: convert beta tables to int
Tristan Matthews [Thu, 18 Aug 2016 23:38:01 +0000 (16:38 -0700)]
pvq: convert beta tables to int

No change in metrics.

3 years agodecode: avoid redundant QM initialization
Tristan Matthews [Thu, 18 Aug 2016 18:20:10 +0000 (11:20 -0700)]
decode: avoid redundant QM initialization

3 years agopvq: use od_log2 int approximation
Tristan Matthews [Wed, 17 Aug 2016 01:42:54 +0000 (18:42 -0700)]
pvq: use od_log2 int approximation

objective1-fast:
PSNR YCbCr:      0.11%      0.05%      0.10%
   PSNRHVS:      0.08%
      SSIM:      0.08%
    MSSSIM:      0.08%
 CIEDE2000:      0.01%

 subset1:
PSNR YCbCr:     -0.00%      0.05%      0.03%
   PSNRHVS:      0.01%
      SSIM:     -0.00%
    MSSSIM:     -0.00%
 CIEDE2000:      0.00%

3 years agoClean up EC tell() and tell_frac() functions.
Nathan E. Egge [Thu, 18 Aug 2016 06:19:22 +0000 (02:19 -0400)]
Clean up EC tell() and tell_frac() functions.

Add a const qualifier to the od_ec_enc and od_ec_dec parameters of
 the od_ec_enc_tell(), od_ec_enc_tell_frac(), od_ec_dec_tell(), and
 od_ec_dec_tell_frac() functions.
Add an OD_WARN_UNUSED_RESULT to od_ec_enc_tell_frac().

3 years agopvq: use approximation for od_rcp
Tristan Matthews [Wed, 17 Aug 2016 02:23:49 +0000 (19:23 -0700)]
pvq: use approximation for od_rcp

subset1:
          LOW (%)  MEDIUM (%) HIGH (%)
    PSNR  0.001686 -0.000285 -0.000765
 PSNRHVS  0.003194  0.000187 -0.048637
    SSIM -0.001414  0.001709 -0.002833
FASTSSIM -0.003150  0.002658 -0.031362

objective1-fast:
PSNR YCbCr: -0.07%      0.08%     -0.09%
   PSNRHVS: -0.12%
      SSIM: -0.12%
    MSSSIM: -0.11%
 CIEDE2000:  0.01%

3 years agorate: fix -Wshift-negative-value
Tristan Matthews [Tue, 16 Aug 2016 07:14:11 +0000 (00:14 -0700)]
rate: fix -Wshift-negative-value

Namely,
src/rate.c:1103:19: warning: shifting a negative signed value is undefined [-Wshift-negative-value]
      log_scale = OD_Q57(-64);
                  ^~~~~~~~~~~
src/rate.c:34:33: note: expanded from macro 'OD_Q57'

3 years agoto_monochrome: add --plane option to preserve other plane
Guillaume Martres [Tue, 16 Aug 2016 07:18:39 +0000 (00:18 -0700)]
to_monochrome: add --plane option to preserve other plane

3 years agopvq: fix build for OD_FLOAT_PVQ
Tristan Matthews [Thu, 11 Aug 2016 21:52:32 +0000 (17:52 -0400)]
pvq: fix build for OD_FLOAT_PVQ

Regression from a9d834a103bb1903faf098d2078988d6693f58aa

3 years agopvq: fixed-point od_apply_householder
Tristan Matthews [Wed, 3 Aug 2016 15:12:20 +0000 (11:12 -0400)]
pvq: fixed-point od_apply_householder

objective-fast1:
PSNR YCbCr:      0.01%     -0.02%      0.22%
   PSNRHVS:      0.07%
      SSIM:      0.06%
    MSSSIM:      0.03%
 CIEDE2000:      0.00%

subset1:
        LOW (%)  MEDIUM (%) HIGH (%)
    PSNR -0.005594  0.002910  0.010791
 PSNRHVS -0.002126  0.004317  0.052591
    SSIM -0.009023  0.002315  0.006972
FASTSSIM -0.008637 -0.022084 -0.015729

3 years agopvq: convert compute_theta to fixed
Tristan Matthews [Thu, 11 Aug 2016 15:16:22 +0000 (11:16 -0400)]
pvq: convert compute_theta to fixed

No metrics change.

3 years agoReduce RAM usage of dcttest by converting basis storage from doubles to bytes.
Thomas Daede [Fri, 20 May 2016 01:54:37 +0000 (18:54 -0700)]
Reduce RAM usage of dcttest by converting basis storage from doubles to bytes.

dynamic_range() stores the basis functions by passing impulses to the
transforms, but the range checks later only care about the polarity of
the response.

Instead of storing the basis as doubles in basis2, store just -1, 0, or 1 in
basis_pol. This reduces RAM usage from 626MB to 168MB, while yielding identical
output.

3 years agopvq: convert double constant to int
Tristan Matthews [Tue, 2 Aug 2016 01:41:43 +0000 (21:41 -0400)]
pvq: convert double constant to int

ntt-short1:
PSNR YCbCr:     -0.03%     -0.29%     -0.38%
   PSNRHVS:      0.01%
      SSIM:     -0.03%
    MSSSIM:      0.00%
 CIEDE2000:     -0.13%

subset1:
         LOW (%)  MEDIUM (%) HIGH (%)
    PSNR 0.000001 0.000002 0.000012
 PSNRHVS 0.000001 0.000005 0.000026
    SSIM 0.000000 0.000000 0.000000
FASTSSIM 0.000001 0.000001 0.000003

3 years agoodintrin: reuse shift macros
Tristan Matthews [Wed, 3 Aug 2016 19:50:52 +0000 (15:50 -0400)]
odintrin: reuse shift macros

No change in metrics.

3 years agopvq: convert od_log2 to int16_t input
Tristan Matthews [Mon, 1 Aug 2016 18:49:48 +0000 (14:49 -0400)]
pvq: convert od_log2 to int16_t input

No change in metrics.

3 years agopvq: use integer approximation for exp2
Tristan Matthews [Fri, 29 Jul 2016 15:24:44 +0000 (12:24 -0300)]
pvq: use integer approximation for exp2

ntt-short1:
PSNR YCbCr:      0.06%      0.28%      0.23%
   PSNRHVS:      0.05%
      SSIM:      0.04%
    MSSSIM:     -0.00%
 CIEDE2000:     -0.01%

subset1:
          LOW (%)  MEDIUM (%) HIGH (%)
    PSNR 0.016847 -0.010997  0.010651
 PSNRHVS 0.010134 -0.007417 -0.019350
    SSIM 0.014395 -0.016214 -0.010879
FASTSSIM 0.045682 -0.004407 -0.045149

3 years agoRevert "clang-ioc.sh: fix deprecation warning"
Tristan Matthews [Thu, 28 Jul 2016 22:11:49 +0000 (19:11 -0300)]
Revert "clang-ioc.sh: fix deprecation warning"

This reverts commit 0a6abffd2f4d827f7e44e3f6cad6faa7e75de8cf. We need to
upgrade clang on Jenkins first.

3 years agoAdd support for reading 444p10 y4m files.
Nathan E. Egge [Wed, 13 Jul 2016 14:23:02 +0000 (10:23 -0400)]
Add support for reading 444p10 y4m files.

3 years agoclang-ioc.sh: fix deprecation warning
Tristan Matthews [Thu, 28 Jul 2016 19:37:17 +0000 (16:37 -0300)]
clang-ioc.sh: fix deprecation warning

Namely, "clang: warning: argument '-fno-sanitize-recover' is deprecated, use '-fno-sanitize-recover=undefined,integer' instead"

3 years agopvq: change shift to multiply for clarity
Tristan Matthews [Wed, 27 Jul 2016 13:44:09 +0000 (10:44 -0300)]
pvq: change shift to multiply for clarity

No change in metrics.

3 years agopvq: convert compute_max_theta to fixed (aside from beta)
Tristan Matthews [Tue, 26 Jul 2016 23:04:51 +0000 (20:04 -0300)]
pvq: convert compute_max_theta to fixed (aside from beta)

ntt-short1:
PSNR YCbCr:      0.05%      0.61%      0.34%
   PSNRHVS:      0.06%
      SSIM:      0.01%
    MSSSIM:      0.02%
 CIEDE2000:      0.14%

subset1:
           LOW (%)  MEDIUM (%) HIGH (%)
    PSNR  0.002409  0.001289  0.014176
 PSNRHVS  0.002905 -0.000071  0.003998
    SSIM -0.000910  0.000938  0.001277
FASTSSIM -0.004575 -0.008021 -0.001923

3 years agoFix compilation of dump_fastssim.
Thomas Daede [Tue, 26 Jul 2016 18:41:22 +0000 (11:41 -0700)]
Fix compilation of dump_fastssim.

3 years agoAdd high bit depth support to dump_msssim.
Thomas Daede [Tue, 12 Jul 2016 00:53:06 +0000 (17:53 -0700)]
Add high bit depth support to dump_msssim.

3 years agoAdd high bit depth support to dump_fastssim.
Thomas Daede [Tue, 12 Jul 2016 00:34:35 +0000 (17:34 -0700)]
Add high bit depth support to dump_fastssim.

3 years agoAdd high bit depth support to dump_psnrhvs.
Thomas Daede [Tue, 12 Jul 2016 00:07:31 +0000 (17:07 -0700)]
Add high bit depth support to dump_psnrhvs.

3 years agoAdd high bit depth support to dump_ssim.
Thomas Daede [Mon, 11 Jul 2016 23:39:20 +0000 (16:39 -0700)]
Add high bit depth support to dump_ssim.

3 years agoAdd high bit depth support to dump_psnr.
Thomas Daede [Mon, 11 Jul 2016 22:07:34 +0000 (15:07 -0700)]
Add high bit depth support to dump_psnr.

3 years agoRemove tabs.
Nathan E. Egge [Mon, 25 Jul 2016 05:48:44 +0000 (01:48 -0400)]
Remove tabs.

3 years agoFix broken y4m reader when bit depth > 8.
Nathan E. Egge [Mon, 25 Jul 2016 05:41:09 +0000 (01:41 -0400)]
Fix broken y4m reader when bit depth > 8.

The y4m_input_fetch_frame() function was broken on y4m files with high
 bit depth (depth > 8) where either the frame width or frame height were
 not multiples of 16.

3 years agopvq: use od_sqrt in od_pvq_compute_gain
Tristan Matthews [Wed, 20 Jul 2016 20:02:57 +0000 (16:02 -0400)]
pvq: use od_sqrt in od_pvq_compute_gain

ntt-short-1:
PSNR YCbCr:     -0.02%     -0.01%      0.03%
   PSNRHVS:     -0.03%
      SSIM:     -0.01%
    MSSSIM:     -0.02%
 CIEDE2000:     -0.05%

subset1:
PSNR YCbCr:      0.00%      nan%       nan%
   PSNRHVS:      0.00%
      SSIM:      0.00%
    MSSSIM:      0.00%
 CIEDE2000:      0.00%

3 years agopvq: convert !noref branch of od_compute_k to integer
Tristan Matthews [Wed, 20 Jul 2016 19:41:39 +0000 (15:41 -0400)]
pvq: convert !noref branch of od_compute_k to integer

ntt-short1:
PSNR YCbCr:      0.00%     -0.00%     -0.00%
   PSNRHVS:      0.00%
      SSIM:      0.00%
    MSSSIM:      0.00%
 CIEDE2000:     -0.00%

subset1:
         LOW (%)  MEDIUM (%) HIGH (%)
    PSNR 0.000000 0.000000 0.000000
 PSNRHVS 0.000000 0.000000 0.000000
    SSIM 0.000000 0.000000 0.000000
FASTSSIM 0.000000 0.000000 0.000000

3 years agopvq: convert 1st part of compute_k to integer (aside from beta)
Tristan Matthews [Wed, 20 Jul 2016 15:47:23 +0000 (11:47 -0400)]
pvq: convert 1st part of compute_k to integer (aside from beta)

ntt-short1:
 PSNR YCbCr:     -0.00%      0.06%     -0.06%
    PSNRHVS:      0.00%
       SSIM:      0.00%
     MSSSIM:      0.00%
  CIEDE2000:      0.00%

subset1:
         LOW (%)  MEDIUM (%) HIGH (%)
    PSNR 0.000000 0.000000 0.000000
 PSNRHVS 0.000000 0.000000 0.000000
    SSIM 0.000000 0.000000 0.000000
FASTSSIM 0.000000 0.000000 0.000000

3 years agopvq_decoder: fix overflow for float-pvq
Tristan Matthews [Wed, 20 Jul 2016 18:37:07 +0000 (14:37 -0400)]
pvq_decoder: fix overflow for float-pvq

3 years agopvq: fix return type for od_sqrt
Tristan Matthews [Wed, 20 Jul 2016 15:36:19 +0000 (11:36 -0400)]
pvq: fix return type for od_sqrt

od_sqrt_norm already returns int16_t

3 years agopvq: avoid double division in od_gain_compand
Tristan Matthews [Wed, 13 Jul 2016 21:51:03 +0000 (17:51 -0400)]
pvq: avoid double division in od_gain_compand

No change in metrics.

3 years agoRemove compiler warnings with --enable-float-pvq.
Nathan E. Egge [Wed, 13 Jul 2016 18:49:51 +0000 (14:49 -0400)]
Remove compiler warnings with --enable-float-pvq.

3 years agoyuvjpeg: fix NULL dereference on invalid format string
Tristan Matthews [Thu, 14 Jul 2016 22:08:39 +0000 (18:08 -0400)]
yuvjpeg: fix NULL dereference on invalid format string

3 years agopvq: apply qm when computing CfL flip
Tristan Matthews [Tue, 12 Jul 2016 15:07:22 +0000 (11:07 -0400)]
pvq: apply qm when computing CfL flip

ntt-short1:
PSNR YCbCr:     -0.01%     -0.55%      0.05%
   PSNRHVS:     -0.00%
      SSIM:      0.01%
    MSSSIM:      0.01%
 CIEDE2000:     -0.05%

subset1:
          LOW (%)  MEDIUM (%) HIGH (%)
    PSNR -0.001694 0.002679 -0.001058
 PSNRHVS  0.000207 0.000255 -0.002706
    SSIM -0.004254 0.001494 -0.005428
FASTSSIM -0.006330 0.000939 -0.010382

3 years agoencoder_example: exit if encoder wasn't allocated
Tristan Matthews [Wed, 13 Jul 2016 15:30:29 +0000 (11:30 -0400)]
encoder_example: exit if encoder wasn't allocated

Also avoids leaking ogg_stream.

3 years agoencoder_example: move file and buffer cleanup out of main
Tristan Matthews [Wed, 13 Jul 2016 16:07:24 +0000 (12:07 -0400)]
encoder_example: move file and buffer cleanup out of main

3 years agoFix segfault in od_state_clear() on OD_EFAULT.
Nathan E. Egge [Tue, 12 Jul 2016 16:16:21 +0000 (12:16 -0400)]
Fix segfault in od_state_clear() on OD_EFAULT.

Only subtract block size padding from bsize when array has been allocated.

3 years agoencoder_example: fix help string
Tristan Matthews [Mon, 11 Jul 2016 17:01:16 +0000 (13:01 -0400)]
encoder_example: fix help string

3 years agoAdd ci script to fetch all test videos.
Thomas Daede [Fri, 24 Jun 2016 23:25:57 +0000 (16:25 -0700)]
Add ci script to fetch all test videos.

3 years agoAllow video path of ci scripts to be set externally.
Thomas Daede [Fri, 24 Jun 2016 23:17:34 +0000 (16:17 -0700)]
Allow video path of ci scripts to be set externally.

3 years agopvq: use od_pow() when beta != 1 and beta != 1.5
Tristan Matthews [Sat, 2 Jul 2016 17:14:57 +0000 (13:14 -0400)]
pvq: use od_pow() when beta != 1 and beta != 1.5

Currently this branch is never reached.

3 years agopvq: use rounded exp2 and log2 when raising g to 1/beta
Tristan Matthews [Tue, 21 Jun 2016 15:50:28 +0000 (11:50 -0400)]
pvq: use rounded exp2 and log2 when raising g to 1/beta

ntt-short1:

PSNR YCbCr:     -0.03%      0.11%     -0.23%
   PSNRHVS:     -0.01%
      SSIM:     -0.02%
    MSSSIM:     -0.02%
 CIEDE2000:      0.13%

subset1:
          RATE (%) DSNR (dB)
    PSNR -0.00209  0.00010
 PSNRHVS -0.00394  0.00030
    SSIM -0.00094  0.00004
FASTSSIM -0.03773  0.00132

3 years agoComplete first-cut of one-pass rate control
Monty Montgomery [Thu, 23 Jun 2016 08:59:58 +0000 (04:59 -0400)]
Complete first-cut of one-pass rate control

Adds and activates the one-pass rate control interface.  Rate management and constraints
are all active.

3 years agorate: fix overflow and left-shifts of negative values
Tristan Matthews [Mon, 20 Jun 2016 12:24:18 +0000 (08:24 -0400)]
rate: fix overflow and left-shifts of negative values

This fixes ci/clang-ioc.sh

3 years agoMakes analyzer print bits/symbol values
Jean-Marc Valin [Mon, 20 Jun 2016 18:24:30 +0000 (14:24 -0400)]
Makes analyzer print bits/symbol values

3 years agoMove quantizer selection to od_enc_rc_select_quantizers_and_lambdas()
Monty Montgomery [Sat, 18 Jun 2016 22:35:55 +0000 (18:35 -0400)]
Move quantizer selection to od_enc_rc_select_quantizers_and_lambdas()

Previous patch centralized lambda selection, this patch does the same for
quantizer selection.  Rate control needs to manipulate both, so centralizing
both into rate control is sensible.

The quantizer modulation is expanded out somewhat beyond current necessity for
the upcoming rate control loop.

There is no functional change, however, rounding may be slightly different. No
bit stream change.

3 years agoFix comment in PVQ
Jean-Marc Valin [Sat, 18 Jun 2016 03:04:30 +0000 (23:04 -0400)]
Fix comment in PVQ

3 years agoMinor code cleaning in Analyzer
Luc Trudeau [Tue, 14 Jun 2016 07:23:26 +0000 (08:23 +0100)]
Minor code cleaning in Analyzer

Fixed spacing issues.

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoencoder_example: avoid crashes from spurious fps values
Tristan Matthews [Wed, 8 Jun 2016 14:29:28 +0000 (16:29 +0200)]
encoder_example: avoid crashes from spurious fps values

Refs https://trac.xiph.org/ticket/2162

3 years agoMotion-Compensated Block Overlay
Luc Trudeau [Mon, 9 May 2016 01:24:35 +0000 (21:24 -0400)]
Motion-Compensated Block Overlay

Reused the od_mv_grid_pt struct in the analyzer to get motion vector data from
the decoder. The number of blocks in a frame (both vertical and horizontal)
needed to be added to the decoder in order to reduce dependencies of the
analyzer. The shortcut-key crtl-M was chosen for the word Motion. This overlay
will also include Motion Vector in a subsequent commit.

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoRoute the Analyzer's viewMenu option into the onViewMenu Method
Luc Trudeau [Sat, 28 May 2016 01:34:07 +0000 (21:34 -0400)]
Route the Analyzer's viewMenu option into the onViewMenu Method

The methodes for showing blocks, padding, plane and filter are replaced
by the onViewMenu(). As for the overlays, previously managed by
onFilter(), they are now managed by onOverlay which calls
onViewMenu().

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoOnly compute bpp on changed filter in the analyzer.
Luc Trudeau [Tue, 7 Jun 2016 22:09:23 +0000 (18:09 -0400)]
Only compute bpp on changed filter in the analyzer.

If the user opens the filter bits menu, but does not update the
 filtering criterion and presses ok, no bpp computation is performed.

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoAdd support for bpg to rd_collect framework.
Nathan E. Egge [Thu, 19 May 2016 20:10:05 +0000 (16:10 -0400)]
Add support for bpg to rd_collect framework.

Adds ability to run rd_collect with the bpg codec.

3 years agoFixed reset filter issue in analyzer.
Luc Trudeau [Tue, 7 Jun 2016 21:41:49 +0000 (17:41 -0400)]
Fixed reset filter issue in analyzer.

When the analyzer is reset, it now computes the bits per pixel only if
 the bit filter has changed.

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoAdd MS-SSIM metric.
Thomas Daede [Thu, 14 Apr 2016 00:12:24 +0000 (17:12 -0700)]
Add MS-SSIM metric.

3 years agoCentralize most encoder lambda calculation
Monty Montgomery [Thu, 2 Jun 2016 00:22:51 +0000 (20:22 -0400)]
Centralize most encoder lambda calculation

The encoder uses many, many lambda values, most of which are calculated directly
or indirectly from the quantizer value in use.  Put them in one place, in the
same place that will be handling quantizer determination.

The exception to this is the motion compensation lambda; this is calculated in
the motion estimation initialization code, and I've left it alone.

3 years agopvq: use integer approximation of sqrt
Tristan Matthews [Wed, 1 Jun 2016 15:19:25 +0000 (11:19 -0400)]
pvq: use integer approximation of sqrt

ntt-short1:
          LOW (%)  MEDIUM (%) HIGH (%)
    PSNR 0.053149 -0.012574  0.004898
 PSNRHVS 0.094104 -0.048959 -0.008012
    SSIM 0.081282 -0.033674 -0.000296
FASTSSIM 0.102366 -0.141546  0.074255

subset1:
          LOW (%)  MEDIUM (%) HIGH (%)
    PSNR  0.002033 -0.007489 -0.000630
 PSNRHVS -0.000608 -0.004931  0.002453
    SSIM -0.012701 -0.004175  0.002838
FASTSSIM -0.030976  0.016315  0.029390

3 years agood_rsqrt: s only depends on log2(x) and inshift
Tristan Matthews [Wed, 1 Jun 2016 14:52:05 +0000 (10:52 -0400)]
od_rsqrt: s only depends on log2(x) and inshift

No change in actual value (or metrics).

3 years agood_sqrt: s only depends on log2(x) and the input shift
Tristan Matthews [Wed, 1 Jun 2016 14:43:54 +0000 (10:43 -0400)]
od_sqrt: s only depends on log2(x) and the input shift

No change in actual value (or metrics).

3 years agoAnalyzer logic for overlay reset
Luc Trudeau [Thu, 19 May 2016 19:56:24 +0000 (15:56 -0400)]
Analyzer logic for overlay reset

Better overlay logic for mutually exclusive overlays and composite
overlays. Menu selections now reflect what is shown. A reset menuitem
is added mapped to backspace.

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoRemove showBlock on OnFilter
Luc Trudeau [Thu, 19 May 2016 20:20:44 +0000 (16:20 -0400)]
Remove showBlock on OnFilter

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agord_average: error out if output file already exists
Tristan Matthews [Tue, 24 May 2016 16:47:06 +0000 (12:47 -0400)]
rd_average: error out if output file already exists

3 years agoAdd 1-pass rate control to encoder example
Monty Montgomery [Tue, 24 May 2016 15:46:48 +0000 (11:46 -0400)]
Add 1-pass rate control to encoder example

Add all relevant 1-pass setup and encode ctls to encoder_example.c
These won't work until they're actually supported by the encoder.

3 years agoAdd support for aom to rd_collect framework.
Nathan E. Egge [Thu, 19 May 2016 20:07:19 +0000 (16:07 -0400)]
Add support for aom to rd_collect framework.

Adds ability to run rd_collect with the av1 codec.

3 years agoFix analyzer compile error.
Nathan E. Egge [Thu, 19 May 2016 18:23:53 +0000 (14:23 -0400)]
Fix analyzer compile error.

3 years agoAdd onShowBlocks() call to TestFrame class.
Luc Trudeau [Thu, 19 May 2016 18:11:04 +0000 (14:11 -0400)]
Add onShowBlocks() call to TestFrame class.

The wxID_SHOW_BLOCKS event previously called onFilter() and has been
 refactored into onShowBlocks() for API consistency.

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoReplace analyzer calls to Fit() with SetClientSize().
Luc Trudeau [Fri, 6 May 2016 01:50:37 +0000 (21:50 -0400)]
Replace analyzer calls to Fit() with SetClientSize().

This solves window resizing issues when using wxWidgets 3.0 on both
 Linux and OSX when zooming in and out and when toggling the show
 padding option.
For a description of why, see the documentation on wxWindow::Fit()
 http://docs.wxwidgets.org/trunk/classwx_window.html

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoencode: fix build for OD_DUMP_IMAGES
Tristan Matthews [Thu, 19 May 2016 15:50:50 +0000 (11:50 -0400)]
encode: fix build for OD_DUMP_IMAGES

3 years agoReplace (void) with OD_UNUSED().
Nathan E. Egge [Thu, 19 May 2016 15:47:27 +0000 (11:47 -0400)]
Replace (void) with OD_UNUSED().

3 years agoencode: use OD_LOSSLESS()
Tristan Matthews [Thu, 19 May 2016 00:54:46 +0000 (20:54 -0400)]
encode: use OD_LOSSLESS()

3 years agoencode: initialize quantizer before testing if it's lossless
Tristan Matthews [Wed, 18 May 2016 19:56:15 +0000 (15:56 -0400)]
encode: initialize quantizer before testing if it's lossless

Fixes regression from de66f0b61c64d9e45aec85497959865b8c52c5cb

ntt-short1:
          LOW (%)  MEDIUM (%) HIGH (%)
    PSNR  0.078507  -2.696097  -2.828273
 PSNRHVS -4.092946  -6.079513  -4.700105
    SSIM -9.190285  -9.359456  -6.507524
FASTSSIM -20.656195 -17.598520 -11.446769

3 years agoFix build error on snprintf with VS2015.
Arron Vuong [Tue, 17 May 2016 20:20:56 +0000 (16:20 -0400)]
Fix build error on snprintf with VS2015.

Visual Studio 2015 has support for snprintf() so we only need to define
 it for versions earler than _MSC_VER == 1900.

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoUse OD_UNUSED() macro instead of (void).
Philippe Le [Tue, 17 May 2016 21:09:11 +0000 (17:09 -0400)]
Use OD_UNUSED() macro instead of (void).

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoFix compiler warnings.
Philippe Le [Tue, 17 May 2016 19:24:42 +0000 (15:24 -0400)]
Fix compiler warnings.

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoAdded -o parameter to the y4m2png command line help.
duckish [Tue, 10 May 2016 18:49:57 +0000 (14:49 -0400)]
Added -o parameter to the y4m2png command line help.

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoUse OD_LOSSLESS() in several places where we're checking quantizer ==/!= 0
Monty Montgomery [Tue, 10 May 2016 04:19:41 +0000 (00:19 -0400)]
Use OD_LOSSLESS() in several places where we're checking quantizer ==/!= 0

Two more places where we check quantizer rather than using
the macro crept in.

3 years agoAdd rate.c to unix/Makefile
Monty Montgomery [Tue, 17 May 2016 08:54:52 +0000 (04:54 -0400)]
Add rate.c to unix/Makefile

This got missed when adding rate.c to the larger codeabse

3 years agoMove from quantizer-per-plane to quantizer-per-frame
Monty Montgomery [Tue, 10 May 2016 04:10:45 +0000 (00:10 -0400)]
Move from quantizer-per-plane to quantizer-per-frame

Go from 3 quantizers per frame to one; similarly changes quality setting.

This breaks bitstream; we now code one quantizer per frame instead of 3.
Otherwise, there's no functional change-- all three frame quantizers have always
been equal.

3 years agoAdd missing file rate.c
Monty Montgomery [Thu, 12 May 2016 21:48:27 +0000 (17:48 -0400)]
Add missing file rate.c

git diff missed it in the patch because it wasn't already in git.

3 years agoAdd API hooks for rate control
Monty Montgomery [Thu, 12 May 2016 21:35:57 +0000 (17:35 -0400)]
Add API hooks for rate control

As of now, the hooks do not function.  This is simply staking out the constants
and basic calls.

3 years agoReorganized View menu
Luc Trudeau [Mon, 2 May 2016 16:17:36 +0000 (12:17 -0400)]
Reorganized View menu

The view menu items are separated into logical groups.

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoSimplifies the Q15 adaptation
Jean-Marc Valin [Mon, 25 Apr 2016 05:28:04 +0000 (01:28 -0400)]
Simplifies the Q15 adaptation

We move the floor subtract/add to the tmp value. Also, we add an offset such
that the floor can actually reach 1/ft even for the first and last symbol.
We also get rid of the rounding for the initial adaptation since it didn't
do much and only has an effect on the first and last probabilities.

3 years agoFix undefined reference in make tools with --disable-asm
Luc Trudeau [Wed, 27 Apr 2016 00:57:35 +0000 (20:57 -0400)]
Fix undefined reference in make tools with --disable-asm

Moved dering.c out of "if ENABLE_X86ASM" to make references available
when compiling with --disable-asm.

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoZoom-in, Zoom-out secondary hotkeys
RignonNoel [Tue, 26 Apr 2016 18:21:23 +0000 (14:21 -0400)]
Zoom-in, Zoom-out secondary hotkeys

I've added a wxAcceleratorEntry to add all
secondary hotkey. I created a
wxAcceleratorTable with this and i linked
this table to the main frame (TestFrame)

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoRemove the WXUNUSED macro for onChange event methods in the analyzer
Luc Trudeau [Tue, 26 Apr 2016 17:31:11 +0000 (13:31 -0400)]
Remove the WXUNUSED macro for onChange event methods in the analyzer

Instead of using the menubar to get the event and then wrap the event
parameter in WXUNUSED macro, we can just use the event parameter directly.

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoAdd option to dump frame-averaged PSNR to dump_psnr.c.
Thomas Daede [Thu, 14 Apr 2016 00:46:25 +0000 (17:46 -0700)]
Add option to dump frame-averaged PSNR to dump_psnr.c.

3 years agominor refactoring of PVQ split code
Jean-Marc Valin [Fri, 15 Apr 2016 20:43:35 +0000 (16:43 -0400)]
minor refactoring of PVQ split code