platform/upstream/libvpx.git
11 years agoUpdating the model coef experiment
Deb Mukherjee [Fri, 17 May 2013 13:40:25 +0000 (06:40 -0700)]
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

11 years agoMerge "Enable bit-stream support to 8x4 and 4x8 partition" into experimental
Jingning Han [Mon, 20 May 2013 16:25:51 +0000 (09:25 -0700)]
Merge "Enable bit-stream support to 8x4 and 4x8 partition" into experimental

11 years agoGive VP9 a different sync code from VP8
Jingning Han [Sat, 18 May 2013 23:56:12 +0000 (16:56 -0700)]
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

11 years agoEnable bit-stream support to 8x4 and 4x8 partition
Jingning Han [Thu, 16 May 2013 05:28:36 +0000 (22:28 -0700)]
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

11 years agoMake nmv_count update 4x8/8x4 aware
Jingning Han [Fri, 17 May 2013 22:54:49 +0000 (15:54 -0700)]
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

11 years agoFix parameters in 4x8 variance calc
Jingning Han [Fri, 17 May 2013 17:03:52 +0000 (10:03 -0700)]
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

11 years agoMerge "holds utility debugging functions" into experimental
Jim Bankoski [Fri, 17 May 2013 16:23:36 +0000 (09:23 -0700)]
Merge "holds utility debugging functions" into experimental

11 years agoMerge "Refactor encode_sb_ for 4x8/8x4 partition" into experimental
Jingning Han [Fri, 17 May 2013 16:19:48 +0000 (09:19 -0700)]
Merge "Refactor encode_sb_ for 4x8/8x4 partition" into experimental

11 years agoMerge "Replace default counts with default probs." into experimental
Paul Wilkins [Fri, 17 May 2013 15:58:53 +0000 (08:58 -0700)]
Merge "Replace default counts with default probs." into experimental

11 years agoMerge "New inter mode context." into experimental
Paul Wilkins [Fri, 17 May 2013 13:59:09 +0000 (06:59 -0700)]
Merge "New inter mode context." into experimental

11 years agoReplace default counts with default probs.
Paul Wilkins [Thu, 16 May 2013 15:29:33 +0000 (16:29 +0100)]
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

11 years agoholds utility debugging functions
Jim Bankoski [Fri, 17 May 2013 13:29:28 +0000 (06:29 -0700)]
holds utility debugging functions

This one prints out a visual version of the partitioning for human
eyes to follow...

Change-Id: Iba434589a2f55eb069484686d99a382db93b9548

11 years agoRemove MODE_STATS flag and code
Paul Wilkins [Thu, 16 May 2013 12:40:32 +0000 (13:40 +0100)]
Remove MODE_STATS flag and code

Change-Id: I6c70a8a8a4633399842ac74792003ae5f7859ffa

11 years agoRefactor encode_sb_ for 4x8/8x4 partition
Jingning Han [Thu, 16 May 2013 23:13:33 +0000 (16:13 -0700)]
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

11 years agoMerge "Use b_width_log2_ in partition type parse" into experimental
Jingning Han [Thu, 16 May 2013 23:02:35 +0000 (16:02 -0700)]
Merge "Use b_width_log2_ in partition type parse" into experimental

11 years agoMerge "Remove vp9_extend_mb_row()" into experimental
John Koleszar [Thu, 16 May 2013 22:22:38 +0000 (15:22 -0700)]
Merge "Remove vp9_extend_mb_row()" into experimental

11 years agoMerge "WIP: 8x8 idct/recon merge" into experimental
Scott LaVarnway [Thu, 16 May 2013 21:28:30 +0000 (14:28 -0700)]
Merge "WIP: 8x8 idct/recon merge" into experimental

11 years agoMerge "Combining integer and fractional parts of mvs for entropy coding." into experi...
Dmitry Kovalev [Thu, 16 May 2013 21:16:47 +0000 (14:16 -0700)]
Merge "Combining integer and fractional parts of mvs for entropy coding." into experimental

11 years agoUse b_width_log2_ in partition type parse
Jingning Han [Thu, 16 May 2013 20:30:00 +0000 (13:30 -0700)]
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

11 years agoRemoved Q threshold in the usage of ADST
Yaowu Xu [Tue, 14 May 2013 17:35:11 +0000 (10:35 -0700)]
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

