Decoding device, encoding device, and transmitting device

By adopting CABAC entropy coding with QT, BT and TT structures and context model in image coding, the problem of efficient compression of high-resolution images is solved, and the coding efficiency and pipeline delay performance are improved.

CN116527900BActive Publication Date: 2025-10-10LG ELECTRONICS INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310650939.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-07-02
Filing Date
2019-06-14
Publication Date
2025-10-10
Estimated Expiration
2039-06-14

AI Technical Summary

Technical Problem

The increase in data volume of high-resolution and high-quality images leads to rising transmission and storage costs, and existing technologies are difficult to compress and encode efficiently.

Method used

The quadtree (QT), binary tree (BT) and ternary tree (TT) structures are used, combined with the context model, and CABAC entropy coding is used to optimize the image block structure and segmentation to enhance coding efficiency.

Benefits of technology

Improved image compression efficiency, improved pipeline latency for intra-frame prediction, and enhanced image coding efficiency in hardware implementation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116527900B_ABST
    Figure CN116527900B_ABST
Patent Text Reader

Abstract

Decoding device, encoding device, and transmitting device. A picture decoding method performed by a decoding device according to an embodiment of the present disclosure includes the following steps: deriving a context index of a split flag syntax element based on split availability information of a current block; determining a context model based on the derived context index; decoding a value of the split flag syntax element based on CABAC using the determined context model; deriving a current coding unit from the current block based on the value of the split flag syntax element; deriving a prediction block based on inter prediction or intra prediction for the current coding unit; and generating a reconstructed block based on the prediction block.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the original invention patent application with application number 201980047279.X (International application number: PCT / KR2019 / 007213, application date: June 14, 2019, invention name: Method and device for CABAC-based entropy coding). Technical Field

[0002] The present disclosure relates to a still image or video image encoding / decoding method, and more particularly, to a method and apparatus for partitioning a region into a quadtree (QT) structure and using a context model when performing CABAC entropy coding based on a binary tree (BT) and a ternary tree (TT) structure. Background Art

[0003] The demand for high-resolution and high-quality images, such as high-definition (HD) and ultra-high-definition (UHD), is increasing in various fields. Because image data has high resolution and high quality, the amount of information or bits to be transmitted increases compared to conventional image data. Therefore, when image data is transmitted using a medium such as a conventional wired / wireless broadband line or stored using an existing storage medium, the transmission and storage costs increase.

[0004] Therefore, there is a need for an efficient image compression technology for effectively transmitting, storing, and reproducing information of high-resolution and high-quality images. Summary of the Invention

[0005] Technical issues

[0006] An object of the present disclosure is to provide a method and apparatus for enhancing image coding efficiency.

[0007] Another object of the present disclosure is to provide a method and apparatus for enhancing image efficiency based on CABAC.

[0008] Yet another object of the present disclosure is to provide a method and apparatus for determining a block structure and block partitioning based on a quadtree (QT) structure, a binary tree (BT) structure, and a ternary tree (TT) structure in processing of a compressed image.

[0009] Still another object of the present disclosure is to provide a method and apparatus for more efficiently encoding and decoding an image using a context model when entropy encoding is performed according to CABAC based on a QT structure, a BT structure, and a TT structure.

[0010] Technical Solution

[0011] An exemplary embodiment of the present disclosure provides a picture decoding method performed by a decoding device. The method comprises the steps of: deriving a context index of a split flag syntax element based on split availability information of a current block; determining a context model based on the derived context index; decoding a value of the split flag syntax element based on context-based adaptive binary arithmetic coding (CABAC) by using the determined context model; deriving a current coding unit from the current block based on the value of the split flag syntax element; deriving a prediction block based on inter prediction or intra prediction for the current coding unit; and generating a reconstructed block based on the prediction block, wherein the split flag syntax element comprises a directional split flag indicating whether the current block is to be split vertically, the split availability information comprises BT horizontal split available flag information indicating whether the current block can be split horizontally based on a binary tree (BT) structure, TT horizontal split available flag information indicating whether the current block can be split horizontally based on a ternary tree (TT) structure, BT vertical split available flag information indicating whether the current block can be split vertically based on the BT structure, and TT vertical split available flag information indicating whether the current block can be split vertically based on the TT structure, and the context index of the directional split flag is derived based on the BT horizontal split available flag information, the TT horizontal split available flag information, the BT vertical split available flag information, and the TT vertical split available flag information.

[0012] Another exemplary embodiment of the present disclosure provides a decoding device for performing picture decoding. The decoding device includes: an entropy decoder configured to derive a context index of a split flag syntax element based on split availability information of a current block, determine a context model based on the derived context index, decode the value of the split flag syntax element based on CABAC using the determined context model, and derive a current coding unit from the current block based on the value of the split flag syntax element; a predictor configured to derive a prediction block based on inter-frame prediction or intra-frame prediction for the current coding unit; and an adder configured to generate a reconstructed block based on the prediction block, wherein the split flag syntax element includes: a directional index indicating whether the current block is vertically split; The split flag includes: BT horizontal split availability flag information indicating whether the current block can be horizontally split based on the BT structure, TT horizontal split availability flag information indicating whether the current block can be horizontally split based on the TT structure, BT vertical split availability flag information indicating whether the current block can be vertically split based on the BT structure, and TT vertical split availability flag information indicating whether the current block can be vertically split based on the TT structure, and the context index of the directional split flag is derived based on the BT horizontal split availability flag information, the TT horizontal split availability flag information, the BT vertical split availability flag information and the TT vertical split availability flag information.

[0013] Yet another exemplary embodiment of the present disclosure provides a picture encoding method performed by an encoding device. The method includes the following steps: deriving a partition flag syntax element indicating a partition structure of a current block; deriving a context index of the partition flag syntax element based on partition availability information of the current block; determining a context model based on the derived context index; and encoding the value of the partition flag syntax element based on CABAC by using the determined context model, wherein the partition flag syntax element includes: a directional partition flag indicating whether the current block will be vertically partitioned, the partition availability information includes: BT horizontal partition available flag information indicating whether the current block can be horizontally partitioned based on a BT structure, TT horizontal partition available flag information indicating whether the current block can be horizontally partitioned based on a TT structure, BT vertical partition available flag information indicating whether the current block can be vertically partitioned based on the BT structure, and TT vertical partition available flag information indicating whether the current block can be vertically partitioned based on the TT structure, and the context index of the directional partition flag is derived based on the BT horizontal partition available flag information, the TT horizontal partition available flag information, the BT vertical partition available flag information, and the TT vertical partition available flag information.

[0014] Yet another exemplary embodiment of the present disclosure provides an encoding apparatus for performing picture encoding. The encoding device includes: an entropy encoder configured to derive a split flag syntax element indicating a split structure of a current block, derive a context index of the split flag syntax element based on split availability information of the current block, determine a context model based on the derived context index, and encode a value of the split flag syntax element based on CABAC by using the determined context model, wherein the split flag syntax element includes: a directional split flag indicating whether the current block will be vertically split, the split availability information includes: BT horizontal split available flag information indicating whether the current block can be horizontally split based on a BT structure, TT horizontal split available flag information indicating whether the current block can be horizontally split based on a TT structure, BT vertical split available flag information indicating whether the current block can be vertically split based on the BT structure, and TT vertical split available flag information indicating whether the current block can be vertically split based on the TT structure, and the context index of the directional split flag is derived based on the BT horizontal split available flag information, the TT horizontal split available flag information, the BT vertical split available flag information, and the TT vertical split available flag information.

[0015] Technical Effects

[0016] The present disclosure can enhance overall image / video compression efficiency.

[0017] The present disclosure can enhance the efficiency of image encoding based on intra-frame prediction.

[0018] The present disclosure can improve the efficiency of CABAC-based image coding.

[0019] The present disclosure can improve pipeline latency when implementing CCLM-based intra prediction in hardware.

[0020] The present disclosure may determine a block structure and block partitioning based on a quadtree (QT) structure, a binary tree (BT) structure, and a ternary tree (TT) structure in a process of compressing an image.

[0021] The present disclosure may more efficiently encode and decode an image using a context model when performing entropy encoding according to CABAC based on a QT structure, a BT structure, and a TT structure. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] Figure 1 is a diagram for schematically explaining a configuration of an encoding device according to an exemplary embodiment.

[0023] Figure 2 is a diagram for schematically explaining a configuration of a decoding device according to an exemplary embodiment.

[0024] Figures 3a to 3c : are diagrams illustrating examples of QT segmentation, BT segmentation, and TT segmentation.

[0025] Figure 4 is a block diagram illustrating a configuration of an entropy encoder according to an exemplary embodiment.

[0026] Figure 5 is a block diagram illustrating a configuration of an entropy decoder according to an exemplary embodiment.

[0027] Figure 6 is a flowchart illustrating the operation of an entropy encoder according to an exemplary embodiment.

[0028] Figure 7 is a flowchart illustrating the operation of an entropy decoder according to an exemplary embodiment.

[0029] Figure 8 is a flowchart illustrating the operation of an encoding apparatus according to an exemplary embodiment.

[0030] Figure 9 is a block diagram illustrating a configuration of an encoding apparatus according to an exemplary embodiment.

[0031] Figure 10is a flowchart illustrating an operation of a decoding device according to an exemplary embodiment.

[0032] Figure 11 is a block diagram illustrating a configuration of a decoding device according to an exemplary embodiment.

[0033] Figure 12 is a content streaming system structure diagram according to an exemplary embodiment. DETAILED DESCRIPTION

