3 years agoFix tiff2y4m.c still_images
Thomas Daede [Sat, 16 May 2015 03:56:35 +0000 (20:56 -0700)]
Fix tiff2y4m.c

3 years agoMerge remote-tracking branch 'jmgithub/exp_altrdo' into still_images
Thomas Daede [Fri, 15 May 2015 23:04:07 +0000 (16:04 -0700)]
Merge remote-tracking branch 'jmgithub/exp_altrdo' into still_images

3 years agoMerge remote-tracking branch 'jmgithub/exp_paint_deringing4' into still_images
Thomas Daede [Fri, 15 May 2015 23:01:03 +0000 (16:01 -0700)]
Merge remote-tracking branch 'jmgithub/exp_paint_deringing4' into still_images

3 years agoAdd tiff2y4m
Thomas Daede [Fri, 15 May 2015 22:07:05 +0000 (15:07 -0700)]
Add tiff2y4m

3 years agopartial AM
Jean-Marc Valin [Fri, 15 May 2015 20:49:34 +0000 (16:49 -0400)]
partial AM

3 years agoAlternate distortion weighting for RDO when activity masking is on
Jean-Marc Valin [Thu, 14 May 2015 23:01:44 +0000 (19:01 -0400)]
Alternate distortion weighting for RDO when activity masking is on

ntt-short results:
           RATE (%)  DSNR (dB)
    PSNR 0.11124  -0.00363
 PSNRHVS -0.22595  0.01160
    SSIM -0.45687  0.01136
FASTSSIM -0.44084  0.01281

           RATE (%) DSNR (dB)
    PSNR -0.244132 0.0120862
 PSNRHVS -0.196393 0.0107047
    SSIM -0.486691 0.0207378
FASTSSIM -1.35805 0.041649

3 years agoAdd y4m2tiff
Thomas Daede [Fri, 15 May 2015 20:15:41 +0000 (13:15 -0700)]
Add y4m2tiff

3 years agoencoder_example: use sizeof(var), not sizeof(int)
Tristan Matthews [Fri, 15 May 2015 03:08:42 +0000 (23:08 -0400)]
encoder_example: use sizeof(var), not sizeof(int)

3 years agoencoder_example: add --[no-]activity-masking
Tristan Matthews [Thu, 14 May 2015 19:33:01 +0000 (15:33 -0400)]
encoder_example: add --[no-]activity-masking

3 years agoencoder_example: use sizeof(var), not sizeof(type)
Tristan Matthews [Wed, 13 May 2015 17:41:56 +0000 (13:41 -0400)]
encoder_example: use sizeof(var), not sizeof(type)

3 years agoUsing a proper CDF
Jean-Marc Valin [Wed, 13 May 2015 19:19:04 +0000 (15:19 -0400)]
Using a proper CDF

3 years agoFixes encoder to not rewrite the painted image multiple times
Jean-Marc Valin [Wed, 13 May 2015 19:10:54 +0000 (15:10 -0400)]
Fixes encoder to not rewrite the painted image multiple times

3 years agodecoder seems to work
Jean-Marc Valin [Wed, 13 May 2015 18:15:23 +0000 (14:15 -0400)]
decoder seems to work

3 years agoAdding decoder code (untested)
Jean-Marc Valin [Wed, 13 May 2015 17:34:46 +0000 (13:34 -0400)]
Adding decoder code (untested)

3 years agomoving common files to intra_paint.c
Jean-Marc Valin [Wed, 13 May 2015 17:16:50 +0000 (13:16 -0400)]
moving common files to intra_paint.c

3 years agoRemoving more functions
Jean-Marc Valin [Wed, 13 May 2015 15:50:14 +0000 (11:50 -0400)]
Removing more functions

3 years agogetting rid of another function
Jean-Marc Valin [Wed, 13 May 2015 05:21:34 +0000 (01:21 -0400)]
getting rid of another function

