WO2019050385A2 - 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치 - Google Patents

비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치 Download PDF

Info

Publication number
WO2019050385A2
WO2019050385A2 PCT/KR2018/013489 KR2018013489W WO2019050385A2 WO 2019050385 A2 WO2019050385 A2 WO 2019050385A2 KR 2018013489 W KR2018013489 W KR 2018013489W WO 2019050385 A2 WO2019050385 A2 WO 2019050385A2
Authority
WO
WIPO (PCT)
Prior art keywords
affine
prediction
mode
flag
block
Prior art date
Application number
PCT/KR2018/013489
Other languages
English (en)
French (fr)
Other versions
WO2019050385A3 (ko
Inventor
이재호
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to US16/645,400 priority Critical patent/US11082721B2/en
Publication of WO2019050385A2 publication Critical patent/WO2019050385A2/ko
Publication of WO2019050385A3 publication Critical patent/WO2019050385A3/ko
Priority to US17/357,032 priority patent/US11700398B2/en
Priority to US18/201,473 priority patent/US20230300384A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present invention relates to a method and apparatus for entropy encoding and decoding video signals. More particularly, the present invention relates to a method and apparatus for designing a Context-based Adaptive Binary Arithmetic Coding (CABAC) context model of syntax elements for affine prediction.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • Entropy coding is a process of generating raw byte sequence payload (RBSP) by losslessly compressing syntax elements determined through an encoding process. Entropy coding assigns a short bit to a syntax that occurs frequently using statistics of a syntax, and assigns a long bit to a syntax that does not, thereby expressing the syntax elements as concise data.
  • RBSP raw byte sequence payload
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • CABAC uses a probability model that is adaptively updated based on a context of a syntax and a previously generated symbol in a process of performing binary arithmetic coding.
  • CABAC also has a high computational complexity and has a sequential structure, which makes parallel processing difficult.
  • the present invention proposes a method for enhancing the predictive performance of the context model when CABAC is performed.
  • the present invention proposes a method of performing context modeling on syntax elements (affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc.) related to affine prediction.
  • the present invention proposes a method for improving throughput while maintaining coding performance based on CABAC (Context-based Adaptive Binary Arithmetic Coding) bypass coding.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the present invention proposes a method of performing context modeling on syntax elements (affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc.) related to affine prediction.
  • the present invention proposes a method of determining a context index of a syntax element associated with an affine prediction based on whether a neighboring block is affine coded.
  • the present invention determines a context index of a syntax element associated with an affine prediction based on at least one of whether a neighboring block is affine coded (condition 1) and / or which affine prediction mode is applied (condition 2) Method.
  • the present invention proposes a method of performing context modeling by distinguishing a motion vector prediction index (affine_mvp_idx) for affine prediction from a motion vector prediction index (mvp_idx) for non-affine prediction.
  • the present invention proposes a method of performing context-based Adaptive Binary Arithmetic Coding (CABAC) bypass coding on syntax elements related to affine prediction.
  • CABAC Adaptive Binary Arithmetic Coding
  • the present invention can improve the performance for entropy encoding / decoding by providing a method of performing context modeling on syntax elements related to predictive input of CABAC.
  • the present invention also provides a context index of a syntax element associated with affine prediction based on at least one of whether an adjacent block is affine coded (condition 1) and / or which affine prediction mode is applied (condition 2) It is possible to determine a more suitable context model for the current block, thereby improving the performance for entropy encoding / decoding.
  • the present invention can enhance the throughput while maintaining coding performance by performing context-based Adaptive Binary Arithmetic Coding (CABAC) bypass coding on syntax elements related to affine prediction.
  • CABAC Adaptive Binary Arithmetic Coding
  • FIG. 1 shows a schematic block diagram of an encoder in which the encoding of a video signal is performed, in which the present invention is applied.
  • Fig. 2 shows a schematic block diagram of a decoder in which decoding of a video signal is performed, according to an embodiment to which the present invention is applied.
  • FIG. 3 is a schematic block diagram of an entropy encoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment of the present invention.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • FIG. 4 is a schematic block diagram of an entropy decoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment of the present invention.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • FIG. 5 is a flowchart illustrating an encoding process performed according to Context-based Adaptive Binary Arithmetic Coding (CABAC) according to an embodiment of the present invention.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • FIG. 6 is a flowchart illustrating a decoding process performed according to CABAC (Context-based Adaptive Binary Arithmetic Coding) according to an embodiment of the present invention.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • FIG. 7 is a block diagram illustrating a method for selecting a context model based on neighboring blocks, to which the present invention is applied.
  • FIG. 8 is a flowchart illustrating a method of selecting a context model using a left block and an upper block according to an embodiment of the present invention.
  • FIG. 9 is a flowchart illustrating a process of entropy decoding a predictive-related syntax element, which is an affirmative factor of a current block, to which the present invention is applied.
  • FIG. 10 is a schematic block diagram of an apparatus for entropy decoding a predictive-related syntax element, which is an affirmative factor of a current block, to which the present invention is applied.
  • FIG. 11 is a flowchart illustrating a process of entropy decoding a predictive-related syntax element, which is an affirmative factor of a current block, on the basis of predictive coding-related information that is an affirmative factor of a neighboring block.
  • FIG. 12 is a flowchart illustrating a process of determining a context index of an affine flag according to an embodiment of the present invention.
  • FIG. 13 is a flowchart illustrating a process of determining a context index of an affine parameter flag according to an embodiment of the present invention.
  • FIG. 14 is a flow chart for explaining a method of using one context model for encoding an affine_param_flag according to an embodiment to which the present invention is applied.
  • Fig. 15 shows a syntax structure of affine motion prediction based on an affine flag, according to an embodiment to which the present invention is applied.
  • FIG. 16 shows a syntax structure for separating and decoding a motion vector predictor index for affine prediction and a motion vector predictor index for inter prediction, according to an embodiment of the present invention.
  • FIG. 17 shows a flowchart for adaptively determining an optimal coding mode based on at least one of AF4 mode and AF6 mode, to which the present invention is applied.
  • Fig. 18 shows a syntax structure for performing decoding based on the AF4 mode or the AF6 mode as an embodiment to which the present invention is applied.
  • FIG. 19 shows a flowchart for adaptively determining an optimal coding mode among the motion vector prediction modes including the AF4 mode or the AF6 mode based on the condition A (condition A), to which the present invention is applied.
  • Fig. 20 shows a flowchart for performing adaptive decoding according to the AF4 mode or the AF6 mode based on the condition A (condition A), to which the present invention is applied.
  • FIG. 21 shows a video coding system to which the present invention is applied.
  • FIG. 22 shows a content streaming system to which the present invention is applied.
  • the present invention relates to a method of performing entropy decoding on a video signal including a current block, comprising the steps of: confirming whether affine motion prediction has been performed on a current block; Parsing a parameter flag that is an affirmative factor of the current block based on a predetermined one context model when affine motion prediction is performed on the current block; And updating the context model based on the affine parameter flag, wherein the affine parameter flag is a flag indicating whether the affine motion prediction is performed based on the AF4 mode or the AF6 mode, Indicates that affine motion prediction is performed by four parameters, and AF6 mode indicates that affine motion prediction is performed by six parameters.
  • the context index of the current block when affine motion prediction is performed on the current block, the context index of the current block always has a value of 0 and corresponds to the predetermined one context model.
  • the checking step may be performed based on at least one of coding information and / or afore-mentioned prediction mode information which is an affine of a left block adjacent to the current block and / or an upper block.
  • the present invention relates to a method for performing entropy decoding on a video signal including a current block, the method comprising the steps of: deriving affine coding information and / or affine prediction mode information of a left block and / or an upper block neighboring the current block; ; Determining a context index of a predictive-related syntax element that is an affirmative factor of the current block based on at least one of codification information and / or affine prediction mode information of the left block and / or the upper block; And entropy decoding a predictive related syntax element that is an affirmative factor of the current block, based on the context index.
  • the affine coding information is information indicating whether or not affine motion prediction has been performed
  • the affine prediction mode information is information indicating whether affine motion prediction is performed based on the AF4 mode or the AF6 mode
  • the AF4 mode indicates that affine motion prediction is performed by four parameters
  • the AF6 mode indicates that affine motion prediction is performed by six parameters.
  • the context index of the affine flag is set based on a sum of the affine coded information of the left block and the affine coded information of the upper block
  • the affine flag is a flag indicating whether affine motion prediction has been performed.
  • the context index of the affine parameter flag is a first value determined by the affine coded information of the left block and the predictive mode information affixed to the left block
  • an affine parameter flag is determined based on a sum of a second value determined by affine coding mode information and affine prediction mode information of the upper block, wherein the affine parameter flag indicates whether affine motion prediction is based on the AF4 mode or the AF6 mode Is performed.
  • affine motion prediction is performed on the left block based on the affine flag, and when the left block is coded based on the AF6 mode based on the affine parameter flag, Is determined as 1, and the first value is determined as 0 when it is not.
  • affine motion prediction is performed on the upper block based on the affine flag, and when the upper block is coded based on the AF6 mode based on the affine parameter flag, Is determined to be 1, and the second value is determined to be 0 when it is not.
  • the affine prediction related syntax element includes an affine motion vector predictor index and / or a non-affine motion vector predictor index.
  • the affine motion vector predictor index and the non-affine motion vector predictor index are defined by different tables, and the affine motion vector predictor index represents candidates used for affine motion prediction , And the non-affine motion vector predictor index indicates a candidate used for inter prediction.
  • the present invention relates to an apparatus for performing entropy decoding on a video signal including a current block, the method comprising: confirming whether a left block and an upper block adjacent to the current block are available; When at least one is available, deriving the codification information and / or affine prediction mode information of the left block and / or the upper block, and / or the affine coding information of the left block and / or the upper block and / A context modeling unit for determining a context index of a prediction related syntax element that is an affirmative factor of the current block based on at least one of affine prediction mode information; And a binary arithmetic decoding unit entropy decoding a predictive related syntax element that is a word of the current block based on the context index, wherein the affine coding information is information indicating whether affine motion prediction has been performed, wherein the AF4 mode indicates that affine motion prediction is performed by four parameters, and the AF6 mode is a mode in which the AF6 mode
  • the term used in the present invention is selected from general terms that are widely used as far as possible, but in a specific case, explanation will be made by using terms selected arbitrarily by the applicant. In such cases, the meaning is clearly stated in the detailed description of the relevant part. Therefore, it should be understood that the present invention should not be construed on the basis of only the name of the term used in the description of the present specification, and the meaning of the corresponding term should be grasped and interpreted.
  • signals, data, samples, pictures, frames, and blocks may be appropriately substituted for each coding process.
  • FIG. 1 shows a schematic block diagram of an encoder in which the encoding of a video signal is performed, in which the present invention is applied.
  • the encoder 100 includes an image divider 110, a transform unit 120, a quantization unit 130, an inverse quantization unit 140, an inverse transform unit 150, a filtering unit 160, A picture buffer (DPB) 170, an inter prediction unit 180, an intra prediction unit 185, and an entropy encoding unit 190.
  • an image divider 110 a transform unit 120, a quantization unit 130, an inverse quantization unit 140, an inverse transform unit 150, a filtering unit 160, A picture buffer (DPB) 170, an inter prediction unit 180, an intra prediction unit 185, and an entropy encoding unit 190.
  • DPB picture buffer
  • the image divider 110 may divide an input image (or a picture or a frame) input to the encoder 100 into one or more processing units.
  • the processing unit may be a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU), or a transform unit (TU).
  • the partitioning may be performed by at least one of QT (Quad Tree), BT (Binary Tree), TT (Ternary Tree) and AT (Asymmetric Tree).
  • One block in video coding can be segmented based on QT (QuadTree).
  • QT QualityTree
  • one sub-block divided by QT can be further recursively partitioned using QT.
  • a leaf block that is not QT-divided can be divided by at least one of BT (Binary Tree), TT (Ternary Tree), or AT (Asymmetric Tree).
  • BT can have two types of segmentation: horizontal BT (2NxN, 2NxN) and vertical BT (Nx2N, Nx2N).
  • TT can have two types of segmentation: horizontal TT (2Nx1 / 2N, 2NxN, 2Nx1 / 2N) and vertical TT (1 / 2Nx2N, Nx2N, 1 / 2Nx2N).
  • AT is a horizontal-up AT (2Nx1 / 2N, 2Nx3 / 2N), a horizontal-down AT (2Nx3 / 2N, 2Nx1 / 2N), a vertical-left AT (1 / 2Nx2N, 3 / 2Nx2N) / 2Nx2N, 1 / 2Nx2N).
  • Each BT, TT, and AT can be recursively further partitioned using BT, TT, and AT.
  • BT, TT, and AT segmentation can be used together.
  • a subblock divided by BT can be divided by TT or AT.
  • subblocks divided by TT can be divided by BT or AT.
  • a subblock divided by AT can be divided by BT or TT.
  • each subblock may be partitioned into a vertical BT, or after a vertical BT partition, each subblock may be partitioned into a horizontal BT.
  • the two kinds of division methods have the same shape in the final division although the division order is different.
  • searching is performed from left to right and from top to bottom, and searching for a block means a procedure for determining whether or not each divided sub-block is further divided into blocks, or when a block is not further divided, Refers to a coding order of a block, or a search order when referring to information of another neighboring block in a sub-block.
  • the terms are used only for convenience of explanation of the present invention, and the present invention is not limited to the definition of the term.
  • the term coding unit is used as a unit used in a process of encoding or decoding a video signal, but the present invention is not limited thereto but may be appropriately interpreted according to the contents of the invention.
  • the encoder 100 can generate a residual signal by subtracting a prediction signal output from the inter prediction unit 180 or the intra prediction unit 185 from the input image signal, The dual signal is transmitted to the conversion unit 120.
  • the conversion unit 120 may apply a conversion technique to the residual signal to generate a transform coefficient.
  • the conversion process may be applied to a pixel block having the same size of a square, or to a block having a variable size other than a square.
  • the quantization unit 130 quantizes the transform coefficients and transmits the quantized transform coefficients to the entropy encoding unit 190.
  • the entropy encoding unit 190 entropy-codes the quantized signals and outputs them as a bitstream.
  • the entropy encoding unit 190 may perform entropy encoding on syntax elements, which will be described in more detail in Fig. 3 and the specification.
  • one embodiment of the present invention proposes a method of performing context modeling on syntax elements (affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc.) related to affine prediction.
  • syntax elements affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc.
  • Another embodiment proposes a method of determining a context index of a syntax element associated with an affine prediction based on whether a neighboring block is affine coded.
  • Another embodiment provides a context index of a syntax element associated with an affine prediction based on at least one of whether a neighboring block is affine coded (condition 1) and / or which affine prediction mode is applied (condition 2)
  • condition 1 a context index of a syntax element associated with an affine prediction based on at least one of whether a neighboring block is affine coded
  • condition 2 a context index of a syntax element associated with an affine prediction based on at least one of whether a neighboring block is affine coded
  • condition 2 a context index of a syntax element associated with an affine prediction based on at least one of whether a neighboring block is affine coded
  • Another embodiment provides a method of performing context modeling by separating a motion vector prediction index (affine_mvp_idx) for affine prediction and a motion vector prediction index (mvp_idx) for non-affine prediction do.
  • Another embodiment proposes a method for performing context-based Adaptive Binary Arithmetic Coding (CABAC) bypass coding on syntax elements associated with affine prediction.
  • CABAC Adaptive Binary Arithmetic Coding
  • the quantized signal output from the quantization unit 130 may be used to generate a prediction signal.
  • the quantized signal can be reconstructed by applying inverse quantization and inverse transform through the inverse quantization unit 140 and the inverse transform unit 150 in the loop.
  • a reconstructed signal can be generated by adding the restored residual signal to a prediction signal output from the inter prediction unit 180 or the intra prediction unit 185.
  • the filtering unit 160 applies filtering to the restored signal and outputs the restored signal to the playback apparatus or the decoded picture buffer 170.
  • the filtered signal transmitted to the decoding picture buffer 170 may be used as a reference picture in the inter prediction unit 180. [ As described above, not only the picture quality but also the coding efficiency can be improved by using the filtered picture as a reference picture in the inter picture prediction mode.
  • the decoded picture buffer 170 may store the filtered picture for use as a reference picture in the inter-prediction unit 180.
  • the inter-prediction unit 180 performs temporal prediction and / or spatial prediction to remove temporal redundancy and / or spatial redundancy with reference to a reconstructed picture.
  • the reference picture used for prediction is a transformed signal obtained through quantization and inverse quantization in units of blocks at the time of encoding / decoding in the previous time, blocking artifacts or ringing artifacts may exist have.
  • the inter-prediction unit 180 can interpolate signals between pixels by sub-pixel by applying a low-pass filter in order to solve the performance degradation due to discontinuity or quantization of such signals.
  • a subpixel means a virtual pixel generated by applying an interpolation filter
  • an integer pixel means an actual pixel existing in a reconstructed picture.
  • the interpolation method linear interpolation, bi-linear interpolation, wiener filter and the like can be applied.
  • the interpolation filter may be applied to a reconstructed picture to improve the accuracy of the prediction.
  • the inter-prediction unit 180 generates an interpolation pixel by applying an interpolation filter to an integer pixel, and uses an interpolated block composed of interpolated pixels as a prediction block Prediction can be performed.
  • the inter-prediction unit 180 may perform affine motion vector prediction based on at least one of an affine flag and an affine parameter flag.
  • an AF mode refers to an affine motion prediction mode using an affine motion model.
  • an affine merge mode or an affine in Mode, and affine inter mode, and the affine inter mode may include at least one of an AF4 mode and an AF6 mode.
  • the affine flag indicates whether affine prediction (affine motion prediction, or affine motion vector prediction) is performed. Or whether the AF mode is being performed.
  • the decoder can perform decoding (i.e., motion vector prediction) according to a coding mode other than the AF mode.
  • a coding mode other than the AF mode.
  • a skip mode, a merge mode, or an inter mode may be used.
  • the affine parameter flag is a flag indicating whether affine motion prediction is performed based on the AF4 mode or the AF6 mode.
  • the present invention is not limited thereto.
  • the affine parameter flag may include at least one of AF4_flag and AF6_flag.
  • the execution of the AF4 mode means that the motion vector prediction is performed using an affine motion model represented by four parameters.
  • the execution of the AF6 mode implies performing the motion vector prediction using the affine motion model represented by six parameters.
  • the affine flag and the affine parameter flag may be defined at a level of at least one of a slice, a maximum coding unit, a coding unit or a prediction unit.
  • at least one of AF_flag, AF4_flag, and AF6_flag may be defined at the slice level and again defined at the block level or the prediction unit level.
  • the intra prediction unit 185 can predict a current block by referring to samples in the vicinity of a block to be currently encoded.
  • the intraprediction unit 185 may perform the following procedure to perform intraprediction. First, a reference sample necessary for generating a prediction signal can be prepared. Then, a prediction signal can be generated using the prepared reference sample. Thereafter, the prediction mode is encoded. At this time, reference samples can be prepared through reference sample padding and / or reference sample filtering. Since the reference samples have undergone prediction and reconstruction processes, quantization errors may exist. Therefore, a reference sample filtering process can be performed for each prediction mode used for intraprediction to reduce such errors.
  • a prediction signal generated through the inter prediction unit 180 or the intra prediction unit 185 may be used to generate a reconstructed signal or may be used to generate a residual signal.
  • Fig. 2 shows a schematic block diagram of a decoder in which decoding of a video signal is performed, according to an embodiment to which the present invention is applied.
  • the decoder 200 includes a parsing unit (not shown), an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, a filtering unit 240, a decoded picture buffer (DPB) A decoded picture buffer unit 250, an inter prediction unit 260, an intra prediction unit 265, and a reconstruction unit (not shown).
  • the decoder 200 may receive the signal output from the encoder 100 of FIG. 1 and may parse or obtain the syntax element through a parser (not shown). The parsed or obtained signal may be entropy-decoded through the entropy decoding unit 210. [ This will be described in more detail in Fig. 4 and the specification.
  • an embodiment of the present invention proposes a method of performing context modeling on syntax elements (affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc.) related to affine prediction.
  • Another embodiment proposes a method of determining a context index of a syntax element associated with an affine prediction based on whether a neighboring block is affine coded.
  • Another embodiment provides a context index of a syntax element associated with an affine prediction based on at least one of whether a neighboring block is affine coded (condition 1) and / or which affine prediction mode is applied (condition 2)
  • condition 1 a context index of a syntax element associated with an affine prediction based on at least one of whether a neighboring block is affine coded
  • condition 2 a context index of a syntax element associated with an affine prediction based on at least one of whether a neighboring block is affine coded
  • condition 2 a context index of a syntax element associated with an affine prediction based on at least one of whether a neighboring block is affine coded
  • Another embodiment provides a method of performing context modeling by separating a motion vector prediction index (affine_mvp_idx) for affine prediction and a motion vector prediction index (mvp_idx) for non-affine prediction do.
  • Another embodiment proposes a method for performing context-based Adaptive Binary Arithmetic Coding (CABAC) bypass coding on syntax elements associated with affine prediction.
  • CABAC Adaptive Binary Arithmetic Coding
  • the inverse quantization unit 220 obtains a transform coefficient from the entropy-decoded signal using the quantization step size information.
  • the inverse transform unit 230 obtains a residual signal by inversely transforming the transform coefficient.
  • the restoring unit (not shown) adds the obtained residual signal to the prediction signal output from the inter-prediction unit 260 or the intra-prediction unit 265 to generate a reconstructed signal.
  • the filtering unit 240 applies filtering to a reconstructed signal and outputs the reconstructed signal to a playback apparatus or a decoding picture buffer unit 250.
  • the filtered signal transmitted to the decoding picture buffer unit 250 may be used as a reference picture in the inter prediction unit 260.
  • the embodiments described in the filtering unit 160, the inter-prediction unit 180 and the intra-prediction unit 185 of the encoder 100 respectively include the filtering unit 240 of the decoder, the inter-prediction unit 260, The same can be applied to the intra prediction unit 265.
  • the reconstructed video signal output through the decoder 200 may be reproduced through a reproducing apparatus.
  • FIG. 3 is a schematic block diagram of an entropy encoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment of the present invention.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the entropy encoding unit 300 to which the present invention is applied includes a binarization unit 310, a context modeling unit 320, a binary arithmetic encoding unit 330, and a memory 360.
  • the binary arithmetic encoding unit 330 A regular binary encoding unit 340 and a bypass binary encoding unit 350.
  • the regular binary encoding unit 340 and the bypass binary encoding unit 350 are the same as those of FIG.
  • the regular binary encoding unit 340 and the bypass binary encoding unit 350 may be referred to as a normal coding engine and a bypass coding engine, respectively.
  • the binarization unit 310 may receive a sequence of data symbols and perform binarization to output a binary symbol string composed of 0 or 1 binary values.
  • the binarization unit 310 may map syntax elements to binary symbols. Different binarization processes, such as unary (U), truncated unary (TU), k-th Exp-Golomb (EGk), and fixed length processes, Lt; / RTI > The binarization process can be selected based on the type of syntax element.
  • the output binary symbol string is transmitted to the context modeling unit 320.
  • the context modeling unit 320 selects probability information necessary for coding a current block from the memory, and transmits the selected probability information to the binary arithmetic encoding unit 330.
  • the context memory may be selected based on the syntax element to be coded and the probability information required for current syntax element coding may be selected via the empty index binIdx.
  • context refers to information on the probability of occurrence of a symbol
  • context modeling refers to a process of estimating the probability of a bin necessary for binary arithmetic coding with bin as a binarization result.
  • the context modeling unit 320 may provide an accurate probability estimate required to achieve high coding efficiency. Thus, different context models may be used for different binary symbols and the probability of this context model may be updated based on the values of the previously coded binary symbols. At this time, the values of the previously coded binary symbols are stored in the memory 360, and the context modeling unit 320 can use the values of the previously coded binary symbols.
  • Binary symbols with similar distributions may share the same context model.
  • the context model for each of these binary symbols includes, for probability estimation, at least one of the syntax information of the bean, the bin index (binIdx) indicating the position of the bean in the bin string, and the probability of the bean included in the neighboring block of the bean containing block Can be used.
  • One embodiment of the present invention proposes a method of performing context modeling on syntax elements (affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc.) related to affine prediction.
  • syntax elements affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc.
  • Another embodiment proposes a method of determining a context index of a syntax element associated with an affine prediction based on whether a neighboring block is affine coded.
  • the binary arithmetic encoding unit 330 may perform binary arithmetic encoding based on the context model.
  • the binary arithmetic encoding unit 330 includes a regular binary encoding unit 340 and a bypass binary encoding unit 350 and performs entropy encoding on the output string And outputs the compressed data bits.
  • the regular binary encoding unit 340 performs arithmetic coding based on recursive interval division.
  • an interval (or range) having an initial value of 0 to 1 is divided into two sub-intervals based on the probability of the binary symbol.
  • the encoded bits provide an offset to select one of the two subdivisions representing the value of the decoded binary symbol when converted to a binary fractional number.
  • the interval may be updated to equalize the selected lower interval, and the interval dividing process itself is repeated.
  • the intervals and offsets have limited bit precision, so renormalization may be required to prevent overflow whenever the interval falls below a certain value. The renormalization may occur after each binary symbol is decoded.
  • the bypass binary encoding unit 350 performs encoding without a context model and performs coding by fixing the probability of a currently coded bin to 0.5. This can be used when it is difficult to determine the probability of a syntax or when coding at a high speed.
  • FIG. 4 is a schematic block diagram of an entropy decoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment of the present invention.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the entropy decoding unit 400 to which the present invention is applied includes a context modeling unit 410, a binary arithmetic decoding unit 420, a memory 450 and an inverse binarization unit 460, Includes a regular binary decoding unit 430 and a bypass binary decoding unit 440.
  • the entropy decoding unit 400 can receive a bitstream and identify a bypass flag from the bitstream.
  • the bypass flag indicates whether the bypass mode is bypass mode, the bypass mode does not use the context model, and the probability of the currently coded bin is 0.5 Which means that the coding is performed by fixing.
  • the regular binary decoding unit 430 When the bypass mode is not in accordance with the bypass flag, the regular binary decoding unit 430 performs binary arithmetic decoding according to a regular mode .
  • the context modeling unit 410 selects probability information necessary to decode the current bitstream from the memory 450, and transmits the random information to the regular binary decoding unit 430.
  • One embodiment of the present invention proposes a method of performing context modeling on syntax elements (affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc.) related to affine prediction.
  • syntax elements affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc.
  • Another embodiment proposes a method of determining a context index of a syntax element associated with an affine prediction based on whether a neighboring block is affine coded.
  • the binary arithmetic decoding unit 420 may perform binary arithmetic decoding based on the context model.
  • the bypass binary decoding unit 440 performs a binary arithmetic decoding process according to a bypass mode, .
  • the inverse binarization unit 460 receives the decoded binary number bin from the binary arithmetic decoding unit 420 and converts the binary value into an integer type syntax element value.
  • FIG. 5 is a flowchart illustrating an encoding process performed according to Context-based Adaptive Binary Arithmetic Coding (CABAC) according to an embodiment of the present invention.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the encoder may perform binarization on the syntax element (S510).
  • the encoder can determine whether to perform binary arithmetic coding according to the normal mode or to perform binary arithmetic coding according to the bypass mode (S520). For example, the encoder can determine whether the mode is a normal mode or a bypass mode based on a bypass flag. For example, if the bypass flag is 1, the encoder indicates a bypass mode, A value of 0 indicates normal mode.
  • the encoder may select a probability model (S530) and perform a binary arithmetic encoding based on the probability model (S540).
  • the encoder may update the probability model (S550), and may then select an appropriate probability model based on the updated probability model in operation S530.
  • One embodiment of the present invention may perform context modeling on syntax elements (affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc) related to affine prediction.
  • syntax elements affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc
  • Another embodiment may determine the context index of a syntax element associated with an affine prediction based on whether the neighboring block is affine coded.
  • Another embodiment provides a context index of a syntax element associated with an affine prediction based on at least one of whether a neighboring block is affine coded (condition 1) and / or which affine prediction mode is applied (condition 2) You can decide.
  • context modeling can be performed by distinguishing a motion vector prediction index (affine_mvp_idx) for affine prediction from a motion vector prediction index (mvp_idx) for non-affine prediction.
  • affine_mvp_idx a motion vector prediction index for affine prediction
  • mvp_idx a motion vector prediction index for non-affine prediction
  • the encoder may perform binary arithmetic encoding based on probability 0.5 (S560).
  • One embodiment of the present invention proposes a method of performing context-based Adaptive Binary Arithmetic Coding (CABAC) bypass coding on syntax elements related to affine prediction.
  • CABAC Adaptive Binary Arithmetic Coding
  • FIG. 6 is a flowchart illustrating a decoding process performed according to CABAC (Context-based Adaptive Binary Arithmetic Coding) according to an embodiment of the present invention.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the decoder can receive the bitstream (S610).
  • the decoder extracts a bypass flag from the bitstream to check whether it is in the normal mode or the bypass mode (S620).
  • the bypass flag may be determined in advance according to the type of the syntax.
  • CABAC context-based Adaptive Binary Arithmetic Coding
  • the decoder can select a probability model (S630) and perform binary arithmetic decoding based on the probability model (S640). Then, the decoder can update the probability model (S650), and can select a suitable probability model again based on the updated probability model in operation S630.
  • One embodiment of the present invention may perform context modeling on syntax elements (affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc) related to affine prediction.
  • syntax elements affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc
  • Another embodiment may determine the context index of a syntax element associated with an affine prediction based on whether the neighboring block is affine coded.
  • Another embodiment provides a context index of a syntax element associated with an affine prediction based on at least one of whether a neighboring block is affine coded (condition 1) and / or which affine prediction mode is applied (condition 2) You can decide.
  • context modeling can be performed by distinguishing a motion vector prediction index (affine_mvp_idx) for affine prediction from a motion vector prediction index (mvp_idx) for non-affine prediction.
  • affine_mvp_idx a motion vector prediction index for affine prediction
  • mvp_idx a motion vector prediction index for non-affine prediction
  • the decoder may perform binary arithmetic decoding based on the probability 0.5 (S660).
  • the decoder may perform inverse binarization on the decoded bin string (S670). For example, it is possible to receive a decoded binary-type bin and convert it to an integer type syntax element value.
  • FIG. 7 is a block diagram illustrating a method for selecting a context model based on neighboring blocks, to which the present invention is applied.
  • CABAC's context model can be considered variously depending on statistical characteristics. For example, when using one context model, one context model can be used without considering special conditions. However, when three context models are used, the context model can be designed based on conditions, that is, based on the syntax element of the neighboring block.
  • a current block is denoted by C
  • a left block adjacent to the current block is denoted by L
  • an upper block is denoted by A.
  • the context model for the syntax of the current block C can be determined using at least one of the left block L and the upper block A which are neighboring blocks.
  • Equation 1 shows a method of selecting a context model using the left block and the upper block.
  • availableL and availableA indicate whether the left block and the upper block exist, respectively, and condL and condA indicate the values of corresponding syntaxes for the left block and the upper block, respectively.
  • three context models may be used according to the syntax values of neighboring blocks.
  • the context model may be determined according to a syntax value of a neighboring block regardless of a size of a current block or a size of a neighboring block.
  • the statistical characteristics of the affine prediction-related syntax elements may differ depending on the information associated with predictive coding, which is an affirmative factor of a neighboring block.
  • the present invention proposes a method of determining a context model based on information related to predictive coding, which is an affirmative factor of a neighboring block.
  • FIG. 8 is a flowchart illustrating a method of selecting a context model using a left block and an upper block according to an embodiment of the present invention.
  • a method for selecting a context model according to the present invention can be applied to both an encoder and a decoder, and will be described with reference to a decoder for convenience of explanation.
  • the decoder can derive the left block and the upper block adjacent to the current block (S810). That is, it can be confirmed whether the left block and the upper block adjacent to the current block are available.
  • the decoder may derive a syntax value from at least one of the left block and the upper block (S820).
  • the decoder may determine the context model based on the syntax value of at least one of the left block and the upper block (S830).
  • the decoder may derive a context index (CtxIdx) value (S840).
  • the decoder may perform binary arithmetic decoding based on the context index (CtxIdx) value (S850).
  • FIG. 9 is a flowchart illustrating a process of entropy decoding a predictive-related syntax element, which is an affirmative factor of a current block, to which the present invention is applied.
  • the decoder may derive codification information and / or affine prediction mode information that are affinities of the left block and / or the upper block neighboring the current block (S910).
  • the affine coding information is information indicating whether affine motion prediction has been performed.
  • the affine coding information of the left block may be represented by affine_L
  • the affine coding information of the upper block may be represented by affine_A.
  • the affine prediction mode information is information indicating whether affine motion prediction is performed based on the AF4 mode or the AF6 mode.
  • the AF4 mode indicates that affine motion prediction is performed by four parameters
  • the AF6 mode indicates that affine motion prediction is performed by six parameters.
  • the prediction mode information which is an affirmative factor of the left block
  • affine_param_L the prediction mode information which is an affirmative word of the upper block
  • affine_param_A the prediction mode information which is an affirmative word of the upper block.
  • the decoder may determine a context index of a prediction-related syntax element that is an affirmative factor of the current block based on at least one of codification and / or affine prediction mode information of the left block and / or the upper block S920).
  • the decoder may entropy-decode a predictive-related syntax element that is an affirmative factor of the current block, based on the context index (S930).
  • the entropy decoded affine prediction related syntax element may be used for affine motion vector prediction.
  • FIG. 10 is a schematic block diagram of an apparatus for entropy decoding a predictive-related syntax element, which is an affirmative factor of a current block, to which the present invention is applied.
  • the entropy decoding unit to which the present invention is applied includes an element 1010 for deriving affine coding information and / or affine prediction mode information of a neighboring block, an element 1020 for determining a context index of a prediction related syntax element, And an element 1030 for entropy decoding a predictive related syntax element that is an affirmative in the current block.
  • the element 1010 for deriving the affine coded information and / or affine prediction mode information of the neighboring block may include at least one of an affine coding information and / or affine prediction mode information of a left block and / or an upper block neighboring the current block .
  • the element 1020 for determining the context index of the predictive-related syntax element determines the context index of the current block based on at least one of the affine coding information and / or affine prediction mode information of the left block and / It is possible to determine the context index of the affine prediction related syntax element.
  • the entropy decoding element 1030 for a predictive-related syntax element that is an affirmative factor of the current block can entropy-decode a predictive-related syntax element, which is an affirmative factor of the current block, based on the context index.
  • the entropy decoded affine prediction related syntax element may be used for affine motion vector prediction.
  • FIG. 11 is a flowchart illustrating a process of entropy decoding a predictive-related syntax element, which is an affirmative factor of a current block, on the basis of predictive coding-related information that is an affirmative factor of a neighboring block.
  • the decoder can check whether the left block and the upper block adjacent to the current block are available (S1110).
  • the decoder may derive, when at least one of the left block and / or the upper block is available, codification information and / or affine prediction mode information of the left block and / or the upper block (S1120 ).
  • the affine coding information is information indicating whether affine motion prediction has been performed.
  • the affine coding information of the left block may be represented by affine_L
  • the affine coding information of the upper block may be represented by affine_A.
  • the affine prediction mode information is information indicating whether affine motion prediction is performed based on the AF4 mode or the AF6 mode.
  • the AF4 mode indicates that affine motion prediction is performed by four parameters
  • the AF6 mode indicates that affine motion prediction is performed by six parameters.
  • the prediction mode information which is an affirmative factor of the left block
  • affine_param_L the prediction mode information which is an affirmative word of the upper block
  • affine_param_A the prediction mode information which is an affirmative word of the upper block.
  • the decoder may determine a context index of a prediction-related syntax element that is an affirmative factor of the current block based on at least one of codification and / or affine prediction mode information of the left block and / or the upper block S1130).
  • the context index of the affine flag is based on the sum of the affine coded information of the left block and the affine information of the upper block ≪ / RTI > At this time, the affine flag indicates whether affine motion prediction has been performed.
  • the context index of the affine parameter flag is set to a first index determined by affine coding information and affine prediction mode information of the left block Value and the second value determined by the affine coded information and affine prediction mode information of the upper block.
  • the affine parameter flag indicates whether affine motion prediction is performed based on the AF4 mode or the AF6 mode.
  • affine motion prediction is performed on the left block based on the affine flag, and when the left block is coded based on the AF6 mode based on the affine parameter flag, Is determined as 1, and the first value is determined as 0 when it is not.
  • affine motion prediction is performed on the upper block based on the affine flag, and when the upper block is coded based on the AF6 mode based on the affine parameter flag, the second value Is determined to be 1, and the second value is determined to be 0 when it is not.
  • the affine prediction related syntax element includes an affine motion vector predictor index and / or a non-affine motion vector predictor index
  • the affine motion vector predictor index and the non-affine motion vector predictor index may be defined by different tables.
  • the affine motion vector predictor index indicates a candidate used for affine motion prediction
  • the non-affine motion vector predictor index indicates a candidate used for inter prediction.
  • the decoder may entropy-decode a predictive-related syntax element that is an affirmative factor of the current block based on the context index (S1140).
  • the entropy decoded affine prediction related syntax element may be used for affine motion vector prediction.
  • FIG. 12 is a flowchart illustrating a process of determining a context index of an affine flag according to an embodiment of the present invention.
  • One embodiment of the present invention proposes a context model for an affine flag (affine_flag).
  • the context model of the current block C is composed of three context models based on the coding information of the adjoining left block L and the upper block A and can determine the context index as shown in the following Equation 2.
  • the affine coding information indicates whether affine motion prediction has been performed.
  • ctx_idx_for_affine_flag is a context index for the affine flag (affine_flag), which may have a value of 0 to 2.
  • affine_L indicates whether affine motion prediction has been performed on the left block
  • affine_A indicates whether affine motion prediction has been performed on the upper block.
  • affine_L or affine_A has a value of 1
  • affine_L or affine_A has a value of 0 when affine motion prediction is not performed.
  • each context model can be configured as shown in Table 1 below.
  • Init_val represents an initial value and represents an arbitrary value satisfying the following expression (3).
  • p (N 0 ), p (N 1 ), and p (N 2 ) represent probability values that affine_flag is true in each initial value.
  • Equation (3) means that the greater the number of neighboring blocks in which affine motion prediction is performed, the higher the probability that the current block is also a block in which motion prediction has been performed.
  • the decoder can derive codification information that is a word of a left block and / or an upper block of a current block (S1210).
  • the decoder can check whether affine motion prediction has been performed on the left block and / or the upper block based on the affine coding information (S1220).
  • affine_L 1 (first value)
  • affine_A 1 (second value) (S1230).
  • affine_L 0 (first value)
  • affine_A 0 2)
  • the decoder may determine the context index of the affine flag based on the sum of the first value for the left block and the second value for the upper block (S1250).
  • the decoder can determine the context index of the affine flag based on the sum of the encoding information of the left block and the encoding information of the upper block. At this time, the affine flag indicates whether affine motion prediction has been performed.
  • a context model that is more suitable for a current block can be determined by determining the context index of a syntax element related to affine prediction based on the coding information of an affine of the neighboring block, thereby enabling the entropy encoding / The performance can be improved.
  • FIG. 13 is a flowchart illustrating a process of determining a context index of an affine parameter flag according to an embodiment of the present invention.
  • the context index of the affine parameter flag is determined by affine coding information and affine prediction mode information of the left block And may be determined based on the determined first value and the sum of the second value determined by the affine coded information of the upper block and affine prediction mode information.
  • the affine parameter flag is a flag indicating whether affine motion prediction is performed based on the AF4 mode or the AF6 mode.
  • the affine coding information is information indicating whether affine motion prediction has been performed.
  • the affine prediction mode information is information indicating whether affine motion prediction is performed based on the AF4 mode or the AF6 mode.
  • the AF4 mode indicates that affine motion prediction is performed by four parameters
  • the AF6 mode indicates that affine motion prediction is performed by six parameters.
  • the present invention describes a context model for an affine parameter flag (affine_param_flag).
  • the context model of the current block C includes a first value determined by affine coding information of the left block and affine prediction mode information and a second value determined by affine coding mode information and affine prediction mode information Based on the sum, three context models are used, as shown in Equation 4 below.
  • ctx_idx_for_affine_param_flag is a context index for the affine parameter flag (affine_param_flag), and may have a value of 0 to 2.
  • affine_L indicates whether affine motion prediction has been performed on the left block
  • affine_A indicates whether affine motion prediction has been performed on the upper block.
  • affine_L or affine_A has a value of 1
  • affine_L or affine_A has a value of 0 when affine motion prediction is not performed.
  • affine_param_L indicates whether affine motion prediction for the left block is performed based on the AF6 mode
  • affine_param_A indicates whether affine motion prediction for the upper block is performed based on the AF6 mode.
  • affine_param_L or affine_param_A has a value of 1
  • affine_param_L or affine_param_A has a value of 0 when affine motion prediction is not performed based on the AF6 mode.
  • the decoder may derive the codeword encoding information and / or the word prediction mode information of the left block and / or the upper block of the current block (S1310).
  • the decoder can check whether affine motion prediction has been performed on the left block and / or the upper block based on the affine coding information (S1320).
  • the decoder can check whether affine motion prediction is performed based on the AF6 mode or based on the AF4 mode based on the affine prediction mode information (S1330).
  • affine_L && affine_param_L 1 in the case of the left block (first value) and in case of the upper block Value)
  • affine_A && affine_param_A 1 (S1340).
  • the decoder may determine a context index of an affine parameter flag based on a sum of the first value and the second value.
  • the context index of the affine parameter flag may have a value of 0 to 2.
  • each context model can be configured as shown in Table 2 below.
  • Init_val represents an initial value and represents an arbitrary value satisfying the following expression (5).
  • p (N 0 ), p (N 1 ), and p (N 2 ) represent probability values in which the affine parameter flag (affine_param_flag) is true in each initial value.
  • Equation (5) means that the greater the number of neighboring blocks in which affine motion prediction is performed based on the AF6 mode, the higher the likelihood that the current block is also a block performed based on the AF6 mode.
  • the present invention determines the context index of the syntax element related to the affine prediction based on at least one of the affine coding information and / or the affine prediction mode information of the neighboring block, thereby obtaining a context model more suitable for the current block , Thereby improving performance for entropy encoding / decoding.
  • FIG. 14 is a flow chart for explaining a method of using one context model for encoding an affine_param_flag according to an embodiment to which the present invention is applied.
  • the probability of occurrence and the probability model may be different.
  • the probability of occurrence of affine_param_flag using three context models can be calculated as shown in Table 3 below.
  • one context model is constructed as shown in Table 4, and the initial value can be determined as a value having a certain probability according to QP.
  • the encoder / decoder can check whether affine motion prediction has been performed on the current block (S1410). For example, this can be determined by the process of FIG. 12, and redundant explanations are omitted.
  • the encoder / decoder can parse a parameter flag that is an attribution of the adjunct block based on one default context model (S1420). At this time, since only one context model is used, the context index is always zero.
  • the encoder / decoder may update the context model based on the parsed in-parameter flag (S1430).
  • throughput can be improved while maintaining coding performance through CABAC bypass coding of affine_param_flag.
  • CABAC While CABAC exhibits high coding performance, data dependence results in a throughput bottleneck, especially at high bit rates. Because high throughput provides power savings, CABAC can limit battery life in video coding / decoding. This is very important for portable devices such as smart phones. Therefore, in designing a video coding system, not only coding efficiency but also throughput improvement is a very important factor.
  • Most throughput enhancement can be performed by bypassing the probability estimation for uniform distributed bins (bypass coding mode).
  • the present invention provides a method for improving throughput while maintaining coding performance through bypass coding of affine_param_flag. Specifically, one bin is used for affine_param_flag, and one bin of affine_param_flag is bypass-coded.
  • affine_mvp_idx can be decoded separately from mvd_CPi, which will be described with reference to FIG. At this time, mvp_idx in FIG. 15 may be replaced with mvd_CPi in FIG.
  • mvd_CPi represents the motion vector difference of the control point CPi.
  • Fig. 15 shows a syntax structure of affine motion prediction based on an affine flag, according to an embodiment to which the present invention is applied.
  • the present invention describes a context model for encoding mvp_idx. As shown in FIG. 15, since a MVP (Motion Vector Predictor) candidate is used in inter-coding irrespective of whether or not affine motion prediction coding is performed, it is not used in affine motion estimation and other inter prediction . Accordingly, the present invention provides a method of using one context model and an initial value for mvp_idx.
  • MVP Motion Vector Predictor
  • the decoder acquires the merge_flag to check whether the merge mode is applied to the current block (S1510).
  • affine_flag indicates whether the AF mode is performed or not.
  • affine_flag 1, that is, if the AF mode is performed for the current block, the decoder can obtain the affine_param_flag (S1530).
  • affine_param_flag indicates whether the AF6 mode is performed (or whether the AF4 mode is performed).
  • the decoder can obtain a motion vector predictor index (mvp_idx) (S1540). At this time, one context model and initial value for mvp_idx may be used.
  • the decoder can obtain a motion predictor based on the motion vector predictor index (mvp_idx), and can restore a video signal based on the motion predictor.
  • FIG. 16 shows a syntax structure for separating and decoding a motion vector predictor index for affine prediction and a motion vector predictor index for inter prediction, according to an embodiment of the present invention.
  • the present invention describes a method for designing a CABAC context model by separating mvp_idx (affine_mvp_idx) for affine prediction and mvp_idx for non-affine prediction.
  • affine) the probability decreases as QP increases.
  • non affine) the probability increases as QP increases.
  • the present invention proposes to divide and decode the mvp index according to affine prediction.
  • the decoder acquires the merge_flag to check whether the merge mode is applied to the current block (S1610).
  • affine_flag indicates whether the AF mode is performed or not.
  • affine_flag 1, that is, when the AF mode is performed for the current block
  • the decoder can obtain affine_param_flag and affine_mvp_idx (S1630 and S1640).
  • affine_param_flag indicates whether the AF6 mode is performed (or whether the AF4 mode is performed).
  • affine_mvp_idx represents the affine motion vector predictor index.
  • mvp_idx denotes a motion vector predictor index for inter prediction.
  • the decoder may obtain a motion predictor based on the affine motion vector predictor index or the inter-prediction motion vector predictor index, and may restore the video signal based on the motion predictor.
  • Table 7 and Table 8 show the context model of affine_mvp_idx and mvp index and their initial values, respectively.
  • the initial value N affine_mvp_idx of affine_mvp_idx can be determined to be a value at which the probability that affine_mvp_idx is 0 increases as QP increases.
  • the initial value N mvp_idx of mvp_idx can be determined to increase the probability that mvp_idx is 0 as QP increases.
  • FIG. 17 shows a flowchart for adaptively determining an optimal coding mode based on at least one of AF4 mode and AF6 mode, to which the present invention is applied.
  • the video signal processing apparatus may perform prediction based on at least one of a skip mode, a merge mode, and an inter mode (S1710).
  • the merge mode may include not only the general merge mode but also the AF merge mode described above
  • the inter mode may include the general inter mode as well as the AF inter mode described above.
  • the video signal processing apparatus may perform motion vector prediction based on at least one of an AF4 mode and an AF6 mode (S1720).
  • steps S1710 and S1720 are not limited to the order.
  • the video signal processing apparatus may compare the results of step S1720 and determine an optimal coding mode among the modes (S1730). At this time, the results of step S1720 may be compared based on a Rate-Distortion Cost.
  • the video signal processing apparatus can generate a motion vector predictor of the current block based on an optimal coding mode, and subtract the motion vector predictor from the motion vector of the current block to obtain a motion vector difference value .
  • Fig. 18 shows a syntax structure for performing decoding based on the AF4 mode or the AF6 mode as an embodiment to which the present invention is applied.
  • the decoder obtains the merge_flag to check whether the merge mode is applied to the current block (S1810).
  • the decoder may obtain an affine_flag (S1820).
  • affine_flag indicates whether the AF mode is performed or not.
  • affine_flag 1, that is, if the AF mode is performed for the current block, the decoder can obtain the affine_param_flag (S1830).
  • affine_param_flag indicates whether the AF4 mode is performed (or whether affine motion prediction is performed by four parameters).
  • the decoder can obtain mvd_CPO and mvd_CP1, which are two motion vector difference values (S1840).
  • mvd_CP0 represents a motion vector difference value for the control point
  • mvd_CP1 represents a motion vector difference value for the control point 1.
  • the decoder can obtain mvd_CPO, mvd_CP1, and mvd_CP2, which are three motion vector difference values (S1850).
  • FIG. 19 shows a flowchart for adaptively determining an optimal coding mode among the motion vector prediction modes including the AF4 mode or the AF6 mode based on the condition A (condition A), to which the present invention is applied.
  • the encoder may perform the prediction based on at least one of the skip mode, the merge mode, and the inter mode (S1910).
  • the encoder can check whether the condition A is satisfied for the current block to determine an optimal coding mode for motion vector prediction (S1920).
  • the condition A may mean a condition for a block size.
  • the condition A indicates whether the number of pixels (pixNum) of the current block is greater than the threshold value TH1.
  • the condition A indicates whether the width and height of the current block are both greater than the threshold value TH1.
  • the condition A indicates whether the width of the current block is greater than a threshold value TH1 or whether a height of the current block is greater than a threshold value TH1.
  • the encoder can perform motion vector prediction based on at least one of AF4 mode and AF6 mode (S1930).
  • the encoder may compare the results of steps S1910 and S1930 to determine an optimal coding mode among the motion vector prediction modes including the AF4 mode or the AF6 mode (S1940).
  • the encoder can determine an optimal coding mode among modes other than the AF mode (S 1940).
  • the encoder can generate a motion vector predictor of the current block based on the optimal coding mode, and subtract the motion vector predictor from the motion vector of the current block to obtain a motion vector difference value.
  • Fig. 20 shows a flowchart for performing adaptive decoding according to the AF4 mode or the AF6 mode based on the condition A (condition A), to which the present invention is applied.
  • the decoder can receive the bit stream (S2010).
  • the bitstream may include information on the coding mode of the current block in the video signal.
  • the decoder can check whether the condition A is satisfied for the current block to determine an optimal coding mode for motion vector prediction (S2020).
  • the condition A may mean a condition for a block size.
  • the embodiments of FIG. 18 may be applied.
  • the decoder can check whether the coding mode of the current block is the AF mode (S2030).
  • the AF mode means an affine motion prediction mode using an affine motion model, and the embodiments described herein can be applied.
  • the step S2030 may be confirmed by an affine flag indicating whether or not the AF mode is performed.
  • the decoder may perform decoding (i.e., motion vector prediction) according to a coding mode other than the AF mode (S2040 ). For example, a skip mode, a merge mode, or an inter mode may be used.
  • the decoder can check whether the AF4 mode is applied to the current block (S2050).
  • the step S1950 may be confirmed by a parameter flag indicating whether AF4 mode is performed (or whether affine motion prediction is performed by four parameters).
  • FIG. 21 shows a video coding system to which the present invention is applied.
  • the video coding system may include a source device and a receiving device.
  • the source device may deliver the encoded video / image information or data in the form of a file or stream to a receiving device via a digital storage medium or network.
  • the source device may include a video source, an encoding apparatus, and a transmitter.
  • the receiving device may include a receiver, a decoding apparatus, and a renderer.
  • the encoding apparatus may be referred to as a video / image encoding apparatus, and the decoding apparatus may be referred to as a video / image decoding apparatus.
  • the transmitter may be included in the encoding device.
  • the receiver may be included in the decoding apparatus.
  • the renderer may include a display unit, and the display unit may be composed of a separate device or an external component.
  • a video source can acquire video / image through capturing, compositing, or generating a video / image.
  • the video source may include a video / video capture device and / or a video / video generation device.
  • the video / video capture device may include, for example, one or more cameras, video / video archives including previously captured video / images, and the like.
  • the video / image generation device may include, for example, a computer, tablet, smart phone, and the like (electronically) to generate video / images.
  • a virtual video / image may be generated through a computer or the like. In this case, the video / image capturing process may be replaced in the process of generating related data.
  • the encoding device may encode the input video / image.
  • the encoding apparatus can perform a series of procedures such as prediction, conversion, quantization, and entropy encoding for compression and coding efficiency.
  • the encoded data (encoded video / image information) can be output in the form of a bitstream.
  • the embodiments of the present specification can be applied in performing entropy encoding.
  • the transmitting unit may transmit the encoded video / image information or data output in the form of a bit stream to a receiving unit of the receiving device through a digital storage medium or a network in the form of a file or a stream.
  • the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD and the like.
  • the transmission unit may include an element for generating a media file through a predetermined file format, and may include an element for transmission over a broadcast / communication network.
  • the receiving unit may extract the bitstream and transmit it to the decoding apparatus.
  • the decoding apparatus may perform a series of procedures such as entropy decoding, dequantization, inverse transform, and prediction corresponding to the operation of the encoding apparatus to decode the video / image.
  • entropy decoding dequantization, inverse transform, and prediction corresponding to the operation of the encoding apparatus to decode the video / image.
  • the embodiments of the present specification can be applied in performing entropy decoding.
  • the renderer may render the decoded video / image.
  • the rendered video / image can be displayed through the display unit.
  • FIG. 22 shows a content streaming system to which the present invention is applied.
  • the content streaming system to which the present invention is applied may include an encoding server, a streaming server, a web server, a media repository, a user device, and a multimedia input device.
  • the encoding server compresses content input from multimedia input devices such as a smart phone, a camera, and a camcorder into digital data to generate a bit stream and transmit the bit stream to the streaming server.
  • multimedia input devices such as a smart phone, a camera, a camcorder, or the like directly generates a bitstream
  • the encoding server may be omitted.
  • the bitstream may be generated by an encoding method or a bitstream generating method to which the present invention is applied, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
  • the streaming server transmits multimedia data to a user device based on a user request through the web server, and the web server serves as a medium for informing the user of what services are available.
  • the web server delivers it to the streaming server, and the streaming server transmits the multimedia data to the user.
  • the content streaming system may include a separate control server. In this case, the control server controls commands / responses among the devices in the content streaming system.
  • the streaming server may receive content from a media repository and / or an encoding server. For example, when receiving the content from the encoding server, the content can be received in real time. In this case, in order to provide a smooth streaming service, the streaming server can store the bit stream for a predetermined time.
  • Examples of the user device include a mobile phone, a smart phone, a laptop computer, a digital broadcasting terminal, a personal digital assistant (PDA), a portable multimedia player (PMP), a navigation device, a slate PC, Such as tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glass, HMDs (head mounted displays)), digital TVs, desktops Computers, and digital signage.
  • PDA personal digital assistant
  • PMP portable multimedia player
  • slate PC Such as tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glass, HMDs (head mounted displays)), digital TVs, desktops Computers, and digital signage.
  • Each of the servers in the content streaming system can be operated as a distributed server. In this case, data received at each server can be distributed.
  • the embodiments described in the present invention can be implemented and executed on a processor, a microprocessor, a controller, or a chip.
  • the functional units depicted in the drawings may be implemented on a computer, processor, microprocessor, controller, or chip.
  • the decoder and encoder to which the present invention is applied can be applied to multimedia communication devices such as a multimedia broadcasting transmitting and receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video chatting device, (3D) video device, a video telephony video device, and a medical video device, and can be used to process video signals and data signals, Lt; / RTI >
  • the processing method to which the present invention is applied may be produced in the form of a computer-executed program, and may be stored in a computer-readable recording medium.
  • the multimedia data having the data structure according to the present invention can also be stored in a computer-readable recording medium.
  • the computer-readable recording medium includes all kinds of storage devices in which computer-readable data is stored.
  • the computer readable recording medium includes, for example, a Blu-ray Disc (BD), a universal serial bus (USB), a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk and an optical data storage device .
  • the computer-readable recording medium includes media implemented in the form of a carrier wave (for example, transmission over the Internet).
  • the bit stream generated by the encoding method can be stored in a computer-readable recording medium or transmitted over a wired or wireless communication network.

Landscapes

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

Abstract

본 발명은, 현재 블록을 포함하는 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서, 상기 현재 블록에 이웃하는 좌측 블록 및/또는 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보를 유도하는 단계; 상기 좌측 블록 및/또는 상기 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보 중 적어도 하나에 기초하여 상기 현재 블록의 어파인 예측 관련 신택스 요소의 컨텍스트 인덱스를 결정하는 단계; 및 상기 컨텍스트 인덱스에 기초하여, 상기 현재 블록의 어파인 예측 관련 신택스 요소를 엔트로피 디코딩하는 단계를 포함하는 방법을 제공한다.

Description

비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
본 발명은 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치에 관한 것이다. 보다 구체적으로, 어파인 예측을 위한 신택스 요소들(syntax elements for affine prediction)의 CABAC(Context-based Adaptive Binary Arithmetic Coding) 컨텍스트 모델(context model)을 디자인하는 방법 및 장치에 관한 것이다.
엔트로피 코딩은 부호화 과정을 통해 결정된 신택스 엘리먼트들을 무손실 압축하여 RBSP(Raw Byte Sequence Payload)를 생성하는 과정이다. 엔트로피 코딩은 신택스의 통계를 이용하여 자주 발생하는 신택스에 대해서는 짧은 비트를 할당하고, 그렇지 않은 신택스에는 긴 비트를 할당하여 신택스 엘리먼트들을 간결한 데이터로 표현한다.
그 중, CABAC(Context-based Adaptive Binary Arithmetic Coding)은 이진 산술 코딩을 수행하는 과정에서 신택스의 컨텍스트와 이전에 발생한 심볼에 기초하여 적응적으로 업데이트된 확률 모델을 사용한다. 그러나, 이러한 CABAC도 연산량이 많아 복잡도가 높고 순차적 구조를 가지고 있어 병렬 수행이 어려운 문제점이 있다.
따라서, 비디오 압축 기술에 있어서 신택스 엘리먼트를 보다 효율적으로 압축하고 전송할 필요가 있으며, 이를 위해 엔트로피 코딩의 성능을 향상시킬 필요가 있다.
본 발명은, CABAC 수행시 컨텍스트 모델의 예측 성능을 높이기 위한 방법을 제안하고자 한다.
본 발명은, 어파인 예측과 관련된 신택스 엘리먼트(affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc)에 대해 컨텍스트 모델링을 수행하는 방법을 제안하고자 한다.
본 발명은, CABAC(Context-based Adaptive Binary Arithmetic Coding) 바이패스 코딩에 기초하여 코딩 성능을 유지하면서 쓰루풋(throughput)을 향상시키는 방법을 제안하고자 한다.
본 발명은, 어파인 예측과 관련된 신택스 엘리먼트(affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc)에 대해 컨텍스트 모델링을 수행하는 방법을 제안한다.
본 발명은, 이웃 블록이 어파인 코딩되었는지 여부에 기초하여 어파인 예측과 관련된 신택스 엘리먼트의 컨텍스트 인덱스를 결정하는 방법을 제안한다.
본 발명은, 이웃 블록이 어파인 코딩되었는지 여부(조건1) 및/또는 어떠한 어파인 예측 모드가 적용되었는지 (조건 2) 중 적어도 하나에 기초하여 어파인 예측과 관련된 신택스 엘리먼트의 컨텍스트 인덱스를 결정하는 방법을 제안한다.
본 발명은, 어파인 예측을 위한 모션 벡터 예측 인덱스(affine_mvp_idx) 와 비-어파인 예측(non-affine prediction)을 위한 모션 벡터 예측 인덱스(mvp_idx)를 구분하여 컨텍스트 모델링을 수행하는 방법을 제안한다.
본 발명은, 어파인 예측과 관련된 신택스 엘리먼트에 대해 CABAC(Context-based Adaptive Binary Arithmetic Coding) 바이패스 코딩을 수행하는 방법을 제안한다.
본 발명은, CABAC 수행시 어파인 예측과 관련된 신택스 엘리먼트에 대해 컨텍스트 모델링을 수행하는 방법을 제공함으로써 엔트로피 부호화/복호화에 대한 성능을 향상시킬 수 있다.
또한, 본 발명은, 이웃 블록이 어파인 코딩되었는지 여부(조건1) 및/또는 어떠한 어파인 예측 모드가 적용되었는지 (조건 2) 중 적어도 하나에 기초하여 어파인 예측과 관련된 신택스 엘리먼트의 컨텍스트 인덱스를 결정함으로써 현재 블록에 보다 적합한 컨텍스트 모델을 결정할 수 있고, 이를 통해 엔트로피 부호화/복호화에 대한 성능을 향상시킬 수 있다.
또한, 본 발명은, 어파인 예측과 관련된 신택스 엘리먼트에 대해 CABAC(Context-based Adaptive Binary Arithmetic Coding) 바이패스 코딩을 수행함으로써 코딩 성능을 유지하면서 쓰루풋(throughput)을 향상시킬 수 있다.
도 1은 본 발명이 적용되는 실시예로서, 비디오 신호의 인코딩이 수행되는 인코더의 개략적인 블록도를 나타낸다.
도 2는 본 발명이 적용되는 실시예로서, 비디오 신호의 디코딩이 수행되는 디코더의 개략적인 블록도를 나타낸다.
도 3은 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)이 적용되는 엔트로피 인코딩부의 개략적인 블록도를 나타낸다.
도 4는 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)이 적용되는 엔트로피 디코딩부의 개략적인 블록도를 나타낸다.
도 5는 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 따라 수행되는 인코딩 흐름도를 나타낸다.
도 6은 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 따라 수행되는 디코딩 흐름도를 나타낸다.
도 7은 본 발명이 적용되는 실시예로서, 이웃 블록에 기초하여 컨텍스트 모델을 선택하는 방법을 설명하기 위한 블록 관계도를 나타낸다.
도 8은 본 발명이 적용되는 실시예로서, 좌측 블록과 상측 블록을 이용하여 컨텍스트 모델을 선택하는 방법을 나타내는 흐름도이다.
도 9는 본 발명이 적용되는 실시예로서, 현재 블록의 어파인 예측 관련 신택스 요소를 엔트로피 디코딩하는 과정을 나타내는 흐름도이다.
도 10은 본 발명이 적용되는 실시예로서, 현재 블록의 어파인 예측 관련 신택스 요소를 엔트로피 디코딩하는 장치의 개략적인 블록도이다.
도 11은 본 발명이 적용되는 실시예로서, 이웃 블록의 어파인 예측 코딩 관련 정보에 기초하여 현재 블록의 어파인 예측 관련 신택스 요소를 엔트로피 디코딩하는 과정을 나타내는 흐름도이다.
도 12는 본 발명이 적용되는 실시예로서, 어파인 플래그의 컨텍스트 인덱스를 결정하는 과정을 나타내는 흐름도이다.
도 13은 본 발명이 적용되는 실시예로서, 어파인 파라미터 플래그의 컨텍스트 인덱스를 결정하는 과정을 나타내는 흐름도이다.
도 14는 본 발명이 적용되는 실시예로, affine_param_flag 를 부호화하기 위해 1개의 컨텍스트 모델을 이용하는 방법을 설명하기 위한 흐름도이다.
도 15는 본 발명이 적용되는 실시예로서, 어파인 플래그에 기초하여 어파인 움직임 예측을 신택스 구조를 나타낸다.
도 16은 본 발명이 적용되는 실시예로서, 어파인 예측을 위한 움직임 벡터 예측자 인덱스와 인터 예측을 위한 움직임 벡터 예측자 인덱스를 구분하여 디코딩하는 신택스 구조를 나타낸다.
도 17은 본 발명이 적용되는 실시예로서, AF4 모드 또는 AF6 모드 중 적어도 하나에 기초하여 최적의 코딩 모드를 적응적으로 결정하는 흐름도를 나타낸다.
도 18은 본 발명이 적용되는 실시예로서, AF4 모드 또는 AF6 모드에 기초하여 디코딩을 수행하는 신택스 구조를 나타낸다.
도 19는 본 발명이 적용되는 실시예로서, 조건 A(condition A)에 기초하여 AF4 모드 또는 AF6 모드를 포함하는 움직임 벡터 예측 모드들 중 최적의 코딩 모드를 적응적으로 결정하는 흐름도를 나타낸다.
도 20은 본 발명이 적용되는 실시예로서, 조건 A(condition A)에 기초하여 AF4 모드 또는 AF6 모드에 따라 적응적으로 디코딩을 수행하는 흐름도를 나타낸다.
도 21은 본 발명이 적용되는 비디오 코딩 시스템을 나타낸다.
도 22는 본 발명이 적용되는 컨텐츠 스트리밍 시스템을 나타낸다.
본 발명은, 현재 블록을 포함하는 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서, 현재 블록에 대해 어파인 움직임 예측이 수행되었는지 여부를 확인하는 단계; 상기 확인 결과, 상기 현재 블록에 대해 어파인 움직임 예측이 수행될 때, 기정의된 1개의 컨텍스트 모델에 기초하여 상기 현재 블록의 어파인 파라미터 플래그를 파싱하는 단계; 및 상기 어파인 파라미터 플래그에 기초하여 컨텍스트 모델을 업데이트하는 단계를 포함하되, 상기 어파인 파라미터 플래그는 어파인 움직임 예측이 AF4 모드 또는 AF6 모드에 기초하여 수행되는지 여부를 나타내는 플래그이고, 상기 AF4 모드는 4개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타내고, 상기 AF6 모드는 6개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타낸다.
본 발명에서, 상기 현재 블록에 대해 어파인 움직임 예측이 수행될 때, 상기 현재 블록의 컨텍스트 인덱스는 항상 0값을 가지며, 상기 기정의된 1개의 컨텍스트 모델에 대응되는 것을 특징으로 한다.
본 발명에서, 상기 확인 단계는, 상기 현재 블록에 이웃하는 좌측 블록 및/또는 상기 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보 중 적어도 하나에 기초하여 확인되는 것을 특징으로 한다.
본 발명은, 현재 블록을 포함하는 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서, 상기 현재 블록에 이웃하는 좌측 블록 및/또는 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보를 유도하는 단계; 상기 좌측 블록 및/또는 상기 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보 중 적어도 하나에 기초하여 상기 현재 블록의 어파인 예측 관련 신택스 요소의 컨텍스트 인덱스를 결정하는 단계; 및 상기 컨텍스트 인덱스에 기초하여, 상기 현재 블록의 어파인 예측 관련 신택스 요소를 엔트로피 디코딩하는 단계를 포함하는 방법을 제공한다. 여기서, 상기 어파인 코딩 정보는 어파인 움직임 예측이 수행되었는지 여부를 나타내는 정보이고, 상기 어파인 예측 모드 정보는 어파인 움직임 예측이 AF4 모드 또는 AF6 모드에 기초하여 수행되는지 여부를 나타내는 정보이고, 상기 AF4 모드는 4개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타내고, 상기 AF6 모드는 6개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타낸다.
본 발명에서, 상기 어파인 예측 관련 신택스 요소가 어파인 플래그를 포함할 때, 상기 어파인 플래그의 컨텍스트 인덱스는 상기 좌측 블록의 어파인 코딩 정보와 상기 상측 블록의 어파인 코딩 정보의 합에 기초하여 결정되고, 상기 어파인 플래그는 어파인 움직임 예측이 수행되었는지 여부를 나타내는 플래그이다.
본 발명에서, 상기 어파인 예측 관련 신택스 요소가 어파인 파라미터 플래그를 포함할 때, 상기 어파인 파라미터 플래그의 컨텍스트 인덱스는 상기 좌측 블록의 어파인 코딩 정보와 어파인 예측 모드 정보에 의해 결정된 제1값 및 상기 상측 블록의 어파인 코딩 정보와 어파인 예측 모드 정보에 의해 결정된 제2값의 합에 기초하여 결정되고, 상기 어파인 파라미터 플래그는 어파인 움직임 예측이 상기 AF4 모드 또는 상기 AF6 모드에 기초하여 수행되는지 여부를 나타내는 플래그이다.
본 발명에서, 상기 어파인 플래그에 기초하여 상기 좌측 블록에 대해 어파인 움직임 예측이 수행되고, 상기 어파인 파라미터 플래그에 기초하여 상기 좌측 블록이 상기 AF6 모드에 기초하여 코딩될 때, 상기 제1값은 1로 결정되고, 그렇지 않을 때 상기 제1값은 0으로 결정된다.
본 발명에서, 상기 어파인 플래그에 기초하여 상기 상측 블록에 대해 어파인 움직임 예측이 수행되고, 상기 어파인 파라미터 플래그에 기초하여 상기 상측 블록이 상기 AF6 모드에 기초하여 코딩될 때, 상기 제2값은 1로 결정되고, 그렇지 않을 때 상기 제2값은 0으로 결정된다.
본 발명에서, 상기 어파인 예측 관련 신택스 요소가 어파인 움직임 벡터 예측자 인덱스(affine motion vector predictor index) 및/또는 비-어파인 움직임 벡터 예측자 인덱스(non-affine motion vector predictor index)를 포함할 때, 상기 어파인 움직임 벡터 예측자 인덱스와 상기 비-어파인 움직임 벡터 예측자 인덱스는 서로 다른 테이블에 의해 정의되고, 상기 어파인 움직임 벡터 예측자 인덱스는 어파인 움직임 예측을 위해 이용되는 후보를 나타내고, 상기 상기 비-어파인 움직임 벡터 예측자 인덱스는 인터 예측을 위해 이용되는 후보를 나타낸다.
본 발명은, 현재 블록을 포함하는 비디오 신호에 대해 엔트로피 디코딩을 수행하는 장치에 있어서, 상기 현재 블록에 이웃하는 좌측 블록 및 상측 블록이 이용가능한지를 확인하고, 상기 좌측 블록 및/또는 상기 상측 블록 중 적어도 하나가 이용가능할 때, 상기 좌측 블록 및/또는 상기 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보를 유도하고, 상기 좌측 블록 및/또는 상기 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보 중 적어도 하나에 기초하여 상기 현재 블록의 어파인 예측 관련 신택스 요소의 컨텍스트 인덱스를 결정하는 컨텍스트 모델링부; 및 상기 컨텍스트 인덱스에 기초하여, 상기 현재 블록의 어파인 예측 관련 신택스 요소를 엔트로피 디코딩하는 이진 산술 디코딩부를 포함하되, 상기 어파인 코딩 정보는 어파인 움직임 예측이 수행되었는지 여부를 나타내는 정보이고, 상기 어파인 예측 모드 정보는 어파인 움직임 예측이 AF4 모드 또는 AF6 모드에 기초하여 수행되는지 여부를 나타내는 정보이고, 상기 AF4 모드는 4개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타내고, 상기 AF6 모드는 6개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타내는 장치를 제공한다.
이하, 본 발명의 실시예들에 따른 예시적인 엘리먼트들 및 동작들이 첨부된 도면들을 참조하여 기술된다. 그러나 상기 도면들을 참조하여 기술되는 본 발명의 상기 엘리먼트들 및 동작들은 단지 실시예들로서 제공되는 것이고, 이것에 의해서 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다는 것을 밝혀두고자 한다.
또한, 본 발명에서 사용되는 용어는 가능한 한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 특정한 경우는 출원인이 임의로 선정한 용어를 사용하여 설명한다. 그러한 경우에는 해당 부분의 상세 설명에서 그 의미가 명확하게 기재된다. 따라서, 본 명세서의 설명에서 사용된 용어의 명칭 만에 기초하여 본 발명이 단순 해석되어서는 안 될 것이며 그 해당 용어의 의미까지 파악하여 해석되어야 함을 밝혀두고자 한다.
또한, 본 발명에서 사용되는 용어들은 발명을 설명하기 위해 선택된 일반적인 용어들이나, 유사한 의미를 갖는 다른 용어가 있는 경우 보다 적절한 해석을 위해 대체 가능할 것이다. 예를 들어, 신호, 데이터, 샘플, 픽쳐, 프레임, 블록은 각 코딩 과정에서 적절하게 대체되어 해석될 수 있을 것이다.
또한, 본 명세서에서 설명되는 실시예들의 개념과 방법들은, 다른 실시예들에도 적용가능하며, 본 명세서에서 모두 명시하여 기재하지 않더라도 본 발명의 기술적 사상 범위 내에서 각 실시예들의 조합도 적용가능할 것이다.
도 1은 본 발명이 적용되는 실시예로서, 비디오 신호의 인코딩이 수행되는 인코더의 개략적인 블록도를 나타낸다.
도 1을 참조하면, 인코더(100)는 영상 분할부(110), 변환부(120), 양자화부(130), 역양자화부(140), 역변환부(150), 필터링부(160), 복호 픽쳐 버퍼(DPB: Decoded Picture Buffer) (170), 인터 예측부(180), 인트라 예측부(185) 및 엔트로피 인코딩부(190)를 포함하여 구성될 수 있다.
영상 분할부(110)는 인코더(100)에 입력된 입력 영상(Input image) (또는, 픽쳐, 프레임)를 하나 이상의 처리 유닛으로 분할할 수 있다. 예를 들어, 상기 처리 유닛은 코딩 트리 유닛(CTU: Coding Tree Unit), 코딩 유닛(CU: Coding Unit), 예측 유닛(PU: Prediction Unit) 또는 변환 유닛(TU: Transform Unit)일 수 있다. 이때, 상기 분할은 QT(QuadTree), BT(Binary Tree), TT(Ternary Tree), AT(Asymmetric Tree) 중 적어도 하나의 방식에 의해 수행될 수 있다.
비디오 코딩에서 하나의 블록은 QT(QuadTree) 기반으로 분할될 수 있다. 또한, QT에 의해서 분할된 하나의 서브 블록 (sub block)은 QT를 사용하여 재귀적으로 더 분할될 수 있다. 더 이상 QT 분할되지 않는 리프 블록 (leaf block)은 BT(Binary Tree), TT(Ternary Tree) 또는 AT(Asymmetric Tree) 중 적어도 하나의 방식에 의해서 분할될 수 있다. BT는 horizontal BT (2NxN, 2NxN)과 vertical BT (Nx2N, Nx2N)의 두 가지 형태의 분할을 가질 수 있다. TT는 horizontal TT (2Nx1/2N, 2NxN, 2Nx1/2N)와 vertical TT (1/2Nx2N, Nx2N, 1/2Nx2N)의 두 가지 형태의 분할을 가질 수 있다. AT는 horizontal-up AT (2Nx1/2N, 2Nx3/2N), horizontal-down AT (2Nx3/2N, 2Nx1/2N), vertical-left AT (1/2Nx2N, 3/2Nx2N), vertical-right AT (3/2Nx2N, 1/2Nx2N) 의 네 가지 형태의 분할을 가질 수 있다. 각각의 BT, TT, AT는 BT, TT, AT를 사용하여 재귀적으로 더 분할될 수 있다.
한편, BT, TT, AT 분할은 함께 사용하여 분할이 가능하다. 예를 들어, BT에 의해 분할된 서브 블록은 TT 또는 AT에 의한 분할이 가능하다. 또한, TT에 의해 분할된 서브 블록은 BT 또는 AT에 의한 분할이 가능하다. AT에 의해 분할된 서브 블록은 BT 또는 TT에 의한 분할이 가능하다. 예를 들어, horizontal BT 분할 이후, 각각의 서브 블록이 vertical BT로 분할될 수 있고, 또는 vertical BT 분할 이후, 각각의 서브 블록이 horizontal BT로 분할될 수도 있다. 상기 두 종류의 분할 방법은 분할 순서는 다르지만 최종적으로 분할되는 모양은 동일하다.
또한, 블록이 분할되면 블록을 탐색하는 순서를 다양하게 정의할 수 있다. 일반적으로, 좌측에서 우측으로, 상단에서 하단으로 탐색을 수행하며, 블록을 탐색한다는 것은 각 분할된 서브 블록의 추가적인 블록 분할 여부를 결정하는 순서를 의미하거나, 블록이 더 이상 분할되지 않을 경우 각 서브 블록의 부호화 순서를 의미하거나, 또는 서브 블록에서 다른 이웃 블록의 정보를 참조할 때의 탐색 순서를 의미할 수 있다.
다만, 상기 용어들은 본 발명에 대한 설명의 편의를 위해 사용할 뿐이며, 본 발명은 해당 용어의 정의에 한정되지 않는다. 또한, 본 명세서에서는 설명의 편의를 위해, 비디오 신호를 인코딩 또는 디코딩하는 과정에서 이용되는 단위로써 코딩 유닛이라는 용어를 사용하지만, 본 발명은 그에 한정되지 않으며 발명 내용에 따라 적절하게 해석 가능할 것이다.
인코더(100)는 입력 영상 신호에서 인터 예측부(180) 또는 인트라 예측부(185)로부터 출력된 예측 신호(prediction signal)를 감산하여 레지듀얼 신호(residual signal)를 생성할 수 있고, 생성된 레지듀얼 신호는 변환부(120)로 전송된다.
변환부(120)는 레지듀얼 신호에 변환 기법을 적용하여 변환 계수(transform coefficient)를 생성할 수 있다. 변환 과정은 정사각형의 동일한 크기를 갖는 픽셀 블록에 적용될 수도 있고, 정사각형이 아닌 가변 크기의 블록에도 적용될 수 있다.
양자화부(130)는 변환 계수를 양자화하여 엔트로피 인코딩부(190)로 전송하고, 엔트로피 인코딩부(190)는 양자화된 신호(quantized signal)를 엔트로피 코딩하여 비트스트림으로 출력할 수 있다.
상기 엔트로피 인코딩부(190)는 신택스 요소들에 대해 엔트로피 인코딩을 수행할 수 있으며, 이에 대해서는 도 3 및 명세서에서 보다 상세히 설명하도록 한다.
예를 들어, 본 발명의 일실시예는 어파인 예측(affine prediction)과 관련된 신택스 엘리먼트(affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc)에 대해 컨텍스트 모델링을 수행하는 방법을 제안한다.
다른 일실시예는, 이웃 블록이 어파인 코딩되었는지 여부에 기초하여 어파인 예측과 관련된 신택스 엘리먼트의 컨텍스트 인덱스를 결정하는 방법을 제안한다.
다른 일실시예는, 이웃 블록이 어파인 코딩되었는지 여부(조건1) 및/또는 어떠한 어파인 예측 모드가 적용되었는지 (조건 2) 중 적어도 하나에 기초하여 어파인 예측과 관련된 신택스 엘리먼트의 컨텍스트 인덱스를 결정하는 방법을 제안한다.
다른 일실시예는, 어파인 예측을 위한 모션 벡터 예측 인덱스(affine_mvp_idx) 와 비-어파인 예측(non-affine prediction)을 위한 모션 벡터 예측 인덱스(mvp_idx)를 구분하여 컨텍스트 모델링을 수행하는 방법을 제안한다.
다른 일실시예는, 어파인 예측과 관련된 신택스 엘리먼트에 대해 CABAC(Context-based Adaptive Binary Arithmetic Coding) 바이패스 코딩을 수행하는 방법을 제안한다.
양자화부(130)로부터 출력된 양자화된 신호(quantized signal)는 예측 신호를 생성하기 위해 이용될 수 있다. 예를 들어, 양자화된 신호(quantized signal)는 루프 내의 역양자화부(140) 및 역변환부(150)를 통해 역양자화 및 역변환을 적용함으로써 레지듀얼 신호를 복원할 수 있다. 복원된 레지듀얼 신호를 인터 예측부(180) 또는 인트라 예측부(185)로부터 출력된 예측 신호(prediction signal)에 더함으로써 복원 신호(reconstructed signal)가 생성될 수 있다.
한편, 위와 같은 압축 과정에서 인접한 블록들이 서로 다른 양자화 파라미터에 의해 양자화됨으로써 블록 경계가 보이는 열화가 발생될 수 있다. 이러한 현상을 블록킹 열화(blocking artifacts)라고 하며, 이는 화질을 평가하는 중요한 요소 중의 하나이다. 이러한 열화를 줄이기 위해 필터링 과정을 수행할 수 있다. 이러한 필터링 과정을 통해 블록킹 열화를 제거함과 동시에 현재 픽쳐에 대한 오차를 줄임으로써 화질을 향상시킬 수 있게 된다.
필터링부(160)는 복원 신호에 필터링을 적용하여 이를 재생 장치로 출력하거나 복호 픽쳐 버퍼(170)에 전송한다. 복호 픽쳐 버퍼(170)에 전송된 필터링된 신호는 인터 예측부(180)에서 참조 픽쳐로 사용될 수 있다. 이처럼, 필터링된 픽쳐를 화면간 예측 모드에서 참조 픽쳐로 이용함으로써 화질 뿐만 아니라 부호화 효율도 향상시킬 수 있다.
복호 픽쳐 버퍼(170)는 필터링된 픽쳐를 인터 예측부(180)에서의 참조 픽쳐로 사용하기 위해 저장할 수 있다.
인터 예측부(180)는 복원 픽쳐(reconstructed picture)를 참조하여 시간적 중복성 및/또는 공간적 중복성을 제거하기 위해 시간적 예측 및/또는 공간적 예측을 수행한다. 여기서, 예측을 수행하기 위해 이용되는 참조 픽쳐는 이전 시간에 부호화/복호화 시 블록 단위로 양자화와 역양자화를 거친 변환된 신호이기 때문에, 블로킹 아티팩트(blocking artifact)나 링잉 아티팩트(ringing artifact)가 존재할 수 있다.
따라서, 인터 예측부(180)는 이러한 신호의 불연속이나 양자화로 인한 성능 저하를 해결하기 위해, 로우패스 필터(lowpass filter)를 적용함으로써 픽셀들 사이의 신호를 서브 픽셀 단위로 보간할 수 있다. 여기서, 서브 픽셀은 보간 필터를 적용하여 생성된 가상의 픽셀을 의미하고, 정수 픽셀은 복원된 픽쳐에 존재하는 실제 픽셀을 의미한다. 보간 방법으로는 선형 보간, 양선형 보간(bi-linear interpolation), 위너 필터(wiener filter) 등이 적용될 수 있다.
보간 필터는 복원 픽쳐(reconstructed picture)에 적용되어 예측의 정밀도를 향상시킬 수 있다. 예를 들어, 인터 예측부(180)는 정수 픽셀에 보간 필터를 적용하여 보간 픽셀을 생성하고, 보간 픽셀들(interpolated pixels)로 구성된 보간 블록(interpolated block)을 예측 블록(prediction block)으로 사용하여 예측을 수행할 수 있다.
상기 인터 예측부(180)는 어파인 플래그 및/또는 어파인 파라미터 플래그 중 적어도 하나에 기초하여 어파인 움직임 벡터 예측을 수행할 수 있다.
본 명세서에서, AF 모드(Affine mode)라 함은 어파인 움직임 모델(affine motion model)을 이용하는 어파인 움직임 예측 모드를 의미하며, 예를 들어, 어파인 머지 모드(affine merge mode) 또는 어파인 인터 모드(affine inter mode) 중 적어도 하나를 포함할 수 있고, 상기 어파인 인터 모드(affine inter mode)는 AF4 모드 또는 AF6 모드 중 적어도 하나를 포함할 수 있다.
상기 어파인 플래그는 어파인 예측 (어파인 움직임 예측, 또는 어파인 움직임 벡터 예측)이 수행되는지 여부를 나타낸다. 또는 AF 모드가 수행되는지 여부를 나타낼 수 있다. 예를 들어, 상기 어파인 플래그는 affine_flag 로 표현될 수 있다. 상기 affine_flag = 1 이면, 현재 블록에 대해 AF 모드가 수행되는 것을 나타내고, 상기 affine_flag = 0 이면, 현재 블록에 대해 AF 모드가 수행되지 않는 것을 나타낸다.
현재 블록에 대해 AF 모드가 수행되지 않을 때, 상기 디코더는 상기 AF 모드가 아닌 코딩 모드에 따라 디코딩(즉, 움직임 벡터 예측)을 수행할 수 있다. 예를 들어, 스킵 모드, 머지 모드 또는 인터 모드가 이용될 수 있다.
상기 어파인 파라미터 플래그는, 어파인 움직임 예측이 AF4 모드 또는 AF6 모드에 기초하여 수행되는지 여부를 나타내는 플래그이다. 예를 들어, 상기 어파인 파라미터 플래그는 affine_param_flag 로 표현될 수 있다. 상기 affine_param_flag = 0 이면, AF4 모드에 따라 움직임 벡터 예측이 수행되고, 상기 affine_param_flag = 1 이면, AF6 모드에 따라 움직임 벡터 예측이 수행되는 것을 의미할 수 있으나, 본 발명은 이에 한정되지 않는다.
다른 예로, 상기 어파인 파라미터 플래그는 AF4_flag 및 AF6_flag 중 적어도 하나를 포함할 수 있다.
AF4_flag 는 현재 블록에 대해 AF4 모드가 수행되는지 여부를 나타낸다. AF4_flag = 1이면 현재 블록에 대해 AF4 모드가 수행되고, AF4_flag = 0이면 현재 블록에 대해 AF4 모드가 수행되지 않는다. 여기서, AF4 모드가 수행된다는 것은 4개의 파라미터로 표현되는 어파인 움직임 모델을 이용하여 움직임 벡터 예측을 수행하는 것을 의미한다.
AF6_flag 는 현재 블록에 대해 AF6 모드가 수행되는지 여부를 나타낸다. AF6_flag = 1이면 현재 블록에 대해 AF6 모드가 수행되고, AF6_flag = 0이면 현재 블록에 대해 AF6 모드가 수행되지 않는다. 여기서, AF6 모드가 수행된다는 것은 6개의 파라미터로 표현되는 어파인 움직임 모델을 이용하여 움직임 벡터 예측을 수행하는 것을 의미한다.
상기 어파인 플래그 및 상기 어파인 파라미터 플래그는 슬라이스, 최대 코딩 유닛, 코딩 유닛 또는 예측 유닛 중 적어도 하나의 레벨에서 정의될 수 있다. 예를 들어, AF_flag, AF4_flag 및 AF6_flag 중 적어도 하나는 슬라이스 레벨에서 정의되고, 다시 블록 레벨 또는 예측 유닛 레벨에서 정의될 수 있다.
인트라 예측부(185)는 현재 부호화를 진행하려고 하는 블록의 주변에 있는 샘플들을 참조하여 현재 블록을 예측할 수 있다. 상기 인트라 예측부(185)는 인트라 예측을 수행하기 위해 다음과 같은 과정을 수행할 수 있다. 먼저, 예측 신호를 생성하기 위해 필요한 참조 샘플을 준비할 수 있다. 그리고, 준비된 참조 샘플을 이용하여 예측 신호를 생성할 수 있다. 이후, 예측 모드를 부호화하게 된다. 이때, 참조 샘플은 참조 샘플 패딩 및/또는 참조 샘플 필터링을 통해 준비될 수 있다. 참조 샘플은 예측 및 복원 과정을 거쳤기 때문에 양자화 에러가 존재할 수 있다. 따라서, 이러한 에러를 줄이기 위해 인트라 예측에 이용되는 각 예측 모드에 대해 참조 샘플 필터링 과정이 수행될 수 있다.
상기 인터 예측부(180) 또는 상기 인트라 예측부(185)를 통해 생성된 예측 신호(prediction signal)는 복원 신호를 생성하기 위해 이용되거나 레지듀얼 신호를 생성하기 위해 이용될 수 있다.
도 2는 본 발명이 적용되는 실시예로서, 비디오 신호의 디코딩이 수행되는 디코더의 개략적인 블록도를 나타낸다.
도 2를 참조하면, 디코더(200)는 파싱부(미도시), 엔트로피 디코딩부(210), 역양자화부(220), 역변환부(230), 필터링부(240), 복호 픽쳐 버퍼(DPB: Decoded Picture Buffer Unit) (250), 인터 예측부(260), 인트라 예측부(265) 및 복원부(미도시)를 포함하여 구성될 수 있다.
디코더(200)는 도 1의 인코더(100)로부터 출력된 신호를 수신할 수 있고, 파싱부(미도시)를 통해 신택스 엘리먼트를 파싱 또는 획득할 수 있다. 파싱 또는 획득된 신호는 엔트로피 디코딩부(210)를 통해 엔트로피 디코딩될 수 있다. 이는 도 4 및 명세서에서 보다 상세히 설명하도록 한다.
예를 들어, 본 발명의 일실시예는 어파인 예측과 관련된 신택스 엘리먼트(affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc)에 대해 컨텍스트 모델링을 수행하는 방법을 제안한다.
다른 일실시예는, 이웃 블록이 어파인 코딩되었는지 여부에 기초하여 어파인 예측과 관련된 신택스 엘리먼트의 컨텍스트 인덱스를 결정하는 방법을 제안한다.
다른 일실시예는, 이웃 블록이 어파인 코딩되었는지 여부(조건1) 및/또는 어떠한 어파인 예측 모드가 적용되었는지 (조건 2) 중 적어도 하나에 기초하여 어파인 예측과 관련된 신택스 엘리먼트의 컨텍스트 인덱스를 결정하는 방법을 제안한다.
다른 일실시예는, 어파인 예측을 위한 모션 벡터 예측 인덱스(affine_mvp_idx) 와 비-어파인 예측(non-affine prediction)을 위한 모션 벡터 예측 인덱스(mvp_idx)를 구분하여 컨텍스트 모델링을 수행하는 방법을 제안한다.
다른 일실시예는, 어파인 예측과 관련된 신택스 엘리먼트에 대해 CABAC(Context-based Adaptive Binary Arithmetic Coding) 바이패스 코딩을 수행하는 방법을 제안한다.
역양자화부(220)에서는 양자화 스텝 사이즈 정보를 이용하여 엔트로피 디코딩된 신호로부터 변환 계수(transform coefficient)를 획득한다.
역변환부(230)에서는 변환 계수를 역변환하여 레지듀얼 신호(residual signal)를 획득하게 된다.
복원부(미도시)는 획득된 레지듀얼 신호를 인터 예측부(260) 또는 인트라 예측부(265)로부터 출력된 예측 신호(prediction signal)에 더함으로써 복원 신호(reconstructed signal)를 생성한다.
필터링부(240)는 복원 신호(reconstructed signal)에 필터링을 적용하여 이를 재생 장치로 출력하거나 복호 픽쳐 버퍼부(250)에 전송한다. 복호 픽쳐 버퍼부(250)에 전송된 필터링된 신호는 인터 예측부(260)에서 참조 픽쳐로 사용될 수 있다.
본 명세서에서, 인코더(100)의 필터링부(160), 인터 예측부(180) 및 인트라 예측부(185)에서 설명된 실시예들은 각각 디코더의 필터링부(240), 인터 예측부(260) 및 인트라 예측부(265)에도 동일하게 적용될 수 있다.
상기 디코더(200)를 통해 출력된 복원 영상 신호(reconstructed video signal)는 재생 장치를 통해 재생될 수 있다.
도 3은 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)이 적용되는 엔트로피 인코딩부의 개략적인 블록도를 나타낸다.
본 발명이 적용되는 엔트로피 인코딩부(300)는 이진화부(310), 컨텍스트 모델링부(320), 이진 산술 인코딩부(330) 및 메모리(360)를 포함하고, 상기 이진 산술 인코딩부(330)는 정규 이진 인코딩부(regular binary encoding unit)(340) 및 바이패스 이진 인코딩부(bypass binary encoding unit)(350)를 포함한다. 여기서, 상기 정규 이진 인코딩부(regular binary encoding unit)(340) 및 상기 바이패스 이진 인코딩부(bypass binary encoding unit)(350)는 각각 정규 코딩 엔진, 바이패스 코딩 엔진이라 불릴 수 있다.
상기 이진화부(310)은 데이터 심볼들의 시퀀스를 수신하고 이진화를 수행함으로써 0 또는 1의 이진화된 값으로 구성된 이진 심볼(bin) 스트링을 출력할 수 있다. 상기 이진화부(310)은 신택스(syntax) 요소들을 이진 심볼들로 매핑할 수 있다. 서로 다른 여러 이진화 과정들, 예를 들어, 단항(unary: U), 끝이 잘린 단항(truncated unary: TU), k차 Exp-Golomb (EGk), 및 고정 길이(Fixed Length) 과정 등이 이진화를 위해 사용될 수 있다. 상기 이진화 과정은 신택스 요소의 유형을 기반으로 선택될 수 있다.
출력된 이진 심볼 스트링은 컨텍스트 모델링부(320)으로 전송된다.
상기 컨텍스트 모델링부(320)은 메모리로부터 현재 블록을 코딩하는데 필요한 확률 정보를 선택하여 상기 이진 산술 인코딩부(330)로 전송한다. 예를 들어, 코딩할 신택스 엘리먼트에 기초하여 컨텍스트 메모리를 선택하고 빈 인덱스(binIdx)를 통해 현재 신택스 엘리먼트 코딩에 필요한 확률 정보를 선택할 수 있다. 여기서, 컨텍스트는 심볼의 발생 확률에 관한 정보를 의미하고, 컨텍스트 모델링은 이진화 결과인 빈(bin)을 입력으로 하여 이진 산술 코딩에 필요한 빈(bin)의 확률을 추정하는 과정을 의미한다.
상기 컨텍스트 모델링부(320)는 높은 코딩 효율을 성취하기 위해 필요한 정확한 확률 추정을 제공할 수 있다. 이에 따라, 서로 다른 이진 심볼들에 대해 서로 다른 컨텍스트 모델들이 사용될 수 있고 이러한 컨텍스트 모델의 확률은 이전에 코딩된 이진 심볼의 값들을 기반으로 업데이트될 수 있다. 이때, 이전에 코딩된 이진 심볼의 값들은 상기 메모리(360)에 저장되고, 상기 컨텍스트 모델링부(320)는 이로부터 이전에 코딩된 이진 심볼의 값들을 이용할 수 있다.
유사한 분포를 가지는 이진 심볼들은 동일한 컨텍스트 모델을 공유할 수 있다. 이러한 각 이진 심볼에 대한 컨텍스트 모델은 확률 추정을 위해, 빈의 신택스 정보, 빈 스트링에서의 빈의 위치를 나타내는 빈 인덱스(binIdx), 빈이 들어 있는 블록의 이웃 블록에 포함된 빈의 확률 중 적어도 하나가 이용될 수 있다.
본 발명의 일실시예는, 어파인 예측과 관련된 신택스 엘리먼트(affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc)에 대해 컨텍스트 모델링을 수행하는 방법을 제안한다.
다른 일실시예는, 이웃 블록이 어파인 코딩되었는지 여부에 기초하여 어파인 예측과 관련된 신택스 엘리먼트의 컨텍스트 인덱스를 결정하는 방법을 제안한다.
본 발명에 따라 컨텍스트 모델이 결정되면, 상기 이진 산술 인코딩부(330)는 상기 컨텍스트 모델에 기초하여 이진 산술 인코딩을 수행할 수 있다.
상기 이진 산술 인코딩부(330)는 정규 이진 인코딩부(regular binary encoding unit)(340) 및 바이패스 이진 인코딩부(bypass binary encoding unit)(350)를 포함하고, 출력된 스트링에 대한 엔트로피 인코딩을 수행하고 압축된 데이터 비트들을 출력한다.
상기 정규 이진 인코딩부(regular binary encoding unit)(340)는 재귀적 구간 분할(recursive interval division)을 기반으로 산술 코딩을 수행한다.
먼저, 0 내지 1의 초기값을 가지는 구간(또는 범위)이 이진 심볼의 확률을 기반으로 두 개의 하위 구간들로 분할된다. 인코딩된 비트들은 이진 분수로 변환되는 경우 디코딩된 이진 심볼의 값을 나타내는 두 개의 하위 구간 중 하나를 선택하는 오프셋을 제공한다.
디코딩된 모드의 이진 심볼 이후에, 상기 구간은 선택된 하위 구간을 동일하게 하기 위해 업데이트될 수 있으며, 상기 구간 분할 과정 자체가 반복된다. 상기 구간 및 오프셋은 제한된 비트 정밀도를 가지며, 따라서 상기 구간이 특정한 값 아래로 떨어질 때마다 오버플로우를 방지하기 위해 재정규화(renormalization)가 필요할 수 있다. 상기 재정규화(renormalization)는 각각의 이진 심볼이 디코딩된 이후에 발생할 수 있다.
상기 바이패스 이진 인코딩부(bypass binary encoding unit)(350)는 컨텍스트 모델 없이 인코딩을 수행하며, 현재 코딩되는 빈(bin)의 확률을 0.5로 고정하여 코딩을 수행한다. 이는 신택스의 확률을 결정하기 어렵거나 고속으로 코딩하고자 할 때 이용될 수 있다.
도 4는 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)이 적용되는 엔트로피 디코딩부의 개략적인 블록도를 나타낸다.
본 발명이 적용되는 엔트로피 디코딩부(400)는 컨텍스트 모델링부(410), 이진 산술 디코딩부(420), 메모리(450) 및 역이진화부(460)를 포함하고, 상기 이진 산술 디코딩부(420)는 정규 이진 디코딩부(regular binary decoding unit)(430) 및 바이패스 이진 디코딩부(bypass binary decoding unit)(440)를 포함한다.
상기 엔트로피 디코딩부(400)는 비트스트림을 수신하고 그로부터 바이패스 플래그(bypass flag)를 확인할 수 있다. 여기서, 바이패스 플래그(bypass flag)는 바이패스 모드(bypass mode)인지 여부를 나타내고, 상기 바이패스 모드(bypass mode)는 컨텍스트 모델을 이용하지 않고, 현재 코딩되는 빈(bin)의 확률을 0.5로 고정하여 코딩을 수행하는 것을 의미한다.
상기 바이패스 플래그(bypass flag)에 따라 바이패스 모드(bypass mode)가 아닐 때, 상기 정규 이진 디코딩부(regular binary decoding unit)(430)는 정규 모드(regular mode)에 따라 이진 산술 디코딩을 수행한다.
이때, 상기 컨텍스트 모델링부(410)는 상기 메모리(450)로부터 현재 비트스트림을 디코딩하는데 필요한 확률 정보를 선택하여 상기 정규 이진 디코딩부(regular binary decoding unit)(430)로 전송한다.
본 발명의 일실시예는, 어파인 예측과 관련된 신택스 엘리먼트(affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc)에 대해 컨텍스트 모델링을 수행하는 방법을 제안한다.
다른 일실시예는, 이웃 블록이 어파인 코딩되었는지 여부에 기초하여 어파인 예측과 관련된 신택스 엘리먼트의 컨텍스트 인덱스를 결정하는 방법을 제안한다.
본 발명에 따라 컨텍스트 모델이 결정되면, 상기 이진 산술 디코딩부(420)는 상기 컨텍스트 모델에 기초하여 이진 산술 디코딩을 수행할 수 있다.
한편, 상기 바이패스 플래그(bypass flag)에 따라 바이패스 모드(bypass mode)일 때, 상기 바이패스 이진 디코딩부(bypass binary decoding unit)(440)는 바이패스 모드(bypass mode)에 따라 이진 산술 디코딩을 수행한다.
상기 역이진화부(460)는 상기 이진 산술 디코딩부(420)에서 디코딩된 이진수 형태의 빈(bin)을 입력받아 정수 형태의 신택스 엘리먼트 값으로 변환 출력하게 된다.
도 5는 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 따라 수행되는 인코딩 흐름도를 나타낸다.
인코더는, 신택스 엘리먼트에 대해 이진화를 수행할 수 있다(S510).
상기 인코더는, 정규 모드에 따라 이진 산술 코딩을 수행할지 또는 바이패스 모드에 따라 이진 산술 코딩을 수행할지 여부를 확인할 수 있다(S520). 예를 들어, 상기 인코더는 바이패스 플래그(bypass flag)에 기초하여 정규 모드인지 바이패스 모드인지 여부를 확인할 수 있으며, 예를 들어 상기 바이패스 플래그(bypass flag)가 1이면 바이패스 모드를 나타내고, 0이면 정규 모드를 나타낼 수 있다.
정규 모드일 때, 상기 인코더는 확률 모델을 선택할 수 있고(S530), 상기 확률 모델에 기초하여 이진 산술 인코딩을 수행할 수 있다(S540). 그리고, 상기 인코더는, 확률 모델을 업데이트할 수 있으며(S550), 상기 S530 단계에서 업데이트된 확률 모델에 기초하여 다시 적합한 확률 모델을 선택할 수 있다.
본 발명의 일실시예는 어파인 예측과 관련된 신택스 엘리먼트(affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc)에 대해 컨텍스트 모델링을 수행할 수 있다.
다른 일실시예는, 이웃 블록이 어파인 코딩되었는지 여부에 기초하여 어파인 예측과 관련된 신택스 엘리먼트의 컨텍스트 인덱스를 결정할 수 있다.
다른 일실시예는, 이웃 블록이 어파인 코딩되었는지 여부(조건1) 및/또는 어떠한 어파인 예측 모드가 적용되었는지 (조건 2) 중 적어도 하나에 기초하여 어파인 예측과 관련된 신택스 엘리먼트의 컨텍스트 인덱스를 결정할 수 있다.
다른 일실시예는, 어파인 예측을 위한 모션 벡터 예측 인덱스(affine_mvp_idx) 와 비-어파인 예측(non-affine prediction)을 위한 모션 벡터 예측 인덱스(mvp_idx)를 구분하여 컨텍스트 모델링을 수행할 수 있다.
한편, 바이패스 모드일 때, 상기 인코더는 확률 0.5에 기초하여 이진 산술 인코딩을 수행할 수 있다(S560).
본 발명의 일실시예는 어파인 예측과 관련된 신택스 엘리먼트에 대해 CABAC(Context-based Adaptive Binary Arithmetic Coding) 바이패스 코딩을 수행하는 방법을 제안한다.
도 6은 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 따라 수행되는 디코딩 흐름도를 나타낸다.
먼저, 디코더는 비트스트림을 수신할 수 있다(S610).
상기 디코더는 상기 비트스트림으로부터 바이패스 플래그(bypass flag)를 추출하여 정규 모드인지 바이패스 모드인지 여부를 확인할 수 있다(S620). 여기서, 상기 바이패스 플래그(bypass flag)는 신택스의 종류에 따라 사전에 결정되어 있을 수 있다.
예를 들어, 어파인 예측과 관련된 신택스 엘리먼트에 대해 CABAC(Context-based Adaptive Binary Arithmetic Coding) 바이패스 코딩을 수행하도록 할 수 있다.
상기 바이패스 플래그(bypass flag)가 정규 모드를 나타낼 때, 상기 디코더는 확률 모델을 선택할 수 있고(S630), 상기 확률 모델에 기초하여 이진 산술 디코딩을 수행할 수 있다(S640). 그리고, 상기 디코더는, 확률 모델을 업데이트할 수 있으며(S650), 상기 S630 단계에서 업데이트된 확률 모델에 기초하여 다시 적합한 확률 모델을 선택할 수 있다.
본 발명의 일실시예는 어파인 예측과 관련된 신택스 엘리먼트(affine_flag, affine_param_flag, affine_mvp_idx, mvp_idx, etc)에 대해 컨텍스트 모델링을 수행할 수 있다.
다른 일실시예는, 이웃 블록이 어파인 코딩되었는지 여부에 기초하여 어파인 예측과 관련된 신택스 엘리먼트의 컨텍스트 인덱스를 결정할 수 있다.
다른 일실시예는, 이웃 블록이 어파인 코딩되었는지 여부(조건1) 및/또는 어떠한 어파인 예측 모드가 적용되었는지 (조건 2) 중 적어도 하나에 기초하여 어파인 예측과 관련된 신택스 엘리먼트의 컨텍스트 인덱스를 결정할 수 있다.
다른 일실시예는, 어파인 예측을 위한 모션 벡터 예측 인덱스(affine_mvp_idx) 와 비-어파인 예측(non-affine prediction)을 위한 모션 벡터 예측 인덱스(mvp_idx)를 구분하여 컨텍스트 모델링을 수행할 수 있다.
한편, 상기 바이패스 플래그(bypass flag)가 바이패스 모드를 나타낼 때, 상기 디코더는 확률 0.5에 기초하여 이진 산술 디코딩을 수행할 수 있다(S660).
상기 디코더는 디코딩된 빈스트링(bin string)에 대해 역이진화를 수행할 수 있다(S670). 예를 들어, 디코딩된 이진수 형태의 빈(bin)을 입력받아 정수 형태의 신택스 엘리먼트 값으로 변환 출력할 수 있다.
도 7은 본 발명이 적용되는 실시예로서, 이웃 블록에 기초하여 컨텍스트 모델을 선택하는 방법을 설명하기 위한 블록 관계도를 나타낸다.
CABAC 의 컨텍스트 모델은 통계적 특성에 따라 다양하게 고려될 수 있다. 예를 들어, 1 개의 컨텍스트 모델을 사용할 때 특별한 조건을 고려하지 않고 하나의 컨텍스트 모델이 이용될 수 있다. 그러나, 3 개의 컨텍스트 모델을 사용할 때에는 조건에 따라, 즉 이웃 블록의 신택스 요소에 기초하여 컨텍스트 모델이 설계될 수 있다.
상기 도 7을 살펴보면, 현재 블록을 C, 현재 블록에 인접한 좌측 블록을 L, 상측 블록을 A라 한다. 현재 블록 C의 신택스에 대한 컨텍스트 모델은 이웃 블록인 좌측 블록 (L) 이나 상측 블록 (A) 중 적어도 하나를 이용하여 결정될 수 있다. 다음 수학식 1은 상기 좌측 블록과 상기 상측 블록을 이용하여 컨텍스트 모델을 선택하는 방법을 나타낸다.
Figure PCTKR2018013489-appb-M000001
여기서, availableL과 availableA는 각각 좌측 블록과 상측 블록이 존재하는지 여부를 나타내며, condL과 condA는 각각 좌측 블록과 상측 블록에 대한 해당 신택스의 값을 의미한다.
상기 수학식 1에 따르면, 이웃 블록의 신택스 값에 따라서 3개의 컨텍스트 모델이 사용될 수 있다. 상기 컨텍스트 모델은 현재 블록의 크기 또는 이웃 블록의 크기에 상관없이 이웃 블록의 신택스 값에 따라 결정될 수 있다. 그러나, 이웃 블록의 어파인 예측 코딩과 관련된 정보에 따라 어파인 예측 관련 신택스 요소의 통계적인 특성이 다를 수 있다.
따라서, 본 발명에서는 이웃 블록의 어파인 예측 코딩과 관련된 정보에 기초하여 컨텍스트 모델을 결정하는 방법을 제안한다.
도 8은 본 발명이 적용되는 실시예로서, 좌측 블록과 상측 블록을 이용하여 컨텍스트 모델을 선택하는 방법을 나타내는 흐름도이다.
본 발명에 따라 컨텍스트 모델을 선택하는 방법은 인코더 및 디코더에서 모두 적용될 수 있으며, 설명의 편의상 디코더를 기준으로 설명하도록 한다.
먼저, 디코더는 현재 블록에 이웃하는 좌측 블록 및 상측 블록을 유도할 수 있다(S810). 즉, 현재 블록에 인접하는 좌측 블록 및 상측 블록이 이용가능한지 확인할 수 있다.
상기 좌측 블록 및 상기 상측 블록 중 적어도 하나가 이용가능할 때, 상기 디코더는 상기 좌측 블록 및 상기 상측 블록 중 적어도 하나로부터 신택스 값을 유도할 수 있다(S820).
그리고, 상기 디코더는 상기 좌측 블록 및 상기 상측 블록 중 적어도 하나의 신택스 값에 기초하여 컨텍스트 모델을 결정할 수 있다(S830).
상기 결정된 컨텍스트 모델에 기초하여, 상기 디코더는 컨텍스트 인덱스(CtxIdx) 값을 유도할 수 있다(S840).
상기 디코더는, 상기 컨텍스트 인덱스(CtxIdx) 값에 기초하여 이진 산술 디코딩을 수행할 수 있다(S850).
도 9는 본 발명이 적용되는 실시예로서, 현재 블록의 어파인 예측 관련 신택스 요소를 엔트로피 디코딩하는 과정을 나타내는 흐름도이다.
디코더는, 현재 블록에 이웃하는 좌측 블록 및/또는 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보를 유도할 수 있다(S910).
여기서, 상기 어파인 코딩 정보는 어파인 움직임 예측이 수행되었는지 여부를 나타내는 정보이다. 예를 들어, 좌측 블록의 어파인 코딩 정보는 affine_L 로 표시하고, 상측 블록의 어파인 코딩 정보는 affine_A 로 표시할 수 있다.
상기 어파인 예측 모드 정보는 어파인 움직임 예측이 AF4 모드 또는 AF6 모드에 기초하여 수행되는지 여부를 나타내는 정보이이다. 상기 AF4 모드는 4개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타내고, 상기 AF6 모드는 6개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타낸다. 예를 들어, 좌측 블록의 어파인 예측 모드 정보는 affine_param_L 로 표시하고, 상측 블록의 어파인 예측 모드 정보는 affine_ param_A 로 표시할 수 있다.
상기 디코더는, 상기 좌측 블록 및/또는 상기 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보 중 적어도 하나에 기초하여 상기 현재 블록의 어파인 예측 관련 신택스 요소의 컨텍스트 인덱스를 결정할 수 있다(S920).
상기 디코더는, 상기 컨텍스트 인덱스에 기초하여, 상기 현재 블록의 어파인 예측 관련 신택스 요소를 엔트로피 디코딩할 수 있다(S930).
상기 엔트로피 디코딩된 어파인 예측 관련 신택스 요소는 어파인 움직임 벡터 예측을 위해 이용될 수 있다.
도 10은 본 발명이 적용되는 실시예로서, 현재 블록의 어파인 예측 관련 신택스 요소를 엔트로피 디코딩하는 장치의 개략적인 블록도이다.
본 발명이 적용되는 엔트로피 디코딩부는 이웃 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보를 유도하는 요소(1010), 현재 블록의 어파인 예측 관련 신택스 요소의 컨텍스트 인덱스를 결정하는 요소(1020) 및 현재 블록의 어파인 예측 관련 신택스 요소를 엔트로피 디코딩하는 요소(1030)를 포함할 수 있다.
상기 이웃 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보를 유도하는 요소(1010)는 현재 블록에 이웃하는 좌측 블록 및/또는 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보를 유도할 수 있다.
상기 현재 블록의 어파인 예측 관련 신택스 요소의 컨텍스트 인덱스를 결정하는 요소(1020)는 좌측 블록 및/또는 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보 중 적어도 하나에 기초하여 현재 블록의 어파인 예측 관련 신택스 요소의 컨텍스트 인덱스를 결정할 수 있다.
상기 현재 블록의 어파인 예측 관련 신택스 요소를 엔트로피 디코딩하는 요소(1030)는 컨텍스트 인덱스에 기초하여, 현재 블록의 어파인 예측 관련 신택스 요소를 엔트로피 디코딩할 수 있다.
상기 엔트로피 디코딩된 어파인 예측 관련 신택스 요소는 어파인 움직임 벡터 예측을 위해 이용될 수 있다.
도 11은 본 발명이 적용되는 실시예로서, 이웃 블록의 어파인 예측 코딩 관련 정보에 기초하여 현재 블록의 어파인 예측 관련 신택스 요소를 엔트로피 디코딩하는 과정을 나타내는 흐름도이다.
디코더는, 현재 블록에 이웃하는 좌측 블록 및 상측 블록이 이용가능한지를 확인할 수 있다(S1110).
상기 디코더는, 상기 좌측 블록 및/또는 상기 상측 블록 중 적어도 하나가 이용가능할 때, 상기 좌측 블록 및/또는 상기 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보를 유도할 수 있다(S1120).
여기서, 상기 어파인 코딩 정보는 어파인 움직임 예측이 수행되었는지 여부를 나타내는 정보이다. 예를 들어, 좌측 블록의 어파인 코딩 정보는 affine_L 로 표시하고, 상측 블록의 어파인 코딩 정보는 affine_A 로 표시할 수 있다.
상기 어파인 예측 모드 정보는 어파인 움직임 예측이 AF4 모드 또는 AF6 모드에 기초하여 수행되는지 여부를 나타내는 정보이이다. 상기 AF4 모드는 4개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타내고, 상기 AF6 모드는 6개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타낸다. 예를 들어, 좌측 블록의 어파인 예측 모드 정보는 affine_param_L 로 표시하고, 상측 블록의 어파인 예측 모드 정보는 affine_ param_A 로 표시할 수 있다.
상기 디코더는, 상기 좌측 블록 및/또는 상기 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보 중 적어도 하나에 기초하여 상기 현재 블록의 어파인 예측 관련 신택스 요소의 컨텍스트 인덱스를 결정할 수 있다(S1130).
일실시예로, 상기 어파인 예측 관련 신택스 요소가 어파인 플래그를 포함할 때, 상기 어파인 플래그의 컨텍스트 인덱스는 상기 좌측 블록의 어파인 코딩 정보와 상기 상측 블록의 어파인 코딩 정보의 합에 기초하여 결정될 수 있다. 이때, 상기 어파인 플래그는 어파인 움직임 예측이 수행되었는지 여부를 나타낸다.
일실시예로, 상기 어파인 예측 관련 신택스 요소가 어파인 파라미터 플래그를 포함할 때, 상기 어파인 파라미터 플래그의 컨텍스트 인덱스는 상기 좌측 블록의 어파인 코딩 정보와 어파인 예측 모드 정보에 의해 결정된 제1값 및 상기 상측 블록의 어파인 코딩 정보와 어파인 예측 모드 정보에 의해 결정된 제2값의 합에 기초하여 결정될 수 있다. 이때, 상기 어파인 파라미터 플래그는 어파인 움직임 예측이 상기 AF4 모드 또는 상기 AF6 모드에 기초하여 수행되는지 여부를 나타낸다.
예를 들어, 상기 어파인 플래그에 기초하여 상기 좌측 블록에 대해 어파인 움직임 예측이 수행되고, 상기 어파인 파라미터 플래그에 기초하여 상기 좌측 블록이 상기 AF6 모드에 기초하여 코딩될 때, 상기 제1값은 1로 결정되고, 그렇지 않을 때 상기 제1값은 0으로 결정된다.
예를 들어, 상기 어파인 플래그에 기초하여 상기 상측 블록에 대해 어파인 움직임 예측이 수행되고, 상기 어파인 파라미터 플래그에 기초하여 상기 상측 블록이 상기 AF6 모드에 기초하여 코딩될 때, 상기 제2값은 1로 결정되고, 그렇지 않을 때 상기 제2값은 0으로 결정된다.
다른 예로, 상기 어파인 예측 관련 신택스 요소가 어파인 움직임 벡터 예측자 인덱스(affine motion vector predictor index) 및/또는 비-어파인 움직임 벡터 예측자 인덱스(non-affine motion vector predictor index)를 포함할 때, 상기 어파인 움직임 벡터 예측자 인덱스와 상기 비-어파인 움직임 벡터 예측자 인덱스는 서로 다른 테이블에 의해 정의될 수 있다. 이때, 상기 어파인 움직임 벡터 예측자 인덱스는 어파인 움직임 예측을 위해 이용되는 후보를 나타내고, 상기 상기 비-어파인 움직임 벡터 예측자 인덱스는 인터 예측을 위해 이용되는 후보를 나타낸다.
상기 디코더는, 상기 컨텍스트 인덱스에 기초하여, 상기 현재 블록의 어파인 예측 관련 신택스 요소를 엔트로피 디코딩할 수 있다(S1140).
상기 엔트로피 디코딩된 어파인 예측 관련 신택스 요소는 어파인 움직임 벡터 예측을 위해 이용될 수 있다.
도 12는 본 발명이 적용되는 실시예로서, 어파인 플래그의 컨텍스트 인덱스를 결정하는 과정을 나타내는 흐름도이다.
본 발명의 일실시예는, 어파인 플래그(affine_flag)를 위한 컨텍스트 모델을 제안한다. 현재 블록 (C) 의 컨텍스트 모델은 이웃하는 좌측 블록 (L) 과 상측 블록 (A) 의 어파인 코딩 정보에 기초하여 3개의 컨텍스트 모델로 구성되며 다음 수학식 2와 같이 컨텍스트 인덱스를 결정할 수 있다. 여기서, 상기 어파인 코딩 정보는 어파인 움직임 예측이 수행되었는지 여부를 나타낸다.
Figure PCTKR2018013489-appb-M000002
여기서, ctx_idx_for_affine_flag 는 어파인 플래그(affine_flag)를 위한 컨텍스트 인덱스이고, 이는 0~2 의 값을 가질 수 있다.
예를 들어, affine_L 는 좌측 블록에 대해 어파인 움직임 예측이 수행되었는지 여부를 나타내고, affine_A 는 상측 블록에 대해 어파인 움직임 예측이 수행되었는지 여부를 나타낸다. 어파인 움직임 예측이 수행될 때, affine_L 또는 affine_A 는 1값을 갖고, 어파인 움직임 예측이 수행되지 않을 때, affine_L 또는 affine_A 는 0값을 갖는다.
어파인 움직임 예측이 수행된 이웃 블록의 수가 많을수록 (즉, ctx_idx_for_affine_flag 값이 클수록) 현재 블록도 어파인 움직임 예측이 수행된 블록일 확률이 높다. 따라서, 각 컨텍스트 모델은 다음 표 1과 같이 구성될 수 있다.
ctx_idx_for_affine_flag 0 1 2
Init_val N0 N1 N2
여기서, Init_val 는 초기값을 나타내며, 다음 수학식 3을 만족하는 임의의 값을 나타낸다.
Figure PCTKR2018013489-appb-M000003
여기서, p(N0), p(N1), p(N2)는 각 초기값에서 어파인 플래그(affine_flag)가 참(true)일 확률값을 의미한다.
따라서, 상기 수학식 3은 어파인 움직임 예측이 수행된 이웃 블록의 수가 많을수록 현재 블록도 어파인 움직임 예측이 수행된 블록일 확률이 높다는 것을 의미한다.
상기 도 12를 살펴보면, 디코더는 현재 블록의 좌측 블록 및/또는 상측 블록의 어파인 코딩 정보를 유도할 수 있다(S1210).
상기 디코더는 상기 어파인 코딩 정보에 기초하여 좌측 블록 및/또는 상측 블록에 대해 어파인 움직임 예측이 수행되었는지 여부를 확인할 수 있다(S1220).
상기 좌측 블록에 대해 어파인 움직임 예측이 수행될 때, affine_L = 1 (제1값)로 결정될 수 있고, 상기 상측 블록에 대해 어파인 움직임 예측이 수행될 때, affine_A = 1 (제2값)로 결정될 수 있다(S1230).
반면, 상기 좌측 블록에 대해 어파인 움직임 예측이 수행되지 않을 때, affine_L = 0 (제1값)으로 결정될 수 있고, 상기 상측 블록에 대해 어파인 움직임 예측이 수행되지 않을 때, affine_A = 0 (제2값)으로 결정될 수 있다(S1240).
상기 디코더는 상기 좌측 블록에 대한 제1값과 상기 상측 블록에 대한 제2값의 합에 기초하여 어파인 플래그의 컨텍스트 인덱스를 결정할 수 있다(S1250).
즉, 상기 디코더는, 상기 좌측 블록의 어파인 코딩 정보와 상기 상측 블록의 어파인 코딩 정보의 합에 기초하여 상기 어파인 플래그의 컨텍스트 인덱스를 결정할 수 있다. 이때, 상기 어파인 플래그는 어파인 움직임 예측이 수행되었는지 여부를 나타낸다.
이와 같이, 본 발명은, 이웃 블록의 어파인 코딩 정보에 기초하여 어파인 예측과 관련된 신택스 엘리먼트의 컨텍스트 인덱스를 결정함으로써, 현재 블록에 보다 적합한 컨텍스트 모델을 결정할 수 있고, 이를 통해 엔트로피 부호화/복호화에 대한 성능을 향상시킬 수 있다.
도 13은 본 발명이 적용되는 실시예로서, 어파인 파라미터 플래그의 컨텍스트 인덱스를 결정하는 과정을 나타내는 흐름도이다.
본 발명의 일실시예에 따르면, 어파인 예측 관련 신택스 요소가 어파인 파라미터 플래그를 포함할 때, 상기 어파인 파라미터 플래그의 컨텍스트 인덱스는 상기 좌측 블록의 어파인 코딩 정보와 어파인 예측 모드 정보에 의해 결정된 제1값 및 상기 상측 블록의 어파인 코딩 정보와 어파인 예측 모드 정보에 의해 결정된 제2값의 합에 기초하여 결정될 수 있다. 여기서, 상기 어파인 파라미터 플래그는 어파인 움직임 예측이 상기 AF4 모드 또는 상기 AF6 모드에 기초하여 수행되는지 여부를 나타내는 플래그이다.
그리고, 상기 어파인 코딩 정보는 어파인 움직임 예측이 수행되었는지 여부를 나타내는 정보이다.
상기 어파인 예측 모드 정보는 어파인 움직임 예측이 AF4 모드 또는 AF6 모드에 기초하여 수행되는지 여부를 나타내는 정보이다. 여기서, 상기 AF4 모드는 4개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타내고, 상기 AF6 모드는 6개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타낸다.
다른 예로, 상기 어파인 예측 모드 정보는 어파인 움직임 예측이 AF6 모드에 기초하여 수행되는지 여부를 나타내는 플래그일 수 있다. 예를 들어, affine_param_flag = 1 이면 6개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타내고, affine_param_flag = 0 이면 4개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타낸다.
본 발명은, 어파인 파라미터 플래그(affine_param_flag)를 위한 컨텍스트 모델을 설명한다. 현재 블록 (C) 의 컨텍스트 모델은, 좌측 블록의 어파인 코딩 정보와 어파인 예측 모드 정보에 의해 결정된 제1값 및 상측 블록의 어파인 코딩 정보와 어파인 예측 모드 정보에 의해 결정된 제2값의 합에 기초하여 3 개의 컨텍스트 모델을 사용하며, 이는 다음 수학식 4와 같다.
Figure PCTKR2018013489-appb-M000004
여기서, ctx_idx_for_affine_param_flag 는 어파인 파라미터 플래그(affine_param_flag)를 위한 컨텍스트 인덱스이며, 0~2 의 값을 가질 수 있다.
예를 들어, affine_L 는 좌측 블록에 대해 어파인 움직임 예측이 수행되었는지 여부를 나타내고, affine_A 는 상측 블록에 대해 어파인 움직임 예측이 수행되었는지 여부를 나타낸다. 어파인 움직임 예측이 수행될 때, affine_L 또는 affine_A 는 1값을 갖고, 어파인 움직임 예측이 수행되지 않을 때, affine_L 또는 affine_A 는 0값을 갖는다.
예를 들어, affine_ param_L 는 좌측 블록에 대해 어파인 움직임 예측이 AF6 모드에 기초하여 수행되는지 여부를 나타내고, affine_ param_A 는 상측 블록에 대해 어파인 움직임 예측이 AF6 모드에 기초하여 수행되는지 여부를 나타낸다. 어파인 움직임 예측이 AF6 모드에 기초하여 수행될 때, affine_param_L 또는 affine_param_A 는 1값을 갖고, 어파인 움직임 예측이 AF6 모드에 기초하여 수행되지 않을 때, affine_param_L 또는 affine_param_A 는 0값을 갖는다.
상기 도 13을 살펴보면, 디코더는 현재 블록의 좌측 블록 및/또는 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보를 유도를 유도할 수 있다(S1310).
상기 디코더는 상기 어파인 코딩 정보에 기초하여 좌측 블록 및/또는 상측 블록에 대해 어파인 움직임 예측이 수행되었는지 여부를 확인할 수 있다(S1320).
상기 디코더는 상기 어파인 예측 모드 정보에 기초하여 어파인 움직임 예측이 AF6 모드에 기초하여 수행되었는지 또는 AF4 모드에 기초하여 수행되었는지 여부를 확인할 수 있다(S1330).
예를 들어, 어파인 움직임 예측이 수행되고, 어파인 움직임 예측이 AF6 모드에 기초하여 수행될 때, 좌측 블록의 경우 (제1값) affine_L && affine_param_L = 1 이 되고, 상측 블록의 경우 (제2값)affine_A && affine_param_A = 1 이 된다(S1340).
반면, 어파인 움직임 예측이 수행되지 않거나, 또는 어파인 움직임 예측이 AF6 모드에 기초하여 수행되지 않을 때에는, 좌측 블록의 경우 (제1값) affine_L && affine_param_L = 0 이 되고, 상측 블록의 경우 (제2값)affine_A && affine_param_A = 0 이 된다(S1350).
상기 디코더는 상기 제1값과 상기 제2값의 합에 기초하여 어파인 파라미터 플래그의 컨텍스트 인덱스를 결정할 수 있다. 예를 들어, 상기 어파인 파라미터 플래그의 컨텍스트 인덱스는 0~2 의 값을 가질 수 있다.
어파인 움직임 예측이 AF6 모드에 기초하여 수행된 이웃 블록의 수가 많을수록 (즉, ctx_idx_for_affine_param_flag 값이 클수록) 현재 블록도 어파인 움직임 예측이 AF6 모드에 기초하여 수행된 블록일 확률이 높다. 따라서, 각 컨텍스트 모델은 다음 표 2와 같이 구성될 수 있다.
ctx_idx_for_affine_param_flag 0 1 2
Init_val N0 N1 N2
여기서, Init_val 는 초기값을 나타내며, 다음 수학식 5를 만족하는 임의의 값을 나타낸다.
Figure PCTKR2018013489-appb-M000005
여기서, p(N0), p(N1), p(N2)는 각 초기값에서 어파인 파라미터 플래그(affine_param_flag)가 참(true)일 확률값을 의미한다.
따라서, 상기 수학식 5는 어파인 움직임 예측이 AF6 모드에 기초하여 수행된 이웃 블록의 수가 많을수록 현재 블록도 어파인 움직임 예측이 AF6 모드에 기초하여 수행된 블록일 확률이 높다는 것을 의미한다.
이와 같이, 본 발명은, 이웃 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보 중 적어도 하나에 기초하여 어파인 예측과 관련된 신택스 엘리먼트의 컨텍스트 인덱스를 결정함으로써, 현재 블록에 보다 적합한 컨텍스트 모델을 결정할 수 있고, 이를 통해 엔트로피 부호화/복호화에 대한 성능을 향상시킬 수 있다.
도 14는 본 발명이 적용되는 실시예로, affine_param_flag 를 부호화하기 위해 1개의 컨텍스트 모델을 이용하는 방법을 설명하기 위한 흐름도이다.
실제 부호화/복호화에서 affine_param_flag 의 발생 빈도가 매우 낮을 때, 3개의 컨텍스트 모델을 사용할 경우 실제 발생 확률과 확률 모델이 다를 수 있다. 예를 들어, 3개의 컨텍스트 모델을 이용하여 affine_param_flag 의 발생 확률을 구해보면 다음 표 3과 같을 수 있다.
Figure PCTKR2018013489-appb-T000001
이 경우, 3개의 컨텍스트 모델에 따른 경향 및 QP 에 따른 경향을 발견하기 어렵다. 따라서, 본 발명은 다음 표 4와 같이 1개의 컨텍스트 모델을 구성하고 초기값은 QP 에 따라 일정한 확률을 갖는 값으로 결정할 수 있다.
ctx_idx_for_affine_param_flag 0
Init_val N
상기 도 14를 살펴보면, 인코더/디코더는 현재 블록에 대해 어파인 움직임 예측이 수행되었는지 여부를 확인할 수 있다(S1410). 예를 들어, 이는 상기 도 12의 과정에 의해 결정될 수 있으며, 중복되는 설명은 생략하도록 한다.
상기 현재 블록에 대해 어파인 움직임 예측이 수행될 때, 상기 인코더/디코더는 기정의된 1개의 컨텍스트 모델에 기초하여 헌재 블록의 어파인 파라미터 플래그를 파싱할 수 있다(S1420). 이때, 컨텍스트 모델은 1개만 이용되기 때문에 컨텍스트 인덱스는 항상 0이 된다.
상기 인코더/디코더는 상기 파싱된 어파인 파라미터 플래그에 기초하여 컨텍스트 모델을 업데이트할 수 있다(S1430).
이와 같이, 1개의 컨텍스트 모델만을 이용함으로써 기존에 복수개의 컨텍스트 모델을 이용하는 것에 비하여, 신택스 요소를 보다 효과적으로 코딩/디코딩할 수 있게 된다.
본 발명이 적용되는 다른 실시예로, affine_param_flag 의 CABAC 바이패스 코딩을 통해 코딩 성능을 유지하면서 쓰루풋을 향상시킬 수 있다.
CABAC이 높은 코딩 성능을 나타내는 반면, 데이터 의존성은 특히 높은 비트율에서는 쓰루풋 장애(throughput bottleneck)를 초래한다. 높은 쓰루풋은 전력 절약을 제공하기 때문에, CABAC은 비디오 코딩/디코딩에 있어서 배터리 수명을 제한할 수 있다. 이는 스마트폰과 같은 포터블 디바이스의 경우에는 매우 중요하다. 따라서, 비디오 코딩 시스템을 설계함에 있어서 코딩 효율 뿐만 아니라 쓰루풋 향상도 매우 중요한 요소이다.
대부분의 쓰루풋 향상은 일정하게 분배된 빈들(uniform distributed bins)에 대한 확률 예측(probability estimation)의 바이패스(바이패스 코딩 모드)에 의해 수행될 수 있다.
따라서, 본 발명은 affine_param_flag 의 바이패스 코딩을 통해 코딩 성능을 유지하면서 쓰루풋을 향상시키는 방법을 제공한다. 구체적으로, 하나의 빈이 affine_param_flag 를 위해 이용되고, affine_param_flag의 하나의 빈이 바이패스 코딩되는 방법을 제공한다.
본 발명에 따른 affine_param_flag 의 바이패스 코딩에 따른 테스트 결과를 살펴보면 다음 표 5와 같다.
Figure PCTKR2018013489-appb-T000002
또한, affine_mvp_idx 는 mvd_CPi 와 구분되어 디코딩될 수 있으며, 이는 도 15에서 설명하도록 한다. 이때, 상기 도 15의 mvp_idx 는 도 17의 mvd_CPi 로 대체되어 적용될 수 있다. 여기서, mvd_CPi 는 제어점 CPi 의 움직임 벡터 차이를 나타낸다.
도 15는 본 발명이 적용되는 실시예로서, 어파인 플래그에 기초하여 어파인 움직임 예측을 신택스 구조를 나타낸다.
본 발명은, mvp_idx 를 부호화하기 위한 컨텍스트 모델을 설명한다. 상기 도 15에서와 같이 MVP(Motion Vector Predictor) 후보자(candidate)는 어파인 움직임 예측 코딩되었는지 여부에 상관없이 인터 코딩에서 사용되기 때문에 어파인 움직임 예측과 그 이외의 인터 예측에서 이들을 구분하여 사용하지 않는다. 따라서, 본 발명에서는 mvp_idx 를 위한 1개의 컨텍스트 모델 및 초기값을 사용하는 방법을 제공한다.
디코더는 merge_flag를 획득하여, 현재 블록에 대해 머지 모드가 적용되는지 여부를 확인할 수 있다(S1510).
상기 현재 블록에 대해 머지 모드가 적용되지 않을 때, 상기 디코더는 affine_flag 를 획득할 수 있다(S1520). 여기서, affine_flag 는 AF 모드가 수행되는지 여부를 나타낸다.
상기 affine_flag = 1 이면, 즉 현재 블록에 대해 AF 모드가 수행되면, 상기 디코더는 affine_param_flag 를 획득할 수 있다(S1530). 여기서, affine_param_flag 는 AF6 모드가 수행되는지 여부(또는 AF4 모드가 수행되는지 여부)를 나타낸다.
그리고, 상기 디코더는 움직임 벡터 예측자 인덱스(mvp_idx)를 획득할 수 있다(S1540). 이때, mvp_idx 를 위한 1개의 컨텍스트 모델 및 초기값이 이용될 수 있다.
상기 디코더는 상기 움직임 벡터 예측자 인덱스(mvp_idx)에 기초하여 움직임 예측자를 획득할 수 있고, 상기 움직임 예측자에 기초하여 비디오 신호를 복원할 수 있다.
도 16은 본 발명이 적용되는 실시예로서, 어파인 예측을 위한 움직임 벡터 예측자 인덱스와 인터 예측을 위한 움직임 벡터 예측자 인덱스를 구분하여 디코딩하는 신택스 구조를 나타낸다.
본 발명은, 어파인 예측(affine prediction)을 위한 mvp_idx (affine_mvp_idx)와 비-어파인 예측(non-affine prediction)을 위한 mvp_idx를 구분하여 CABAC 컨텍스트 모델을 설계하는 방법을 설명한다.
여기서, affine_mvp_idx 는 어파인 예측을 위해 2개의 MVP 후보자들 중 사용할 후보자를 나타낸다. 예를 들어, affine_mvp_idx = 0 일 때 1st MVP 후보자를 사용하고 affine_mvp_idx = 1 일 때 2nd 후보자를 사용한다.
mvp_idx는 인터 예측을 위한 2 MVP 후보자들 중 사용한 후보자를 나타낸다. 예를 들어, mvp_idx = 0 일 때 1st MVP 후보자를 사용하고 mvp_idx = 1 일 때 2nd 후보자를 사용한다.
어파인 예측(affine prediction)과 비-어파인 예측(non-affine prediction)에 따른 mvp_idx = 0 일 때의 확률은 다음 표 6과 같다.
Figure PCTKR2018013489-appb-T000003
상기 표 6을 살펴보면, 다음과 같은 사실을 알 수 있다.
1) 어파인 예측(affine prediction) 여부에 따른 mvp index 의 확률 분포는 상이하다.
2) P(0 | affine) 의 경우 QP 가 증가할수록 확률이 감소한다. 여기서, P(0 | affine) 는 어파인 예측(affine prediction)에 따른 mvp_idx = 0 일 때의 확률을 나타낸다.
3) P(0 | non affine) 의 경우 QP 가 증가할수록 확률이 증가한다. 여기서, P(0 | non affine) 는 비-어파인 예측(non-affine prediction)에 따른 mvp_idx = 0 일 때의 확률을 나타낸다.
따라서, 본 발명은 mvp index 를 어파인 예측(affine prediction) 여부에 따라 구분하여 디코딩하는 것을 제안한다.
디코더는 merge_flag를 획득하여, 현재 블록에 대해 머지 모드가 적용되는지 여부를 확인할 수 있다(S1610).
상기 현재 블록에 대해 머지 모드가 적용되지 않을 때, 상기 디코더는 affine_flag 를 획득할 수 있다(S1620). 여기서, affine_flag 는 AF 모드가 수행되는지 여부를 나타낸다.
상기 affine_flag = 1 이면, 즉 현재 블록에 대해 AF 모드가 수행되면, 상기 디코더는 affine_param_flag 및 affine_mvp_idx 를 획득할 수 있다(S1630, S1640). 여기서, affine_param_flag 는 AF6 모드가 수행되는지 여부(또는 AF4 모드가 수행되는지 여부)를 나타낸다. affine_mvp_idx 는 어파인 움직임 벡터 예측자 인덱스를 나타낸다.
반면, 상기 affine_flag = 0 이면, 상기 디코더는 mvp_idx 를 획득할 수 있다(S1650). 여기서, mvp_idx 는 인터 예측을 위한 움직임 벡터 예측자 인덱스를 의미한다.
상기 디코더는 상기 어파인 움직임 벡터 예측자 인덱스 또는 상기 인터 예측을 위한 움직임 벡터 예측자 인덱스에 기초하여 움직임 예측자를 획득할 수 있고, 상기 움직임 예측자에 기초하여 비디오 신호를 복원할 수 있다.
다른 실시예로, 표 7 및 표 8은 각각 affine_mvp_idx 및 mvp index 의 컨텍스트 모델 및 그 초기값을 나타낸다.
affine_mvp_idx 0
Init_val Naffine_mvp_idx
mvp_idx 0
Init_val Nmvp_idx
상기 표 7과 같이, affine_mvp_idx 의 초기값 Naffine_mvp_idx 는 QP 가 증가할수록 affine_mvp_idx 가 0 인 확률이 감소하는 값으로 결정할 수 있다.
그리고, 상기 표 8과 같이, mvp_idx 의 초기값 Nmvp_idx 는 QP 가 증가할수록 mvp_idx 가 0 인 확률이 증가하는 값으로 결정할 수 있다.
도 17은 본 발명이 적용되는 실시예로서, AF4 모드 또는 AF6 모드 중 적어도 하나에 기초하여 최적의 코딩 모드를 적응적으로 결정하는 흐름도를 나타낸다.
비디오 신호 처리 장치는 스킵 모드, 머지 모드, 또는 인터 모드 중 적어도 하나에 기초하여 예측을 수행할 수 있다(S1710). 여기서, 머지 모드를 일반적인 머지 모드 뿐만 아니라 앞서 설명한 AF 머지 모드를 포함할 수 있고, 인터 모드는 일반적인 인터 모드 뿐만 아니라 앞서 설명한 AF 인터 모드를 포함할 수 있다.
상기 비디오 신호 처리 장치는 AF4 모드 또는 AF6 모드 중 적어도 하나에 기초하여 움직임 벡터 예측을 수행할 수 있다(S1720). 여기서, 상기 S1710 단계와 상기 S1720 단계는 그 순서에 제한되지 않는다.
상기 비디오 신호 처리 장치는 상기 S1720 단계의 결과들을 비교하여, 상기 모드들 중 최적의 코딩 모드를 결정할 수 있다(S1730). 이때, 상기 S1720 단계의 결과들은 율-왜곡 비용(Rate-Distortion Cost)에 기초하여 비교될 수 있다.
이후, 상기 비디오 신호 처리 장치는 최적의 코딩 모드에 기초하여 현재 블록의 움직임 벡터 예측자를 생성할 수 있고, 상기 현재 블록의 움직임 벡터에서 상기 움직임 벡터 예측자를 감산하여 움직임 벡터 차이값을 획득할 수 있다.
이후, 상기 도 1 및 도 2에서 설명하였던 인코딩/디코딩 과정이 동일하게 적용될 수 있다.
도 18은 본 발명이 적용되는 실시예로서, AF4 모드 또는 AF6 모드에 기초하여 디코딩을 수행하는 신택스 구조를 나타낸다.
디코더는 merge_flag를 획득하여, 현재 블록에 대해 머지 모드가 적용되는지 여부를 확인할 수 있다(S1810).
상기 현재 블록에 대해 머지 모드가 적용되지 않을 때, 상기 디코더는 affine_flag 를 획득할 수 있다(S1820). 여기서, affine_flag 는 AF 모드가 수행되는지 여부를 나타낸다.
상기 affine_flag = 1 이면, 즉 현재 블록에 대해 AF 모드가 수행되면, 상기 디코더는 affine_param_flag 를 획득할 수 있다(S1830). 여기서, affine_param_flag 는 AF4 모드가 수행되는지 여부(또는 4개의 파라미터에 의해 어파인 움직임 예측이 수행되는지 여부)를 나타낸다.
상기 affine_param_flag = 0 이면, 즉 AF4 모드에 따라 움직임 벡터 예측이 수행되면, 상기 디코더는 2개의 움직임 벡터 차이값인, mvd_CP0 및 mvd_CP1을 획득할 수 있다(S1840). 여기서, mvd_CP0 는 제어점 0에 대한 움직임 벡터 차이값을 나타내고, mvd_CP1 은 제어점 1에 대한 움직임 벡터 차이값을 나타낸다.
그리고, 상기 affine_param_flag = 1 이면, 즉 AF6 모드에 따라 움직임 벡터 예측이 수행되면, 상기 디코더는 3개의 움직임 벡터 차이값인, mvd_CP0, mvd_CP1 및 mvd_CP2를 획득할 수 있다(S1850).
도 19는 본 발명이 적용되는 실시예로서, 조건 A(condition A)에 기초하여 AF4 모드 또는 AF6 모드를 포함하는 움직임 벡터 예측 모드들 중 최적의 코딩 모드를 적응적으로 결정하는 흐름도를 나타낸다.
인코더는 스킵 모드, 머지 모드, 또는 인터 모드 중 적어도 하나에 기초하여 예측을 수행할 수 있다(S1910).
상기 인코더는, 움직임 벡터 예측을 위한 최적의 코딩 모드를 결정하기 위해 현재 블록에 대해 조건 A가 만족되는지 여부를 확인할 수 있다(S1920).
여기서, 상기 조건 A는 블록 크기에 대한 조건을 의미할 수 있다. 예를 들어, 상기 조건 A는 상기 현재 블록의 픽셀 개수(pixNum)가 임계값(TH1)보다 큰지 여부를 나타낸다. 또는, 상기 조건 A는 상기 현재 블록의 너비(width) 및 높이(height)가 모두 임계값(TH1)보다 큰지 여부를 나타낸다. 또는, 상기 조건 A는 상기 현재 블록의 너비(width)가 임계값(TH1)보다 크거나 또는 상기 현재 블록의 높이(height)가 임계값(TH1)보다 큰지 여부를 나타낸다.
상기 조건 A가 만족될 때, 상기 인코더는 AF4 모드 또는 AF6 모드 중 적어도 하나에 기초하여 움직임 벡터 예측을 수행할 수 있다(S1930).
상기 인코더는 상기 S1910 및 상기 S1930 단계들의 결과들을 비교하여, AF4 모드 또는 AF6 모드를 포함하는 움직임 벡터 예측 모드들 중 최적의 코딩 모드를 결정할 수 있다(S1940).
한편, 상기 조건 A가 만족되지 않을 때, 상기 인코더는 AF 모드가 아닌 모드들 중에서 최적의 코딩 모드를 결정할 수 있다(S1940).
이후, 상기 인코더는 최적의 코딩 모드에 기초하여 현재 블록의 움직임 벡터 예측자를 생성할 수 있고, 상기 현재 블록의 움직임 벡터에서 상기 움직임 벡터 예측자를 감산하여 움직임 벡터 차이값을 획득할 수 있다.
이후, 상기 도 1 및 도 2에서 설명하였던 인코딩/디코딩 과정이 동일하게 적용될 수 있다.
도 20은 본 발명이 적용되는 실시예로서, 조건 A(condition A)에 기초하여 AF4 모드 또는 AF6 모드에 따라 적응적으로 디코딩을 수행하는 흐름도를 나타낸다.
디코더는 비트스트림을 수신할 수 있다(S2010). 상기 비트스트림은 비디오 신호 내 현재 블록의 코딩 모드에 대한 정보를 포함할 수 있다.
상기 디코더는, 움직임 벡터 예측을 위한 최적의 코딩 모드를 결정하기 위해 현재 블록에 대해 조건 A가 만족되는지 여부를 확인할 수 있다(S2020). 여기서, 상기 조건 A는 블록 크기에 대한 조건을 의미할 수 있다. 예를 들어, 상기 도 18의 실시예들이 적용될 수 있다.
상기 조건 A가 만족될 때, 상기 디코더는 상기 현재 블록의 코딩 모드가 AF 모드인지 여부를 확인할 수 있다(S2030). 여기서, 상기 AF 모드는 어파인 움직임 모델(affine motion model)을 이용하는 어파인 움직임 예측 모드를 의미하며, 본 명세서에서 설명한 실시예들이 적용될 수 있다.
이때, 상기 S2030 단계는 AF 모드가 수행되는지 여부를 나타내는 어파인 플래그에 의해 확인될 수 있다. 예를 들어, 상기 어파인 플래그는 affine_flag 로 표현될 수 있다. 상기 affine_flag = 1 이면, 현재 블록에 대해 AF 모드가 수행되는 것을 나타내고, 상기 affine_flag = 0 이면, 현재 블록에 대해 AF 모드가 수행되지 않는 것을 나타낸다.
상기 조건 A가 만족되지 않을 때거나, 상기 현재 블록에 대해 AF 모드가 수행되지 않을 때, 상기 디코더는 상기 AF 모드가 아닌 코딩 모드에 따라 디코딩(즉, 움직임 벡터 예측)을 수행할 수 있다(S2040). 예를 들어, 스킵 모드, 머지 모드 또는 인터 모드가 이용될 수 있다.
상기 현재 블록에 대해 AF 모드가 수행될 때, 상기 디코더는 상기 현재 블록에 대해 AF4 모드가 적용되는지 여부를 확인할 수 있다(S2050).
이때, 상기 S1950 단계는 AF4 모드가 수행되는지 여부(또는 4개의 파라미터에 의해 어파인 움직임 예측이 수행되는지 여부)를 나타내는 어파인 파라미터 플래그에 의해 확인될 수 있다. 예를 들어, 상기 어파인 파라미터 플래그는 affine_param_flag 로 표현될 수 있다. 상기 affine_param_flag = 0 이면, AF4 모드에 따라 움직임 벡터 예측이 수행되고(S2060), 상기 affine_param_flag = 1 이면, AF6 모드에 따라 움직임 벡터 예측이 수행되는 것을 의미할 수 있으나(S2070), 본 발명은 이에 한정되지 않는다.
도 21은 본 발명이 적용되는 비디오 코딩 시스템을 나타낸다.
비디오 코딩 시스템은 소스 디바이스(source device) 및 수신 디바이스(receiving device)를 포함할 수 있다. 소스 디바이스는 인코딩된 비디오/영상 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스로 전달할 수 있다.
상기 소스 디바이스는 비디오 소스(video source), 인코딩 장치(encoding apparatus), 전송부(transmitter)를 포함할 수 있다. 상기 수신 디바이스는 수신부(receiver), 디코딩 장치(decoding apparatus) 및 렌더러(renderer)를 포함할 수 있다. 상기 인코딩 장치는 비디오/영상 인코딩 장치라고 불릴 수 있고, 상기 디코딩 장치는 비디오/영상 디코딩 장치라고 불릴 수 있다. 송신기는 인코딩 장치에 포함될 수 있다. 수신기는 디코딩 장치에 포함될 수 있다. 렌더러는 디스플레이부를 포함할 수도 있고, 디스플레이부는 별개의 디바이스 또는 외부 컴포넌트로 구성될 수도 있다.
비디오 소스는 비디오/영상의 캡쳐, 합성 또는 생성 과정 등을 통하여 비디오/영상을 획득할 수 있다. 비디오 소스는 비디오/영상 캡쳐 디바이스 및/또는 비디오/영상 생성 디바이스를 포함할 수 있다. 비디오/영상 캡쳐 디바이스는 예를 들어, 하나 이상의 카메라, 이전에 캡쳐된 비디오/영상을 포함하는 비디오/영상 아카이브 등을 포함할 수 있다. 비디오/영상 생성 디바이스는 예를 들어 컴퓨터, 타블렛 및 스마트폰 등을 포함할 수 있으며 (전자적으로) 비디오/영상을 생성할 수 있다. 예를 들어, 컴퓨터 등을 통하여 가상의 비디오/영상이 생성될 수 있으며, 이 경우 관련 데이터가 생성되는 과정으로 비디오/영상 캡쳐 과정이 갈음될 수 있다.
인코딩 장치는 입력 비디오/영상을 인코딩할 수 있다. 인코딩 장치는 압축 및 코딩 효율을 위하여 예측, 변환, 양자화, 엔트로피 인코딩 등 일련의 절차를 수행할 수 있다. 인코딩된 데이터(인코딩된 비디오/영상 정보)는 비트스트림(bitstream) 형태로 출력될 수 있다. 여기서, 엔트로피 인코딩을 수행함에 있어서 본 명세서의 실시예들이 적용될 수 있다.
전송부는 비트스트림 형태로 출력된 인코딩된 비디오/영상 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스의 수신부로 전달할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다. 전송부는 미리 정해진 파일 포멧을 통하여 미디어 파일을 생성하기 위한 엘리먼트를 포함할 수 있고, 방송/통신 네트워크를 통한 전송을 위한 엘리먼트를 포함할 수 있다. 수신부는 상기 비트스트림을 추출하여 디코딩 장치로 전달할 수 있다.
디코딩 장치는 인코딩 장치의 동작에 대응하는 엔트로피 디코딩, 역양자화, 역변환, 예측 등 일련의 절차를 수행하여 비디오/영상을 디코딩할 수 있다. 여기서, 엔트로피 디코딩을 수행함에 있어서 본 명세서의 실시예들이 적용될 수 있다.
렌더러는 디코딩된 비디오/영상을 렌더링할 수 있다. 렌더링된 비디오/영상은 디스플레이부를 통하여 디스플레이될 수 있다.
도 22는 본 발명이 적용되는 컨텐츠 스트리밍 시스템을 나타낸다.
상기 도 22를 살펴보면, 본 발명이 적용되는 컨텐츠 스트리밍 시스템은 크게 인코딩 서버, 스트리밍 서버, 웹 서버, 미디어 저장소, 사용자 장치 및 멀티미디어 입력 장치를 포함할 수 있다.
상기 인코딩 서버는 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들로부터 입력된 컨텐츠를 디지털 데이터로 압축하여 비트스트림을 생성하고 이를 상기 스트리밍 서버로 전송하는 역할을 한다. 다른 예로, 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들이 비트스트림을 직접 생성하는 경우, 상기 인코딩 서버는 생략될 수 있다.
상기 비트스트림은 본 발명이 적용되는 인코딩 방법 또는 비트스트림 생성 방법에 의해 생성될 수 있고, 상기 스트리밍 서버는 상기 비트스트림을 전송 또는 수신하는 과정에서 일시적으로 상기 비트스트림을 저장할 수 있다.
상기 스트리밍 서버는 웹 서버를 통한 사용자 요청에 기초하여 멀티미디어 데이터를 사용자 장치에 전송하고, 상기 웹 서버는 사용자에게 어떠한 서비스가 있는지를 알려주는 매개체 역할을 한다. 사용자가 상기 웹 서버에 원하는 서비스를 요청하면, 상기 웹 서버는 이를 스트리밍 서버에 전달하고, 상기 스트리밍 서버는 사용자에게 멀티미디어 데이터를 전송한다. 이때, 상기 컨텐츠 스트리밍 시스템은 별도의 제어 서버를 포함할 수 있고, 이 경우 상기 제어 서버는 상기 컨텐츠 스트리밍 시스템 내 각 장치 간 명령/응답을 제어하는 역할을 한다.
상기 스트리밍 서버는 미디어 저장소 및/또는 인코딩 서버로부터 컨텐츠를 수신할 수 있다. 예를 들어, 상기 인코딩 서버로부터 컨텐츠를 수신하게 되는 경우, 상기 컨텐츠를 실시간으로 수신할 수 있다. 이 경우, 원활한 스트리밍 서비스를 제공하기 위하여 상기 스트리밍 서버는 상기 비트스트림을 일정 시간동안 저장할 수 있다.
상기 사용자 장치의 예로는, 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)), 디지털 TV, 데스크탑 컴퓨터, 디지털 사이니지 등이 있을 수 있다.
상기 컨텐츠 스트리밍 시스템 내 각 서버들은 분산 서버로 운영될 수 있으며, 이 경우 각 서버에서 수신하는 데이터는 분산 처리될 수 있다.
상기 기술된 것과 같이, 본 발명에서 설명한 실시예들은 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 예를 들어, 본 명세서 도면들에서 도시한 기능 유닛들은 컴퓨터, 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다.
또한, 본 발명이 적용되는 디코더 및 인코더는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VoD) 서비스 제공 장치, 인터넷 스트리밍 서비스 제공 장치, 3차원(3D) 비디오 장치, 화상 전화 비디오 장치, 및 의료용 비디오 장치 등에 포함될 수 있으며, 비디오 신호 및 데이터 신호를 처리하기 위해 사용될 수 있다.
또한, 본 발명이 적용되는 처리 방법은 컴퓨터로 실행되는 프로그램의 형태로 생산될 수 있으며, 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 본 발명에 따른 데이터 구조를 가지는 멀티미디어 데이터도 또한 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터로 읽을 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 상기 컴퓨터가 판독할 수 있는 기록 매체는, 예를 들어, 블루레이 디스크(BD), 범용 직렬 버스(USB), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학적 데이터 저장 장치를 포함할 수 있다. 또한, 상기 컴퓨터가 판독할 수 있는 기록 매체는 반송파(예를 들어, 인터넷을 통한 전송)의 형태로 구현된 미디어를 포함한다. 또한, 인코딩 방법으로 생성된 비트 스트림이 컴퓨터가 판독할 수 있는 기록 매체에 저장되거나 유무선 통신 네트워크를 통해 전송될 수 있다.
이상, 전술한 본 발명의 바람직한 실시예는, 예시의 목적을 위해 개시된 것으로, 당업자라면 이하 첨부된 특허청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 다양한 다른 실시예들을 개량, 변경, 대체 또는 부가 등이 가능할 것이다.

Claims (12)

  1. 현재 블록을 포함하는 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서,
    상기 현재 블록에 이웃하는 좌측 블록 및 상측 블록이 이용가능한지를 확인하는 단계;
    상기 좌측 블록 및/또는 상기 상측 블록 중 적어도 하나가 이용가능할 때, 상기 좌측 블록 및/또는 상기 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보를 유도하는 단계;
    상기 좌측 블록 및/또는 상기 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보 중 적어도 하나에 기초하여 상기 현재 블록의 어파인 예측 관련 신택스 요소의 컨텍스트 인덱스를 결정하는 단계; 및
    상기 컨텍스트 인덱스에 기초하여, 상기 현재 블록의 어파인 예측 관련 신택스 요소를 엔트로피 디코딩하는 단계를 포함하되,
    상기 어파인 코딩 정보는 어파인 움직임 예측이 수행되었는지 여부를 나타내는 정보이고,
    상기 어파인 예측 모드 정보는 어파인 움직임 예측이 AF4 모드 또는 AF6 모드에 기초하여 수행되는지 여부를 나타내는 정보이고, 상기 AF4 모드는 4개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타내고, 상기 AF6 모드는 6개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타내는 방법.
  2. 제1항에 있어서,
    상기 어파인 예측 관련 신택스 요소가 어파인 플래그를 포함할 때, 상기 어파인 플래그의 컨텍스트 인덱스는 상기 좌측 블록의 어파인 코딩 정보와 상기 상측 블록의 어파인 코딩 정보의 합에 기초하여 결정되고,
    상기 어파인 플래그는 어파인 움직임 예측이 수행되었는지 여부를 나타내는 플래그인 방법.
  3. 제1항에 있어서,
    상기 어파인 예측 관련 신택스 요소가 어파인 파라미터 플래그를 포함할 때, 상기 어파인 파라미터 플래그의 컨텍스트 인덱스는 상기 좌측 블록의 어파인 코딩 정보와 어파인 예측 모드 정보에 의해 결정된 제1값 및 상기 상측 블록의 어파인 코딩 정보와 어파인 예측 모드 정보에 의해 결정된 제2값의 합에 기초하여 결정되고,
    상기 어파인 파라미터 플래그는 어파인 움직임 예측이 상기 AF4 모드 또는 상기 AF6 모드에 기초하여 수행되는지 여부를 나타내는 플래그인 방법.
  4. 제3항에 있어서,
    상기 어파인 플래그에 기초하여 상기 좌측 블록에 대해 어파인 움직임 예측이 수행되고, 상기 어파인 파라미터 플래그에 기초하여 상기 좌측 블록이 상기 AF6 모드에 기초하여 코딩될 때, 상기 제1값은 1로 결정되고, 그렇지 않을 때 상기 제1값은 0으로 결정되는 방법.
  5. 제3항에 있어서,
    상기 어파인 플래그에 기초하여 상기 상측 블록에 대해 어파인 움직임 예측이 수행되고, 상기 어파인 파라미터 플래그에 기초하여 상기 상측 블록이 상기 AF6 모드에 기초하여 코딩될 때, 상기 제2값은 1로 결정되고, 그렇지 않을 때 상기 제2값은 0으로 결정되는 방법.
  6. 제1항에 있어서,
    상기 어파인 예측 관련 신택스 요소가 어파인 움직임 벡터 예측자 인덱스(affine motion vector predictor index) 및/또는 비-어파인 움직임 벡터 예측자 인덱스(non-affine motion vector predictor index)를 포함할 때, 상기 어파인 움직임 벡터 예측자 인덱스와 상기 비-어파인 움직임 벡터 예측자 인덱스는 서로 다른 테이블에 의해 정의되고,
    상기 어파인 움직임 벡터 예측자 인덱스는 어파인 움직임 예측을 위해 이용되는 후보를 나타내고, 상기 상기 비-어파인 움직임 벡터 예측자 인덱스는 인터 예측을 위해 이용되는 후보를 나타내는 방법.
  7. 현재 블록을 포함하는 비디오 신호에 대해 엔트로피 디코딩을 수행하는 장치에 있어서,
    상기 현재 블록에 이웃하는 좌측 블록 및 상측 블록이 이용가능한지를 확인하고, 상기 좌측 블록 및/또는 상기 상측 블록 중 적어도 하나가 이용가능할 때, 상기 좌측 블록 및/또는 상기 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보를 유도하고, 상기 좌측 블록 및/또는 상기 상측 블록의 어파인 코딩 정보 및/또는 어파인 예측 모드 정보 중 적어도 하나에 기초하여 상기 현재 블록의 어파인 예측 관련 신택스 요소의 컨텍스트 인덱스를 결정하는 컨텍스트 모델링부; 및
    상기 컨텍스트 인덱스에 기초하여, 상기 현재 블록의 어파인 예측 관련 신택스 요소를 엔트로피 디코딩하는 이진 산술 디코딩부를 포함하되,
    상기 어파인 코딩 정보는 어파인 움직임 예측이 수행되었는지 여부를 나타내는 정보이고,
    상기 어파인 예측 모드 정보는 어파인 움직임 예측이 AF4 모드 또는 AF6 모드에 기초하여 수행되는지 여부를 나타내는 정보이고, 상기 AF4 모드는 4개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타내고, 상기 AF6 모드는 6개의 파라미터에 의해 어파인 움직임 예측이 수행되는 것을 나타내는 장치.
  8. 제7항에 있어서,
    상기 어파인 예측 관련 신택스 요소가 어파인 플래그를 포함할 때, 상기 어파인 플래그의 컨텍스트 인덱스는 상기 좌측 블록의 어파인 코딩 정보와 상기 상측 블록의 어파인 코딩 정보의 합에 기초하여 결정되고,
    상기 어파인 플래그는 어파인 움직임 예측이 수행되었는지 여부를 나타내는 플래그인 장치.
  9. 제7항에 있어서,
    상기 어파인 예측 관련 신택스 요소가 어파인 파라미터 플래그를 포함할 때, 상기 어파인 파라미터 플래그의 컨텍스트 인덱스는 상기 좌측 블록의 어파인 코딩 정보와 어파인 예측 모드 정보에 의해 결정된 제1값 및 상기 상측 블록의 어파인 코딩 정보와 어파인 예측 모드 정보에 의해 결정된 제2값의 합에 기초하여 결정되고,
    상기 어파인 파라미터 플래그는 어파인 움직임 예측이 상기 AF4 모드 또는 상기 AF6 모드에 기초하여 수행되는지 여부를 나타내는 플래그인 장치.
  10. 제9항에 있어서,
    상기 어파인 플래그에 기초하여 상기 좌측 블록에 대해 어파인 움직임 예측이 수행되고, 상기 어파인 파라미터 플래그에 기초하여 상기 좌측 블록이 상기 AF6 모드에 기초하여 코딩될 때, 상기 제1값은 1로 결정되고, 그렇지 않을 때 상기 제1값은 0으로 결정되는 장치.
  11. 제9항에 있어서,
    상기 어파인 플래그에 기초하여 상기 상측 블록에 대해 어파인 움직임 예측이 수행되고, 상기 어파인 파라미터 플래그에 기초하여 상기 상측 블록이 상기 AF6 모드에 기초하여 코딩될 때, 상기 제2값은 1로 결정되고, 그렇지 않을 때 상기 제2값은 0으로 결정되는 장치.
  12. 제7항에 있어서,
    상기 어파인 예측 관련 신택스 요소가 어파인 움직임 벡터 예측자 인덱스(affine motion vector predictor index) 및/또는 비-어파인 움직임 벡터 예측자 인덱스(non-affine motion vector predictor index)를 포함할 때, 상기 어파인 움직임 벡터 예측자 인덱스와 상기 비-어파인 움직임 벡터 예측자 인덱스는 서로 다른 테이블에 의해 정의되고,
    상기 어파인 움직임 벡터 예측자 인덱스는 어파인 움직임 예측을 위해 이용되는 후보를 나타내고, 상기 상기 비-어파인 움직임 벡터 예측자 인덱스는 인터 예측을 위해 이용되는 후보를 나타내는 장치.
PCT/KR2018/013489 2017-09-07 2018-11-07 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치 WO2019050385A2 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US16/645,400 US11082721B2 (en) 2017-09-07 2018-11-07 Method and apparatus for entropy-encoding and entropy-decoding video signal
US17/357,032 US11700398B2 (en) 2017-09-07 2021-06-24 Method and apparatus for entropy-encoding and entropy-decoding video signal
US18/201,473 US20230300384A1 (en) 2017-09-07 2023-05-24 Method and apparatus for entropy-encoding and entropy-decoding video signal

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762555053P 2017-09-07 2017-09-07
US62/555,053 2017-09-07
US201862646891P 2018-03-22 2018-03-22
US62/646,891 2018-03-22

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US16/645,400 A-371-Of-International US11082721B2 (en) 2017-09-07 2018-11-07 Method and apparatus for entropy-encoding and entropy-decoding video signal
US17/357,032 Continuation US11700398B2 (en) 2017-09-07 2021-06-24 Method and apparatus for entropy-encoding and entropy-decoding video signal

Publications (2)

Publication Number Publication Date
WO2019050385A2 true WO2019050385A2 (ko) 2019-03-14
WO2019050385A3 WO2019050385A3 (ko) 2019-04-25

Family

ID=65635092

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/013489 WO2019050385A2 (ko) 2017-09-07 2018-11-07 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치