[0034] An exemplary embodiment of the present disclosure provides a picture decoding method performed by a decoding device. The method includes the steps of deriving a context index of a split flag syntax element based on split availability information of a current block, determining a context model based on the derived context index, decoding a value of the split flag syntax element based on context-based adaptive binary arithmetic coding (CABAC) using the determined context model, deriving a current coding unit from the current block based on the value of the split flag syntax element, deriving a prediction block based on inter prediction or intra prediction for the current coding unit, and generating a reconstructed block based on the prediction block, wherein the split flag syntax element includes a directional split flag indicating whether the current block is vertically split, the split availability information includes binary tree (BT) horizontal split availability flag information indicating whether the current block can be horizontally split based on a BT structure, ternary tree (TT) horizontal split availability flag information indicating whether the current block can be horizontally split based on a TT structure, BT vertical split availability flag information indicating whether the current block can be vertically split based on the BT structure, and TT vertical split availability flag information indicating whether the current block can be vertically split based on the TT structure, and the context index of the directional split flag is derived based on the BT horizontal split availability flag information, the TT horizontal split availability flag information, the BT vertical split availability flag information, and the TT vertical split availability flag information.

[0035] Since the present disclosure can be variously modified and can have various exemplary embodiments, specific exemplary embodiments will be illustrated in the drawings and described in detail. However, these embodiments are not intended to limit the present disclosure. The terms used in the following description are used to merely describe specific embodiments, and are not intended to limit the present disclosure. Singular expressions include plural expressions unless it is clearly different from the context. Terms such as "include" and "have" are intended to indicate that features, numbers, steps, operations, elements, components, or combinations thereof described in the following description exist, and it should be understood that the possibility of existence or addition of one or more different features, numbers, steps, operations, elements, components, or combinations thereof is not excluded.

[0036] In addition, for the purpose of conveniently illustrating different specific functions, the elements in the figures described in this disclosure are drawn independently, which does not mean that these elements are implemented by independent hardware or independent software. For example, two or more of these elements can be combined to form a single element, or an element can be divided into multiple elements. Without departing from the concept of the present disclosure, embodiments of combining and / or dividing elements belong to the present disclosure.

[0037] The following description relates to video / image coding. For example, the methods / exemplary embodiments disclosed in this document can be applied to methods disclosed in the Versatile Video Coding (VVC) standard, the Essential Video Coding (EVC) standard, the AOMedia Video1 (AV1) standard, the second-generation Audio Video Coding (AVS2) standard, or next-generation video / image coding standards (e.g., H.267, H.268, etc.).

[0038] Hereinafter, an example of the present embodiment will be described in detail with reference to the accompanying drawings. In addition, like reference numerals are used to designate like elements throughout the drawings, and the same description of the like elements will be omitted.

[0039] In this disclosure, a video may refer to a collection of images over time. Generally, a picture refers to a unit representing an image at a specific time, and a slice refers to a unit that constitutes a portion of a picture. A picture may be composed of multiple slices, and the terms picture and slice may be used interchangeably depending on the situation.

[0040] A pixel or a picture element (pel) may refer to the smallest unit constituting a picture (or image). In addition, "sample" may be used as a term corresponding to a pixel. A sample may generally represent a pixel or a pixel value, may represent only a pixel (pixel value) of a luminance component, or may represent only a pixel (pixel value) of a chrominance component.

[0041] A unit refers to a basic unit of image processing. A unit may include at least one of a specific region and information related to the region. Alternatively, the term "unit" may be combined with terms such as "block" and "region." Typically, an M×N block may represent a set of samples or transform coefficients arranged in M ​​columns and N rows.

[0042] Figure 1 is a diagram briefly illustrating the structure of an encoding device to which the present disclosure is applicable. Hereinafter, an encoding / decoding device may include a video encoding / decoding device and / or an image encoding / decoding device, and a video encoding / decoding device may be used as a concept including an image encoding / decoding device, or an image encoding / decoding device may be used as a concept including a video encoding / decoding device.

[0043] refer to Figure 1, the video encoding apparatus 100 may include a picture splitter 105, a predictor 110, a residual processor 120, an entropy encoder 130, an adder 140, a filter 150, and a memory 160. The residual processor 120 may include a subtractor 121, a transformer 122, a quantizer 123, a rearranger 124, an inverse quantizer 125, and an inverse transformer 126.

[0044] The picture divider 105 may separate an input picture into at least one processing unit.

[0045] In one example, a processing unit may be referred to as a coding unit (CU). In this case, the coding units may be recursively separated from the maximum coding unit (LCU) based on a quadtree binary tree (QTBT) structure. For example, one coding unit may be separated into multiple coding units of a deeper depth based on a quadtree structure, a binary tree structure, and / or a ternary tree structure. In this case, for example, the quadtree structure may be applied first, and the binary tree structure and the ternary tree structure may be applied later. Alternatively, the binary tree structure / ternary tree structure may be applied first. The encoding process according to this embodiment may be performed based on a final coding unit that is no longer separated further. In this case, the maximum coding unit may be used as the final coding unit based on encoding efficiency, etc., according to image characteristics, or the coding unit may be recursively separated into coding units of a lower depth as needed and a coding unit with an optimal size may be used as the final coding unit. Here, the encoding process may include processes such as prediction, transformation, and reconstruction, which will be described later.

[0046] In another example, a processing unit may include a coding unit (CU), a prediction unit (PU), or a transformer (TU). A coding unit may be separated from a maximum coding unit (LCU) into coding units of greater depth according to a quadtree structure. In this case, the maximum coding unit may be directly used as the final coding unit based on coding efficiency, etc. according to image characteristics, or the coding unit may be recursively separated into coding units of greater depth as needed, and the coding unit with the optimal size may be used as the final coding unit. When a minimum coding unit (SCU) is set, the coding unit may not be separated into coding units smaller than the minimum coding unit. Here, the final coding unit refers to a coding unit that is split or separated into a prediction unit or a transformer. A prediction unit is a unit split from a coding unit and may be a unit for sample prediction. Here, a prediction unit may be divided into subblocks. A transformer may be separated from a coding unit according to a quadtree structure, and may be a unit that derives a transform coefficient and / or a unit that derives a residual signal from the transform coefficient. Hereinafter, a coding unit may be referred to as a coding block (CB), a prediction unit may be referred to as a prediction block (PB), and a transformer may be referred to as a transform block (TB). A prediction block or prediction unit may refer to a specific region in the form of a block in a picture and include an array of prediction samples. In addition, a transform block or transform unit may refer to a specific region in the form of a block in a picture and include an array of transform coefficients or residual samples.

[0047] The predictor 110 may perform prediction on a processing target block (hereinafter, it may be referred to as a current block or a residual block) and may generate a prediction block including prediction samples for the current block. The unit of prediction performed in the predictor 110 may be a coding block, a transform block, or a prediction block.

[0048] The predictor 110 may determine whether to apply intra prediction or inter prediction to the current block. For example, the predictor 110 may determine whether to apply intra prediction or inter prediction in units of CUs.

[0049] In the case of intra-frame prediction, the predictor 110 can derive the prediction sample of the current block based on the reference sample outside the current block in the picture to which the current block belongs (hereinafter, the current picture). In this case, the predictor 110 can derive the prediction sample based on the average or interpolation of the neighboring reference samples of the current block (case (i)), or can derive the prediction sample based on the reference sample existing in a specific (prediction) direction relative to the prediction sample among the neighboring reference samples of the current block (case (ii)). Case (i) can be called a non-directional mode or a non-angle mode, and case (ii) can be called a directional mode or an angle mode. In intra-frame prediction, the prediction mode may include 33 directional modes and at least two non-directional modes as examples. The non-directional mode may include a DC mode and a planar mode. The predictor 110 may determine the prediction mode to be applied to the current block by using the prediction mode applied to the neighboring block.

[0050] In the case of inter-frame prediction, the predictor 110 can derive prediction samples for the current block based on samples specified by the motion vector on the reference picture. The predictor 110 can derive prediction samples for the current block by applying any one of the skip mode, merge mode, and motion vector prediction (MVP) mode. In the case of skip mode and merge mode, the predictor 110 can use the motion information of the neighboring block as the motion information of the current block. In the case of skip mode, unlike merge mode, the difference (residual) between the prediction sample and the original sample is not sent. In the case of MVP mode, the motion vector of the neighboring block is used as a motion vector predictor to derive the motion vector of the current block.

[0051] In the case of inter-frame prediction, the neighboring blocks may include spatial neighboring blocks present in the current picture and temporal neighboring blocks present in the reference picture. The reference picture including the temporal neighboring blocks may also be referred to as a collocated picture (colPic). Motion information may include a motion vector and a reference picture index. Information such as prediction mode information and motion information may be (entropy) encoded and then output as a bitstream.

[0052] When using motion information of temporally neighboring blocks in skip mode and merge mode, the highest picture in the reference picture list can be used as a reference picture. Reference pictures included in the reference picture list can be aligned based on the picture order number (POC) difference between the current picture and the corresponding reference picture. The POC corresponds to the display order and can be distinguished from the coding order.

[0053] The subtractor 121 generates a residual sample, which is a difference between the original sample and the predicted sample. If the skip mode is applied, the residual sample may not be generated as described above.

[0054] The transformer 122 transforms the residual samples in units of transform blocks to generate transform coefficients. The transformer 122 may perform the transform based on the size of the corresponding transform block and the prediction mode applied to the prediction block or coding block that spatially overlaps with the transform block. For example, if intra prediction is applied to the prediction block or coding block that overlaps with the transform block and the transform block is a 4×4 residual array, the residual samples may be transformed using a discrete sine transform (DST) transform kernel, and in other cases, the residual samples may be transformed using a discrete cosine transform (DCT) transform kernel.