3 years agomerging analysis functions
Jean-Marc Valin [Wed, 13 May 2015 05:16:23 +0000 (01:16 -0400)]
merging analysis functions

3 years agoRemoving more useless args
Jean-Marc Valin [Wed, 13 May 2015 05:09:24 +0000 (01:09 -0400)]
Removing more useless args

3 years agoRemoving another pass
Jean-Marc Valin [Wed, 13 May 2015 05:05:17 +0000 (01:05 -0400)]
Removing another pass

3 years agomoving another global var to the state
Jean-Marc Valin [Wed, 13 May 2015 05:02:36 +0000 (01:02 -0400)]
moving another global var to the state

3 years agoMaking fewer passes on the images
Jean-Marc Valin [Wed, 13 May 2015 04:35:55 +0000 (00:35 -0400)]
Making fewer passes on the images

3 years agoCleaning up the Wiener filter gain computation a bit
Jean-Marc Valin [Wed, 13 May 2015 04:29:11 +0000 (00:29 -0400)]
Cleaning up the Wiener filter gain computation a bit

3 years agoAdding comments
Jean-Marc Valin [Wed, 13 May 2015 04:16:53 +0000 (00:16 -0400)]
Adding comments

3 years agoremoves more useless stuff
Jean-Marc Valin [Wed, 13 May 2015 03:25:17 +0000 (23:25 -0400)]
removes more useless stuff

3 years agoRemoves useless arguments
Jean-Marc Valin [Wed, 13 May 2015 03:16:31 +0000 (23:16 -0400)]
Removes useless arguments

3 years agoAdd option to png2y4m to turn off dithering.
Thomas Daede [Thu, 30 Apr 2015 21:47:45 +0000 (14:47 -0700)]
Add option to png2y4m to turn off dithering.

3 years agoRemove unused parameter "res"
Guillaume Martres [Tue, 12 May 2015 22:11:54 +0000 (00:11 +0200)]
Remove unused parameter "res"

3 years agoRemove dead code related to intra painting block size decisions
Guillaume Martres [Tue, 12 May 2015 22:06:09 +0000 (00:06 +0200)]
Remove dead code related to intra painting block size decisions

3 years agoSignal in bitstream if activity masking is in use
Tristan Matthews [Mon, 11 May 2015 20:47:35 +0000 (16:47 -0400)]
Signal in bitstream if activity masking is in use

Also adds an encoder control to toggle activity masking at runtime.
Refs #60

3 years agoFix GCC warnings
Guillaume Martres [Tue, 12 May 2015 20:59:16 +0000 (22:59 +0200)]
Fix GCC warnings

3 years agoPaint deringing rebase
Jean-Marc Valin [Tue, 12 May 2015 18:56:49 +0000 (14:56 -0400)]
Paint deringing rebase

3 years agoRemove impossible cases at end of mv refinement DP chains
Monty Montgomery [Mon, 11 May 2015 23:37:52 +0000 (16:37 -0700)]
Remove impossible cases at end of mv refinement DP chains

Following the same logic as at the beginning of chains, ala issue 730,
removes impossible cases at end of refinement chains and adds ASSERTs
to guard the removed code.  Adddresses issue #733.

3 years agoRemove code for impossible split cases in row/col first-node refinement
Monty Montgomery [Mon, 11 May 2015 23:33:25 +0000 (16:33 -0700)]
Remove code for impossible split cases in row/col first-node refinement

Removes the split-block detection code from od_mv_dp_first_row_block_setup() and
od_mv_dp_first_col_block_setup() because split cases are impossible there.  Also
adds asserts to make sure we're not wrong about that later.
Addresses issue #730.

3 years agoFix the outdated comments and usage info with addition of 32x32 ME/MC.
yushin [Mon, 11 May 2015 20:55:49 +0000 (13:55 -0700)]
Fix the outdated comments and usage info with addition of 32x32 ME/MC.

3 years agoAdd DECCTL to get the motion compensated image.
Thomas Daede [Fri, 8 May 2015 21:01:01 +0000 (14:01 -0700)]
Add DECCTL to get the motion compensated image.