11 years agoMerge "Removing lossless flag from the bitstream." into experimental
Dmitry Kovalev [Thu, 16 May 2013 19:08:27 +0000 (12:08 -0700)]
Merge "Removing lossless flag from the bitstream." into experimental

11 years agoRemove vp9_extend_mb_row()
John Koleszar [Thu, 16 May 2013 18:48:34 +0000 (11:48 -0700)]
Remove vp9_extend_mb_row()

This code is no longer needed for correct intra prediction.

Change-Id: I822d1a8b0ad0a00e7c4c6e7b2931790c39d1267d

11 years agoWIP: 8x8 idct/recon merge
Scott LaVarnway [Thu, 16 May 2013 17:52:15 +0000 (13:52 -0400)]
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

11 years agoAdd building blocks for 4x8/8x4 rd search
Jingning Han [Wed, 15 May 2013 19:19:59 +0000 (12:19 -0700)]
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

11 years agoMerge "Fix the transform type selection in 4x4 partition" into experimental
Jingning Han [Thu, 16 May 2013 17:14:49 +0000 (10:14 -0700)]
Merge "Fix the transform type selection in 4x4 partition" into experimental

11 years agoNew inter mode context.
Paul Wilkins [Thu, 16 May 2013 10:27:12 +0000 (11:27 +0100)]
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

11 years agoMerge "Further Implicit Segmentation Changes" into experimental
Paul Wilkins [Thu, 16 May 2013 10:03:44 +0000 (03:03 -0700)]
Merge "Further Implicit Segmentation Changes" into experimental

11 years agoAdd vp9_extend_frame_borders
John Koleszar [Wed, 8 May 2013 23:18:44 +0000 (16:18 -0700)]
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

11 years agoMerge "Fix vp9_build_intra_predictors_sbuv_s for non-4:2:0" into experimental
John Koleszar [Thu, 16 May 2013 03:58:15 +0000 (20:58 -0700)]
Merge "Fix vp9_build_intra_predictors_sbuv_s for non-4:2:0" into experimental

11 years agoRemoving lossless flag from the bitstream.
Dmitry Kovalev [Thu, 16 May 2013 01:20:51 +0000 (18:20 -0700)]
Removing lossless flag from the bitstream.

Change-Id: If6aee510cbc4910f2f24fcd92dddc65fdf8edeea

11 years agoFix vp9_build_intra_predictors_sbuv_s for non-4:2:0
John Koleszar [Wed, 8 May 2013 23:17:09 +0000 (16:17 -0700)]
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

11 years agoMerge "Fix first-pass encoding test" into experimental
Jingning Han [Thu, 16 May 2013 00:01:04 +0000 (17:01 -0700)]
Merge "Fix first-pass encoding test" into experimental

11 years agoMerge "Moving the same code to new function vp9_setup_scale_factors." into experimental
Dmitry Kovalev [Wed, 15 May 2013 23:50:33 +0000 (16:50 -0700)]
Merge "Moving the same code to new function vp9_setup_scale_factors." into experimental

11 years agoMerge "Adding alpha plane to YV12_BUFFER_CONFIG structure." into experimental
Dmitry Kovalev [Wed, 15 May 2013 23:49:53 +0000 (16:49 -0700)]
Merge "Adding alpha plane to YV12_BUFFER_CONFIG structure." into experimental

11 years agoMoving the same code to new function vp9_setup_scale_factors.
Dmitry Kovalev [Wed, 15 May 2013 00:10:17 +0000 (17:10 -0700)]
Moving the same code to new function vp9_setup_scale_factors.

Change-Id: I2408ad22717784a40e23701ccb9d978265440e4f

11 years agoAdding alpha plane to YV12_BUFFER_CONFIG structure.
Dmitry Kovalev [Wed, 15 May 2013 23:29:20 +0000 (16:29 -0700)]
Adding alpha plane to YV12_BUFFER_CONFIG structure.

Change-Id: I8b2687138df636b2b78c8cc5156e3882b0009de0

11 years agoFix the transform type selection in 4x4 partition
Jingning Han [Wed, 15 May 2013 17:19:40 +0000 (10:19 -0700)]
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

11 years agoMerge "Preparing vp9_deblock and vp9_denoise to alpha support." into experimental
Dmitry Kovalev [Wed, 15 May 2013 22:40:52 +0000 (15:40 -0700)]
Merge "Preparing vp9_deblock and vp9_denoise to alpha support." into experimental

