Refactor encoder tile data structure
Make the common tile info as one element in the encoder tile data struct. Change-Id: I8c474b4ba67ee3e2c86ab164f353ff71ea9992be
This commit is contained in:
@@ -929,13 +929,11 @@ static int get_refresh_mask(VP9_COMP *cpi) {
|
||||
static size_t encode_tiles(VP9_COMP *cpi, uint8_t *data_ptr) {
|
||||
VP9_COMMON *const cm = &cpi->common;
|
||||
vp9_writer residual_bc;
|
||||
|
||||
int tile_row, tile_col;
|
||||
TOKENEXTRA *tok[4][1 << 6], *tok_end;
|
||||
size_t total_size = 0;
|
||||
const int tile_cols = 1 << cm->log2_tile_cols;
|
||||
const int tile_rows = 1 << cm->log2_tile_rows;
|
||||
TileInfo tile[4][1 << 6];
|
||||
TOKENEXTRA *pre_tok = cpi->tok;
|
||||
int tile_tok = 0;
|
||||
|
||||
@@ -944,18 +942,16 @@ static size_t encode_tiles(VP9_COMP *cpi, uint8_t *data_ptr) {
|
||||
|
||||
for (tile_row = 0; tile_row < tile_rows; ++tile_row) {
|
||||
for (tile_col = 0; tile_col < tile_cols; ++tile_col) {
|
||||
vp9_tile_init(&tile[tile_row][tile_col], cm, tile_row, tile_col);
|
||||
|
||||
int tile_idx = tile_row * tile_cols + tile_col;
|
||||
tok[tile_row][tile_col] = pre_tok + tile_tok;
|
||||
pre_tok = tok[tile_row][tile_col];
|
||||
tile_tok = allocated_tokens(tile[tile_row][tile_col]);
|
||||
tile_tok = allocated_tokens(cpi->tile_data[tile_idx].tile_info);
|
||||
}
|
||||
}
|
||||
|
||||
for (tile_row = 0; tile_row < tile_rows; tile_row++) {
|
||||
for (tile_col = 0; tile_col < tile_cols; tile_col++) {
|
||||
const TileInfo * const ptile = &tile[tile_row][tile_col];
|
||||
|
||||
int tile_idx = tile_row * tile_cols + tile_col;
|
||||
tok_end = tok[tile_row][tile_col] + cpi->tok_count[tile_row][tile_col];
|
||||
|
||||
if (tile_col < tile_cols - 1 || tile_row < tile_rows - 1)
|
||||
@@ -963,7 +959,8 @@ static size_t encode_tiles(VP9_COMP *cpi, uint8_t *data_ptr) {
|
||||
else
|
||||
vp9_start_encode(&residual_bc, data_ptr + total_size);
|
||||
|
||||
write_modes(cpi, ptile, &residual_bc, &tok[tile_row][tile_col], tok_end);
|
||||
write_modes(cpi, &cpi->tile_data[tile_idx].tile_info,
|
||||
&residual_bc, &tok[tile_row][tile_col], tok_end);
|
||||
assert(tok[tile_row][tile_col] == tok_end);
|
||||
vp9_stop_encode(&residual_bc);
|
||||
if (tile_col < tile_cols - 1 || tile_row < tile_rows - 1) {
|
||||
|
||||
Reference in New Issue
Block a user