3 years agoencoder: remove some dead assignments
Tristan Matthews [Mon, 11 May 2015 00:24:53 +0000 (20:24 -0400)]
encoder: remove some dead assignments

3 years agoAdd a PACKAGE_STRING define to the unix Makefile.
Thomas Daede [Thu, 7 May 2015 22:24:28 +0000 (15:24 -0700)]
Add a PACKAGE_STRING define to the unix Makefile.

3 years agoAdd --version flag to examples #84
Danesh Daroui [Sun, 26 Apr 2015 21:57:43 +0000 (23:57 +0200)]
Add --version flag to examples #84

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoUpdate rd_collect_x264.sh to match AWCY.
Nathan E. Egge [Wed, 6 May 2015 20:53:28 +0000 (16:53 -0400)]
Update rd_collect_x264.sh to match AWCY.

3 years agoUpdate rd_collect_x265.sh to work with x265 1.6.
Thomas Daede [Tue, 5 May 2015 22:14:59 +0000 (15:14 -0700)]
Update rd_collect_x265.sh to work with x265 1.6.

3 years agoAdd to_monochrome, downsample and upsample tools
Guillaume Martres [Thu, 7 Aug 2014 20:52:29 +0000 (22:52 +0200)]
Add to_monochrome, downsample and upsample tools

3 years agoencode: fix warnings if assertions are disabled
Tristan Matthews [Thu, 30 Apr 2015 22:59:44 +0000 (18:59 -0400)]
encode: fix warnings if assertions are disabled

Fixes "suggest braces around empty body in an 'else' statement [-Wempty-body]"

3 years agotheoretical results for MC
Jean-Marc Valin [Wed, 22 Apr 2015 14:17:32 +0000 (10:17 -0400)]
theoretical results for MC

3 years agoAdds analyser to windows project
Orestes Zoupanos [Wed, 29 Apr 2015 22:14:43 +0000 (23:14 +0100)]
Adds analyser to windows project

3 years agofix copyright year and executable name
MisterZeus [Wed, 29 Apr 2015 19:01:31 +0000 (20:01 +0100)]
fix copyright year and executable name

3 years agoadded win32/ReadMe.txt
MisterZeus [Wed, 29 Apr 2015 18:48:49 +0000 (19:48 +0100)]
added win32/ReadMe.txt

3 years agoAdd 'f' for fullscreen to player_example.
Ralph Giles [Wed, 29 Apr 2015 17:19:48 +0000 (10:19 -0700)]
Add 'f' for fullscreen to player_example.

SDL will scale the image in the gpu, so this isn't ideal for
diagnostic interpretation, but is nice for display, especially
for higher resolution videos which may not fit on a single screen
in a decorated window.

This works better than SDL_WM_ToggleFullScreen() in SDL 1.2,
which tries to change the output video resolution. However
there are still some issues, e.g. gnome-shell minimizes
the window if it loses focus.

Signed-off-by: Thomas Daede <daede003@umn.edu>
3 years agoPort player_example to SDL2.
Ralph Giles [Wed, 29 Apr 2015 17:16:59 +0000 (10:16 -0700)]
Port player_example to SDL2.

The newer versions integrates better with newer desktop environments.

The documenation suggests the streaming texture update might be
faster but I didn't benchmark it. We do seem to need to switch
to 32-bit RGB which increases bandwidth by 33%, but may avoid
a conversion in the blit.

Signed-off-by: Thomas Daede <daede003@umn.edu>
3 years agoAdd more player shortcuts.
Ralph Giles [Wed, 29 Apr 2015 14:43:14 +0000 (07:43 -0700)]
Add more player shortcuts.

Make 'home' an alias for 'r' and 'right arrow' and alias for '.'.

