WO2021060802A1 - 픽처로부터 분할되는 하위 유닛들에 대한 정보를 획득하는 방법 및 장치 - Google Patents

픽처로부터 분할되는 하위 유닛들에 대한 정보를 획득하는 방법 및 장치 Download PDF

Info

Publication number
WO2021060802A1
WO2021060802A1 PCT/KR2020/012769 KR2020012769W WO2021060802A1 WO 2021060802 A1 WO2021060802 A1 WO 2021060802A1 KR 2020012769 W KR2020012769 W KR 2020012769W WO 2021060802 A1 WO2021060802 A1 WO 2021060802A1
Authority
WO
WIPO (PCT)
Prior art keywords
picture
slice
flag
information
brick
Prior art date
Application number
PCT/KR2020/012769
Other languages
English (en)
French (fr)
Inventor
김재일
이선영
손세훈
Original Assignee
에스케이텔레콤 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020200113632A external-priority patent/KR20210037538A/ko
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Priority to US17/763,751 priority Critical patent/US20220345702A1/en
Priority to CN202080082074.8A priority patent/CN114747213A/zh
Publication of WO2021060802A1 publication Critical patent/WO2021060802A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1883Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Definitions

  • the present invention relates to encoding and decoding of moving pictures, and more particularly, to a method and apparatus for improving encoding and decoding efficiency by efficiently obtaining information on various sub-units.
  • moving picture data Since moving picture data has a larger amount of data than audio data or still image data, it requires a lot of hardware resources including memory in order to store or transmit itself without processing for compression.
  • the moving picture data is compressed and stored or transmitted using an encoder, and the decoder receives the compressed moving picture data, decompresses and plays the compressed moving picture data.
  • video compression techniques there are H.264/AVC and HEVC (High Efficiency Video Coding), which improves coding efficiency by about 40% compared to H.264/AVC.
  • the present invention aims to provide an improved video encoding and decoding technology, and in particular, an aspect of the present invention improves the efficiency of encoding and decoding through various methods of dividing a picture into sub-units. It relates to the skill to improve.
  • An aspect of the present invention is a method of obtaining information on subunits divided from a picture, from a bitstream, CTU size information indicating the size of coding tree units (CTUs) within the picture Decoding the data; Decoding subpicture segmentation information representing subpictures in the picture in units of the size of the CTU from the bitstream; Decoding split information of one or more tiles in the picture from the bitstream; And decoding split information of one or more slices in the picture from the bitstream.
  • CTU size information indicating the size of coding tree units (CTUs) within the picture
  • Decoding the data Decoding subpicture segmentation information representing subpictures in the picture in units of the size of the CTU from the bitstream
  • Decoding split information of one or more tiles in the picture from the bitstream Decoding split information of one or more slices in the picture from the bitstream.
  • Another aspect of the present invention is an image decoding apparatus, comprising: a decoder that obtains information on sub-units divided from a picture from a bitstream; And a picture reconstruction unit for reconstructing the picture based on the information on the sub-units, wherein the decoding unit includes CTU size information indicating a size of coding tree units (CTUs) within the picture.
  • CTU size information indicating a size of coding tree units (CTUs) within the picture.
  • Decoding from the bitstream decoding subpicture split information representing subpictures in the picture in units of the size of the CTU from the bitstream, decoding splitting information of one or more tiles in the picture from the bitstream, It provides an apparatus for decoding split information of one or more slices in the picture from the bitstream.
  • bit efficiency can be improved.
  • the division information of the subpicture is expressed in units of CTU, uniformity with other subunits can be secured, and through this, the division information of the subpicture can be more efficiently expressed. I can.
  • FIG. 1 is an exemplary block diagram of an image encoding apparatus capable of implementing the techniques of the present disclosure.
  • FIG. 2 is a diagram for explaining a method of dividing a block using a QTBTTT structure.
  • 3 is a diagram for describing a plurality of intra prediction modes.
  • FIG. 4 is an exemplary block diagram of an image decoding apparatus capable of implementing the techniques of the present disclosure.
  • 5 to 7 are diagrams for explaining slices, tiles, and subpictures.
  • FIG. 9 is a flowchart illustrating an example of a method capable of implementing the techniques of the present disclosure.
  • FIG. 10 is a flowchart illustrating an example of a method of dividing a picture into tiles.
  • FIG. 11 is a flowchart illustrating an example of a method of dividing a picture into bricks.
  • FIG. 12 is a diagram for explaining a partitioning relationship between a tile/brick and a slice.
  • FIG. 13 is a flowchart illustrating an example of a method of dividing a picture into slices.
  • 14 to 17 are flowcharts illustrating various examples of a method of obtaining information on whether to filter a slice boundary.
  • FIG. 18 is a flowchart illustrating an example of a method of dividing a picture into subpictures.
  • 19 is a flowchart illustrating an example of a specific method of dividing a picture into subpictures.
  • FIG. 1 is an exemplary block diagram of an image encoding apparatus capable of implementing the techniques of the present disclosure.
  • an image encoding apparatus and sub-elements of the apparatus will be described with reference to FIG. 1.
  • the image encoding apparatus includes a block division unit 110, a prediction unit 120, a subtractor 130, a transform unit 140, a quantization unit 145, an encoding unit 150, an inverse quantization unit 160, and an inverse transform unit ( 165, an adder 170, a filter unit 180, and a memory 190 may be included.
  • Each component of the image encoding apparatus may be implemented as hardware or software, or may be implemented as a combination of hardware and software.
  • functions of each component may be implemented as software, and a microprocessor may be implemented to execute a function of software corresponding to each component.
  • One image is composed of a plurality of pictures. Each picture is divided into a plurality of regions, and encoding is performed for each region. For example, one picture is divided into one or more tiles or/and slices. Here, one or more tiles may be defined as a tile group. Each tile or/slice is divided into one or more Coding Tree Units (CTUs). And each CTU is divided into one or more CUs (Coding Units) by a tree structure. Information applied to each CU is encoded as the syntax of the CU, and information commonly applied to CUs included in one CTU is encoded as the syntax of the CTU.
  • CTUs Coding Tree Units
  • information commonly applied to all blocks in one tile is encoded as the syntax of a tile or is encoded as a syntax of a tile group in which a plurality of tiles are collected, and information applied to all blocks constituting one picture is It is encoded in a picture parameter set (PPS) or a picture header.
  • PPS picture parameter set
  • information commonly referred to by a plurality of pictures is encoded in a sequence parameter set (SPS).
  • SPS sequence parameter set
  • information commonly referred to by one or more SPSs is encoded in a video parameter set (VPS).
  • the block dividing unit 110 determines the size of a coding tree unit (CTU).
  • CTU size Information on the size of the CTU (CTU size) is encoded as the syntax of the SPS or PPS and transmitted to the video decoding apparatus.
  • the block dividing unit 110 divides each picture constituting an image into a plurality of coding tree units (CTUs) having a predetermined size, and then repeatedly divides the CTU using a tree structure. Split (recursively). A leaf node in a tree structure becomes a coding unit (CU), which is a basic unit of coding.
  • CU coding unit
  • a quadtree in which an upper node (or parent node) is divided into four lower nodes (or child nodes) of the same size
  • a binary tree in which an upper node is divided into two lower nodes.
  • BT binary tree
  • TT ternary tree
  • a QTBT QuadTree plus BinaryTree
  • a QTBTTT QuadTree plus BinaryTree TernaryTree
  • MTT Multiple-Type Tree
  • the CTU may be first divided into a QT structure.
  • the quadtree division may be repeated until the size of a splitting block reaches the minimum block size (MinQTSize) of a leaf node allowed in QT.
  • a first flag (QT_split_flag) indicating whether each node of the QT structure is divided into four nodes of a lower layer is encoded by the encoder 150 and signaled to the image decoding apparatus. If the leaf node of the QT is not larger than the maximum block size (MaxBTSize) of the root node allowed in BT, it may be further divided into one or more of a BT structure or a TT structure.
  • MaxBTSize maximum block size
  • a plurality of division directions may exist. For example, there may be two directions in which a block of a corresponding node is divided horizontally and a direction vertically divided.
  • a second flag indicating whether nodes are split, and if split, a flag indicating a split direction (vertical or horizontal) and/or a split type (Binary or Ternary).
  • a flag indicating) is encoded by the encoder 150 and signaled to the image decoding apparatus.
  • a CU split flag indicating that the block has been split first
  • a QT split flag indicating whether the split type is QT splitting
  • the CU split flag split_cu_flag
  • the block of the corresponding node becomes a leaf node in the split tree structure and becomes a coding unit (CU), which is a basic unit of encoding.
  • split_cu_flag When indicating that the value of the CU split flag (split_cu_flag) is split, whether the split type is QT or MTT is distinguished through the value of the QT split flag (split_qt_flag). If the split type is QT, there is no additional information, and if the split type is MTT, a flag indicating the MTT split direction (vertical or horizontal) (mtt_split_cu_vertical_flag) and/or a flag indicating the MTT split type (Binary or Ternary) (mtt_split_cu_binary_flag) is encoded by the encoder 150 and signaled to the video decoding apparatus.
  • a split flag indicating whether each node of the BT structure is divided into blocks of a lower layer and split type information indicating a type to be divided are encoded by the encoder 150 and transmitted to the image decoding apparatus.
  • the asymmetric form may include a form of dividing a block of a corresponding node into two rectangular blocks having a size ratio of 1:3, or a form of dividing a block of a corresponding node in a diagonal direction.
  • the CU may have various sizes according to the QTBT or QTBTTT split from the CTU.
  • a block corresponding to a CU to be encoded or decoded ie, a leaf node of QTBTTT
  • a'current block' a block corresponding to a CU to be encoded or decoded
  • the prediction unit 120 predicts the current block and generates a prediction block.
  • the prediction unit 120 includes an intra prediction unit 122 and an inter prediction unit 124.
  • each of the current blocks in a picture can be predictively coded.
  • prediction of the current block is performed using an intra prediction technique (using data from a picture containing the current block) or an inter prediction technique (using data from a picture coded before a picture containing the current block). Can be done.
  • Inter prediction includes both one-way prediction and two-way prediction.
  • the intra prediction unit 122 predicts pixels in the current block by using pixels (reference pixels) located around the current block in the current picture including the current block.
  • the plurality of intra prediction modes may include a non-directional mode including a planar mode and a DC mode, and 65 directional modes.
  • the surrounding pixels to be used and the equation are defined differently.
  • the intra prediction unit 122 may determine an intra prediction mode to be used to encode the current block.
  • the intra prediction unit 122 may encode the current block using several intra prediction modes, and select an appropriate intra prediction mode to use from the tested modes. For example, the intra prediction unit 122 calculates rate distortion values using rate-distortion analysis for several tested intra prediction modes, and has the best rate distortion characteristics among the tested modes. It is also possible to select an intra prediction mode.
  • the intra prediction unit 122 selects one intra prediction mode from among a plurality of intra prediction modes, and predicts the current block by using a neighboring pixel (reference pixel) and an equation determined according to the selected intra prediction mode.
  • Information on the selected intra prediction mode is encoded by the encoder 150 and transmitted to the image decoding apparatus.
  • the inter prediction unit 124 generates a prediction block for the current block through a motion compensation process.
  • a block that is most similar to a current block is searched for in a reference picture that is coded and decoded before the current picture, and a prediction block for the current block is generated using the searched block. Then, a motion vector corresponding to a displacement between the current block in the current picture and the prediction block in the reference picture is generated.
  • motion estimation is performed on a luma component, and a motion vector calculated based on the luma component is used for both the luma component and the chroma component.
  • Motion information including information on a reference picture used to predict a current block and information on a motion vector is encoded by the encoder 150 and transmitted to an image decoding apparatus.
  • the subtractor 130 generates a residual block by subtracting the prediction block generated by the intra prediction unit 122 or the inter prediction unit 124 from the current block.
  • the transform unit 140 converts the residual signal in the residual block having pixel values in the spatial domain into transform coefficients in the frequency domain.
  • the transform unit 140 may transform residual signals in the residual block using the total size of the residual block as a transform unit, or divide the residual block into two sub-blocks, which are transform regions and non-transform regions, Residual signals can be transformed using only a block as a transform unit.
  • the transform region subblock may be one of two rectangular blocks having a size ratio of 1:1 based on the horizontal axis (or vertical axis).
  • a flag indicating that only the subblock has been transformed (cu_sbt_flag), directional (vertical/horizontal) information (cu_sbt_horizontal_flag), and/or location information (cu_sbt_pos_flag) are encoded by the encoder 150 and signaled to the video decoding apparatus.
  • the size of the transform region subblock may have a size ratio of 1:3 based on the horizontal axis (or vertical axis), and in this case, a flag (cu_sbt_quad_flag) that separates the division is additionally encoded by the encoder 150 to decode the image. Signaled to the device.
  • the quantization unit 145 quantizes the transform coefficients output from the transform unit 140 and outputs the quantized transform coefficients to the encoding unit 150.
  • the encoding unit 150 generates a bitstream by encoding the quantized transform coefficients using an encoding method such as Context-based Adaptive Binary Arithmetic Code (CABAC).
  • CABAC Context-based Adaptive Binary Arithmetic Code
  • the encoder 150 encodes information such as a CTU size related to block division, a CU division flag, a QT division flag, an MTT division direction, and an MTT division type, so that the video decoding apparatus can divide the block in the same manner as the video encoding apparatus. To be there.
  • CABAC Context-based Adaptive Binary Arithmetic Code
  • the encoder 150 encodes information on a prediction type indicating whether the current block is encoded by intra prediction or inter prediction, and intra prediction information (ie, intra prediction mode) according to the prediction type.
  • intra prediction information ie, intra prediction mode
  • Information or inter prediction information (information on a reference picture and a motion vector) is encoded.
  • the inverse quantization unit 160 inverse quantizes the quantized transform coefficients output from the quantization unit 145 to generate transform coefficients.
  • the inverse transform unit 165 converts transform coefficients output from the inverse quantization unit 160 from the frequency domain to the spatial domain to restore the residual block.
  • the addition unit 170 restores the current block by adding the reconstructed residual block and the prediction block generated by the prediction unit 120.
  • the pixels in the reconstructed current block are used as reference pixels when intra-predicting the next block.
  • the filter unit 180 filters reconstructed pixels to reduce blocking artifacts, ringing artifacts, blurring artifacts, etc. that occur due to block-based prediction and transformation/quantization. Perform.
  • the filter unit 180 may include a deblocking filter 182 and a sample adaptive offset (SAO) filter 184.
  • the deblocking filter 180 filters the boundary between reconstructed blocks to remove blocking artifacts caused by block-based encoding/decoding, and the SAO filter 184 is additionally applied to the deblocking filtered image. Perform filtering.
  • the SAO filter 184 is a filter used to compensate for a difference between a reconstructed pixel and an original pixel caused by lossy coding.
  • the reconstructed block filtered through the deblocking filter 182 and the SAO filter 184 is stored in the memory 190.
  • the reconstructed picture is used as a reference picture for inter prediction of a block in a picture to be encoded later.
  • the picture coder divides the picture into sub-units, and encodes the picture in units of CUs included in the sub-units.
  • the picture encoder may include components other than the encoder 150 among components included in the image encoding apparatus.
  • the encoder 150 encodes information on sub-units divided from the picture and signals the information to the image decoding apparatus. A method of encoding information on sub-units by the encoder 150 will be described in detail below.
  • FIG. 4 is an exemplary block diagram of an image decoding apparatus capable of implementing the techniques of the present disclosure.
  • an image decoding apparatus and sub-elements of the apparatus will be described with reference to FIG. 4.
  • the image decoding apparatus may include a decoding unit 410, an inverse quantization unit 420, an inverse transform unit 430, a prediction unit 440, an adder 450, a filter unit 460, and a memory 470. have.
  • each component of the image decoding apparatus may be implemented as hardware or software, or may be implemented as a combination of hardware and software.
  • functions of each component may be implemented as software, and a microprocessor may be implemented to execute a function of software corresponding to each component.
  • the decoding unit 410 determines the current block to be decoded by decoding the bitstream received from the video encoding apparatus and extracting information related to block division, and information on prediction information and residual signals necessary to restore the current block, etc. Extract.
  • the decoder 410 determines the size of the CTU by extracting information on the CTU size from a sequence parameter set (SPS) or a picture parameter set (PPS), and divides the picture into CTUs of the determined size. Then, the CTU is determined as the highest layer of the tree structure, that is, the root node, and the CTU is divided using the tree structure by extracting the partition information for the CTU.
  • SPS sequence parameter set
  • PPS picture parameter set
  • a first flag (QT_split_flag) related to the splitting of the QT is first extracted, and each node is split into four nodes of a lower layer.
  • the second flag (MTT_split_flag) related to the splitting of the MTT and the splitting direction (vertical / horizontal) and/or split type (binary / ternary) information are extracted and the corresponding leaf node is MTT.
  • each node may have zero or more repetitive MTT partitions after zero or more repetitive QT partitions. For example, in the CTU, MTT division may occur immediately, or, conversely, only multiple QT divisions may occur.
  • each node is divided into four nodes of a lower layer by extracting the first flag (QT_split_flag) related to the division of the QT.
  • QT_split_flag the first flag related to the division of the QT.
  • a split flag indicating whether or not the node corresponding to the leaf node of the QT is further split into BT and split direction information are extracted.
  • the decoder 410 when determining the current block to be decoded through division of the tree structure, extracts information on a prediction type indicating whether the current block is intra predicted or inter predicted. When the prediction type information indicates intra prediction, the decoder 410 extracts a syntax element for intra prediction information (intra prediction mode) of the current block. When the prediction type information indicates inter prediction, the decoder 410 extracts a syntax element for the inter prediction information, that is, information indicating a motion vector and a reference picture referenced by the motion vector.
  • the decoding unit 410 extracts information on quantized transform coefficients of the current block as information on the residual signal.
  • the inverse quantization unit 420 inverse quantizes the quantized transform coefficients, and the inverse transform unit 430 inversely transforms the inverse quantized transform coefficients from the frequency domain to the spatial domain to restore residual signals to generate a residual block for the current block. .
  • the inverse transform unit 430 inverse transforms only a partial region (subblock) of the transform block, a flag indicating that only the subblock of the transform block has been transformed (cu_sbt_flag), and the direction (vertical/horizontal) information of the subblock (cu_sbt_horizontal_flag) ) And/or sub-block location information (cu_sbt_pos_flag), and inverse transform coefficients of the sub-block from the frequency domain to the spatial domain to restore residual signals. By filling in, the final residual block for the current block is created.
  • the prediction unit 440 may include an intra prediction unit 442 and an inter prediction unit 444.
  • the intra prediction unit 442 is activated when the prediction type of the current block is intra prediction
  • the inter prediction unit 444 is activated when the prediction type of the current block is inter prediction.
  • the intra prediction unit 442 determines an intra prediction mode of the current block among a plurality of intra prediction modes from a syntax element for the intra prediction mode extracted from the decoder 410, and a reference pixel around the current block according to the intra prediction mode.
  • the current block is predicted by using them.
  • the inter prediction unit 444 determines a motion vector of the current block and a reference picture referenced by the motion vector by using the syntax element for the inter prediction mode extracted from the decoding unit 410, and uses the motion vector and the reference picture. To predict the current block.
  • the adder 450 restores the current block by adding the residual block output from the inverse transform unit and the prediction block output from the inter prediction unit or the intra prediction unit.
  • the pixels in the reconstructed current block are used as reference pixels for intra prediction of a block to be decoded later.
  • the filter unit 460 may include a deblocking filter 462 and an SAO filter 464.
  • the deblocking filter 462 performs deblocking filtering on the boundary between reconstructed blocks in order to remove blocking artifacts occurring due to block-by-block decoding.
  • the SAO filter 464 performs additional filtering on the reconstructed block after deblocking filtering in order to compensate for the difference between the reconstructed pixel and the original pixel caused by lossy coding.
  • the reconstructed block filtered through the deblocking filter 462 and the SAO filter 464 is stored in the memory 470. When all blocks in one picture are reconstructed, the reconstructed picture is used as a reference picture for inter prediction of a block in a picture to be encoded later.
  • the decoder 410 obtains information on sub-units divided from a picture by decoding it from a bitstream.
  • the picture restoration unit 4000 restores a picture based on the obtained information on sub-units.
  • the picture restoration unit 4000 may include other elements other than the decoder 410 among elements included in the image decoding apparatus. A method by which the decoding unit 410 obtains information on sub-units will be described in detail below.
  • One of the two types of picture division methods is a slice division method and the other is a tile division method.
  • a function of encoding/decoding is provided by dividing one picture into CTU units in the order of raster scan order.
  • Several slice segments can exist in one slice, and there are two types of slice segments. Types of slice segments include an independent slice segment and a dependent slice segment.
  • the independent slice segment is a slice segment that does not depend on other slices in intra prediction, inter prediction, coding mode and entropy coding.
  • Independent slice segments have header information.
  • Dependent slice segments are slice segments that depend on other slices (refer to other preceding independent slice segments) in intra prediction, inter prediction, coding mode and entropy coding.
  • the dependent slice segment refers to header information of an independent slice segment that precedes most of the header information. That is, only part of the header information of the dependent slice segment is signaled.
  • 5A shows two slices divided from a picture, and the two slices may be divided by a slice boundary.
  • One independent slice segment and zero or more dependent slice segments may exist in one slice.
  • the first slice positioned above the picture includes one independent slice segment and two dependent slice segments separated by a dotted line.
  • the second slice located at the bottom of the picture contains only one independent slice segment (including 0 dependent slice segments).
  • Table 1 shows a flag indicating whether to use a dependent slice segment (dependent_slice_segments_enabled_flag), and this flag may be defined in the PPS.
  • Table 2 shows slice segment header information.
  • a flag indicating whether a specific slice segment is the first slice segment in the picture is encoded and signaled.
  • the first slice segment becomes an independent slice segment. If it is not the first slice segment, a flag indicating whether it is a dependent slice segment (dependent_slice_segment_flag) is encoded and signaled.
  • the address (slice_segment_address) of the corresponding slice segment is encoded together and signaled.
  • slice_segment_address means an index value of the first CTU in the corresponding slice segment.
  • tile division method a function of encoding/decoding by partitioning/dividing one picture into a plurality of columns and rows in units of CTU is provided.
  • the method of dividing a picture into tiles can be divided equally or individually (non-uniformly divided).
  • Each of the divided tiles does not depend on other tiles during intra prediction and entropy coding, and whether or not to depend on in-loop filtering can be controlled with a flag defined in the PPS. There is no separate header for tiles.
  • FIG. 5(b) shows tiles divided by 3x3 from a picture, and each of the tiles may be divided by tile boundaries (column boundaries, row boundaries).
  • a plurality of tiles may be encoded/decoded in the order of raster scan order, and a plurality of CTUs in one tile may also be encoded/decoded in the order of raster scan order. Numbers displayed in each CTU indicate the order in which encoding/decoding is performed.
  • Table 3 shows the syntax structure for the tile division method.
  • a flag (tiles_enabled_flag) indicating on/off of the tile division method is defined and signaled in the PPS, and when the corresponding flag is on, syntax specifying the size of the tile is additionally signaled.
  • the syntax for specifying the size of the tile includes num_tile_columns_minus1 indicating a value obtained by subtracting 1 from the number of tiles divided in the vertical axis direction (number of tile columns), and 1 in the number of tiles divided in the horizontal axis direction (number of tile rows) Num_tile_rows_minus1 indicating the subtracted value, uniform_spacing_flag indicating whether the picture is divided equally in the horizontal axis direction and the vertical axis direction, and the like may be included.
  • tile column width information (column_width_minus1) and tile row height information (row_height_minus1) are additionally signaled.
  • a flag indicating whether to apply in-loop filtering at the boundary between tiles (loop_filter_across_tiles_enabled_flag) is also signaled.
  • FIG. 6(a) shows slices (a total of 4) divided according to the slice division method
  • FIG. 6(b) shows tiles (a total of 4) divided according to the tile division method.
  • Each of the numbers represents the number of CTUs.
  • a boundary in the horizontal axis direction may exist in units of CTU.
  • a boundary in a horizontal axis direction and a boundary in a vertical axis direction may exist between the divided tiles in units of CTU.
  • the present invention proposes a method of obtaining information on sub-units divided from a picture.
  • the lower units may include one or more of a subpicture, a slice, a tile/brick, and a CTU.
  • the information on the sub-units may include an enable flag and split information of the sub-units.
  • the enable flag is a syntax element indicating whether to perform in-loop filtering at the boundary between sub-units.
  • the division information of the sub-units corresponds to information for dividing the picture into various sub-units. Accordingly,'obtaining the division information of sub-units' may be'dividing the picture into sub-units'.
  • picture segmentation methods for various purposes using segmentation information of sub-units are proposed. Specifically, 1) a sub-picture segmentation method for synthesizing different sequences, 2) a slice segmentation method for bitstream packing, and 3) a tile/brick segmentation method for parallel processing, etc. Is suggested through.
  • a tile/brick refers to an area obtained by dividing this single picture in order to process one picture in parallel.
  • Tiles/bricks have structures that operate independently of each other during intra prediction and entropy coding. That is, tiles/bricks do not share a reference sample during intra prediction and have a relationship that does not share context during entropy coding. Whether to apply the in-loop filter to the boundary between tiles/bricks can be controlled through a separate flag.
  • a slice means a data packing unit that generates one independent network abstraction layer (NAL) bitstream.
  • NAL network abstraction layer
  • the first mode is a rectangular slice mode in which tiles/bricks with similar characteristics or random tiles/bricks are divided into one area
  • the second mode is tile/bricks in the order of raster-scan.
  • This is a non-rectangular slice (raster-scan slice, raster-scan) mode in which areas are divided at specific locations while encoding/decoding bricks.
  • FIG. 7 An example of a rectangular slice mode and a raster scan slice mode is shown in FIG. 7.
  • an area divided by a dotted line represents a CTU
  • an area divided by a straight line represents a tile/brick
  • an area divided by a dashed-dotted line represents a slice.
  • one picture is divided into a total of 216 (18x12) CTUs, divided into a total of 24 (6x4) tiles/bricks, and can be divided into a total of 9 rectangular slices.
  • 6x4 tiles/bricks can be divided into a total of 9 rectangular slices.
  • FIG.7(b) one picture is divided into a total of 216 (18x12) CTUs, divided into a total of 12 (3x4) tiles/bricks, and divided into a total of 3 raster scan slices. I can.
  • a subpicture refers to an area divided for synthesis with other contents.
  • the subpicture may include at least one slice.
  • FIG. 8 An example in which different contents are synthesized in units of subpictures is shown in FIG. 8.
  • An area expressed as a pattern in the upper right direction means a picture in content 1
  • an area expressed as a pattern in the horizontal axis direction means a picture in content 2
  • an area expressed in a pattern in the vertical axis direction means a picture in content 3.
  • each of the pictures may be composed of four slices, and a bitstream may be generated in units of each slice. Also, each slice may be defined as a subpicture. Bitstreams that are physically generated in slice units are input to Bitstream Extractor & Merger to undergo extraction and synthesis. Here, the logical unit of the extraction process and the synthesis process is a subpicture. As a result, as shown on the right side of FIG. 8, a new picture is created in which the upper left portion is composed of content 1, the lower left portion is composed of content 2, and the right portion is composed of content 3.
  • Bitstream Extractor & Merger extracts and synthesizes bitstreams generated in slice units from different contents in subpicture units. To this end, pictures of each content are divided into subpictures. That is, a subpicture is an area including at least one slice for synthesizing content.
  • FIG. 9 A flow chart for explaining an embodiment of the present invention is shown in FIG. 9.
  • the image encoding apparatus may divide a picture into various sub-units. After the picture is divided into a plurality of CTUs having a predetermined size, the picture may be divided into subpictures, tiles/bricks, slices, etc. using the size of the CTU as a basic unit.
  • a picture may be divided into one or more subpictures using the CTU size as a basic unit, and may be divided into one or more tiles/bricks using the CTU size as a basic unit.
  • a picture may be divided into one or more slices using a tile/brick as a basic unit.
  • the slice is also divided using the size of the CTU as the basic unit.
  • information on subpicture division represents a subpicture within a picture in units of CTU size
  • information on tile/brick division refers to tiles/bricks within a picture. It is expressed in units of the size of, and information on slice division (slice division information) may also be expressed in a tile/brick unit (a CTU size unit) in a slice within a picture.
  • CTU size information Information on the size of the CTU (CTU size information), subpicture split information, tile/brick split information, slice split information, etc. are encoded and signaled to the video decoding apparatus.
  • CTU size information is defined and signaled at the SPS level or PPS level
  • subpicture split information is defined and signaled at the SPS level
  • tile/brick split information and slice split information are defined and signaled at the PPS level.
  • the image encoding apparatus determines whether to apply in-loop filtering to a boundary between sub-units, encodes an enable flag indicating whether in-loop filtering is applied, and signals it to the image decoding apparatus.
  • An enable flag indicating whether in-loop filtering is applied to the boundary between subpictures is defined and signaled at the SPS level, and an enable flag indicating whether in-loop filtering is applied to the boundary between tiles/bricks and between slices
  • An enable flag indicating whether in-loop filtering is applied to the boundary is defined and signaled at the PPS level.
  • the decoding unit 410 decodes split information of lower units from the bitstream (S910). CTU size information, subpicture division information, tile/brick division information, slice division information, etc. included in the division information of sub-units are decoded and obtained from the bitstream.
  • the decoder 410 divides the picture into sub-units based on the obtained division information (S930). Specifically, after the picture is divided into CTUs of the CTU size indicated by the CTU size information, it may be divided into subpictures, tiles/bricks, slices, etc. based on subpicture division information, tile/brick division information, and slice division information. have.
  • the decoder 410 decodes an enable flag indicating whether in-loop filtering is applied to the boundary between sub-units from the bitstream (S920).
  • the filtering unit 460 determines whether to apply in-loop filtering to the boundary between sub-units according to the value of the enable flag (S930).
  • Embodiment 1 is a method of obtaining tile division information and a method of obtaining brick division information.
  • the first embodiment is a method of dividing a picture into tiles and a method of dividing a picture into bricks.
  • Table 4 shows an example of the syntax structure for Example 1.
  • Embodiment 1-1 is a method of dividing a picture into tiles (a method of obtaining tile segmentation information). An example of Example 1-1 is shown in FIG. 10.
  • the video encoding apparatus determines whether there is only one tile in the picture, and sets the determination result as a value of the single_tile_in_pic_flag syntax element.
  • the video encoding apparatus determines whether the corresponding one or more tiles are equally divided, and sets the determination result as a value of the uniform_tile_spacing_flag syntax element.
  • tile_cols_width_minus1 is a syntax element representing the width of a tile column in CTU size units, excluding the width of a tile column positioned at the rightmost position in a picture.
  • tile_rows_height_minus1 is a syntax element that indicates the height of a tile row in CTU size units, excluding the height of the tile row located at the bottom of the picture.
  • the video encoding apparatus determines the number of tile columns and the number of tile rows, and sets each determination result as a value of a num_tile_columns_minus1 syntax element and a num_tile_rows_minus1 syntax element.
  • num_tile_columns_minus1 is a syntax element indicating a value obtained by subtracting 1 from the number of tile columns
  • num_tile_rows_minus1 is a syntax element indicating a value obtained by subtracting 1 from the number of tile rows.
  • the video encoding apparatus determines a width of a tile column that is not evenly divided and a height of a tile row that is not evenly divided, and sets each determination result as a value of the tile_column_width_minus1[i] syntax element and the tile_row_height_minus1[i] syntax element.
  • tile_column_width_minus1[i] is a syntax element indicating the width of a tile column that is not evenly divided in CTU size units, and excludes the width of the tile column located at the rightmost position in the picture.
  • tile_row_height_minus1[i] is a syntax element indicating the height of a tile row that is not evenly divided, and the height of the tile row positioned at the bottom of the picture is excluded.
  • the video encoding apparatus encodes single_tile_in_pic_flag, uniform_tile_spacing_flag, tile_cols_width_minus1, tile_rows_height_minus1, num_tile_columns_minus1, num_tile_rows_minus1, tile_column_width_minus1[i] and tile_rowi[i] and tile_rowi[i] and tile_rowi] to signal the video decoding device.
  • the decoder 410 decodes single_tile_in_pic_flag from the bitstream (S1010), and determines whether there is only one tile in the picture or whether there is one or more tiles in the picture according to the value of single_tile_in_pic_flag (S1020).
  • the decoder 410 decodes num_tile_columns_minus1 and num_tile_rows_minus1 from the bitstream (S1060), and the number of tiles indicated by num_tile_columns_minus1 and num_columns_minus1 and num_columns_minus1 and num_columns_minus1 and num_columns_minus1 and num_columns_widths indicated by And tile_row_height_minus1[i] from the bitstream (S1070).
  • the decoder 410 divides the picture into tiles unevenly according to the values of num_tile_columns_minus1, num_tile_rows_minus1, tile_column_width_minus1[i], and tile_row_height_minus1[i], or divides the picture into tiles evenly according to the value of tile_cols_width_minus1 and tile_rows_minus1 and tile_rows_height_minus1 and the number of tiles equally divided according to the values of tile_row_height_minus1[i]. have.
  • Embodiment 1-2 is a method of dividing a picture into bricks (a method of obtaining brick division information). For brick division, only horizontal division of tiles is allowed. An example of Example 1-2 is shown in FIG. 11.
  • the video encoding apparatus may determine whether a tile in a picture is divided into a plurality of bricks, and may set the determination result as a value of the brick_splitting_present_flag syntax element.
  • the brick_splitting_present_flag is encoded and signaled to the video decoding apparatus.
  • the image encoding apparatus may determine the number of tiles in a picture and set the determination result as a value of the num_tiles_in_pic_minus1 syntax element.
  • the video encoding apparatus determines the height of the i-th tile (the number of CTU rows in the i-th tile, RowHeight[i]), and according to the determination result, the brick_split_flag[i] syntax element, uniform_brick_spacing_flag[i] syntax element, brick_height_minus1[ i]
  • the values of the syntax element, num_brick_rows_minus2[i] syntax element, and brick_row_height_minus1[i][j] syntax element can be set.
  • brick_split_flag[i] is a syntax element indicating whether the i-th tile is divided into bricks.
  • brick_split_flag[i] is set to “1”, which is a value indicating that the i-th tile is divided into bricks, and is encoded and signaled to the video decoding apparatus. This is because if the value of RowHeight[i] exceeds 1, it is possible to divide the brick on the horizontal axis.
  • brick_split_flag[i] is set to "0", which is a value indicating that the i-th tile is not divided into bricks when the value of RowHeight[i] is 1 or less, and is not signaled to the video decoding device. This is because if the value of RowHeight[i] is less than 1, it is impossible to divide the brick on the horizontal axis.
  • uniform_brick_spacing_flag[i] is a syntax element indicating whether the i-th tile is evenly divided into bricks. When the value of RowHeight[i] exceeds 2, both equal and non-uniform partitioning are possible, so uniform_brick_spacing_flag[i] is set to “1”, a value indicating equal partitioning, or “1”, a value indicating non-uniform partitioning. It can be set to 0”. In this case, the uniform_brick_spacing_flag[i] may be encoded and signaled to the image decoding apparatus. In contrast, when the value of RowHeight[i] is 2 or less, only 1:1 equalization is possible, so uniform_brick_spacing_flag[i] is set to “1” and is not signaled to the video decoding apparatus.
  • brick_height_minus1[i] is a syntax element indicating the height of equally divided brick rows minus 1 in CTU size units, excluding the height of the lowest brick row in the i-th tile.
  • brick_height_minus1[i] is encoded when the value of RowHeight[i] exceeds 3 while bricks are divided equally, and is signaled to the video decoding apparatus.
  • num_brick_rows_minus2[i] is a syntax element indicating a value obtained by subtracting 2 from the number of unevenly divided bricks.
  • num_brick_rows_minus2[i] is encoded and signaled to the image decoding apparatus when the value of RowHeight[i] exceeds 3 as bricks are unevenly divided.
  • brick_row_height_minus1[i][j] is a syntax element indicating a value obtained by subtracting 1 from the height of the j-th brick row among unevenly divided brick rows, in CTU size units.
  • brick_row_height_minus1[i][j] is encoded and signaled to the image decoding apparatus.
  • the decoding unit 410 decodes brick_splitting_present_flag from the bitstream (S1110), and determines a value of the decoded brick_splitting_present_flag (S1120).
  • num_tiles_in_pic_minus1 is not signaled, and the value of num_tiles_in_pic_minus1 is the tile in the picture. It is set or derived by subtracting 1 from the number of.
  • the decoder 410 checks the number of CTU rows (RowHeight[i]) in the i-th tile (S1140), and when RowHeight[i]> 1, decodes the brick_split_flag from the bitstream (S1150). If the value of RowHeight[i] is less than 1, brick_split_flag is not signaled, and the value of brick_split_flag is induced or set to 0.
  • RowHeight[i] exceeds 2
  • uniform_brick_spacing_flag is decoded from the bitstream (S1180)
  • uniform_brick_spacing_flag is not decoded, and its value is set or derived as 1.
  • the decoder 410 determines whether the bricks are equally divided according to the value of uniform_brick_spacing_flag (S1182), and determines the value of RowHeight[i] (S1184, S1190).
  • the decoding unit 410 decodes brick_row_height_minus1[i][j] from the bitstream (S1194).
  • the brick splitting method proposed in the present invention is configured to signal and decode brick_height_minus1[i] and num_brick_rows_minus2[i] only when the value of RowHeight[i] exceeds 3.
  • the conventional brick division method in both cases where the value of RowHeight[i] exceeds 3 and the value of RowHeight[i] does not exceed 3 (that is, whether the value of RowHeight[i] exceeds 3) Regardless of whether or not) brick_height_minus1[i] and num_brick_rows_minus2[i] were signaled and decoded. Accordingly, the brick division method of the present invention can improve bit efficiency compared to the conventional brick division method.
  • Embodiment 2 is a method of dividing a picture into slices (a method of obtaining slice division information) and a method of obtaining an enable flag.
  • Table 5 shows the syntax structure for Example 2.
  • Example 2-1 is a method of dividing a picture into slices.
  • Slice division may be implemented in a form including one or more tiles/bricks.
  • a split relationship between a tile/brick and a slice is shown in FIG. 12, and a method of dividing a picture into slices is shown in FIG.
  • FIG. 12(a) shows a total of 9 tiles/bricks (3x3) divided from a picture
  • FIGS. 12(b) to (d) show a tile/brick ( It shows the partitioning relationship between a solid line) and a slice (dashed-dotted line).
  • one tile/brick may constitute one slice (1:1 division relationship)
  • a plurality of tiles/bricks may constitute one slice.
  • all tiles/bricks may constitute one slice (all: 1 division relationship), and as shown in FIG.
  • a plurality of tiles/bricks may form one slice. You can also configure raster scan slices.
  • tiles/bricks represented by an upward-right pattern constitute one raster scan slice.
  • two tiles/bricks positioned on the upper side of the picture constitute different raster scan slices, and another three tiles/bricks positioned at the lower and right side of the picture are different. Construct a raster scan slice.
  • the video encoding apparatus determines whether the slice includes one or more tiles/bricks, and sets the determination result as a value of the single_brick_per_slice_flag syntax element.
  • the single_brick_per_slice_flag is encoded and signaled to the video decoding apparatus.
  • the video encoding apparatus does not signal additional slice splitting information because a tile/brick and a slice have a split relationship of 1:1.
  • the video encoding apparatus determines the mode of the slice and sets the determination result as a value of the rect_slice_flag syntax element.
  • the video encoding apparatus determines the number of slices in a picture, and sets the determination result as a value of the num_slices_in_pic_minus1 syntax element.
  • num_slices_in_pic_minus1 is a syntax element representing a value obtained by subtracting 1 from the number of slices in a picture.
  • num_slices_in_pic_minus1 is encoded and signaled to an image decoding apparatus.
  • the video encoding apparatus determines a tile/brick (lower-right tile/brick) located inside the lower right of each of the slices, and determines the absolute value and sign of the index value difference between the lower-right tile/bricks as a bottom_right_brick_idx_delta[i] syntax element. And the value of the brick_idx_delta_sign_flag[i] syntax element.
  • bottom_right_brick_idx_delta[i] represents the absolute value of the difference between the index of the lower right tile/brick in the previous slice and the index of the lower right tile/brick in the next slice for the second and subsequent (i> 1) slices in the picture.
  • bottom_right_brick_idx_delta[i] and brick_idx_delta_sign_flag[i] are encoded and signaled to the image decoding apparatus.
  • bottom_right_brick_idx_delta[i] and brick_idx_delta_sign_flag[i] are signaled.
  • bottom_right_brick_idx_length_minus1 indicates the number of bits used to indicate bottom_right_brick_idx_delta[i].
  • the decoder 410 decodes single_brick_per_slice_flag from the bitstream (S1310). When single_brick_per_slice_flag does not exist in the bitstream, the value of single_brick_per_slice_flag is set or derived as “1”.
  • single_brick_per_slice_flag is set to “1” and signaled, and other slice splitting information is splitting the tile/brick without signaling. It is derived from information.
  • An example of slice splitting information signaled in this case is shown in Table 7.
  • Embodiment 2-2 is a method of obtaining an enable flag (loop_filter_across_slices_enabled_flag) indicating whether to apply in-loop filtering to the boundary between slices.
  • Whether to signal the loop_filter_across_slices_enabled_flag according to a preset condition may be determined. This is because, depending on the partitioning relationship between the tile/brick and the slice, the boundary line of the tile/brick and the boundary line of the slice may partially or entirely overlap (may be the same). For example, in the case of Fig. 12 (b), the boundary line of the tile/brick and the boundary line of the slice are the same as a whole, and in the case of Fig. 12 (c), the boundary line of the tile/brick and the boundary line of the slice are partially the same, and In the case of 12(d), the boundary line of the slice becomes the boundary line of the picture, and in the case of FIG. 12(e), the boundary line of the tile/brick and the boundary line of the slice may be partially the same.
  • Example 2-2 Various examples of Example 2-2 are shown in FIGS. 14 to 17.
  • the image encoding apparatus encodes the slice segmentation information and signals it to the image decoding apparatus.
  • the decoder 410 decodes the slice segmentation information from the bitstream (S1410, S1510, S1610, S1710), and divides the picture into one or more slices based on the slice segmentation information.
  • the video encoding apparatus determines whether to signal loop_filter_across_slices_enabled_flag depending on a preset condition. That is, loop_filter_across_slices_enabled_flag is encoded when a preset condition is satisfied and signaled to the video decoding apparatus.
  • the decoder 410 determines whether a preset condition is satisfied (S1420, S1520, S1620, S1720), and decodes the loop_filter_across_slices_enabled_flag from the bitstream according to the determination result (S1430, S1530, S1630, S1730).
  • the preset condition may include one or more of whether the number of slices in a picture is plural (whether a picture is divided into a plurality of slices) and whether a slice mode is a rectangular slice mode.
  • the preset condition may include whether the number of slices in a picture is plural (num_slices_in_pic_minus1) and whether the slice mode is a rectangular slice mode (rect_slice_flag).
  • loop_filter_across_slices_enabled_flag is signaled and decoded.
  • the preset condition includes one of whether the mode of the slice is a rectangular slice mode, whether one or more tiles/bricks are included in the slice, and whether in-loop filtering is applied to the boundary between tiles/bricks. The above may be included.
  • whether the mode of the slice is a rectangular slice mode (rect_slice_flag), whether one or more tiles/bricks are included in the slice (single_brick_per_slice_flag), and the boundary between tiles/bricks Whether in-loop filtering is applied to or not (loop_filter_across_bricks_enabled_flag) may all be included.
  • loop_filter_across_slices_enabled_flag is not signaled and decoded. This is because a split relationship between a tile/brick and a slice is a 1:1 relationship (since all borders match), so there is no need to separately signal the loop_filter_across_slices_enabled_flag for the slice border.
  • the preset condition includes whether one or more tiles/bricks are included in a slice (single_brick_per_slice_flag) and whether in-loop filtering is applied to the boundary between tiles/bricks (loop_filter_across_bricks_enabled_flag). May be included.
  • Table 8 shows the syntax structure for the preset conditions shown in FIG. 16.
  • Table 9 shows the syntax structure for the preset conditions shown in FIG. 17.
  • Embodiment 3 is a method of dividing a picture into subpictures (a method of obtaining subpicture division information). An example for Example 3 is shown in FIG. 18.
  • the video encoding apparatus After dividing a picture into a plurality of CTUs having a predetermined size, the video encoding apparatus encodes the CTU size information (CTU size information) and signals the CTU to the video decoding apparatus. In addition, after dividing the CTU into CUs using a tree structure, the video encoding apparatus encodes the minimum size information (MinCb size information) of the CU and signals it to the video decoding apparatus.
  • the MinCb size information may be defined and signaled at one or more positions among the SPS level, the PPS level, and the slice header level of the bitstream.
  • the video encoding apparatus divides a picture into a plurality of subpictures.
  • the picture may be divided into subpictures using the size of the CTU derived from the CTU size information as a basic unit, or may be divided into subpictures using the size of the MinCb derived from the MinCb size information as the basic unit.
  • the subpicture division information may express subpictures within a picture in units of the size of a CTU, or may express subpictures within a picture in units of the size of MinCb.
  • the sub-picture split information may include sub-picture position information indicating a position of each sub-picture and sub-picture size information indicating a size of each sub-picture.
  • the subpicture position information may express a position of a subpicture in a picture in a CTU size unit or a MinCb size unit.
  • Subpicture size information may also represent the size of the subpicture in a CTU size unit or a MinCb size unit.
  • the decoding unit 410 decodes CTU size information and MinCb size information from the bitstream (S1810). Also, the decoding unit 410 decodes the subpicture split information from the bitstream (S1820).
  • the decoding unit 410 divides the picture into CTUs based on the CTU size information, and divides the picture into subpictures based on the subpicture division information (S1830).
  • subpictures are expressed in units of 4 samples. That is, the conventional subpicture division method uses a multiple of 4 as the division unit of the subpicture.
  • a picture is divided into a plurality of CTUs, divided into tiles/bricks including one or more CTUs, may be divided into slices including one or more tiles/bricks, and can be divided into one or more slices. It can be divided into subpictures to include. Therefore, it may be most efficient to represent tiles/bricks, slices, and subpictures in units of CTU size (in units of multiples of CTU). Accordingly, when subpictures are expressed in units of CTU size according to the third embodiment, efficient subpicture division can be implemented.
  • the subpicture division information may directly or indirectly express the subpicture in CTU size units or MinCb size units.
  • the indirect expression method is to connect the CTU and the subpicture through another sub-unit.
  • Another sub-unit is a grid, and this grid is expressed in units of the size of the CTU, and subpictures are expressed in units of the size of the grid.
  • the subpicture can be expressed in units of the size of the CTU.
  • FIG. 19 An example of an indirect expression method is shown in FIG. 19, and a syntax structure for an indirect expression method is shown in Table 10.
  • the video encoding apparatus determines whether subpicture division is performed (whether subpicture parameters exist in the bitstream), and sets the determination result as a value of the subpics_present_flag syntax element.
  • max_subpics_minus1 represents a value subtracting 1 from the maximum number of subpictures
  • subpic_grid_col_width_minus1 represents a value obtained by subtracting 1 from the width of a grid column
  • subpic_grid_row_height_minus1 represents a value subtracting 1 from the height of a grid row.
  • the image encoding apparatus encodes the subpicture index (subpic_grid_idx[i][j]) and signals it to the image decoding apparatus.
  • the subpicture index represents an index of a subpicture to which each of the grids belongs, and whether a grid belongs to which subpicture may be determined through the subpicture index.
  • the decoder 410 decodes subpics_present_flag from the bitstream (S1910) and determines a value of subpics_present_flag (S1920).
  • the decoder 410 decodes max_subpics_minus1, subpic_grid_col_width_minus1, and subpic_grid_row_height_minus1 from the bitstream (S1930).
  • the number of grid columns (i) can be derived using subpic_grid_col_width_minus1
  • the number of grid rows (j) can be derived using subpic_grid_row_height_minus1. Consequently, a picture can be divided into grids using subpic_grid_col_width_minus1 and subpic_grid_row_height_minus1.
  • the decoder 410 may divide the picture into subpictures by decoding the subpicture index from the bitstream (S1940) and determining grids to which the same subpicture index is allocated among the grids as one subpicture. have.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

