WO2019078693A1 - Apparatus and method for image encoding or decoding - Google Patents

Apparatus and method for image encoding or decoding Download PDF

Info

Publication number
WO2019078693A1
WO2019078693A1 PCT/KR2018/012477 KR2018012477W WO2019078693A1 WO 2019078693 A1 WO2019078693 A1 WO 2019078693A1 KR 2018012477 W KR2018012477 W KR 2018012477W WO 2019078693 A1 WO2019078693 A1 WO 2019078693A1
Authority
WO
WIPO (PCT)
Prior art keywords
scan pattern
current block
transform coefficients
block
scan
Prior art date
Application number
PCT/KR2018/012477
Other languages
French (fr)
Korean (ko)
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 KR1020180001860A external-priority patent/KR102628530B1/en
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Publication of WO2019078693A1 publication Critical patent/WO2019078693A1/en

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/124Quantisation
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/184Methods 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 bits, e.g. of the compressed video stream

Definitions

  • the present invention relates to image encoding or decoding for efficiently encoding an image. More particularly, to scanning techniques performed on transform coefficients.
  • the HEVC standard supports three types of scan patterns that are used to encode blocks of transform coefficients.
  • 1 is a diagram showing exemplary scan patterns used for encoding a square (8x8) coefficient block. 1 (a) shows an up-right diagonal scan pattern, (b) a horizontal scan pattern, and (c) shows a vertical scan pattern.
  • the scan order for the sub-blocks in the coefficient block is the same as the scan order for the coefficients in each sub-block.
  • the scan sequence of the sub-blocks is also the horizontal direction
  • the scan sequence of the coefficients in each sub-block is also the horizontal direction.
  • the sequence in the actual bit stream is the reverse of the scan pattern.
  • a sub-block significant flag is a flag expressed for 4x4 subblocks preceding the last valid subblock where the last non-zero coefficient on the scan pattern for the coefficient block (i.e., the last significant coefficient) Quot; 0 " if all coefficients in the subblock are zero, and " 1 " if there is more than one nonzero coefficient.
  • Sub-block significant flags are not signaled for left-ordered subblocks containing DC components.
  • the gray marked pixels represent non-zero coefficients (i.e., effective coefficients)
  • the black marked pixels represent the last non-zero coefficients on the scan pattern (i.e., the last effective coefficients)
  • Pixels are all coefficients having a zero value.
  • a sub-block significant flag must be signaled for eight subblocks (subblocks marked in FIG. 3 (a)), thus 8 bits are required.
  • a sub-block significant flag should be signaled for two subblocks (subblocks highlighted in FIG. 3 (b)), thus requiring two bits.
  • HEVC when a given block is coded in an inter prediction scheme, the block of transform coefficients associated with the block is scanned in a diagonal scan pattern.
  • Some intra coding modes often generate distributions of significant coefficients biased toward the left vertical edge of the block or towards the top edge of the block. Therefore, in many cases, it is advantageous that the coefficients of the block predicted in the horizontal axis mode are scanned in the vertical scan pattern, and the coefficients of the block predicted in the vertical axis mode are scanned in the horizontal scan pattern.
  • a vertical scan pattern is used for some intra prediction modes (mode numbers 6 to 14)
  • horizontal scan patterns are used for some other intra prediction modes (mode numbers 22 to 30)
  • diagonal scan patterns are used. That is, when a given block is coded in the intra prediction mode, one of the three scan patterns is selected according to the intra prediction mode, and the coefficients of the corresponding block are scanned.
  • the scan pattern of the coefficient block related to the block is determined according to the intra prediction mode. Furthermore, in signaling which intra prediction mode is used, the intra prediction mode number is signaled in the form of an MPM index value or a non-MPM index value without signaling the number (or index) of the intra prediction mode used. Therefore, it is necessary to know the MPM and non-MPM configuration information of the corresponding block to know the actual intra prediction mode of the corresponding block. In order to know the MPM and non-MPM information of the corresponding block, In order to know the intra prediction mode of the block, the neighboring block information of the neighboring block must be known.
  • the syntax elements can not be parsed until the intra prediction mode is determined. That is, the parsing of the syntax elements related to the transform coefficients is delayed until the intra-prediction mode of the neighboring block of the given block or the neighboring block of the neighboring block is determined.
  • a method of determining a scan pattern to be applied to transform coefficients of a current block in an image decoding process comprising: determining whether a current block is coded in an intra- ; Comparing a width and a height of the current block with each other when the current block is coded in an intra prediction mode; And if the current block is a vertically long rectangle, a vertical scan pattern is determined as a scan pattern to be applied to the transform coefficients, and if the current block is a horizontally long rectangle, a horizontal scan pattern is used as a scan pattern to be applied to the transform coefficients And if the block of transform coefficients is square, determining a diagonal scan pattern as a scan pattern to be applied to the transform coefficients.
  • an apparatus for determining a scan pattern to be applied to transform coefficients of a current block in an image decoding process comprising a memory and one or more processors configured to perform the following steps.
  • the one or more processors determine whether a current block is coded in an intra prediction or an inter prediction; Comparing a width and a height of the current block with each other when the current block is coded in an intra prediction mode; And if the current block is a vertically long rectangle, a vertical scan pattern is determined as a scan pattern to be applied to the transform coefficients, and if the current block is a horizontally long rectangle, a horizontal scan pattern is used as a scan pattern to be applied to the transform coefficients And if the block of transform coefficients is square, determining a diagonal scan pattern as a scan pattern to be applied to the transform coefficients.
  • a method of determining a scan pattern to be applied to transform coefficients of a current block in an image decoding process comprising parsing a syntax element indicating a position of a last valid coefficient in a block of the transform coefficients ; Determining whether a position of the last significant coefficient is greater than a preset threshold value; Parsing a syntax element indicating a scan pattern for a one-dimensional array of the transform coefficients from a plurality of available scan patterns if the position of the last effective coefficient is greater than a predetermined threshold; And determining a scan pattern set as a default among the plurality of available scan patterns as a scan pattern for the one-dimensional array of the transform coefficients if the position of the last effective coefficient is not greater than a preset threshold value do.
  • an apparatus for determining a scan pattern to be applied to transform coefficients of a current block in an image decoding process comprising a memory and one or more processors configured to perform the following steps .
  • the one or more processors parsing a syntax element indicating a location of a last significant coefficient within a block of transform coefficients; Determining whether a position of the last significant coefficient is greater than a preset threshold value; Parsing a syntax element indicating a scan pattern for a one-dimensional array of the transform coefficients from a plurality of available scan patterns if the position of the last effective coefficient is greater than a predetermined threshold; And determining a scan pattern set as a default among the plurality of available scan patterns as a scan pattern for the one-dimensional array of the transform coefficients if the position of the last effective coefficient is not greater than a predetermined threshold value.
  • 1 is a diagram showing exemplary scan patterns used for encoding a square (8x8) coefficient block.
  • FIG. 2 shows an example of a 16-by-16 coefficient block in which there are three non-zero coefficients.
  • FIG. 3 is a view for explaining the number of subblocks to be signaled whether the subblock is a valid subblock for the 16 ⁇ 16 coefficient block of FIG.
  • FIG. 4 is a block diagram of an image encoding apparatus capable of implementing the techniques of the present disclosure.
  • 5 is an illustration of block partitioning using a QTBT structure.
  • FIG. 6 shows an example of a plurality of intra prediction modes.
  • FIG. 7 is an exemplary view of neighboring blocks of the current block.
  • Fig. 8 is a diagram showing exemplary scan patterns used for encoding non-square (8 x 16 or 16 x 8) coefficient blocks.
  • FIG. 9 is a block diagram showing an example of an entropy encoding unit used in the image encoding apparatus of FIG.
  • FIG. 10 illustrates an image decoding apparatus capable of implementing the techniques of the present disclosure.
  • FIG. 11 is a block diagram showing an example of an entropy decoding unit used in the video decoding apparatus of FIG.
  • FIG. 12 is a flowchart illustrating a method of determining a scan pattern by the image decoding apparatus according to an embodiment of the present invention.
  • FIG. 13 is a flowchart illustrating a method of determining a scan pattern by an image decoding apparatus according to another embodiment of the present invention.
  • a horizontally long rectangular block has a strong tendency to be encoded in the intra-prediction mode in the vertical axis direction (since the intra-prediction is more accurate from the reference pixel), and the vertically long rectangular block has a strong It is noted that there is a strong tendency to be encoded in the intra prediction mode. Note also that the intra-prediction mode in the vertical axis generates distributions of the effective coefficients, which are often biased towards the upper horizontal edge, while the intra-prediction mode in the horizontal direction generates distributions of the effective coefficients biased towards the left vertical edge .
  • the block of transversal rectangular rectangular transform coefficients is advantageously scanned in the horizontal scan pattern, and the block of vertically long rectangle transform coefficients is scanned in the vertical scan pattern.
  • the scan pattern in some scanning techniques, in determining a scan pattern for a block of transform coefficients of an intra-predicted block, the scan pattern may be in the form of a block (e.g., a horizontally long rectangle, a vertically long rectangle, . That is, the scan pattern is determined according to the type of the current block.
  • Some other scanning techniques described below are to explicitly signal the actually applied scan pattern among a plurality of available scan patterns (e.g., diagonal, horizontal, and vertical scan patterns). For example, by comparing the results of applying the plurality of available scan patterns in terms of compression and / or image quality, a desired scan pattern can be determined in the image encoding apparatus.
  • the scan pattern selected by the image encoding apparatus may be transmitted to the image decoding apparatus as an index in the bitstream (for example, as a block level syntax).
  • the scan pattern used to scan the quantized transform coefficients associated with the current block is no longer dependent on the intra prediction mode applied to the current block (and thus the previously decoded data block) Do not have.
  • the decoding apparatus can perform a process of determining the intra prediction mode and a process of reconstructing a block of two-dimensional transform coefficients according to a scan pattern in parallel.
  • FIG. 4 is a block diagram of an image encoding apparatus capable of implementing the techniques of the present disclosure.
  • the image encoding apparatus includes a block division unit 410, a prediction unit 420, a subtractor 430, a transform unit 440, a quantization unit 445, an entropy encoding unit 450, an inverse quantization unit 460, An adder 470, a filter unit 480 and a memory 490.
  • Each component of the image encoding apparatus may be embodied as a hardware chip, or may be embodied as software, and the microprocessor may be implemented to execute the function of the software corresponding to each component.
  • One video is composed of a plurality of pictures. Each picture is divided into a plurality of areas and coding is performed for each area. For example, one picture is divided into one or more slices or / and tiles, and each slice or tile is divided into one or more CTU (Coding Tree Unit). Each CTU is divided into one or more CUs (Coding Units) by a tree structure. The information applied to each CU is encoded as a syntax of the CU, and the information commonly applied to the CUs included in one CTU is encoded as the syntax of the CTU.
  • information that is commonly applied to all blocks in one slice is encoded as a syntax of a slice, and information applied to all blocks constituting one picture is encoded into a picture parameter set (PPS) .
  • PPS picture parameter set
  • information that is commonly referred to by a plurality of pictures is encoded into a sequence parameter set (SPS).
  • SPS sequence parameter set
  • VPS Video Parameter Set
  • the block dividing unit 410 determines the size of the CTU (Coding Tree Unit).
  • the information on the size of the CTU (CTU size) is encoded as the syntax of the SPS or PPS and transmitted to the image decoding apparatus.
  • the block dividing unit 410 divides each picture constituting an image into a plurality of CTUs (Coding Tree Units) having a determined size, and thereafter recursively reuses the CTUs using a tree structure. .
  • a leaf node in a tree structure becomes a coding unit (CU) which is a basic unit of coding.
  • CU coding unit
  • a quad tree in which an upper node (or a parent node) is divided into four sub nodes (or child nodes) of the same size, or a binary tree in which an upper node is divided into two lower nodes , BT), or a ternary tree (TT) in which an ancestor node is divided into three subnodes at a ratio of 1: 2: 1, or a structure combining one or more of these QT structures, BT structures and TT structures have.
  • a QuadTree plus BinaryTree (QTBT) structure can be used, or a QuadTree plus BinaryTreeTernaryTree (QTBTTT) structure can be used.
  • FIG. 5 is an illustration of block partitioning using a QTBT structure.
  • FIG. 5A is an example in which a block is divided by a QTBT structure
  • FIG. 5B is a tree structure thereof.
  • the solid line represents the division by the QT structure
  • the dotted line represents the division by the BT structure.
  • 5 (b) the absence of parentheses indicates a layer of QT
  • the presence of parentheses indicates a layer of BT.
  • the numbers represent the division type information.
  • the CTU can be first divided into a QT structure.
  • the quadtree partitioning can be repeated until the size of the splitting block reaches the minimum block size (MinQTSize) of the leaf node allowed in QT.
  • the first flag (QT_split_flag) indicating whether each node of the QT structure is divided into four nodes of the lower layer is encoded by the entropy encoding unit 450 and signaled to the video decoding apparatus.
  • the leaf node of the QT is not larger than the maximum block size (MaxBTSize) of the root node allowed in BT, it can be further partitioned into a BT structure.
  • BT there may be a plurality of split types. For example, in some examples, there may be two types: a symmetric horizontal splitting and a vertically splitting type (i.e., symmetric vertical splitting) that divides a block of the node into two blocks of equal size horizontally.
  • the second flag (BT_split_flag) indicating whether each node of the BT structure is divided into blocks of the lower layer and the division type information indicating the type to be divided are encoded by the entropy encoding unit 450 and transmitted to the image decoding apparatus .
  • the block of the node may be divided into two rectangular blocks having a size ratio of 1: 3, or the block of the corresponding node may be divided into diagonal directions.
  • the leaf nodes of the QT may be divided into one or more of the BT structure or the TT structure.
  • the TT structure may also have a plurality of split types. For example, when divided, there are two types: a symmetric horizontal splitting (i.e., symmetric vertical splitting) in which a block of the node is horizontally divided into three blocks at a 1: 2: 1 ratio Can exist.
  • a flag indicating whether each node is divided into blocks of a lower layer and whether the BT structure or the TT structure is used in addition to the division type information (or dividing direction information) indicating the divided type Additional information for discrimination can be signaled to the video decoding apparatus.
  • the CU may have various sizes depending on the QTBT or QTBTTT segment from the CTU.
  • a block corresponding to a CU to be encoded or decoded i.e., a leaf node of QTBTTT
  • a 'current block' a block corresponding to a CU to be encoded or decoded
  • the prediction unit 420 generates a prediction block by predicting the current block.
  • the prediction unit 420 includes an intra prediction unit 422 and an inter prediction unit 424.
  • the intraprediction unit 422 predicts pixels in the current block using pixels (reference pixels) located around the current block in the current picture including the current block. There are a plurality of intra prediction modes according to the prediction direction, and the neighboring pixels to be used and the calculation formula are defined differently according to each prediction mode. In particular, the intra prediction unit 422 can determine an intra prediction mode to be used for coding the current block. In some examples, the intra-prediction unit 422 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 422 may calculate rate-distortion values using a rate-distortion analysis for various tested intra-prediction modes, and may employ rate- The intra prediction mode may be selected.
  • FIG. 6 shows an example of a plurality of intra prediction modes.
  • the plurality of intraprediction modes may include two non-directional modes (planar mode and DC mode) and 65 directional modes.
  • the intra-prediction unit 422 selects one intra-prediction mode from a plurality of intra-prediction modes, and predicts the current block using neighboring pixels (reference pixels) determined by the selected intra-prediction mode and an equation.
  • the information on the selected intra prediction mode is encoded by the entropy encoding unit 450 and transmitted to the image decoding apparatus.
  • the intra prediction unit 422 performs intra prediction The most probable mode (MPM) can be determined as a part of the intra prediction mode.
  • the mode information indicating whether the intra prediction mode of the current block is selected in the MPM is generated and transmitted to the entropy encoding unit 450.
  • the first intra identification information for indicating which mode of the MPM is selected as the intra prediction mode of the current block is transmitted to the entropy encoding unit 450. If the intraprediction mode of the current block is not selected among the MPMs, the entropy encoding unit 450 outputs second intra identification information for indicating which of the modes other than the MPM is selected as the intra prediction mode of the current block, .
  • the MPM list is constructed by six MPMs, but the present invention is not limited thereto.
  • the number of MPMs included in the MPM list can be selected within a range of three to ten.
  • an MPM list is constructed using an intra prediction mode of neighboring blocks of the current block.
  • the neighboring blocks are all or part of the left block L, the upper block A, the lower left block BL, the upper right block AR and the upper left block AL of the current block, for example, as shown in Fig. . ≪ / RTI >
  • the intra prediction modes of these neighboring blocks are included in the MPM list.
  • the intra prediction modes of the valid blocks in the order of the left block L, the upper block A, the lower left block BL, the upper right block AR and the upper left block AL are included in the MPM list.
  • the candidates are constructed by adding the planar mode and the DC mode to the intra prediction modes of the blocks.
  • a mode effective in the order of the left block L, the upper block A, the planar mode, the DC mode, the lower left block BL, the upper right block AR, and the upper left block AL may be added to the MPM list have.
  • a mode effective in order of the left block L, the upper block A, the planar mode, the lower left block BL, the upper right block AR, the upper left block AL, and the DC mode may be added to the MPM list have.
  • the MPM list includes only different intra prediction modes. That is, when there is a duplicated mode, only one mode is included in the MPM list.
  • the MPM may be derived by adding -1 or +1 to the directional modes in the list. If the number of MPMs in the list is smaller than the predetermined number, a number of modes are added to the MPM list in the order of vertical mode, horizontal mode, and diagonal mode. You may.
  • the predetermined number e.g. 6
  • the MPM may be derived by adding -1 or +1 to the directional modes in the list. If the number of MPMs in the list is smaller than the predetermined number, a number of modes are added to the MPM list in the order of vertical mode, horizontal mode, and diagonal mode. You may.
  • the inter-prediction unit 424 searches for a block most similar to the current block in the reference picture coded and decoded earlier than the current picture, and generates a prediction block for the current block using the searched block. Then, a motion vector corresponding to the displacement between the current block in the current picture and the prediction block in the reference picture is generated.
  • Motion information including information on a reference picture used for predicting a current block and motion vector information is encoded by an entropy encoding unit 450 and transmitted to an image decoding apparatus.
  • the subtractor 430 subtracts the prediction block generated by the intra prediction block 422 or the inter prediction block 424 from the current block to generate a residual block.
  • the transforming unit 440 transforms the residual signal in the residual block having pixel values in the spatial domain into transform coefficients in the frequency domain.
  • the transforming unit 440 may transform the residual signals in the residual block by using the size of the current block as a transform unit or divide the residual block into a plurality of smaller subblocks and transform residual signals into subblock- Conversion. There are various ways of dividing the residual block into smaller sub-blocks. For example, it may be divided into sub blocks of the same size that have been set, or a QT (quadtree) type partition using a residual block as a root node.
  • QT quadtree
  • the quantization unit 445 quantizes the transform coefficients output from the transform unit 440 and outputs the quantized transform coefficients to the entropy encoding unit 450.
  • the inverse quantization unit 460 dequantizes the quantized transform coefficients output from the quantization unit 445 to generate transform coefficients.
  • the inverse transform unit 465 transforms the transform coefficients output from the inverse quantization unit 460 from the frequency domain to the spatial domain and restores the residual block.
  • the adder 470 adds the reconstructed residual block and the prediction block generated by the predictor 420 to reconstruct the current block.
  • the pixels in the reconstructed current block are used as reference pixels when intra prediction of the next-order block is performed.
  • the filter unit 480 deblock-filters the boundaries between the restored blocks and stores them in the memory 490 in order to remove blocking artifacts caused by coding / decoding on a block-by-block basis. When all the 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 coded later.
  • the entropy encoding unit 450 encodes the quantized transform coefficients using an entropy encoding scheme such as CABAC to generate a bitstream.
  • the entropy encoding unit 450 may entropy-encode various syntax elements that are useful in decoding motion vector information and image data in the image decoding apparatus.
  • the syntax elements may include, for example, block partition information, prediction type information, intra prediction information, inter prediction information, and the like.
  • the syntax elements may also include an effective coefficient flag indicating whether certain coefficients are valid (e.g., non-zero) and an efficacy map having a last significant coefficient flag indicating whether the particular coefficient is the last significant coefficient have.
  • a scanning process is generally performed such that a two-dimensional array of coefficients in the coefficient block is transformed into an ordered one-dimensional array of transform coefficients . This scanning process is performed on the coefficient block using one of a plurality of available scan patterns. If the transform coefficients have been scanned, the entropy encoding unit 450 applies the entropy encoding to the one-dimensional array of coefficients. Scanning may be applied to encode the levels of valid (i.e., non-zero) coefficients, and to encode the signatures of significant coefficients, to encode positions of valid (i.e., non-zero) coefficients.
  • the present disclosure describes the entropy encoding unit 450 performing scanning, it is noted that other processing units (e.g., the quantization unit 460) may perform the scanning techniques of the present disclosure in other examples .
  • Fig. 8 is a diagram showing exemplary scan patterns used for encoding non-square (8 x 16 or 16 x 8) coefficient blocks. These scan patterns include a diagonal pattern (FIG. 8A), a vertical scan pattern (FIG. 8B), and a horizontal scan pattern (FIG. 8C). The illustrated scan patterns start at the left index coefficient of each coefficient block and end at the right edge coefficient. Also, in the illustrated scan patterns, the 4x4 sub-blocks in the coefficient block and the intra-sub-block coefficients have the same scan form.
  • the entropy encoding unit may include a scan pattern selection unit 910, a scan unit 920, an entropy encoding engine 930, and a scan pattern memory 940. Note that while the components 910 to 940 are shown in Fig. 9 in terms of the functional aspects of the entropy encoding unit, these components 910 to 940 may be highly integrated with each other.
  • the scan pattern selection unit 910 selects a scan pattern to be used by the scan unit 920 for the validity map scan and the coefficient level scan among the available scan patterns (e.g., diagonal, horizontal, and vertical scan patterns) .
  • the scan pattern selector 910 can determine a desired scan pattern by comparing the results of applying the available scan patterns in terms of compression and / or image quality.
  • the scan pattern selector 910 may select one scan pattern from a plurality of available scan patterns, based on prediction type, block size, conversion, or other characteristics of the encoded image .
  • the scan memory 940 may store instructions, tables, and / or data that define which scan patterns to use for particular situations.
  • the scan pattern may be a predetermined scan pattern (e.g., diagonal scanning).
  • a default scan pattern e.g., diagonal scanning
  • a predetermined threshold position e.g., half the size of the coefficient block
  • a plurality of blocks for example, a horizontally long rectangle, a vertically long rectangle, a square, or a block is larger than a predetermined threshold
  • the scan unit 920 receives a scan pattern from the scan pattern selection unit 910 and applies the received scan pattern to a block of transform coefficients to generate a one-dimensional array of coefficients from the block of transform coefficients.
  • the entropy encoding engine 930 may apply an entropy encoding process to the scanned coefficients to generate a bitstream.
  • the entropy encoding process may be applied after the coefficients have been scanned into the one-dimensional array. In other examples, the coefficients may be processed directly in a two-dimensional array (i.e., coefficient block) using a scan pattern.
  • motion vector data and various syntax elements useful for decoding the encoded image in the bitstream and the various syntax elements may be encoded within the bitstream.
  • the entropy encoding unit may provide signaling in the bitstream indicating the scan pattern used in the entropy encoding process.
  • the scan pattern may be passed to the image decoding device as an index in the bitstream (e.g., as block level syntax). If it is predetermined which scan patterns to use for certain situations, there may not be a need to provide signaling in the bitstream.
  • FIG. 10 illustrates an image decoding apparatus capable of implementing the techniques of the present disclosure.
  • the image decoding apparatus includes an entropy decoding unit 1010, an inverse quantization unit 1020, an inverse transformation unit 1030, a prediction unit 1040, an adder 1050, a filter unit 1060, and a memory 1070.
  • each component may be embodied as a hardware chip, or may be embodied as software, and a microprocessor may be implemented to execute the functions of software corresponding to each component.
  • the entropy decoding unit 1010 can reconstruct a one-dimensional array of quantized transform coefficients of the current block by applying an entropy decoding process such as CABAC to the bitstream generated by the image encoding apparatus.
  • the entropy decoding unit 1010 may regenerate motion vector data and various syntax elements, which are useful for decoding an image encoded in a bitstream by applying an entropy decoding process.
  • the entropy decoding unit 1010 extracts information on a CTU size from a high level syntax such as a sequence parameter set (SPS) or a picture parameter set (PPS) to determine the size of the CTU, Of CTU. Then, the CTU is divided into a tree structure (e.g., a QTBT structure or a QTBTTT structure) by determining the CTU as a top layer of the tree structure, i.e., a root node, and extracting partition information for the CTU. As an example, when the CTU is divided using the QTBT structure, the first flag (QT_split_flag) related to the division of the QT is first extracted and each node is divided into four nodes of the lower layer.
  • a high level syntax such as a sequence parameter set (SPS) or a picture parameter set (PPS)
  • SPS sequence parameter set
  • PPS picture parameter set
  • the CTU is divided into a tree structure (e.g., a QTBT structure
  • the second flag (BT_split_flag) and the split type (split direction) information related to the BT split are extracted and the corresponding leaf node is divided into the BT structure.
  • the first flag (QT_split_flag) related to the division of the QT is extracted and each node is divided into four nodes of the lower layer.
  • a split flag (split_flag) and a split type (or dividing direction) information indicating whether the node corresponding to the leaf node of the QT is further divided into BT or TT and additional information for distinguishing whether the BT structure or the TT structure . In this way, each node below the leaf nodes of the QT is recursively divided into BT or TT structures.
  • the entropy decoding unit 1010 extracts information on a prediction type indicating whether the current block is intra-predicted or inter-predicted.
  • the entropy decoding unit 1010 extracts a syntax element for intra prediction information (intra prediction mode) of the current block. First, the entropy decoding unit 1010 extracts mode information (i.e., MPM flag) indicating whether the intra prediction mode of the current block is selected in the MPM.
  • mode information i.e., MPM flag
  • the intra-mode encoding information indicates that the intra-prediction mode of the current block is selected from the MPM
  • the first intra-identification information for indicating which mode of the MPM is selected as the intra-prediction mode of the current block is extracted
  • the intra-mode encoding information indicates that the intra-prediction mode of the current block is not selected among the MPMs
  • the second intra-prediction mode indicating which of the modes other than the MPM is selected as the intra- And extracts the identification information.
  • the entropy decoding unit 1010 converts the one-dimensional array of the quantized transform coefficients of the current block into a scan pattern (i.e., a reverse scan pattern) for mirroring the scan pattern used by the entropy encoding unit 460 of the image encoding apparatus, And then re-transformed into blocks of quantized transform coefficients (i.e., coefficient blocks) of the two-dimensional block format.
  • a scan pattern i.e., a reverse scan pattern
  • the entropy decoding unit 1010 may determine the scan pattern based on the signaling in the encoded bitstream. For example, the entropy decoding unit 1010 may receive a syntax element that explicitly signals a scan pattern. Further, in some embodiments, the entropy decoding unit 1010 may be able to infer the scan pattern without signaling. The inference of the scan pattern may be based on other characteristics of the encoded image, such as prediction type, block size, and whether or not to convert.
  • the entropy decoding unit 1010 sets the default scan pattern (E.g., diagonal scanning) may be used.
  • the scan pattern may be a predetermined scan pattern (e.g., diagonal scan).
  • the scan pattern may be determined according to the shape of the block (e.g., a horizontally long rectangle, a vertically long rectangle, a square, or a block greater than a predetermined threshold) It can be deduced from a plurality of usable scan patterns.
  • the entropy decoding unit 1010 generates syntax elements (e.g., valid (i. E., Non-processed) coefficients related to the transform coefficients based on the determined scan pattern to reconstruct a block of two- Syntax elements for the positions of the coefficients, syntax elements for the positions of the coefficients, syntax elements for the levels of the significant coefficients, and / or syntax elements for the signs of the significant coefficients).
  • syntax elements e.g., valid (i. E., Non-processed) coefficients related to the transform coefficients based on the determined scan pattern to reconstruct a block of two- Syntax elements for the positions of the coefficients, syntax elements for the positions of the coefficients, syntax elements for the levels of the significant coefficients, and / or syntax elements for the signs of the significant coefficients).
  • the inverse quantization unit 1020 dequantizes the quantized transform coefficients and the inverse transform unit 1030 inversely transforms the inversely quantized transform coefficients from the frequency domain to the spatial domain to generate residual blocks for the current block by restoring the residual signals.
  • the prediction unit 1040 includes an intra prediction unit 1042 and an inter prediction unit 1044.
  • the intra prediction unit 1042 is activated when the intra prediction is the prediction type of the current block
  • the inter prediction unit 1044 is activated when the intra prediction is the prediction type of the current block.
  • the intra prediction unit 1042 determines an intra prediction mode of the current block among the plurality of intra prediction modes from the syntax element for the intra prediction mode extracted from the entropy decoding unit 1010, The pixels are used to predict the current block.
  • the intra prediction unit 1042 constructs an MPM list including a predetermined number of MPMs from neighboring blocks of the current block.
  • the method of constructing the MPM list is the same as that of the intra prediction unit 422 of FIG.
  • the intra prediction unit 1042 sets the intra prediction mode And selects the MPM indicated by the intra prediction mode of the current block.
  • the intra prediction mode of the current block is determined among the intra prediction modes other than the MPMs in the MPM list using the second intra identification information do.
  • the inter-prediction unit 1044 determines the motion information of the current block using the syntax element extracted from the entropy decoding unit 1010, and predicts the current block using the determined motion information.
  • the adder 1050 adds the residual block output from the inverse transform unit and the prediction block output from the inter prediction unit or the intra prediction unit to reconstruct the current block.
  • the pixels in the reconstructed current block are utilized as reference pixels for intra prediction of a block to be decoded later.
  • the filter unit 1060 deblock-filters the boundaries between the restored blocks and stores them in the memory 1070 in order to remove blocking artifacts caused by decoding on a block-by-block basis. 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 decoded later.
  • FIG. 11 is a block diagram showing an example of an entropy decoding unit 1010 used in the video decoding apparatus of FIG. 11, the entropy decoding unit may include a scan pattern selection unit 1110, a scan unit 1120, an entropy decoding engine 1130, and a scan pattern memory 1140. It should be noted that although the components 1110 to 1140 are shown in Fig. 11 in terms of the functional aspects of the entropy decoding unit, these components 1110 to 1140 may be highly integrated with each other.
  • Entropy decoding engine 1130 may apply an entropy decoding process, e.g., a CABAC process, to the bitstream to reconstruct a one-dimensional array of transform coefficients. In addition to the residual transform coefficient data, the entropy decoding engine 1130 may apply entropy decoding to the bitstream to reconstruct various syntax elements useful for decoding the encoded image in the bitstream.
  • an entropy decoding process e.g., a CABAC process
  • the scan pattern selection unit 1110 selects a scan pattern to be used by the scan unit 1120 among available scan patterns (e.g., diagonal, horizontal, and vertical scan patterns).
  • the scan pattern selector 1110 can determine the scan pattern based on the signaling in the bitstream.
  • the scan pattern selector 1110 may receive a syntax element (e.g., an index) that explicitly signals the scan pattern from the entropy decoding engine.
  • the scan pattern selector 1110 can deduce a scan pattern without receiving signaling.
  • the scan pattern may be based on prediction type, block size, whether to convert, or other characteristics of the encoded image.
  • the scan pattern may be a predetermined scan pattern (e.g., a diagonal scan).
  • a plurality of blocks e.g., a block of a long horizontal rectangle, a vertically long rectangle, a square, or a block larger than a predetermined threshold value
  • the scan pattern memory 1140 may store instructions, tables and / or data defining scan patterns.
  • the scan unit 1120 receives a scan pattern from the scan pattern selection unit 1110 and generates a block of two-dimensional transform coefficients from the one-dimensional array of the transform coefficients by applying the received scan pattern.
  • FIG. 12 is a flowchart illustrating a method of determining a scan pattern by the image decoding apparatus according to an embodiment of the present invention.
  • the method illustrated in FIG. 12 may be performed, for example, by the entropy decoding unit 1010 of the video decoding apparatus of FIG. In other instances, one or more other units of the video decoding apparatus may additionally be involved in performing the techniques of the present disclosure.
  • the video decoding apparatus entropy-decodes the bitstream received from the video encoding apparatus, extracts information related to the block division, and determines a current block to be decoded.
  • the video decoding apparatus extracts information on the prediction type from the bitstream to determine whether the current block is intra-predicted or inter-predicted (S1210).
  • the image decoding apparatus determines the diagonal scan pattern as a scan pattern to be applied to the transform coefficients of the current block (S1250).
  • the video decoding apparatus determines whether the width and height of the current block are smaller than the threshold value th (S1220). If at least one of the width and the height of the current block is not smaller than the threshold value (NO at S1220), the image decoding apparatus determines the diagonal scan pattern as a scan pattern to be applied to the transform coefficients of the current block (S1250) . If the width and height of the current block are respectively less than the threshold value (Yes in S1220), the image decoding apparatus judges whether the width and height of the current block are the same (i.e., whether the current block is a square) (S1230).
  • the image decoding apparatus determines a scan pattern to be applied to the transform coefficients of the current block (S1250).
  • the image decoding apparatus determines whether the height of the current block is greater than the width S1240) is further determined.
  • the image decoding apparatus sets the vertical scan pattern to a scan pattern (S1260).
  • the image decoding apparatus adds a horizontal scan pattern to a scan pattern (S1270).
  • the video decoding apparatus determines, based on the determined scan pattern, syntax elements relating to positions of valid coefficients (e.g., valid (i.e., non-zero) coefficients on transform coefficients, syntax elements on levels of valid coefficients , And / or syntax elements for the signs of significant coefficients).
  • valid coefficients e.g., valid (i.e., non-zero) coefficients on transform coefficients, syntax elements on levels of valid coefficients , And / or syntax elements for the signs of significant coefficients.
  • the video decoding apparatus may be configured to generate syntax elements (e.g., valid (i.e., non-zero)) for transform coefficients based on a determined scan pattern to reconstruct a block of 2-dimensional quantized transform coefficients (i.e., Syntax elements for the positions of coefficients, syntax elements for the levels of significant coefficients, and / or syntax elements for the signs of significant coefficients).
  • syntax elements e.g., valid (i.e., non-zero)
  • syntax elements e.g., valid (i.e., non-zero)
  • syntax elements e.g., valid (i.e., non-zero)
  • FIG. 13 is a flowchart illustrating a method of determining a scan pattern by an image decoding apparatus according to another embodiment of the present invention.
  • the scan pattern determination method of this embodiment uses a predetermined default scan pattern if the position of the last valid coefficient according to the scan pattern in the block of transform coefficients is sufficiently close to the position of the left offset pixel (0,0) in the transform block, (0, 0), the scan pattern selected by the image encoding apparatus among the plurality of available scan patterns is explicitly signaled.
  • the video decoding apparatus extracts, from the bit stream, information indicating the position of the last valid coefficient according to the scan pattern in the coefficient block.
  • the last effective coefficient may be identified by the variables last_significant_coeff_x and last_significant_coeff_y (S1310).
  • the video decoding apparatus determines whether the position of the last valid coefficient is larger than a preset threshold position (S1320).
  • the critical position may be a function of the width and height of the current block and may be a specific constant independent of the width and height of the current block.
  • the threshold associated with last_significant_coeff_x may be "width of current block / 2" and the threshold associated with last_signicant_coeff_y may be "height of current block / 2".
  • the image decoding apparatus sets a scan pattern (for example, diagonal scanning) set in default to a scan (S1350).
  • the image decoding apparatus parses a syntax element indicating a scan pattern selected by the encoder among the set of scan pattern candidates (S1330).
  • the image decoding apparatus determines the scan pattern indicated by the syntax element as a scan pattern to be applied to the transform coefficients of the current block.
  • the syntax element may include an index value of a scan pattern selected from a set of scan pattern candidates.
  • TU (truncated unary) coding may be used for the binarization method of representing the scan pattern. For example, diagonal scanning can be expressed as "0”, vertical scanning can be expressed as "10”, and horizontal scanning can be expressed as "11".
  • each scan pattern can be represented by a fixed length (FL) code of 2 bits.
  • each scan pattern can be represented by a fixed length (FL) code of 1 bit.
  • the image decoding apparatus generates syntax elements (e.g., valid (i. E., Valid (i. E., Valid (i. E. , Syntax elements for the positions of the coefficients, syntax elements for the levels of significant coefficients, and / or syntax elements for the signs of the significant coefficients).
  • syntax elements e.g., valid (i. E., Valid (i. E., Valid (i. E. , Syntax elements for the positions of the coefficients, syntax elements for the levels of significant coefficients, and / or syntax elements for the signs of the significant coefficients).

Landscapes

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

Abstract

The present invention relates to image encoding for efficient encoding of an image or to image decoding. More specifically, the present invention relates to scanning techniques performed on (quantized) transform coefficients. According to scanning techniques of the present disclosure, a scan pattern used for scanning quantized transform coefficients associated with a current block no longer has a dependency on a previously decoded data block (i.e., a neighboring block of a current block). Therefore, the present invention solves the problem of parsing delay of syntax elements relating to coefficients, which is generated by associating a scan pattern with an intra prediction mode.

Description

영상 부호화 또는 복호화하기 위한 장치 및 방법Apparatus and method for image encoding or decoding
본 발명은 영상을 효율적으로 부호화하기 위한 영상 부호화 또는 복호화에 관한 것이다. 보다 상세하게는, 변환 계수들에 대해 수행되는 스캐닝 기법들에 관한 것이다. The present invention relates to image encoding or decoding for efficiently encoding an image. More particularly, to scanning techniques performed on transform coefficients.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래 기술을 구성하는 것은 아니다. The contents described in this section merely provide background information on the present embodiment and do not constitute the prior art.
HEVC 표준은 변환 계수들의 블록을 부호화하는 데 이용되는 세 가지 형태의 스캔 패턴을 지원한다. 도 1은 정사각형(8×8)의 계수 블록의 부호화에 이용되는 예시적인 스캔 패턴들을 나타내는 도면이다. 도 1의 (a)는 대각(up-right diagonal) 스캔 패턴, (b) 수평(horizontal) 스캔 패턴, (c)는 수직(vertical) 스캔 패턴을 보인다. 도 1에 보인 바와 같이, 계수 블록 내 서브 블록들에 대한 스캔 순서는 각 서브 블록 내 계수들에 대한 스캔 순서와 동일한 형태이다. 예를 들어, 수평 스캔 패턴의 경우, 서브 블록들의 스캔 순서도 수평 방향이고, 각 서브 블록 내 계수들의 스캔 순서도 수평 방향이다. 다만, 실제 비트스트림에 실리는 순서는 스캔 패턴의 역순이다.The HEVC standard supports three types of scan patterns that are used to encode blocks of transform coefficients. 1 is a diagram showing exemplary scan patterns used for encoding a square (8x8) coefficient block. 1 (a) shows an up-right diagonal scan pattern, (b) a horizontal scan pattern, and (c) shows a vertical scan pattern. As shown in FIG. 1, the scan order for the sub-blocks in the coefficient block is the same as the scan order for the coefficients in each sub-block. For example, in the case of a horizontal scan pattern, the scan sequence of the sub-blocks is also the horizontal direction, and the scan sequence of the coefficients in each sub-block is also the horizontal direction. However, the sequence in the actual bit stream is the reverse of the scan pattern.
HEVC 표준에서는, 비-제로 계수들의 위치를 효율적으로 시그널링하기 위해, 몇몇 신택스 엘리먼트들이 이용된다. 예컨대, sub-block significant flag는 계수 블록에 대한 스캔 패턴 상 마지막 비-제로 계수(즉, 마지막 유효 계수)가 존재하는 마지막 유효 서브 블록에 선행하는 4×4 서브 블록들에 대해 표현되는 플래그로서, 해당 서브 블록 내 모든 계수들이 제로이면 "0", 하나 이상의 비-제로 계수가 존재하면 "1"로 표시된다. DC 성분이 포함된 좌상귀 서브 블록에 대해서는 sub-block significant flag가 시그널링되지 않는다. In the HEVC standard, several syntax elements are used to efficiently signal the location of non-zero coefficients. For example, a sub-block significant flag is a flag expressed for 4x4 subblocks preceding the last valid subblock where the last non-zero coefficient on the scan pattern for the coefficient block (i.e., the last significant coefficient) Quot; 0 " if all coefficients in the subblock are zero, and " 1 " if there is more than one nonzero coefficient. Sub-block significant flags are not signaled for left-ordered subblocks containing DC components.
도 2처럼 16×16 계수 블록에 3개의 비-제로 계수들이 존재하는 경우를 고려하자. 도 2에서, 회색으로 마킹된 픽셀은 비-제로 계수(즉, 유효 계수)를, 검정색으로 마킹된 픽셀은 스캔 패턴상 마지막 비-제로 계수(즉, 마지막 유효 계수)를 의미하며, 그 이외의 픽셀들은 모두 제로 값을 가지는 계수들을 의미한다. 대각 스캔 패턴의 경우에, 8개의 서브 블록(도 3의 (a)에 진하게 표시된 서브 블록들)에 대해 sub-block significant flag가 시그널링되어야 하며, 따라서 8비트가 소요된다. 수평 스캔 패턴의 경우, 2개의 서브 블록(도 3의 (b)에 진하게 표시된 서브 블록들)에 대해 sub-block significant flag가 시그널링되어야 하며, 따라서 2비트가 소요된다. 이와 같이, 주어진 계수 블록에 대해, sub-block significant flag가 시그널링되어야 하는 서브 블록들의 수가 스캔 패턴에 따라 달라지기 때문에, 계수 블록의 스캔 패턴을 알기 전에는 계수들의 관련 신택스 엘리먼트들의 파싱이 불가능하다. Consider the case where there are three non-zero coefficients in the 16x16 coefficient block as in Fig. In FIG. 2, the gray marked pixels represent non-zero coefficients (i.e., effective coefficients), the black marked pixels represent the last non-zero coefficients on the scan pattern (i.e., the last effective coefficients) Pixels are all coefficients having a zero value. In the case of a diagonal scan pattern, a sub-block significant flag must be signaled for eight subblocks (subblocks marked in FIG. 3 (a)), thus 8 bits are required. In the case of a horizontal scan pattern, a sub-block significant flag should be signaled for two subblocks (subblocks highlighted in FIG. 3 (b)), thus requiring two bits. Thus, for a given coefficient block, since the number of subblocks to which a sub-block significant flag is to be signaled depends on the scan pattern, it is not possible to parse the related syntax elements of the coefficients before knowing the scan pattern of the coefficient block.
HEVC에서는, 주어진 블록이 인터 예측 방식으로 부호화된 경우에는 해당 블록과 관련된 변환 계수들의 블록은 대각 스캔 패턴으로 스캐닝된다.In HEVC, when a given block is coded in an inter prediction scheme, the block of transform coefficients associated with the block is scanned in a diagonal scan pattern.
일부 인트라 코딩 모드는 종종, 블록의 좌측 수직 에지 또는 블록의 상측 에지를 향해 바이어스되는 유효 계수들의 분포들을 발생시킨다. 따라서, 다수의 경우에 있어서, 가로축 방향의 모드로 예측되는 블록의 계수들은 수직 스캔 패턴으로 스캔되는 것이 유리하고, 세로축 방향의 모드로 예측되는 블록의 계수들은 수평 스캔 패턴으로 스캔되는 것이 유리하다. 이를 고려하여, HEVC에서는, 일부 인트라 예측 모드(모드 번호 6 내지 14)에 대해 수직 스캔 패턴을 사용하고, 다른 일부 인트라 예측 모드(모드 번호 22 내지 30)까지는 수평 스캔 패턴을 사용하며, 나머지 인트라 예측 모드들에서는 대각 스캔 패턴을 사용한다. 즉, 주어진 블록이 인트라 예측 방식으로 부호화된 경우에는 인트라 예측 모드에 따라 상기 세 가지 스캔 패턴 중 하나를 선택하여 해당 블록의 계수들을 스캐닝하게 된다.Some intra coding modes often generate distributions of significant coefficients biased toward the left vertical edge of the block or towards the top edge of the block. Therefore, in many cases, it is advantageous that the coefficients of the block predicted in the horizontal axis mode are scanned in the vertical scan pattern, and the coefficients of the block predicted in the vertical axis mode are scanned in the horizontal scan pattern. In consideration of this, in the HEVC, a vertical scan pattern is used for some intra prediction modes (mode numbers 6 to 14), horizontal scan patterns are used for some other intra prediction modes (mode numbers 22 to 30) In the modes, diagonal scan patterns are used. That is, when a given block is coded in the intra prediction mode, one of the three scan patterns is selected according to the intra prediction mode, and the coefficients of the corresponding block are scanned.
이와 같이, HEVC에서는, 주어진 블록이 인트라 예측 방식으로 부호화된 경우에, 해당 인트라 예측 모드가 무엇이냐에 따라 해당 블록과 관련된 계수 블록의 스캔 패턴이 정해진다. 더욱이, 어떠한 인트라 예측 모드가 사용되었는지를 시그널링함에 있어서, 사용된 인트라 예측 모드의 번호(혹은 인덱스) 자체가 시그널링 되지 않고, MPM 인덱스 값이나 non-MPM 인덱스 값의 형태로 인트라 예측 모드가 시그널링 된다. 따라서, 해당 블록의 MPM 및 non-MPM 구성 정보를 알아야 해당 블록의 실제 인트라 예측 모드를 알 수 있으며, 해당 블록의 MPM 및 non-MPM 정보를 알기 위해서는 주변 블록의 인트라 예측 모드를 알아야 하고, 그 주변 블록의 인트라 예측 모드를 알기 위해서는 그 주변 블록의 주변 블록 정보를 알아야 한다. As described above, in the HEVC, when a given block is coded in the intra prediction mode, the scan pattern of the coefficient block related to the block is determined according to the intra prediction mode. Furthermore, in signaling which intra prediction mode is used, the intra prediction mode number is signaled in the form of an MPM index value or a non-MPM index value without signaling the number (or index) of the intra prediction mode used. Therefore, it is necessary to know the MPM and non-MPM configuration information of the corresponding block to know the actual intra prediction mode of the corresponding block. In order to know the MPM and non-MPM information of the corresponding block, In order to know the intra prediction mode of the block, the neighboring block information of the neighboring block must be known.
이상에서 설명한 바와 같이, 주어진 블록의 스캔 패턴을 알기 전에는 해당 블록과 관련된 변환 계수들에 관한 신택스 엘리먼트들의 파싱이 불가능한데, 주어진 블록이 인트라 예측 방식으로 부호화된 경우에는, 영상 복호화 장치는 해당 블록의 인트라 예측 모드를 결정하기 전까지는 신택스 엘리먼트들의 파싱이 불가능하다. 즉, 주어진 블록의 주변 블록, 그 주변 블록의 주변 블록들의 인트라 예측 모드를 결정하기 전까지 변환 계수들에 관한 신택스 엘리먼트들의 파싱이 지연된다. As described above, before the scan pattern of a given block is known, it is impossible to parse the syntax elements related to the transform coefficients related to the block. When a given block is coded by the intra prediction method, The syntax elements can not be parsed until the intra prediction mode is determined. That is, the parsing of the syntax elements related to the transform coefficients is delayed until the intra-prediction mode of the neighboring block of the given block or the neighboring block of the neighboring block is determined.
본 발명은 위에서 설명한 단점을 제거할 수 있는 스캔 패턴의 결정 기법들을 제공하는 데 그 목적이 있다.It is an object of the present invention to provide scan pattern determination techniques capable of eliminating the disadvantages described above.
본 발명의 일 측면에 따르면, 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 방법으로서, 현재 블록이 인트라 예측 방식으로 부호화되었는지 아니면 인터 예측 방식으로 부호화되었는지 여부를 판단하는 단계; 상기 현재 블록이 인트라 예측 방식으로 부호화된 경우에, 상기 현재 블록의 너비와 높이를 서로 비교하는 단계; 및 상기 현재 블록이 세로로 긴 직사각형이면 수직 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 현재 블록이 가로로 긴 직사각형이면 수평 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 변환 계수들의 블록이 정사각형이면, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 포함하는 방법을 제공한다. According to an aspect of the present invention, there is provided a method of determining a scan pattern to be applied to transform coefficients of a current block in an image decoding process, the method comprising: determining whether a current block is coded in an intra- ; Comparing a width and a height of the current block with each other when the current block is coded in an intra prediction mode; And if the current block is a vertically long rectangle, a vertical scan pattern is determined as a scan pattern to be applied to the transform coefficients, and if the current block is a horizontally long rectangle, a horizontal scan pattern is used as a scan pattern to be applied to the transform coefficients And if the block of transform coefficients is square, determining a diagonal scan pattern as a scan pattern to be applied to the transform coefficients.
본 발명의 다른 측면에 따르면, 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 장치로서, 메모리 및 다음과 같은 단계들을 수행하도록 구성된 하나 이상의 프로세서들을 포함하는 장치를 제공한다. 상기 하나 이상의 프로세서들은, 현재 블록이 인트라 예측 방식으로 부호화되었는지 아니면 인터 예측 방식으로 부호화되었는지 여부를 판단하는 단계; 상기 현재 블록이 인트라 예측 방식으로 부호화된 경우에, 상기 현재 블록의 너비와 높이를 서로 비교하는 단계; 및 상기 현재 블록이 세로로 긴 직사각형이면 수직 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 현재 블록이 가로로 긴 직사각형이면 수평 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 변환 계수들의 블록이 정사각형이면, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 수행하도록 구성된다. According to another aspect of the present invention there is provided an apparatus for determining a scan pattern to be applied to transform coefficients of a current block in an image decoding process, the apparatus comprising a memory and one or more processors configured to perform the following steps. Wherein the one or more processors determine whether a current block is coded in an intra prediction or an inter prediction; Comparing a width and a height of the current block with each other when the current block is coded in an intra prediction mode; And if the current block is a vertically long rectangle, a vertical scan pattern is determined as a scan pattern to be applied to the transform coefficients, and if the current block is a horizontally long rectangle, a horizontal scan pattern is used as a scan pattern to be applied to the transform coefficients And if the block of transform coefficients is square, determining a diagonal scan pattern as a scan pattern to be applied to the transform coefficients.
본 발명의 또 다른 측면에 따르면, 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 방법으로서, 상기 변환 계수들의 블록 내에서 마지막 유효 계수의 위치를 나타내는 신택스 엘리먼트를 파싱하는 단계; 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 큰지 여부를 판단하는 단계; 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크면, 복수의 가용 스캔 패턴 중에서 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴을 지시하는 신택스 엘리먼트를 파싱하는 단계; 및 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크지 않으면, 상기 복수의 가용 스캔 패턴 중에서 디폴트로 설정된 스캔 패턴을 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴으로 결정하는 단계를 포함하는 방법을 제공한다. According to another aspect of the present invention, there is provided a method of determining a scan pattern to be applied to transform coefficients of a current block in an image decoding process, the method comprising parsing a syntax element indicating a position of a last valid coefficient in a block of the transform coefficients ; Determining whether a position of the last significant coefficient is greater than a preset threshold value; Parsing a syntax element indicating a scan pattern for a one-dimensional array of the transform coefficients from a plurality of available scan patterns if the position of the last effective coefficient is greater than a predetermined threshold; And determining a scan pattern set as a default among the plurality of available scan patterns as a scan pattern for the one-dimensional array of the transform coefficients if the position of the last effective coefficient is not greater than a preset threshold value do.
본 발명의 또 다른 측면에 따르면, 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 장치로서, 메모리 및 다음과 같은 단계들을 수행하도록 구성된 하나 이상의 프로세서들을 포함하는 장치를 제공한다. 상기 하나 이상의 프로세서들은, 상기 변환 계수들의 블록 내에서 마지막 유효 계수의 위치를 나타내는 신택스 엘리먼트를 파싱하는 단계; 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 큰지 여부를 판단하는 단계; 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크면, 복수의 가용 스캔 패턴 중에서 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴을 지시하는 신택스 엘리먼트를 파싱하는 단계; 및 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크지 않으면, 상기 복수의 가용 스캔 패턴 중에서 디폴트로 설정된 스캔 패턴을 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴으로 결정하는 단계를 수행하도록 구성된다.According to another aspect of the present invention there is provided an apparatus for determining a scan pattern to be applied to transform coefficients of a current block in an image decoding process, the apparatus comprising a memory and one or more processors configured to perform the following steps . The one or more processors parsing a syntax element indicating a location of a last significant coefficient within a block of transform coefficients; Determining whether a position of the last significant coefficient is greater than a preset threshold value; Parsing a syntax element indicating a scan pattern for a one-dimensional array of the transform coefficients from a plurality of available scan patterns if the position of the last effective coefficient is greater than a predetermined threshold; And determining a scan pattern set as a default among the plurality of available scan patterns as a scan pattern for the one-dimensional array of the transform coefficients if the position of the last effective coefficient is not greater than a predetermined threshold value.
도 1은 정사각형(8x8)의 계수 블록의 부호화에 이용되는 예시적인 스캔 패턴들을 나타내는 도면이다.1 is a diagram showing exemplary scan patterns used for encoding a square (8x8) coefficient block.
도 2는 3개의 비-제로 계수들이 존재하는 16Х16 계수 블록의 일례를 도시한 도면이다. FIG. 2 shows an example of a 16-by-16 coefficient block in which there are three non-zero coefficients.
도 3은 도 2의 16Х16 계수 블록에 대해 유효한 서브 블록인지 여부를 시그널링해야 하는 서브 블록들의 개수를 설명하기 위한 도면이다.FIG. 3 is a view for explaining the number of subblocks to be signaled whether the subblock is a valid subblock for the 16 × 16 coefficient block of FIG.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 블록도이다.4 is a block diagram of an image encoding apparatus capable of implementing the techniques of the present disclosure.
도 5는 QTBT 구조를 이용한 블록 분할의 예시도이다.5 is an illustration of block partitioning using a QTBT structure.
도 6은 복수의 인트라 예측 모드에 대한 예시를 나타낸다. 6 shows an example of a plurality of intra prediction modes.
도 7은 현재 블록의 주변블록에 대한 예시도이다.7 is an exemplary view of neighboring blocks of the current block.
도 8은 비정사각형(8×16 혹은 16×8)의 계수 블록의 부호화에 이용되는 예시적인 스캔 패턴들을 나타내는 도면이다.Fig. 8 is a diagram showing exemplary scan patterns used for encoding non-square (8 x 16 or 16 x 8) coefficient blocks.
도 9는 도 4의 영상 부호화 장치에서 사용되는 엔트로피 부호화부의 일 예를 도시하는 블록도이다.9 is a block diagram showing an example of an entropy encoding unit used in the image encoding apparatus of FIG.
도 10은 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치를 도시한 것이다.10 illustrates an image decoding apparatus capable of implementing the techniques of the present disclosure.
도 11은 도 10의 영상 복호화 장치에서 사용되는 엔트로피 복호화부의 일 예를 도시하는 블록도이다.11 is a block diagram showing an example of an entropy decoding unit used in the video decoding apparatus of FIG.
도 12는 본 발명의 일 실시예에 따른, 영상 복호화 장치가 스캔 패턴을 결정하는 방법을 도시한 흐름도이다.12 is a flowchart illustrating a method of determining a scan pattern by the image decoding apparatus according to an embodiment of the present invention.
도 13은 본 발명의 다른 실시예에 따른, 영상 복호화 장치가 스캔 패턴을 결정하는 방법을 도시한 흐름도이다.13 is a flowchart illustrating a method of determining a scan pattern by an image decoding apparatus according to another embodiment of the present invention.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 식별 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present invention will be described in detail with reference to exemplary drawings. It should be noted that, in adding the identification codes to the constituent elements of the respective drawings, the same constituent elements are denoted by the same reference symbols as possible even if they are displayed on different drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.
이하에서 개시된 일부 스캐닝 기법은, 가로로 긴 직사각형 블록은, (참조 픽셀로부터 가까울수록 인트라 예측이 정교할 것이므로) 세로축 방향의 인트라 예측 모드로 부호화되는 경향이 강하고, 세로로 긴 직사각형 블록은 가로축 방향의 인트라 예측 모드로 부호화되는 경향이 강하다는 경험에 착안한다. 또한, 세로축 방향의 인트라 예측 모드는 종종 상측 수평 에지를 향해 바이어스되는 유효 계수들의 분포들을 발생시키고, 가로축 방향의 인트라 예측 모드는 좌측 수직 에지를 향해 바이어스되는 유효 계수들의 분포들을 발생시킨다는 점에 주목한다. 따라서, 가로로 긴 직사각형의 변환 계수들의 블록은 수평 스캔 패턴으로 스캐닝되는 것이 유리하고, 세로로 긴 직사각형의 변환 계수들의 블록은 수직 스캔 패턴으로 스캐닝되는 것이 유리하다고 볼 수 있다. 이에, 개시된 일부 스캐닝 기법에서는, 인트라 예측된 블록의 변환 계수들의 블록에 대한 스캔 패턴을 결정함에서, 스캔 패턴을 블록의 형태(예컨대, 가로로 긴 직사각형인지, 세로로 긴 직사각형인지, 정사각형인지)에 연관시킨다. 즉, 현재 블록의 형태에 따라 스캔 패턴을 결정한다.In some scanning techniques described below, a horizontally long rectangular block has a strong tendency to be encoded in the intra-prediction mode in the vertical axis direction (since the intra-prediction is more accurate from the reference pixel), and the vertically long rectangular block has a strong It is noted that there is a strong tendency to be encoded in the intra prediction mode. Note also that the intra-prediction mode in the vertical axis generates distributions of the effective coefficients, which are often biased towards the upper horizontal edge, while the intra-prediction mode in the horizontal direction generates distributions of the effective coefficients biased towards the left vertical edge . Accordingly, it is advantageous that the block of transversal rectangular rectangular transform coefficients is advantageously scanned in the horizontal scan pattern, and the block of vertically long rectangle transform coefficients is scanned in the vertical scan pattern. Accordingly, in some scanning techniques, in determining a scan pattern for a block of transform coefficients of an intra-predicted block, the scan pattern may be in the form of a block (e.g., a horizontally long rectangle, a vertically long rectangle, . That is, the scan pattern is determined according to the type of the current block.
이하에서 개시된 다른 일부 스캐닝 기법은 복수의 가용 스캔 패턴들(예컨대, 대각, 수평, 및 수직 스캔 패턴) 중에서 실제 적용된 스캔 패턴을 명시적으로 시그널링하는 것이다. 예컨대, 복수의 가용 스캔 패턴들을 적용한 결과들을 압축 및/또는 영상 품질 측면에서 비교함으로써 영상 부호화 장치에서 바람직한 스캔 패턴을 결정할 수 있다. 영상 부호화 장치에 의해 선택된 스캔 패턴은 비트스트림 내의 인덱스로서(예를 들어, 블록 레벨 신택스로서) 영상 복호화 장치에 전달될 수 있다. Some other scanning techniques described below are to explicitly signal the actually applied scan pattern among a plurality of available scan patterns (e.g., diagonal, horizontal, and vertical scan patterns). For example, by comparing the results of applying the plurality of available scan patterns in terms of compression and / or image quality, a desired scan pattern can be determined in the image encoding apparatus. The scan pattern selected by the image encoding apparatus may be transmitted to the image decoding apparatus as an index in the bitstream (for example, as a block level syntax).
본 개시의 스캐닝 기법들에 따르면, 현재 블록에 연관된 양자화된 변환 계수들을 스캔하는 데에 사용되는 스캔 패턴은 현재 블록에 적용된 인트라 예측 모드(그에 따라, 이전에 복호화된 데이터 블록)에 관한 의존성을 더이상 가지지 않는다. 따라서, 스캔 패턴을 인트라 예측 모드와 연관시킴으로써 발생하는 계수에 관한 신택스 엘리먼트들의 파싱의 지연 문제가 해결된다. 또한, 복호화 장치는 인트라 예측 모드의 결정 프로세스와 스캔 패턴에 따른 2차원 변환 계수들의 블록의 재구성 프로세스를 병렬적으로 수행할 수 있다. According to the scanning techniques of the present disclosure, the scan pattern used to scan the quantized transform coefficients associated with the current block is no longer dependent on the intra prediction mode applied to the current block (and thus the previously decoded data block) Do not have. Thus, the problem of delaying the parsing of the syntax elements with respect to the coefficients arising by associating the scan pattern with the intra-prediction mode is solved. In addition, the decoding apparatus can perform a process of determining the intra prediction mode and a process of reconstructing a block of two-dimensional transform coefficients according to a scan pattern in parallel.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 블록도이다.4 is a block diagram of an image encoding apparatus capable of implementing the techniques of the present disclosure.
영상 부호화 장치는 블록 분할부(410), 예측부(420), 감산기(430), 변환부(440), 양자화부(445), 엔트로피 부호화부(450), 역양자화부(460), 역변환부(465), 가산기(470), 필터부(480) 및 메모리(490)를 포함한다. 영상 부호화 장치는 각 구성요소는 하드웨어 칩으로 구현될 수 있으며, 또는 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.The image encoding apparatus includes a block division unit 410, a prediction unit 420, a subtractor 430, a transform unit 440, a quantization unit 445, an entropy encoding unit 450, an inverse quantization unit 460, An adder 470, a filter unit 480 and a memory 490. [ Each component of the image encoding apparatus may be embodied as a hardware chip, or may be embodied as software, and the microprocessor may be implemented to execute the function of the software corresponding to each component.
하나의 영상(비디오)는 복수의 픽처들로 구성된다. 각 픽처들은 복수의 영역으로 분할되고 각 영역마다 부호화가 수행된다. 예를 들어, 하나의 픽처는 하나 이상의 슬라이스(slice) 또는/및 타일(Tile)로 분할되고, 각 슬라이스 또는 타일은 하나 이상의 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)에 부호화된다.One video (video) is composed of a plurality of pictures. Each picture is divided into a plurality of areas and coding is performed for each area. For example, one picture is divided into one or more slices or / and tiles, and each slice or tile is divided into one or more CTU (Coding Tree Unit). Each CTU is divided into one or more CUs (Coding Units) by a tree structure. The information applied to each CU is encoded as a syntax of the CU, and the information commonly applied to the CUs included in one CTU is encoded as the syntax of the CTU. In addition, information that is commonly applied to all blocks in one slice is encoded as a syntax of a slice, and information applied to all blocks constituting one picture is encoded into a picture parameter set (PPS) . Further, information that is commonly referred to by a plurality of pictures is encoded into a sequence parameter set (SPS). The information that is commonly referred to by one or more SPSs is encoded into a Video Parameter Set (VPS).
블록 분할부(410)는 CTU(Coding Tree Unit)의 크기를 결정한다. CTU의 크기에 대한 정보(CTU size)는 SPS 또는 PPS 의 신택스로서 부호화되어 영상 복호화 장치로 전달된다. 블록 분할부(410)는 영상을 구성하는 각 픽처(picture)를 결정된 크기의 복수의 CTU(Coding Tree Unit)로 분할한 이후에, CTU를 트리 구조(tree structure)를 이용하여 반복적으로(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) 구조가 사용될 수 있다. The block dividing unit 410 determines the size of the CTU (Coding Tree Unit). The information on the size of the CTU (CTU size) is encoded as the syntax of the SPS or PPS and transmitted to the image decoding apparatus. The block dividing unit 410 divides each picture constituting an image into a plurality of CTUs (Coding Tree Units) having a determined size, and thereafter recursively reuses the CTUs using a tree structure. . A leaf node in a tree structure becomes a coding unit (CU) which is a basic unit of coding. In the tree structure, a quad tree (QuadTree, QT) in which an upper node (or a parent node) is divided into four sub nodes (or child nodes) of the same size, or a binary tree in which an upper node is divided into two lower nodes , BT), or a ternary tree (TT) in which an ancestor node is divided into three subnodes at a ratio of 1: 2: 1, or a structure combining one or more of these QT structures, BT structures and TT structures have. For example, a QuadTree plus BinaryTree (QTBT) structure can be used, or a QuadTree plus BinaryTreeTernaryTree (QTBTTT) structure can be used.
도 5는 QTBT 구조를 이용한 블록 분할의 예시도이다. 도 5의 (a)는 QTBT 구조에 의해 블록이 분할되는 예시이고, (b)는 이를 트리구조로 표현한 것이다. 도 5에서 실선은 QT 구조에 의한 분할을, 점선은 BT 구조에 의한 분할을 나타낸다. 또한, 도 5의 (b)에서 layer 표기와 관련하여, 괄호가 없는 것은 QT의 레이어를, 괄호가 있는 것은 BT의 레이어를 나타낸다. 점선으로 표현된 BT 구조에서 숫자는 분할 타입 정보를 나타낸다.5 is an illustration of block partitioning using a QTBT structure. FIG. 5A is an example in which a block is divided by a QTBT structure, and FIG. 5B is a tree structure thereof. In FIG. 5, the solid line represents the division by the QT structure, and the dotted line represents the division by the BT structure. 5 (b), the absence of parentheses indicates a layer of QT, and the presence of parentheses indicates a layer of BT. In the BT structure represented by the dotted line, the numbers represent the division type information.
도 5에서 보는 바와 같이, CTU는 먼저 QT 구조로 분할될 수 있다. 쿼드트리 분할은 분할 블록(splitting block)의 크기가 QT에서 허용되는 리프 노드의 최소 블록 크기(MinQTSize)에 도달할 때까지 반복될 수 있다. QT 구조의 각 노드가 하위 레이어의 4개의 노드들로 분할되는지 여부를 지시하는 제1 플래그(QT_split_flag)는 엔트로피 부호화부(450)에 의해 부호화되어 영상 복호화 장치로 시그널링된다. As shown in FIG. 5, the CTU can be first divided into a QT structure. The quadtree partitioning can be repeated until the size of the splitting block reaches the minimum block size (MinQTSize) of the leaf node allowed in QT. The first flag (QT_split_flag) indicating whether each node of the QT structure is divided into four nodes of the lower layer is encoded by the entropy encoding unit 450 and signaled to the video decoding apparatus.
QT의 리프 노드가 BT에서 허용되는 루트 노드의 최대 블록 크기(MaxBTSize)보다 크지 않은 경우, BT 구조로 더 파티셔닝될 수 있다. BT에서는 복수의 분할 타입이 존재할 수 있다. 예컨대, 일부 예시에서, 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입(즉, symmetric horizontal splitting)과 세로로 분할하는 타입(즉, symmetric vertical splitting) 두 가지가 존재할 수 있다. BT 구조의 각 노드가 하위 레이어의 블록으로 분할되는지 여부를 지시하는 제2 플래그(BT_split_flag) 및 분할되는 타입을 지시하는 분할 타입 정보는 엔트로피 부호화부(450)에 의해 부호화되어 영상 복호화 장치로 전달된다. 한편, 해당 노드의 블록을 서로 비대칭 형태의 두 개의 블록으로 분할하는 타입이 추가로 더 존재할 수도 있다. 비대칭 형태로는 해당 노드의 블록을 1:3의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태를 포함할 수 있고, 혹은 해당 노드의 블록을 대각선 방향으로 분할하는 형태를 포함할 수도 있다.If the leaf node of the QT is not larger than the maximum block size (MaxBTSize) of the root node allowed in BT, it can be further partitioned into a BT structure. In BT, there may be a plurality of split types. For example, in some examples, there may be two types: a symmetric horizontal splitting and a vertically splitting type (i.e., symmetric vertical splitting) that divides a block of the node into two blocks of equal size horizontally. The second flag (BT_split_flag) indicating whether each node of the BT structure is divided into blocks of the lower layer and the division type information indicating the type to be divided are encoded by the entropy encoding unit 450 and transmitted to the image decoding apparatus . On the other hand, there may be additional types of dividing the blocks of the node into two asymmetric blocks. In the asymmetric form, the block of the node may be divided into two rectangular blocks having a size ratio of 1: 3, or the block of the corresponding node may be divided into diagonal directions.
트리 구조의 다른 예시로서 QTBTTT가 사용되는 경우, CTU는 먼저 QT 구조로 분할된 이후에, QT의 리프노드들은 BT 구조 또는 TT 구조 중 어느 하나 이상으로 분할될 수 있다. TT 구조도 복수의 분할 타입이 존재할 수 있다. 예컨대, 분할되는 경우, 해당 노드의 블록을 1:2:1 비율로 세 개 블록으로 가로로 분할하는 타입(즉, symmetric horizontal splitting)과 세로로 분할하는 타입(즉, symmetric vertical splitting) 두 가지가 존재할 수 있다. QTBTTT의 경우, 각 노드가 하위 레이어의 블록으로 분할되는지 여부를 지시하는 플래그 및 분할되는 타입(또는 분할되는 방향)을 지시하는 분할 타입 정보 (또는 분할 방향 정보) 이외에, BT 구조 인지 TT 구조인지를 구분하는 추가 정보가 영상 복호화 장치로 시그널링될 수 있다.When QTBTTT is used as another example of the tree structure, after the CTU is first divided into the QT structure, the leaf nodes of the QT may be divided into one or more of the BT structure or the TT structure. The TT structure may also have a plurality of split types. For example, when divided, there are two types: a symmetric horizontal splitting (i.e., symmetric vertical splitting) in which a block of the node is horizontally divided into three blocks at a 1: 2: 1 ratio Can exist. In the case of QTBTTT, a flag indicating whether each node is divided into blocks of a lower layer and whether the BT structure or the TT structure is used in addition to the division type information (or dividing direction information) indicating the divided type Additional information for discrimination can be signaled to the video decoding apparatus.
CU는 CTU로부터의 QTBT 또는 QTBTTT 분할에 따라 다양한 크기를 가질 수 있다. 이하에서는, 부호화 또는 복호화하고자 하는 CU(즉, QTBTTT의 리프 노드)에 해당하는 블록을 '현재블록'이라 칭한다.The CU may have various sizes depending on the QTBT or QTBTTT segment from the CTU. Hereinafter, a block corresponding to a CU to be encoded or decoded (i.e., a leaf node of QTBTTT) is referred to as a 'current block'.
예측부(420)는 현재 블록을 예측하여 예측블록을 생성한다. 예측부(420)는 인트라 예측부(422)와 인터 예측부(424)를 포함한다. The prediction unit 420 generates a prediction block by predicting the current block. The prediction unit 420 includes an intra prediction unit 422 and an inter prediction unit 424.
인트라 예측부(422)는 현재 블록이 포함된 현재 픽처 내에서 현재 블록의 주변에 위치한 픽셀(참조 픽셀)들을 이용하여 현재 블록 내의 픽셀들을 예측한다. 예측 방향에 따라 복수의 인트라 예측 모드가 존재하며, 각 예측 모드에 따라 사용할 주변 픽셀과 연산식이 다르게 정의된다. 특히, 인트라 예측부(422)는 현재 블록을 부호화하는데 사용할 인트라 예측 모드를 결정할 수 있다. 일부 예들에서, 인트라 예측부(422)는 여러 인트라 예측 모드들을 사용하여 현재 블록을 인코딩하고, 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측부(422)는 여러 테스트된 인트라 예측 모드들에 대한 레이트 왜곡(rate-distortion) 분석을 사용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중 최선의 레이트 왜곡 특징들을 갖는 인트라 예측 모드를 선택할 수도 있다. The intraprediction unit 422 predicts pixels in the current block using pixels (reference pixels) located around the current block in the current picture including the current block. There are a plurality of intra prediction modes according to the prediction direction, and the neighboring pixels to be used and the calculation formula are defined differently according to each prediction mode. In particular, the intra prediction unit 422 can determine an intra prediction mode to be used for coding the current block. In some examples, the intra-prediction unit 422 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 422 may calculate rate-distortion values using a rate-distortion analysis for various tested intra-prediction modes, and may employ rate- The intra prediction mode may be selected.
도 6은 복수의 인트라 예측 모드에 대한 예시를 나타낸다. 6 shows an example of a plurality of intra prediction modes.
도 6에 보인 바와 같이, 복수의 인트라 예측 모드는 2개의 비방향성 모드(planar 모드 및 DC 모드)와 65개의 방향성 모드를 포함할 수 있다. As shown in FIG. 6, the plurality of intraprediction modes may include two non-directional modes (planar mode and DC mode) and 65 directional modes.
인트라 예측부(422)는 복수의 인트라 예측 모드 중에서 하나의 인트라 예측 모드를 선택하고, 선택된 인트라 예측 모드에 따라 결정되는 주변 픽셀(참조 픽셀)과 연산식을 사용하여 현재 블록을 예측한다. 선택된 인트라 예측 모드에 대한 정보는 엔트로피 부호화부(450)에 의해 부호화되어 영상 복호화 장치로 전달된다.The intra-prediction unit 422 selects one intra-prediction mode from a plurality of intra-prediction modes, and predicts the current block using neighboring pixels (reference pixels) determined by the selected intra-prediction mode and an equation. The information on the selected intra prediction mode is encoded by the entropy encoding unit 450 and transmitted to the image decoding apparatus.
한편, 인트라 예측부(422)는, 복수의 인트라 예측 모드 중 어느 모드가 현재 블록의 인트라 예측 모드로 사용되었는지를 지시하는 인트라 예측 모드 정보를 효율적으로 부호화하기 위해, 복수의 인트라 예측 모드 중 현재 블록의 인트라 예측 모드로서 가능성이 높은 일부의 모드를 MPM(most probable mode)으로 결정할 수 있다. 그리고, 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되는지 여부를 지시하는 모드 정보를 생성하여 엔트로피 부호화부(450)로 전달한다. 일반적으로, 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되는 경우, MPM 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제1 인트라 식별정보를 엔트로피 부호화부(450)로 전달한다. 반면 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되지 않은 경우, MPM이 아닌 나머지 모드들 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제2 인트라 식별정보를 엔트로피 부호화부(450)로 전달한다. In order to efficiently encode the intra prediction mode information indicating which of the plurality of intra prediction modes is used as the intra prediction mode of the current block, the intra prediction unit 422 performs intra prediction The most probable mode (MPM) can be determined as a part of the intra prediction mode. The mode information indicating whether the intra prediction mode of the current block is selected in the MPM is generated and transmitted to the entropy encoding unit 450. In general, when the intra prediction mode of the current block is selected from the MPM, the first intra identification information for indicating which mode of the MPM is selected as the intra prediction mode of the current block is transmitted to the entropy encoding unit 450. If the intraprediction mode of the current block is not selected among the MPMs, the entropy encoding unit 450 outputs second intra identification information for indicating which of the modes other than the MPM is selected as the intra prediction mode of the current block, .
이하에서는, MPM 리스트를 구성하는 방법을 설명한다. 여기서는, 6개의 MPM으로 MPM 리스트를 구성하는 것을 예로 설명하나, 본 발명이 이에 한정되는 것은 아니며 MPM 리스트에 포함되는 MPM의 개수는 3개 내지 10개의 범위 내에서 선택될 수 있다.Hereinafter, a method of constructing the MPM list will be described. Here, the MPM list is constructed by six MPMs, but the present invention is not limited thereto. The number of MPMs included in the MPM list can be selected within a range of three to ten.
먼저, 현재 블록의 주변 블록들의 인트라 예측 모드를 이용하여 MPM 리스트를 구성한다. 주변 블록은, 예컨대 도 7에 도시된 바와 같이, 현재 블록의 좌측블록(L), 상단블록(A), 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL) 중에서 전부 또는 일부를 포함할 수 있다. First, an MPM list is constructed using an intra prediction mode of neighboring blocks of the current block. The neighboring blocks are all or part of the left block L, the upper block A, the lower left block BL, the upper right block AR and the upper left block AL of the current block, for example, as shown in Fig. . ≪ / RTI >
이 주변 블록들의 인트라 예측 모드가 MPM 리스트에 포함된다. 여기서, 좌측블록(L), 상단블록(A), 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL)의 순서로 유효한 블록의 인트라 예측 모드가 MPM 리스트에 포함되고, 이 주변 블록들의 인트라 예측 모드들에 planar 모드 및 DC 모드를 추가하여 후보를 구성한다. 또는, 좌측블록(L), 상단블록(A), planar 모드, DC 모드, 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL)의 순으로 유효한 모드가 MPM 리스트에 추가될 수도 있다. 또는, 좌측블록(L), 상단블록(A), planar 모드, 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL), DC 모드의 순으로 유효한 모드가 MPM 리스트에 추가될 수도 있다.The intra prediction modes of these neighboring blocks are included in the MPM list. Here, the intra prediction modes of the valid blocks in the order of the left block L, the upper block A, the lower left block BL, the upper right block AR and the upper left block AL are included in the MPM list, The candidates are constructed by adding the planar mode and the DC mode to the intra prediction modes of the blocks. Alternatively, a mode effective in the order of the left block L, the upper block A, the planar mode, the DC mode, the lower left block BL, the upper right block AR, and the upper left block AL may be added to the MPM list have. Alternatively, a mode effective in order of the left block L, the upper block A, the planar mode, the lower left block BL, the upper right block AR, the upper left block AL, and the DC mode may be added to the MPM list have.
MPM 리스트에는 서로 다른 인트라 예측 모드만이 포함된다. 즉, 중복된 모드(duplicated mode)가 존재하는 경우 그 중 하나의 모드만이 MPM 리스트에 포함된다.The MPM list includes only different intra prediction modes. That is, when there is a duplicated mode, only one mode is included in the MPM list.
만약, 리스트 내의 MPM의 개수가 기결정된 개수(예컨대, 6)보다 작은 경우에는, 리스트 내의 방향성 모드들에 -1 또는 +1을 가산하여 MPM을 유도할 수도 있다. 또한, 리스트 내의 MPM의 개수가 기결정된 개수보다 작은 경우에는, 수직 모드(vertical mode), 수직 모드(horizontal mode), 대각선 모드(diagonal mode) 등의 순서로 부족한 개수만큼의 모드를 MPM 리스트에 추가할 수도 있다.If the number of MPMs in the list is less than the predetermined number (e.g., 6), the MPM may be derived by adding -1 or +1 to the directional modes in the list. If the number of MPMs in the list is smaller than the predetermined number, a number of modes are added to the MPM list in the order of vertical mode, horizontal mode, and diagonal mode. You may.
인터 예측부(424)는 현재 픽처보다 먼저 부호화 및 복호화된 참조 픽처 내에서 현재 블록과 가장 유사한 블록을 탐색하고, 그 탐색된 블록을 이용하여 현재 블록에 대한 예측블록을 생성한다. 그리고, 현재 픽처 내의 현재 블록과 참조 픽처 내의 예측블록 간의 변위(displacement)에 해당하는 움직임벡터(motion vector)를 생성한다. 현재 블록을 예측하기 위해 사용된 참조 픽처에 대한 정보 및 움직임벡터에 대한 정보를 포함하는 움직임 정보는 엔트로피 부호화부(450)에 의해 부호화되어 영상 복호화 장치로 전달된다.The inter-prediction unit 424 searches for a block most similar to the current block in the reference picture coded and decoded earlier than the current picture, and generates a prediction block for the current block using the searched block. Then, a motion vector corresponding to the displacement between the current block in the current picture and the prediction block in the reference picture is generated. Motion information including information on a reference picture used for predicting a current block and motion vector information is encoded by an entropy encoding unit 450 and transmitted to an image decoding apparatus.
감산기(430)는 현재 블록으로부터 인트라 예측부(422) 또는 인터 예측부(424)에 의해 생성된 예측블록을 감산하여 잔차 블록을 생성한다.The subtractor 430 subtracts the prediction block generated by the intra prediction block 422 or the inter prediction block 424 from the current block to generate a residual block.
변환부(440)는 공간 영역의 픽셀 값들을 가지는 잔차 블록 내의 잔차 신호를 주파수 도메인의 변환 계수로 변환한다. 변환부(440)는 잔차 블록 내의 잔차 신호들을 현재 블록의 크기를 변환 단위로 사용하여 변환할 수 있으며, 또는 잔차 블록을 더 작은 복수의 서브블록을 분할하고 서브블록 크기의 변환 단위로 잔차 신호들을 변환할 수도 있다. 잔차 블록을 더 작은 서브블록으로 분할하는 방법은 다양하게 존재할 수 있다. 예컨대, 기정의된 동일한 크기의 서브블록으로 분할할 수도 있으며, 또는 잔차 블록을 루트 노드로 하는 QT(quadtree) 방식의 분할을 사용할 수도 있다. The transforming unit 440 transforms the residual signal in the residual block having pixel values in the spatial domain into transform coefficients in the frequency domain. The transforming unit 440 may transform the residual signals in the residual block by using the size of the current block as a transform unit or divide the residual block into a plurality of smaller subblocks and transform residual signals into subblock- Conversion. There are various ways of dividing the residual block into smaller sub-blocks. For example, it may be divided into sub blocks of the same size that have been set, or a QT (quadtree) type partition using a residual block as a root node.
양자화부(445)는 변환부(440)로부터 출력되는 변환 계수들을 양자화하고, 양자화된 변환 계수들을 엔트로피 부호화부(450)로 출력한다.The quantization unit 445 quantizes the transform coefficients output from the transform unit 440 and outputs the quantized transform coefficients to the entropy encoding unit 450.
역양자화부(460)는 양자화부(445)로부터 출력되는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 생성한다. 역변환부(465)는 역양자화부(460)로부터 출력되는 변환 계수들을 주파수 도메인으로부터 공간 도메인으로 변환하여 잔차블록을 복원한다.The inverse quantization unit 460 dequantizes the quantized transform coefficients output from the quantization unit 445 to generate transform coefficients. The inverse transform unit 465 transforms the transform coefficients output from the inverse quantization unit 460 from the frequency domain to the spatial domain and restores the residual block.
가산부(470)는 복원된 잔차블록과 예측부(420)에 의해 생성된 예측블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록 내의 픽셀들은 다음 순서의 블록을 인트라 예측할 때 참조 픽셀로서 사용된다.The adder 470 adds the reconstructed residual block and the prediction block generated by the predictor 420 to reconstruct the current block. The pixels in the reconstructed current block are used as reference pixels when intra prediction of the next-order block is performed.
필터부(480)는 블록 단위의 부호화/복호화로 인해 발생하는 블록킹 현상(blocking artifact)을 제거하기 위해 복원된 블록 간의 경계를 디블록킹 필터링하고 메모리(490)에 저장한다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.The filter unit 480 deblock-filters the boundaries between the restored blocks and stores them in the memory 490 in order to remove blocking artifacts caused by coding / decoding on a block-by-block basis. When all the 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 coded later.
엔트로피 부호화부(450)는 양자화된 변환 계수들을 CABAC 등의 엔트로피 부호화 방식을 사용하여 부호화하여 비트스트림을 생성한다. 또한, 엔트로피 부호화부(450)는 모션 벡터 정보 및 영상 복호화 장치에서 영상 데이터를 복호화할 때 유용한 다양한 신택스 엘리먼트들을 엔트로피 부호화할 수도 있다. 신택스 엘리먼트들은, 이를테면, 블록 분할 정보, 예측 타입에 대한 정보, 인트라 예측정보, 인터 예측정보 등을 포함할 수 있다. 또한, 신택스 엘리먼트들은 특정 계수들이 유효한지 (예를 들어, 비-제로인지) 여부를 나타내는 유효 계수 플래그 및 특정 계수가 마지막 유효 계수인지 여부를 나타내는 마지막 유효 계수 플래그를 갖는 유효도 맵을 포함할 수도 있다.The entropy encoding unit 450 encodes the quantized transform coefficients using an entropy encoding scheme such as CABAC to generate a bitstream. In addition, the entropy encoding unit 450 may entropy-encode various syntax elements that are useful in decoding motion vector information and image data in the image decoding apparatus. The syntax elements may include, for example, block partition information, prediction type information, intra prediction information, inter prediction information, and the like. The syntax elements may also include an effective coefficient flag indicating whether certain coefficients are valid (e.g., non-zero) and an efficacy map having a last significant coefficient flag indicating whether the particular coefficient is the last significant coefficient have.
양자화된 변환 계수들의 블록(즉, 계수 블록)을 엔트로피 코딩하기 위해, 스캐닝 프로세스가 일반적으로 수행되어 계수 블록 내의 계수들의 2차원 어레이가, 특정 스캔 패턴에 따라, 변환 계수들의 순서화된 1차원 어레이로 처리되도록 한다. 이러한 스캐닝 프로세스는 복수의 가용 스캔 패턴 중 하나를 이용하여 계수 블록에 대해 수행된다. 변환 계수들이 스캐닝되었다면, 엔트로피 부호화부(450)는 엔트로피 부호화를 계수들의 1차원 어레이에 적용한다. 스캐닝은 유효(즉, 비-제로) 계수들의 포지션들을 부호화하기 위해, 유효(즉, 비제로) 계수들의 레벨들을 부호화하기 위해, 그리고 유효 계수들의 부호들을 부호화하기 위해 적용될 수도 있다.In order to entropy code a block of quantized transform coefficients (i.e., coefficient block), a scanning process is generally performed such that a two-dimensional array of coefficients in the coefficient block is transformed into an ordered one-dimensional array of transform coefficients . This scanning process is performed on the coefficient block using one of a plurality of available scan patterns. If the transform coefficients have been scanned, the entropy encoding unit 450 applies the entropy encoding to the one-dimensional array of coefficients. Scanning may be applied to encode the levels of valid (i.e., non-zero) coefficients, and to encode the signatures of significant coefficients, to encode positions of valid (i.e., non-zero) coefficients.
본 개시에서는 엔트로피 부호화부(450)가 스캐닝을 수행하는 것으로 설명하고 있으나, 다른 예들에서는 다른 처리 유닛들(예컨대, 양자화부(460))이 본 개시의 스캐닝 기법들을 수행할 수도 있다는 점을 유의한다.Note that although the present disclosure describes the entropy encoding unit 450 performing scanning, it is noted that other processing units (e.g., the quantization unit 460) may perform the scanning techniques of the present disclosure in other examples .
도 8은 비정사각형(8×16 혹은 16×8)의 계수 블록의 부호화에 이용되는 예시적인 스캔 패턴들을 나타내는 도면이다. 이들 스캔 패턴은 대각선 패턴(도 8의 (a)), 수직 스캔 패턴(도 8의 (b)), 및 수평 스캔 패턴(도 8의 (c))을 포함한다. 예시된 스캔 패턴들은 각각의 계수 블록 의 좌상귀 계수에서 시작하고 우하귀 계수에서 끝난다. 또한, 예시된 스캔 패턴들에서, 계수 블록 내 4×4 서브 블록들 및 각 서브 블록 내 계수들에 대해서 동일한 형태의 스캔 형태를 보인다.Fig. 8 is a diagram showing exemplary scan patterns used for encoding non-square (8 x 16 or 16 x 8) coefficient blocks. These scan patterns include a diagonal pattern (FIG. 8A), a vertical scan pattern (FIG. 8B), and a horizontal scan pattern (FIG. 8C). The illustrated scan patterns start at the left index coefficient of each coefficient block and end at the right edge coefficient. Also, in the illustrated scan patterns, the 4x4 sub-blocks in the coefficient block and the intra-sub-block coefficients have the same scan form.
도 9은 도 4의 영상 부호화 장치에서 사용되는 엔트로피 부호화부의 일 예를 도시하는 블록도이다. 도 9에 도시된 바와 같이, 엔트로피 부호화부는 스캔 패턴 선택부(910), 스캔부(920), 엔트로피 부호화 엔진(930), 및 스캔 패턴 메모리(940)를 포함할 수 있다. 도 9에는 엔트로피 부호화부의 기능적인 측면에서 구분된 콤포넌트들(910~940)이 도시되어 있지만, 이들 콤포넌트들(910~940)은 서로 고도로 통합될 수도 있음에 유의한다. 9 is a block diagram showing an example of an entropy encoding unit used in the image encoding apparatus of FIG. 9, the entropy encoding unit may include a scan pattern selection unit 910, a scan unit 920, an entropy encoding engine 930, and a scan pattern memory 940. Note that while the components 910 to 940 are shown in Fig. 9 in terms of the functional aspects of the entropy encoding unit, these components 910 to 940 may be highly integrated with each other.
스캔 패턴 선택부(910)는 가용 스캔 패턴들(예컨대, 대각, 수평, 및 수직 스캔 패턴) 중에서, 유효도 맵 스캔 및 계수 레벨 스캔을 위해 스캔부(920)에 의해 사용될, 스캔 패턴을 선택한다. 몇몇 예시들에서, 스캔 패턴 선택부(910)는 가용한 스캔 패턴들을 적용한 결과들을 압축 및/또는 영상 품질 측면에서 비교함으로써, 바람직한 스캔 패턴을 결정할 수 있다. 몇몇 예시들에서, 스캔 패턴 선택부(910)는 예측 타입, 블록 사이즈, 변환 여부, 또는 부호화된 영상의 다른 특징들에 기초하여, 복수의 가용한 스캔 패턴들에서 하나의 스캔 패턴을 선택할 수도 있다. 스캔 메모리(940)는 특정 상황들에 대해 어떤 스캔 패턴을 사용할지를 정의하는 명령들, 테이블 및/또는 데이터를 저장할 수도 있다. 예컨대, 부호화하고자 하는 현재 블록이 인터 예측된 경우, 스캔 패턴은 미리 정해진 하나의 스캔 패턴(예컨대, 대각 스캐닝)일 수 있다. 일부 실시예에서, 계수 블록 내 마지막 유효 계수의 위치가 기설정된 임계 위치(예컨대, 계수 블록의 크기의 절반)보다 크지 않은 경우에, 디폴트로 설정된 스캔 패턴(예컨대, 대각 스캐닝)이 선택될 수 있다. 일부 실시예에서, 부호화하고자 하는 현재 블록이 인트라 예측된 경우, 블록의 형태(예컨대, 가로로 긴 직사각형인지, 세로로 긴 직사각형인지, 정사각형인지, 블록이 기설정된 임계값보다 큰지)에 따라 복수의 가용한 스캔 패턴 중에서 하나의 스캔 패턴이 선택될 수 있다.The scan pattern selection unit 910 selects a scan pattern to be used by the scan unit 920 for the validity map scan and the coefficient level scan among the available scan patterns (e.g., diagonal, horizontal, and vertical scan patterns) . In some examples, the scan pattern selector 910 can determine a desired scan pattern by comparing the results of applying the available scan patterns in terms of compression and / or image quality. In some examples, the scan pattern selector 910 may select one scan pattern from a plurality of available scan patterns, based on prediction type, block size, conversion, or other characteristics of the encoded image . The scan memory 940 may store instructions, tables, and / or data that define which scan patterns to use for particular situations. For example, when the current block to be encoded is inter-predicted, the scan pattern may be a predetermined scan pattern (e.g., diagonal scanning). In some embodiments, a default scan pattern (e.g., diagonal scanning) may be selected if the position of the last significant coefficient in the coefficient block is not greater than a predetermined threshold position (e.g., half the size of the coefficient block) . In some embodiments, when the current block to be coded is intra-predicted, a plurality of blocks (for example, a horizontally long rectangle, a vertically long rectangle, a square, or a block is larger than a predetermined threshold) One scan pattern among the available scan patterns can be selected.
스캔부(920)는 스캔 패턴 선택부(910)로부터 스캔 패턴을 수신하며, 수신된 스캔 패턴을 변환 계수들의 블록에 적용하여 변환 계수들의 블록으로부터 계수들의 1차원 어레이를 생성한다. The scan unit 920 receives a scan pattern from the scan pattern selection unit 910 and applies the received scan pattern to a block of transform coefficients to generate a one-dimensional array of coefficients from the block of transform coefficients.
엔트로피 부호화 엔진(930)은 엔트로피 부호화 프로세스를 스캐닝된 계수들에 적용하여 비트스트림을 생성할 수 있다. 엔트로피 부호화 프로세스는 계수들이 1차원 어레이로 스캐닝된 후에 적용될 수도 있다. 다른 예들에서는, 계수들은 스캔 패턴을 사용하여 2차원 어레이(즉, 계수 블록) 내에서 직접적으로 처리될 수도 있다. 변환 계수 데이터에 추가하여, 비트스트림 내의 부호화된 영상을 복호화하는 데에 유용한 움직임벡터 데이터 및 다양한 신택스 엘리먼트들이 비트스트림 내에 부호화될 수 있다. The entropy encoding engine 930 may apply an entropy encoding process to the scanned coefficients to generate a bitstream. The entropy encoding process may be applied after the coefficients have been scanned into the one-dimensional array. In other examples, the coefficients may be processed directly in a two-dimensional array (i.e., coefficient block) using a scan pattern. In addition to the transform coefficient data, motion vector data and various syntax elements useful for decoding the encoded image in the bitstream and the various syntax elements may be encoded within the bitstream.
추가적으로, 엔트로피 부호화부는 엔트로피 부호화 프로세스에서 사용되는 스캔 패턴을 나타내는 시그널링을 비트스트림 내에 제공할 수도 있다. 예컨대, 스캔 패턴은 비트스트림 내의 인덱스로서(예를 들어, 블록 레벨 신택스로서) 영상 복호화 장치에 전달될 수도 있다. 특정 상황들에 대해 어떤 스캔 패턴을 사용할지가 미리 설정되어 있다면, 비트스트림 내에 시그널링을 제공할 필요성이 존재하지 않을 수도 있다. Additionally, the entropy encoding unit may provide signaling in the bitstream indicating the scan pattern used in the entropy encoding process. For example, the scan pattern may be passed to the image decoding device as an index in the bitstream (e.g., as block level syntax). If it is predetermined which scan patterns to use for certain situations, there may not be a need to provide signaling in the bitstream.
이하에서는 영상 복호화 장치에 대해 설명한다.Hereinafter, a video decoding apparatus will be described.
도 10는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치를 도시한 것이다.10 illustrates an image decoding apparatus capable of implementing the techniques of the present disclosure.
영상 복호화 장치는 엔트로피 복호화부(1010), 역양자화부(1020), 역변환부(1030), 예측부(1040), 가산기(1050), 필터부(1060) 및 메모리(1070)를 포함한다. 도 4의 영상 부호화 장치와 마찬가지로, 영상 복호화 장치는 각 구성요소가 하드웨어 칩으로 구현될 수 있으며, 또는 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.The image decoding apparatus includes an entropy decoding unit 1010, an inverse quantization unit 1020, an inverse transformation unit 1030, a prediction unit 1040, an adder 1050, a filter unit 1060, and a memory 1070. 4, each component may be embodied as a hardware chip, or may be embodied as software, and a microprocessor may be implemented to execute the functions of software corresponding to each component.
엔트로피 복호화부(1010)는 영상 부호화 장치가 생성한 비트스트림에 CABAC 등의 엔트로피 복호화 프로세스를 적용하여, 현재 블록의 양자화된 변환 계수들의 1차원 어레이를 재구성할 수 있다. 또한, 엔트로피 복호화부(1010)는 엔트로피 복호화 프로세스를 적용하여 비트스트림 내에 부호화된 영상을 복호화하는 데에 유용한 움직임벡터 데이터, 및 다양한 신택스 엘리먼트들을 재생성할 수도 있다. The entropy decoding unit 1010 can reconstruct a one-dimensional array of quantized transform coefficients of the current block by applying an entropy decoding process such as CABAC to the bitstream generated by the image encoding apparatus. In addition, the entropy decoding unit 1010 may regenerate motion vector data and various syntax elements, which are useful for decoding an image encoded in a bitstream by applying an entropy decoding process.
엔트로피 복호화부(1010)는 SPS (Sequence Parameter Set) 또는 PPS (Picture Parameter Set)과 같은 하이 레벨 신택스(high level syntax)로부터 CTU size에 대한 정보를 추출하여 CTU의 크기를 결정하고, 픽처를 결정된 크기의 CTU로 분할한다. 그리고 CTU를 트리 구조의 최상위 레이어, 즉, 루트 노드로 결정하고, CTU에 대한 분할 정보를 추출함으로써 CTU를 트리 구조(예컨대, QTBT 구조 혹은 QTBTTT 구조)를 이용하여 분할한다. 일 예시로서, QTBT 구조를 사용하여 CTU를 분할하는 경우, 먼저 QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여 각 노드를 하위 레이어의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 BT의 분할과 관련된 제2 플래그(BT_split_flag) 및 분할 타입(분할 방향) 정보를 추출하여 해당 리프 노드를 BT 구조로 분할한다. 다른 일 예시로서, QTBTTT 구조를 사용하여 CTU를 분할하는 경우, QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여 각 노드를 하위 레이어의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 BT 또는 TT로 더 분할되는지 여부를 지시하는 분할 플래그(split_flag) 및 분할 타입(또는 분할 방향) 정보, BT 구조 인지 TT 구조 인지를 구별하는 추가 정보를 추출한다. 이를 통해 QT의 리프 노드 이하의 각 노드들을 BT 또는 TT 구조로 반복적으로(recursively) 분할한다.The entropy decoding unit 1010 extracts information on a CTU size from a high level syntax such as a sequence parameter set (SPS) or a picture parameter set (PPS) to determine the size of the CTU, Of CTU. Then, the CTU is divided into a tree structure (e.g., a QTBT structure or a QTBTTT structure) by determining the CTU as a top layer of the tree structure, i.e., a root node, and extracting partition information for the CTU. As an example, when the CTU is divided using the QTBT structure, the first flag (QT_split_flag) related to the division of the QT is first extracted and each node is divided into four nodes of the lower layer. For the node corresponding to the leaf node of the QT, the second flag (BT_split_flag) and the split type (split direction) information related to the BT split are extracted and the corresponding leaf node is divided into the BT structure. As another example, when the CTU is divided using the QTBTTT structure, the first flag (QT_split_flag) related to the division of the QT is extracted and each node is divided into four nodes of the lower layer. A split flag (split_flag) and a split type (or dividing direction) information indicating whether the node corresponding to the leaf node of the QT is further divided into BT or TT and additional information for distinguishing whether the BT structure or the TT structure . In this way, each node below the leaf nodes of the QT is recursively divided into BT or TT structures.
엔트로피 복호화부(1010)는 트리 구조의 분할을 통해 복호화하고자 하는 현재 블록(현재 블록)을 결정하게 되면, 현재 블록이 인트라 예측되었는지 아니면 인터 예측되었는지를 지시하는 예측 타입에 대한 정보를 추출한다. When the current block (current block) to be decoded is determined through the division of the tree structure, the entropy decoding unit 1010 extracts information on a prediction type indicating whether the current block is intra-predicted or inter-predicted.
예측 타입 정보가 인트라 예측을 지시하는 경우, 엔트로피 복호화부(1010)는 현재 블록의 인트라 예측정보(인트라 예측 모드)에 대한 신택스 요소를 추출한다. 먼저, 엔트로피 복호화부(1010)는 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되는지 여부를 지시하는 모드 정보(즉, MPM 플래그)를 추출한다. 또한, 일반적으로, 인트라 모드 부호화 정보가 현재 블록의 인트라 예측 모드가 MPM 중에서 선택됨을 지시하는 경우, MPM 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제1 인트라 식별정보를 추출하고, 인트라 모드 부호화 정보가 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되지 않음을 지시하는 경우, MPM이 아닌 나머지 모드들 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제2 인트라 식별정보를 추출한다. When the prediction type information indicates intra prediction, the entropy decoding unit 1010 extracts a syntax element for intra prediction information (intra prediction mode) of the current block. First, the entropy decoding unit 1010 extracts mode information (i.e., MPM flag) indicating whether the intra prediction mode of the current block is selected in the MPM. In general, when the intra-mode encoding information indicates that the intra-prediction mode of the current block is selected from the MPM, the first intra-identification information for indicating which mode of the MPM is selected as the intra-prediction mode of the current block is extracted And the intra-mode encoding information indicates that the intra-prediction mode of the current block is not selected among the MPMs, the second intra-prediction mode indicating which of the modes other than the MPM is selected as the intra- And extracts the identification information.
한편, 엔트로피 복호화부(1010)는 현재 블록의 양자화된 변환 계수들의 1차원 어레이를, 영상 부호화 장치의 엔트로피 부호화부(460)에 의해 사용된 스캔 패턴을 미러링하는 스캔 패턴(즉, 역 스캔 패턴)을 사용하여 스캔하여, 다시 2차원 블록 포맷의 양자화된 변환 계수들의 블록(즉, 계수 블록)으로 재변환할 수 있다. The entropy decoding unit 1010 converts the one-dimensional array of the quantized transform coefficients of the current block into a scan pattern (i.e., a reverse scan pattern) for mirroring the scan pattern used by the entropy encoding unit 460 of the image encoding apparatus, And then re-transformed into blocks of quantized transform coefficients (i.e., coefficient blocks) of the two-dimensional block format.
엔트로피 복호화부(1010)는 부호화된 비트스트림 내의 시그널링에 기초하여 스캔 패턴을 결정할 수도 있다. 예를 들어, 엔트로피 복호화부(1010)는 스캔 패턴을 명백하게 시그널링하는 신택스 엘리먼트를 수신할 수도 있다. 또한, 몇몇 실시예들에서, 엔트로피 복호화부(1010)는, 시그널링 없이, 스캔 패턴을 추론하는 것이 가능할 수도 있다. 스캔 패턴의 추론은 예측 타입, 블록 사이즈, 변환 유무 등의 부호화된 영상의 다른 특징들에 기초할 수도 있다. 일부 예시에서, 영상 부호화 장치로부터 시그널링된 계수 블록 내 마지막 유효 계수의 위치가 기설정된 임계값(예컨대, 계수 블록의 크기의 절반)보다 큰 경우에, 엔트로피 복호화부(1010)는 디폴트로 설정된 스캔 패턴(예컨대, 대각 스캐닝)을 사용할 수 있다. 일부 예시에서, 복호화하고자 하는 현재 블록이 인터 예측된 경우, 스캔 패턴은 미리 정해진 하나의 스캔 패턴(예컨대, 대각 스캔)일 수 있다. 일부 예시에서, 복호화하고자 하는 현재 블록이 인트라 예측된 경우, 스캔 패턴은 블록의 형태(예컨대, 가로로 긴 직사각형인지, 세로로 긴 직사각형인지, 정사각형인지, 블록이 기설정된 임계값보다 큰지)에 따라 복수의 가용한 스캔 패턴 중에서 추론될 수 있다.The entropy decoding unit 1010 may determine the scan pattern based on the signaling in the encoded bitstream. For example, the entropy decoding unit 1010 may receive a syntax element that explicitly signals a scan pattern. Further, in some embodiments, the entropy decoding unit 1010 may be able to infer the scan pattern without signaling. The inference of the scan pattern may be based on other characteristics of the encoded image, such as prediction type, block size, and whether or not to convert. In some examples, when the position of the last significant coefficient in the coefficient block signaled from the image coding apparatus is larger than a predetermined threshold value (for example, half of the size of the coefficient block), the entropy decoding unit 1010 sets the default scan pattern (E.g., diagonal scanning) may be used. In some examples, if the current block to be decoded is inter-predicted, the scan pattern may be a predetermined scan pattern (e.g., diagonal scan). In some examples, if the current block to be decoded is intra-predicted, the scan pattern may be determined according to the shape of the block (e.g., a horizontally long rectangle, a vertically long rectangle, a square, or a block greater than a predetermined threshold) It can be deduced from a plurality of usable scan patterns.
엔트로피 복호화부(1010)는 2차원의 양자화된 변환 계수들의 블록(즉, 계수 블록)을 재구성하기 위해, 결정된 스캔 패턴을 기초로, 변환 계수들에 관한 신택스 엘리먼트들(예컨대, 유효(즉, 비-제로) 계수들의 포지션들에 관한 신택스 엘리먼트들, 유효 계수들의 레벨들에 관한 신택스 엘리먼트들, 및/또는 유효 계수들의 부호들에 관한 신택스 엘리먼트들)을 파싱할 수 있다. The entropy decoding unit 1010 generates syntax elements (e.g., valid (i. E., Non-processed) coefficients related to the transform coefficients based on the determined scan pattern to reconstruct a block of two- Syntax elements for the positions of the coefficients, syntax elements for the positions of the coefficients, syntax elements for the levels of the significant coefficients, and / or syntax elements for the signs of the significant coefficients).
역양자화부(1020)는 양자화된 변환계수들을 역양자화하고 역변환부(1030)는 역양자화된 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환하여 잔차신호들을 복원함으로써 현재 블록에 대한 잔차블록을 생성한다.The inverse quantization unit 1020 dequantizes the quantized transform coefficients and the inverse transform unit 1030 inversely transforms the inversely quantized transform coefficients from the frequency domain to the spatial domain to generate residual blocks for the current block by restoring the residual signals.
예측부(1040)는 인트라 예측부(1042) 및 인터 예측부(1044)를 포함한다. 인트라 예측부(1042)는 현재 블록의 예측 타입인 인트라 예측일 때 활성화되고, 인터 예측부(1044)는 현재 블록의 예측 타입인 인트라 예측일 때 활성화된다.The prediction unit 1040 includes an intra prediction unit 1042 and an inter prediction unit 1044. The intra prediction unit 1042 is activated when the intra prediction is the prediction type of the current block, and the inter prediction unit 1044 is activated when the intra prediction is the prediction type of the current block.
인트라 예측부(1042)는 엔트로피 복호화부(1010)로부터 추출된 인트라 예측 모드에 대한 신택스 요소로부터 복수의 인트라 예측 모드 중 현재 블록의 인트라 예측 모드를 결정하고, 인트라 예측 모드에 따라 현재 블록 주변의 참조 픽셀들을 이용하여 현재 블록을 예측한다. The intra prediction unit 1042 determines an intra prediction mode of the current block among the plurality of intra prediction modes from the syntax element for the intra prediction mode extracted from the entropy decoding unit 1010, The pixels are used to predict the current block.
현재 블록의 인트라 예측 모드를 결정하기 위해, 인트라 예측부(1042)는 현재 블록의 주변 블록으로부터 기 결정된 개수의 MPM들을 포함하는 MPM 리스트를 구성한다. MPM 리스트를 구성하는 방법은 도 4의 인트라 예측부(422)와 동일하다. To determine the intra prediction mode of the current block, the intra prediction unit 1042 constructs an MPM list including a predetermined number of MPMs from neighboring blocks of the current block. The method of constructing the MPM list is the same as that of the intra prediction unit 422 of FIG.
일반적으로, 인트라 예측의 모드 정보(즉, MPM 플래그)가 현재 블록의 인트라 예측 모드가 MPM 중에서 선택됨을 지시하는 경우에는, 인트라 예측부(1042)는 MPM 리스트 내의 MPM들 중 제1 인트라 식별정보에 의해 지시되는 MPM을 현재 블록의 인트라 예측 모드로 선택한다. 반면, 모드 정보가 현재 블록의 인트라 예측 모드가 MPM으로부터 선택되지 않음을 지시하는 경우, 제2 인트라 식별정보를 이용하여 MPM 리스트 내의 MPM들을 제외한 나머지 인트라 예측 모드들 중에서 현재 블록의 인트라 예측 모드를 결정한다. In general, when the intra prediction mode information (i.e., the MPM flag) indicates that the intra prediction mode of the current block is selected from the MPM, the intra prediction unit 1042 sets the intra prediction mode And selects the MPM indicated by the intra prediction mode of the current block. On the other hand, when the mode information indicates that the intra prediction mode of the current block is not selected from the MPM, the intra prediction mode of the current block is determined among the intra prediction modes other than the MPMs in the MPM list using the second intra identification information do.
인터 예측부(1044)는 엔트로피 복호화부(1010)로부터 추출된 신택스 요소를 이용하여 현재 블록의 움직임정보를 결정하고, 결정된 움직임정보를 이용하여 현재 블록을 예측한다.The inter-prediction unit 1044 determines the motion information of the current block using the syntax element extracted from the entropy decoding unit 1010, and predicts the current block using the determined motion information.
가산기(1050)는 역변환부로부터 출력되는 잔차블록과 인터 예측부 또는 인트라 예측부로부터 출력되는 예측블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록 내의 픽셀들은 이후에 복호화할 블록을 인트라 예측할 때의 참조픽셀로서 활용된다.The adder 1050 adds the residual block output from the inverse transform unit and the prediction block output from the inter prediction unit or the intra prediction unit to reconstruct the current block. The pixels in the reconstructed current block are utilized as reference pixels for intra prediction of a block to be decoded later.
필터부(1060)는 블록 단위의 복호화로 인해 발생하는 블록킹 현상(blocking artifact)를 제거하기 위해 복원된 블록 간의 경계를 디블록킹 필터링하고 메모리(1070)에 저장한다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 복호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.The filter unit 1060 deblock-filters the boundaries between the restored blocks and stores them in the memory 1070 in order to remove blocking artifacts caused by decoding on a block-by-block basis. 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 decoded later.
도 11은 도 10의 영상 복호화 장치에서 사용되는 엔트로피 복호화부(1010)의 일 예를 도시하는 블록도이다. 도 11에 도시된 바와 같이, 엔트로피 복호화부는 스캔 패턴 선택부(1110), 스캔부(1120), 엔트로피 복호화 엔진(1130), 및 스캔 패턴 메모리(1140)를 포함할 수 있다. 도 11에는 엔트로피 복호화부의 기능적인 측면에서 구분된 콤포넌트들(1110~1140)이 도시되어 있지만, 이들 콤포넌트들(1110~1140)은 서로 고도로 통합될 수도 있음에 유의한다.11 is a block diagram showing an example of an entropy decoding unit 1010 used in the video decoding apparatus of FIG. 11, the entropy decoding unit may include a scan pattern selection unit 1110, a scan unit 1120, an entropy decoding engine 1130, and a scan pattern memory 1140. It should be noted that although the components 1110 to 1140 are shown in Fig. 11 in terms of the functional aspects of the entropy decoding unit, these components 1110 to 1140 may be highly integrated with each other.
엔트로피 복호화 엔진(1130)은 엔트로피 복호화 프로세스, 예를 들어, CABAC 프로세스를 비트스트림에 적용하여 변환 계수들의 1차원 어레이를 재구성할 수 있다. 잔차 변환 계수 데이터에 추가하여, 엔트로피 복호화 엔진(1130)은 비트스트림에 엔트로피 복호화를 적용하여 비트스트림 내에 부호화된 영상을 복호화하는 데에 유용한 다양한 신택스 엘리먼트들을 재구성할 수도 있다. Entropy decoding engine 1130 may apply an entropy decoding process, e.g., a CABAC process, to the bitstream to reconstruct a one-dimensional array of transform coefficients. In addition to the residual transform coefficient data, the entropy decoding engine 1130 may apply entropy decoding to the bitstream to reconstruct various syntax elements useful for decoding the encoded image in the bitstream.
스캔 패턴 선택부(1110)는 가용한 스캔 패턴들(예컨대, 대각, 수평, 및 수직 스캔 패턴) 중에서, 스캔부(1120)에 의해 사용될, 스캔 패턴을 선택한다. 몇몇 예시들에서, 스캔 패턴 선택부(1110)는 비트스트림 내의 시그널링에 기초하여 스캔 패턴을 결정할 수 있다. 예를 들어, 스캔 패턴 선택부(1110)는 스캔 패턴을 명시적으로 시그널링하는 신택스 엘리먼트(예컨대, 인덱스)을 엔트로피 복호화 엔진로부터 수신할 수도 있다. 몇몇 예시들에서, 스캔 패턴 선택부(1110)는, 시그널링의 수신 없이, 스캔 패턴을 추론할 수 있다. 스캔 패턴은 예측 타입, 블록 사이즈, 변환 여부, 또는 부호화된 영상의 다른 특징들에 기초할 수도 있다. 일부 실시예에서, 복호화하고자 하는 현재 블록이 인터 예측된 경우, 스캔 패턴은 미리 정해진 하나의 스캔 패턴(예컨대, 대각 스캔)일 수 있다. 일부 실시예에서, 복호화하고자 하는 현재 블록이 인트라 예측된 경우, 블록의 형태(예컨대, 가로로 긴 직사각형인지, 세로로 긴 직사각형인지, 정사각형인지, 블록이 기설정된 임계값보다 큰지)에 따라 복수의 가용한 스캔 패턴 중에서 추론될 수 있다. 스캔 패턴 메모리(1140)는 스캔 패턴을 정의하는 명령들, 테이블 및/또는 데이터를 저장할 수도 있다.The scan pattern selection unit 1110 selects a scan pattern to be used by the scan unit 1120 among available scan patterns (e.g., diagonal, horizontal, and vertical scan patterns). In some examples, the scan pattern selector 1110 can determine the scan pattern based on the signaling in the bitstream. For example, the scan pattern selector 1110 may receive a syntax element (e.g., an index) that explicitly signals the scan pattern from the entropy decoding engine. In some examples, the scan pattern selector 1110 can deduce a scan pattern without receiving signaling. The scan pattern may be based on prediction type, block size, whether to convert, or other characteristics of the encoded image. In some embodiments, if the current block to be decoded is inter-predicted, the scan pattern may be a predetermined scan pattern (e.g., a diagonal scan). In some embodiments, when the current block to be decoded is intra-predicted, a plurality of blocks (e.g., a block of a long horizontal rectangle, a vertically long rectangle, a square, or a block larger than a predetermined threshold value) It can be deduced from available scan patterns. The scan pattern memory 1140 may store instructions, tables and / or data defining scan patterns.
스캔부(1120)는 스캔 패턴 선택부(1110)로부터 스캔 패턴을 수신하며, 수신된 스캔 패턴을 적용하여 변환 계수들의 1차원 어레이로부터 2차원 변환 계수의 블록을 생성한다. The scan unit 1120 receives a scan pattern from the scan pattern selection unit 1110 and generates a block of two-dimensional transform coefficients from the one-dimensional array of the transform coefficients by applying the received scan pattern.
도 12는 본 발명의 일 실시예에 따른, 영상 복호화 장치가 스캔 패턴을 결정하는 방법을 도시한 흐름도이다. 도 12에 예시된 방법은 예를 들어, 도 10의 영상 복호화 장치의 엔트로피 복호화부(1010)에 의해 수행될 수도 있다. 다른 예들에서, 영상 복호화 장치의 하나 이상의 다른 유닛들이 추가적으로 본 개시의 기법들을 수행하는 데 관여할 수도 있다.12 is a flowchart illustrating a method of determining a scan pattern by the image decoding apparatus according to an embodiment of the present invention. The method illustrated in FIG. 12 may be performed, for example, by the entropy decoding unit 1010 of the video decoding apparatus of FIG. In other instances, one or more other units of the video decoding apparatus may additionally be involved in performing the techniques of the present disclosure.
사전 단계로서, 영상 복호화 장치는, 영상 부호화 장치로부터 수신한 비트스트림을 엔트로피 복호화하여, 블록 분할과 관련된 정보를 추출하여 복호화하고자 하는 현재 블록을 결정할 수 있다. As a preliminary step, the video decoding apparatus entropy-decodes the bitstream received from the video encoding apparatus, extracts information related to the block division, and determines a current block to be decoded.
영상 복호화 장치는, 현재 블록이 인트라 예측되었는지 아니면 인터 예측되었는지를 판단하기 위해, 비트스트림으로부터 예측 타입에 대한 정보를 추출한다(S1210). The video decoding apparatus extracts information on the prediction type from the bitstream to determine whether the current block is intra-predicted or inter-predicted (S1210).
예측 타입에 대한 정보가 인터 예측되었다고 지시하는 경우에(S1210의 ‘아니오’), 영상 복호화 장치는 대각 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1250). If it is determined that the information on the predictive type is inter-predicted (No in S1210), the image decoding apparatus determines the diagonal scan pattern as a scan pattern to be applied to the transform coefficients of the current block (S1250).
예측 타입에 대한 정보가 인트라 예측되었다고 지시하는 경우에(S1210의 ‘예’), 영상 복호화 장치는 현재 블록의 너비 및 높이가 각각 임계값(th)보다 작은지 여부를 더 판단한다(S1220). 현재 블록의 너비 및 높이 중 적어도 하나가 임계값보다 작지 않은 경우에(S1220의 ‘아니오’), 영상 복호화 장치는 대각 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1250). 현재 블록의 너비 및 높이가 각각 임계값보다 작은 경우에(S1220의 ‘예’), 영상 복호화 장치는 현재 블록의 너비와 높이가 서로 동일한지 여부(즉, 현재 블록이 정사각형인지 여부)를 더 판단한다(S1230). If it is determined that the prediction type information is intra-predicted (Yes in S1210), the video decoding apparatus determines whether the width and height of the current block are smaller than the threshold value th (S1220). If at least one of the width and the height of the current block is not smaller than the threshold value (NO at S1220), the image decoding apparatus determines the diagonal scan pattern as a scan pattern to be applied to the transform coefficients of the current block (S1250) . If the width and height of the current block are respectively less than the threshold value (Yes in S1220), the image decoding apparatus judges whether the width and height of the current block are the same (i.e., whether the current block is a square) (S1230).
현재 블록의 너비와 높이가 동일한 경우에(즉, 현재 블록이 정사각형인 경우에; S1230의 ‘예’), 영상 복호화 장치는 대각 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1250).If the width and height of the current block are the same (i.e., the current block is a square, YES in S1230), the image decoding apparatus determines a scan pattern to be applied to the transform coefficients of the current block (S1250).
현재 블록의 너비와 높이가 동일하지 않은 경우에(즉, 현재 블록이 정사각형이 아닌 경우에; S1230의 ‘아니오’), 영상 복호화 장치는 현재 블록의 높이가 너비보다 큰지 여부(즉, 현재 블록이 세로로 긴 직사각형인지 여부; S1240)를 더 판단한다. If the width and height of the current block are not equal to each other (i.e., the current block is not a square), the image decoding apparatus determines whether the height of the current block is greater than the width S1240) is further determined.
현재 블록의 높이가 너비보다 큰 경우에(즉, 현재 블록이 세로로 긴 직사각형인 경우에; S1240의 ‘예’), 영상 복호화 장치는 수직 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1260).If the current block height is greater than the width (i.e., if the current block is a vertically long rectangle; " Yes " in S1240), the image decoding apparatus sets the vertical scan pattern to a scan pattern (S1260).
현재 블록의 높이가 너비보다 작은 경우에(즉, 현재 블록이 가로로 긴 직사각형인 경우에; S1240의 ‘아니오’), 영상 복호화 장치는 수평 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1270).If the height of the current block is smaller than the width (i.e., if the current block is a horizontally elongated rectangle; " NO " in S1240), the image decoding apparatus adds a horizontal scan pattern to a scan pattern (S1270).
영상 복호화 장치는 결정된 스캔 패턴에 기초하여, 변환 계수들에 관한 신택스 엘리먼트들(예컨대, 유효(즉, 비-제로) 계수들의 포지션들에 관한 신택스 엘리먼트들, 유효 계수들의 레벨들에 관한 신택스 엘리먼트들, 및/또는 유효 계수들의 부호들에 관한 신택스 엘리먼트들)을 파싱한다.The video decoding apparatus determines, based on the determined scan pattern, syntax elements relating to positions of valid coefficients (e.g., valid (i.e., non-zero) coefficients on transform coefficients, syntax elements on levels of valid coefficients , And / or syntax elements for the signs of significant coefficients).
영상 복호화 장치는 2차원의 양자화된 변환 계수들의 블록(즉, 계수 블록)을 재구성하기 위해, 결정된 스캔 패턴을 기초로, 변환 계수들에 관한 신택스 엘리먼트들(예컨대, 유효(즉, 비-제로) 계수들의 포지션들에 관한 신택스 엘리먼트들, 유효 계수들의 레벨들에 관한 신택스 엘리먼트들, 및/또는 유효 계수들의 부호들에 관한 신택스 엘리먼트들)을 파싱할 수 있다. The video decoding apparatus may be configured to generate syntax elements (e.g., valid (i.e., non-zero)) for transform coefficients based on a determined scan pattern to reconstruct a block of 2-dimensional quantized transform coefficients (i.e., Syntax elements for the positions of coefficients, syntax elements for the levels of significant coefficients, and / or syntax elements for the signs of significant coefficients).
도 13는 본 발명의 다른 실시예에 따른, 영상 복호화 장치가 스캔 패턴을 결정하는 방법을 도시한 흐름도이다. 본 실시예의 스캔 패턴 결정 방식은, 변환 계수들의 블록 내에서 스캔 패턴에 따른 마지막 유효 계수의 위치가 변환 블록 내 좌상귀 픽셀 (0,0) 위치에 충분히 가까우면 기설정된 디폴트 스캔 패턴을 사용하고, 반대로 (0,0)에서 멀리 떨어진 경우에는, 복수의 가용 스캔 패턴 중 영상 부호화 장치에 의해 선택된 스캔 패턴이 명시적으로 시그널링되는 방식이다. 13 is a flowchart illustrating a method of determining a scan pattern by an image decoding apparatus according to another embodiment of the present invention. The scan pattern determination method of this embodiment uses a predetermined default scan pattern if the position of the last valid coefficient according to the scan pattern in the block of transform coefficients is sufficiently close to the position of the left offset pixel (0,0) in the transform block, (0, 0), the scan pattern selected by the image encoding apparatus among the plurality of available scan patterns is explicitly signaled.
영상 복호화 장치는, 비트스트림으로부터, 계수 블록 내에서 스캔 패턴에 따른 마지막 유효 계수의 위치를 가리키는 정보를 추출한다. 마지막 유효 계수는 변수들 last_significant_coeff_x 및 last_significant_coeff_y에 의해 식별될 수 있다(S1310).The video decoding apparatus extracts, from the bit stream, information indicating the position of the last valid coefficient according to the scan pattern in the coefficient block. The last effective coefficient may be identified by the variables last_significant_coeff_x and last_significant_coeff_y (S1310).
영상 복호화 장치는 마지막 유효 계수의 위치가 기설정된 임계 위치(혹은 임계값)보다 큰지 여부를 판단한다(S1320). 상기 임계 위치는 현재 블록의 너비와 높이의 함수일 수 있으며, 현재 블록의 너비와 높이와 무관한 특정 상수일 수도 있다. 예를 들어, last_significant_coeff_x에 관련된 임계값은 "현재 블록의 너비/2"이고, last_signicant_coeff_y에 관련된 임계값은 "현재 블록의 높이/2"일 수 있다.The video decoding apparatus determines whether the position of the last valid coefficient is larger than a preset threshold position (S1320). The critical position may be a function of the width and height of the current block and may be a specific constant independent of the width and height of the current block. For example, the threshold associated with last_significant_coeff_x may be "width of current block / 2" and the threshold associated with last_signicant_coeff_y may be "height of current block / 2".
*마지막 유효 계수의 위치가 기설정된 임계값보다 크지 않은 경우에(S1320의 ‘아니오’), 영상 복호화 장치는 디폴트로 설정된 스캔 패턴(예컨대, 대각 스캐닝)을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1350).If the position of the last valid coefficient is not larger than the predetermined threshold value (NO in S1320), the image decoding apparatus sets a scan pattern (for example, diagonal scanning) set in default to a scan (S1350).
마지막 유효 계수의 위치가 기설정된 임계값보다 큰 경우에(S1320의 ‘예’), 영상 복호화 장치는 스캔 패턴 후보들의 세트 중에서 인코더에 의해 선택된 스캔 패턴을 가리키는 신택스 엘리먼트를 파싱한다(S1330). 영상 복호화 장치는 신택스 엘리먼트가 가리키는 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다. 신택스 엘리먼트는 스캔 패턴 후보들의 세트에서 선택된 스캔 패턴의 인덱스 값을 포함할 수 있다. 스캔 패턴을 표현하는 이진화 방법에는 TU(truncated unary) 코딩이 사용될 수 있다. 예를 들어, diagonal 스캐닝에 대해서는 “0”으로 표현하고, vertical 스캐닝에 대해서는 “10”으로 표현하며, horizontal 스캐닝에 대해서는 “11”로 표현 가능하다. 다른 예시로서, 스캔 패턴이 4개인 경우에, 각 스캔 패턴들은 2 bits의 FL(fixed length) 코드로 표현 가능하다. 또 다른 예시로서, 스캔 패턴이 2개인 경우에, 각 스캔 패턴들은 1bit의 FL(fixed length) 코드로 표현 가능하다. If the position of the last valid coefficient is larger than a predetermined threshold (YES in S1320), the image decoding apparatus parses a syntax element indicating a scan pattern selected by the encoder among the set of scan pattern candidates (S1330). The image decoding apparatus determines the scan pattern indicated by the syntax element as a scan pattern to be applied to the transform coefficients of the current block. The syntax element may include an index value of a scan pattern selected from a set of scan pattern candidates. TU (truncated unary) coding may be used for the binarization method of representing the scan pattern. For example, diagonal scanning can be expressed as "0", vertical scanning can be expressed as "10", and horizontal scanning can be expressed as "11". As another example, when there are four scan patterns, each scan pattern can be represented by a fixed length (FL) code of 2 bits. As another example, when there are two scan patterns, each scan pattern can be represented by a fixed length (FL) code of 1 bit.
영상 복호화 장치는 2차원의 양자화된 변환 계수들의 블록(즉, 계수 블록)을 재구성하기 위해, S1330 또는 S1350 단계에서 결정된 스캔 패턴을 기초로, 변환 계수들에 관한 신택스 엘리먼트들(예컨대, 유효(즉, 비-제로) 계수들의 포지션들에 관한 신택스 엘리먼트들, 유효 계수들의 레벨들에 관한 신택스 엘리먼트들, 및/또는 유효 계수들의 부호들에 관한 신택스 엘리먼트들)을 파싱할 수 있다. The image decoding apparatus generates syntax elements (e.g., valid (i. E., Valid (i. E., Valid (i. E. , Syntax elements for the positions of the coefficients, syntax elements for the levels of significant coefficients, and / or syntax elements for the signs of the significant coefficients).
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing description is merely illustrative of the technical idea of the present embodiment, and various modifications and changes may be made to those skilled in the art without departing from the essential characteristics of the embodiments. Therefore, the present embodiments are to be construed as illustrative rather than restrictive, and the scope of the technical idea of the present embodiment is not limited by these embodiments. The scope of protection of the present embodiment should be construed according to the following claims, and all technical ideas within the scope of equivalents thereof should be construed as being included in the scope of the present invention.
CROSS-REFERENCE TO RELATED APPLICATIONCROSS-REFERENCE TO RELATED APPLICATION
본 특허출원은, 본 명세서에 그 전체가 참고로서 포함되는, 2017년 10월 20일 한국에 출원한 특허출원번호 제10-2017-0136811호 및 2018년 01월 05일 한국에 출원한 특허출원번호 제10-2018-0001860호에 대해 우선권을 주장한다.This patent application is a continuation-in-part of U.S. Patent Application No. 10-2017-0136811 filed on October 20, 2017, which is incorporated herein by reference in its entirety, and U.S. Patent Application No. Priority is claimed to 10-2018-0001860.

Claims (12)

  1. 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 방법으로서,A method for determining a scan pattern to be applied to transform coefficients of a current block in a video decoding process,
    현재 블록이 인트라 예측 방식으로 부호화되었는지 아니면 인터 예측 방식으로 부호화되었는지 여부를 판단하는 단계;Determining whether a current block is coded in an intra prediction mode or an inter prediction mode;
    상기 현재 블록이 인트라 예측 방식으로 부호화된 경우에, 상기 현재 블록의 너비와 높이를 서로 비교하는 단계; 및Comparing a width and a height of the current block with each other when the current block is coded in an intra prediction mode; And
    상기 현재 블록이 세로로 긴 직사각형이면 수직 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 현재 블록이 가로로 긴 직사각형이면 수평 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 변환 계수들의 블록이 정사각형이면, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계;If the current block is a vertically long rectangle, a vertical scan pattern is determined as a scan pattern to be applied to the transform coefficients. If the current block is a horizontally long rectangle, a horizontal scan pattern is determined as a scan pattern to be applied to the transform coefficients And if the block of transform coefficients is square, determining a diagonal scan pattern as a scan pattern to be applied to the transform coefficients;
    를 포함하는, 방법./ RTI >
  2. 제1항에 있어서,The method according to claim 1,
    상기 현재 블록의 너비 및 높이를 각각 기설정된 임계값과 비교하는 과정; 및Comparing a width and a height of the current block with predetermined threshold values, respectively; And
    상기 현재 블록의 너비 및 높이가 각각 기설정된 임계값보다 작지 않으면, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 더 포함하는, 방법.Determining a diagonal scan pattern as a scan pattern to be applied to the transform coefficients if the width and height of the current block are not less than a predetermined threshold, respectively.
  3. 제1항에 있어서,The method according to claim 1,
    상기 현재 블록이 인터 예측 방식으로 부호화된 경우에, When the current block is coded by the inter prediction method,
    대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 더 포함하는, 방법.Determining a diagonal scan pattern as a scan pattern to be applied to the transform coefficients.
  4. 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 장치로서,An apparatus for determining a scan pattern to be applied to transform coefficients of a current block in an image decoding process,
    메모리; 및Memory; And
    하나 이상의 프로세서들을 포함하며, Comprising one or more processors,
    상기 하나 이상의 프로세서들은,The one or more processors,
    현재 블록이 인트라 예측 방식으로 부호화되었는지 아니면 인터 예측 방식으로 부호화되었는지 여부를 판단하는 단계;Determining whether a current block is coded in an intra prediction mode or an inter prediction mode;
    상기 현재 블록이 인트라 예측 방식으로 부호화된 경우에, 상기 현재 블록의 너비와 높이를 서로 비교하는 단계; 및Comparing a width and a height of the current block with each other when the current block is coded in an intra prediction mode; And
    상기 현재 블록이 세로로 긴 직사각형이면 수직 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 현재 블록이 가로로 긴 직사각형이면 수평 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 변환 계수들의 블록이 정사각형이면, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 수행하도록 구성된 것을 특징으로 하는, 장치.If the current block is a vertically long rectangle, a vertical scan pattern is determined as a scan pattern to be applied to the transform coefficients. If the current block is a horizontally long rectangle, a horizontal scan pattern is determined as a scan pattern to be applied to the transform coefficients And if the block of transform coefficients is square, determining a diagonal scan pattern as a scan pattern to be applied to the transform coefficients.
  5. 제4항에 있어서,5. The method of claim 4,
    상기 하나 이상의 프로세서들은,The one or more processors,
    상기 현재 블록의 너비 및 높이를 각각 기설정된 임계값과 비교하는 과정; 및Comparing a width and a height of the current block with predetermined threshold values, respectively; And
    상기 현재 블록의 너비 및 높이가 각각 기설정된 임계값보다 작지 않으면, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 더 수행하도록 구성된 것을 특징으로 하는, 장치.And to determine a diagonal scan pattern as a scan pattern to be applied to the transform coefficients if the width and height of the current block are not less than predetermined threshold values respectively.
  6. 제4항에 있어서,5. The method of claim 4,
    상기 하나 이상의 프로세서들은,The one or more processors,
    상기 현재 블록이 인터 예측 방식으로 부호화된 경우에, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 더 수행하도록 구성된 것을 특징으로 하는, 장치.And a step of determining a diagonal scan pattern as a scan pattern to be applied to the transform coefficients when the current block is coded by the inter prediction method.
  7. 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 방법으로서,A method for determining a scan pattern to be applied to transform coefficients of a current block in a video decoding process,
    상기 변환 계수들의 블록 내에서 마지막 유효 계수의 위치를 나타내는 신택스 엘리먼트를 파싱하는 단계;Parsing a syntax element indicating a location of a last significant coefficient within the block of transform coefficients;
    상기 마지막 유효 계수의 위치가 기설정된 임계값보다 큰지 여부를 판단하는 단계;Determining whether a position of the last significant coefficient is greater than a preset threshold value;
    상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크면, 복수의 가용 스캔 패턴 중에서 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴을 지시하는 신택스 엘리먼트를 파싱하는 단계; 및Parsing a syntax element indicating a scan pattern for a one-dimensional array of the transform coefficients from a plurality of available scan patterns if the position of the last effective coefficient is greater than a predetermined threshold; And
    상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크지 않으면, 상기 복수의 가용 스캔 패턴 중에서 디폴트로 설정된 스캔 패턴을 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴으로 결정하는 단계;Determining a scan pattern set as a default among the plurality of available scan patterns as a scan pattern for the one-dimensional array of the transform coefficients if the position of the last effective coefficient is not greater than a preset threshold value;
    을 포함하는 것을 특징으로 하는, 방법.≪ / RTI >
  8. 제7항에 있어서,8. The method of claim 7,
    상기 기설정된 임계값은,The predetermined threshold value may be a predetermined threshold value,
    상기 변환 계수의 크기의 함수인 것을 특징으로 하는, 방법.And a function of the magnitude of the transform coefficients.
  9. 제7항에 있어서,8. The method of claim 7,
    상기 디폴트로 설정된 스캔 패턴은,The scan pattern set to the default,
    대각 스캔 패턴인 것을 특징으로 하는, 방법.Gt; is a diagonal scan pattern. ≪ / RTI >
  10. 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 장치로서,An apparatus for determining a scan pattern to be applied to transform coefficients of a current block in an image decoding process,
    명령어들을 저장하는 메모리; 및A memory for storing instructions; And
    하나 이상의 프로세서들을 포함하며, Comprising one or more processors,
    상기 명령어들은 상기 하나 이상의 프로세서들에 의해 수행되는 경우에, 상기 장치로 하여금Wherein the instructions, when performed by the one or more processors,
    상기 변환 계수들의 블록 내에서 마지막 유효 계수의 위치를 나타내는 신택스 엘리먼트를 파싱하는 단계;Parsing a syntax element indicating a location of a last significant coefficient within the block of transform coefficients;
    상기 마지막 유효 계수의 위치가 기설정된 임계값보다 큰지 여부를 판단하는 단계;Determining whether a position of the last significant coefficient is greater than a preset threshold value;
    상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크면, 복수의 가용 스캔 패턴 중에서 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴을 지시하는 신택스 엘리먼트를 파싱하는 단계; 및Parsing a syntax element indicating a scan pattern for a one-dimensional array of the transform coefficients from a plurality of available scan patterns if the position of the last effective coefficient is greater than a predetermined threshold; And
    상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크지 않으면, 상기 복수의 가용 스캔 패턴 중에서 디폴트로 설정된 스캔 패턴을 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴으로 결정하는 단계;Determining a scan pattern set as a default among the plurality of available scan patterns as a scan pattern for the one-dimensional array of the transform coefficients if the position of the last effective coefficient is not greater than a preset threshold value;
    를 수행하도록 구성된 것을 특징으로 하는, 장치.And to perform the processing.
  11. 제10항에 있어서,11. The method of claim 10,
    상기 기설정된 임계값은,The predetermined threshold value may be a predetermined threshold value,
    상기 변환 계수의 크기의 함수인 것을 특징으로 하는, 장치.Is a function of the magnitude of the transform coefficients.
  12. 제10항에 있어서,11. The method of claim 10,
    상기 디폴트로 설정된 스캔 패턴은,The scan pattern set to the default,
    대각 스캔 패턴인 것을 특징으로 하는, 장치.Wherein the device is a diagonal scan pattern.
PCT/KR2018/012477 2017-10-20 2018-10-22 Apparatus and method for image encoding or decoding WO2019078693A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20170136811 2017-10-20
KR10-2017-0136811 2017-10-20
KR1020180001860A KR102628530B1 (en) 2017-10-20 2018-01-05 Apparatus and Method for Video Encoding or Decoding
KR10-2018-0001860 2018-01-05

Publications (1)

Publication Number Publication Date
WO2019078693A1 true WO2019078693A1 (en) 2019-04-25

Family

ID=66174191

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/012477 WO2019078693A1 (en) 2017-10-20 2018-10-22 Apparatus and method for image encoding or decoding

Country Status (1)

Country Link
WO (1) WO2019078693A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114097233A (en) * 2019-06-24 2022-02-25 现代自动车株式会社 Method and apparatus for intra prediction encoding of video data

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140120891A (en) * 2011-12-20 2014-10-14 모토로라 모빌리티 엘엘씨 Method and apparatus for efficient transform unit encoding
KR20150003319A (en) * 2012-04-16 2015-01-08 퀄컴 인코포레이티드 Coefficient groups and coefficient coding for coefficient scans
KR101569259B1 (en) * 2010-10-22 2015-11-13 퀄컴 인코포레이티드 Adaptive scanning of transform coefficients for video coding
KR20160121462A (en) * 2011-01-13 2016-10-19 삼성전자주식회사 Method and appratus for encoding video using selective scan mode, method and appratus for decoding video using selective scan mode
KR20170063459A (en) * 2010-07-09 2017-06-08 삼성전자주식회사 Method and apparatus for entropy Coding and decoding of transformation coefficient

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170063459A (en) * 2010-07-09 2017-06-08 삼성전자주식회사 Method and apparatus for entropy Coding and decoding of transformation coefficient
KR101569259B1 (en) * 2010-10-22 2015-11-13 퀄컴 인코포레이티드 Adaptive scanning of transform coefficients for video coding
KR20160121462A (en) * 2011-01-13 2016-10-19 삼성전자주식회사 Method and appratus for encoding video using selective scan mode, method and appratus for decoding video using selective scan mode
KR20140120891A (en) * 2011-12-20 2014-10-14 모토로라 모빌리티 엘엘씨 Method and apparatus for efficient transform unit encoding
KR20150003319A (en) * 2012-04-16 2015-01-08 퀄컴 인코포레이티드 Coefficient groups and coefficient coding for coefficient scans

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114097233A (en) * 2019-06-24 2022-02-25 现代自动车株式会社 Method and apparatus for intra prediction encoding of video data

Similar Documents

Publication Publication Date Title
WO2013069932A1 (en) Method and apparatus for encoding image, and method and apparatus for decoding image
WO2012018197A2 (en) Intra-prediction decoding device
WO2012005551A2 (en) Method and apparatus for entropy encoding/decoding a transform coefficient
WO2011133002A2 (en) Image encoding device and method
WO2020185009A1 (en) Method and apparatus for efficiently coding residual blocks
WO2020185004A1 (en) Intra prediction method and device for predicting prediction unit and dividing prediction unit into sub-units
WO2011139099A2 (en) Method and apparatus for processing a video signal
WO2012057528A2 (en) Adaptive intra-prediction encoding and decoding method
WO2013157820A1 (en) Video coding method and device using high-speed edge detection, and related video decoding method and device
JP7293376B2 (en) Intra-prediction-based video signal processing method and apparatus
WO2020251260A1 (en) Video signal processing method and device using block dpcm prediction method
WO2018128466A1 (en) Device and method for encoding or decoding image
WO2019132567A1 (en) Video coding method and device which use sub-block unit intra prediction
WO2020231228A1 (en) Inverse quantization device and method used in image decoding device
WO2022114742A1 (en) Apparatus and method for video encoding and decoding
WO2019059721A1 (en) Image encoding and decoding using resolution enhancement technique
WO2018074812A1 (en) Device and method for encoding or decoding image
WO2019135628A1 (en) Method and device for encoding or decoding image
WO2019135630A1 (en) Hiding sign data of transform coefficient
WO2018169267A1 (en) Device and method for encoding or decoding image
WO2021137445A1 (en) Method for determining transform kernels for video signal processing and apparatus therefor
WO2020242181A1 (en) Intra mode candidate configuration method and image decoding device
WO2019078693A1 (en) Apparatus and method for image encoding or decoding
WO2018124686A1 (en) Image encoding and decoding using intra prediction
WO2023038447A1 (en) Video encoding/decoding method and device

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: 18867609

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: 18867609

Country of ref document: EP

Kind code of ref document: A1