platform/upstream/libvpx.git
10 years agoMerge "vp9 decode: defer loop filter allocation"
James Zern [Mon, 28 Oct 2013 15:00:59 +0000 (08:00 -0700)]
Merge "vp9 decode: defer loop filter allocation"

10 years agoMerge "vp9_thread_test: quiet some msvc int->bool warnings"
James Zern [Mon, 28 Oct 2013 14:58:04 +0000 (07:58 -0700)]
Merge "vp9_thread_test: quiet some msvc int->bool warnings"

10 years agoMerge "Adding fht{4x4, 8x8, 16x16} functions."
Dmitry Kovalev [Sat, 26 Oct 2013 10:03:27 +0000 (03:03 -0700)]
Merge "Adding fht{4x4, 8x8, 16x16} functions."

10 years agovp9 decode: defer loop filter allocation
James Zern [Sat, 26 Oct 2013 09:57:44 +0000 (11:57 +0200)]
vp9 decode: defer loop filter allocation

wait until do_loopfilter_inline is true before committing the resources

Change-Id: I01661bd40599b47362bb3fb534668471f2a9d8d7

10 years agovp9_thread_test: quiet some msvc int->bool warnings
James Zern [Fri, 25 Oct 2013 20:29:51 +0000 (22:29 +0200)]
vp9_thread_test: quiet some msvc int->bool warnings

Change-Id: I2ed1cb537831c8b595c74ec641296d13d38ef622

10 years agoAdding fht{4x4, 8x8, 16x16} functions.
Dmitry Kovalev [Sat, 26 Oct 2013 00:55:07 +0000 (17:55 -0700)]
Adding fht{4x4, 8x8, 16x16} functions.

Adding these functions to encapsulate tx_type check. Changing TX_TYPE to
int to match the declaration in vo9_rtch.h.

Change-Id: I6f3a2df6e35595ca73b6aaa9e3909ee7bc3fd16f

10 years agoMerge "Adding get_frame_new_buffer() function to replace duplicated code."
Dmitry Kovalev [Fri, 25 Oct 2013 22:25:13 +0000 (15:25 -0700)]
Merge "Adding get_frame_new_buffer() function to replace duplicated code."

10 years agoMerge "Making input pointer constant for all fdct/fht functions."
Dmitry Kovalev [Fri, 25 Oct 2013 22:14:49 +0000 (15:14 -0700)]
Merge "Making input pointer constant for all fdct/fht functions."

10 years agoAdding COLOR_SPACE enum.
Dmitry Kovalev [Fri, 25 Oct 2013 19:35:20 +0000 (12:35 -0700)]
Adding COLOR_SPACE enum.

Change-Id: If5711eb166609cce0a88b3cb5b56b3afeebc4fb0

10 years agoUpdating gtest from 1.6.0 to 1.7.0.
Dmitry Kovalev [Fri, 25 Oct 2013 17:58:09 +0000 (10:58 -0700)]
Updating gtest from 1.6.0 to 1.7.0.

This is required in order to build libvpx on OS X Mavericks where gcc
compiler is deleted, clang (3.3) is the default now.

Using unmodified source files from gtest-1.7.0/fused-src folder.

Change-Id: I3d5f7278149c904e48737327daf7097a8bb0b390

10 years agoMerge "Add 32x32 idct function for eob<=34 case"
Yunqing Wang [Fri, 25 Oct 2013 16:34:46 +0000 (09:34 -0700)]
Merge "Add 32x32 idct function for eob<=34 case"

10 years agoMerge "Separate encode_block for pass 1 and 2"
Jingning Han [Fri, 25 Oct 2013 04:39:27 +0000 (21:39 -0700)]
Merge "Separate encode_block for pass 1 and 2"

10 years agoAdd 32x32 idct function for eob<=34 case
Yunqing Wang [Wed, 23 Oct 2013 21:25:16 +0000 (14:25 -0700)]
Add 32x32 idct function for eob<=34 case

When only upper-left 8x8 area has non-zero dct coefficients, we
could skip 1D IDCT for 9th to 32th rows to save operations. This
function is called when eob <= 34.

Change-Id: I9684b75947bdde346cfe3720f08a953aa7a13fb5

10 years agoMerge "mips dsp-ase r2 vp9 decoder idct module optimizations (rebase)"
Johann [Thu, 24 Oct 2013 22:49:31 +0000 (15:49 -0700)]
Merge "mips dsp-ase r2 vp9 decoder idct module optimizations (rebase)"

10 years agoAdding get_frame_new_buffer() function to replace duplicated code.
Dmitry Kovalev [Thu, 24 Oct 2013 19:20:35 +0000 (12:20 -0700)]
Adding get_frame_new_buffer() function to replace duplicated code.

Change-Id: I6e0e19231a48364c1de7dfab730b121ab227f111