픽처로부터 분할되는 하위 유닛들에 대한 정보를 획득하는 방법 및 장치를 개시한다. 본 발명의 일 실시예에 의하면, 픽처로부터 분할되는 하위 유닛들에 대한 정보를 획득하는 방법으로서, 비트스트림으로부터, 상기 픽처 내 코딩 트리 유닛(coding tree unit, CTU)들의 사이즈(size)를 나타내는 CTU 사이즈 정보를 복호화하는 단계; 상기 픽처 내 서브픽처들을 상기 CTU의 사이즈 단위로 표현하는 서브픽처 분할정보를 상기 비트스트림으로부터 복호화하는 단계; 상기 픽처 내 하나 이상의 타일들의 분할정보를 상기 비트스트림으로부터 복호화하는 단계; 및 상기 픽처 내 하나 이상의 슬라이스들의 분할정보를 상기 비트스트림으로부터 복호화하는 단계를 포함하는, 방법을 제공한다. 대표도: 도 4

Description

픽처로부터 분할되는 하위 유닛들에 대한 정보를 획득하는 방법 및 장치
본 발명은 동영상의 부호화 및 복호화에 관한 것으로서, 더욱 구체적으로는 다양한 하위 유닛들에 대한 정보를 효율적으로 획득함으로써 부호화 및 복호화의 효율을 향상시킨 방법 및 장치에 관한 것이다.
동영상 데이터는 음성 데이터나 정지 영상 데이터 등에 비하여 많은 데이터량을 가지기 때문에, 압축을 위한 처리 없이 그 자체를 저장하거나 전송하기 위해서는 메모리를 포함하여 많은 하드웨어 자원을 필요로 한다.
따라서, 통상적으로 동영상 데이터를 저장하거나 전송할 때에는 부호화기를 사용하여 동영상 데이터를 압축하여 저장하거나 전송하며, 복호화기에서는 압축된 동영상 데이터를 수신하여 압축을 해제하고 재생한다. 이러한 동영상 압축 기술로는 H.264/AVC를 비롯하여, H.264/AVC에 비해 약 40% 정도의 부호화 효율을 향상시킨 HEVC(High Efficiency Video Coding)가 존재한다.
그러나, 영상의 크기 및 해상도, 프레임율이 점차 증가하고 있고, 이에 따라 부호화해야 하는 데이터량도 증가하고 있으므로 기존의 압축 기술보다 더 부호화 효율이 좋고 화질 개선 효과도 높은 새로운 압축 기술이 요구된다.
이러한 요구에 부응하기 위해 본 발명은 개선된 동영상 부호화 및 복호화 기술을 제공하는 것을 목적으로 하며, 특히, 본 발명의 일 측면은 픽처를 하위 유닛들로 분할하는 다양한 방법을 통해 부호화 및 복호화의 효율을 향상시키는 기술과 관련된다.
본 발명의 일 측면은, 픽처로부터 분할되는 하위 유닛들에 대한 정보를 획득하는 방법으로서, 비트스트림으로부터, 상기 픽처 내 코딩 트리 유닛(coding tree unit, CTU)들의 사이즈(size)를 나타내는 CTU 사이즈 정보를 복호화하는 단계; 상기 픽처 내 서브픽처들을 상기 CTU의 사이즈 단위로 표현하는 서브픽처 분할정보를 상기 비트스트림으로부터 복호화하는 단계; 상기 픽처 내 하나 이상의 타일들의 분할정보를 상기 비트스트림으로부터 복호화하는 단계; 및 상기 픽처 내 하나 이상의 슬라이스들의 분할정보를 상기 비트스트림으로부터 복호화하는 단계를 포함하는, 방법을 제공한다.
본 발명의 다른 일 측면은, 영상 복호화 장치로서, 픽처로부터 분할되는 하위 유닛들에 대한 정보를 비트스트림으로부터 획득하는 복호화부; 및 상기 하위 유닛들에 대한 정보에 기초하여, 상기 픽처를 복원하는 픽처 복원부를 포함하고, 상기 복호화부는, 상기 픽처 내 코딩 트리 유닛(coding tree unit, CTU)들의 사이즈(size)를 나타내는 CTU 사이즈 정보를 상기 비트스트림으로부터 복호화하고, 상기 픽처 내 서브픽처들을 상기 CTU의 사이즈 단위로 표현하는 서브픽처 분할정보를 상기 비트스트림으로부터 복호화하며, 상기 픽처 내 하나 이상의 타일들의 분할정보를 상기 비트스트림으로부터 복호화하고, 상기 픽처 내 하나 이상의 슬라이스들의 분할정보를 상기 비트스트림으로부터 복호화하는, 장치를 제공한다.
이상에서 설명한 바와 같이 본 발명의 일 실시예에 의하면, 픽처를 하위 유닛들로 분할하기 위해 이용되는 신택스 요소들의 중복이 방지되므로, 비트 효율성이 향상될 수 있다.
또한, 본 발명의 다른 일 실시예에 의하면, 하위 유닛 경계들 간의 인-루프 필터링 여부가 하위 유닛들 간의 분할 관계에 따라 합리적으로 디자인될 수 있다.
나아가, 본 발명의 또 다른 일 실시예에 의하면, 서브픽처의 분할정보가 CTU 단위로 표현되므로, 다른 하위 유닛들과의 통일성을 확보할 수 있으며, 이를 통해 서브픽처의 분할정보를 더욱 효율적으로 표현할 수 있다.
도 1은 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 예시적인 블록도이다.
도 2는 QTBTTT 구조를 이용하여 블록을 분할하는 방법을 설명하기 위한 도면이다.
도 3은 복수의 인트라 예측 모드들을 설명하기 위한 도면이다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다.
도 5 내지 도 7은 슬라이스, 타일 및 서브픽처를 설명하기 위한 도면이다.
도 9는 본 개시의 기술들을 구현할 수 있는 방법의 일 예를 설명하기 위한 순서도이다.
도 10은 픽처를 타일로 분할하는 방법의 일 예를 설명하기 위한 순서도이다.
도 11은 픽처를 브릭으로 분할하는 방법의 일 예를 설명하기 위한 순서도이다.
도 12는 타일/브릭과 슬라이스 사이의 분할관계를 설명하기 위한 도면이다.
도 13은 픽처를 슬라이스로 분할하는 방법의 일 예를 설명하기 위한 순서도이다.
도 14 내지 도 17은 슬라이스 경계의 필터링 여부에 대한 정보를 획득하는 방법의 다양한 예들을 설명하기 위한 순서도들이다.
도 18은 픽처를 서브픽처로 분할하는 방법의 일 예를 설명하기 위한 순서도이다.
도 19는 픽처를 서브픽처로 분할하는 구체적인 방법의 일 예를 설명하기 위한 순서도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 식별 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 1은 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 예시적인 블록도이다. 이하에서는 도 1을 참조하여 영상 부호화 장치와 이 장치의 하위 구성들에 대하여 설명하도록 한다.
영상 부호화 장치는 블록 분할부(110), 예측부(120), 감산기(130), 변환부(140), 양자화부(145), 부호화부(150), 역양자화부(160), 역변환부(165), 가산기(170), 필터부(180) 및 메모리(190)를 포함하여 구성될 수 있다.
영상 부호화 장치의 각 구성요소는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 각 구성요소의 기능이 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
하나의 영상(비디오)는 복수의 픽처들로 구성된다. 각 픽처들은 복수의 영역으로 분할되고 각 영역마다 부호화가 수행된다. 예를 들어, 하나의 픽처는 하나 이상의 타일(Tile) 또는/및 슬라이스(Slice)로 분할된다. 여기서, 하나 이상의 타일을 타일 그룹(Tile Group)으로 정의할 수 있다. 각 타일 또는/슬라이스는 하나 이상의 CTU(Coding Tree Unit)로 분할된다. 그리고 각 CTU는 트리 구조에 의해 하나 이상의 CU(Coding Unit)들로 분할된다. 각 CU에 적용되는 정보들은 CU의 신택스로서 부호화되고, 하나의 CTU에 포함된 CU들에 공통적으로 적용되는 정보는 CTU의 신택스로서 부호화된다. 또한, 하나의 타일 내의 모든 블록들에 공통적으로 적용되는 정보는 타일의 신택스로서 부호화되거나 다수 개의 타일을 모아 놓은 타일 그룹의 신택스로서 부호화되며, 하나의 픽처들을 구성하는 모든 블록들에 적용되는 정보는 픽처 파라미터 셋(PPS, Picture Parameter Set) 혹은 픽처 헤더에 부호화된다. 나아가, 복수의 픽처가 공통으로 참조하는 정보들은 시퀀스 파라미터 셋(SPS, Sequence Parameter Set)에 부호화된다. 그리고, 하나 이상의 SPS가 공통으로 참조하는 정보들은 비디오 파라미터 셋(VPS, Video Parameter Set)에 부호화된다.
블록 분할부(110)는 CTU(Coding Tree Unit)의 크기를 결정한다. CTU의 크기에 대한 정보(CTU size)는 SPS 또는 PPS의 신택스로서 부호화되어 영상 복호화 장치로 전달된다.
블록 분할부(110)는 영상을 구성하는 각 픽처(picture)를 미리 결정된 크기를 가지는 복수의 CTU(Coding Tree Unit)들로 분할한 이후에, 트리 구조(tree structure)를 이용하여 CTU를 반복적으로(recursively) 분할한다. 트리 구조에서의 리프 노드(leaf node)가 부호화의 기본 단위인 CU(coding unit)가 된다.
트리 구조로는 상위 노드(혹은 부모 노드)가 동일한 크기의 네 개의 하위 노드(혹은 자식 노드)로 분할되는 쿼드트리(QuadTree, QT), 또는 상위 노드가 두 개의 하위 노드로 분할되는 바이너리트리(BinaryTree, BT), 또는 상위 노드가 1:2:1 비율로 세 개의 하위 노드로 분할되는 터너리트리(TernaryTree, TT), 또는 이러한 QT 구조, BT 구조 및 TT 구조 중 둘 이상을 혼용한 구조일 수 있다. 예컨대, QTBT(QuadTree plus BinaryTree) 구조가 사용될 수 있고, 또는 QTBTTT(QuadTree plus BinaryTree TernaryTree) 구조가 사용될 수 있다. 여기서, BTTT를 합쳐서 MTT(Multiple-Type Tree)라 칭할 수 있다.
도 2는 QTBTTT 분할 트리 구조를 보인다. 도 2에서 보는 바와 같이, CTU는 먼저 QT 구조로 분할될 수 있다. 쿼드트리 분할은 분할 블록(splitting block)의 크기가 QT에서 허용되는 리프 노드의 최소 블록 크기(MinQTSize)에 도달할 때까지 반복될 수 있다. QT 구조의 각 노드가 하위 레이어의 4개의 노드들로 분할되는지 여부를 지시하는 제1 플래그(QT_split_flag)는 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다. QT의 리프 노드가 BT에서 허용되는 루트 노드의 최대 블록 크기(MaxBTSize)보다 크지 않은 경우, BT 구조 또는 TT 구조 중 어느 하나 이상으로 더 분할될 수 있다. BT 구조 및/또는 TT 구조에서는 복수의 분할 방향이 존재할 수 있다. 예컨대, 해당 노드의 블록이 가로로 분할되는 방향과 세로로 분할되는 방향 두 가지가 존재할 수 있다. 도 2와 같이, MTT 분할이 시작되면, 노드들이 분할되었는지 여부를 지시하는 제2 플래그(mtt_split_flag)와, 분할이 되었다면 추가적으로 분할 방향(vertical 혹은 horizontal)을 나타내는 플래그 및/또는 분할 타입(Binary 혹은 Ternary)을 나타내는 플래그가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다.
트리 구조의 다른 예로서, QTBTTT 구조를 사용하여 블록을 분할하는 경우, 먼저 분할 되었음을 나타내는 CU 분할 플래그(split_cu_flag) 및 분할 타입이 QT 분할인지를 지시하는 QT 분할 플래그(split_qt_flag) 정보가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다. CU 분할 플래그(split_cu_flag) 값이 분할되지 않았음을 지시하는 경우, 해당 노드의 블록이 분할 트리 구조에서의 리프 노드(leaf node)가 되어 부호화의 기본 단위인 CU(coding unit)가 된다. CU 분할 플래그(split_cu_flag) 값이 분할되었음을 지시하는 경우, QT 분할 플래그(split_qt_flag) 값을 통해 분할 타입이 QT 혹은 MTT인지를 구분한다. 분할 타입이 QT인 경우에는 더 이상의 추가 정보가 없으며, 분할 타입이 MTT인 경우에는 추가적으로 MTT 분할 방향(vertical 혹은 horizontal)을 나타내는 플래그(mtt_split_cu_vertical_flag) 및/또는 MTT 분할 타입(Binary 혹은 Ternary)을 나타내는 플래그(mtt_split_cu_binary_flag)가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다.
트리 구조의 다른 예시로서 QTBT가 사용되는 경우, 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입(즉, symmetric horizontal splitting)과 세로로 분할하는 타입(즉, symmetric vertical splitting) 두 가지가 존재할 수 있다. BT 구조의 각 노드가 하위 레이어의 블록으로 분할되는지 여부를 지시하는 분할 플래그(split_flag) 및 분할되는 타입을 지시하는 분할 타입 정보가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다. 한편, 해당 노드의 블록을 서로 비대칭 형태의 두 개의 블록으로 분할하는 타입이 추가로 더 존재할 수도 있다. 비대칭 형태에는 해당 노드의 블록을 1:3의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태가 포함될 수 있고, 혹은 해당 노드의 블록을 대각선 방향으로 분할하는 형태가 포함될 수도 있다.
CU는 CTU로부터의 QTBT 또는 QTBTTT 분할에 따라 다양한 크기를 가질 수 있다. 이하에서는, 부호화 또는 복호화하고자 하는 CU(즉, QTBTTT의 리프 노드)에 해당하는 블록을 '현재블록'이라 칭한다.
예측부(120)는 현재블록을 예측하여 예측블록을 생성한다. 예측부(120)는 인트라 예측부(122)와 인터 예측부(124)를 포함한다.
일반적으로, 픽처 내 현재블록들은 각각 예측적으로 코딩될 수 있다. 일반적으로 현재블록의 예측은 (현재블록을 포함하는 픽처로부터의 데이터를 사용하는) 인트라 예측 기술 또는 (현재블록을 포함하는 픽처 이전에 코딩된 픽처로부터의 데이터를 사용하는) 인터 예측 기술을 사용하여 수행될 수 있다. 인터 예측은 단방향 예측과 양방향 예측 모두를 포함한다.
인트라 예측부(122)는 현재블록이 포함된 현재 픽처 내에서 현재블록의 주변에 위치한 픽셀(참조 픽셀)들을 이용하여 현재블록 내의 픽셀들을 예측한다. 예측 방향에 따라 복수의 인트라 예측모드가 존재한다. 예컨대, 도 3에서 보는 바와 같이, 복수의 인트라 예측모드는 planar 모드와 DC 모드를 포함하는 비방향성 모드와 65개의 방향성 모드를 포함할 수 있다. 각 예측모드에 따라 사용할 주변 픽셀과 연산식이 다르게 정의된다.
인트라 예측부(122)는 현재블록을 부호화하는데 사용할 인트라 예측 모드를 결정할 수 있다. 일부 예들에서, 인트라 예측부(122)는 여러 인트라 예측 모드들을 사용하여 현재블록을 인코딩하고, 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측부(122)는 여러 테스트된 인트라 예측 모드들에 대한 레이트 왜곡(rate-distortion) 분석을 사용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중 최선의 레이트 왜곡 특징들을 갖는 인트라 예측 모드를 선택할 수도 있다.
인트라 예측부(122)는 복수의 인트라 예측 모드 중에서 하나의 인트라 예측 모드를 선택하고, 선택된 인트라 예측 모드에 따라 결정되는 주변 픽셀(참조 픽셀)과 연산식을 사용하여 현재블록을 예측한다. 선택된 인트라 예측 모드에 대한 정보가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다.
인터 예측부(124)는 움직임 보상 과정을 통해 현재블록에 대한 예측블록을 생성한다. 현재 픽처보다 먼저 부호화 및 복호화된 참조픽처 내에서 현재블록과 가장 유사한 블록을 탐색하고, 그 탐색된 블록을 이용하여 현재블록에 대한 예측블록을 생성한다. 그리고, 현재 픽처 내의 현재블록과 참조픽처 내의 예측블록 간의 변위(displacement)에 해당하는 움직임벡터(motion vector)를 생성한다. 일반적으로, 움직임 추정은 루마(luma) 성분에 대해 수행되고, 루마 성분에 기초하여 계산된 모션 벡터는 루마 성분 및 크로마 성분 모두에 대해 사용된다. 현재블록을 예측하기 위해 사용된 참조픽처에 대한 정보 및 움직임벡터에 대한 정보를 포함하는 움직임 정보는 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다.
감산기(130)는 현재블록으로부터 인트라 예측부(122) 또는 인터 예측부(124)에 의해 생성된 예측블록을 감산하여 잔차블록을 생성한다.
변환부(140)는 공간 영역의 픽셀 값들을 가지는 잔차블록 내의 잔차 신호를 주파수 도메인의 변환 계수로 변환한다. 변환부(140)는 잔차블록의 전체 크기를 변환 단위로 사용하여 잔차블록 내의 잔차 신호들을 변환할 수 있으며, 또는 잔차블록을 변환 영역 및 비변환 영역인 두 개의 서브블록으로 구분하여, 변환 영역 서브블록만 변환 단위로 사용하여 잔차 신호들을 변환할 수 있다. 여기서, 변환 영역 서브블록은 가로축 (혹은 세로축) 기준 1:1의 크기 비율을 가지는 두 개의 직사각형 블록 중 하나일 수 있다. 이런 경우, 서브블록 만을 변환하였음을 지시하는 플래그(cu_sbt_flag), 방향성(vertical/horizontal) 정보(cu_sbt_horizontal_flag) 및/또는 위치 정보(cu_sbt_pos_flag)가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다. 또한, 변환 영역 서브블록의 크기는 가로축 (혹은 세로축) 기준 1:3의 크기 비율을 가질 수 있으며, 이런 경우 해당 분할을 구분하는 플래그(cu_sbt_quad_flag)가 추가적으로 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다.
양자화부(145)는 변환부(140)로부터 출력되는 변환 계수들을 양자화하고, 양자화된 변환 계수들을 부호화부(150)로 출력한다.
부호화부(150)는 양자화된 변환 계수들을 CABAC(Context-based Adaptive Binary Arithmetic Code) 등의 부호화 방식을 사용하여 부호화함으로써 비트스트림을 생성한다. 부호화부(150)는 블록 분할과 관련된 CTU size, CU 분할 플래그, QT 분할 플래그, MTT 분할 방향, MTT 분할 타입 등의 정보를 부호화하여, 영상 복호화 장치가 영상 부호화 장치와 동일하게 블록을 분할할 수 있도록 한다.
또한, 부호화부(150)는 현재블록이 인트라 예측에 의해 부호화되었는지 아니면 인터 예측에 의해 부호화되었는지 여부를 지시하는 예측 타입에 대한 정보를 부호화하고, 예측 타입에 따라 인트라 예측정보(즉, 인트라 예측 모드에 대한 정보) 또는 인터 예측정보(참조픽처 및 움직임벡터에 대한 정보)를 부호화한다.
역양자화부(160)는 양자화부(145)로부터 출력되는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 생성한다. 역변환부(165)는 역양자화부(160)로부터 출력되는 변환 계수들을 주파수 도메인으로부터 공간 도메인으로 변환하여 잔차블록을 복원한다.
가산부(170)는 복원된 잔차블록과 예측부(120)에 의해 생성된 예측블록을 가산하여 현재블록을 복원한다. 복원된 현재블록 내의 픽셀들은 다음 순서의 블록을 인트라 예측할 때 참조 픽셀로서 사용된다.
필터부(180)는 블록 기반의 예측 및 변환/양자화로 인해 발생하는 블록킹 아티팩트(blocking artifacts), 링잉 아티팩트(ringing artifacts), 블러링 아티팩트(blurring artifacts) 등을 줄이기 위해 복원된 픽셀들에 대한 필터링을 수행한다. 필터부(180)는 디블록킹 필터(182)와 SAO(Sample Adaptive Offset) 필터(184)를 포함할 수 있다.
디블록킹 필터(180)는 블록 단위의 부호화/복호화로 인해 발생하는 블록킹 현상(blocking artifact)을 제거하기 위해 복원된 블록 간의 경계를 필터링하고, SAO 필터(184)는 디블록킹 필터링된 영상에 대해 추가적인 필터링을 수행한다. SAO 필터(184)는 손실 부호화(lossy coding)로 인해 발생하는 복원된 픽셀과 원본 픽셀 간의 차이를 보상하기 위해 사용되는 필터이다.
디블록킹 필터(182) 및 SAO 필터(184)를 통해 필터링된 복원블록은 메모리(190)에 저장된다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
한편, 픽처 부호부는 픽처를 하위 유닛들로 분할하고, 하위 유닛에 포함되는 CU 단위로 픽처를 부호화한다. 픽처 부호부에는 영상 부호화 장치에 포함되는 구성들 중에서 부호화부(150)를 제외한 나머지 구성들이 포함될 수 있다. 부호화부(150)는 픽처로부터 분할되는 하위 유닛들에 대한 정보를 부호화하여 영상 복호화 장치로 시그널링한다. 부호화부(150)가 하위 유닛들에 대한 정보를 부호화하는 방법에 대해서는 아래에서 상세히 설명하도록 한다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다. 이하에서는 도 4를 참조하여 영상 복호화 장치와 이 장치의 하위 구성들에 대하여 설명하도록 한다.
영상 복호화 장치는 복호화부(410), 역양자화부(420), 역변환부(430), 예측부(440), 가산기(450), 필터부(460) 및 메모리(470)를 포함하여 구성될 수 있다.
도 1의 영상 부호화 장치와 마찬가지로, 영상 복호화 장치의 각 구성요소는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 각 구성요소의 기능이 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
복호화부(410)는 영상 부호화 장치로부터 수신한 비트스트림을 복호화하여 블록 분할과 관련된 정보를 추출함으로써 복호화하고자 하는 현재블록을 결정하고, 현재블록을 복원하기 위해 필요한 예측정보와 잔차신호에 대한 정보 등을 추출한다.
복호화부(410)는 SPS(Sequence Parameter Set) 또는 PPS(Picture Parameter Set)로부터 CTU size에 대한 정보를 추출하여 CTU의 크기를 결정하고, 픽처를 결정된 크기의 CTU로 분할한다. 그리고, CTU를 트리 구조의 최상위 레이어, 즉, 루트 노드로 결정하고, CTU에 대한 분할정보를 추출함으로써 트리 구조를 이용하여 CTU를 분할한다.
예컨대, QTBTTT 구조를 사용하여 CTU를 분할하는 경우, 먼저 QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여 각 노드를 하위 레이어의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 MTT의 분할과 관련된 제2 플래그(MTT_split_flag) 및 분할 방향(vertical / horizontal) 및/또는 분할 타입(binary / ternary) 정보를 추출하여 해당 리프 노드를 MTT 구조로 분할한다. 이를 통해 QT의 리프 노드 이하의 각 노드들을 BT 또는 TT 구조로 반복적으로(recursively) 분할한다.
또 다른 예로서, QTBTTT 구조를 사용하여 CTU를 분할하는 경우, 먼저 CU의 분할 여부를 지시하는 CU 분할 플래그(split_cu_flag)를 추출하고, 해당 블록이 분할된 경우, QT 분할 플래그(split_qt_flag)를 추출한다. 분할 타입이 QT가 아니고 MTT인 경우, MTT 분할 방향(vertical 혹은 horizontal)을 나타내는 플래그(mtt_split_cu_vertical_flag) 및/또는 MTT 분할 타입(Binary 혹은 Ternary)을 나타내는 플래그(mtt_split_cu_binary_flag)를 추가적으로 추출한다. 분할 과정에서 각 노드는 0번 이상의 반복적인 QT 분할 후에 0번 이상의 반복적인 MTT 분할이 발생할 수 있다. 예컨대, CTU는 바로 MTT 분할이 발생하거나, 반대로 다수 번의 QT 분할만 발생할 수도 있다.
다른 예로서, QTBT 구조를 사용하여 CTU를 분할하는 경우, QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여 각 노드를 하위 레이어의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 BT로 더 분할되는지 여부를 지시하는 분할 플래그(split_flag) 및 분할 방향 정보를 추출한다.
한편, 복호화부(410)는 트리 구조의 분할을 통해 복호화하고자 하는 현재블록을 결정하게 되면, 현재블록이 인트라 예측되었는지 아니면 인터 예측되었는지를 지시하는 예측 타입에 대한 정보를 추출한다. 예측 타입 정보가 인트라 예측을 지시하는 경우, 복호화부(410)는 현재블록의 인트라 예측정보(인트라 예측 모드)에 대한 신택스 요소를 추출한다. 예측 타입 정보가 인터 예측을 지시하는 경우, 복호화부(410)는 인터 예측정보에 대한 신택스 요소, 즉, 움직임벡터 및 그 움직임벡터가 참조하는 참조픽처를 나타내는 정보를 추출한다.
한편, 복호화부(410)는 잔차신호에 대한 정보로서 현재블록의 양자화된 변환계수들에 대한 정보를 추출한다.
역양자화부(420)는 양자화된 변환계수들을 역양자화하고, 역변환부(430)는 역양자화된 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환하여 잔차신호들을 복원함으로써 현재블록에 대한 잔차블록을 생성한다.
또한, 역변환부(430)는 변환블록의 일부 영역(서브블록)만 역변환하는 경우, 변환블록의 서브블록만을 변환하였음을 지시하는 플래그(cu_sbt_flag), 서브블록의 방향성(vertical/horizontal) 정보(cu_sbt_horizontal_flag) 및/또는 서브블록의 위치 정보(cu_sbt_pos_flag)를 추출하여, 해당 서브블록의 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환함으로써 잔차신호들을 복원하고, 역변환되지 않은 영역에 대해서는 잔차신호로 "0" 값을 채움으로써 현재블록에 대한 최종 잔차블록을 생성한다.
예측부(440)는 인트라 예측부(442) 및 인터 예측부(444)를 포함할 수 있다. 인트라 예측부(442)는 현재블록의 예측 타입이 인트라 예측일 때 활성화되고, 인터 예측부(444)는 현재블록의 예측 타입이 인터 예측일 때 활성화된다.
인트라 예측부(442)는 복호화부(410)로부터 추출된 인트라 예측 모드에 대한 신택스 요소로부터 복수의 인트라 예측 모드 중 현재블록의 인트라 예측 모드를 결정하고, 인트라 예측 모드에 따라 현재블록 주변의 참조 픽셀들을 이용하여 현재블록을 예측한다.
인터 예측부(444)는 복호화부(410)로부터 추출된 인터 예측 모드에 대한 신택스 요소를 이용하여 현재블록의 움직임벡터와 그 움직임벡터가 참조하는 참조픽처를 결정하고, 움직임벡터와 참조픽처를 이용하여 현재블록을 예측한다.
가산기(450)는 역변환부로부터 출력되는 잔차블록과 인터 예측부 또는 인트라 예측부로부터 출력되는 예측블록을 가산하여 현재블록을 복원한다. 복원된 현재블록 내의 픽셀들은 이후에 복호화할 블록을 인트라 예측할 때의 참조픽셀로서 활용된다.
필터부(460)는 디블록킹 필터(462) 및 SAO 필터(464)를 포함할 수 있다. 디블록킹 필터(462)는 블록 단위의 복호화로 인해 발생하는 블록킹 현상(blocking artifact)를 제거하기 위해, 복원된 블록 간의 경계를 디블록킹 필터링한다. SAO 필터(464)는 손실 부호화(lossy coding)으로 인해 발생하는 복원된 픽셀과 원본 픽셀 간의 차이를 보상하기 위해, 디블록킹 필터링 이후의 복원된 블록에 대해 추가적인 필터링을 수행한다. 디블록킹 필터(462) 및 SAO 필터(464)를 통해 필터링된 복원블록은 메모리(470)에 저장된다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
한편, 복호화부(410)는 픽처로부터 분할되는 하위 유닛들에 대한 정보를 비트스트림으로부터 복호화하여 획득한다. 픽처 복원부(4000)는 획득된 하위 유닛들에 대한 정보에 기초하여, 픽처를 복원한다. 픽처 복원부(4000)에는 영상 복호화 장치에 포함되는 구성들 중에서 복호화부(410)를 제외한 나머지 구성들이 포함될 수 있다. 복호화부(410)가 하위 유닛들에 대한 정보를 획득하는 방법에 대해서는 아래에서 상세히 설명하도록 한다.
병렬 처리를 위한 두 가지 타입의 픽처(이미지 또는 화면) 분할 방법이 존재한다. 두 가지 타입의 픽처 분할 방법들 중에서 어느 하나는 슬라이스 분할 방법이며 다른 하나는 타일 분할 방법이다.
1) 슬라이스 분할 방법에 의하면, 하나의 픽처를 raster scan order 순으로 CTU 단위로 분할하여 부호화/복호화할 수 있는 기능이 제공된다. 하나의 슬라이스 내에는 여러 개의 슬라이스 세그먼트(segments)가 존재할 수 있으며, 슬라이스 세그먼트에는 두 가지 종류가 존재한다. 슬라이스 세그먼트의 종류로는 독립적 슬라이스 세그먼트(independent slice segment)와 종속적 슬라이스 세그먼트(dependent slice segment)가 있다.
독립적 슬라이스 세그먼트는 인트라 예측, 인터 예측, 코딩모드 및 엔트로피 코딩 시에 다른 슬라이스에 의존하지 않는 슬라이스 세그먼트이다. 독립적 슬라이스 세그먼트는 헤더 정보가 존재한다. 종속적 슬라이스 세그먼트는 인트라 예측, 인터 예측, 코딩모드 및 엔트로피 코딩 시에 다른 슬라이스에 의존하는(선행하는 다른 독립적 슬라이스 세그먼트를 참조하는) 슬라이스 세그먼트이다. 종속적 슬라이스 세그먼트는 헤더 정보의 대부분을 선행하는 독립적 슬라이스 세그먼트의 헤더 정보를 참고한다. 즉, 종속적 슬라이스 세그먼트의 헤더 정보는 일부만이 시그널링된다.
도 5 (a)는 픽처로부터 분할된 두 개의 슬라이스들을 보이며, 두 개의 슬라이스들은 슬라이스 경계(slice boundary)에 의해 구분될 수 있다. 하나의 슬라이스에는 하나의 독립적 슬라이스 세그먼트와 0개 이상의 종속적 슬라이스 세그먼트가 존재할 수 있다. 픽처의 상측에 위치하는 첫 번째 슬라이스에는 점선을 기준으로 구분되는 하나의 독립적 슬라이스 세그먼트와 두 개의 종속적 슬라이스 세그먼트가 포함되어 있다. 픽처의 하측에 위치하는 두 번째 슬라이스에는 하나의 독립적 슬라이스 세그먼트만이 포함되어 있다(0개의 종속적 슬라이스 세그먼트 포함).
슬라이스 분할 방법에 대한 신택스 구조가 표 1 및 표 2에 나타나 있다.
Figure PCTKR2020012769-appb-img-000001
Figure PCTKR2020012769-appb-img-000002
표 1은 종속적 슬라이스 세그먼트의 사용 여부를 지시하는 플래그(dependent_slice_segments_enabled_flag)를 나타내며, 이 플래그는 PPS에서 정의될 수 있다. 표 2는 슬라이스 세그먼트 헤더정보를 나타낸다.
표 2에 나타낸 바와 같이, 특정 슬라이스 세그먼트가 픽처 내 첫 번째 슬라이스 세그먼트인지 여부를 나타내는 플래그(first_slice_segment_in_pic_flag)가 부호화되어 시그널링된다. 첫 번째 슬라이스 세그먼트는 독립적 슬라이스 세그먼트가 된다. 첫 번째 슬라이스 세그먼트가 아니라면, 종속적 슬라이스 세그먼트인지 여부를 나타내는 플래그(dependent_slice_segment_flag)가 부호화되어 시그널링된다. 또한, 해당 슬라이스 세그먼트의 address(slice_segment_address)가 함께 부호화되어 시그널링된다. 여기서, slice_segment_address는 해당 슬라이스 세그먼트 내 첫 번째 CTU의 인덱스(index) 값을 의미한다.
2) 타일 분할 방법에 의하면, 하나의 픽처를 CTU 단위로 다수 개의 열(column)과 행(row)으로 구획/분할하여 부호화/복호화할 수 있는 기능이 제공된다. 픽처를 타일로 분할하는 방법은 균등 분할 또는 개별 분할(비균등 분할)이 모두 가능하다.
분할된 각각의 타일들은 인트라 예측 및 엔트로피 코딩 시에 다른 타일에 의존하지 않으며, 인-루프 필터링의 의존 여부는 PPS에서 정의되는 플래그로 제어 가능하다. 타일을 위한 별도의 헤더는 존재하지 않는다.
도 5 (b)는 픽처로부터 3x3으로 분할된 타일들을 보이며, 각 타일들은 타일 경계(column boundaries, row boundaries)에 의해 구분될 수 있다. 복수 개의 타일들은 raster scan order 순으로 부호화/복호화가 진행될 수 있으며, 한 타일 내 다수 개의 CTU들도 raster scan order 순으로 부호화/복호화가 진행될 수 있다. 각 CTU 내에 표시된 숫자들이 부호화/복호화가 진행되는 순서를 나타낸다.
타일 분할 방법을 위한 신택스 구조가 표 3에 나타나 있다.
Figure PCTKR2020012769-appb-img-000003
표 3에 나타낸 바와 같이, 타일 분할 방법의 on/off를 지시하는 플래그(tiles_enabled_flag)가 PPS에서 정의되어 시그널링되며, 해당 플래그가 on인 경우에 타일의 크기를 지정하는 신택스들이 추가적으로 시그널링된다.
타일의 크기를 지정하는 신택스들에는, 세로축 방향으로 분할된 타일들의 개수(타일 열의 개수)에서 1을 뺀 값을 지시하는 num_tile_columns_minus1, 가로축 방향으로 분할된 타일들의 개수(타일 행의 개수)에서 1을 뺀 값을 지시하는 num_tile_rows_minus1, 픽처가 가로축 방향과 세로축 방향으로 균등하게 분할되는지 여부를 지시하는 uniform_spacing_flag 등이 포함될 수 있다.
픽처가 균등하게 분할되지 않은 경우(uniform_spacing_flag=off), 타일 열의 너비정보(column_width_minus1)와 타일 행의 높이정보(row_height_minus1)가 추가적으로 시그널링된다. 또한, 타일들 간 경계에서 인-루프 필터링의 적용 여부를 나타내는 플래그(loop_filter_across_tiles_enabled_flag)도 시그널링된다.
이상에서 설명된 슬라이스 분할 방법과 타일 분할 방법의 차이점이 도 6에 나타나 있다. 도 6 (a)는 슬라이스 분할 방법에 따라 분할된 슬라이스들(총 4개)을 나타내며, 도 6 (b)는 타일 분할 방법에 따라 분할된 타일들(총 4개)을 나타낸다. 숫자들 각각은 CTU의 개수를 나타낸다.
분할된 슬라이스들 사이에는 CTU 단위로 가로축 방향의 경계만이 존재할 수 있다. 이와 달리, 분할된 타일들 사이에는 CTU 단위로 가로축 방향의 경계와 세로축 방향의 경계가 모두 존재할 수 있다.
본 발명은 픽처로부터 분할되는 하위 유닛들에 대한 정보를 획득하는 방법을 제안한다.
하위 유닛(하위 블록 또는, 하위 영역)들에는 서브픽처, 슬라이스, 타일/브릭 및 CTU 중에서 하나 이상이 포함될 수 있다. 하위 유닛들에 대한 정보에는 인에이블 플래그와 하위 유닛들의 분할정보가 포함될 수 있다.
인에이블 플래그는 하위 유닛들 간의 경계에서 인-루프 필터링의 수행 여부를 나타내는 신택스 요소이다. 하위 유닛들의 분할정보는 픽처를 다양한 하위 유닛들로 분할하기 위한 정보에 해당한다. 따라서, '하위 유닛들의 분할정보를 획득'하는 것은 '픽처를 하위 유닛들로 분할하는 것'일 수 있다.
본 발명에서는 하위 유닛들의 분할정보를 이용한 다양한 목적의 픽처 분할 방법들이 제안된다. 구체적으로, 1) 서로 다른 시퀀스들을 합성하기 위한 서브픽처(sub-picture) 분할 방법, 2) 비트스트림 패킹을 위한 슬라이스 분할 방법 및, 3) 병렬 처리를 위한 타일/브릭 분할 방법 등이 본 명세서를 통해 제안된다.
타일/브릭, 슬라이스 및 서브픽처
타일/브릭 은 하나의 픽처를 병렬적으로 처리하기 위해, 이 하나의 픽처를 분할한 영역을 의미한다. 타일/브릭들 간에는 인트라 예측 및 엔트로피 코딩 시에 서로 독립적으로 동작하는 구조를 가진다. 즉, 타일/브릭들은 인트라 예측 시에 참조샘플을 공유하지 않으며, 엔트로피 코딩 시에 context를 공유하지 않는 관계를 가진다. 타일/브릭들 간 경계에 인-루프 필터를 적용할지 여부는 별도의 플래그를 통해 제어될 수 있다.
슬라이스는 독립적인 하나의 NAL(network abstraction layer) 비트스트림을 생성하는 데이터 패킹 단위를 의미한다. 하나의 슬라이스에 다수 개의 타일/브릭이 포함되거나, 하나의 타일/브릭에 다수 개의 슬라이스가 포함될 수도 있다.
슬라이스에는 두 가지 타입 또는 모드가 존재한다. 첫 번째 모드는 유사한 특성을 가진 타일/브릭들 또는 임의의 타일/브릭들이 하나의 영역으로 구분된 직사각형 모양의 슬라이스(직사각형 슬라이스, rectangular slice) 모드이고, 두 번째 모드는 raster-scan 순으로 타일/브릭의 부호화/복호화를 진행하다가 특정 위치에서 영역이 구분된 비직사각형 모양의 슬라이스(래스터 스캔 슬라이스, raster-scan) 모드이다.
직사각형 슬라이스 모드와 래스터 스캔 슬라이스 모드의 일 예가 도 7에 나타나 있다. 도 7에서, 점선으로 구분된 영역은 CTU를 나타내고, 직선으로 구분된 영역은 타일/브릭을 나타내며, 일점 쇄선으로 구분된 영역은 슬라이스를 나타낸다.
도 7 (a)에 나타낸 바와 같이, 하나의 픽처는 총 216(18x12)개의 CTU들로 구획되고, 총 24(6x4)개의 타일/브릭들로 구획되며, 총 9개의 직사각형 슬라이스들로 구획될 수 있다. 도 7 (b)에 나타낸 바와 같이, 하나의 픽처는 총 216(18x12)개의 CTU들로 구획되고, 총 12(3x4)개의 타일/브릭들로 구획되며, 총 3개의 래스터 스캔 슬라이스들로 구획될 수 있다.
서브픽처는 다른 컨텐츠와의 합성을 위해 구분된 영역을 의미한다. 서브픽처는 최소 1개의 슬라이스를 포함할 수 있다.
서로 다른 컨텐츠들이 서브픽처 단위로 합성되는 일 예가 도 8에 나타나 있다. 우상향의 패턴으로 표현된 영역은 컨텐츠 1 내 픽처를 의미하고, 가로축 방향의 패턴으로 표현된 영역은 컨텐츠 2 내 픽처를 의미하며, 세로축 방향의 패턴으로 표현된 영역은 컨텐츠 3 내 픽처를 의미한다.
도 8의 좌측에 표현된 바와 같이, 픽처들 각각은 4개의 슬라이스들로 구성될 수 있으며, 각 슬라이스 단위로 비트스트림이 생성될 수 있다. 또한, 각 슬라이스가 서브픽처로 정의될 수 있다. 물리적으로 슬라이스 단위로 생성된 비트스트림들이 Bitstream Extractor & Merger에 입력되어 추출 과정 및 합성 과정을 거치게 된다. 여기서, 추출 과정 및 합성 과정의 논리적 단위는 서브픽처이다. 그 결과, 도 8의 우측에 표현된 바와 같이, 좌상측 부분은 컨텐츠 1로, 좌하측 부분은 컨텐츠 2로, 우측 부분은 컨텐츠 3으로 합성된 새로운 픽처(picture)가 생성되게 된다.
Bitstream Extractor & Merger는 슬라이스 단위로 생성된 비트스트림들을 서로 다른 컨텐츠들로부터 서브픽처 단위로 추출하고 합성한다. 이를 위해, 각 컨테츠의 픽처는 서브픽처로 구획된다. 즉, 서브픽처는 컨텐츠 합성을 위해 최소 1개의 슬라이스를 포함하는 영역이다.
이하에서는 하위 유닛들에 대한 정보를 획득하는 방법을 설명한다. 본 발명의 일 실시예를 설명하기 위한 순서도가 도 9에 나타나 있다.
영상 부호화 장치는 픽처를 다양한 하위 유닛들로 분할할 수 있다. 픽처는 미리 결정된 크기를 가지는 복수 개의 CTU들로 분할된 후에, CTU의 크기를 기본 단위로 하여 서브픽처, 타일/브릭, 슬라이스 등으로 분할될 수 있다.
예를 들어, 픽처는 CTU의 크기를 기본 단위로 하여 하나 이상의 서브픽처로 분할될 수 있으며, CTU의 크기를 기본 단위로 하여 하나 이상의 타일/브릭으로 분할될 수 있다. 슬라이스 분할의 경우에, 픽처는 타일/브릭을 기본 단위로 하여 하나 이상의 슬라이스로 분할될 수 있다. 여기서, 타일/브릭은 CTU의 크기를 기본 단위로 하여 분할되므로, 결과적으로 슬라이스도 CTU의 크기를 기본 단위로 하여 분할된다.
따라서, 서브픽처 분할에 대한 정보(서브픽처 분할정보)는 픽처 내 서브픽처를 CTU의 크기 단위로 표현하며, 타일/브릭 분할에 대한 정보(타일/브릭 분할정보)는 픽처 내 타일/브릭을 CTU의 크기 단위로 표현하고, 슬라이스 분할에 대한 정보(슬라이스 분할정보)도 픽처 내 슬라이스를 타일/브릭 단위(CTU의 크기 단위)로 표현할 수 있다.
CTU의 크기에 대한 정보(CTU 사이즈 정보), 서브픽처 분할정보, 타일/브릭 분할정보, 슬라이스 분할정보 등이 부호화되어 영상 복호화 장치로 시그널링된다. CTU 사이즈 정보는 SPS 레벨 또는 PPS 레벨에서 정의되어 시그널링되며, 서브픽처 분할정보는 SPS 레벨에서 정의되어 시그널링되고, 타일/브릭 분할정보 및 슬라이스 분할정보는 PPS 레벨에서 정의되어 시그널링된다.
또한, 영상 부호화 장치는 하위 유닛들 간 경계에 인-루프 필터링의 적용 여부를 결정하고, 인-루프 필터링의 적용 여부를 나타내는 인에이블 플래그를 부호화하여 영상 복호화 장치로 시그널링한다.
서브픽처들 간 경계에 인-루프 필터링의 적용 여부를 나타내는 인에이블 플래그는 SPS 레벨에서 정의되어 시그널링되며, 타일/브릭들 간 경계에 인-루프 필터링의 적용 여부를 나타내는 인에이블 플래그 및 슬라이스들 간 경계에 인-루프 필터링의 적용 여부를 나타내는 인에이블 플래그는 PPS 레벨에서 정의되어 시그널링된다.
복호화부(410)는 비트스트림으로부터 하위 유닛들의 분할정보를 복호화한다(S910). 하위 유닛들의 분할정보에 포함된 CTU 사이즈 정보, 서브픽처 분할정보, 타일/브릭 분할정보, 슬라이스 분할정보 등이 비트스트림으로부터 복호화되어 획득된다. 복호화부(410)는 획득된 분할정보들에 기초하여 픽처를 하위 유닛들로 분할한다(S930). 구체적으로, 픽처는 CTU 사이즈 정보가 나타내는 CTU 크기의 CTU들로 분할된 후에, 서브픽처 분할정보, 타일/브릭 분할정보 및 슬라이스 분할정보에 기초하여 서브픽처, 타일/브릭, 슬라이스 등으로 분할될 수 있다.
복호화부(410)는 비트스트림으로부터 하위 유닛들 간 경계에 인-루프 필터링의 적용 여부를 나타내는 인에이블 플래그를 복호화한다(S920). 필터링부(460)는 인에이블 플래그의 값에 따라 하위 유닛들 간 경계에 인-루프 필터링의 적용 여부를 결정한다(S930).
실시예 1
실시예 1은 타일 분할정보를 획득하는 방법과 브릭 분할정보를 획득하는 방법이다. 이를 달리 표현하면, 실시예 1은 픽처를 타일로 분할하는 방법과 픽처를 브릭으로 분할하는 방법이다.
실시예 1에 대한 신택스 구조의 일 예를 나타내면 표 4와 같다.
Figure PCTKR2020012769-appb-img-000004
실시예 1-1
실시예 1-1은 픽처를 타일로 분할하는 방법(타일 분할정보를 획득하는 방법)이다. 실시예 1-1에 대한 일 예가 도 10에 나타나 있다.
영상 부호화 장치는 픽처 내에 하나의 타일만이 존재하는지 여부를 판단하고, 판단 결과를 single_tile_in_pic_flag 신택스 요소의 값으로 설정한다. single_tile_in_pic_flag==1은 픽처 내에 하나의 타일만이 존재함을 나타내며, single_tile_in_pic_flag==0은 픽처 내에 하나 이상의 타일이 존재함을 나타낸다.
영상 부호화 장치는 픽처 내에 하나 이상의 타일이 존재하는 경우에(single_tile_in_pic_flag==0), 해당 하나 이상의 타일이 균등하게 분할되었는지 여부를 판단하고, 판단 결과를 uniform_tile_spacing_flag 신택스 요소의 값으로 설정한다. uniform_tile_spacing_flag==1은 타일이 균등하게 분할됨을 나타내며, uniform_tile_spacing_flag==0은 타일이 균등하게 분할되지 않음을 나타낸다.
영상 부호화 장치는 타일이 균등하게 분할된 경우에(uniform_tile_spacing_flag==1), 타일 열(column)의 너비와 타일 행(row)의 높이를 판단하고, 각각의 판단 결과를 tile_cols_width_minus1 신택스 요소 및 tile_rows_height_minus1 신택스 요소의 값으로 설정한다. tile_cols_width_minus1은 타일 열의 너비를 CTU의 크기 단위로 나타내는 신택스 요소로서, 픽처 내 가장 오른쪽에 위치하는 타일 열의 너비는 제외된다. tile_rows_height_minus1은 타일 행의 높이를 CTU의 크기 단위로 나타내는 신택스 요소로서, 픽처 내 가장 아래쪽에 위치하는 타일 행의 높이는 제외된다.
영상 부호화 장치는 타일이 균등하게 분할되지 않은 경우에(uniform_tile_spacing_flag==0), 타일 열의 개수와 타일 행의 개수를 판단하고, 각각의 판단 결과를 num_tile_columns_minus1 신택스 요소 및 num_tile_rows_minus1 신택스 요소의 값으로 설정한다. num_tile_columns_minus1은 타일 열의 개수에서 1을 뺀 값을 나타내는 신택스 요소이며, num_tile_rows_minus1은 타일 행의 개수에서 1을 뺀 값을 나타내는 신택스 요소이다.
영상 부호화 장치는 균등하게 분할되지 않은 타일 열의 너비와 균등하게 분할되지 않은 타일 행의 높이를 판단하고, 각각의 판단 결과를 tile_column_width_minus1[i] 신택스 요소 및 tile_row_height_minus1[i] 신택스 요소의 값으로 설정한다. tile_column_width_minus1[i]은 균등하게 분할되지 않는 타일 열의 너비를 CTU의 크기 단위로 나타내는 신택스 요소로서, 픽처 내 가장 오른쪽에 위치하는 타일 열의 너비는 제외된다. tile_row_height_minus1[i]은 균등하게 분할되지 않은 타일 행의 높이를 나타내는 신택스 요소로서, 픽처 내 가장 아래쪽에 위치하는 타일 행의 높이는 제외된다.
영상 부호화 장치는 single_tile_in_pic_flag, uniform_tile_spacing_flag, tile_cols_width_minus1, tile_rows_height_minus1, num_tile_columns_minus1, num_tile_rows_minus1, tile_column_width_minus1[i] 및 tile_row_height_minus1[i]를 부호화하여 영상 복호화 장치로 시그널링한다.
복호화부(410)는 single_tile_in_pic_flag를 비트스트림으로부터 복호화하고(S1010), single_tile_in_pic_flag의 값에 따라 픽처 내에 하나의 타일 만이 존재하는지, 아니면 픽처 내에 하나 이상의 타일이 존재하는지 여부를 판단한다(S1020).
복호화부(410)는 픽처 내에 하나의 타일 만이 존재하는 경우에(single_tile_in_pic_flag==1), 해당 픽처를 하나의 타일로 취급하고, 타일 분할 과정을 종료한다. 이와 달리, 복호화부(410)는 픽처 내에 하나 이상의 타일이 존재하는 경우에(single_tile_in_pic_flag==0), uniform_tile_spacing_flag를 비트스트림으로부터 복호화한다(S1030).
복호화부(410)는 복호화된 uniform_tile_spacing_flag의 값에 따라 픽처 내 타일이 균등하게 분할되는지 여부를 판단한다(S1040). 복호화부(410)는 타일이 균등하게 분할된 경우에(uniform_tile_spacing_flag==1), tile_cols_width_minus1 및 tile_rows_height_minus1를 비트스트림으로부터 복호화한다(S1050). 이와 달리, 복호화부(410)는 타일이 균등하게 분할되지 않은 경우에(uniform_tile_spacing_flag==0), num_tile_columns_minus1 및 num_tile_rows_minus1를 비트스트림으로부터 복호화하고(S1060), num_tile_columns_minus1 및 num_tile_rows_minus1이 지시하는 개수만큼 tile_column_width_minus1[i] 및 tile_row_height_minus1[i]를 비트스트림으로부터 복호화한다(S1070).
복호화부(410)는 num_tile_columns_minus1, num_tile_rows_minus1, tile_column_width_minus1[i] 및 tile_row_height_minus1[i]의 값에 따라 픽처를 타일로 균등하지 않게 분할하거나, tile_cols_width_minus1 및 tile_rows_height_minus1의 값에 따라 픽처를 타일들로 균등하게 분할할 수 있다.
실시예 1-2
실시예 1-2는 픽처를 브릭으로 분할하는 방법(브릭 분할정보를 획득하는 방법)이다. 브릭의 분할은 타일의 가로축 분할만이 허용된다. 실시예 1-2에 대한 일 예가 도 11에 나타나 있다.
영상 부호화 장치는 픽처 내 타일이 복수 개의 브릭으로 분할되는지 여부를 판단하고, 판단 결과를 brick_splitting_present_flag 신택스 요소의 값으로 설정할 수 있다. brick_splitting_present_flag==1은 픽처 내 하나 이상의 타일이 복수 개의 브릭들로 분할됨을 나타내며, brick_splitting_present_flag==0은 복수 개의 브릭들로 분할되는 타일이 픽처 내에 존재하지 않음을 나타낸다. brick_splitting_present_flag는 부호화되어 영상 복호화 장치로 시그널링된다.
영상 부호화 장치는 픽처 내 타일들의 개수를 판단하고, 판단 결과를 num_tiles_in_pic_minus1 신택스 요소의 값으로 설정할 수 있다. num_tiles_in_pic_minus1는 픽처 내 타일들이 균등하게 분할되며(uniform_tile_spacing_flag==1) 픽처 내 하나 이상의 타일이 복수 개의 브릭들로 분할된 경우에(brick_splitting_present_flag==1), 부호화되어 영상 복호화 장치로 시그널링된다.
영상 부호화 장치는 i-번째 타일의 높이(i-번째 타일 내 CTU 행의 개수, RowHeight[i])를 판단하고, 판단 결과에 따라 brick_split_flag[i] 신택스 요소, uniform_brick_spacing_flag[i] 신택스 요소, brick_height_minus1[i] 신택스 요소, num_brick_rows_minus2[i] 신택스 요소 및 brick_row_height_minus1[i][j] 신택스 요소의 값을 설정할 수 있다.
brick_split_flag[i]은 i-번째 타일이 브릭들로 분할되는지 여부를 지시하는 신택스 요소이다. RowHeight[i]의 값이 1을 초과하는 경우에 brick_split_flag[i]는 i-번째 타일이 브릭들로 분할됨을 지시하는 값인 “1”로 설정되며, 부호화되어 영상 복호화 장치로 시그널링된다. RowHeight[i]의 값이 1을 초과하는 경우에는 가로축 브릭 분할이 가능하기 때문이다. 이와 달리, brick_split_flag[i]는 RowHeight[i]의 값이 1 이하인 경우에 i-번째 타일이 브릭들로 분할되지 않음을 지시하는 값인 “0”으로 설정되며, 영상 복호화 장치로 시그널링되지 않는다. RowHeight[i]의 값이 1 이하인 경우에는 가로축 브릭 분할이 불가능하기 때문이다.
uniform_brick_spacing_flag[i]은 i-번째 타일이 브릭들로 균등하게 분할되는지 여부를 지시하는 신택스 요소이다. RowHeight[i]의 값이 2를 초과하는 경우에는 균등 분할과 비균등 분할이 모두 가능하므로, uniform_brick_spacing_flag[i]은 균등 분할을 지시하는 값인 “1”로 설정되거나, 비균등 분할을 지시하는 값인 “0”으로 설정될 수 있다. 이 경우, uniform_brick_spacing_flag[i]은 부호화되어 영상 복호화 장치로 시그널링될 수 있다. 이와 달리, RowHeight[i]의 값이 2 이하인 경우에는 1:1의 균등 분할만이 가능하므로, uniform_brick_spacing_flag[i]은 “1”로 설정되며, 영상 복호화 장치로 시그널링되지 않는다.
brick_height_minus1[i]은 균등 분할된 브릭 행들의 높이에서 1을 뺀 값을 CTU의 사이즈 단위로 지시하는 신택스 요소로서, i-번째 타일 내 가장 아래쪽에 위치하는 브릭 행의 높이는 제외된다. brick_height_minus1[i]은 브릭들이 균등 분할되면서 RowHeight[i]의 값이 3을 초과하는 경우에 부호화되어 영상 복호화 장치로 시그널링된다. 이와 달리, 브릭들이 균등 분할되면서 RowHeight[i]의 값이 3인 경우에는 1:1:1의 균등 분할만 가능하므로, brick_height_minus1[i]==0으로 설정되며, 영상 복호화 장치로 시그널링되지 않는다.
num_brick_rows_minus2[i]는 비균등 분할된 브릭들의 개수에서 2를 뺀 값을 지시하는 신택스 요소이다. num_brick_rows_minus2[i]는 브릭들이 비균등 분할되면서 RowHeight[i]의 값이 3을 초과하는 경우에 부호화되어 영상 복호화 장치로 시그널링된다. 이와 달리, 브릭들이 비균등 분할되면서 RowHeight[i]의 값이 3인 경우에는 1:2 또는 2:1의 비균등 분할만 가능하므로, num_brick_rows_minus2[i]==0으로 설정되며, 영상 복호화 장치로 시그널링되지 않는다.
brick_row_height_minus1[i][j]은 비균등 분할된 브릭 행들 중에서 j-번째 브릭 행의 높이에서 1을 뺀 값을 CTU의 사이즈 단위로 지시하는 신택스 요소이다. 예를 들어, brick_row_height_minus1[i][j]는 비균등 분할된 브릭들의 개수가 3인 경우에(num_brick_rows_minus2[i]==1) 2개의 브릭들에 대한 높이 각각에서 1을 뺀 값으로 설정된다. 다른 예로, brick_row_height_minus1[i][j]는 비균등 분할된 브릭들의 개수가 5인 경우에(num_brick_rows_minus2[i]==3)는 4개의 브릭들에 대한 높이 각각에서 1을 뺀 값으로 설정된다. brick_row_height_minus1[i][j]는 부호화되어 영상 복호화 장치로 시그널링된다.
복호화부(410)는 brick_splitting_present_flag를 비트스트림으로부터 복호화하고(S1110), 복호화된 brick_splitting_present_flag의 값을 판단한다(S1120).
복호화부(410)는 픽처 내 타일들이 균등하게 분할되며(uniform_tile_spacing_flag==1) 픽처 내 하나 이상의 타일이 복수 개의 브릭들로 분할된 경우에(brick_splitting_present_flag==1), num_tiles_in_pic_minus1를 비트스트림으로부터 복호화한다(S1130). 픽처 내 타일들이 비균등 분할되거나(uniform_tile_spacing_flag==0) 픽처 내 하나 이상의 타일이 복수 개의 브릭들로 분할되지 않은 경우에(brick_splitting_present_flag==0)는 num_tiles_in_pic_minus1이 시그널링되지 않고, num_tiles_in_pic_minus1의 값이 픽처 내 타일의 개수에서 1을 뺀 값으로 설정 또는 유도된다.
복호화부(410)는 i-번째 타일 내 CTU 행의 개수(RowHeight[i])를 확인하고(S1140), RowHeight[i] > 1인 경우에 brick_split_flag를 비트스트림으로부터 복호화한다(S1150). RowHeight[i]의 값이 1 이하인 경우에는 brick_split_flag이 시그널링되지 않고, brick_split_flag의 값이 0으로 유도 또는 설정된다.
복호화부(410)는 brick_split_flag==0인 경우에(S1160) 브릭 분할을 종료하나, brick_split_flag==1인 경우에(S1160)는 RowHeight[i]의 값을 판단한다(S1170). RowHeight[i]의 값이 2를 초과하는 경우에는 uniform_brick_spacing_flag이 비트스트림으로부터 복호화되나(S1180), RowHeight[i]의 값이 2 이하인 경우에는 uniform_brick_spacing_flag이 복호화되지 않으며 그 값이 1로 설정 또는 유도된다.
복호화부(410)는 uniform_brick_spacing_flag의 값에 따라 브릭의 균등 분할 여부를 판단하고(S1182), RowHeight[i]의 값을 판단한다(S1184, S1190). 복호화부(410)는 uniform_brick_spacing_flag==1이면서 RowHeight[i]의 값이 3을 초과하는 경우에 brick_height_minus1[i]을 비트스트림으로부터 복호화한다(S1186). 이와 달리, uniform_brick_spacing_flag==1이면서 RowHeight[i]의 값이 3을 초과하지 않는 경우에는 brick_height_minus1[i]이 복호화되지 않고 그 값이 0으로 설정 또는 유도된다. 복호화부(410)는 uniform_brick_spacing_flag==0이면서 RowHeight[i]의 값이 3을 초과하는 경우에 num_brick_rows_minus2[i]을 비트스트림으로부터 복호화한다(S1192). 이와 달리, uniform_brick_spacing_flag==0이면서 RowHeight[i]의 값이 3을 초과하지 않는 경우에는 num_brick_rows_minus2[i]이 복호화되지 않고 그 값이 0으로 설정 또는 유도된다. 복호화부(410)는 brick_row_height_minus1[i][j]를 비트스트림으로부터 복호화한다(S1194).
이상에서 설명된 바와 같이, 본 발명에서 제안하는 브릭 분할 방법은 RowHeight[i]의 값이 3을 초과하는 경우에만 brick_height_minus1[i] 및 num_brick_rows_minus2[i]을 시그널링 및 복호화하도록 구성된다. 이와 달리, 종래 브릭 분할 방법은 RowHeight[i]의 값이 3을 초과하는 경우와 RowHeight[i]의 값이 3을 초과하지 않는 경우 모두에(즉, RowHeight[i]의 값이 3을 초과하는지 여부와 무관하게) brick_height_minus1[i] 및 num_brick_rows_minus2[i]을 시그널링 및 복호화하였다. 따라서, 본 발명의 브릭 분할 방법은 종래 브릭 분할 방법에 비해 비트 효율성을 향상시킬 수 있다.
실시예 2
실시예 2는 픽처를 슬라이스로 분할하는 방법(슬라이스 분할정보를 획득하는 방법) 및 인에이블 플래그를 획득하는 방법이다.
실시예 2에 대한 신택스 구조를 나타내면 표 5와 같다.
Figure PCTKR2020012769-appb-img-000005
실시예 2-1
실시예 2-1은 픽처를 슬라이스로 분할하는 방법이다. 슬라이스 분할은 하나 이상의 타일/브릭을 포함하는 형태로 구현될 수 있다. 타일/브릭과 슬라이스 간의 분할 관계가 도 12에 나타나 있으며, 픽처를 슬라이스로 분할하는 방법이 도 13에 나타나 있다.
도 12 (a)는 픽처로부터 분할된 총 9개의 타일/브릭들(3x3)을 나타내며, 도 12 (b) 내지 (d)는 도 12 (a)의 타일/브릭 분할을 기준으로 타일/브릭(실선)과 슬라이스(일점 쇄선) 간의 분할 관계를 나타낸다. 도 12 (b)에 나타낸 바와 같이 하나의 타일/브릭이 하나의 슬라이스를 구성할 수 있고(1:1의 분할 관계), 도 12 (c)에 나타낸 바와 같이, 다수 개의 타일/브릭들이 하나의 직사각형 슬라이스를 구성할 수 있다(n:1의 분할 관계, n은 2 이상의 자연수). 또한, 도 12 (d)에 나타내 바와 같이 모든 타일/브릭들이 하나의 슬라이스를 구성할 수 있고(all:1의 분할 관계), 도 12 (e)에 나타낸 바와 같이 다수 개의 타일/브릭들이 하나의 래스터 스캔 슬라이스를 구성할 수도 있다. 도 12 (e)에서, 우상향 패턴으로 표현된 타일/브릭들이 하나의 래스터 스캔 슬라이스를 구성한다. 또한, 패턴으로 표현되지 않은 타일/브릭들 중에서, 픽처의 상측에 위치하는 두 개의 타일/브릭들이 다른 래스터 스캔 슬라이스를 구성하며, 픽처의 하측 및 우측에 위치하는 또 세 개의 타일/브릭들이 또 다른 래스터 스캔 슬라이스를 구성한다.
영상 부호화 장치는 슬라이스가 하나 이상의 타일/브릭을 포함하는지 여부를 판단하고, 판단 결과를 single_brick_per_slice_flag 신택스 요소의 값으로 설정한다. single_brick_per_slice_flag==1은 슬라이스에 하나의 타일/브릭이 포함됨을 나타내며, single_brick_per_slice_flag==0은 슬라이스에 하나 이상의 타일/브릭이 포함될 수 있음을 나타낸다. single_brick_per_slice_flag는 부호화되어 영상 복호화 장치로 시그널링된다.
영상 부호화 장치는 single_brick_per_slice_flag==1인 경우에 타일/브릭과 슬라이스가 1:1의 분할 관계를 가지므로, 추가적인 슬라이스 분할정보를 시그널링하지 않는다.
영상 부호화 장치는 슬라이스의 모드를 판단하고, 판단 결과를 rect_slice_flag 신택스 요소의 값으로 설정한다. rect_slice_flag==0은 해당 슬라이스의 모드가 래스터 스캔 슬라이스 모드임을 나타내며, rect_slice_flag==1은 해당 슬라이스의 모드가 직사각형 슬라이스 모드임을 나타낸다. rect_slice_flag는 single_brick_per_slice_flag==0인 경우에 부호화되어 영상 복호화 장치로 시그널링된다.
영상 부호화 장치는 픽처 내 슬라이스의 개수를 판단하고, 판단 결과를 num_slices_in_pic_minus1 신택스 요소의 값으로 설정한다. num_slices_in_pic_minus1는 픽처 내 슬라이스의 개수에서 1을 뺀 값을 나타내는 신택스 요소이다. num_slices_in_pic_minus1는 부호화되어 영상 복호화 장치로 시그널링된다.
영상 부호화 장치는 슬라이스들 각각의 우하측 내부에 위치하는 타일/브릭(우하측 타일/브릭)을 판단하고, 우하측 타일/브릭들 간의 인덱스 값 차이의 절대 값과 부호를 bottom_right_brick_idx_delta[i] 신택스 요소 및 brick_idx_delta_sign_flag[i] 신택스 요소의 값으로 설정한다.
bottom_right_brick_idx_delta[i]는 픽처 내 두 번째 이후(i > 1) 슬라이스에 대해, 이전 슬라이스 내 우하측 타일/브릭의 인덱스와 이후 슬라이스 내 우하측 타일/브릭의 인덱스 간 차이의 절대 값을 나타낸다. 다만, bottom_right_brick_idx_delta[i]는 픽처 내 첫 번째(i==0) 슬라이스에 대해, 첫 번째 슬라이스 내 우하측 타일/브릭 인덱스를 나타낸다. brick_idx_delta_sign_flag[i]==1은 bottom_right_brick_idx_delta[i]의 부호가 양수임을 나타내고, brick_idx_delta_sign_flag[i]==0은 bottom_right_brick_idx_delta[i]의 부호가 음수임을 나타낸다. bottom_right_brick_idx_delta[i] 및 brick_idx_delta_sign_flag[i]은 부호화되어 영상 복호화 장치로 시그널링된다.
bottom_right_brick_idx_delta[i] 및 brick_idx_delta_sign_flag[i]이 시그널링되기 이전에, bottom_right_brick_idx_length_minus1 신택스 요소가 먼저 부호화되어 시그널링된다. bottom_right_brick_idx_length_minus1는 bottom_right_brick_idx_delta[i]를 나타내기 위해 사용되는 비트 수를 지시한다.
복호화부(410)는 비트스트림으로부터 single_brick_per_slice_flag를 복호화한다(S1310). single_brick_per_slice_flag가 비트스트림 내에 존재하지 않는 경우에는 single_brick_per_slice_flag의 값이 “1”로 설정 또는 유도된다.
복호화부(410)는 single_brick_per_slice_flag의 값에 따라 추가적인 슬라이스 분할정보의 복호화 여부(획득 여부)를 결정한다(S1320). single_brick_per_slice_flag==1인 경우에는 추가적인 슬라이스 분할정보가 복호화되지 않으며, 타일/브릭의 분할정보로부터 슬라이스 분할정보가 유도된다. 이와 달리, 복호화부(410)는 single_brick_per_slice_flag==0인 경우에 비트스트림으로부터 rect_slice_flag를 복호화한다(S1330). rect_slice_flag가 비트스트림 내에 존재하지 않는 경우에, rect_slice_flag의 값은 “1”로 설정 또는 유도된다.
복호화부(410)는 슬라이스의 모드가 직사각형 슬라이스 모드이며(rect_slice_flag==1) 슬라이스에 타일/브릭이 하나 이상 포함되는 경우에(single_brick_per_slice_flag==0)(S1340), 비트스트림으로부터 num_slices_in_pic_minus1 및 bottom_right_brick_idx_length_minus1를 복호화한다(S1350). num_slices_in_pic_minus1이 비트스트림 내에 존재하지 않고 single_brick_per_slice_flag==1인 경우에, num_slices_in_pic_minus1은 복호화되지 않으며, 픽처 내 타일/블릭의 개수에서 1을 뺀 값으로 설정 또는 유도된다.
복호화부(410)는 슬라이스의 모드가 직사각형 슬라이스 모드이며(rect_slice_flag==1) 슬라이스에 타일/브릭이 하나 이상 포함되는 경우에(single_brick_per_slice_flag==0)(S1340), 비트스트림으로부터 bottom_right_brick_idx_delta[i] 및 brick_idx_delta_sign_flag[i]를 복호화한다(S1360). bottom_right_brick_idx_delta[i] 및 brick_idx_delta_sign_flag[i]은 single_brick_per_slice_flag==1인 경우에 시그널링(복호화)되지 않으므로, bottom_right_brick_idx_delta[i]==1로 설정 또는 유도된다.
실시예 2-1에서 설명된 슬라이스 분할 방법을 도 12의 타일 및 슬라이스 간 분할 관계에 적용하면, 표 6과 같다.
Figure PCTKR2020012769-appb-img-000006
도 12 (b)의 경우에, 타일/브릭과 슬라이스 간 분할 관계가 동일하므로(1:1 관계), single_brick_per_slice_flag는 “1”로 설정되어 시그널링되고, 다른 슬라이스 분할정보들은 시그널링 없이 타일/브릭의 분할정보로부터 유도된다.
도 12 (c)의 경우에, 타일/브릭과 슬라이스 간 분할 관계가 동일하지 않으므로 single_brick_per_slice_flag는 “0”으로 설정되어 시그널링되고, 슬라이스들의 모드가 직사각형 슬라이스 모드이므로 rect_slice_flag==1로 설정되어 시그널링된다. 또한, 픽처 내 슬라이스의 개수가 3이므로, num_slices_in_pic_minus1==2로 설정되어 시그널링되며, bottom_right_brick_idx_delta[i]가 bottom_right_brick_idx_delta[0]==2, bottom_right_brick_idx_delta[1]==3 및 bottom_right_brick_idx_delta[2]==3으로 각각 설정되어 시그널링된다. 또한, brick_idx_delta_sign_flag[i]가 brick_idx_delta_sign_flag[0]==1(+), brick_idx_delta_sign_flag[1]==1 및 brick_idx_delta_sign_flag[2]==1로 각각 설정되어 시그널링된다.
도 12 (d) 및 (e)의 경우에, 타일/브릭과 슬라이스 간 분할 관계가 동일하지 않으므로 single_brick_per_slice_flag는 “0”으로 설정되어 시그널링되고, 슬라이스들의 모드가 래스터 스캔 슬라이스 모드이므로 rect_slice_flag==0으로 설정되어 시그널링된다. 나머지 슬라이스 분할정보들은 시그널링되지 않는다.
실시예를 달리하여, 도 12 (d)의 슬라이스 모드를 직사각형 슬라이스 모드로 설정하고(rect_slice_flag==1), 픽처 내 슬라이스의 개수를 1개로 설정할 수도 있다(num_slices_in_pic_minus1==0). 이 경우에 시그널링되는 슬라이스 분할정보의 예가 표 7에 나타나 있다.
Figure PCTKR2020012769-appb-img-000007
실시예 2-2
실시예 2-2는 슬라이스들 간 경계에 인-루프 필터링의 적용 여부를 나타내는 인에이블 플래그(loop_filter_across_slices_enabled_flag)를 획득하는 방법이다.
loop_filter_across_slices_enabled_flag는 미리 설정된 조건에 따라 시그널링 여부가 결정될 수 있다. 이는, 타일/브릭과 슬라이스 간의 분할 관계에 따라, 타일/브릭의 경계선과 슬라이스의 경계선이 일부 또는 전체가 겹칠 수 있기(동일할 수 있기) 때문이다. 예를 들어, 도 12 (b)의 경우에 타일/브릭의 경계선과 슬라이스의 경계선이 전체가 동일하며, 도 12 (c)의 경우에 타일/브릭의 경계선과 슬라이스의 경계선이 일부 동일하고, 도 12 (d)의 경우에 슬라이스의 경계선이 픽처의 경계선이 되며, 도 12 (e)의 경우에 타일/브릭의 경계선과 슬라이스의 경계선이 일부 동일할 수 있다.
실시예 2-2에 대한 다양한 예들이 도 14 내지 도 17에 나타나 있다.
영상 부호화 장치는 슬라이스 분할정보를 부호화하여 영상 복호화 장치로 시그널링한다. 복호화부(410)는 비트스트림으로부터 슬라이스 분할정보를 복호화하고(S1410, S1510, S1610, S1710), 슬라이스 분할정보에 기반하여 픽처를 하나 이상의 슬라이스로 분할한다.
영상 부호화 장치는 미리 설정된 조건에 의존하여 loop_filter_across_slices_enabled_flag의 시그널링 여부를 결정한다. 즉, loop_filter_across_slices_enabled_flag는 미리 설정된 조건이 만족되는 경우에 부호화되어 영상 복호화 장치로 시그널링된다. 복호화부(410)는 미리 설정된 조건의 만족 여부를 판단하고(S1420, S1520, S1620, S1720), 판단 결과에 따라 loop_filter_across_slices_enabled_flag를 비트스트림으로부터 복호화한다(S1430, S1530, S1630, S1730).
미리 설정된 조건에는 픽처 내 슬라이스의 개수가 복수 개인지 여부(픽처가 복수 개의 슬라이스들로 분할되는지 여부) 및 슬라이스의 모드가 직사각형 슬라이스 모드인지 여부 중에서, 하나 이상이 포함될 수 있다.
예를 들어, 도 14에 나타낸 바와 같이, 미리 설정된 조건에는 픽처 내 슬라이스의 개수가 복수 개인지 여부(num_slices_in_pic_minus1) 및 슬라이스의 모드가 직사각형 슬라이스 모드인지 여부(rect_slice_flag)가 모두 포함될 수 있다. 이 경우, 픽처 내 슬라이스의 개수가 복수 개이거나 슬라이스의 모드가 직사각형 슬라이스 모드가 아닌 경우(num_slices_in_pic_minus1 > 0 ∥ rect_slice_flag==0)에, loop_filter_across_slices_enabled_flag가 시그널링 및 복호화된다.
도 12 (b) 및 (c)의 경우에 num_slices_in_pic_minus1 > 0이므로 loop_filter_across_slices_enabled_flag가 시그널링 및 복호화되며, 도 12 (d) 및 (e)의 경우에는 rect_slice_flag==0이므로 loop_filter_across_slices_enabled_flag가 시그널링 및 복호화된다.
실시예를 달리하여, 미리 설정된 조건에는 슬라이스의 모드가 직사각형 슬라이스 모드인지 여부, 슬라이스에 하나 이상의 타일/브릭이 포함되는지 여부 및 타일/브릭들 간 경계에 인-루프 필터링이 적용되는지 여부 중에서, 하나 이상이 포함될 수도 있다.
예를 들어, 도 15에 나타낸 바와 같이, 미리 설정된 조건에는 슬라이스의 모드가 직사각형 슬라이스 모드인지 여부(rect_slice_flag), 슬라이스에 하나 이상의 타일/브릭이 포함되는지 여부(single_brick_per_slice_flag) 및, 타일/브릭들 간 경계에 인-루프 필터링이 적용되는지 여부(loop_filter_across_bricks_enabled_flag)가 모두 포함될 수 있다.
이 경우, 슬라이스의 모드가 직사각형 슬라이스 모드이고, 슬라이스에 하나 이상의 타일/브릭이 포함되며, 타일/브릭들 간 경계에 인-루프 필터링이 적용되는 경우에(rect_slice_flag==1 && single_brick_per_slice_flag==0 && loop_filter_across_bricks_enabled_flag==1), loop_filter_across_slices_enabled_flag가 시그널링 및 복호화된다. 도 15에 나타낸 미리 설정된 조건에 대한 신택스 구조가 표 5에 나타나 있다.
도 12 (b)의 경우에 single_brick_per_slice_flag==1이므로 loop_filter_across_slices_enabled_flag가 시그널링 및 복호화되지 않는다. 이는, 타일/브릭과 슬라이스 간의 분할 관계가 1:1의 관계이므로(모든 경계선이 일치하므로), 슬라이스 경계선에 대한 loop_filter_across_slices_enabled_flag를 별도로 시그널링할 필요가 없기 때문이다.
도 12 (c)의 경우에 rect_slice_flag==1, single_brick_per_slice_flag==0 및 loop_filter_across_bricks_enabled_flag==1이므로, loop_filter_across_slices_enabled_flag가 시그널링된다. 도 12 (d) 및 (e)의 경우에 rect_slice_flag==0이므로, loop_filter_across_slices_enabled_flag가 시그널링되지 않는다. 여기서, 도 12 (d)와 같은 all:1의 분할 관계의 경우에는 슬라이스 경계선이 픽처 경계선과 일치하므로, 슬라이스 경계선에 대한 loop_filter_across_slices_enabled_flag를 별도로 시그널링할 필요가 없기 때문이다.
실시예를 달리하여, 도 16에 나타낸 바와 같이, 미리 설정된 조건에는 슬라이스에 하나 이상의 타일/브릭이 포함되는지 여부(single_brick_per_slice_flag) 및 타일/브릭들 간 경계에 인-루프 필터링이 적용되는지 여부(loop_filter_across_bricks_enabled_flag)가 포함될 수 있다.
이 경우, 슬라이스에 하나 이상의 타일/브릭이 포함되며, 타일/브릭들 간 경계에 인-루프 필터링이 적용되는 경우에(single_brick_per_slice_flag==0 && loop_filter_across_bricks_enabled_flag==1), loop_filter_across_slices_enabled_flag가 시그널링 및 복호화된다.
도 16에 나타낸 미리 설정된 조건에 대한 신택스 구조가 표 8에 나타나 있다.
Figure PCTKR2020012769-appb-img-000008
도 12 (b)의 경우에 single_brick_per_slice_flag==1이므로 loop_filter_across_slices_enabled_flag가 시그널링되지 않는다. 도 12 (c) 내지 (e)의 경우에 single_brick_per_slice_flag==0 및 loop_filter_across_bricks_enabled_flag==1이므로, loop_filter_across_slices_enabled_flag가 시그널링된다.
실시예를 달리하여, 도 17에 나타낸 바와 같이, 미리 설정된 조건에는 픽처 내 슬라이스의 개수가 복수 개인지 여부(num_slices_in_pic_minus1), 슬라이스의 모드가 직사각형 슬라이스 모드인지 여부(rect_slice_flag), 슬라이스에 하나 이상의 타일/브릭이 포함되는지 여부(single_brick_per_slice_flag) 및 타일/브릭들 간 경계에 인-루프 필터링이 적용되는지 여부(loop_filter_across_bricks_enabled_flag)가 포함될 수 있다.
이 경우, 타일/브릭들 간 경계에 인-루프 필터링이 적용되고, 슬라이스에 하나 이상의 타일/브릭이 포함되며, 슬라이스의 모드가 직사각형 슬라이스 모드가 아닌 경우에(loop_filter_across_bricks_enabled_flag==1 && single_brick_per_slice_flag==0 && rect_slice_flag==0), loop_filter_across_slices_enabled_flag가 시그널링 및 복호화된다.
혹은, 타일/브릭들 간 경계에 인-루프 필터링이 적용되고, 슬라이스에 하나 이상의 타일/브릭이 포함되며, 슬라이스의 모드가 직사각형 슬라이스 모드이면서, 픽처 내 슬라이스의 개수가 복수 개인 경우에(loop_filter_across_bricks_enabled_flag==1 && single_brick_per_slice_flag==0 && rect_slice_flag==1 && num_slices_in_pic_minus1 > 0), loop_filter_across_slices_enabled_flag가 시그널링 및 복호화된다.
도 17에 나타낸 미리 설정된 조건에 대한 신택스 구조가 표 9에 나타나 있다.
Figure PCTKR2020012769-appb-img-000009
도 17의 미리 설정된 조건을 표 7에 나타낸 슬라이스 설정을 적용하면, 인에이블 플래그의 시그널링 여부가 다음과 같이 결정될 수 있다. 도 12 (b)의 경우에 single_brick_per_slice_flag==1이므로 loop_filter_across_slices_enabled_flag가 시그널링되지 않는다. 도 12 (c) 및 (e)의 경우에 loop_filter_across_bricks_enabled_flag==1, single_brick_per_slice_flag==0, rect_slice_flag==1 및 num_slices_in_pic_minus1 > 0이므로 loop_filter_across_slices_enabled_flag가 시그널링된다. 도 12 (d)의 경우에 num_slices_in_pic_minus1==0이므로 loop_filter_across_slices_enabled_flag가 시그널링되지 않는다.
실시예 3
실시예 3은 픽처를 서브픽처로 분할하는 방법(서브픽처 분할정보를 획득하는 방법)이다. 실시예 3에 대한 일 예가 도 18에 나타나 있다.
영상 부호화 장치는 픽처를 미리 결정된 크기를 가지는 복수 개의 CTU들로 분할한 후에, CTU의 사이즈 정보(CTU 사이즈 정보)를 부호화하여 영상 복호화 장치로 시그널링한다. 또한, 영상 부호화 장치는 CTU를 트리 구조를 이용하여 CU들로 분할한 후에, CU의 최소 사이즈 정보(MinCb 사이즈 정보)를 부호화하여 영상 복호화 장치로 시그널링한다. MinCb 사이즈 정보는 비트스트림의 SPS 레벨, PPS 레벨, 슬라이스 헤더 레벨 중에서 하나 이상의 위치에서 정의되어 시그널링될 수 있다.
영상 부호화 장치는 픽처를 복수 개의 서브픽처들로 분할한다. 픽처는 CTU 사이즈 정보로부터 유도되는 CTU의 사이즈를 기본 단위로 하여 서브픽처로 분할되거나, MinCb 사이즈 정보로부터 유도되는 MinCb의 사이즈를 기본 단위로 하여 서브픽처로 분할될 수 있다.
따라서, 서브픽처 분할정보는 픽처 내 서브픽처들을 CTU의 사이즈 단위로 표현하거나, 픽처 내 서브픽처들을 MinCb의 사이즈 단위로 표현할 수 있다. 서브픽처 분할정보에는 서브픽처 각각의 위치를 나타내는 서브픽처 위치정보와 서브픽처 각각의 크기를 나타내는 서브픽처 사이즈 정보가 포함될 수 있다. 서브픽처 위치정보는 서브픽처의 픽처 내 위치를 CTU의 사이즈 단위 또는 MinCb의 사이즈 단위로 표현할 수 있다. 서브픽처 사이즈 정보도 서브픽처의 크기를 CTU의 사이즈 단위 또는 MinCb의 사이즈 단위로 표현할 수 있다.
복호화부(410)는 CTU 사이즈 정보 및 MinCb 사이즈 정보를 비트스트림으로부터 복호화한다(S1810). 또한, 복호화부(410)는 서브픽처 분할정보를 비트스트림으로부터 복호화한다(S1820).
복호화부(410)는 CTU 사이즈 정보에 기초하여 픽처를 CTU들로 분할하고, 서브픽처 분할정보에 기초하여 픽처를 서브픽처로 분할한다(S1830).
종래 서브픽처 분할 방법은 서브픽처를 4개의 샘플 단위로 표현하였다. 즉, 종래 서브픽처 분할 방법은 서브픽처의 분할 단위로 4의 배수를 이용하였다. 그러나, 앞서 설명된 바와 같이, 픽처는 다수 개의 CTU들로 분할되고, 하나 이상의 CTU들을 포함하는 타일/브릭으로 분할되며, 하나 이상의 타일/브릭을 포함하는 슬라이스로 분할될 수 있고, 하나 이상의 슬라이스를 포함하는 서브픽처로 분할될 수 있다. 따라서, 타일/브릭, 슬라이스 및 서브픽처는 CTU 사이즈 단위로(CTU의 배수 단위로) 표현되는 것이 가장 효율적일 수 있다. 따라서, 실시예 3에 따라 서브픽처를 CTU 사이즈 단위로 표현하는 경우에, 효율적인 서브픽처 분할이 구현될 수 있다.
실시형태에 따라, 서브픽처 분할정보는 서브픽처를 CTU 사이즈 단위 또는 MinCb 사이즈 단위로 직접적으로 표현하거나 간접적으로 표현할 수도 있다. 여기서, 간접적인 표현 방법은 다른 하위 유닛을 통해 CTU와 서브픽처 사이를 연결하는 것이다. 다른 하위 유닛은 그리드(grid)이며, 이 그리드가 CTU의 사이즈 단위로 표현되고, 서브픽처가 그리드의 사이즈 단위로 표현됨으로써, 결과적으로 서브픽처가 CTU의 사이즈 단위로 표현될 수 있다.
간접적인 표현 방법에 대한 일 예가 도 19에 나타나 있으며, 간접적인 표현 방법에 대한 신택스 구조가 표 10에 나타나 있다.
Figure PCTKR2020012769-appb-img-000010
영상 부호화 장치는 서브픽처 분할이 수행되는지 여부(서브픽처 파라미터들이 비트스트림 내에 존재하는지 여부)를 판단하고, 판단 결과를 subpics_present_flag 신택스 요소의 값으로 설정한다. subpics_present_flag==1은 서브픽처 분할이 수행됨을 나타내며, subpics_present_flag==0은 서브픽처 분할이 수행되지 않음을 나타낸다.
영상 부호화 장치는 subpics_present_flag==1인 경우에, 서브픽처의 최대 개수를 나타내는 신택스 요소인 max_subpics_minus1, 그리드 열의 너비를 CTU의 사이즈 단위 또는 MinCb 사이즈 단위로 나타내는 신택스 요소인 subpic_grid_col_width_minus1 및, 그리드 행의 높이를 CTU의 사이즈 단위 또는 MinCb 사이즈 단위로 나타내는 신택스 요소인 subpic_grid_row_height_minus1를 부호화하여 영상 복호화 장치로 시그널링한다.
max_subpics_minus1은 서브픽처의 최대 개수에서 1을 뺀 값을 나타내며, subpic_grid_col_width_minus1은 그리드 열의 너비에서 1을 뺀 값을 나타내고, subpic_grid_row_height_minus1은 그리드 행의 높이에서 1을 뺀 값을 나타낸다.
영상 부호화 장치는 서브픽처 인덱스(subpic_grid_idx[i][j])를 부호화하여 영상 복호화 장치로 시그널링한다. 서브픽처 인덱스는 그리드들 각각이 속하는 서브픽처의 인덱스를 나타내며, 서브픽처 인덱스를 통해 어떠한 그리드가 어떠한 서브픽처에 속하는지 여부가 결정될 수 있다.
복호화부(410)는 비트스트림으로부터 subpics_present_flag를 복호화하고(S1910), subpics_present_flag의 값을 판단한다(S1920).
복호화부(410)는 subpics_present_flag==1인 경우에 max_subpics_minus1, subpic_grid_col_width_minus1 및, subpic_grid_row_height_minus1를 비트스트림으로부터 복호화한다(S1930).
그리드들은 고정된 너비와 높이를 가지므로, subpic_grid_col_width_minus1를 이용하여 그리드 열의 개수(i)가 유도될 수 있으며, subpic_grid_row_height_minus1를 이용하여 그리드 행의 개수(j)가 유도될 수 있다. 결국, subpic_grid_col_width_minus1 및 subpic_grid_row_height_minus1를 이용하여 픽처가 그리드들로 분할될 수 있다.
복호화부(410)는 서브픽처 인덱스를 비트스트림으로부터 복호화하고(S1940), 그리드들 중에서 같은 서브픽처 인덱스가 할당된 그리드들을 하나의 서브픽처로 결정하는 과정을 통해, 픽처를 서브픽처로 분할할 수 있다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
CROSS-REFERENCE TO RELATED APPLICATION
본 특허출원은, 본 명세서에 그 전체가 참고로서 포함되는, 2019년 9월 27일에 한국에 출원한 특허출원번호 제10-2019-0119353호 및, 2020년 9월 7일에 한국에 출원한 특허출원번호 제10-2020-0113632호에 대해 우선권을 주장한다.

