Commit 766a389b authored by Urvang Joshi's avatar Urvang Joshi

Add a new experiment "rect-intra-pred".

Earlier, intra prediction for rectangular blocks was performed by
running two steps of prediction on square sub-blocks.

With this experiment, we do proper intra prediction for rectangular
blocks. This ensures that we make use of all available neighboring
pixels especially for directional modes. For this, all the intra
predictors were updated to work with rectangular transform block sizes.

Performance improvements are small but free of cost:

All Intra frames:
lowres: -0.126
midres: -0.154

Video Overall:
lowres: -0.043
midres: -0.100

[Could not get AWCY results due to a backlog.]

BUG=aomedia:551

Change-Id: I7936e91b171d5c246cb0a4ea470a981a013892e6
parent dac5e391
......@@ -46,6 +46,14 @@ if (aom_config("CONFIG_TX64X64") eq "yes") {
push @tx_dims, '64';
}
@tx_sizes = ();
foreach $w (@tx_dims) {
push @tx_sizes, [$w, $w];
foreach $h (@tx_dims) {
push @tx_sizes, [$w, $h] if ($w >=4 && $h >=4 && ($w == 2*$h || $h == 2*$w));
}
}
@pred_names = qw/dc dc_top dc_left dc_128 v h d207e d63e d45e d117 d135 d153/;
if (aom_config("CONFIG_ALT_INTRA") eq "yes") {
push @pred_names, qw/paeth smooth/;
......@@ -60,9 +68,8 @@ if (aom_config("CONFIG_ALT_INTRA") eq "yes") {
# Intra prediction
#
foreach $dim (@tx_dims) {
$w = ${dim};
$h = ${dim};
foreach (@tx_sizes) {
($w, $h) = @$_;
foreach $pred_name (@pred_names) {
add_proto "void", "aom_${pred_name}_predictor_${w}x${h}",
"uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
......
This diff is collapsed.
This diff is collapsed.
......@@ -88,6 +88,7 @@ set(CONFIG_CDEF 1 CACHE BOOL "Internal flag.")
set(CONFIG_VAR_TX 1 CACHE BOOL "Internal flag.")
set(CONFIG_RECT_TX 1 CACHE BOOL "Internal flag.")
set(CONFIG_RECT_TX_EXT 0 CACHE BOOL "Internal flag.")
set(CONFIG_RECT_INTRA_PRED 0 CACHE BOOL "Internal flag.")
set(CONFIG_TPL_MV 0 CACHE BOOL "Internal flag.")
set(CONFIG_DUAL_FILTER 1 CACHE BOOL "Internal flag.")
set(CONFIG_CONVOLVE_ROUND 0 CACHE BOOL "Internal flag.")
......
......@@ -318,6 +318,7 @@ EXPERIMENT_LIST="
one_sided_compound
smooth_hv
var_refs
rect_intra_pred
"
CONFIG_LIST="
dependency_tracking
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment