diff options
author | hkuang <hkuang@google.com> | 2014-05-15 10:51:55 -0700 |
---|---|---|
committer | hkuang <hkuang@google.com> | 2014-05-20 14:47:45 -0700 |
commit | 20c1edf6124fde58b9f755e39129289918a5fd1a (patch) | |
tree | c8144335c1b40e2f50165d0daf700f0dda0563f5 /vp9/common/vp9_tile_common.h | |
parent | 7af34402687ecfb95e52573ebac2af9e1c7cadc5 (diff) | |
download | libvpx-20c1edf6124fde58b9f755e39129289918a5fd1a.tar libvpx-20c1edf6124fde58b9f755e39129289918a5fd1a.tar.gz libvpx-20c1edf6124fde58b9f755e39129289918a5fd1a.tar.bz2 libvpx-20c1edf6124fde58b9f755e39129289918a5fd1a.zip |
Refactor decode_tiles and loopfilter code.
The current decode_tiles decodes the frame one tile by one tile
and then loopfilter the whole frame or use another worker thread to
do loopfiltering.
|------|------|------|------|
|Tile1-|Tile2-|Tile3-|Tile4-|
|------|------|------|------|
For example, if a tile video has one row and four cols, decode_tiles
will decode the Tile1, then Tile2, then Tile3, then Tile4.
And during decode each tile, decode_tile will decode row by row in
each tile.
For frame parallel decoding, decode_tiles will decode video in row order
across the tiles. So the order will be:
"Decode 1st row of Tile1" -> "Decode 1st row of Tile2"
-> "Decode 1st row of Tile3" -> "Decode 1st row of Tile4"
-> "Decode 2nd row of Tile1" -> "Decode 2nd row of Tile2"
-> "Decode 2nd row of Tile3" -> "Decode 2nd row of Tile4"-> "loopfilter 1st row"
Change-Id: I2211f9adc6d142fbf411d491031203cb8a6dbf6b
Diffstat (limited to 'vp9/common/vp9_tile_common.h')
-rw-r--r-- | vp9/common/vp9_tile_common.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/vp9/common/vp9_tile_common.h b/vp9/common/vp9_tile_common.h index a97719e29..ae58805de 100644 --- a/vp9/common/vp9_tile_common.h +++ b/vp9/common/vp9_tile_common.h @@ -27,6 +27,9 @@ typedef struct TileInfo { void vp9_tile_init(TileInfo *tile, const struct VP9Common *cm, int row, int col); +void vp9_tile_set_row(TileInfo *tile, const struct VP9Common *cm, int row); +void vp9_tile_set_col(TileInfo *tile, const struct VP9Common *cm, int col); + void vp9_get_tile_n_bits(int mi_cols, int *min_log2_tile_cols, int *max_log2_tile_cols); |