Method and system for picture segmentation using columns
AssigneeDolby Laboratories Licensing Corporation
InventorMichael Horowitz
Life of this patent
Estimating the term…
Abstract
Described is picture segmentation through columns and slices in video encoding and decoding. A video picture is divided into a plurality of columns, each column covering only a part of the video picture in a horizontal dimension. All coded tree blocks (“CTBs”) belonging to a slice may belong to one or more columns. The columns may be used to break the same or different prediction or in-loop filtering mechanisms of the video coding, and the CTB scan order used for encoding and/or decoding may be local to a column. Column widths may be indicated in a parameter set and/or may be adjusted at the slice level. At the decoder, column width may be parsed from the bitstream, and slice decoding may occur in one or more columns.
Claims7
A method for encoding a video picture comprising a plurality of coded tree blocks, CTBs, arranged into at least two rows and at least two columns of CTBs, the method comprising:
- encoding a number of columns of CTBs in the video picture;
- encoding corresponding column widths of each of the columns, each column width greater than zero and a sum of all column widths equal to a horizontal dimension of the video picture;
- and
- encoding at least one slice of the video picture, wherein the at least one slice comprises at least two CTBs located in at least two rows of CTBs;
- wherein a column runs from a top of the video picture to a bottom of the video picture, and the width of a column is uniform from the top of the video picture to the bottom of the video picture;
- wherein the video picture is scanned from a left most column to a right most column;
- wherein all the CTBs within a first column are scanned from left to right and top to bottom before the CTBs of a second column, immediately right of the first column, are scanned;
- wherein encoding the at least one slice of the video picture includes:
- encoding the CTBs in the at least one slice in an order that is based on the respective columns to which the CTBs belong, and breaking in-loop filtering within the at least one slice at a column boundary between adjacent columns of the columns;
- and
- wherein encoding at least one slice of the video picture includes transforming a block in the slice and entropy encoding motion vectors.
A method for decoding a coded video picture comprising a plurality of coded tree blocks, CTBs, arranged into at least two rows and at least two columns of CTBs, the method comprising:
- obtaining a number of columns of CTBs in the coded video picture;
- deriving the corresponding column width of each of the columns;
- and
- decoding at least one slice of the coded video picture, wherein the at least one slice comprises at least two CTBs located in at least two rows of CTBs;
- wherein a column runs from a top of the video picture to a bottom of the video picture, and the width of a column is uniform from the top of the video picture to the bottom of the video picture;
- wherein the video picture is scanned from a left most column to a right most column;
- wherein all the CTBs within a first column are scanned from left to right and top to bottom before the CTBs of a second column, immediately right of the first column, are scanned;
- wherein decoding the at least one slice of the video picture includes:
- decoding the CTBs in the at least one slice in an order that is based on the respective columns to which the CTBs belong, and breaking in-loop filtering within the at least one slice at a column boundary between adjacent columns of the columns;
- and
- wherein decoding at least one slice of the coded video picture includes entropy decoding motion vectors and inverse transforming coefficients of a CTB in the slice.
An apparatus comprising a data storage for storing coded video picture data, the coded video picture data comprising:
- a plurality of slices;
- a plurality of coded tree blocks, CTBs, arranged into at least two rows and at least two columns of CTBs;
- a number of columns of CTBs in the coded video picture;
- and
- a motion vector of at least one CTB;
- and
- transform coefficients of at least one CTB;
- wherein at least one slice comprises at least two CTBs located in at least two rows of CTBs;
- wherein a column runs from a top of the video picture to a bottom of the video picture, and the width of a column is uniform from the top of the video picture to the bottom of the video picture;
- wherein the columns of the video picture are ordered for scanning from a left most column to a right most column;
- wherein the at least one slice is organized such that:
- the CTBs in the at least one slice are in an order that is based on the respective columns to which the CTBs belong, and in-loop filtering is broken within the at least one slice at a column boundary between adjacent columns of the columns;
- and
- wherein the CTBs are ordered so that all the CTBs within a first column are scanned from left to right and top to bottom before the CTBs of a second column, immediately right of the first column, are scanned.
An apparatus comprising:
- means for encoding a number of columns of coded tree blocks, CTBs, in a video picture;
- means for encoding corresponding column widths of each of the columns, each column width greater than zero and a sum of all column widths equal to a horizontal dimension of the video picture;
- and,
- means for encoding at least one slice of the video picture, wherein the at least one slice comprises at least two CTBs located in at least two rows of CTBs,
- wherein a column runs from a top of the video picture to a bottom of the video picture, and the width of a column is uniform from the top of the video picture to the bottom of the video picture;
- wherein the video picture is scanned from a left most column to a right most column;
- and
- wherein all the CTBs within a first column are scanned from left to right and top to bottom before the CTBs of a second column, immediately right of the first column, are scanned;
- wherein encoding the at least one slice of the video picture includes:
- encoding the CTBs in the at least one slice in an order that is based on the respective columns to which the CTBs belong, and breaking in-loop filtering within the at least one slice at a column boundary between adjacent columns of the columns;
- and
- wherein encoding at least one slice of the video picture includes transforming a block in the slice and entropy encoding motion vectors.
A device comprising one or more processors and one or more storage medium storing instructions, which when executed by the one or more processors, cause performance of operations comprising:
- encoding a number of columns of coded tree blocks, CTBs, in a video picture;
- encoding corresponding column widths of each of the columns, each column width greater than zero and a sum of all column widths equal to a horizontal dimension of the video picture;
- and,
- encoding at least one slice of the video picture, wherein the at least one slice comprises at least two CTBs located in at least two rows of CTBs,
- wherein a column runs from a top of the video picture to a bottom of the video picture, and the width of a column is uniform from the top of the video picture to the bottom of the video picture;
- wherein the video picture is scanned from a left most column to a right most column;
- and
- wherein all the CTBs within a first column are scanned from left to right and top to bottom before the CTBs of a second column, immediately right of the first column, are scanned;
- wherein encoding the at least one slice of the video picture includes:
- encoding the CTBs in the at least one slice in an order that is based on the respective columns to which the CTBs belong, and breaking in-loop filtering within the at least one slice at a column boundary between adjacent columns of the columns;
- and
- wherein encoding at least one slice of the video picture includes transforming a block in the slice and entropy encoding motion vectors.
A non-transitory computer readable storage medium storing instructions which, when executed by one or more processors, cause performance of operations comprising:
- encoding a number of columns of coded tree blocks, CTBs, in a video picture;
- encoding corresponding column widths of each of the columns, each column width greater than zero and a sum of all column widths equal to a horizontal dimension of the video picture;
- and,
- encoding at least one slice of the video picture, wherein the at least one slice comprises at least two CTBs located in at least two rows of CTBs,
- wherein a column runs from a top of the video picture to a bottom of the video picture, and the width of a column is uniform from the top of the video picture to the bottom of the video picture;
- wherein the video picture is scanned from a left most column to a right most column;
- and
- wherein all the CTBs within a first column are scanned from left to right and top to bottom before the CTBs of a second column, immediately right of the first column, are scanned;
- wherein encoding the at least one slice of the video picture includes:
- encoding the CTBs in the at least one slice in an order that is based on the respective columns to which the CTBs belong, and breaking in-loop filtering within the at least one slice at a column boundary between adjacent columns of the columns;
- and
- wherein encoding at least one slice of the video picture includes transforming a block in the slice and entropy encoding motion vectors.
Dependencies are inferred from the claim text.