[0055] The quantizer 123 may quantize the transform coefficient to generate a quantized transform coefficient.

[0056] The rearranger 124 rearranges the quantized transform coefficients. The rearranger 124 may rearrange the quantized transform coefficients in block form into a one-dimensional vector using a coefficient scanning method. Although the rearranger 124 is described as a separate component, the rearranger 124 may be part of the quantizer 123.

[0057] The entropy encoder 130 may perform entropy coding on the quantized transform coefficients. Entropy coding may include coding methods such as exponential Golomb, context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), etc. In addition to the quantized transform coefficients, the entropy encoder 130 may also encode information required for video reconstruction (e.g., syntax element values, etc.) together or separately according to entropy coding or according to a preconfigured method. The entropy coded information may be transmitted or stored in units of a network abstraction layer (NAL) in the form of a bitstream. The bitstream may be transmitted via a network or stored in a digital storage medium. Here, the network may include a broadcast network or a communication network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SDD, etc.

[0058] The dequantizer 125 dequantizes the value (transform coefficient) quantized by the quantizer 123 , and the inverse transformer 126 inversely transforms the value dequantized by the dequantizer 125 to generate residual samples.

[0059] Adder 140 adds the residual samples to the prediction samples to reconstruct the picture. The residual samples can be added to the prediction samples in units of blocks to generate a reconstructed block. Although adder 140 is described as a separate component, adder 140 can be part of predictor 110. In addition, adder 140 can be referred to as a reconstructor or a reconstructed block generator.

[0060] The filter 150 may apply deblocking filtering and / or sample adaptive offset to the reconstructed picture. Deblocking filtering and / or sample adaptive offset may be used to correct artifacts at block boundaries or distortion during quantization in the reconstructed picture. After deblocking filtering is completed, sample adaptive offset may be applied on a sample-by-sample basis. The filter 150 may apply an adaptive loop filter (ALF) to the reconstructed picture. The ALF may be applied to the reconstructed picture to which deblocking filtering and / or sample adaptive offset have been applied.

[0061] The memory 160 may store reconstructed pictures (decoded pictures) or information required for encoding / decoding. Here, the reconstructed pictures may be reconstructed pictures filtered by the filter 150. The stored reconstructed pictures may be used as reference pictures for (inter) prediction of other pictures. For example, the memory 160 may store (reference) pictures used for inter prediction. Here, pictures used for inter prediction may be specified based on a reference picture set or a reference picture list.

[0062] Figure 2 FIG2 is a diagram briefly illustrating the structure of a video / image decoding device to which the present disclosure is applicable. Hereinafter, the video decoding device may include an image decoding device.

[0063] refer to Figure 2 , the video decoding device 200 may include an entropy decoder 210, a residual processor 220, a predictor 230, an adder 240, a filter 250, and a memory 260. The residual processor 220 may include a rearranger 221, an inverse quantizer 222, and an inverse transformer 223. In addition, although not depicted, the video decoding device 200 may include a receiver for receiving a bitstream including video information. The receiver may be configured as a separate module or may be included in the entropy decoder 210.

[0064] When a bitstream including video / image information is input, the video decoding apparatus 200 may reconstruct the video / image / picture in association with a process of processing the video information in the video encoding apparatus.

[0065] For example, the video decoding device 200 may perform video decoding using a processing unit used in a video encoding device. Thus, the processing unit block for video decoding may be, for example, a coding unit, and in another example, a coding unit, a prediction unit, or a transformer. Coding units may be separated from a maximum coding unit using a quadtree structure, a binary tree structure, and / or a ternary tree structure.

[0066] In some cases, a prediction unit and a transformer may be further used. In this case, a prediction block is a block derived or partitioned from a coding unit and may be a unit of sample prediction. Here, a prediction unit may be divided into sub-blocks. A transformer may be separated from a coding unit according to a quadtree structure and may be a unit for deriving transform coefficients or a unit for deriving a residual signal from the transform coefficients.

[0067] The entropy decoder 210 can parse the bitstream to output information required for video reconstruction or picture reconstruction. For example, the entropy decoder 210 can decode the information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, CABAC, etc., and can output the values ​​of syntax elements required for video reconstruction and the quantized values ​​of the transform coefficients of the residual.

[0068] More specifically, the CABAC entropy decoding method can receive a bin corresponding to each syntax element in the bitstream, use the decoding target syntax element information and the decoding information of the neighboring block and the decoding target block or the information of the symbol / bin decoded in the previous step to determine the context model, predict the bin generation probability according to the determined context model, and perform arithmetic decoding of the bin to generate a symbol corresponding to each syntax element value. Here, the CABAC entropy decoding method can update the context model using the information of the symbol / bin decoded by the context model for the next symbol / bin after determining the context model.

[0069] Information about prediction among the information decoded in the entropy decoder 210 may be provided to the predictor 230 , and a residual value (ie, a quantized transform coefficient) that has been entropy-decoded by the entropy decoder 210 may be input to the rearranger 221 .

[0070] The rearranger 221 may rearrange the quantized transform coefficients into a two-dimensional block form. The rearranger 221 may perform rearrangement corresponding to the coefficient scanning performed by the encoding device. Although the rearranger 221 is described as a separate component, the rearranger 221 may be part of the inverse quantizer 222.

[0071] The inverse quantizer 222 may inversely quantize the quantized transform coefficient based on the (inverse) quantization parameter to output the transform coefficient. In this case, information for deriving the quantization parameter may be signaled from the encoding device.

[0072] The inverse transformer 223 may inversely transform the transform coefficients to derive residual samples.

[0073] The predictor 230 may perform prediction on the current block and may generate a prediction block including prediction samples for the current block. A unit of prediction performed in the predictor 230 may be a coding block, a transform block, or a prediction block.

[0074] The predictor 230 can determine whether to apply intra-frame prediction or inter-frame prediction based on the prediction information. In this case, the unit used to determine which one to use between intra-frame prediction and inter-frame prediction may be different from the unit used to generate prediction samples. In addition, the unit used to generate prediction samples may also be different for inter-frame prediction and intra-frame prediction. For example, it is possible to determine which one to use between inter-frame prediction and intra-frame prediction on a CU basis. In addition, for example, in inter-frame prediction, prediction samples can be generated by determining the prediction mode on a PU basis, and in intra-frame prediction, prediction samples can be generated on a TU basis by determining the prediction mode on a PU basis.

[0075] In the case of intra prediction, the predictor 230 may derive prediction samples for the current block based on neighboring reference samples in the current picture. The predictor 230 may derive prediction samples for the current block by applying a directional mode or a non-directional mode based on the neighboring reference samples of the current block. In this case, the prediction mode to be applied to the current block may be determined by using the intra prediction mode of the neighboring block.

[0076] In the case of inter-frame prediction, the predictor 230 can derive prediction samples for the current block based on samples specified in the reference picture according to the motion vector. The predictor 230 can derive prediction samples for the current block using one of the skip mode, merge mode, and MVP mode. Here, the motion information required for inter-frame prediction of the current block provided by the video encoding device (for example, a motion vector and information about a reference picture index) can be obtained or derived based on the information about the prediction.

[0077] In skip mode and merge mode, motion information of a neighboring block may be used as motion information of the current block. Here, the neighboring block may include a spatial neighboring block and a temporal neighboring block.

[0078] The predictor 230 can use the motion information of available neighboring blocks to construct a merge candidate list and use the information indicated by the merge index on the merge candidate list as the motion vector of the current block. The merge index can be signaled by the encoding device. The motion information can include a motion vector and a reference picture. In skip mode and merge mode, when using the motion information of a temporally neighboring block, the first ranked picture in the reference picture list can be used as the reference picture.

[0079] In the case of the skip mode, unlike the merge mode, the difference (residual) between the predicted sample and the original sample is not transmitted.

[0080] In the case of MVP mode, the motion vector of the current block can be derived using the motion vector of the neighboring block as a motion vector predictor. Here, the neighboring block may include a spatial neighboring block and a temporal neighboring block.

[0081] When the merge mode is applied, for example, a merge candidate list may be generated using the reconstructed motion vectors of the spatially adjacent blocks and / or the motion vectors corresponding to the Col blocks as the temporally adjacent blocks. The motion vectors of the candidate blocks selected from the merge candidate list are used as the motion vectors of the current block in the merge mode. The above-mentioned information on prediction may include a merge index indicating the candidate block with the best motion vector selected from the candidate blocks included in the merge candidate list. Here, the predictor 230 may derive the motion vector of the current block using the merge index.

[0082] As another example, when the MVP (motion vector prediction) mode is applied, a motion vector predictor candidate list can be generated using reconstructed motion vectors of spatially neighboring blocks and / or motion vectors corresponding to Col blocks, which are temporally neighboring blocks. That is, the reconstructed motion vectors of spatially neighboring blocks and / or motion vectors corresponding to Col blocks, which are temporally neighboring blocks, can be used as motion vector candidates. The prediction information may include a predicted motion vector index indicating the best motion vector selected from the motion vector candidates included in the list. Here, the predictor 230 may use the motion vector index to select a predicted motion vector for the current block from the motion vector candidates included in the motion vector candidate list. The predictor of the encoding device may obtain a motion vector difference (MVD) between the motion vector of the current block and a motion vector predictor, encode the MVD, and output the encoded MVD in the form of a bitstream. That is, the MVD may be obtained by subtracting the motion vector predictor from the motion vector of the current block. Here, the predictor 230 may obtain the motion vector included in the prediction information and derive the motion vector of the current block by adding the motion vector difference to the motion vector predictor. Furthermore, the predictor may obtain or derive a reference picture index indicating a reference picture from the prediction information.