11 years agoMerge "Moving several static functions from vp9_reconinter.h to vp9_reconinter.c...
Dmitry Kovalev [Wed, 15 May 2013 22:39:43 +0000 (15:39 -0700)]
Merge "Moving several static functions from vp9_reconinter.h to vp9_reconinter.c." into experimental

11 years agoFix first-pass encoding test
Jingning Han [Wed, 15 May 2013 21:12:33 +0000 (14:12 -0700)]
Fix first-pass encoding test

Always initialize the mode_info with sb_type of BLOCK_SIZE_MB16X16
for the first-pass encoding test.

Change-Id: Ic86393eeef981bdd523a5b44cfac3f0b24c068b7

11 years agoCombining integer and fractional parts of mvs for entropy coding.
Dmitry Kovalev [Wed, 15 May 2013 19:37:03 +0000 (12:37 -0700)]
Combining integer and fractional parts of mvs for entropy coding.

Combining encode_nmv_component with encode_nmv_component_fp
and read_nmv_component with read_nmv_component_fp. Bitstream is slightly
changed (only the order of bits), here are the results on test sets:
stdhd: +0.047, yt: -0.038, derf: +0.001, hd: -0.011.

Change-Id: I1be312e976796df78ca63368702d0ee19f2b8c50

11 years agoWIP: 16x16 idct/recon merge
Scott LaVarnway [Wed, 15 May 2013 17:16:02 +0000 (13:16 -0400)]
WIP: 16x16 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: Iea7976b22b1927d24b8004d2a3fddae7ecca3ba1

11 years agoFurther Implicit Segmentation Changes
Paul Wilkins [Sat, 27 Apr 2013 22:49:49 +0000 (23:49 +0100)]
Further Implicit Segmentation Changes

Trial use of a combination of reference frame,
prediction block size and mv to define segmentation.

Change-Id: Ie8946a0446dbad777fdcf7626f89e5af0994db50

11 years agoMoving several static functions from vp9_reconinter.h to vp9_reconinter.c.
Dmitry Kovalev [Wed, 15 May 2013 00:49:41 +0000 (17:49 -0700)]
Moving several static functions from vp9_reconinter.h to vp9_reconinter.c.

Change-Id: I5da9c16bab26f6ff0c9d3a2a29ef6c84f5093161

11 years agoWIP: 32x32 idct/recon merge
Scott LaVarnway [Tue, 14 May 2013 15:58:13 +0000 (11:58 -0400)]
WIP: 32x32 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: I4ea09df0e162591e420d869b7431c2e7f89a8c1a

11 years agoEnable recursive partition down to 4x4
Jingning Han [Sat, 11 May 2013 00:06:37 +0000 (17:06 -0700)]
Enable recursive partition down to 4x4

This commit allows the rate-distortion optimization recursion
at encoder to go down to 4x4 block size. It deprecates the use
of I4X4_PRED and SPLITMV syntax elements from bit-stream
writing/reading. Will remove the unused probability models in
the next patch.

The partition type search and bit-stream are now capable of
supporting the rectangular partition of 8x8 block, i.e., 8x4
and 4x8. Need to revise the rate-distortion parts to get these
two partition tested in the rd loop.

Change-Id: I0dfe3b90a1507ad6138db10cc58e6e237a06a9d6

11 years agoPreparing vp9_deblock and vp9_denoise to alpha support.
Dmitry Kovalev [Tue, 14 May 2013 18:01:57 +0000 (11:01 -0700)]
Preparing vp9_deblock and vp9_denoise to alpha support.

Change-Id: I299feefa64b93bd62263aea1ff1e41e85faeb6ca

11 years agoMerge "Do joint motion search iteratively" into experimental
Yunqing Wang [Tue, 14 May 2013 17:18:11 +0000 (10:18 -0700)]
Merge "Do joint motion search iteratively" into experimental

11 years agoMerge "changed to use adst for D63_PRED" into experimental
Yaowu Xu [Tue, 14 May 2013 16:30:17 +0000 (09:30 -0700)]
Merge "changed to use adst for D63_PRED" into experimental

11 years agoMerge "Revert "Preparing vp9_deblock and vp9_denoise to alpha support."" into experim...
John Koleszar [Tue, 14 May 2013 13:47:44 +0000 (06:47 -0700)]
Merge "Revert "Preparing vp9_deblock and vp9_denoise to alpha support."" into experimental

11 years agoRevert "Preparing vp9_deblock and vp9_denoise to alpha support."
John Koleszar [Tue, 14 May 2013 13:46:11 +0000 (06:46 -0700)]
Revert "Preparing vp9_deblock and vp9_denoise to alpha support."

This reverts commit a933311131bfc77ffd1c64b29f7e1688a1c4b192

Change-Id: I2321f88011178381adbcffeda1bcc6a430ab8f1d

11 years agochanged to use adst for D63_PRED
Yaowu Xu [Mon, 13 May 2013 23:51:47 +0000 (16:51 -0700)]
changed to use adst for D63_PRED

To be consistent with other prediciton modes

Change-Id: If9e1464e5c807f0b36047a046c4ac59d91b1b868

11 years agoMerge "Using loop through all planes inside scale_and_extend_frame function." into...
Dmitry Kovalev [Tue, 14 May 2013 04:50:39 +0000 (21:50 -0700)]
Merge "Using loop through all planes inside scale_and_extend_frame function." into experimental

11 years agoMerge "Preparing vp9_deblock and vp9_denoise to alpha support." into experimental
Dmitry Kovalev [Tue, 14 May 2013 04:48:37 +0000 (21:48 -0700)]
Merge "Preparing vp9_deblock and vp9_denoise to alpha support." into experimental

11 years agoMerge "Moving vp9_decode_frame declaration to vp9_decodframe.h." into experimental
Dmitry Kovalev [Tue, 14 May 2013 04:47:10 +0000 (21:47 -0700)]
Merge "Moving vp9_decode_frame declaration to vp9_decodframe.h." into experimental

11 years agoMerge "Adding encode_quantization function." into experimental
Dmitry Kovalev [Tue, 14 May 2013 04:46:54 +0000 (21:46 -0700)]
Merge "Adding encode_quantization function." into experimental

11 years agoMerge "Code cleanup inside vp9_firstpass.c." into experimental
Dmitry Kovalev [Tue, 14 May 2013 04:46:14 +0000 (21:46 -0700)]
Merge "Code cleanup inside vp9_firstpass.c." into experimental

11 years agoMerge "Removing simple loopfilter and code duplication from loopfilter code." into...
Dmitry Kovalev [Tue, 14 May 2013 01:25:15 +0000 (18:25 -0700)]
Merge "Removing simple loopfilter and code duplication from loopfilter code." into experimental

11 years agoRemoving simple loopfilter and code duplication from loopfilter code.
Dmitry Kovalev [Tue, 14 May 2013 01:09:11 +0000 (18:09 -0700)]
Removing simple loopfilter and code duplication from loopfilter code.

Change-Id: Ib19352e391408507f2237985501406900a355964

11 years agoAdding encode_quantization function.
Dmitry Kovalev [Tue, 14 May 2013 01:05:20 +0000 (18:05 -0700)]
Adding encode_quantization function.

Change-Id: Ib7448f7f325ba34a3cba8ab3129028e31e593cf5

11 years agoUsing loop through all planes inside scale_and_extend_frame function.
Dmitry Kovalev [Mon, 13 May 2013 23:02:29 +0000 (16:02 -0700)]
Using loop through all planes inside scale_and_extend_frame function.

Change-Id: I493bcf7bac930e9937a9b57e4b7c803da22728bd

11 years agoMoving vp9_decode_frame declaration to vp9_decodframe.h.
Dmitry Kovalev [Mon, 13 May 2013 21:42:45 +0000 (14:42 -0700)]
Moving vp9_decode_frame declaration to vp9_decodframe.h.

Change-Id: Ia7a772718a4b11b413c36d4280df8668e19c9084

11 years agoPreparing vp9_deblock and vp9_denoise to alpha support.
Dmitry Kovalev [Mon, 13 May 2013 21:03:29 +0000 (14:03 -0700)]
Preparing vp9_deblock and vp9_denoise to alpha support.

Change-Id: Id1cc1c2663b9c2219cb830ffb4b0c6ab3468dc04

11 years agoDo joint motion search iteratively
Yunqing Wang [Sat, 11 May 2013 01:46:43 +0000 (18:46 -0700)]
Do joint motion search iteratively

Allow motion search multiple times iteratively, and break out
the loop if this search couldn't find better motion vectors.
Limit the maximum number of search to 2.