10 years agoMerge "Adding get_frame_ref_buffer() function + cleanup."
Dmitry Kovalev [Thu, 24 Oct 2013 18:53:23 +0000 (11:53 -0700)]
Merge "Adding get_frame_ref_buffer() function + cleanup."

10 years agoMaking input pointer constant for all fdct/fht functions.
Dmitry Kovalev [Thu, 24 Oct 2013 18:48:25 +0000 (11:48 -0700)]
Making input pointer constant for all fdct/fht functions.

Change-Id: I78f7012f967a777ddd39bae6671eb501df6bbfe8

10 years agoMerge "vpxdec: Fix webm fps check."
Frank Galligan [Thu, 24 Oct 2013 18:18:14 +0000 (11:18 -0700)]
Merge "vpxdec: Fix webm fps check."

10 years agoAdding get_frame_ref_buffer() function + cleanup.
Dmitry Kovalev [Wed, 23 Oct 2013 00:21:27 +0000 (17:21 -0700)]
Adding get_frame_ref_buffer() function + cleanup.

Change-Id: Ib9ead216fc54b2df6f6f1fe82d2ea137197beebd

10 years agovpxdec: Fix webm fps check.
Frank Galligan [Thu, 24 Oct 2013 17:33:24 +0000 (10:33 -0700)]
vpxdec: Fix webm fps check.

If the webm file did not have a Cues then vpxdec would fail
when creating a y4m file. If there is no Cues element print
out a warning and set fps to 30.

Change-Id: Ieea7040265dfdac7dff4ccf917c6f756160a96bc

10 years agoMerge "Disable two libvpx APIs for VP9"
Yaowu Xu [Thu, 24 Oct 2013 17:31:29 +0000 (10:31 -0700)]
Merge "Disable two libvpx APIs for VP9"

10 years agoMerge "Eliminating usage of allow_comp_inter_inter in the decoder."
Dmitry Kovalev [Thu, 24 Oct 2013 17:09:37 +0000 (10:09 -0700)]
Merge "Eliminating usage of allow_comp_inter_inter in the decoder."

10 years agoMerge "Renaming vp9_short_fdct4x4 and vp9_short_walsh4x4."
Dmitry Kovalev [Thu, 24 Oct 2013 17:08:42 +0000 (10:08 -0700)]
Merge "Renaming vp9_short_fdct4x4 and vp9_short_walsh4x4."

10 years agoMerge changes I1868fb75,I9ff504c6
Dmitry Kovalev [Thu, 24 Oct 2013 17:08:19 +0000 (10:08 -0700)]
Merge changes I1868fb75,I9ff504c6

* changes:
  Renaming INTERPOLATIONFILTERTYPE to INTERPOLATION_TYPE.
  Adding VP9_FRAME_MARKER constant.

10 years agoMerge "Cleaning up {above, left}_block_mode functions."
Dmitry Kovalev [Thu, 24 Oct 2013 17:07:51 +0000 (10:07 -0700)]
Merge "Cleaning up {above, left}_block_mode functions."

10 years agoMerge "Improve scale_factors struct"
Yunqing Wang [Thu, 24 Oct 2013 16:13:41 +0000 (09:13 -0700)]
Merge "Improve scale_factors struct"

10 years agoDisable two libvpx APIs for VP9
Yaowu Xu [Wed, 23 Oct 2013 23:57:25 +0000 (16:57 -0700)]
Disable two libvpx APIs for VP9

set_active_map()
set_roi_map()

The APIs need be implemented and tested later, to insure consistency
with VP9 codec internals

Change-Id: I198124ee318f0883b58d1d36cea3c7ccd742a57e

10 years agoMerge "vp9/extend_for_intra: avoid crossing tile boundary"
James Zern [Thu, 24 Oct 2013 13:04:10 +0000 (06:04 -0700)]
Merge "vp9/extend_for_intra: avoid crossing tile boundary"

10 years agovp9/extend_for_intra: avoid crossing tile boundary
James Zern [Wed, 23 Oct 2013 19:33:11 +0000 (21:33 +0200)]
vp9/extend_for_intra: avoid crossing tile boundary

Change-Id: I0d8a71778aa3c73b8b1673e14053074bb866548b

10 years agomips dsp-ase r2 vp9 decoder idct module optimizations (rebase)
Parag Salasakar [Thu, 24 Oct 2013 05:59:04 +0000 (11:29 +0530)]
mips dsp-ase r2 vp9 decoder idct module optimizations (rebase)

Change-Id: Iedcdb8867084f328f4fce2fadb968e0984217308

10 years agoCleaning up {above, left}_block_mode functions.
Dmitry Kovalev [Thu, 24 Oct 2013 00:54:13 +0000 (17:54 -0700)]
Cleaning up {above, left}_block_mode functions.

