2158 Commits

Author SHA1 Message Date
Tero Rintaluoma
047b0b01bb Fix show existing frame
- Disable mode info update in case where current frame is coded
  as "show existing frame".
- Should fix issue 676.

Change-Id: Ibee681850eb307f982da6528d3e31cb94f881c08
2013-12-05 12:10:10 +02:00
Frank Galligan
7ecf3bc91c Fix ref count decrement code.
Buffer 0 would never be decremented, so it could only be used
once.

Change-Id: I605d99fa2a513eadae6a0e230161729880653282
2013-12-04 22:21:00 -08:00
Dmitry Kovalev
5eeffc9fc5 Cleaning up vp9_get_pred_context_tx_size() function.
Change-Id: Ia6ef876e3d1e66b2182a9c0bce3fd758691cd381
2013-12-04 21:35:30 -08:00
Dmitry Kovalev
a1123538a5 Moving vp9_token from common to encoder.
Change-Id: I40a070c353663e82c59e174d7c92eb84f72ed808
2013-12-04 19:36:58 -08:00
Frank Galligan
8363349b84 Merge "Fix the initial references to frame buffers." 2013-12-04 19:26:40 -08:00
Dmitry Kovalev
4afd141a05 Removing vp9_default_coef_probs.h file.
Moving all probability tables from removed file to vp9_entropy.c.

Change-Id: I12846f1da778c3016d96b82e53384d4634883430
2013-12-04 17:04:35 -08:00
Dmitry Kovalev
cf8e3d2c5c Merge "Cleaning up vp9_dec_build_inter_predictors_sb function." 2013-12-04 16:57:54 -08:00
Frank Galligan
9ed616a56c Fix the initial references to frame buffers.
The old code would start in a mixed state, where all the reference
frames were pointing to frame buffer 0, but the reference counts
were 0. This is why we needed special code for the first frame.

Change-Id: I734961012917654ff8c0c8b317aac00ab75ded1a
2013-12-04 16:53:18 -08:00
Dmitry Kovalev
3712b58c2f Merge "Cleaning up vp9_entropy.h file." 2013-12-04 16:46:41 -08:00
Dmitry Kovalev
c6ca5c5ad9 Compact formatting default_coef_probs_{4x4, 8x8, 16x16, 32x32}.
Change-Id: If40b930431766d5179b9769509b5e4ca1628e9cc
2013-12-04 15:45:28 -08:00
Dmitry Kovalev
da2da79012 Merge "Formatting vp9_pareto8_full array." 2013-12-04 12:22:50 -08:00
Dmitry Kovalev
beb35aba19 Cleaning up vp9_dec_build_inter_predictors_sb function.
Using get_plane_block_size() instead of manipulation with subsampling
values, calculating all required values only once without redundant calls
to b_width_log2().

Change-Id: I00303f2a0926f9c4cb17f34591adda60615f8919
2013-12-04 12:11:01 -08:00
Yunqing Wang
f6582d6928 Revert "Simplify mask checking in loop filters"
Jingning saw bitstream change with this patch. It could be true
that (mask_16x16_0 & 1) is 1, but (mask_16x16_1 & 1) is 0 in some
edge cases.

This reverts commit 8f05e70340533b9922be5b1c97c37e50607fd862.

Change-Id: I0a529435ce816a1e14653eb510d5090de276070a
2013-12-04 11:31:19 -08:00
Dmitry Kovalev
1470789927 Merge "Moving eob array to the encoder." 2013-12-04 10:58:02 -08:00
Yunqing Wang
920a074e89 Merge "Improve idct16x16: _256_add_sse2(x1.107)&_10_add_sse2(x1.012)" 2013-12-04 08:50:51 -08:00
Dmitry Kovalev
ff6d6a9f07 Formatting vp9_pareto8_full array.
Change-Id: Ic7f47a8d233daf5e61e82092865837ea4eda4095
2013-12-03 18:49:19 -08:00
Dmitry Kovalev
f00d157c12 Moving eob array to the encoder.
In the decoder we don't need to save eobs, we can pass eob as an argument.
That's why removing eob arrays from VP9Decompressor and TileWorkerData,
and moving eob pointer from macroblockd_plane to macroblock_plane.