Tests results:
1. stdhd set: 0.311%(overall psnr); 0.346%(ssim).
positive gain on 10 out of 16 clips(best: 2.746% on sunflower;
worst: -0.434% on old_town_cross).
2. derf set: 0.016%(overall psnr); 0.062%(ssim).
positive gain on half of the clips(best: 0.499% on bowing;
worst: -0.387 on city).

Change-Id: Ibf0a51776d4caf7707be0586346db08128117559

11 years agoMerge "Use consistent partition context setup in enc/dec" into experimental
Jingning Han [Mon, 13 May 2013 17:51:51 +0000 (10:51 -0700)]
Merge "Use consistent partition context setup in enc/dec" into experimental

11 years agoMerge "Force bsize for UV in I4X4 and SPLITMV" into experimental
Jingning Han [Mon, 13 May 2013 17:51:39 +0000 (10:51 -0700)]
Merge "Force bsize for UV in I4X4 and SPLITMV" into experimental

11 years agoMerge "Move get_sb_index to vp9_blockd.h" into experimental
Jingning Han [Mon, 13 May 2013 17:51:29 +0000 (10:51 -0700)]
Merge "Move get_sb_index to vp9_blockd.h" into experimental

11 years agoChange to band calculation.
Paul Wilkins [Thu, 9 May 2013 17:47:58 +0000 (18:47 +0100)]
Change to band calculation.

Change band calculation back to simpler model based
on the order in which coefficients are coded in scan order
not the absolute coefficient positions.

With the scatter scan experiment enabled the results were
appear broadly neutral on derf (-0.028) but up a little on std-hd +0.134).

Without the scatterscan experiment on the results were up derf as well.

Change-Id: Ie9ef03ce42a6b24b849a4bebe950d4a5dffa6791

11 years agoUse consistent partition context setup in enc/dec
Jingning Han [Sat, 11 May 2013 22:19:56 +0000 (15:19 -0700)]
Use consistent partition context setup in enc/dec

Move set_partition_seg_context_ to common file. Use consistent
context setup conditions for partition probability model update at
encoder and decoder.

Change-Id: I24b7ed3b1c48e3d2568191a46b70136b99b67b1a

11 years agoForce bsize for UV in I4X4 and SPLITMV
Jingning Han [Sat, 11 May 2013 20:33:13 +0000 (13:33 -0700)]
Force bsize for UV in I4X4 and SPLITMV

Use 4x4 block coding for UV components arbitrarily in I4X4_PRED and
SPLITMV coding modes. This is a temporary solution to enable
bit-stream support for recursive partition down to 4x4 block size.
Will separate the functionalities of 4x4 block coding rate-distortion
out from those of superblocks.

Change-Id: I03dc15d5897014f175f3f2c91e9b266091d56797

11 years agoMove get_sb_index to vp9_blockd.h
Jingning Han [Sat, 11 May 2013 20:24:03 +0000 (13:24 -0700)]
Move get_sb_index to vp9_blockd.h

Use common function to fetch/assign sb_index in rd loop, bit-stream
writing and reading.

Change-Id: I1d8a214a57ed9cbcd026040436ef33e5e39d65b7

11 years agoMerge "Fix token allocation for non-4:2:0" into experimental
John Koleszar [Fri, 10 May 2013 23:57:09 +0000 (16:57 -0700)]
Merge "Fix token allocation for non-4:2:0" into experimental

11 years agoMerge "Fix non-4:2:0 chroma MV calculation for SPLITMV" into experimental
John Koleszar [Fri, 10 May 2013 23:57:03 +0000 (16:57 -0700)]
Merge "Fix non-4:2:0 chroma MV calculation for SPLITMV" into experimental

11 years agoMerge "Fix 4:2:0 assumptions in debug plane output" into experimental
John Koleszar [Fri, 10 May 2013 23:56:45 +0000 (16:56 -0700)]
Merge "Fix 4:2:0 assumptions in debug plane output" into experimental

11 years agoMerge "vpxenc: fix mismatch check for non-4:2:0" into experimental
John Koleszar [Fri, 10 May 2013 23:56:30 +0000 (16:56 -0700)]
Merge "vpxenc: fix mismatch check for non-4:2:0" into experimental

11 years agoMerge "Subsampling aware allocs and bitstream" into experimental
John Koleszar [Fri, 10 May 2013 23:55:00 +0000 (16:55 -0700)]
Merge "Subsampling aware allocs and bitstream" into experimental