Country Status (2)

Country Link
US (3) US11082721B2 (ko)
WO (1) WO2019050385A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11962807B2 (en) 2019-03-11 2024-04-16 Interdigital Vc Holdings, Inc. Entropy coding for video encoding and decoding

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11082721B2 (en) * 2017-09-07 2021-08-03 Lg Electronics Inc. Method and apparatus for entropy-encoding and entropy-decoding video signal
WO2020135371A1 (zh) * 2018-12-24 2020-07-02 华为技术有限公司 一种标志位的上下文建模方法及装置
KR20210145754A (ko) 2019-04-12 2021-12-02 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 행렬 기반 인트라 예측에서의 산출
CN113748676B (zh) 2019-04-16 2024-05-10 北京字节跳动网络技术有限公司 帧内编解码模式下的矩阵推导
WO2020221373A1 (en) 2019-05-01 2020-11-05 Beijing Bytedance Network Technology Co., Ltd. Matrix-based intra prediction using filtering
WO2020221372A1 (en) 2019-05-01 2020-11-05 Beijing Bytedance Network Technology Co., Ltd. Context coding for matrix-based intra prediction
CN113875233B (zh) 2019-05-22 2023-12-15 北京字节跳动网络技术有限公司 使用上采样的基于矩阵的帧内预测
JP2022535726A (ja) 2019-05-31 2022-08-10 北京字節跳動網絡技術有限公司 行列ベースイントラ予測における制約されたアップサンプリングプロセス
WO2020244610A1 (en) 2019-06-05 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Context determination for matrix-based intra prediction
EP4011082A4 (en) 2019-08-08 2023-10-25 Fg Innovation Company Limited DEVICE AND METHOD FOR ENCODING VIDEO DATA
WO2021083188A1 (en) 2019-10-28 2021-05-06 Beijing Bytedance Network Technology Co., Ltd. Syntax signaling and parsing based on colour component
US20230119972A1 (en) * 2021-10-01 2023-04-20 Mediatek Inc. Methods and Apparatuses of High Throughput Video Encoder

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9060173B2 (en) * 2011-06-30 2015-06-16 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
WO2017022973A1 (ko) * 2015-08-04 2017-02-09 엘지전자 주식회사 비디오 코딩 시스템에서 인터 예측 방법 및 장치
CN105163116B (zh) * 2015-08-29 2018-07-31 华为技术有限公司 图像预测的方法及设备
US20190158870A1 (en) * 2016-01-07 2019-05-23 Mediatek Inc. Method and apparatus for affine merge mode prediction for video coding system
WO2017147765A1 (en) * 2016-03-01 2017-09-08 Mediatek Inc. Methods for affine motion compensation
SG11201806865YA (en) * 2016-03-15 2018-09-27 Mediatek Inc Method and apparatus of video coding with affine motion compensation
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US10448010B2 (en) * 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
US10681370B2 (en) * 2016-12-29 2020-06-09 Qualcomm Incorporated Motion vector generation for affine motion model for video coding
US11082721B2 (en) * 2017-09-07 2021-08-03 Lg Electronics Inc. Method and apparatus for entropy-encoding and entropy-decoding video signal
US11877001B2 (en) * 2017-10-10 2024-01-16 Qualcomm Incorporated Affine prediction in video coding
US20190364295A1 (en) * 2018-05-25 2019-11-28 Tencent America LLC Method and apparatus for video coding
US11051025B2 (en) * 2018-07-13 2021-06-29 Tencent America LLC Method and apparatus for video coding
EP4325859A3 (en) * 2018-09-19 2024-05-15 Beijing Bytedance Network Technology Co., Ltd. Syntax reuse for affine mode with adaptive motion vector resolution

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11962807B2 (en) 2019-03-11 2024-04-16 Interdigital Vc Holdings, Inc. Entropy coding for video encoding and decoding