Change-Id: I8eb919acc837acfb3abdd8319af63d1bbca8217a
2013-12-03 17:59:32 -08:00
Dmitry Kovalev
8e89e2f2e0 Cleaning up vp9_entropy.h file.
Renaming constants for consistency:
  DCT_VAL_CATEGORY1 => CATEGORY1_TOKEN
  DCT_VAL_CATEGORY2 => CATEGORY2_TOKEN
  DCT_VAL_CATEGORY3 => CATEGORY3_TOKEN
  DCT_VAL_CATEGORY4 => CATEGORY4_TOKEN
  DCT_VAL_CATEGORY5 => CATEGORY5_TOKEN
  DCT_VAL_CATEGORY6 => CATEGORY6_TOKEN
  DCT_EOB_TOKEN     => EOB_TOKEN
  DCT_EOB_MODEL_TOKEN => EOB_MODEL_TOKEN
  MAX_ENTROPY_TOKENS => ENTROPY_TOKENS

Moving constants:
  INTER_MODE_CONTEXTS from vp9_entropy.h to vp9_blockd.h.
  EOSB_TOKEN from vp9_entropy.h to vp9_tokenize.h

Change-Id: I5fcbf081318e1d365792b6d290a930c6cb0f3fc2
2013-12-03 17:23:03 -08:00
Dmitry Kovalev
09577b8c8d Merge "Removing dummy assignments." 2013-12-03 10:59:34 -08:00
Abo Talib Mahfoodh
e4419ab691 Improve idct16x16: _256_add_sse2(x1.107)&_10_add_sse2(x1.012)
The performance gain of idct16x16_10_add_sse2 function is not
noticeable. However since both functions use the IDCT16_1D,
idct16x16_10_add_sse2 should be modified as well.
Tested with: park_joy_420_720p50.y4m

Change-Id: I02b957e36fcf997c677d15baf496533895271bff
2013-12-02 21:08:56 -05:00
Yunqing Wang
8f182a1cac Merge "improve vp9_idct32x32_34(x1.472)&1024(x1.032)_add_sse2" 2013-12-02 15:10:05 -08:00
Yunqing Wang
37e68aba55 Merge "Simplify mask checking in loop filters" 2013-12-02 12:06:26 -08:00
Dmitry Kovalev
862c22cf7d Merge "Moving token-encoding related stuff from common to encoder." 2013-12-02 10:32:04 -08:00
Yunqing Wang
8f05e70340 Simplify mask checking in loop filters
Considering a horizontal edge, if mask_16x16 is 1 for an even-
indexed 8x8 block, then mask_16x16 is 1 for next 8x8 block in
same row. Similiar to a verticle edge, if mask_16x16 is 1 for
an even-rowed 8x8 block, then mask_16x16 is 1 for the 8x8 block
right below it in next raw. Based on that, the mask_16x16 checking
can be simplified to save cycles. The corresponding 8-pixel
vp9_mb_lpf_horizontal_edge code can also be removed.

Change-Id: Ic3fe7a5674322239208cbe2731dc3216ce2084f3
2013-11-27 14:10:57 -08:00
Dmitry Kovalev
d83d61d942 Moving reaster_block_offset{,_int16} from vp9_blockd.h to vp9_rdopt.h.
Change-Id: I5a5888d4639cc6b7eb266be47581dd15ba08c91e
2013-11-27 12:57:21 -08:00
Dmitry Kovalev
f9da823216 Moving token-encoding related stuff from common to encoder.
Change-Id: I0e59d320407b3bed0ba3622a7b29975f6fad7ebf
2013-11-27 11:27:57 -08:00
Dmitry Kovalev
e2f1d02eb3 Merge "Moving mode encodings from common to encoder + cleanup." 2013-11-27 11:00:54 -08:00
Yaowu Xu
e9c19617bf Merge "vp9_short_fdct32x32_rd vp9_short_fdct32x32 optimized for AVX2" 2013-11-27 10:27:32 -08:00
Dmitry Kovalev
d3a2e55af4 Removing qcoeff buffers from the decoder.
We only need qcoeff buffers in the encoder. Reducing TileWorkerData struct
and VP9Decompressor struct sizes by 24K.

Change-Id: Id148868461f7ffa3d3dd634b371503ae9c57e207
2013-11-26 18:52:10 -08:00
Dmitry Kovalev
fc3c3303f1 Removing dummy assignments.
Change-Id: I10d1a4bcac751a982d9dd135f019e3a4d92f8522
2013-11-26 15:35:11 -08:00
Dmitry Kovalev
f4bf712fbb Moving mode encodings from common to encoder + cleanup.
Change-Id: I248ccb1532e2cd95314d0b95108f2c2e71cf084f
2013-11-26 14:53:17 -08:00
Yaowu Xu
b60293e1ce Merge "Amended some comments for clarity" 2013-11-26 14:32:02 -08:00
Frank Galligan
b4874e2c82 Fix 16 wide neon horz loopfilter.
Multiply by 3 was on 8bit vectors when it should have been on
16bit vectors.

