summaryrefslogtreecommitdiff
path: root/vp9/encoder
diff options
context:
space:
mode:
authorDmitry Kovalev <dkovalev@google.com>2013-08-15 17:03:03 -0700
committerDmitry Kovalev <dkovalev@google.com>2013-08-15 17:03:03 -0700
commitafd9bd3e3ce8bbdc3b4f9b23c7d882fee7109fd2 (patch)
treed9bc93d6d08ab6ee06efbf63729adac9052ef40a /vp9/encoder
parent9451e8d37e89eb32f91fb844bf2ba31d16bc1526 (diff)
downloadlibvpx-afd9bd3e3ce8bbdc3b4f9b23c7d882fee7109fd2.tar
libvpx-afd9bd3e3ce8bbdc3b4f9b23c7d882fee7109fd2.tar.gz
libvpx-afd9bd3e3ce8bbdc3b4f9b23c7d882fee7109fd2.tar.bz2
libvpx-afd9bd3e3ce8bbdc3b4f9b23c7d882fee7109fd2.zip
Moving from ss_txfrm_size to tx_size.
Updating foreach_transformed_block_visitor and corresponding functions to accept tx_size instead of ss_txfrm_size. List of functions per file: vp9_decodframe.c decode_block decode_block_intra vp9_detokenize.c decode_block vp9_encodemb.c optimize_block vp9_xform_quant vp9_encode_block_intra vp9_rdopt.c dist_block rate_block block_yrd_txfm vp9_tokenize.c set_entropy_context_b tokenize_b is_skippable Change-Id: I351bf563eb36cf34db71c3f06b9bbc9a61b55b73
Diffstat (limited to 'vp9/encoder')
-rw-r--r--vp9/encoder/vp9_encodeintra.h4
-rw-r--r--vp9/encoder/vp9_encodemb.c29
-rw-r--r--vp9/encoder/vp9_encodemb.h4
-rw-r--r--vp9/encoder/vp9_rdopt.c15
-rw-r--r--vp9/encoder/vp9_tokenize.c8
5 files changed, 28 insertions, 32 deletions
diff --git a/vp9/encoder/vp9_encodeintra.h b/vp9/encoder/vp9_encodeintra.h
index 16ac59e39..b951d770c 100644
--- a/vp9/encoder/vp9_encodeintra.h
+++ b/vp9/encoder/vp9_encodeintra.h
@@ -14,8 +14,8 @@
#include "vp9/encoder/vp9_onyx_int.h"
int vp9_encode_intra(VP9_COMP *cpi, MACROBLOCK *x, int use_16x16_pred);
-void encode_block_intra(int plane, int block, BLOCK_SIZE_TYPE bsize,
- int ss_txfrm_size, void *arg);
+void vp9_encode_block_intra(int plane, int block, BLOCK_SIZE_TYPE bsize,
+ TX_SIZE tx_size, void *arg);
void vp9_encode_intra_block_y(VP9_COMMON *const cm, MACROBLOCK *mb,
BLOCK_SIZE_TYPE bs);
void vp9_encode_intra_block_uv(VP9_COMMON *const cm, MACROBLOCK *mb,
diff --git a/vp9/encoder/vp9_encodemb.c b/vp9/encoder/vp9_encodemb.c
index ea85ac6df..ea09f5579 100644
--- a/vp9/encoder/vp9_encodemb.c
+++ b/vp9/encoder/vp9_encodemb.c
@@ -382,9 +382,9 @@ void vp9_optimize_b(int plane, int block, BLOCK_SIZE_TYPE bsize,
}
static void optimize_block(int plane, int block, BLOCK_SIZE_TYPE bsize,
- int ss_txfrm_size, void *arg) {
+ TX_SIZE tx_size, void *arg) {
const struct encode_b_args* const args = arg;
- vp9_optimize_b(plane, block, bsize, ss_txfrm_size >> 1, args->x, args->ctx);
+ vp9_optimize_b(plane, block, bsize, tx_size, args->x, args->ctx);
}
void optimize_init_b(int plane, BLOCK_SIZE_TYPE bsize, void *arg) {
@@ -446,8 +446,8 @@ void vp9_optimize_sbuv(VP9_COMMON *const cm, MACROBLOCK *x,
foreach_transformed_block_uv(&x->e_mbd, bsize, optimize_block, &arg);
}
-void xform_quant(int plane, int block, BLOCK_SIZE_TYPE bsize,
- int ss_txfrm_size, void *arg) {
+void vp9_xform_quant(int plane, int block, BLOCK_SIZE_TYPE bsize,
+ TX_SIZE tx_size, void *arg) {
struct encode_b_args* const args = arg;
MACROBLOCK* const x = args->x;
MACROBLOCKD* const xd = &x->e_mbd;
@@ -458,7 +458,6 @@ void xform_quant(int plane, int block, BLOCK_SIZE_TYPE bsize,
int16_t *dqcoeff = BLOCK_OFFSET(pd->dqcoeff, block);
const int16_t *scan, *iscan;
uint16_t *eob = &pd->eobs[block];
- const TX_SIZE tx_size = (TX_SIZE)(ss_txfrm_size >> 1);
const int bwl = b_width_log2(bsize) - pd->subsampling_x, bw = 1 << bwl;
const int twl = bwl - tx_size, twmask = (1 << twl) - 1;
int xoff, yoff;
@@ -521,11 +520,10 @@ void xform_quant(int plane, int block, BLOCK_SIZE_TYPE bsize,
}
static void encode_block(int plane, int block, BLOCK_SIZE_TYPE bsize,
- int ss_txfrm_size, void *arg) {
+ TX_SIZE tx_size, void *arg) {
struct encode_b_args *const args = arg;
MACROBLOCK *const x = args->x;
MACROBLOCKD *const xd = &x->e_mbd;
- const TX_SIZE tx_size = (TX_SIZE)(ss_txfrm_size >> 1);
const int raster_block = txfrm_block_to_raster_block(xd, bsize, plane,
block, tx_size);
struct macroblockd_plane *const pd = &xd->plane[plane];
@@ -533,7 +531,7 @@ static void encode_block(int plane, int block, BLOCK_SIZE_TYPE bsize,
uint8_t *const dst = raster_block_offset_uint8(xd, bsize, plane,
raster_block,
pd->dst.buf, pd->dst.stride);
- xform_quant(plane, block, bsize, ss_txfrm_size, arg);
+ vp9_xform_quant(plane, block, bsize, tx_size, arg);
if (x->optimize)
vp9_optimize_b(plane, block, bsize, tx_size, x, args->ctx);
@@ -569,7 +567,7 @@ void vp9_xform_quant_sby(VP9_COMMON *cm, MACROBLOCK *x, BLOCK_SIZE_TYPE bsize) {
MACROBLOCKD* const xd = &x->e_mbd;
struct encode_b_args arg = {cm, x, NULL};
- foreach_transformed_block_in_plane(xd, bsize, 0, xform_quant, &arg);
+ foreach_transformed_block_in_plane(xd, bsize, 0, vp9_xform_quant, &arg);
}
void vp9_xform_quant_sbuv(VP9_COMMON *cm, MACROBLOCK *x,
@@ -577,7 +575,7 @@ void vp9_xform_quant_sbuv(VP9_COMMON *cm, MACROBLOCK *x,
MACROBLOCKD* const xd = &x->e_mbd;
struct encode_b_args arg = {cm, x, NULL};
- foreach_transformed_block_uv(xd, bsize, xform_quant, &arg);
+ foreach_transformed_block_uv(xd, bsize, vp9_xform_quant, &arg);
}
void vp9_encode_sby(VP9_COMMON *cm, MACROBLOCK *x, BLOCK_SIZE_TYPE bsize) {
@@ -623,13 +621,12 @@ void vp9_encode_sb(VP9_COMMON *cm, MACROBLOCK *x, BLOCK_SIZE_TYPE bsize) {
foreach_transformed_block(xd, bsize, encode_block, &arg);
}
-void encode_block_intra(int plane, int block, BLOCK_SIZE_TYPE bsize,
- int ss_txfrm_size, void *arg) {
+void vp9_encode_block_intra(int plane, int block, BLOCK_SIZE_TYPE bsize,
+ TX_SIZE tx_size, void *arg) {
struct encode_b_args* const args = arg;
MACROBLOCK *const x = args->x;
MACROBLOCKD *const xd = &x->e_mbd;
MB_MODE_INFO *mbmi = &xd->mode_info_context->mbmi;
- const TX_SIZE tx_size = (TX_SIZE)(ss_txfrm_size >> 1);
struct macroblock_plane *const p = &x->plane[plane];
struct macroblockd_plane *const pd = &xd->plane[plane];
int16_t *coeff = BLOCK_OFFSET(p->coeff, block);
@@ -781,14 +778,14 @@ void vp9_encode_intra_block_y(VP9_COMMON *cm, MACROBLOCK *x,
struct optimize_ctx ctx;
struct encode_b_args arg = {cm, x, &ctx};
- foreach_transformed_block_in_plane(xd, bsize, 0,
- encode_block_intra, &arg);
+ foreach_transformed_block_in_plane(xd, bsize, 0, vp9_encode_block_intra,
+ &arg);
}
void vp9_encode_intra_block_uv(VP9_COMMON *cm, MACROBLOCK *x,
BLOCK_SIZE_TYPE bsize) {
MACROBLOCKD* const xd = &x->e_mbd;
struct optimize_ctx ctx;
struct encode_b_args arg = {cm, x, &ctx};
- foreach_transformed_block_uv(xd, bsize, encode_block_intra, &arg);
+ foreach_transformed_block_uv(xd, bsize, vp9_encode_block_intra, &arg);
}
diff --git a/vp9/encoder/vp9_encodemb.h b/vp9/encoder/vp9_encodemb.h
index f2f790376..21dd8b89b 100644
--- a/vp9/encoder/vp9_encodemb.h
+++ b/vp9/encoder/vp9_encodemb.h
@@ -42,8 +42,8 @@ void vp9_encode_sb(VP9_COMMON *cm, MACROBLOCK *x, BLOCK_SIZE_TYPE bsize);
void vp9_encode_sby(VP9_COMMON *cm, MACROBLOCK *x, BLOCK_SIZE_TYPE bsize);
void vp9_encode_sbuv(VP9_COMMON *cm, MACROBLOCK *x, BLOCK_SIZE_TYPE bsize);
-void xform_quant(int plane, int block, BLOCK_SIZE_TYPE bsize,
- int ss_txfrm_size, void *arg);
+void vp9_xform_quant(int plane, int block, BLOCK_SIZE_TYPE bsize,
+ TX_SIZE tx_size, void *arg);
void vp9_xform_quant_sby(VP9_COMMON *cm, MACROBLOCK *x, BLOCK_SIZE_TYPE bsize);
void vp9_xform_quant_sbuv(VP9_COMMON *cm, MACROBLOCK *x, BLOCK_SIZE_TYPE bsize);
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c
index 87a114528..90daaf387 100644
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -572,7 +572,8 @@ struct rdcost_block_args {
};
static void dist_block(int plane, int block, BLOCK_SIZE_TYPE bsize,
- int ss_txfrm_size, void *arg) {
+ TX_SIZE tx_size, void *arg) {
+ const int ss_txfrm_size = tx_size << 1;
struct rdcost_block_args* args = arg;
MACROBLOCK* const x = args->x;
MACROBLOCKD* const xd = &x->e_mbd;
@@ -597,7 +598,7 @@ static void dist_block(int plane, int block, BLOCK_SIZE_TYPE bsize,
}
static void rate_block(int plane, int block, BLOCK_SIZE_TYPE bsize,
- int ss_txfrm_size, void *arg) {
+ TX_SIZE tx_size, void *arg) {
struct rdcost_block_args* args = arg;
MACROBLOCKD *const xd = &args->x->e_mbd;
int x_idx, y_idx;
@@ -693,7 +694,7 @@ static int64_t block_error_sbuv(MACROBLOCK *x, BLOCK_SIZE_TYPE bsize,
}
static void block_yrd_txfm(int plane, int block, BLOCK_SIZE_TYPE bsize,
- int ss_txfrm_size, void *arg) {
+ TX_SIZE tx_size, void *arg) {
struct rdcost_block_args *args = arg;
MACROBLOCK *const x = args->x;
MACROBLOCKD *const xd = &x->e_mbd;
@@ -714,12 +715,12 @@ static void block_yrd_txfm(int plane, int block, BLOCK_SIZE_TYPE bsize,
}
if (!is_inter_block(&xd->mode_info_context->mbmi))
- encode_block_intra(plane, block, bsize, ss_txfrm_size, &encode_args);
+ vp9_encode_block_intra(plane, block, bsize, tx_size, &encode_args);
else
- xform_quant(plane, block, bsize, ss_txfrm_size, &encode_args);
+ vp9_xform_quant(plane, block, bsize, tx_size, &encode_args);
- dist_block(plane, block, bsize, ss_txfrm_size, args);
- rate_block(plane, block, bsize, ss_txfrm_size, args);
+ dist_block(plane, block, bsize, tx_size, args);
+ rate_block(plane, block, bsize, tx_size, args);
}
static void txfm_rd_in_plane(VP9_COMMON *const cm, MACROBLOCK *x,
diff --git a/vp9/encoder/vp9_tokenize.c b/vp9/encoder/vp9_tokenize.c
index 64505f7b4..c5cfd4fb1 100644
--- a/vp9/encoder/vp9_tokenize.c
+++ b/vp9/encoder/vp9_tokenize.c
@@ -98,9 +98,8 @@ struct tokenize_b_args {
};
static void set_entropy_context_b(int plane, int block, BLOCK_SIZE_TYPE bsize,
- int ss_txfrm_size, void *arg) {
+ TX_SIZE tx_size, void *arg) {
struct tokenize_b_args* const args = arg;
- const TX_SIZE tx_size = (TX_SIZE)(ss_txfrm_size >> 1);
MACROBLOCKD *const xd = args->xd;
const int bwl = b_width_log2(bsize);
const int off = block >> (2 * tx_size);
@@ -122,12 +121,11 @@ static void set_entropy_context_b(int plane, int block, BLOCK_SIZE_TYPE bsize,
}
static void tokenize_b(int plane, int block, BLOCK_SIZE_TYPE bsize,
- int ss_txfrm_size, void *arg) {
+ TX_SIZE tx_size, void *arg) {
struct tokenize_b_args* const args = arg;
VP9_COMP *cpi = args->cpi;
MACROBLOCKD *xd = args->xd;
TOKENEXTRA **tp = args->tp;
- const TX_SIZE tx_size = (TX_SIZE)(ss_txfrm_size >> 1);
const int tx_size_in_blocks = 1 << tx_size;
MB_MODE_INFO *mbmi = &xd->mode_info_context->mbmi;
int pt; /* near block/prev token context index */
@@ -242,7 +240,7 @@ struct is_skippable_args {
};
static void is_skippable(int plane, int block,
- BLOCK_SIZE_TYPE bsize, int ss_txfrm_size, void *argv) {
+ BLOCK_SIZE_TYPE bsize, TX_SIZE tx_size, void *argv) {
struct is_skippable_args *args = argv;
args->skippable[0] &= (!args->xd->plane[plane].eobs[block]);
}