Claims (9)

  1. 픽처로부터 분할되는 하위 유닛들에 대한 정보를 획득하는 방법으로서,
    비트스트림으로부터, 상기 픽처 내 코딩 트리 유닛(coding tree unit, CTU)들의 사이즈(size)를 나타내는 CTU 사이즈 정보를 복호화하는 단계;
    상기 픽처 내 서브픽처들을 상기 CTU의 사이즈 단위로 표현하는 서브픽처 분할정보를 상기 비트스트림으로부터 복호화하는 단계;
    상기 픽처 내 하나 이상의 타일들의 분할정보를 상기 비트스트림으로부터 복호화하는 단계; 및
    상기 픽처 내 하나 이상의 슬라이스들의 분할정보를 상기 비트스트림으로부터 복호화하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 서브픽처 분할정보는,
    상기 서브픽처들 각각의 사이즈를 상기 CTU의 사이즈 단위로 표현하는 서브픽처 사이즈 정보를 포함하는, 방법.
  3. 제1항에 있어서,
    미리 설정된 조건에 의존하여, 상기 슬라이스의 경계에서 필터링이 수행되는지 여부를 지시하는 인에이블 플래그를 상기 비트스트림으로부터 복호화하는 단계를 더 포함하고,
    상기 미리 설정된 조건은,
    상기 슬라이스의 개수가 복수 개인지 여부 및, 상기 슬라이스의 모드가 직사각형 슬라이스 모드인지 여부 중에서, 하나 이상을 포함하는, 방법.
  4. 제3항에 있어서,
    상기 인에이블 플래그를 복호화하는 단계는,
    상기 슬라이스의 개수가 복수 개이거나 상기 슬라이스의 모드가 직사각형 슬라이스 모드가 아닌 경우에, 상기 인에이블 플래그를 복호화하는, 방법.
  5. 영상 복호화 장치로서,
    픽처로부터 분할되는 하위 유닛들에 대한 정보를 비트스트림으로부터 획득하는 복호화부; 및
    상기 하위 유닛들에 대한 정보에 기초하여, 상기 픽처를 복원하는 픽처 복원부를 포함하고,
    상기 복호화부는,
    상기 픽처 내 코딩 트리 유닛(coding tree unit, CTU)들의 사이즈(size)를 나타내는 CTU 사이즈 정보를 상기 비트스트림으로부터 복호화하고, 상기 픽처 내 서브픽처들을 상기 CTU의 사이즈 단위로 표현하는 서브픽처 분할정보를 상기 비트스트림으로부터 복호화하며, 상기 픽처 내 하나 이상의 타일들의 분할정보를 상기 비트스트림으로부터 복호화하고, 상기 픽처 내 하나 이상의 슬라이스들의 분할정보를 상기 비트스트림으로부터 복호화하는, 장치.
  6. 제5항에 있어서,
    상기 서브픽처 분할정보는,
    상기 서브픽처들 각각의 사이즈를 상기 CTU의 사이즈 단위로 표현하는 서브픽처 사이즈 정보를 포함하는, 장치.
  7. 제5항에 있어서,
    상기 복호화부는,
    미리 설정된 조건에 의존하여, 상기 슬라이스의 경계에서 필터링이 수행되는지 여부를 지시하는 인에이블 플래그를 상기 비트스트림으로부터 더 복호화하고,
    상기 미리 설정된 조건은,
    상기 슬라이스의 개수가 복수 개인지 여부 및, 상기 슬라이스의 모드가 직사각형 슬라이스 모드인지 여부 중에서, 하나 이상을 포함하는, 장치.
  8. 제7항에 있어서,
    상기 복호화부는,
    상기 슬라이스의 개수가 복수 개이거나 상기 슬라이스의 모드가 직사각형 슬라이스 모드가 아닌 경우에, 상기 인에이블 플래그를 복호화하는, 장치.
  9. 영상 부호화 장치로서,
    픽처를 하위 유닛들로 분할하고, 상기 픽처를 부호화하는 픽처 부호부; 및
    상기 하위 유닛들에 대한 정보를 부호화하는 부호화부를 포함하고,
    상기 부호화부는,
    상기 픽처 내 코딩 트리 유닛(coding tree unit, CTU)들의 사이즈(size)를 나타내는 CTU 사이즈 정보를 부호화하고, 상기 픽처 내 서브픽처들을 상기 CTU의 사이즈 단위로 표현하는 서브픽처 분할정보를 부호화하며, 상기 픽처 내 하나 이상의 타일들의 분할정보를 부호화하고, 상기 픽처 내 하나 이상의 슬라이스들의 분할정보를 부호화하는, 장치.