Making {above, left}_block_mode more clear and symmetric.

Change-Id: Ie348a950fb9a5cf52861d0cba838a58010ff56ad

10 years agoRenaming INTERPOLATIONFILTERTYPE to INTERPOLATION_TYPE.
Dmitry Kovalev [Thu, 24 Oct 2013 00:45:52 +0000 (17:45 -0700)]
Renaming INTERPOLATIONFILTERTYPE to INTERPOLATION_TYPE.

Change-Id: I1868fb75ed88bfa65c1c2ca24677d65f2894d713

10 years agoAdding VP9_FRAME_MARKER constant.
Dmitry Kovalev [Thu, 24 Oct 2013 00:24:17 +0000 (17:24 -0700)]
Adding VP9_FRAME_MARKER constant.

Also renaming SYNC_CODE_* to VP9_SYNC_CODE_*.

Change-Id: I9ff504c6ebce6cd6673d7df2085d597b818f5960

10 years agoRenaming vp9_short_fdct4x4 and vp9_short_walsh4x4.
Dmitry Kovalev [Wed, 23 Oct 2013 21:28:39 +0000 (14:28 -0700)]
Renaming vp9_short_fdct4x4 and vp9_short_walsh4x4.

For consistency with idct function names. Renames:
  vp9_short_fdct4x4  -> vp9_fdct4x4
  vp9_short_walsh4x4 -> vp9_fwht4x4

Change-Id: Id15497cc1270acca626447d846f0ce9199770f58

10 years agoMerge "Renaming vp9_short_fdct32x32 to vp9_fdct32x32."
Dmitry Kovalev [Wed, 23 Oct 2013 21:18:57 +0000 (14:18 -0700)]
Merge "Renaming vp9_short_fdct32x32 to vp9_fdct32x32."

10 years agoEliminating usage of allow_comp_inter_inter in the decoder.
Dmitry Kovalev [Wed, 23 Oct 2013 21:18:09 +0000 (14:18 -0700)]
Eliminating usage of allow_comp_inter_inter in the decoder.

Splitting setup_inter_inter function into is_compound_prediction_allowed
and setup_compound_prediction. Moving setup_compound_prediction call
into read_comp_pred from read_uncompressed_header.

We should do the same in the encoder as well.

Change-Id: I40d75fdc4a221b2f7705df00d23a4b3fe79987c3

10 years agoMerge "Use inter mode flag in super_block_yrd"
Jingning Han [Wed, 23 Oct 2013 20:52:05 +0000 (13:52 -0700)]
Merge "Use inter mode flag in super_block_yrd"

10 years agoRenaming vp9_short_fdct32x32 to vp9_fdct32x32.
Dmitry Kovalev [Wed, 23 Oct 2013 20:41:40 +0000 (13:41 -0700)]
Renaming vp9_short_fdct32x32 to vp9_fdct32x32.

For consistency with idct function names.

Change-Id: Ie77b7178e0894c57cd5cb9243c949eb9224ece18

10 years agoMerge "Renaming vp9_short_fdct16x16 to vp9_fdct16x16."
Dmitry Kovalev [Wed, 23 Oct 2013 20:37:09 +0000 (13:37 -0700)]
Merge "Renaming vp9_short_fdct16x16 to vp9_fdct16x16."

10 years agoMerge "Renaming vp9_short_fdct8x8 to vp9_fdct8x8."
Dmitry Kovalev [Wed, 23 Oct 2013 18:38:55 +0000 (11:38 -0700)]
Merge "Renaming vp9_short_fdct8x8 to vp9_fdct8x8."

10 years agoSeparate encode_block for pass 1 and 2
Jingning Han [Wed, 23 Oct 2013 18:09:27 +0000 (11:09 -0700)]
Separate encode_block for pass 1 and 2

The encode_block for pass 1 takes simpler functionalities and can
save a few branches. The main reason is to make encode_block only
used after running rate-distortion optimization search in pass 2,
hence allowing dual buffer stack approach later.

Change-Id: I9e549ffb758e554fe185e48a07d6e0e01e475bcf

10 years agoUse inter mode flag in super_block_yrd
Jingning Han [Wed, 23 Oct 2013 17:06:11 +0000 (10:06 -0700)]
Use inter mode flag in super_block_yrd

Use a flag variable to determine if coded in inter mode, thus avoiding
multiple inter mode checks in super_block_yrd.

Change-Id: I0ef998b2811c38e185a2e0583f0f636cee45d2cf

10 years agoMerge "Make decode modules independent of tile index"
Jingning Han [Wed, 23 Oct 2013 18:08:12 +0000 (11:08 -0700)]
Merge "Make decode modules independent of tile index"

