Commit Graph

4863 Commits

Author SHA1 Message Date
Deb Mukherjee
90a7723f8c Merge "Refinements on modelcoef expt to reduce storage" into experimental 2013-05-21 13:41:54 -07:00
Scott LaVarnway
3d0110fd8e Removed diff from macroblockd_plane
No longer used.

Change-Id: I171c5fa33a7600ad45b9466af23a46ccbdfe0480
2013-05-21 14:22:09 -04:00
Scott LaVarnway
0c3f3bf1d5 Removed vp9_recon functions
No longer used.

Change-Id: Ica5166f7117f4693dffdf7633dcfc1b263103d0d
2013-05-21 13:57:50 -04:00
Scott LaVarnway
1db6373267 Merge "WIP: 4x4 idct/recon merge" into experimental 2013-05-21 10:45:53 -07:00
Dmitry Kovalev
a2b9b7448d Merge "Moving exp. coding functions from vp9_boolhuff.c to vp9_bitstream.c." into experimental 2013-05-21 10:35:36 -07:00
Dmitry Kovalev
060d93d704 Merge "Removing clamp_type from the bitstream." into experimental 2013-05-21 10:35:27 -07:00
Dmitry Kovalev
a7b3ed07df Merge "Adding get_ref_frame_idx function." into experimental 2013-05-21 10:35:12 -07:00
Deb Mukherjee
07443f1589 Refinements on modelcoef expt to reduce storage
Uses more aggrerssive interpolation to reduce storage for the
model tables by almost more than half. Only 48 lists of probs are
stored (as opposed to 128 before), corresponding to ONE_NODE
probabilities of:
1,
3, 7, 11, ..., 115, 119,
127, 135, ..., 247, 255.

Besides, only 1 table is used as opposed to 2 before. So the overall
memory needed for the tables is just 48 * 8 = 384 bytes.

The table currently used is based on a new Pareto distribution with
heavier tail than a generalized Gaussian - which improves results on
derf by about 0.1% over a single table Generaized Gaussian.

Results overall on derfraw300 is -0.14%.

Change-Id: I19bd03559cbf5894a9f8594b8023dcc3e546f6bd
2013-05-21 10:06:56 -07:00
Yunqing Wang
e9950b0768 Unnecessary passing of prev_mi
Passing prev_mi is not needed.

Change-Id: I6453bb47514ddafd555864d190ecf6d1a6bdc136
2013-05-21 09:22:49 -07:00
Dmitry Kovalev
9e4902c760 Moving exp. coding functions from vp9_boolhuff.c to vp9_bitstream.c.
Change-Id: Ib07d1e707a87cec98ea3a1779fccca078d8c4310
2013-05-20 16:23:19 -07:00
Dmitry Kovalev
4ac70bd7d3 Adding get_ref_frame_idx function.
Change-Id: I4f1a4eca6794cda78d00512196caacd5567e2dcc
2013-05-20 16:09:00 -07:00
Deb Mukherjee
39a90bc8e8 Updating the model coef experiment
Cleans up the experiment. Actually uses reduced counts for backward
updates, and reduced number of probabilities in the context.

No change in bitstream when the experiment is on.

Between expt on and off:
derfraw300 is down only -0.062% (which is better than when expts
were run previously).

Change-Id: I55285a049a0c22810bdb42914212ab5a4f8521b5
2013-05-20 12:46:36 -07:00
Scott LaVarnway
ba48a11130 WIP: 4x4 idct/recon merge
This patch eliminates the intermediate diff buffer usage by
combining the short idct and the add residual into one function.
The encoder can use the same code as well.

Change-Id: I296604bf73579c45105de0dd1adbcc91bcc53c22
2013-05-20 13:03:17 -04:00
Jingning Han
da39272f5c Merge "Enable bit-stream support to 8x4 and 4x8 partition" into experimental 2013-05-20 09:25:51 -07:00
Jingning Han
2c93a8ed5c Give VP9 a different sync code from VP8
The new code is 0x49, 0x83, 0x42

There is nothing particularly special about this code bitstream wise.
Its derivation is the word "sync" coded using 4x6bit alphabetic indices.

Change-Id: Ie2430a854af32ddc5a5c25a6c1c90cf6497ba647
2013-05-20 11:41:31 +01:00
Jingning Han
810b612c23 Enable bit-stream support to 8x4 and 4x8 partition
The recursive partition type search is enabled down to 4x4, 4x8 and
8x4, followed by the corresponding rate-distortion optimization for
the per-partition encoding mode decisions.

The bit-stream writing/reading synchronized in supporting the
rectangular partition of 8x8 block.

This provides above 1% coding performance gains on derf.