Signed-off-by: Thomas Daede <daede003@umn.edu>
3 years agoFixes an overflow in od_compute_var_4x4() when the prefilter creates large values
Jean-Marc Valin [Wed, 29 Apr 2015 13:26:53 +0000 (09:26 -0400)]
Fixes an overflow in od_compute_var_4x4() when the prefilter creates large values

Negligible impact on metrics. Also tried rounding, but it didn't help (slightly worse, but in the noise)

3 years agoFix alerts when building against wxMSW.
Nathan E. Egge [Wed, 29 Apr 2015 13:24:18 +0000 (09:24 -0400)]
Fix alerts when building against wxMSW.

When building with VS2010 using wxWidgets-3.0.2 alerts were triggered if
 the menu bar is not attached *before* the menus are disabled.

3 years agoFix the "accelerated" 32x32 od_mc_predict1fmv8().
Timothy B. Terriberry [Wed, 29 Apr 2015 04:42:26 +0000 (21:42 -0700)]
Fix the "accelerated" 32x32 od_mc_predict1fmv8().

It was only predicting a 16x16 block.

           RATE (%)  DSNR (dB)
    PSNR -2.47376  0.07721
 PSNRHVS -2.45295  0.12232
    SSIM -2.65089  0.06357
FASTSSIM -2.66066  0.07443

3 years agoAdd some asserts to refinement block location.
Timothy B. Terriberry [Tue, 28 Apr 2015 21:46:55 +0000 (14:46 -0700)]
Add some asserts to refinement block location.

Each time we identify a block on the DP path whose distortion we
 need to update, we think we know exactly what size it is (by
 looking at which MVs are in the grid).
We should check that against the cached size in the block itself,
 which is what we actually use when evaluating that distortion.

3 years agoAdd back support for 4x4 MVs.
Timothy B. Terriberry [Tue, 28 Apr 2015 04:40:02 +0000 (21:40 -0700)]
Add back support for 4x4 MVs.

This extends the maximum subdivision level of the MV grid from 4
 levels to 6, which allows it to support from 32x32 down to 4x4.
The initial probabilities for the MV flags are just placeholders.

           RATE (%)  DSNR (dB)
    PSNR -4.38753  0.15141
 PSNRHVS -4.22323  0.22830
    SSIM -5.28106  0.13926
FASTSSIM -4.05122  0.12323

3 years agoMake DP advancement more generic.
Timothy B. Terriberry [Tue, 28 Apr 2015 04:33:55 +0000 (21:33 -0700)]
Make DP advancement more generic.

As we traverse each row or column, we need to figure out where the
 next valid MV we have to consider lies.
Before we special-cased each kind of MV to minimize the number of
 checks that had to be made to figure out where it is.
This just uses a very simple generic version.

3 years agoMake refinement block location more generic.
Timothy B. Terriberry [Tue, 28 Apr 2015 04:29:57 +0000 (21:29 -0700)]
Make refinement block location more generic.

The previous code only checked to see if a block was split down
 exactly two sizes.
This extends it to check for an arbitrary number (and the code
 winds up slightly simpler, as a bonus).

3 years agoClean-up and document refinement block location.
Timothy B. Terriberry [Tue, 28 Apr 2015 04:19:32 +0000 (21:19 -0700)]
Clean-up and document refinement block location.

Adds some documentation for what's going on in the code that
 identifies which blocks are affected by a given DP node during MV

3 years agoFix a sign error introduced in 2420902b5fa0.
Timothy B. Terriberry [Tue, 28 Apr 2015 03:40:31 +0000 (20:40 -0700)]
Fix a sign error introduced in 2420902b5fa0.

"Up-right" is negative y, positive x.

Although one would expect this to have some impact on the search and
 trigger asserts (due to evaluating the wrong error domain during
 refinement), it appears to have exactly no effect on ntt-short-1.
I am not quite certain why.

3 years agoMinor whitespace fixes.
Timothy B. Terriberry [Tue, 28 Apr 2015 03:38:25 +0000 (20:38 -0700)]
Minor whitespace fixes.