[0083] Adder 240 can add residual samples to prediction samples to reconstruct the current block or current picture. Adder 240 can reconstruct the current picture by adding residual samples to prediction samples in units of blocks. When skip mode is applied, no residual is transmitted, and thus the prediction samples can become reconstructed samples. Although adder 240 is described as a separate component, adder 240 can be part of predictor 230. In addition, adder 240 can be referred to as a reconstructor or a reconstructed block generator.

[0084] The filter 250 can apply deblocking filtering, sample adaptive offset, and / or ALF to the reconstructed picture. Here, the sample adaptive offset can be applied in a sample unit after the deblocking filtering. The ALF can be applied after the deblocking filtering and / or the application of the sample adaptive offset.

[0085] The memory 260 can store a reconstructed picture (decoded picture) or information required for decoding. Here, the reconstructed picture can be a reconstructed picture filtered by the filter 250. For example, the memory 260 can store a picture used for inter prediction. Here, the picture used for inter prediction can be specified according to a reference picture set or a reference picture list. The reconstructed picture can be used as a reference picture for other pictures. The memory 260 can output the reconstructed picture in an output order.

[0086] Further, as described above, when performing video encoding, prediction is performed to improve compression efficiency. Accordingly, a prediction block including prediction samples for a current block that is a block to be encoded (i.e., an encoding target block) can be generated. Here, the prediction block includes prediction samples in a spatial domain (or a pixel domain). The prediction block is derived in the same manner in the encoding device and the decoding device, and the encoding device can signal information about a residual between the original block and the prediction block (residual information) rather than original sample values of the original block to the decoding device, thereby improving image encoding efficiency. The decoding device can derive a residual block including residual samples based on the residual information, add the residual block to the prediction block to generate a reconstructed block including reconstructed samples, and generate a reconstructed picture including the reconstructed block.

[0087] The residual information can be generated through a transform and quantization process. For example, the encoding device can derive a residual block between the original block and the prediction block, perform a transform process on residual samples (a residual sample array) included in the residual block to derive transform coefficients, perform a quantization process on the transform coefficients to derive quantized transform coefficients, and can signal the related residual information to the decoding device (through a bitstream). Here, the residual information can include value information of the quantized transform coefficients, position information, a transform technique, a transform kernel, and a quantization parameter, etc. The decoding device can perform a dequantization / inverse transform process based on the residual information, and can derive the residual samples (or the residual block). The decoding device can generate a reconstructed picture based on the prediction block and the residual block. In addition, for inter prediction of a later reference picture, the encoding device can also dequantize / inverse transform the quantized transform coefficients to derive the residual block, and generate a reconstructed picture based on the residual block.

[0088] Figures 3a to 3c FIG. 1 is a diagram illustrating examples of QT split, BT split, and TT split.

[0089] In video coding, a block can be partitioned based on a quadtree (QT). In addition, a subblock partitioned by the QT can be further recursively partitioned using the QT. Leaf blocks that are no longer partitioned by the QT can be partitioned by a binary tree (BT), a ternary tree (TT), a slice tree (ST), etc. BT can be partitioned in two ways, such as horizontal BT (2N×N, 2N×N) and vertical BT (N×2N, N×2N). TT can be partitioned in two ways, such as horizontal TT (2N×1 / 2N, 2N×N, 2N×1 / 2N) and vertical TT (1 / 2N×2N, N×2N, 1 / 2N×2N). ST can be split into two forms, such as horizontal ST (2N×1 / 2N, 2N×1 / 2N, 2N×1 / 2N, 2N×1 / 2N) and vertical ST (1 / 2N×2N, 1 / 2N×2N, 1 / 2N×2N, 1 / 2N×2N). Each of BT, TT, and ST can be further recursively split using BT, TT, and ST.

[0090] Figure 3a The following illustrates an example of QT segmentation: Block A can be segmented into four sub-blocks (A0, A1, A2, A3) according to QT. Sub-block A1 can be further segmented into four sub-blocks (B0, B1, B2, B3) according to QT.

[0091] Figure 3b This illustrates an example of BT segmentation. Block B3, which is no longer segmented by QT, can be segmented into vertical BT (C0, C1) or horizontal BT (D0, D1). Like block C0, each sub-block can be further recursively segmented in the form of horizontal BT (E0, E1) or vertical BT (F0, F1).

[0092] Figure 3c An example of TT partitioning is shown. Block B3, which is no longer partitioned by QT, can be partitioned into vertical TTs (C0, C1, C2) or horizontal TTs (D0, D1, D2). Like block C1, each sub-block can be further recursively partitioned in the same manner as horizontal TTs (E0, E1, E2) or vertical TTs (F0, F1, F2).

[0093] Table 1 below shows an example of encoding a quadtree syntax in the case of using BT and TT.

[0094] [Table 1]

[0095]

[0096] The syntax element split_qt_flag indicates whether the current (coding) block is split into four parts according to QT. When the value of split_qt_flag is 0, it means that the current block is not split according to QT, and when the value of split_qt_flag is 1, it means that the current block is split according to QT. x0 and y0 represent the upper left position of the luma image.

[0097] This specification uses specific terms or sentences to define specific information or concepts. For example, this specification uses specific terms or sentences to define specific syntax elements. As an example, this specification defines the syntax element indicating whether the current (coding) block is split into 4 by QT as "split_qt_flag", and defines the syntax element indicating whether the current (coding) block is further split as "split_fur_flag". However, "split_qt_flag" can be replaced by various terms such as qt_split_flag and QT split flag, and "split_fur_flag" can be replaced by various terms such as further_split_flag and fur_split_flag, so that the specific terms or sentences used to determine specific information or concepts in this specification should not be interpreted as limited to those names in the entire specification, but need to be interpreted according to the content represented by the terms by focusing on various operations, functions and effects.

[0098] Table 2 below shows an example of the syntax of the coding tree.

[0099] [Table 2]

[0100]

[0101] The syntax element split_fur_flag indicates whether the current (coding) block is further split. When the value of split_fur_flag is 0, it means that the current block is no longer split, and when the value of split_fur_flag is 1, it means that the current block is split. The syntax element split_bt_flag indicates whether the current block is split based on BT or TT. When the value of split_bt_flag is 1, it means that the current block is split based on BT, and when the value of split_bt_flag is 0, it means that the current block is split based on TT.

[0102] The partition type (SplitType) of the current block may be determined as represented in Table 3 below based on the syntax element split_fur_flag and the syntax element split_bt_flag.

[0103] [Table 3]

[0104] split_fur_flag split_bt_flag SplitType 0 NO_SPLIT 1 1 BT 1 0 TT

[0105] Referring to Table 3, when the value of split_fur_flag is 0 and the current block is no longer split, it can be confirmed that SplitType is determined to be NO_SPLIT. In addition, when the value of split_fur_flag is 1 and the current block is split, it can be confirmed that SplitType is determined to be BT when the value of split_bt_flag is 1, and SplitType is determined to be TT when the value of split_bt_flag is 0.

[0106] The syntax element split_dir indicates the direction of the current block split. When the value of split_dir is 0, it means that the current block is split horizontally, and when the value of split_dir is 1, it means that the current block is split vertically. The block split mode (SplitMode) can be derived based on SplitType and split_dir as shown in Table 4 below.

[0107] [Table 4]

[0108]

[0109] Referring to Table 4, when SplitType is BT, it can be confirmed that when the value of split_dir is 0, SplitMode is determined to be PART_BT_HOR, that is, BT horizontal split mode, and when the value of split_dir is 1, SplitMode is determined to be PART_BT_VER, that is, BT vertical split mode. In addition, when SplitType is TT, it can be confirmed that when the value of split_dir is 0, SplitMode is determined to be PART_TT_HOR, that is, TT horizontal split mode, and when the value of split_dir is 1, SplitMode is determined to be PART_TT_VER, that is, TT vertical split mode.

[0110] When the area of ​​each image is divided into a QT structure, the encoder and decoder can transmit syntax elements that adjust the degree of segmentation of QT in consideration of the relationship between performance and complexity. For example, syntax elements such as the maximum QT block size (MaxQTSize), the minimum QT block size (MinQTSize), and the maximum QT block segmentation depth (MaxQTDepth) can be transmitted. Here, the maximum QT block size may mean the size of the largest block that is first segmented by QT, and is expressed in the form of a log2 scale. The minimum QT block size may mean the size of the smallest block that is segmented by QT, and is expressed in the form of a log2 scale. In addition, the maximum QT segmentation depth may mean how many times QT segmentation is allowed starting from the maximum QT block size.

[0111] When the area of ​​each image is divided into a QT structure and then the blocks are divided into a BT structure, the encoder and decoder can transmit syntax elements that adjust the degree of BT segmentation taking into account the relationship between performance and complexity. For example, syntax elements such as the maximum BT block size (MaxBTSize), the minimum BT block size (MinBTSize), and the maximum BT block segmentation depth (MaxBTDepth) can be transmitted. More specifically, the maximum BT block size may mean the size of the largest block that BT segmentation is allowed to start with, and is expressed in the form of a log2 scale. The minimum BT block size may mean the size of the smallest block divided by BT, and is expressed in the form of a log2 scale. In addition, the maximum BT segmentation depth may mean how many BT segmentations are allowed from the maximum BT block size.