To do next:
1. re-design the rate-distortion loop for inter prediction below 8x8.
2. re-design the rate-distortion loop for intra prediction below 4x4.
3. make the loop-filter aware of rectangular partition of 8x8 block.
4. clean the unused probability models.
5. update default probability values.

Change-Id: Idd41a315b16879db08f045a322241f46f1d53f20
2013-05-19 14:59:04 -07:00
Jingning Han
5f3612c35e Make nmv_count update 4x8/8x4 aware
This commit modifies the vp9_update_nmv_count_ to support rectangular
partition of 8x8 block.

Change-Id: I3e742f80f18f95b031c1c785d756d9365503c24c
2013-05-17 15:57:42 -07:00
Dmitry Kovalev
498b6460a1 Removing clamp_type from the bitstream.
Change-Id: Ica75bdd4905c4a04b7f92795d0b8ce6836a99ef4
2013-05-17 15:50:26 -07:00
Jingning Han
481a7c5986 Fix parameters in 4x8 variance calc
Correct the stride parameter of 4x8 in vp9_sub_pixel_variance4x8_
and vp9_sub_pixel_avg_variance4x8.

Change-Id: I2ca74d4043817503b21737563994270e3b0619ff
2013-05-17 10:03:52 -07:00
Jim Bankoski
d9705b200f Merge "holds utility debugging functions" into experimental 2013-05-17 09:23:36 -07:00
Jingning Han
49068dd985 Merge "Refactor encode_sb_ for 4x8/8x4 partition" into experimental 2013-05-17 09:19:48 -07:00
Paul Wilkins
6f0c8e82c0 Merge "Replace default counts with default probs." into experimental 2013-05-17 08:58:53 -07:00
Paul Wilkins
61e2eac61d Merge "New inter mode context." into experimental 2013-05-17 06:59:09 -07:00
Paul Wilkins
99c4b1eea1 Replace default counts with default probs.
Replace vp9_kf_default_bmode_counts structure with
direct default probabilities. The probability structure is
smaller and it removes the need to specify in the bitstream
how to convert the counts to probabilities.

Note that I have concerns still about the size and value of
the large intra mode context. This may cause problems for
HW but it also means we rely heavily on reverse update as
forwards update of a structure this size is problematic. I
intend to review this more generally in the next few days to
see if we can come up with a competitive solution that does
not rely on such a large context.

Change-Id: I0a36071079d5d26a57ab0e9fbf91af4199aa7984
2013-05-17 14:54:52 +01:00
Jim Bankoski
b67e46b33c holds utility debugging functions
This one prints out a visual version of the partitioning for human
eyes to follow...

Change-Id: Iba434589a2f55eb069484686d99a382db93b9548
2013-05-17 06:29:28 -07:00
Paul Wilkins
51bc4bf4a0 Remove MODE_STATS flag and code
Change-Id: I6c70a8a8a4633399842ac74792003ae5f7859ffa
2013-05-17 12:34:10 +01:00
Jingning Han
5a1c953310 Refactor encode_sb_ for 4x8/8x4 partition
Deprecate set_block_index. Replace it with get_sb_index_ for
consistency with partition search and bit-stream writing/reading.

Use b_width/height_log2 instead of mi_width/height_log2, to support
4x4 resolution partition types.

Change-Id: Ic1e71981e163c669f7ea6b3c12b831c284c4a494
2013-05-16 16:33:31 -07:00
Jingning Han
f0ab155e0d Merge "Use b_width_log2_ in partition type parse" into experimental 2013-05-16 16:02:35 -07:00
John Koleszar
f07602e403 Merge "Remove vp9_extend_mb_row()" into experimental 2013-05-16 15:22:38 -07:00
Scott LaVarnway
9aa37a51b2 Merge "WIP: 8x8 idct/recon merge" into experimental 2013-05-16 14:28:30 -07:00
Dmitry Kovalev
1e3cdc1dd2 Merge "Combining integer and fractional parts of mvs for entropy coding." into experimental 2013-05-16 14:16:47 -07:00
Jingning Han
3819f11b28 Use b_width_log2_ in partition type parse
Replace mi_width/height_log2 with b_width/height_log2 in partition
type parsing at bit-stream writing stage. This allows parsing
resolution at 4x4 block level and makes the 4x4/4x8/8x4 partition
coding consistent with other superblock types.

Change-Id: I7db3617ea042e0db2dc898999b0c323bff91a22f
2013-05-16 14:01:52 -07:00
Yaowu Xu
e3869e9cfc Removed Q threshold in the usage of ADST
Test on cif set showed small but consistent compression gain for
almost all encodings with overall impact of .08%. The gains average
aournd .12% combined with D63 adst change.