vx-pred_hist contains a minus, not an -> operator.

3 years agoMake OD_SET_MV_LEVEL_{MIN|MAX} checks more generic.
Timothy B. Terriberry [Fri, 24 Apr 2015 23:03:55 +0000 (16:03 -0700)]
Make OD_SET_MV_LEVEL_{MIN|MAX} checks more generic.

This makes them use the #defines from internal.h to check the
 bounds of legal values.
Unfortunately, it's not quite as easy to make the Doxygen
 documentation in include/daala/daalaenc.h automatically update,
 since OD_MC_LEVEL_MAX is a non-public symbol, but that's perhaps a
 good reason for these CTLs to go away in favor of the more-general
 complexity knob.

3 years agoMake od_mv_est_init_mvs() more generic.
Timothy B. Terriberry [Fri, 24 Apr 2015 23:01:50 +0000 (16:01 -0700)]
Make od_mv_est_init_mvs() more generic.

This makes this code independent of the number of levels.

3 years agoMake MV decoding more generic.
Timothy B. Terriberry [Fri, 24 Apr 2015 22:23:48 +0000 (15:23 -0700)]
Make MV decoding more generic.

This generalizes it to work with an arbitrary number of levels.

This is the corresponding decoder patch for the previous encoder

3 years agoMake MV encoding more generic.
Timothy B. Terriberry [Fri, 24 Apr 2015 22:21:51 +0000 (15:21 -0700)]
Make MV encoding more generic.

This generalizes it to work with an arbtirary number of levels.

This patch only modifies the encoder, which still decode correctly
 in the decoder according to --enable-encoder-check, which is a
 reasonable test that this does not change the bitstream.

3 years agoFix some MV debugging code and add more asserts.
Timothy B. Terriberry [Wed, 22 Apr 2015 21:40:46 +0000 (14:40 -0700)]
Fix some MV debugging code and add more asserts.

This fixes some commented-out code, and converts it into assertions
 that get enabled with OD_ENABLE_ASSERTIONS.
It also starts calling od_mv_est_check_rd_state() when assertions
 are enabled, even if logging is not, and adds assertions to each
 of the failure cases.

This makes it easier to sanity-check the MV search without having
 to enable OD_LOG_MODULES=motion-estimation:4 or higher.

3 years agoScale all motion vector blocks by 2.
Timothy B. Terriberry [Mon, 20 Apr 2015 23:08:53 +0000 (16:08 -0700)]
Scale all motion vector blocks by 2.

This increases the maximum size of a motion vector block to 32x32,
 but also increases the minimum size to 8x8.
This avoids adding any additional subdivision levels to the grid,
 which makes the patch very simple.

           RATE (%)  DSNR (dB)
    PSNR -4.68406  0.16310
 PSNRHVS -4.67781  0.24601
    SSIM -4.69402  0.12952
FASTSSIM -3.71246  0.11036

3 years agoFix grid splitting in stage 1 MV animation.
Timothy B. Terriberry [Wed, 22 Apr 2015 00:12:43 +0000 (17:12 -0700)]
Fix grid splitting in stage 1 MV animation.

The animation code would mark all of a MV's ancestors in the grid as
 valid so that when drawing the grid, it would be properly split
 down to show the current node being searched.
However, this is somewhat confusing, as with the current
 initialization order, we add nodes even though their parents have
 not all been searched, specifically in the case where those parents
 are not used as predictors (along the bottom/right edges of a
 level-0 MVB).
That makes these extra MVs get rendered before they are searched (with
 whatever MV happens to be in the grid).
This avoids marking such MVs valid, so the pictures look more sane.

3 years agoFix uninitialized vars in the MV animation code.
Timothy B. Terriberry [Wed, 22 Apr 2015 00:10:34 +0000 (17:10 -0700)]
Fix uninitialized vars in the MV animation code.

Just a copy-paste error introduced during style clean-ups.