Also Published As

Publication number Publication date
US20230300384A1 (en) 2023-09-21
WO2019050385A3 (ko) 2019-04-25
US11082721B2 (en) 2021-08-03
US20210385505A1 (en) 2021-12-09
US20200221138A1 (en) 2020-07-09
US11700398B2 (en) 2023-07-11

Similar Documents

Publication Publication Date Title
WO2019050385A2 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2018062892A1 (ko) 가중치 인덱스에 기초하여 최적의 예측을 수행하는 방법 및 장치
WO2017065532A1 (ko) 비디오 신호의 인코딩, 디코딩 방법 및 장치
WO2015053594A1 (ko) 인트라 블록 복사 예측을 이용한 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
WO2021040479A1 (ko) 필터링 기반 영상 코딩 장치 및 방법
WO2014007518A1 (ko) 블록크기에 따라 인터 예측의 참조픽처리스트를 결정하는 비디오 부호화 방법과 그 장치, 비디오 복호화 방법과 그 장치
WO2014010943A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2018124333A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2020213946A1 (ko) 변환 인덱스를 이용하는 영상 코딩
WO2021040492A1 (ko) 비디오/영상 코딩 시스템에서 변환 계수 코딩 방법 및 장치
WO2020204413A1 (ko) 복원 픽처를 수정하는 비디오 또는 영상 코딩
WO2020213944A1 (ko) 영상 코딩에서 매트릭스 기반의 인트라 예측을 위한 변환
WO2020171660A1 (ko) 인트라 예측을 위한 비디오 신호의 처리 방법 및 장치
WO2021172912A1 (ko) 사인 데이터 하이딩 관련 영상 디코딩 방법 및 그 장치
WO2020180143A1 (ko) 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩
WO2020213976A1 (ko) Bdpcm을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020171673A1 (ko) 인트라 예측을 위한 비디오 신호의 처리 방법 및 장치
WO2015056941A1 (ko) 다계층 기반의 영상 부호화/복호화 방법 및 장치
WO2014163465A1 (ko) 깊이맵 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
WO2021040487A1 (ko) 영상 코딩 시스템에서 레지듀얼 데이터 코딩에 대한 영상 디코딩 방법 및 그 장치
WO2018034374A1 (ko) 인트라 예측 필터링을 이용하여 비디오 신호를 인코딩, 디코딩하는 방법 및 장치
WO2020017785A1 (ko) 영상 코딩 시스템에서 인트라 예측 관련 정보를 사용하는 영상 디코딩 방법 및 그 장치
WO2021054807A1 (ko) 참조 샘플 필터링을 이용하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021025526A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2021040410A1 (ko) 레지듀얼 코딩에 대한 영상 디코딩 방법 및 그 장치

Legal Events

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

Ref document number: 18853064

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18853064

Country of ref document: EP

Kind code of ref document: A2