Support up to 1024 row/column tiles in bit-stream syntax
Add syntax support to allow up to 1024 row/column tiles respectively. Change-Id: I84278589364b658d6c4dd05f0771795f732ad68f
This commit is contained in:
parent
46afda0908
commit
97adfb32bd
@ -1869,7 +1869,7 @@ static void setup_tile_info(VP9_COMMON *cm, struct vp9_read_bit_buffer *rb) {
|
||||
max_ones = max_log2_tiles - min_log2_tiles;
|
||||
cm->log2_tile_cols = min_log2_tiles;
|
||||
while (max_ones-- && vp9_rb_read_bit(rb))
|
||||
cm->log2_tile_cols++;
|
||||
++cm->log2_tile_cols;
|
||||
|
||||
if (cm->log2_tile_cols > 10)
|
||||
vpx_internal_error(&cm->error, VPX_CODEC_CORRUPT_FRAME,
|
||||
@ -1877,6 +1877,12 @@ static void setup_tile_info(VP9_COMMON *cm, struct vp9_read_bit_buffer *rb) {
|
||||
|
||||
// rows
|
||||
#if CONFIG_ROW_TILE
|
||||
vp9_get_tile_n_bits(cm->mi_rows, &min_log2_tiles, &max_log2_tiles);
|
||||
max_ones = max_log2_tiles - min_log2_tiles;
|
||||
cm->log2_tile_rows = min_log2_tiles;
|
||||
while (max_ones-- && vp9_rb_read_bit(rb))
|
||||
++cm->log2_tile_rows;
|
||||
|
||||
if (cm->log2_tile_rows > 10)
|
||||
vpx_internal_error(&cm->error, VPX_CODEC_CORRUPT_FRAME,
|
||||
"Invalid number of tile columns");
|
||||
|
@ -1866,21 +1866,31 @@ static void fix_interp_filter(VP9_COMMON *cm) {
|
||||
|
||||
static void write_tile_info(const VP9_COMMON *const cm,
|
||||
struct vp9_write_bit_buffer *wb) {
|
||||
int min_log2_tile_cols, max_log2_tile_cols, ones;
|
||||
vp9_get_tile_n_bits(cm->mi_cols, &min_log2_tile_cols, &max_log2_tile_cols);
|
||||
int min_log2_tiles, max_log2_tiles, ones;
|
||||
vp9_get_tile_n_bits(cm->mi_cols, &min_log2_tiles, &max_log2_tiles);
|
||||
|
||||
// columns
|
||||
ones = cm->log2_tile_cols - min_log2_tile_cols;
|
||||
ones = cm->log2_tile_cols - min_log2_tiles;
|
||||
while (ones--)
|
||||
vp9_wb_write_bit(wb, 1);
|
||||
|
||||
if (cm->log2_tile_cols < max_log2_tile_cols)
|
||||
if (cm->log2_tile_cols < max_log2_tiles)
|
||||
vp9_wb_write_bit(wb, 0);
|
||||
|
||||
// rows
|
||||
#if CONFIG_ROW_TILE
|
||||
vp9_get_tile_n_bits(cm->mi_rows, &min_log2_tiles, &max_log2_tiles);
|
||||
ones = cm->log2_tile_rows - min_log2_tiles;
|
||||
while (ones--)
|
||||
vp9_wb_write_bit(wb, 1);
|
||||
|
||||
if (cm->log2_tile_rows < max_log2_tiles)
|
||||
vp9_wb_write_bit(wb, 0);
|
||||
#else
|
||||
vp9_wb_write_bit(wb, cm->log2_tile_rows != 0);
|
||||
if (cm->log2_tile_rows != 0)
|
||||
vp9_wb_write_bit(wb, cm->log2_tile_rows != 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
static int get_refresh_mask(VP9_COMP *cpi) {
|
||||
|
@ -373,4 +373,8 @@ void vp9_pick_filter_level(const YV12_BUFFER_CONFIG *sd, VP9_COMP *cpi,
|
||||
sd, cpi, method == LPF_PICK_FROM_SUBIMAGE);
|
||||
#endif // CONFIG_LOOP_POSTFILTER
|
||||
}
|
||||
|
||||
#if CONFIG_ROW_TILE
|
||||
lf->filter_level = 0;
|
||||
#endif
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user