3 years agoMake flag probabilities adaptive.
Timothy B. Terriberry [Tue, 21 Apr 2015 21:54:17 +0000 (14:54 -0700)]
Make flag probabilities adaptive.

Adjusting the maximum and minimum MV block size will change the
 optimal probabilities for these greatly, so make them adaptive.
The initialization is probably overkill, but I wanted to bias
 towards maintaining the current performance at the lower levels,
 which are often only coded a few times per frame.

This is only a small improvement with the current code:
           RATE (%)  DSNR (dB)
    PSNR -0.19491  0.00722
 PSNRHVS -0.17933  0.00988
    SSIM -0.19224  0.00558
FASTSSIM -0.11805  0.00371

But it changes the performance of a future 32x32 patch by more than

3 years agoUse some ME constants in the SSE2 asm.
Timothy B. Terriberry [Tue, 14 Apr 2015 22:59:59 +0000 (15:59 -0700)]
Use some ME constants in the SSE2 asm.

This just converts the sizes of the VTBLs used to dispatch
 invocations to the functions hard-coded to a particular size.
It does not do anything to ensure these tables are populated, but
 at least this way you'll know if they have more entries than they
 need, or get clean NULL pointer crashes if they don't have enough.

This commit should not affect the encoder output.

3 years agoUse ME constants in Phases 3 and 4 of motion estimation.
Timothy B. Terriberry [Tue, 14 Apr 2015 22:52:28 +0000 (15:52 -0700)]
Use ME constants in Phases 3 and 4 of motion estimation.

This converts all of Phases 3 and 4 over to using the new ME

This commit should not affect the encoder output.

3 years agoUse ME constants in Phase 2 of motion estimation.
Timothy B. Terriberry [Tue, 14 Apr 2015 22:29:51 +0000 (15:29 -0700)]
Use ME constants in Phase 2 of motion estimation.

This converts the rest of Phsae 2 (beyond the SAD cache, which was
 converted in the previous comment) over to using the new ME

This commit should not affect the encoder output.

3 years agoMake the SAD cache more generic.
Timothy B. Terriberry [Tue, 14 Apr 2015 22:16:59 +0000 (15:16 -0700)]
Make the SAD cache more generic.

Rather than just replacing the hard-coded constants in code whose
 flow assumes a hard-coded number of levels in the SAD cache, it is
 actually straight forward to just convert it to support an
 aribtrary number of levels.

This commit should not affect the encoder output.

3 years agoUse ME constants in Phase 1 of motion estimation.
Timothy B. Terriberry [Tue, 14 Apr 2015 22:04:14 +0000 (15:04 -0700)]
Use ME constants in Phase 1 of motion estimation.

This finishes the job of using the new ME constants throughout
 Phase 1 of the motion estimation process.

This commit should not affect the encoder output.

3 years agoUse ME constants in MV predictor generation.
Timothy B. Terriberry [Tue, 14 Apr 2015 21:49:14 +0000 (14:49 -0700)]
Use ME constants in MV predictor generation.

This converts MV predictor generation to use the constants added in
 commit 55199471e0a3.

We intentionally defer converting the other portions of
 od_mv_est_init_mv() to a subsequent commit to simplify review.

This commit should not affect the encoder output.

3 years agoSimplify context generation for MV grid flags.
Timothy B. Terriberry [Tue, 14 Apr 2015 21:37:14 +0000 (14:37 -0700)]
Simplify context generation for MV grid flags.

This replaces the four separate functions we use to compute the
 context index for signaling the presence of a MV grid point with a
 single function that works for any subdivision level.

This commit should not affect the encoder output.

3 years agoStart using ME constants in state.c.
Timothy B. Terriberry [Tue, 14 Apr 2015 21:31:24 +0000 (14:31 -0700)]
Start using ME constants in state.c.

This starts using the constants added in commit 55199471e0a3.

This commit should not affect the encoder output.

3 years agoAdd named constants for various ME parameters.
Timothy B. Terriberry [Tue, 14 Apr 2015 21:17:55 +0000 (14:17 -0700)]
Add named constants for various ME parameters.