10 years agoRenaming vp9_short_fdct16x16 to vp9_fdct16x16.
Dmitry Kovalev [Wed, 23 Oct 2013 17:57:12 +0000 (10:57 -0700)]
Renaming vp9_short_fdct16x16 to vp9_fdct16x16.

For consistency with idct function names.

Change-Id: I5ca355ba99fdba04f09254be95cf79808b534f71

10 years agoRenaming vp9_short_fdct8x8 to vp9_fdct8x8.
Dmitry Kovalev [Wed, 23 Oct 2013 17:52:33 +0000 (10:52 -0700)]
Renaming vp9_short_fdct8x8 to vp9_fdct8x8.

For consistency with idct function names.

Change-Id: I7b6af2f92c66eff56f84ed29edc3a66af8dc421f

10 years agoMerge "Reordering probability tables for consistency."
Dmitry Kovalev [Wed, 23 Oct 2013 17:10:24 +0000 (10:10 -0700)]
Merge "Reordering probability tables for consistency."

10 years agoMerge "Removing quantize_b_4x4 function pointer."
Dmitry Kovalev [Wed, 23 Oct 2013 17:09:53 +0000 (10:09 -0700)]
Merge "Removing quantize_b_4x4 function pointer."

10 years agoRemove right_available member from VP9_COMP
Adrian Grange [Tue, 22 Oct 2013 23:53:37 +0000 (16:53 -0700)]
Remove right_available member from VP9_COMP

This member of VP9_COMP is no longer used, so I removed it.

Change-Id: I3509f52756da4768a3e4581cec5ed5d2a70d5fb8

10 years agoMake decode modules independent of tile index
Jingning Han [Tue, 22 Oct 2013 22:22:59 +0000 (15:22 -0700)]
Make decode modules independent of tile index

Assign the pointer to mode_info stream per tile. Remove the use of
tile_col in the decoding modules.

Change-Id: I7df87086708a3d92c5e20e86bcfb04e458ff47a6

10 years agoMerge "Moving functions from vp9_decodemv.c to vp9_decodframe.c."
Dmitry Kovalev [Tue, 22 Oct 2013 21:00:48 +0000 (14:00 -0700)]
Merge "Moving functions from vp9_decodemv.c to vp9_decodframe.c."

10 years agoMoving functions from vp9_decodemv.c to vp9_decodframe.c.
Dmitry Kovalev [Tue, 22 Oct 2013 01:12:08 +0000 (18:12 -0700)]
Moving functions from vp9_decodemv.c to vp9_decodframe.c.

This move is done to have all compressed header reading functions in one
place. Moved functions:
  read_switchable_interp_probs
  read_inter_mode_probs
  read_comp_pred_mode
  read_comp_pred
  update_mv
  read_mv_probs

Change-Id: I2aebb57d2826d03d11bf2f8fbbfc3a9978c4f9fb

10 years agoImprove scale_factors struct
Yunqing Wang [Fri, 18 Oct 2013 15:56:30 +0000 (08:56 -0700)]
Improve scale_factors struct

The ref's scale_factors are set at frame level, and then copied for
each partition block. Since the struct members are mostly constant,
this patch separated the constant and non-constant members, and
reduced struct copying. This gave 0.5% ~ 1.4% decoder speed gain.

Change-Id: I94043bf5a6995c8042da52e5c661818dfa6f6d4c

10 years agoRemoving quantize_b_4x4 function pointer.
Dmitry Kovalev [Tue, 22 Oct 2013 20:09:36 +0000 (13:09 -0700)]
Removing quantize_b_4x4 function pointer.

The pointer was asigned only once with vp9_regular_quantize_b_4x4, calling
this function directly now. Also removing unused declarations:
  prototype_quantize_block
  prototype_quantize_block_pair
  prototype_quantize_mb
  vp9_regular_quantize_b_4x4_pair
  vp9_regular_quantize_b_8x8

Change-Id: I14325bc2f082336820671eafbc06126651b79f73

10 years agoMerge "vp9 dec/com: only update frame counts when necessary (2)"
James Zern [Tue, 22 Oct 2013 20:08:44 +0000 (13:08 -0700)]
Merge "vp9 dec/com: only update frame counts when necessary (2)"

10 years agoMerge "Using stride (# of elements) instead of pitch (bytes) in fdct4x4."
Dmitry Kovalev [Tue, 22 Oct 2013 20:05:24 +0000 (13:05 -0700)]
Merge "Using stride (# of elements) instead of pitch (bytes) in fdct4x4."

10 years agoMerge changes I305fd55f,I13fe92b1
James Zern [Tue, 22 Oct 2013 20:00:33 +0000 (13:00 -0700)]
Merge changes I305fd55f,I13fe92b1

* changes:
  vp9/dec: use loop filter worker for all inline cases
  vp9_thread: add vp9_worker_execute()