PCT/KR2020/012769 2019-09-27 2020-09-22 픽처로부터 분할되는 하위 유닛들에 대한 정보를 획득하는 방법 및 장치 WO2021060802A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/763,751 US20220345702A1 (en) 2019-09-27 2020-09-22 Method and apparatus for acquiring information about sub-units split from picture
CN202080082074.8A CN114747213A (zh) 2019-09-27 2020-09-22 用于获取关于从画面拆分的子单元的信息的方法和装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2019-0119353 2019-09-27
KR20190119353 2019-09-27
KR10-2020-0113632 2020-09-07
KR1020200113632A KR20210037538A (ko) 2019-09-27 2020-09-07 픽처로부터 분할되는 하위 유닛들에 대한 정보를 획득하는 방법 및 장치

Publications (1)

Publication Number Publication Date
WO2021060802A1 true WO2021060802A1 (ko) 2021-04-01

Family

ID=75165887

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/012769 WO2021060802A1 (ko) 2019-09-27 2020-09-22 픽처로부터 분할되는 하위 유닛들에 대한 정보를 획득하는 방법 및 장치

Country Status (3)

Country Link
US (1) US20220345702A1 (ko)
CN (1) CN114747213A (ko)
WO (1) WO2021060802A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015073213A (ja) * 2013-10-03 2015-04-16 シャープ株式会社 画像復号装置、画像符号化装置、符号化データ変換装置、および、注目領域表示システム
US20180020222A1 (en) * 2016-07-12 2018-01-18 Mediatek Inc. Apparatus and Method for Low Latency Video Encoding
KR20190083959A (ko) * 2018-01-05 2019-07-15 에스케이텔레콤 주식회사 크로마 블록의 복원 방법 및 이를 이용한 영상 복호화 장치
KR20190106804A (ko) * 2018-03-09 2019-09-18 한국전자통신연구원 샘플 필터링을 이용한 영상 부호화/복호화 방법 및 장치

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10419768B2 (en) * 2016-03-30 2019-09-17 Qualcomm Incorporated Tile grouping in HEVC and L-HEVC file formats
CN116866565A (zh) * 2018-03-21 2023-10-10 Lx 半导体科技有限公司 图像编码/解码方法、存储介质以及图像数据的传输方法
JP2020061701A (ja) * 2018-10-12 2020-04-16 シャープ株式会社 動画像符号化装置および動画像復号装置
US20200162736A1 (en) * 2018-11-15 2020-05-21 Electronics And Telecommunications Research Institute Method and apparatus for image processing using quantization parameter
US11570442B2 (en) * 2019-06-05 2023-01-31 Qualcomm Incorporated Reducing motion field storage for prediction of video data using non-rectangular prediction modes
US11363307B2 (en) * 2019-08-08 2022-06-14 Hfi Innovation Inc. Video coding with subpictures
EP4032263A4 (en) * 2019-10-10 2023-05-17 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR HARMONIZING A TRIANGULAR BLDING MODE WITH WEIGHTED PREDICTION
US11785214B2 (en) * 2019-11-14 2023-10-10 Mediatek Singapore Pte. Ltd. Specifying video picture information
US20210176475A1 (en) * 2019-12-05 2021-06-10 Mediatek Inc. Specifying Layout In Video Pictures

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015073213A (ja) * 2013-10-03 2015-04-16 シャープ株式会社 画像復号装置、画像符号化装置、符号化データ変換装置、および、注目領域表示システム
US20180020222A1 (en) * 2016-07-12 2018-01-18 Mediatek Inc. Apparatus and Method for Low Latency Video Encoding
KR20190083959A (ko) * 2018-01-05 2019-07-15 에스케이텔레콤 주식회사 크로마 블록의 복원 방법 및 이를 이용한 영상 복호화 장치
KR20190106804A (ko) * 2018-03-09 2019-09-18 한국전자통신연구원 샘플 필터링을 이용한 영상 부호화/복호화 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
M. PETTERSSON (ERICSSON), R. SJÖBERG (ERICSSON), M. DAMGHANIAN (ERICSSON): "AHG12: Multiple tile partitions in PPS", 16. JVET MEETING; 20191001 - 20191011; GENEVA; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), no. JVET-P0364, 24 September 2019 (2019-09-24), XP030217079 *