Many of the constants in the motion-estimation code are currently
This adds new named constants to be used in their place, but does
 not begin the step of actually converting the code over to use
It does not add named constants for things unrelated to the block
 sizes (specifically, the minimum and maximum MV resolution, or
 the split/unsplit edge configurations).

It does, however, rename OD_MCBSIZE_MAX to OD_MVBSIZE_MAX to be more
 consistent with the use of mvb_sz, log_mvb_sz, etc., in variable
 names throughout the rest of the code.

3 years agoReplace n[hv]mbs with n[hv]mvbs.
Timothy B. Terriberry [Tue, 14 Apr 2015 21:13:19 +0000 (14:13 -0700)]
Replace n[hv]mbs with n[hv]mvbs.

The only place we were using n[hv]mbs (the number of
 horizontal/vertical macroblocks) was to compute n[hv]mvbs (the
 number of horizontal/vertical motion vector blocks).
Store the latter directly, removing the redundant computations.

Where a local variable was only used once, converted it to reference
 the state struct directly for brevity.

3 years agoRemove the MV grid border.
Timothy B. Terriberry [Sat, 11 Apr 2015 01:00:56 +0000 (18:00 -0700)]
Remove the MV grid border.

We had a border of +/- 8 pixels to the MV grid relative to the
 video frame.
When 16x16 was the largest transform block size we supported, this
 meant that we were always able to compute the prediction 8 pixels
 in advance of a 16x16 MB (assuming that some day we encoded MVs
 in the stream interleaved with coefficient data), which was
 exactly what we needed for the lapping.
However, when we added a 32-point filter, 16 pixels was no longer
 enough, and when we switched to fixed-lapping, it is now too much
 (4 pixels would have been enough).
Since it's not really practical to add a 4-pixel offset when the
 maximum block size is 32x32 (or even 64x64), since it would mean
 accurately representing MVs on the border would require lots of
 splitting, instead this commit just removes the border.
This will simplify implementing 32x32 MV blocks.

Some things get simpler with this approach (e.g., all the special
 cases for grid points outside the frame go away), and some things
 get more complicated (we can no longer assume the neighbor of a
 grid point inside the frame must exist when computing predictors,
 and have to do special tricks to ensure level 2 and 4 MVs on the
 top/left edges have predictors at all).
Overall it's probably a bit simpler.
The worst place complications show up is the MV prediction, which
 at least is self-contained, if unfortunately called quite
But it should definitely make things simpler to reason about going

Results on metrics are mixed, but small:

           RATE (%)  DSNR (dB)
    PSNR  0.07743  -0.00290
 PSNRHVS  0.04403  -0.00245
    SSIM -0.03269   0.00096
FASTSSIM -0.15730   0.00501

3 years agoNormalize the formatting of a MV loop.
Timothy B. Terriberry [Sat, 11 Apr 2015 00:54:13 +0000 (17:54 -0700)]
Normalize the formatting of a MV loop.

Everywhere else, we loop to <= nhmvbs rather than < nhmvbs + 1 (and
 similarly for nvmvbs).

3 years agoFix some formatting and move an assert.
Timothy B. Terriberry [Sat, 11 Apr 2015 00:52:37 +0000 (17:52 -0700)]
Fix some formatting and move an assert.

The assert was vacuously true before.
It should have been one block out before (i.e., if a level-4 MV
 does not have valid parents, then it must not be valid).

3 years agoMake some constants static.
Timothy B. Terriberry [Wed, 8 Apr 2015 23:27:26 +0000 (16:27 -0700)]
Make some constants static.

No reason to load these onto the stack each time the corresponding
 function is called.

3 years agoFormatting-only fix: removes surplus newlines.
MisterZeus [Tue, 28 Apr 2015 17:27:16 +0000 (10:27 -0700)]
Formatting-only fix: removes surplus newlines.