11 years agoMerge "Enable recursive partition type search" into experimental
Jingning Han [Fri, 10 May 2013 21:08:02 +0000 (14:08 -0700)]
Merge "Enable recursive partition type search" into experimental

11 years agoMerge "Removing unused simple loopfilter code." into experimental
Dmitry Kovalev [Fri, 10 May 2013 19:14:34 +0000 (12:14 -0700)]
Merge "Removing unused simple loopfilter code." into experimental

11 years agoRemoving unused simple loopfilter code.
Dmitry Kovalev [Fri, 10 May 2013 18:04:43 +0000 (11:04 -0700)]
Removing unused simple loopfilter code.

Change-Id: Ic11dc052fb641687c015e1bbc37181b9babcd43e

11 years agoRemove unused mdcounts
Yunqing Wang [Wed, 8 May 2013 23:27:35 +0000 (16:27 -0700)]
Remove unused mdcounts

mdcounts seems no longer used.

Change-Id: Idd8162e8acfa3f5be7a18767156cc79ccbc2bdee

11 years agoAdd joint motion search in comp_inter_inter mode(experiment)
Yunqing Wang [Tue, 7 May 2013 16:45:28 +0000 (09:45 -0700)]
Add joint motion search in comp_inter_inter mode(experiment)

In current code, motion vectors got from single prediction mode are used
in compound prediction mode directly. These motion vectors may not give
accurate prediction since they are searched independently. In this patch,
we took Pascal's suggestion, and did joint motion search in compound
prediction mode to find better motion vectors in this situation.
Test results:
Overall PSNR: 0.570%(derf), 0.918%(stdhd);
SSIM: 0.572%(derf), 1.009%(stdhd);

The encoder is a little slower. This can be improved since some c
code is used in motion search.

Change-Id: Ib30c9240f6c56c9b070867b4ca89412a76d9f3c6

11 years agoEnable recursive partition type search
Jingning Han [Wed, 8 May 2013 21:24:43 +0000 (14:24 -0700)]
Enable recursive partition type search

This commit enables the search for the optimal superblock
partition types in the recursion form. The intention is to
make the optimization process more concise and ready to
support partition down to 4x4 block size next.

Change-Id: Iae279a67df3a7cc372553c84c775bc4d2f3e4336

11 years agoAvoid calls to get_coef_band().
Paul Wilkins [Thu, 9 May 2013 12:51:15 +0000 (13:51 +0100)]
Avoid calls to get_coef_band().

Use value already computed value to save of calls

Change-Id: I42836698e59c116416ccd75395bebdd11dd609fb

11 years agoFix token allocation for non-4:2:0
John Koleszar [Wed, 8 May 2013 23:15:54 +0000 (16:15 -0700)]
Fix token allocation for non-4:2:0

Increase the allocated size of the token array to support 4:4:4.

Change-Id: I7766a7bedc74b819dcc1f3622d634f340fd3186d

11 years agoFix non-4:2:0 chroma MV calculation for SPLITMV
John Koleszar [Wed, 8 May 2013 23:14:14 +0000 (16:14 -0700)]
Fix non-4:2:0 chroma MV calculation for SPLITMV

The previous code was somewhat vestigial for 16x16 MI units, but was
incorrect when called with chroma blocks larger than 4x4 because the
block index caused a reference to a non-existent BMI. This patch uses
the same MV for all chroma subblocks in SPLITMV mode, which is
suboptimal for non-4:2:0 subsamplings, but as SPLITMV may be removed
in the near future, will use this as a stop gap.

Change-Id: I3211cee5ccf1cfb426e5eef5353b0ce5bb92b4cd

11 years agoFix 4:2:0 assumptions in debug plane output
John Koleszar [Wed, 8 May 2013 23:19:56 +0000 (16:19 -0700)]
Fix 4:2:0 assumptions in debug plane output

Fixes some debugging code to be able to write out frames with
chroma other than 4:2:0.

Change-Id: I5ee3d29e584db1f52d2de344db249e927eff10b7

11 years agovpxenc: fix mismatch check for non-4:2:0
John Koleszar [Wed, 8 May 2013 23:07:38 +0000 (16:07 -0700)]
vpxenc: fix mismatch check for non-4:2:0