Change-Id: I248c1429b3134dfd171dfab0ebb109fd2437e1fc
2013-11-26 10:02:40 -08:00
Yunqing Wang
7a5fd6a1bf Merge "Do vertical loopfiltering in parallel" 2013-11-26 09:35:14 -08:00
Abo Talib Mahfoodh
f97d91ab67 improve vp9_idct32x32_34(x1.472)&1024(x1.032)_add_sse2
vp9_idct32x32_34_add_sse2:
speedup: 1.472
IDCT32_1D_34 and MULTIPLICATION_AND_ADD_2 are optimized
based on the fact that Only upper-left 8x8 has
non-zero values.

vp9_idct32x32_1024_add_sse2:
speedup: 1.032

Tested with: park_joy_420_720p50.y4m

Change-Id: I8670ce547552b48695049de298e2fc46ce28dfbc
2013-11-26 12:28:26 -05:00
Dmitry Kovalev
5488da280d Merge "Moving mv entropy encodings calculation to the encoder side." 2013-11-25 19:15:21 -08:00
Dmitry Kovalev
56d048c412 Moving mv entropy encodings calculation to the encoder side.
Moved arrays:
  vp9_mv_joint_encodings
  vp9_mv_class_encodings
  vp9_mv_class0_encodings
  vp9_mv_fp_encodings

Change-Id: Iaf5008c579fcbd6d77fdd81d1aef8c71b5f308b7
2013-11-25 16:36:28 -08:00
Dmitry Kovalev
7ba7a5f817 Merge "Removing redundant call of vp9_init_mbmode_probs()." 2013-11-25 16:08:42 -08:00
Dmitry Kovalev
cfc1f91c9f Merge "Moving {left, right}_block_mode to vp9_blockd.h." 2013-11-25 10:59:24 -08:00
Dmitry Kovalev
e8af3db88a Merge "Renaming COMPPREDMODE_TYPE enum and its members." 2013-11-25 10:59:08 -08:00
Yaowu Xu
dd69337e6e Amended some comments for clarity
Change-Id: I31c3908ba394095deb5d3a5d7b7c9b2b5328c3e8
2013-11-25 10:55:01 -08:00
Yaowu Xu
cc1e05ca5f Merge "In frame Q adjustment experiment." 2013-11-25 10:52:22 -08:00
Jingning Han
f547fb8e07 Merge "Use separate inter predictors for enc/dec" 2013-11-25 10:29:07 -08:00
Paul Wilkins
644bd87e8e In frame Q adjustment experiment.
The idea here is to allow "in frame" adjustment of the final Q
value used to encode each SB64, using segmentation.

There is also adjustment of the rd mult in regions of overspend.

Activated using aq_mode=2

Change-Id: I2f140cd898c9f877c32cd6d2e667f5e11ada4b1c
2013-11-25 10:22:55 -08:00
Yaowu Xu
3183135dd3 Merge "Fix a build issue with visual c." 2013-11-25 10:20:53 -08:00
Jingning Han
ba8b5e8d6d Use separate inter predictors for enc/dec
The decoder will construct inter predictor using lazy border extension,
while the encoder, going with multiple runs of motion search in the rate-
distortion optimization loop for each block, does border extension at
frame level. This commit makes separate the inter predictors for encoder
and decoder, respectively.

Change-Id: Ieca2fecba3a7201a6d64ef9f219e5d91e50559c3
2013-11-25 09:43:34 -08:00
Jingning Han
12e5ec6aa8 Merge "Separate setup_scale_factor/extend_frame_borders" 2013-11-25 09:14:46 -08:00
Yaowu Xu
86368faca9 Fix a build issue with visual c.
Change-Id: Ic8fc16ee1734cfde0d12a2e3abb3e9299382f3b1
2013-11-25 08:11:35 -08:00
Dmitry Kovalev
9fe88870c5 Merge "Cleaning up vp9_append_sub8x8_mvs_for_idx." 2013-11-24 16:08:20 -08:00
Dmitry Kovalev
52b43a2876 Inlining and removing vp9_set_pred_flag_seg_id() function.
Change-Id: I0fd76937e847f78378a7ab3fa0af00a7c2c52b42
2013-11-22 17:32:11 -08:00