Test encoding on std-hd set is ongoing..

Change-Id: If4d94799cf0486fb9c770b193e5c386d13d99d59
2013-05-16 13:33:07 -07:00
Dmitry Kovalev
b10b887907 Merge "Removing lossless flag from the bitstream." into experimental 2013-05-16 12:08:27 -07:00
John Koleszar
16ac5a5cde Remove vp9_extend_mb_row()
This code is no longer needed for correct intra prediction.

Change-Id: I822d1a8b0ad0a00e7c4c6e7b2931790c39d1267d
2013-05-16 11:56:00 -07:00
Scott LaVarnway
794a7bedbd WIP: 8x8 idct/recon merge
This patch eliminates the intermediate diff buffer usage by
combining the short idct and the add residual into one function.
The encoder can use the same code as well.

Change-Id: Iacfd57324fbe2b7beca5d7f3dcae25c976e67f45
2013-05-16 13:52:15 -04:00
Jingning Han
8e3d0e4d7d Add building blocks for 4x8/8x4 rd search
These building blocks enable rate-distortion optimization search
over block sizes of 8x4 and 4x8. Need to convert them into mmx/sse
forms.

Change-Id: I570ea2d22d14ceec3fe3575128d7dfa172a577de
2013-05-16 10:41:29 -07:00
Jingning Han
c0f70cca40 Merge "Fix the transform type selection in 4x4 partition" into experimental 2013-05-16 10:14:49 -07:00
Paul Wilkins
6ff3eb1647 New inter mode context.
This patch creates a new inter mode contest that avoids
a dependence on the reconstructed motion vectors from
neighboring blocks. This was a change requested by
a hardware vendor to improve decode performance.

As part of this change I have also made some modifications
to stats output code (under a flag) to allow accumulation of
inter mode context flags over multiple clips

Some further changes will be required to accommodate the
deprecation of the split mv mode over the next few days.

Performance as stands is around -0.25% on derf and
std-hd but up on the YT and YT-HD sets. With further tuning
or some adjustment to the context criteria it should be
possible to make this change broadly neutral.

Change-Id: Ia15cb4470969b9e87332a59c546ae0bd40676f6c
2013-05-16 12:09:19 +01:00
Paul Wilkins
18e07420a2 Merge "Further Implicit Segmentation Changes" into experimental 2013-05-16 03:03:44 -07:00
John Koleszar
418564e7d0 Add vp9_extend_frame_borders
Adds a subsampling aware border extension function. This may be reworked
soon to support more than 3 planes.

Change-Id: I76b81901ad10bb1e678dd4f0d22740ca6c76c43b
2013-05-15 20:58:26 -07:00
John Koleszar
7addafb5b1 Merge "Fix vp9_build_intra_predictors_sbuv_s for non-4:2:0" into experimental 2013-05-15 20:58:15 -07:00
Dmitry Kovalev
b0c101e2b4 Removing lossless flag from the bitstream.
Change-Id: If6aee510cbc4910f2f24fcd92dddc65fdf8edeea
2013-05-15 18:20:51 -07:00
John Koleszar
501ae3484c Fix vp9_build_intra_predictors_sbuv_s for non-4:2:0
Remove an assumption about chroma size, and the number of planes.

Change-Id: I286a7fac296ec334c6a8ad847f663f3adbb9f43e
2013-05-15 17:57:08 -07:00
Jingning Han
9bd59ad3ed Merge "Fix first-pass encoding test" into experimental 2013-05-15 17:01:04 -07:00
Dmitry Kovalev
54de084155 Merge "Moving the same code to new function vp9_setup_scale_factors." into experimental 2013-05-15 16:50:33 -07:00
Dmitry Kovalev
3ba985779c Merge "Adding alpha plane to YV12_BUFFER_CONFIG structure." into experimental 2013-05-15 16:49:53 -07:00
Dmitry Kovalev
5c5582242d Moving the same code to new function vp9_setup_scale_factors.
Change-Id: I2408ad22717784a40e23701ccb9d978265440e4f
2013-05-15 16:33:36 -07:00
Dmitry Kovalev
b7a4f8a6db Adding alpha plane to YV12_BUFFER_CONFIG structure.
Change-Id: I8b2687138df636b2b78c8cc5156e3882b0009de0
2013-05-15 16:29:20 -07:00
Jingning Han
8468a5c1a0 Fix the transform type selection in 4x4 partition
This commit allows proper transform type (DCT/ADST) selection in
the settings of partition 4x4 level.

Change-Id: Iec6f922a46480d777e7ca9142a99e8c131f0077b
2013-05-15 16:09:58 -07:00