Change-Id: Iffe7c2e6c6cb14b637420ffc368a5003f5db42fa

11 years agoSubsampling aware allocs and bitstream
John Koleszar [Mon, 6 May 2013 22:52:06 +0000 (15:52 -0700)]
Subsampling aware allocs and bitstream

Make framebuffer allocations according to the chroma subsamping
factors in use. A bit is placed in the raw part of the frame header for
each of the two subsampling factors. This will be moved in a future
commit to make them part of the TBD feature set bits, probably only set
on keyframes, etc.

Change-Id: I59ed38d3a3c0d4af3c7c277617de28d04a001853

11 years agoMerge "Change test image format to VPX_IMG_FMT_I420" into experimental
John Koleszar [Thu, 9 May 2013 19:25:45 +0000 (12:25 -0700)]
Merge "Change test image format to VPX_IMG_FMT_I420" into experimental

11 years agoMerge "Use common get_uv_tx_size()" into experimental
John Koleszar [Thu, 9 May 2013 19:18:10 +0000 (12:18 -0700)]
Merge "Use common get_uv_tx_size()" into experimental

11 years agoMerge "Make firstpass encode Y-only" into experimental
John Koleszar [Thu, 9 May 2013 19:17:50 +0000 (12:17 -0700)]
Merge "Make firstpass encode Y-only" into experimental

11 years agoUpdating comments for prediction modes.
Dmitry Kovalev [Thu, 9 May 2013 18:37:51 +0000 (11:37 -0700)]
Updating comments for prediction modes.

Change-Id: If4063184f7b37dc011ec6a7a3e75260f4251e984

11 years agoMake firstpass encode Y-only
John Koleszar [Thu, 9 May 2013 17:40:59 +0000 (10:40 -0700)]
Make firstpass encode Y-only

The chroma planes are not used during the first pass encode,
but the vp9_encode_sb() function was operating on them anyway.
This was causing the use of uninitialized memory.

Change-Id: I5ebafcd3d5e34ed91a8336dad159b573995a939f

11 years agoChange test image format to VPX_IMG_FMT_I420
John Koleszar [Thu, 9 May 2013 03:42:58 +0000 (20:42 -0700)]
Change test image format to VPX_IMG_FMT_I420

Code was previously using VPX_IMG_FMT_VPXI420, which was intended to be the
"vpx" non-YUV colorspace variant.

Change-Id: Icf8771eeefeb574055ed638a93450c3d0ed5b9f5

11 years agoUse common get_uv_tx_size()
John Koleszar [Tue, 7 May 2013 21:44:12 +0000 (14:44 -0700)]
Use common get_uv_tx_size()

Use a single method for calculating the transform size of
non-luma planes.

Change-Id: I16ebd10e7944d7b9075ab79d15e6a5b5f9bab775

11 years agoCode cleanup inside vp9_firstpass.c.
Dmitry Kovalev [Thu, 9 May 2013 01:13:46 +0000 (18:13 -0700)]
Code cleanup inside vp9_firstpass.c.

Change-Id: Ia2814402e3c2ec97c24c536c05f0f526fe1a431c

11 years agoRemoving LOOPFILTER_TYPE and corresponding bit in bitstream.
Dmitry Kovalev [Wed, 8 May 2013 23:39:43 +0000 (16:39 -0700)]
Removing LOOPFILTER_TYPE and corresponding bit in bitstream.

We don't have two loopfilter types anymore.

Change-Id: I53c0137361342c7d00887ad03be3490f0dfa3532

11 years agoMerge "Using 4-iteration loop for extra_mb_col inside loopfilter function." into...
Dmitry Kovalev [Wed, 8 May 2013 23:37:34 +0000 (16:37 -0700)]
Merge "Using 4-iteration loop for extra_mb_col inside loopfilter function." into experimental

11 years agoMerge "Removing unused YV12_BUFFER_CONFIG arguments from motion search functions...
Dmitry Kovalev [Wed, 8 May 2013 23:36:42 +0000 (16:36 -0700)]
Merge "Removing unused YV12_BUFFER_CONFIG arguments from motion search functions." into experimental

11 years agoMerge "Eliminating several YV12_BUFFER_CONFIG usages." into experimental
Dmitry Kovalev [Wed, 8 May 2013 23:36:24 +0000 (16:36 -0700)]
Merge "Eliminating several YV12_BUFFER_CONFIG usages." into experimental