[0112] When the area of ​​each image is divided into a QT structure and then the blocks are divided into a TT structure, the encoder and decoder can transmit syntax elements that adjust the degree of TT segmentation in consideration of the relationship between performance and complexity. For example, syntax elements such as the maximum TT block size (MaxTTSize), the minimum TT block size (MinTTSize), and the maximum TT block segmentation depth (MaxTDepth) can be transmitted. More specifically, the maximum TT block size can mean the size of the largest block that is first allowed to be segmented by TT, and is expressed in the form of a log2 scale. The minimum TT block size can mean the size of the smallest block that is segmented by TT, and is expressed in the form of a log2 scale. In addition, the maximum TT segmentation depth can mean how many times TT segmentation is allowed from the maximum TT block size.

[0113] Figure 4 is a block diagram illustrating a configuration of an entropy encoder according to an exemplary embodiment.

[0114] Figure 4 A schematic block diagram of an entropy encoder to which context-based adaptive binary arithmetic coding (CABAC) is applied is illustrated as an exemplary embodiment to which the present disclosure is applied.

[0115] The entropy encoder 400 to which the present disclosure is applied includes a binarization unit 410, a context modeling unit 420, a binary arithmetic coding unit 430, and a memory 460, wherein the binary arithmetic coding unit 430 may include a normal binary coding unit 440 and a bypass binary coding unit 450. Here, the normal binary coding unit 440 and the bypass binary coding unit 450 may also be referred to as a normal coding engine and a bypass coding engine, respectively.

[0116] The binarization unit 410 may receive a sequence of data symbols and perform binarization, thereby outputting a binary symbol (bin, bit) string consisting of a binarized value of 0 or 1. The binarization unit 410 may map syntax elements to binary symbols. Various binarization processes may be used for binarization, such as unary code (U), truncated unary code (TU), K-order exponential Golomb code (EGk), fixed-length processing, etc. The binarization process may be selected based on the form of the syntax element.

[0117] The output bit string may be sent to the context modeling unit 420 .

[0118] The context modeling unit 420 may select probability information necessary for encoding the current block from the memory and transmit the probability information to the binary arithmetic coding unit 430. For example, the context modeling unit 420 may select a context memory based on the syntax element to be encoded and select the probability information necessary for encoding the current syntax element by using a bit index (binIdx). Here, context refers to information about the probability of occurrence of a symbol, and context modeling may refer to a process of estimating the probability of bits necessary for binary arithmetic coding by receiving bits as a result of binarization.

[0119] The context modeling unit 420 can provide the (accurate) probability estimates necessary to achieve enhanced coding efficiency. Thus, different context models can be used for different binary symbols, and the probabilities of the context models can be updated based on the values ​​of previously encoded binary symbols. In this case, the values ​​of previously encoded binary symbols are stored in the memory 460, and the context modeling unit 420 can use the values ​​of previously encoded binary symbols from the memory 460.

[0120] Binary symbols with similar distributions can share the same context model. The context model of each binary symbol can estimate the probability using at least one of the syntax information of the bit, the bin index (binIdx) indicating the position of the bin in the bin string, and the probability of the bin included in the neighboring blocks of the block in which the bin is included.

[0121] The binary arithmetic encoding unit 430 includes a normal binary encoding unit 440 and a bypass binary encoding unit 450, and may perform entropy encoding on the output string and output compressed data bits.

[0122] The conventional binary encoding unit 440 may perform arithmetic encoding based on recursive interval partitioning.

[0123] First, an interval (or range) with an initial value of 0 or 1 can be split into two lower intervals based on the probability of the binary symbol. When converted into a binary fraction, the coded bits can provide an offset for selecting one of the two lower intervals representing the value of the decoded binary symbol.

[0124] After decoding the binary symbol of the pattern, the interval can be updated so that the selected lower interval is the same, and the interval segmentation process itself can be repeated. The interval and offset have limited bit precision, so each time the interval is reduced to a certain value or smaller, renormalization may be required to prevent overflow. Renormalization can occur after decoding each binary symbol.

[0125] The bypass binary encoding unit 450 performs encoding without a context model and can perform encoding by fixing the probability of the currently encoded bin to 0.5. This method can be used when it is difficult to determine the probability of syntax or when high-speed encoding is required.

[0126] Figure 5 is a block diagram illustrating a configuration of an entropy decoder according to an exemplary embodiment.

[0127] Figure 5 A schematic block diagram of an entropy decoder to which context-based adaptive binary arithmetic coding (CABAC) is applied is illustrated as an exemplary embodiment to which the present disclosure is applied.

[0128] The entropy decoder 500 according to an exemplary embodiment may include a context modeling unit 510 , a binary arithmetic decoding unit 520 , a memory 550 , and an inverse binarization unit 560 , and the binary arithmetic decoding unit 520 may include a normal binary decoding unit 530 and a bypass binary decoding unit 540 .

[0129] The entropy decoder 500 may receive a bitstream and confirm a bypass flag therefrom. Here, the bypass flag indicates whether the bitstream is in bypass mode, and the bypass mode may mean that encoding is performed by fixing the probability of the currently encoded bin to 0.5 without using a context model.

[0130] If the bitstream is not in the bypass mode according to the bypass flag, the normal binary decoding unit 530 may perform binary arithmetic decoding according to the normal mode.

[0131] At this time, the context modeling unit 510 may select probability information necessary for decoding the current bitstream from the memory 550 to send the probability information to the normal binary decoding unit 530 .

[0132] In addition, if the bitstream is in the bypass mode according to the bypass flag, the bypass binary decoding unit 540 may perform binary arithmetic decoding according to the bypass mode.

[0133] The inverse binarization unit 560 may receive the bins in binary form decoded by the binary arithmetic decoding unit 520 and convert the bins into syntax element values ​​in integer form to output the converted syntax element values.

[0134] Figure 6 is a flowchart illustrating the operation of an entropy encoder according to an exemplary embodiment.

[0135] The entropy encoder of the encoding apparatus according to the exemplary embodiment may perform binarization on the syntax element ( S610 ).

[0136] The entropy encoder according to the exemplary embodiment may determine whether to perform binary arithmetic coding according to the normal mode or the bypass mode (S620). For example, the entropy encoder may confirm whether the bit stream is in the normal mode or the bypass mode based on the bypass flag, and when the bypass flag is 1, this may indicate the bypass mode, and when the bypass flag is 0, this may indicate the normal mode.

[0137] If it is determined that binary arithmetic coding will be performed according to the normal mode, the entropy encoder may select a probability model (S630) and perform binary arithmetic coding based on the probability model (S640). In addition, the entropy encoder may update the probability model (S650) and select an appropriate probability model again based on the probability model updated in step S630.

[0138] If it is determined that binary arithmetic coding is to be performed according to the bypass mode, the entropy encoder may perform binary arithmetic coding based on a probability of 0.5 (S660).

[0139] Figure 7 is a flowchart illustrating the operation of an entropy decoder according to an exemplary embodiment.

[0140] The entropy decoder of the decoding apparatus according to the exemplary embodiment may receive a bitstream ( S710 ).

[0141] The entropy decoder according to the exemplary embodiment may confirm whether the bitstream is in the normal mode or the bypass mode by extracting the bypass flag from the bitstream (S720). Here, the bypass flag may be predetermined according to the type of syntax.

[0142] If the bypass flag indicates the normal mode, the entropy decoder can select a probability model (S730) and perform binary arithmetic decoding (S740) based on the selected probability model. In addition, the entropy decoder can update the probability model (S750) and select an appropriate probability model again based on the probability model updated in step S730.

[0143] Furthermore, if the bypass flag indicates the bypass mode, the entropy decoder may perform binary arithmetic decoding based on a probability of 0.5 ( S760 ).

[0144] The entropy decoder may perform inverse binarization on the decoded bin string (S770). For example, the entropy decoder may receive the decoded bin in binary form and convert the bin into a syntax element value in integer form to output the syntax element value.

[0145] The exemplary embodiments of the present disclosure propose a method for determining a context model for CABAC entropy coding. As described above, split_bt_flag can indicate whether the current block is partitioned into BT or TT. The syntax element split_bt_flag can be called mtt_split_cu_binary_flag, etc. The context model for the syntax element split_bt_flag can be determined based on the number of BT and TT that can be partitioned from the current block. The following formula 1 represents the value of the context index (CtxIdx) according to the block partition availability information.

[0146] [Formula 1]

[0147] CtxIdx=(availableBTHOR&&availableBTVER)*2+(availableTTHOR&&availableTTVER)

[0148] In this specification, "block splitting availability information" may refer to a block splitting condition. The block splitting availability information may include a binary tree (BT) horizontal splitting availability flag indicating whether the current block can be horizontally split based on a BT structure, a ternary tree (TT) horizontal splitting availability flag indicating whether the current block can be horizontally split based on a TT structure, a BT vertical splitting availability flag indicating whether the current block can be vertically split based on a BT structure, and a TT vertical splitting availability flag indicating whether the current block can be vertically split based on a TT structure. According to an exemplary embodiment, the block splitting availability information may be derived based on at least one of block size information, multi-type tree depth information, and maximum multi-tree size information.

[0149] In Formula 1, availableBTHOR may represent BT horizontal segmentation available flag information, availableBTVER may represent BT vertical segmentation available flag information, availableTTHOR may represent TT horizontal segmentation available flag information, and availableTTVER may represent TT vertical segmentation available flag information. For example, the value range of CtxIdx may be greater than or equal to 0 and less than or equal to 3.

[0150] BT horizontal splitting available flag information can be indicated by various names such as available_BT_HOR, allowSplitBTHor, and availableBTHOR. Similarly, BT vertical splitting available flag information can be indicated by available_BT_VER, allowSplitBTVer, etc., TT horizontal splitting available flag information can be indicated by available_TT_HOR, allowSplitTTHor, etc., and TT vertical splitting available flag information can be indicated by available_TT_VER, allowSplitTTVer, etc.