Also Published As

Publication number Publication date
CN114747213A (zh) 2022-07-12
US20220345702A1 (en) 2022-10-27

Similar Documents

Publication Publication Date Title
WO2018217024A1 (ko) 다양한 블록 크기를 지원하는 영상 부호화 또는 복호화를 위한 장치 및 방법
WO2021145687A1 (ko) 서브 픽처 및 픽처 헤더에 관한 정보를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021060804A1 (ko) 크로마블록의 잔차블록 복원 방법 및 복호화 장치
WO2021162494A1 (ko) 필터 가용 정보를 선택적으로 시그널링 하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020242181A1 (ko) 인트라 모드 후보 구성 방법 및 영상 복호화 장치
WO2021060801A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020242182A1 (ko) 인트라 예측 모드를 유도하는 방법 및 장치
WO2018070723A1 (ko) 영상의 부호화/복호화 방법 및 이를 위한 장치
WO2020138958A1 (ko) 양방향 예측 방법 및 영상 복호화 장치
WO2020122573A1 (ko) 필터링 방법 및 영상 복호화 장치
WO2016204479A1 (ko) 영상의 부호화/복호화 방법 및 이를 위한 장치
WO2023038447A1 (ko) 비디오 부호화/복호화 방법 및 장치
WO2021071186A1 (ko) 픽처 분할 방법 및 복호화 장치
WO2021060802A1 (ko) 픽처로부터 분할되는 하위 유닛들에 대한 정보를 획득하는 방법 및 장치
WO2021125751A1 (ko) 임의의 모양으로 분할되는 블록을 예측하는 방법 및 복호화 장치
WO2017078450A1 (ko) 영상 코딩 시스템에서 영상 디코딩 방법 및 장치
WO2021091255A1 (ko) 영상/비디오 코딩을 위한 상위 레벨 신택스 시그널링 방법 및 장치
WO2020076049A1 (ko) 양자화된 변환 계수들의 부호화 및 복호화를 위한 방법 및 장치
WO2020122574A1 (ko) 코딩 툴 설정 방법 및 영상 복호화 장치
WO2022108422A1 (ko) 적응적 참조화소 선택을 이용한 영상 부호화 및 복호화 방법
WO2020263009A1 (ko) 해상도를 적응적으로 설정하는 방법 및 영상 복호화 장치
WO2022108421A1 (ko) 적응적 대체 모드를 이용한 영상 부호화 및 복호화 방법
WO2020231220A1 (ko) 동영상 데이터의 병렬 부호화 및 복호화를 위한 방법 및 장치
WO2022177317A1 (ko) 서브블록 분할 기반 인트라 예측을 이용하는 비디오 코딩방법 및 장치
WO2022108417A1 (ko) 서브블록단위 인트라 예측을 이용하는 영상 부호화 및 복호화 방법과 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20869130

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20869130

Country of ref document: EP

Kind code of ref document: A1