3434 Commits

Author SHA1 Message Date
Jingning Han
39b6ab6a29 Merge "Separate encode_block for pass 1 and 2" 2013-10-24 21:39:27 -07:00
Yunqing Wang
f88315cb29 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
2013-10-24 16:13:21 -07:00
Johann
35c4437bf5 Merge "mips dsp-ase r2 vp9 decoder idct module optimizations (rebase)" 2013-10-24 15:49:31 -07:00
Dmitry Kovalev
237ce8724a Adding get_frame_new_buffer() function to replace duplicated code.
Change-Id: I6e0e19231a48364c1de7dfab730b121ab227f111
2013-10-24 12:20:35 -07:00
Dmitry Kovalev
600a3860a4 Making input pointer constant for all fdct/fht functions.
Change-Id: I78f7012f967a777ddd39bae6671eb501df6bbfe8
2013-10-24 11:48:25 -07:00
Dmitry Kovalev
7bb48e5e8e Replacing is_inter_mode with is_inter_block.
It should be only a check based on the block type (inter vs intra), not on
the mode value.

Change-Id: I0378cb4ba7c9a1631c1e870a537187b8650fa30a
2013-10-24 11:22:06 -07:00
Dmitry Kovalev
dfc7945d1e Adding get_frame_ref_buffer() function + cleanup.
Change-Id: Ib9ead216fc54b2df6f6f1fe82d2ea137197beebd
2013-10-24 11:05:35 -07:00
Yaowu Xu
1dcf094077 Merge "Disable two libvpx APIs for VP9" 2013-10-24 10:31:29 -07:00
Dmitry Kovalev
4a59def9b4 Merge "Eliminating usage of allow_comp_inter_inter in the decoder." 2013-10-24 10:09:37 -07:00
Dmitry Kovalev
8001ed71ed Merge "Renaming vp9_short_fdct4x4 and vp9_short_walsh4x4." 2013-10-24 10:08:42 -07:00
Dmitry Kovalev
710ca1fe36 Merge changes I1868fb75,I9ff504c6
* changes:
  Renaming INTERPOLATIONFILTERTYPE to INTERPOLATION_TYPE.
  Adding VP9_FRAME_MARKER constant.
2013-10-24 10:08:19 -07:00
Dmitry Kovalev
153d70ca9b Merge "Cleaning up {above, left}_block_mode functions." 2013-10-24 10:07:51 -07:00
Yunqing Wang
93ec31dff6 Merge "Improve scale_factors struct" 2013-10-24 09:13:41 -07:00
Yaowu Xu
03b2ae16f2 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
2013-10-24 08:09:06 -07:00
James Zern
eec622d178 Merge "vp9/extend_for_intra: avoid crossing tile boundary" 2013-10-24 06:04:10 -07:00
James Zern
3c038b6c40 vp9/extend_for_intra: avoid crossing tile boundary
Change-Id: I0d8a71778aa3c73b8b1673e14053074bb866548b
2013-10-24 14:21:24 +02:00
Parag Salasakar
1699eb0bf6 mips dsp-ase r2 vp9 decoder idct module optimizations (rebase)
Change-Id: Iedcdb8867084f328f4fce2fadb968e0984217308
2013-10-24 11:29:04 +05:30
Dmitry Kovalev
5d28b63687 Cleaning up {above, left}_block_mode functions.
Making {above, left}_block_mode more clear and symmetric.

Change-Id: Ie348a950fb9a5cf52861d0cba838a58010ff56ad
2013-10-23 17:54:13 -07:00
Dmitry Kovalev
ad867fe237 Renaming INTERPOLATIONFILTERTYPE to INTERPOLATION_TYPE.
Change-Id: I1868fb75ed88bfa65c1c2ca24677d65f2894d713
2013-10-23 17:45:52 -07:00
Dmitry Kovalev
a53075f7c5 Adding VP9_FRAME_MARKER constant.
Also renaming SYNC_CODE_* to VP9_SYNC_CODE_*.

Change-Id: I9ff504c6ebce6cd6673d7df2085d597b818f5960
2013-10-23 17:24:17 -07:00
Dmitry Kovalev
fd724f13b0 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
2013-10-23 14:28:39 -07:00
Dmitry Kovalev
dea22b4bda Merge "Renaming vp9_short_fdct32x32 to vp9_fdct32x32." 2013-10-23 14:18:57 -07:00
Dmitry Kovalev
4d88b3837b 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
2013-10-23 14:18:09 -07:00
Jingning Han
ae0e747d6a Merge "Use inter mode flag in super_block_yrd" 2013-10-23 13:52:05 -07:00
Dmitry Kovalev
a018988ce8 Renaming vp9_short_fdct32x32 to vp9_fdct32x32.
For consistency with idct function names.