[0151] Table 5 below shows examples of values ​​of CtxIdx according to the values ​​of availableBTHOR, availableBTVER, availableTTHOR, and availableTTVER.

[0152] [Table 5]

[0153] availableBTHOR availableBTVER availableTTHOR availableTTVER Ctx 0 0 0 0 N / A 0 0 0 1 N / A 0 0 1 0 N / A 0 0 1 1 N / A 0 1 0 0 N / A 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 N / A 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 N / A 1 1 0 1 2 1 1 1 0 2 1 1 1 1 3

[0154] When the value of each of availableBTHOR, availableBTVER, availableTTHOR, and availableTTVER is 0, it indicates that the partitioning according to each partitioning structure is not available, and when each value is 1, it indicates that the partitioning according to the partitioning structure is available. If the value of CtxIdx is N / A, it may indicate that the value of CtxIdx does not need to be determined because signaling of split_bt_flag is unnecessary.

[0155] According to an exemplary embodiment, split_bt_flag may be encoded using four context models. Table 6 below shows an example of an initial value (InitValue) of CABAC according to a value of CtxIdx.

[0156] [Table 6]

[0157] Ctx InitValue 0 152 1 153 2 154 3 152

[0158] As another example, when the value of CtxIdx is 0 or 3, the same initial value of CABAC may be used, and when having similar statistical properties, split_bt_flag may be encoded using three context models. That is, when the value of CtxIdx is 3, the value of CtxIdx may be replaced with 0. Table 7 below shows an example of the initial value of CABAC according to the value of CtxIdx when three context models are used.

[0159] [Table 7]

[0160] Ctx InitValue 0 152 1 153 2 154

[0161] Another exemplary embodiment of the present disclosure proposes another method for determining a context model for CABAC entropy coding. As an example, the syntax element split_bt_flag can be first signaled to determine whether it is a BT split or a TT split, and then the syntax element split_dir can be signaled to determine whether it is a horizontal split or a vertical split. In some cases, the syntax element split_dir can be called mtt_split_cu_vertical_flag. As another example, the syntax element split_dir can be first signaled to determine whether it is a horizontal split or a vertical split, and then the syntax element split_bt_flag can be signaled to determine whether it is a BT split or a TT split.

[0162] At this time, the context model for the syntax element split_dir may be determined according to the number of horizontal and vertical partitions that can be partitioned from the current block. The following Equation 2 represents the value of the context index (CtxIdx) according to the block partition availability information.

[0163] [Formula 2]

[0164] CtxIdx=(availableBTHOR&&availableTTHOR)*2+(availableBTVER&&availableTTVER)

[0165] Table 8 below shows examples of values ​​of CtxIdx according to the values ​​of availableBTHOR, availableBTVER, availableTTHOR, and availableTTVER.

[0166] [Table 8]

[0167] availableBTHOR availableTTHOR availableBTVER availableTTVER Ctx 0 0 0 0 N / A 0 0 0 1 N / A 0 0 1 0 N / A 0 0 1 1 N / A 0 1 0 0 N / A 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 N / A 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 N / A 1 1 0 1 2 1 1 1 0 2 1 1 1 1 3

[0168] In Table 8, the case where the value of CtxIdx is N / A may indicate a case where the value of CtxIdx does not need to be determined because signaling of split_bt_flag is unnecessary.

[0169] According to an exemplary embodiment, referring to Table 8, if the value of availableBTHOR and the value of availableTTHOR are 0 or the values ​​of availableBTVER and availableTTVER are 0, it may be confirmed that CtxIdx of split_dir is not derived.

[0170] According to an exemplary embodiment, referring to Table 8, when a value of (availableBTHOR||availableTTHOR)&&(availableBTVER||availableTTVER) is 0, it may be confirmed that CtxIdx of split_dir is not derived.

[0171] According to an exemplary embodiment, split_dir_flag may be encoded using four context models. Table 9 below shows an example of an initial value (InitValue) of CABAC according to a value of CtxIdx.

[0172] [Table 9]

[0173] Ctx lnitValue 0 154 1 155 2 153 3 154

[0174] As another example, when the value of CtxIdx is 0 or 3, the same initial value of CABAC is used, and when having similar statistical properties, split_bt_flag may be encoded using three context models. That is, when the value of CtxIdx is 3, the value of CtxIdx may be replaced with 0. Table 10 below shows an example of the initial value of CABAC according to the value of CtxIdx when three context models are used.

[0175] [Table 10]

[0176] Ctx InitValue 0 154 1 155 2 153

[0177] This exemplary embodiment can determine block partitioning based on transform size. Available transform sizes for the currently decoded image or picture can be transmitted in units such as a sequence parameter set (SPS), a picture parameter set (PPS), a slice header (SH), or a header of a network abstraction layer (NAL) unit. For available transform sizes, corresponding transform sizes can be transmitted one by one, and corresponding indices can also be transmitted based on predefined transform sets. The decoder terminal can receive and decode the indices to derive the available transform sizes.

[0178] Once the available transform sizes are determined, the sizes of available block partitions can be determined. That is, the sizes of available block partitions are defined for the currently decoded image and picture. The sizes of available block partitions can be determined based on the transforms available. Therefore, partitions for blocks where no transform is present may not be allowed.

[0179] The available block partition sizes are determined for images and pictures, and then it can be determined whether the blocks can be partitioned in units of blocks (i.e., in units of CUs or PUs). The type of available block partition is determined based on the size of the current block. That is, BT or TT available candidates can be arranged horizontally and vertically. Alternatively, in addition to 1 / 2 ratio partitioning, it can also be determined whether 1 / 4, 3 / 4 ratio partitioning, 3 / 8, 5 / 8 ratio partitioning, 1 / 3, 2 / 3 ratio partitioning, 1 / 5, 4 / 5 ratio partitioning, etc. are available.

[0180] The available block candidates for segmentation are configured, and then the final block segmentation can be determined by the block segmentation syntax sent to the decoder. If there is one available block candidate or no available block candidate, the corresponding syntax may not be sent.

[0181] Figure 8 is a flowchart illustrating the operation of an encoding device according to an exemplary embodiment, and Figure 9 is a block diagram illustrating a configuration of an encoding apparatus according to an exemplary embodiment.

[0182] Figure 8 and Figure 9The encoding device illustrated in FIG can perform the same operation as will be described later in Figure 10 and Figure 11 Therefore, reference will be made to Figure 10 and Figure 11 The description also applies equally to Figure 8 and Figure 9 The encoding device illustrated in .

[0183] Figure 8 Each step illustrated in can be represented by Figure 1 More specifically, the encoding device 100 illustrated in FIG. Figure 1 The entropy encoder 130 illustrated in FIG. 1 performs S800 to S830. In addition, the operations according to S800 to S830 are based on the above reference Figures 3a to 7 Therefore, the above references will be omitted or simplified. Figures 3a to 7 Description of the content that is repeated.

[0184] like Figure 9 As illustrated in FIG, the encoding apparatus according to the exemplary embodiment may include a picture divider 105 and an entropy encoder 130. However, in some cases, Figure 9 All components illustrated in the example may not be necessary components of the encoding device, and the encoding device may be composed of Figure 9 The components illustrated in the figure may be implemented with a greater or lesser number of components.

[0185] In the encoding apparatus according to the exemplary embodiment, each of the picture divider 105 and the entropy encoder 130 may be implemented by a separate chip, or two or more components may also be implemented by a single chip.

[0186] The encoding apparatus according to an exemplary embodiment may derive a plurality of different coding units by splitting the current block within the current picture. More specifically, the picture splitter 105 of the encoding apparatus may derive a plurality of different coding units by splitting the current block within the current picture.

[0187] The encoding apparatus according to an exemplary embodiment may derive a partition flag syntax element indicating a partition structure of a current block ( S800 ). More specifically, the entropy encoder 130 of the encoding apparatus may derive a partition flag syntax element indicating a partition structure of a current block.

[0188] According to an exemplary embodiment, the split flag syntax element may include a directional split flag indicating whether the current block is vertically split, and the split syntax element may include a BT split flag indicating whether the current block is split based on a BT structure. The directional split flag may be indicated by split_dir, for example, and the BT split flag may be indicated by split_bt_flag, for example.

[0189] The encoding apparatus according to an exemplary embodiment may derive a context index of a partition flag syntax element based on partition availability information of a current block (S810). More specifically, the entropy encoder 130 of the encoding apparatus may derive a context index of a partition flag syntax element based on partition availability information of a current block.

[0190] According to an exemplary embodiment, the split availability information may include BT horizontal split availability flag information indicating whether the current block can be horizontally split based on the BT structure, TT horizontal split availability flag information indicating whether the current block can be horizontally split based on the TT structure, BT vertical split availability flag information indicating whether the current block can be vertically split based on the BT structure, and TT vertical split availability flag information indicating whether the current block can be vertically split based on the TT structure.

[0191] According to an exemplary embodiment, BT horizontal split available flag information may be indicated by availableBTHOR, TT horizontal split available flag information may be indicated by availableTTHOR, BT vertical split available flag information may be indicated by availableBTVER, and TT vertical split available flag information may be indicated by availableTTVER.

[0192] According to an exemplary embodiment, a context index of a directional partition flag may be derived based on BT horizontal partition available flag information, TT horizontal partition available flag information, BT vertical partition available flag information, and TT vertical partition available flag information.