10 years agoMerge "Revert "Merge "SVC improvements"""
James Zern [Tue, 22 Oct 2013 19:47:22 +0000 (12:47 -0700)]
Merge "Revert "Merge "SVC improvements"""

10 years agoReordering probability tables for consistency.
Dmitry Kovalev [Tue, 22 Oct 2013 19:21:37 +0000 (12:21 -0700)]
Reordering probability tables for consistency.

Putting vp9_kf_y_mode_prob[] before vp9_kf_uv_mode_prob[].

Change-Id: I2404910e35de1ee24ce46337e00c07eb1446e50f

10 years agoMerge "Removing NUM_ prefix from constant names."
Dmitry Kovalev [Tue, 22 Oct 2013 18:34:28 +0000 (11:34 -0700)]
Merge "Removing NUM_ prefix from constant names."

10 years agoMerge "Using stride (# of elements) instead of pitch (bytes) in fdct8x8."
Dmitry Kovalev [Tue, 22 Oct 2013 18:34:17 +0000 (11:34 -0700)]
Merge "Using stride (# of elements) instead of pitch (bytes) in fdct8x8."

10 years agoMerge "Using INTER_MODES constant instead of MB_MODE_COUNT - NEARESTMV."
Dmitry Kovalev [Tue, 22 Oct 2013 18:34:09 +0000 (11:34 -0700)]
Merge "Using INTER_MODES constant instead of MB_MODE_COUNT - NEARESTMV."

10 years agoMerge "Prevent left_block_mode stepping into left tile"
Jingning Han [Tue, 22 Oct 2013 16:37:17 +0000 (09:37 -0700)]
Merge "Prevent left_block_mode stepping into left tile"

10 years agoPrevent left_block_mode stepping into left tile
Jingning Han [Tue, 22 Oct 2013 00:01:57 +0000 (17:01 -0700)]
Prevent left_block_mode stepping into left tile

This commit uses left_available flag to decide if the left mode_info
struct is available for left_block_mode. As discussed with James
Zern (jzern@), this prevents the codec from fetching mode_info from
blocks in the left tile, which although effectively not used might
present concerns for multi-threaded tile decoding.

This is NOT a bit-stream change.

Change-Id: I1dc8cf1bcbf056688eee27c7bc5706ac4b4e0125

10 years agoRevert "Merge "SVC improvements""
James Zern [Tue, 22 Oct 2013 09:04:51 +0000 (11:04 +0200)]
Revert "Merge "SVC improvements""

This reverts commit a82001b1cfd688601bbda9b08b3d20e9b46b14d4, reversing
changes made to f6d870f7ae6f968bdbc342af80c8f71fa98f2ac2.

This commit breaks windows builds and needs some work to fix those and
some additional comments.

Change-Id: Ic0b0228e36704b127e5e399ce59db26182cfffe7

10 years agoMerge "SVC improvements"
Ivan Maltz [Mon, 21 Oct 2013 23:28:31 +0000 (16:28 -0700)]
Merge "SVC improvements"