Change-Id: Ie77b7178e0894c57cd5cb9243c949eb9224ece18
2013-10-23 13:41:40 -07:00
Dmitry Kovalev
5bdd4d9ccf Merge "Renaming vp9_short_fdct16x16 to vp9_fdct16x16." 2013-10-23 13:37:09 -07:00
Dmitry Kovalev
a9c8251b9d Merge "Renaming vp9_short_fdct8x8 to vp9_fdct8x8." 2013-10-23 11:38:55 -07:00
Jingning Han
4e2732c3c3 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
2013-10-23 11:19:45 -07:00
Jingning Han
f3b31380fa 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
2013-10-23 11:18:23 -07:00
Jingning Han
9cc4935d7b Merge "Make decode modules independent of tile index" 2013-10-23 11:08:12 -07:00
Dmitry Kovalev
02feb63684 Renaming vp9_short_fdct16x16 to vp9_fdct16x16.
For consistency with idct function names.

Change-Id: I5ca355ba99fdba04f09254be95cf79808b534f71
2013-10-23 10:57:12 -07:00
Dmitry Kovalev
fa143dbc8e Renaming vp9_short_fdct8x8 to vp9_fdct8x8.
For consistency with idct function names.

Change-Id: I7b6af2f92c66eff56f84ed29edc3a66af8dc421f
2013-10-23 10:52:33 -07:00
Dmitry Kovalev
73fe696c91 Merge "Reordering probability tables for consistency." 2013-10-23 10:10:24 -07:00
Dmitry Kovalev
789a6c1bd2 Merge "Removing quantize_b_4x4 function pointer." 2013-10-23 10:09:53 -07:00
Adrian Grange
2f58b813bb Remove right_available member from VP9_COMP
This member of VP9_COMP is no longer used, so I removed it.

Change-Id: I3509f52756da4768a3e4581cec5ed5d2a70d5fb8
2013-10-22 16:53:37 -07:00
Jingning Han
bd23e084eb 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
2013-10-22 15:22:59 -07:00
Dmitry Kovalev
34d6077c93 Merge "Moving functions from vp9_decodemv.c to vp9_decodframe.c." 2013-10-22 14:00:48 -07:00
Dmitry Kovalev
9d3f27f3da 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
2013-10-22 13:19:23 -07:00
Yunqing Wang
175c313a12 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
2013-10-22 13:10:22 -07:00
Dmitry Kovalev
ec414372e8 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
2013-10-22 13:09:36 -07:00
James Zern
5645b2d89b Merge "vp9 dec/com: only update frame counts when necessary (2)" 2013-10-22 13:08:44 -07:00
Dmitry Kovalev
9f09618bd4 Merge "Using stride (# of elements) instead of pitch (bytes) in fdct4x4." 2013-10-22 13:05:24 -07:00
James Zern
c9af3de155 Merge changes I305fd55f,I13fe92b1
* changes:
  vp9/dec: use loop filter worker for all inline cases
  vp9_thread: add vp9_worker_execute()
2013-10-22 13:00:33 -07:00
James Zern
64d94b4aa6 Merge "Revert "Merge "SVC improvements""" 2013-10-22 12:47:22 -07:00
Dmitry Kovalev
68c02593df Reordering probability tables for consistency.
Putting vp9_kf_y_mode_prob[] before vp9_kf_uv_mode_prob[].

Change-Id: I2404910e35de1ee24ce46337e00c07eb1446e50f
2013-10-22 12:21:37 -07:00
Dmitry Kovalev
fa57135b2c Merge "Removing NUM_ prefix from constant names." 2013-10-22 11:34:28 -07:00
Dmitry Kovalev
a767d10fa5 Merge "Using stride (# of elements) instead of pitch (bytes) in fdct8x8." 2013-10-22 11:34:17 -07:00
Dmitry Kovalev
0c10a94581 Merge "Using INTER_MODES constant instead of MB_MODE_COUNT - NEARESTMV." 2013-10-22 11:34:09 -07:00
Jingning Han
7b54556008 Merge "Prevent left_block_mode stepping into left tile" 2013-10-22 09:37:17 -07:00
Jingning Han
c807949408 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
2013-10-22 09:02:41 -07:00