[0193] According to an exemplary embodiment, whether to derive a context index of a directional partition flag may be determined based on BT horizontal partition available flag information, TT horizontal partition available flag information, BT vertical partition available flag information, and TT vertical partition available flag information.

[0194] According to an exemplary embodiment, if the value of the BT horizontal split available flag information and the value of the TT horizontal split available flag information are 0, or the value of the BT vertical split available flag information and the value of the TT vertical split available flag information are 0, it is characterized in that the context index of the vertical split flag is not derived.

[0195] According to an exemplary embodiment, when the value of (availableBTHOR||availableTTHOR)&&(availableBTVER||availableTTVER) is 0, the context index of the vertical split flag may not be derived.

[0196] According to an exemplary embodiment, a context index of the BT split flag may be derived based on the BT horizontal split available flag information, the TT horizontal split available flag information, the BT vertical split available flag information, and the TT vertical split available flag information.

[0197] According to an exemplary embodiment, the context index of the directional segmentation flag may be derived based on the following Equation 3.

[0198] [Formula 3]

[0199] CtxIdx=(availableBTHOR&&availableTTHOR)*2+(availableBTVER&&availableTTVER)

[0200] According to an exemplary embodiment, the context index of the BT split flag may be derived based on the following Equation 4.

[0201] [Formula 4]

[0202] CtxIdx=(availableBTHOR&&availableBTVER)*2+(availableTTHOR&&availableTTVER)

[0203] The encoding apparatus according to an exemplary embodiment may determine a context model based on the derived context index (S820). More specifically, the entropy encoder 130 of the encoding apparatus may determine a context model based on the derived context index.

[0204] The encoding apparatus according to an exemplary embodiment may encode the value of the split flag syntax element based on CABAC using the determined context model (S830). More specifically, the entropy encoder 130 of the encoding apparatus may encode the value of the split flag syntax element based on CABAC using the determined context model.

[0205] according to Figure 8 and Figure 9The encoding device and the method for operating the encoding device illustrated in the embodiment of the present invention may derive a split flag syntax element representing the split structure of the current block (S800), derive a context index of the split flag syntax element based on the split availability information of the current block (S810), determine a context model based on the derived context index (S820), and encode the value of the split flag syntax element based on CABAC using the determined context model (S830), and at this time, the feature may be that the split flag syntax element may include a directional split flag indicating whether the current block is vertically split, the split availability information may include BT horizontal split available flag information indicating whether the current block can be horizontally split based on the BT structure, TT horizontal split available flag information indicating whether the current block can be horizontally split based on the TT structure, BT vertical split available flag information indicating whether the current block can be vertically split based on the TT structure, and TT vertical split available flag information indicating whether the current block can be vertically split based on the TT structure, and the context index of the directional split flag is derived based on the BT horizontal split available flag information, the TT horizontal split available flag information, the BT vertical split available flag information, and the TT vertical split available flag information. That is, Figure 8 and Figure 9 As illustrated in , when entropy encoding according to CABAC is performed based on the QT structure, the BT structure, and the TT structure, a context model may be used to more efficiently perform encoding and decoding.

[0206] Figure 10 is a flowchart illustrating the operation of a decoding device according to an exemplary embodiment, Figure 11 is a block diagram illustrating a configuration of a decoding apparatus according to an exemplary embodiment.

[0207] Figure 10 Each step illustrated in can be represented by Figure 2 More specifically, the video decoding device 200 illustrated in FIG. Figure 2 The entropy decoder 210 illustrated in FIG. 1 performs S1000 to S1030, which can be performed by Figure 2 The predictor 230 illustrated in FIG. 1 performs S1040 and may be Figure 2 The adder 240 illustrated in FIG. 10 performs S1050. In addition, the operations according to S1000 to S1050 are based on the above reference Figures 3a to 7 Therefore, the above references will be omitted or simplified. Figures 3a to 7 Description of the content that is repeated.

[0208] like Figure 11As illustrated in FIG, the decoding device according to the exemplary embodiment may include an entropy decoder 210, a predictor 230, and an adder 240. However, in some cases, Figure 11 All components illustrated in the example may not be essential components of the decoding device, and the decoding device may be composed of Figure 11 The components illustrated in the figure may be implemented with a greater or lesser number of components.

[0209] In the decoding device according to the exemplary embodiment, each of the entropy decoder 210 , the predictor 230 , and the adder 240 may be implemented by a separate chip, or two or more components may be implemented by a single chip.

[0210] The decoding apparatus according to an exemplary embodiment may derive a context index of a partition flag syntax element based on partition availability information of a current block ( S1000 ). More specifically, the entropy decoder 210 of the decoding apparatus may derive a context index of a partition flag syntax element based on partition availability information of a current block.

[0211] According to an exemplary embodiment, the split flag syntax element may include a directional split flag indicating whether the current block is vertically split, and the split syntax element may include a BT split flag indicating whether the current block is split based on a BT structure. The directional split flag may be indicated by split_dir, for example, and the BT split flag may be indicated by split_bt_flag, for example.

[0212] According to an exemplary embodiment, the split availability information may include BT horizontal split availability flag information indicating whether the current block can be horizontally split based on the BT structure, TT horizontal split availability flag information indicating whether the current block can be horizontally split based on the TT structure, BT vertical split availability flag information indicating whether the current block can be vertically split based on the BT structure, and TT vertical split availability flag information indicating whether the current block can be vertically split based on the TT structure.

[0213] As an example, BT horizontal split available flag information may be indicated by availableBTHOR, TT horizontal split available flag information may be indicated by availableTTHOR, BT vertical split available flag information may be indicated by availableBTVER, and TT vertical split available flag information may be indicated by availableTTVER.

[0214] According to an exemplary embodiment, a context index of a directional partition flag may be derived based on BT horizontal partition available flag information, TT horizontal partition available flag information, BT vertical partition available flag information, and TT vertical partition available flag information.

[0215] According to an exemplary embodiment, whether to derive a context index of a directional partition flag may be determined based on BT horizontal partition available flag information, TT horizontal partition available flag information, BT vertical partition available flag information, and TT vertical partition available flag information.

[0216] According to an exemplary embodiment, if the value of the BT horizontal partition available flag information and the value of the TT horizontal partition available flag information are 0, or the value of the BT vertical partition available flag information and the value of the TT vertical partition available flag information are 0, the context index of the directional partition flag may not be derived.

[0217] According to an exemplary embodiment, when the value of (availableBTHOR||availableTTHOR)&&(availableBTVER||availableTTVER) is 0, the context index of the directional partition flag may not be derived.

[0218] According to an exemplary embodiment, a context index of the BT split flag may be derived based on the BT horizontal split available flag information, the TT horizontal split available flag information, the BT vertical split available flag information, and the TT vertical split available flag information.

[0219] According to an exemplary embodiment, the context index of the directional segmentation flag may be derived based on the following Equation 5.

[0220] [Formula 5]

[0221] CtxIdx=(availableBTHOR&&availableTTHOR)*2+(availableBTVER&&availableTTVER)

[0222] According to an exemplary embodiment, the context index of the BT split flag may be derived based on the following Equation 6.

[0223] [Formula 6]

[0224] CtxIdx=(availableBTHOR&&availableBTVER)*2+(availableTTHOR&&availableTTVER)

[0225] The decoding apparatus according to an exemplary embodiment may determine a context model based on the derived context index (S1010). More specifically, the entropy decoder 210 of the decoding apparatus may determine a context model based on the derived context index.

[0226] The decoding apparatus according to an exemplary embodiment can use the determined context model to decode a value of the split flag syntax element based on context-based adaptive binary arithmetic coding (CABAC) (S1020). More specifically, the entropy decoder 210 of the decoding apparatus can decode the value of the split flag syntax element based on CABAC using the determined context model.

[0227] The decoding apparatus according to an exemplary embodiment can derive a current coding unit from the current block based on the value of the split flag syntax element (S1030). More specifically, the entropy decoder 210 of the decoding apparatus can derive the current coding unit from the current block based on the value of the split flag syntax element.

[0228] The decoding apparatus according to an exemplary embodiment can derive a prediction block based on inter prediction or intra prediction for the current coding unit (S1040). More specifically, the predictor 230 of the decoding apparatus can derive the prediction block based on the inter prediction or the intra prediction for the current coding unit.

[0229] The decoding apparatus according to an exemplary embodiment can generate a reconstructed block based on the prediction block (S1050). More specifically, the adder 240 of the decoding apparatus can generate the reconstructed block based on the prediction block.

[0230] According to an exemplary embodiment, the decoding apparatus can determine a context model for a split flag syntax element of a current block based on a size of the current block. Figure 10 and Figure 11In the decoding device and the method for operating the decoding device illustrated in the embodiment, the decoding device can derive a context index of a split flag syntax element based on the split availability information of the current block (S1000), determine a context model based on the derived context index (S1010), decode the value of the split flag syntax element based on context-based adaptive binary arithmetic coding (CABAC) using the determined context model (S1020), derive a current coding unit from the current block based on the value of the split flag syntax element (S1030), derive a prediction block based on inter-frame prediction or intra-frame prediction for the current coding unit (S1040), and generate a reconstructed block based on the prediction block (S1050). At this time, the feature can be that the split flag syntax element The element may include a directional split flag indicating whether to perform vertical splitting on the current block, and the split availability information may include BT horizontal split availability flag information indicating whether the current block can be horizontally split based on a binary tree (BT) structure, TT horizontal split availability flag information indicating whether the current block can be horizontally split based on a TT structure, BT vertical split availability flag information indicating whether the current block can be vertically split based on a BT structure, and TT vertical split availability flag information indicating whether the current block can be vertically split based on a TT structure; and the context index of the directional split flag is derived based on the BT horizontal split availability flag information, the TT horizontal split availability flag information, the BT vertical split availability flag information, and the TT vertical split availability flag information. That is, if Figure 10 and Figure 11 As illustrated in , when entropy encoding according to CABAC is performed based on the QT structure, the BT structure, and the TT structure, a context model may be used to more efficiently perform encoding and decoding.