10 years agoUsing stride (# of elements) instead of pitch (bytes) in fdct4x4.
Dmitry Kovalev [Mon, 21 Oct 2013 22:27:35 +0000 (15:27 -0700)]
Using stride (# of elements) instead of pitch (bytes) in fdct4x4.

Just making fdct consistent with iht/idct/fht functions which all use
stride (# of elements) as input argument.

Change-Id: I0ba3c52513a5fdd194f1e7e2901092671398985b

10 years agoMerge "Inlining set_partition_seg_context function."
Dmitry Kovalev [Mon, 21 Oct 2013 21:43:37 +0000 (14:43 -0700)]
Merge "Inlining set_partition_seg_context function."

10 years agoSVC improvements
Ivan Maltz [Sat, 12 Oct 2013 01:03:00 +0000 (18:03 -0700)]
SVC improvements

These changes were originally made in the Stratacaster team-review repository

commit e114bffcd82ad74c3696ec58e13c0ac895d6c82d
Author: Charles 'Buck' Krasic <ckrasic@google.com>
Date:   Mon Oct 14 16:52:13 2013 -0700

    Make dummy frame handling a bit more explicit, fixing bug
    with single layer encodes.

Squashed commit of the following:

commit 1ebbfd976c0fadb02bf1ea562a2d0e3f0206daad
Merge: ac468dd 54e88b7
Author: Ivan Maltz <ivanmaltz@google.com>
Date:   Fri Oct 11 17:29:58 2013 -0700

    Move SVC code from vp9_spatial_scalable_encoder to libvpx module accessible from ffmpeg

commit 54e88b78b160becc9569fc3c6cb6b0a8c95dc357
Author: Ivan Maltz <ivanmaltz@google.com>
Date:   Tue Oct 8 09:08:40 2013 -0700

    common svc encoding code for sample app and ffmpeg

    added svc_encodeframe.c, svc_context.h, svc_test.cc

    vp9_spatial_scalable_encoder uses vpx_svc_encode

commit 5616ec8e2e3d3e8d277333d8a9242f6c70151162
Merge: 4528014 e29137d
Author: Ivan Maltz <ivanmaltz@google.com>
Date:   Tue Oct 8 08:47:58 2013 -0700

    Merge branch 'master' into stratacaster

commit 45280148450b1f3d61e390df8aadedf85cd5bce1
Merge: bb2b675 1ab60f7
Author: Sujeevan Rajayogam <sujee@google.com>
Date:   Fri Oct 4 10:22:31 2013 -0700

    Merge branch 'master' into stratacaster

commit bb2b675e595dc9bfc8551e963edf56800c3aea61
Author: Sujeevan Rajayogam <sujee@google.com>
Date:   Wed Oct 2 12:37:26 2013 -0700

    Track individual frame sizes and psnrs instead of averages.

commit c6d303b714795c81e7ceb4173967115c9f8ff5b7
Merge: fa87df9 3583087
Author: Sujeevan Rajayogam <sujee@google.com>
Date:   Fri Sep 27 10:05:35 2013 -0700

    Merge branch 'master' into stratacaster

commit fa87df94fba923d9f7aeb8ae20c6e15f777e00b5
Merge: bf22d71 3c465af
Author: Sujeevan Rajayogam <sujee@google.com>
Date:   Thu Sep 26 16:10:31 2013 -0700

    Merge branch 'master' into stratacaster

commit bf22d7144895a82e0c348ac177c8a261b9e2b88e
Author: Sujeevan Rajayogam <sujee@google.com>
Date:   Thu Sep 26 11:10:34 2013 -0700

    Parameterized quantizer, 16th scalefactors, more logging, enabled single layer encodes to generate baseline.

commit ceffd7e6025b765f9886b5ea0f324248aa37e327
Author: Sujeevan Rajayogam <sujee@google.com>
Date:   Thu Sep 19 10:04:49 2013 -0700

    - Include new mode for 3 layer I frame with 5 total layers.
    - Refactor svc api.

Change-Id: Ie4d775e21e006fa597d884c59488dc999478e9b5

10 years agoMerge "Cleanup: using cm variable instead of cpi->common."
Dmitry Kovalev [Mon, 21 Oct 2013 21:30:01 +0000 (14:30 -0700)]
Merge "Cleanup: using cm variable instead of cpi->common."

10 years agoInlining set_partition_seg_context function.
Dmitry Kovalev [Mon, 21 Oct 2013 19:02:19 +0000 (12:02 -0700)]
Inlining set_partition_seg_context function.

We used set_partition_seg_context() only before calls to:
 1. update_partition_context()
 2. partition_plane_context()

Moving these functions from vp9_blockd.h to vp9_onyxc_int.h and
inlining  set_partition_seg_context into them. After that it is not
necessary to have {above, left}_seg_context fields in MACROBLOCKD struture,
so removing them also.

Change-Id: I4723f59e1c8f3788432b7f51185d8d747b3a97f9

10 years agoMerge "Make memory alloc in pick_mode_context bsize aware"
Jingning Han [Mon, 21 Oct 2013 18:45:59 +0000 (11:45 -0700)]
Merge "Make memory alloc in pick_mode_context bsize aware"

10 years agoCleanup: using cm variable instead of cpi->common.
Dmitry Kovalev [Mon, 21 Oct 2013 18:10:11 +0000 (11:10 -0700)]
Cleanup: using cm variable instead of cpi->common.

Change-Id: Iab334b5fd51dfa7e7f29963f8bdc62fd7355e56d

10 years agoMerge "Moving allow_high_precision_mv from MACROBLOCKD to VP9_COMMON."
Dmitry Kovalev [Mon, 21 Oct 2013 17:55:02 +0000 (10:55 -0700)]
Merge "Moving allow_high_precision_mv from MACROBLOCKD to VP9_COMMON."

10 years agovp9 dec/com: only update frame counts when necessary (2)
James Zern [Mon, 21 Oct 2013 16:07:50 +0000 (18:07 +0200)]
vp9 dec/com: only update frame counts when necessary (2)

missed one in vp9_detokenize.c in the last
+ add some asserts in vp9_decode_frame() to catch regressions

Change-Id: Ide67505114ee17efdafb13694aed0c09039e5a16

10 years agoMerge "Fix d207 intra prediction SSSE3 functions"
Yunqing Wang [Mon, 21 Oct 2013 17:45:20 +0000 (10:45 -0700)]
Merge "Fix d207 intra prediction SSSE3 functions"

10 years agoMerge "Modified no memory rate control."
Paul Wilkins [Mon, 21 Oct 2013 17:32:47 +0000 (10:32 -0700)]
Merge "Modified no memory rate control."

10 years agoMerge "Reduced delta for kf/gf/arf when at maxq."
Paul Wilkins [Mon, 21 Oct 2013 17:32:35 +0000 (10:32 -0700)]
Merge "Reduced delta for kf/gf/arf when at maxq."

10 years agoMoving allow_high_precision_mv from MACROBLOCKD to VP9_COMMON.
Dmitry Kovalev [Mon, 21 Oct 2013 17:12:14 +0000 (10:12 -0700)]
Moving allow_high_precision_mv from MACROBLOCKD to VP9_COMMON.

This value is a global frame-level flag, not a macroblock-level.

Change-Id: Ie8c5790a931150741c2167c00c3e3dd2cf26744d

10 years agoMerge "Removing unused struct member mvcount[MV_VALS]."
Dmitry Kovalev [Mon, 21 Oct 2013 16:46:07 +0000 (09:46 -0700)]
Merge "Removing unused struct member mvcount[MV_VALS]."

10 years agoMerge "Added necessary includes"
James Zern [Mon, 21 Oct 2013 14:19:51 +0000 (07:19 -0700)]
Merge "Added necessary includes"

10 years agovp9_decodframe: limit scope of private function params
James Zern [Mon, 7 Oct 2013 10:38:06 +0000 (12:38 +0200)]
vp9_decodframe: limit scope of private function params

replace VP9D_COMP usage with the (slightly) more targeted
VP9_COMMON/MACROBLCKD structures.

Change-Id: I50d2579238d1a5d51ba5a82379266448ae64b24b

10 years agovp9_decode_tokens: limit scope of function params
James Zern [Mon, 7 Oct 2013 10:26:26 +0000 (12:26 +0200)]
vp9_decode_tokens: limit scope of function params

replace VP9D_COMP usage with the (slightly) more targeted
VP9_COMMON/MACROBLCKD/struct segmentation structures.

Change-Id: Iabb3616e231417b0e17b7e4b384ea63167a81745

10 years agovp9_read_mode_info: limit scope of function params
James Zern [Mon, 7 Oct 2013 10:03:53 +0000 (12:03 +0200)]
vp9_read_mode_info: limit scope of function params

replace VP9D_COMP usage with the (slightly) more targeted
VP9_COMMON/MACROBLCKD structures.

Change-Id: I09f6c4a5b0bcc20222210831b5b4c1582eced300

10 years agovp9_decodemv: limit scope of private function params
James Zern [Mon, 7 Oct 2013 10:00:15 +0000 (12:00 +0200)]
vp9_decodemv: limit scope of private function params

replace VP9D_COMP usage with the (slightly) more targeted
VP9_COMMON/MACROBLCKD structures.

Change-Id: Ieafac9ad035cba808ed91d3dfd321ba864b58905

10 years agovp9/dec: use loop filter worker for all inline cases
James Zern [Mon, 21 Oct 2013 12:28:40 +0000 (14:28 +0200)]
vp9/dec: use loop filter worker for all inline cases

- uses vp9_worker_execute() in non-threaded case
+ removes hook reassignment

Change-Id: I305fd55f2be5cd92367373c929cdb9004066f90f

10 years agoModified no memory rate control.
Paul Wilkins [Wed, 16 Oct 2013 09:59:55 +0000 (10:59 +0100)]
Modified no memory rate control.

This 2-pass rate control setting allocates bits based
on first pass stats to each kf group, gf group and individual
frame but does not correct the bits left and allocation after
each frame.

In other words it recommends a bit allocation for each frame
but does not try and correct any over or under spend on a
frame over the remainder of the clip. This reduces the accuracy
of rate control in terms of hitting an average bitrate but prevents
problems that may arise because early frames either use to many
or too few bits. This mode is currently more inclined to undershoot
than overshoot (particularly at higher data rates).

Also minor changes to rate of adaption when recode loop is not
enabled.

This mode is currently enabled by default for VBR.
It gives the following % performance gains.

derf +0.467, +1.072
yt 2.962, 2.645
stdhd 1.682, 1.595,
yt-hd 2.3, 2.174

Change-Id: I3c84a9bf8884e5b345698ff0e19187f792c2f3a0

10 years agoReduced delta for kf/gf/arf when at maxq.
Paul Wilkins [Sat, 19 Oct 2013 11:24:59 +0000 (12:24 +0100)]
Reduced delta for kf/gf/arf when at maxq.

Delta reduced because of concern about popping on some
very hard clips.

Also allow some frame recode at speed 2 for kf/gf/arf.

Change-Id: Ib47dff42da41aa6eec83b7285fcaaca24abb851e

10 years agoRemoving NUM_ prefix from constant names.
Dmitry Kovalev [Sat, 19 Oct 2013 00:44:19 +0000 (17:44 -0700)]
Removing NUM_ prefix from constant names.

Renames for consistency with other constants:
  NUM_FRAME_TYPES -> FRAME_TYPES
  NUM_PARTITION_CONTEXTS -> PARTITION_CONTEXTS

Change-Id: I3db30acb2868eb0a424237c831087b2e264ec47f

10 years agoFix d207 intra prediction SSSE3 functions
Yunqing Wang [Sat, 19 Oct 2013 00:00:18 +0000 (17:00 -0700)]
Fix d207 intra prediction SSSE3 functions

This patch fixed a bug that caused 32bit PIC build mismatch. The
stack pointer was modified after "GET_GOT". Loading left pointer
from a hard-coded position gave wrong result.

Change-Id: Iea0aec6f917b12a6b3393ffc986bad74510248cc

10 years agoUsing INTER_MODES constant instead of MB_MODE_COUNT - NEARESTMV.
Dmitry Kovalev [Fri, 18 Oct 2013 21:31:56 +0000 (14:31 -0700)]
Using INTER_MODES constant instead of MB_MODE_COUNT - NEARESTMV.

Change-Id: Ie5ec392904d03fd5485474b33be8408108e9d3c9

10 years agoDisable d207 intra prediction SSSE3 functions
Yunqing Wang [Fri, 18 Oct 2013 21:23:17 +0000 (14:23 -0700)]
Disable d207 intra prediction SSSE3 functions

Commit "d207 intra prediction ssse3 using bytes" caused mismatch
while building 32bit PIC code. Disabled these SSSE3 functions
until we fix the bug.

Change-Id: Ic444e531d3d4058092fe6eab09006b44fcb18e4c

10 years agoMerge "vp9 dec/com: only update frame counts when necessary"
James Zern [Fri, 18 Oct 2013 20:56:11 +0000 (13:56 -0700)]
Merge "vp9 dec/com: only update frame counts when necessary"

10 years agoAdded necessary includes
Yaowu Xu [Fri, 18 Oct 2013 00:58:23 +0000 (17:58 -0700)]
Added necessary includes

To avoid the dependency on the order of header files included.

Change-Id: Ic142638d75fe95e6aba41b11664bfa15f076f793

10 years agoMerge "vp9 com/dec: avoid reading unavailable above/left"
James Zern [Fri, 18 Oct 2013 20:22:19 +0000 (13:22 -0700)]
Merge "vp9 com/dec: avoid reading unavailable above/left"

10 years agovp9 dec/com: only update frame counts when necessary
James Zern [Wed, 16 Oct 2013 14:20:01 +0000 (16:20 +0200)]
vp9 dec/com: only update frame counts when necessary

don't update them when frame_parallel_mode is true

Change-Id: I22ff131a6c6eea238415d10b729f195c7d6dc60d

10 years agoMerge "Use lookup table to simplify logic"
Yaowu Xu [Fri, 18 Oct 2013 19:55:24 +0000 (12:55 -0700)]
Merge "Use lookup table to simplify logic"

10 years agoMerge "Using stride (# of elements) instead of pitch (bytes) in fdct16x16."
Dmitry Kovalev [Fri, 18 Oct 2013 19:53:09 +0000 (12:53 -0700)]
Merge "Using stride (# of elements) instead of pitch (bytes) in fdct16x16."

10 years agoMake memory alloc in pick_mode_context bsize aware
Jingning Han [Wed, 16 Oct 2013 19:43:03 +0000 (12:43 -0700)]
Make memory alloc in pick_mode_context bsize aware

This commit makes the buffer allocation of zcoeff_blk array in
pick_mode_context block size aware. It calculates the number of
4x4 blocks in the partition and assigns the memory space accordingly.
This process (and the uninitialization) is done once for each encoding
pass. It allows memory copy of smaller buffer when possible.

For football at 600kbps, the runtimes improve by about 1%:
speed 1, 45961ms -> 45472ms
speed 2, 23863ms -> 23598ms

Change-Id: Id2ca24906fa89f46fa5fe742ec4b8efc2a61f877

10 years agovp9 com/dec: avoid reading unavailable above/left
James Zern [Wed, 16 Oct 2013 16:33:43 +0000 (18:33 +0200)]
vp9 com/dec: avoid reading unavailable above/left

in most cases at least the left column was a harmless race as it was
left unused later in the code.

Change-Id: I43211df66fb157c6feecf08c681add4fcf18b644

10 years agoMerge "Converted assert to error checking"
Yaowu Xu [Fri, 18 Oct 2013 19:39:28 +0000 (12:39 -0700)]
Merge "Converted assert to error checking"