Where there were 2 or more in a row, reduced to 1.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
3 years agoAdd frame count and resolution to analyzer title.
Suhas Nandakumar [Tue, 28 Apr 2015 15:19:13 +0000 (11:19 -0400)]
Add frame count and resolution to analyzer title.

Added the filename, video resolution and frame count to the window title
 in the stream analyzer.

Signed-off-by: Nathan E. Egge <negge@dgql.org>
3 years agoab_compare_daala.sh: Fix a bug that causes .y4m dumps to be sometimes deleted.
Thomas Szymczak [Tue, 21 Apr 2015 02:34:40 +0000 (22:34 -0400)]
ab_compare_daala.sh: Fix a bug that causes .y4m dumps to be sometimes deleted.

3 years agoAdd integer overflow checking CI script.
Thomas Daede [Mon, 27 Apr 2015 21:10:15 +0000 (14:10 -0700)]
Add integer overflow checking CI script.

3 years agoRenaming some shadowed variable names to remove some compiler warnings.
Danesh Daroui [Thu, 23 Apr 2015 22:27:28 +0000 (00:27 +0200)]
Renaming some shadowed variable names to remove some compiler warnings.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
3 years agoSync Jack's submit_awcy.py changes from daala/tools to the changes made in tdaede...
MisterZeus [Wed, 22 Apr 2015 21:40:07 +0000 (14:40 -0700)]
Sync Jack's submit_awcy.py changes from daala/tools to the changes made in tdaede's awcy GitHub.

Actually, this syncs my changes from awcy on GitHub, to the daala/tools dir. I
just added a timestamping function to outputted messages.

3 years agoanalyzer: add YUV values to status bar (fixes #43)
Tristan Matthews [Mon, 20 Apr 2015 19:28:53 +0000 (15:28 -0400)]
analyzer: add YUV values to status bar (fixes #43)

3 years agoMove math.h fills to odintrin.h.
Thomas Daede [Sat, 18 Apr 2015 00:29:39 +0000 (17:29 -0700)]
Move math.h fills to odintrin.h.

3 years agoDon't link metrics tools to libpng.
Thomas Daede [Thu, 16 Apr 2015 22:45:06 +0000 (15:45 -0700)]
Don't link metrics tools to libpng.

3 years agoAdded comments to mv_res of struct state.
yushin [Tue, 14 Apr 2015 23:43:53 +0000 (16:43 -0700)]
Added comments to mv_res of struct state.

3 years agoFix for max mv range being doubled when encoded.
yushin [Tue, 14 Apr 2015 23:41:44 +0000 (16:41 -0700)]
Fix for max mv range being doubled when encoded.

3 years agoRemove dead assignments.
Nathan E. Egge [Tue, 14 Apr 2015 16:20:08 +0000 (12:20 -0400)]
Remove dead assignments.

3 years agoRemove extraneous logging message in MV search
Thomas Daede [Tue, 14 Apr 2015 16:12:10 +0000 (12:12 -0400)]
Remove extraneous logging message in MV search

3 years agoFix shadowed variable declaration warnings in DCT.
Nathan E. Egge [Tue, 14 Apr 2015 12:13:22 +0000 (08:13 -0400)]
Fix shadowed variable declaration warnings in DCT.

3 years agoClean doxygen_sqlite3.db, generated by newer versions of Doxygen.
Thomas Daede [Mon, 13 Apr 2015 23:04:01 +0000 (16:04 -0700)]
Clean doxygen_sqlite3.db, generated by newer versions of Doxygen.

3 years agoUse rand() instead of random() so that tests build on mingw64.
Thomas Daede [Thu, 9 Apr 2015 18:36:23 +0000 (11:36 -0700)]
Use rand() instead of random() so that tests build on mingw64.

3 years agoAdd "next frame" menu item in analyzer
David Stygstra [Wed, 8 Apr 2015 06:27:07 +0000 (02:27 -0400)]
Add "next frame" menu item in analyzer

Fixes #47