[0231] The exemplary embodiments described in this disclosure may be implemented and executed by a processor, a microprocessor, a controller, or a chip. For example, the functional units illustrated in each figure may be implemented and executed by a computer, a processor, a microprocessor, a controller, or a chip.

[0232] In addition, the decoder and encoder to which the exemplary embodiments of the present disclosure are applied may be included in a multimedia broadcast transceiver, a mobile communication terminal, a home theater video device, a digital theater video device, a surveillance camera, a video chat device, a real-time communication device such as a video communication device, a mobile streaming device, a storage medium, a portable camera, a video on demand (VoD) service provider, an over-the-top (OTT) video device, an Internet streaming service provider, a three-dimensional (3D) video device, an image phone video device, a medical video device, etc., and used to process a video signal or a data signal. For example, an over-the-top (OTT) video device may include a game console, a Blu-ray player, an Internet access TV, a home theater system, a smartphone, a tablet PC, a digital video recorder (DVR), etc.

[0233] In addition, the processing method of the exemplary embodiment of the present disclosure can be generated in the form of a program executed by a computer and stored in a computer-readable recording medium. The multimedia data with a data structure according to the present disclosure can also be stored in a computer-readable recording medium. The computer-readable recording medium includes all kinds of storage devices and distributed storage devices in which computer-readable data are stored. The computer-readable recording medium may include, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. In addition, the computer-readable recording medium includes a medium implemented in the form of a carrier wave (for example, transmission on the Internet). In addition, the bit stream generated by the encoding method can be stored in a computer-readable recording medium, or can be transmitted through a wired or wireless communication network.

[0234] In addition, the exemplary embodiments of the present disclosure may be implemented as a computer program product through program code, and the program code may be executed on a computer through the exemplary embodiments of the present disclosure. The program code may be stored on a computer-readable carrier.

[0235] Figure 12 FIG. 1 is a diagram showing the structure of a content streaming system according to an exemplary embodiment.

[0236] The content streaming system to which the present disclosure is applied may mainly include an encoding server, a streaming server, a network server, a media storage, a user device, and a multimedia input device.

[0237] The encoding server is used to compress content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data to generate a bitstream, and transmit the bitstream to the streaming server. As another example, if the multimedia input device such as a smartphone, camera, or camcorder directly generates a bitstream, the encoding server can be omitted.

[0238] A bitstream may be generated by applying the encoding method or the bitstream generating method of the present disclosure, and a streaming server may temporarily store the bitstream in a process of transmitting or receiving the bitstream.

[0239] The streaming server transmits multimedia data to user devices based on user requests via a network server, and the network server acts as an intermediary to inform users of available services. When a user requests a desired service from the network server, the network server transmits the service to the streaming server, which then transmits the multimedia data to the user. In this case, the content streaming system may include a separate control server, which in this case controls the instructions and responses between the various devices in the content streaming system.

[0240] The streaming server can receive content from a media storage and / or encoding server. For example, if the content is received from an encoding server, the content can be received in real time. In this case, the streaming server can store the bitstream for a predetermined time to provide a streaming service smoothly.

[0241] Examples of user devices may include mobile phones, smart phones, laptop computers, digital broadcast terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, touch-screen PCs, tablet PCs, ultrabooks, wearable devices (e.g., watch-type terminals (smart watches), glasses-type terminals (smart glasses), head-mounted displays (HMDs)), digital TVs, desktop computers, digital signage, etc.

[0242] The various servers in the content streaming system may operate as distributed servers, and in this case, data received by each server may be processed in a distributed manner.

[0243] The above-mentioned method according to the present disclosure may be implemented in the form of software, and the encoding device and / or decoding device according to the present disclosure may be included in a device that performs image processing such as a TV, a computer, a smart phone, a set-top box, or a display device.

[0244] Each of the above parts, modules or units can be a processor or hardware part that performs a continuous implementation process stored in a memory (or storage unit). Each step described in the exemplary embodiment mentioned above can be performed by a processor or hardware part. The various modules / blocks / units described in the exemplary embodiment mentioned above can be operated as hardware / processors. In addition, the method provided by the present disclosure can be executed as code. The code can be written into a processor-readable storage medium, and therefore, can be read by a processor provided by the device.

[0245] In the exemplary embodiments mentioned above, the method is explained based on a flowchart with the aid of a series of steps or blocks, but the present disclosure is not limited to the order of the steps, and a certain step may occur in an order or step different from the above order or step, or may occur simultaneously with the above order or step. In addition, it will be understood by those skilled in the art that the steps shown in the flowchart are not exclusive, and another step or one or more steps of the flowchart that may be incorporated may be removed without affecting the scope of the present disclosure.

[0246] When implemented by software according to the exemplary embodiments of the present disclosure, the above-mentioned methods can be implemented by modules (processing, functions, etc.) that perform the above-mentioned functions. The modules can be stored in a memory and executed by a processor. The memory can be inside or outside the processor and connected to the processor via various well-known devices. The processor may include an application-specific integrated circuit (ASIC), other chipsets, logic circuits and / or data processing devices. The memory may include a read-only memory (ROM), a random access memory (RAM), a flash memory, a memory card, a storage medium and / or other storage devices.

Claims

1. A decoding device for image decoding, the decoding device comprising: Memory; as well as at least one processor coupled to the memory, the at least one processor configured to: deriving a context index of a split flag syntax element based on the split availability information of the current block; determining a context model based on the derived context index; decoding the value of the partition flag syntax element based on context-based adaptive binary arithmetic coding (CABAC) by using the determined context model; deriving a current coding unit from the current block based on a value of the partition flag syntax element; deriving a prediction block based on inter-frame prediction or intra-frame prediction for the current coding unit; as well as generating a reconstructed block based on the predicted block, The split flag syntax element includes: a directional split flag indicating whether to perform vertical splitting on the current block, The split availability information includes: BT horizontal split availability flag information related to whether the current block is allowed to be horizontally split based on a binary tree BT structure, TT horizontal split availability flag information related to whether the current block is allowed to be horizontally split based on a ternary tree TT structure, BT vertical split availability flag information related to whether the current block is allowed to be vertically split based on the BT structure, and TT vertical split availability flag information related to whether the current block is allowed to be vertically split based on the TT structure. The context index of the directional segmentation flag is derived based on the number of horizontal segmentation available flags and the number of vertical segmentation available flags, and The horizontal splitting available flag includes the BT horizontal splitting available flag information and the TT horizontal splitting available flag information, and the vertical splitting available flag includes the BT vertical splitting available flag information and the TT vertical splitting available flag information.

2. A coding device for image coding, the coding device comprising: Memory; as well as at least one processor coupled to the memory, the at least one processor configured to: Derivation of a partition flag syntax element representing the partition structure of the current block; deriving a context index of the segmentation flag syntax element based on segmentation availability information of the current block; determining a context model based on the derived context index; as well as encoding the value of the segmentation flag syntax element based on CABAC using the determined context model, The split flag syntax element includes: a directional split flag indicating whether to perform vertical splitting on the current block, The split availability information includes: BT horizontal split availability flag information related to whether the current block is allowed to be horizontally split based on a binary tree BT structure, TT horizontal split availability flag information related to whether the current block is allowed to be horizontally split based on a ternary tree TT structure, BT vertical split availability flag information related to whether the current block is allowed to be vertically split based on the BT structure, and TT vertical split availability flag information related to whether the current block is allowed to be vertically split based on the TT structure. The context index of the directional segmentation flag is derived based on the number of horizontal segmentation available flags and the number of vertical segmentation available flags, and The horizontal splitting available flag includes the BT horizontal splitting available flag information and the TT horizontal splitting available flag information, and the vertical splitting available flag includes the BT vertical splitting available flag information and the TT vertical splitting available flag information.

3. A device for transmitting image data, the device comprising: at least one processor configured to obtain a bitstream, wherein the bitstream is generated based on the following operations: deriving a partition flag syntax element indicating a partition structure of a current block, deriving a context index of the partition flag syntax element based on partition availability information of the current block, determining a context model based on the derived context index, and encoding a value of the partition flag syntax element based on CABAC using the determined context model; and a transmitter configured to transmit said data comprising said bit stream, The split flag syntax element includes: a directional split flag indicating whether to perform vertical splitting on the current block, The split availability information includes: BT horizontal split availability flag information related to whether the current block is allowed to be horizontally split based on a binary tree BT structure, TT horizontal split availability flag information related to whether the current block is allowed to be horizontally split based on a ternary tree TT structure, BT vertical split availability flag information related to whether the current block is allowed to be vertically split based on the BT structure, and TT vertical split availability flag information related to whether the current block is allowed to be vertically split based on the TT structure. The context index of the directional segmentation flag is derived based on the number of horizontal segmentation available flags and the number of vertical segmentation available flags, and The horizontal splitting available flag includes the BT horizontal splitting available flag information and the TT horizontal splitting available flag information, and the vertical splitting available flag includes the BT vertical splitting available flag information and the TT vertical splitting available flag information.

Citation Information

Patent Citations

  • Context reduction for context adaptive binary arithmetic coding

    CN103988437A

  • Video encoding / decoding apparatus and method

    CN105704490A