KR101428030B1 - Video decoding apparatus using motion vector - Google Patents

Video decoding apparatus using motion vector Download PDF

Info

Publication number
KR101428030B1
KR101428030B1 KR1020120010096A KR20120010096A KR101428030B1 KR 101428030 B1 KR101428030 B1 KR 101428030B1 KR 1020120010096 A KR1020120010096 A KR 1020120010096A KR 20120010096 A KR20120010096 A KR 20120010096A KR 101428030 B1 KR101428030 B1 KR 101428030B1
Authority
KR
South Korea
Prior art keywords
motion vector
motion
block
reference picture
stored
Prior art date
Application number
KR1020120010096A
Other languages
Korean (ko)
Other versions
KR20120088611A (en
Inventor
임성창
김휘용
정세윤
조숙희
전동산
김종호
이하현
이진호
최진수
김진웅
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020110050853A external-priority patent/KR20120088488A/en
Priority claimed from KR1020110065707A external-priority patent/KR20120088494A/en
Priority to PL12742304T priority Critical patent/PL2672708T3/en
Priority to BR112013019495-2A priority patent/BR112013019495B1/en
Priority to BR122014018140-0A priority patent/BR122014018140B1/en
Priority to JP2013551919A priority patent/JP5911890B2/en
Priority to EP12742304.4A priority patent/EP2672708B1/en
Priority to BR122020015411-0A priority patent/BR122020015411B1/en
Priority to BR122020015452-7A priority patent/BR122020015452B1/en
Priority to BR122020015455-1A priority patent/BR122020015455B1/en
Priority to US13/979,214 priority patent/US10244252B2/en
Priority to PCT/KR2012/000770 priority patent/WO2012105807A2/en
Priority to CA3220287A priority patent/CA3220287A1/en
Priority to CA2826157A priority patent/CA2826157C/en
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to CA3050903A priority patent/CA3050903C/en
Priority to RU2013140464/08A priority patent/RU2586017C2/en
Priority to PT127423044T priority patent/PT2672708T/en
Priority to EP21176802.3A priority patent/EP3930332A1/en
Priority to CN201280015709.8A priority patent/CN103583044B/en
Publication of KR20120088611A publication Critical patent/KR20120088611A/en
Publication of KR101428030B1 publication Critical patent/KR101428030B1/en
Application granted granted Critical
Priority to JP2016021985A priority patent/JP6203878B2/en
Priority to JP2017164566A priority patent/JP6550429B2/en
Priority to US16/249,146 priority patent/US10645411B2/en
Priority to JP2019122135A priority patent/JP6783355B2/en
Priority to US16/830,236 priority patent/US20200228822A1/en
Priority to JP2020171894A priority patent/JP7369679B2/en
Priority to US17/538,797 priority patent/US20220086479A1/en
Priority to JP2022186903A priority patent/JP2023018075A/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • 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/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/513Processing of motion vectors

Abstract

본 발명은 움직임 벡터를 이용한 영상의 부호화/복호화 방법 및 장치에 관한 것이다.
본 발명의 일 실시예에 따르면 영상 복호화 방법이 제공된다. 영상 복호화 방법은 참조 픽쳐의 움직임 벡터를 소정의 다이내믹 레인지로 절삭하여 절삭된 움직임 벡터를 생성하는 단계, 절삭된 움직임 벡터를 버퍼에 저장하는 단계 및 버퍼에 저장된 움직임 벡터를 이용하여 복호화 대상 블록의 움직임 벡터를 도출하는 단계 및 복호화 대상 블록의 움직임 벡터를 이용하여 인터 예측 복호화를 수행하는 단계를 포함한다.
본 발명에 따르면 움직임 벡터를 저장하는데 필요한 메모리 공간의 크기를 감소시킬 수 있다.
The present invention relates to a method and apparatus for encoding / decoding an image using a motion vector.
According to an embodiment of the present invention, a video decoding method is provided. The video decoding method includes generating a cut motion vector by cutting a motion vector of a reference picture into a predetermined dynamic range, storing the cut motion vector in a buffer, and calculating a motion of a block to be decoded And performing inter-prediction decoding using the motion vector of the current block and the motion vector of the current block.
According to the present invention, it is possible to reduce the size of the memory space required to store the motion vector.

Description

움직임 벡터를 이용한 영상 복호화 장치{VIDEO DECODING APPARATUS USING MOTION VECTOR}TECHNICAL FIELD [0001] The present invention relates to a video decoding apparatus using a motion vector,

본 발명은 영상 처리에 관한 것으로, 더욱 상세하게는 움직임 벡터를 이용한 부호화/복호화 방법 및 장치에 관한 것이다.
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to image processing, and more particularly, to a coding and decoding method and apparatus using a motion vector.

최근 HD(High Definition) 해상도를 지원하는 방송 시스템이 국내뿐만 아니라 세계적으로 확대되면서, 많은 사용자가 고해상도, 고화질의 영상에 익숙해지고 있으며, 이에 따라 많은 기관들이 차세대 영상기기에 대한 개발에 박차를 가하고 있다. 또한, HDTV와 더불어 HDTV의 4배 이상의 해상도를 지원하는 UHD(Ultra High Definition)에 대한 관심이 증대되면서, 더욱 높은 해상도, 고화질의 영상에 대한 압축 기술이 요구되고 있다.Recently, as broadcasting system supporting HD (High Definition) resolution has been expanded not only in domestic but also in the world, many users are accustomed to high resolution and high image quality, and accordingly, many organizations are spurring development for next generation video equipment . In addition, with the increasing interest in UHD (Ultra High Definition) that supports more than four times the resolution of HDTV in addition to HDTV, compression technology for higher resolution and higher image quality is required.

영상의 압축을 위해, 선행하는 픽쳐 및/또는 뒤에 나오는 픽쳐로부터 현재 픽쳐에 포함된 픽셀 값을 예측하는 인터(inter) 예측 기술, 픽쳐 내의 픽셀 정보를 이용하여 픽셀 값을 예측하는 인트라(intra) 예측 기술 및/또는 출현 빈도가 높은 심볼(symbol)에 짧은 부호를 할당하고 출현 빈도가 낮은 심볼에 긴 부호를 할당하는 엔트로피 부호화 기술 등이 사용될 수 있다.
An inter prediction technique for predicting a pixel value included in the current picture from a preceding picture and / or a succeeding picture for compression of an image, an intra prediction method for predicting a pixel value using pixel information in a picture, An entropy coding technique may be used in which a short code is assigned to a symbol having a high frequency of occurrence and / or appearance frequency, and a long code is assigned to a symbol having a low appearance frequency.

본 발명은 절삭된 움직임 벡터를 이용하여 영상을 부호화/복호화하는 방법 및 장치를 제공한다.The present invention provides a method and apparatus for encoding / decoding an image using a cut motion vector.

본 발명은 참조 픽쳐의 움직임 벡터를 절삭하는 방법을 제공한다.The present invention provides a method of cutting a motion vector of a reference picture.

본 발명은 움직임 벡터에 대한 정보를 전송하는 방법을 제공한다.
The present invention provides a method for transmitting information on motion vectors.

본 발명의 일 실시예에 따르는 영상 복호화 장치는 참조 픽쳐를 저장하는 참조 픽쳐 버퍼, 및 상기 참조 픽쳐 및 상기 참조 픽쳐의 움직임 벡터를 이용하여 예측 블록을 생성하는 움직임 보상부를 포함하되, 상기 참조 픽쳐의 움직임 벡터는 소정의 레인지로 절삭될 수 있다.
상기 참조 픽쳐의 움직임 벡터는 크기 조정(스케일링) 된 후 상기 레인지로 절삭될 수 있다.
상기 움직임 벡터는 기설정된 고정값 범위로 절삭될 수 있다.
상기 참조 픽쳐의 움직임 벡터는 기설정된 블록 단위로 저장되고, 상기 움직임 보상부는 상기 기설정된 블록 단위로 저장된 상기 참조 픽쳐의움직임 벡터를 이용하여 상기 예측 블록을 생성할 수 있다.
상기 움직임 벡터의 x 성분과 y 성분은 서로 동일한 고정값 범위로 절삭될 수 있다.
상기 움직임 벡터는 인터 예측 모드로 복호화된 블록의 움직임 벡터일 수 있다.
An apparatus for decoding an image according to an embodiment of the present invention includes a reference picture buffer for storing a reference picture and a motion compensation unit for generating a prediction block using a motion vector of the reference picture and the reference picture, The motion vector can be cut to a predetermined range.
The motion vector of the reference picture may be resized (scaled) and then cut into the range.
The motion vector may be cut into a predetermined fixed value range.
The motion vector of the reference picture is stored in a predetermined block unit, and the motion compensation unit may generate the prediction block using the motion vector of the reference picture stored in the preset block unit.
The x component and the y component of the motion vector can be cut into the same fixed value range.
The motion vector may be a motion vector of a block decoded in the inter prediction mode.

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

본 발명에 따르면 절삭된 움직임 벡터를 이용하여 영상을 부호화/복호화할 수 있다.According to the present invention, an image can be encoded / decoded using a cut motion vector.

본 발명에 따르면 움직임 벡터를 저장하는데 필요한 메모리 공간의 크기를 감소시킬 수 있다.According to the present invention, it is possible to reduce the size of the memory space required to store the motion vector.

본 발명에 따르면 메모리로부터 데이터를 가져오는데 요구되는 메모리 접근 대역폭을 감소시킬 수 있다.
The present invention can reduce the memory access bandwidth required to fetch data from the memory.

도 1은 영상 부호화 장치의 구조의 일 예를 나타내는 블록도이다.
도 2는 영상 복호화 장치의 구조의 일 예를 나타내는 블록도이다.
도 3은 부호화/복호화 대상 픽쳐와 참조 픽쳐의 일 예를 나타낸다.
도 4는 움직임 벡터의 다이내믹 레인지를 제한하는 일 예이다.
도 5 내지 도 8은 참조 픽쳐의 움직임 벡터를 저장하는 방법을 나타낸 순서도이다.
도 9는 움직임 벡터를 양자화하는 일 예이다.
도 10 내지 도 13은 참조 픽쳐로부터 움직임 정보를 가져오는 예들을 나타낸다.
도 14는 본 발명의 일 실시예에 따른 영상의 부호화 방법을 나타낸 순서도이다.
도 15는 본 발명의 일 실시예에 따른 영상의 복호화 방법을 나타낸 순서도이다.
1 is a block diagram showing an example of the structure of an image encoding apparatus.
2 is a block diagram showing an example of a structure of an image decoding apparatus.
3 shows an example of a picture to be coded / decoded and a reference picture.
4 is an example of limiting the dynamic range of a motion vector.
5 to 8 are flowcharts showing a method of storing a motion vector of a reference picture.
9 is an example of quantizing a motion vector.
FIGS. 10 to 13 show examples of fetching motion information from a reference picture.
14 is a flowchart illustrating a method of encoding an image according to an embodiment of the present invention.
15 is a flowchart illustrating a method of decoding an image according to an embodiment of the present invention.

이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명하기로 한다. 단, 본 발명의 실시예를 설명함에 있어서, 공지의 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In the following description of the embodiments of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

어떤 구성 요소가 다른 구성 요소에 "연결되어" 있거나 "접속되어" 있다고 서술되어 있는 경우, 다른 구성 요소에 직접 연결되어 있거나 접속되어 있을 수 있으나, 또 다른 구성요소가 중간에 존재할 수도 있음을 의미한다. 또한, 본 발명에서 특정 구성 요소를 "포함"한다고 서술되어 있는 경우, 해당 구성 요소 이외의 구성 요소를 배제하는 것이 아니라, 추가적인 구성 요소가 본 발명의 실시예 또는 기술적 사상의 범위에 포함될 수 있음을 의미한다.When an element is described as being "connected" or "connected" to another element, it means that it may be directly connected or connected to another element, but another element may be in the middle . In addition, when describing a specific element as " comprising "in the present invention, it is to be understood that additional elements may be included within the scope of the embodiments or technical ideas of the present invention, it means.

"제 1", "제 2" 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되지 않는다. 즉, 상기 용어 들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고, 마찬가지로 제 2 구성요소도 제 1 구성 요소로 명명될 수 있다.The terms "first "," second ", and the like can be used to describe various elements, but the elements are not limited by these terms. That is, the terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and likewise, the second component may also be referred to as a first component.

또한, 본 발명의 실시예에 나타나는 구성 요소는 서로 다른 특징적인 기능을 수행하는 것을 나타내기 위해 독립적으로 도시될 뿐, 각 구성 요소가 하나의 하드웨어 또는 소프트웨어로 구현될 수 없음을 의미하는 것은 아니다. 즉, 각 구성 요소는 설명의 편의상 구분된 것으로, 복수의 구성 요소가 합쳐져 하나의 구성 요소로 동작하거나, 하나의 구성 요소가 복수의 구성 요소로 나뉘어져 동작할 수 있고, 이는 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위로 포함된다.In addition, the elements shown in the embodiments of the present invention are shown separately to indicate that they perform different characteristic functions, but it does not mean that each element can not be implemented as one hardware or software. That is, each component is divided for the convenience of description, and a plurality of components may be combined to operate as one component, or one component may be divided into a plurality of components to operate, The present invention is not limited thereto.

또한, 일부 구성 요소는 본 발명의 본질적인 기능을 수행하는 필수 구성 요소가 아닌 성능의 향상을 위한 선택적 구성 요소일 수 있다. 본 발명은 선택적 구성 요소를 제외하고 필수 구성 요소만을 포함한 구조로도 구현될 수 있으며, 필수 구성 요소만을 포함한 구조 역시 본 발명의 권리 범위에 포함된다.In addition, some of the components may be optional components for enhancing performance, not essential components that perform the essential function of the present invention. The present invention can be implemented in a structure including only essential components except for optional components, and a structure including only essential components is also included in the scope of the present invention.

도 1은 영상 부호화 장치의 구조의 일 예를 나타내는 블록도이다.1 is a block diagram showing an example of the structure of an image encoding apparatus.

도 1을 참조하면, 영상 부호화 장치(100)는 움직임 예측부(111), 움직임 보상부(112), 인트라 예측부(120), 스위치(115), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 참조 픽쳐 버퍼(190)를 포함한다.1, the image encoding apparatus 100 includes a motion prediction unit 111, a motion compensation unit 112, an intra prediction unit 120, a switch 115, a subtractor 125, a transform unit 130, A quantization unit 140, an entropy encoding unit 150, an inverse quantization unit 160, an inverse transformation unit 170, an adder 175, a filter unit 180, and a reference picture buffer 190.

영상 부호화 장치(100)는 입력 영상을 인트라 예측 모드(intra prediction mode) 또는 인터 예측 모드(inter prediction mode)로 부호화하여 비트스트림(bitstream)을 출력한다. 인트라 예측은 화면 내 예측, 인터 예측은 화면 간 예측을 의미한다. 영상 부호화 장치(100)는 스위치(115)의 전환을 통해 인트라 예측 모드와 인터 예측 모드 사이를 천이한다. 영상 부호화 장치(100)는 입력 영상의 입력 블록에 대한 예측 블록을 생성한 후, 입력 블록과 예측 블록의 차분(residual)을 부호화한다.The image encoding apparatus 100 encodes an input image in an intra prediction mode or an inter prediction mode to output a bitstream. Intra prediction is intra prediction, and inter prediction is inter prediction. The image encoding apparatus 100 transitions between the intra prediction mode and the inter prediction mode through the switch 115. [ The image encoding apparatus 100 generates a prediction block for an input block of the input image, and then encodes a residual between the input block and the prediction block.

인트라 예측 모드의 경우, 인트라 예측부(120)는 현재 블록 주변의 이미 부호화된 블록의 픽셀 값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성한다.In the intra-prediction mode, the intra-prediction unit 120 performs spatial prediction using the pixel values of the already-coded blocks around the current block to generate a prediction block.

인터 예측 모드의 경우, 움직임 예측부(111)는 움직임 예측 과정에서 참조 픽쳐 버퍼(190)에 저장되어 있는 참조 픽쳐 내에서 입력 블록과 가장 매칭이 잘 되는 참조 블록을 찾아 움직임 벡터를 구한다. 움직임 보상부(112)는 상기 움직임 벡터를 이용하여 움직임 보상을 수행하여 예측 블록을 생성한다. 여기서, 움직임 벡터는 인터 예측에 사용되는 2차원 벡터이며, 현재 부호화/복호화의 대상 블록과 참조 블록 사이의 오프셋을 나타낸다.In the inter prediction mode, the motion predicting unit 111 finds a motion vector in a reference picture stored in the reference picture buffer 190 by searching for a reference block that best matches the input block. The motion compensation unit 112 performs motion compensation using the motion vector to generate a prediction block. Here, the motion vector is a two-dimensional vector used for inter prediction, and represents an offset between the current block of the encoding / decoding and the reference block.

감산기(125)는 입력 블록과 예측 블록의 차분에 기반하여 차분 블록(residual block)을 생성하고, 변환부(130)는 상기 차분 블록을 변환(transform)하여 변환 계수(transform coefficient)를 출력한다. 양자화부(140)는 상기 변환 계수를 양자화하여 양자화된 계수(quantized coefficient)를 출력한다.The subtractor 125 generates a residual block based on the difference between the input block and the prediction block, and the transforming unit 130 transforms the differential block to output a transform coefficient. The quantization unit 140 quantizes the transform coefficients and outputs a quantized coefficient.

엔트로피 부호화부(150)는 부호화/양자화 과정에서 획득한 정보에 기반한 엔트로피 부호화를 수행하여 비트스트림을 출력한다. 엔트로피 부호화는 빈번하게 발생되는 심볼(symbol)을 적은 수의 비트로 표현함으로써 부호화의 대상 심볼에 대한 비트열의 크기를 감소시킨다. 따라서, 엔트로피 부호화를 통해 영상의 압축 성능의 향상을 기대할 수 있다. 엔트로피 부호화부(150)는 엔트로피 부호화를 위해 지수 골룸(exponential golomb), CAVLC(Context-Adaptive Variable Length Coding, CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 부호화 방법을 사용할 수 있다.The entropy encoding unit 150 performs entropy encoding based on the information obtained in the encoding / quantization process to output a bitstream. Entropy encoding reduces the size of a bit stream for a symbol to be encoded by representing a frequently generated symbol in a small number of bits. Therefore, the compression performance of the image can be expected to be improved through entropy encoding. The entropy encoding unit 150 may use an encoding method such as exponential golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC) for entropy encoding.

인터 예측 부호화를 수행하기 위한 참조 픽쳐로 사용되기 위해 부호화된 픽쳐는 다시 복호화되어 저장될 필요가 있다. 따라서, 역양자화부(160)는 양자화된 계수를 역양자화하고, 역변화부(170)는 역양자화된 계수를 역변환(inverse transform)하여 복원된 차분 블록을 출력한다. 가산기(175)는 예측 블록에 복원된 차분 블록을 더하여 복원 블록을 생성한다.A picture encoded for use as a reference picture for performing inter prediction coding needs to be decoded and stored again. Accordingly, the dequantizer 160 dequantizes the quantized coefficients, and the dequantizer 170 performs an inverse transform on the dequantized coefficients to output a recovered differential block. The adder 175 adds the reconstructed difference block to the prediction block to generate a reconstructed block.

필터부(180)는 적응적 인-루프(in-loop) 필터로도 불리며, 복원 블록에 디블록킹 필터링(deblocking filtering), SAO(Sample Adaptive Offset) 보상, ALF(Adaptive Loop Filtering) 중 적어도 하나 이상을 적용한다. 디블록킹 필터링은 블록 간 경계에 생긴 블록 왜곡을 제거하는 것을 의미하고, SAO 보상은 코딩 에러를 보상하기 위해 픽셀 값에 적정 오프셋(offset)을 더해주는 것을 의미한다. 또한, ALF는 복원된 영상과 원래의 영상을 비교한 값에 기반하여 필터링을 수행하는 것을 의미한다.The filter unit 180 is also referred to as an adaptive in-loop filter. At least one of deblocking filtering, SAO (Sample Adaptive Offset) compensation, and ALF (Adaptive Loop Filtering) Is applied. Deblocking filtering means eliminating block distortion occurring at the block boundary, and SAO compensation means adding a proper offset to pixel values to compensate for coding errors. Also, ALF means performing filtering based on a value obtained by comparing a reconstructed image with an original image.

한편, 참조 픽쳐 버퍼(190)는 필터부(180)를 거친 복원 블록을 저장한다.On the other hand, the reference picture buffer 190 stores a restoration block that has passed through the filter unit 180. [

도 2는 영상 복호화 장치의 구조의 일 예를 나타내는 블록도이다.2 is a block diagram showing an example of a structure of an image decoding apparatus.

도 2를 참조하면, 영상 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 움직임 보상부(250), 가산기(255), 필터부(260) 및 참조 픽쳐 버퍼(270)를 포함한다.2, the image decoding apparatus 200 includes an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an intra prediction unit 240, a motion compensation unit 250, an adder 255 A filter unit 260, and a reference picture buffer 270.

영상 복호화 장치(200)는 비트스트림을 인트라 예측 모드 또는 인터 예측 모드로 복호화하여 복원 영상을 출력한다. 영상 복호화 장치(200)는 스위치의 전환을 통해 인트라 예측 모드와 인터 예측 모드 사이를 천이한다. 영상 복호화 장치(200)는 비트스트림으로부터 차분 블록을 획득하여 예측 블록을 생성한 후, 차분 블록과 예측 블록을 더하여 복원 블록을 생성한다.The video decoding apparatus 200 decodes a bitstream into an intra-prediction mode or an inter-prediction mode and outputs a reconstructed image. The video decoding apparatus 200 transitions between the intra prediction mode and the inter prediction mode through switching of the switches. The video decoding apparatus 200 generates a prediction block by acquiring a difference block from a bitstream, and then adds the difference block and the prediction block to generate a reconstruction block.

엔트로피 복호화부(210)는 확률 분포에 기반한 엔트로피 복호화를 수행한다. 엔트로피 복호화 과정은 상술한 엔트로피 부호화 과정의 반대과정이다. 즉, 엔트로피 복호화부(210)는 빈번하게 발생되는 심볼을 적은 수의 비트로 표현한 비트스트림으로부터 양자화된 계수를 포함하는 심볼을 생성한다.The entropy decoding unit 210 performs entropy decoding based on the probability distribution. The entropy decoding process is the opposite of the above-described entropy encoding process. That is, the entropy decoding unit 210 generates a symbol including a quantized coefficient from a bit stream representing a frequently generated symbol in a small number of bits.

역양자화부(220)는 양자화된 계수를 역양자화하고, 역변환부(230)는 역양자화된 계수를 역변환하여 차분 블록을 생성한다.The inverse quantization unit 220 inversely quantizes the quantized coefficients, and the inverse transformation unit 230 inversely transforms the inversely quantized coefficients to generate a difference block.

인트라 예측 모드의 경우, 인트라 예측부(240)는 현재 블록 주변의 이미 복호화된 블록의 픽셀 값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성한다.In the intra-prediction mode, the intra-prediction unit 240 performs spatial prediction using the pixel values of the already decoded blocks around the current block to generate a prediction block.

인터 예측 모드의 경우, 움직임 보상부(250)는 움직임 벡터 및 참조 픽쳐 버퍼(270)에 저장된 참조 픽쳐를 이용한 움직임 보상을 수행하여 예측 블록을 생성한다.In the inter-prediction mode, the motion compensation unit 250 performs motion compensation using a motion vector and a reference picture stored in the reference picture buffer 270 to generate a prediction block.

가산기(255)는 차분 블록에 예측 블록을 더하고, 필터부(260)는 가산기를 거친 블록에 디블록킹 필터링, SAO 보상, ALF 중 적어도 하나 이상을 적용하여 복원 영상을 출력한다.The adder 255 adds the prediction block to the difference block, and the filter unit 260 applies at least one of deblocking filtering, SAO compensation, and ALF to the block through the adder to output the reconstructed image.

한편, 복원 영상은 참조 픽쳐 버퍼(270)에 저장되어 움직임 보상에 사용될 수 있다.On the other hand, the reconstructed image is stored in the reference picture buffer 270 and can be used for motion compensation.

이하, 블록은 부호화/복호화의 단위를 의미한다. 부호화/복호화 과정에서, 영상은 소정의 크기로 분할되어 부호화/복호화된다. 따라서, 블록은 부호화 유닛(CU: Coding Unit), 예측 유닛(PU: Prediction Unit), 변환 유닛(TU: Transform Unit) 등으로도 불릴 수도 있으며, 하나의 블록은 더 작은 크기의 하위 블록으로 분할될 수도 있다.Hereinafter, a block means a unit of encoding / decoding. In the encoding / decoding process, the image is divided into a predetermined size and then encoded / decoded. Thus, a block may also be referred to as a coding unit (CU), a prediction unit (PU), a transform unit (TU), or the like, and one block may be divided into sub- It is possible.

여기서, 예측 유닛은 예측 및/또는 움직임 보상 수행의 기본 단위를 의미한다. 예측 유닛은 복수의 파티션(partition)으로 분할될 수 있으며, 각각의 파티션은 예측 유닛 파티션(prediction unit partition)으로 불린다. 예측 유닛이 복수의 파티션으로 분할된 경우, 예측 유닛 파티션은 예측 및/또는 움직임 보상 수행의 기본 단위가 될 수 있다. 이하, 본 발명의 실시예에서는 예측 유닛은 예측 유닛 파티션을 의미할 수도 있다.Here, the prediction unit means a basic unit of performing prediction and / or motion compensation. The prediction unit can be divided into a plurality of partitions, each of which is called a prediction unit partition. When the prediction unit is divided into a plurality of partitions, the prediction unit partition may be a basic unit of performing prediction and / or motion compensation. Hereinafter, in the embodiment of the present invention, the prediction unit may mean a prediction unit partition.

한편, HEVC(High Efficiency Video Coding)에서는 향상된 움직임 벡터 예측(AMVP: Advanced Motion Vector Prediction)에 기반한 움직임 벡터 예측(motion vector prediction) 방법을 사용한다.Meanwhile, HEVC (High Efficiency Video Coding) uses a motion vector prediction method based on Advanced Motion Vector Prediction (AMVP).

향상된 움직임 벡터 예측에 기반한 움직임 벡터 예측 방법에서는 부호화/복호화 대상 블록의 주변에 위치하는 복원 블록의 움직임 벡터(MV: Motion Vector)뿐만 아니라, 참조 픽쳐(reference picture) 내에서 부호화/복호화 대상 블록과 동일한 위치 또는 대응되는 위치에 존재하는 블록의 움직임 벡터를 이용할 수 있다. 이때. 참조 픽쳐 내에서 부화화/복호화 대상 블록과 동일한 위치 또는 공간적으로 대응되는 위치에 존재하는 블록을 동등 위치 블록(collocated block), 동등 위치 블록의 움직임 벡터를 동등 위치 움직임 벡터(collocated motion vector) 또는 시간적 움직임 벡터(temporal motion vector)라고 부른다. 그러나, 동동 위치 블록(collocated block)은 참조 픽쳐의 부호화/복호화 대상 블록과 반드시 동일한 위치에 존재하는 블록만이 아니라, 부호화/복호화 대상 블록과 위치가 유사한, 즉 대응되는 위치에 존재하는 블록일 수도 있다.In the motion vector prediction method based on the improved motion vector prediction method, not only the motion vector (MV) of the reconstructed block located around the current block to be encoded / decoded but also the motion vector of the current block to be encoded / decoded in the reference picture A motion vector of a block existing in a position or a corresponding position can be used. At this time. A block located at the same position or position corresponding to the block to be hatched / decoded in the reference picture is referred to as a collocated block, a motion vector of the co-located block is referred to as a collocated motion vector, Called a temporal motion vector. However, the collocated block may be a block existing in the same position as the block to be encoded / decoded, that is, a block existing at the corresponding position, have.

움직임 정보 병합(motion information merge) 방법에서는 움직임 정보를 주변에 위치하는 복원 블록뿐만 아니라 동등 위치 블록으로부터도 유추하여, 부호화/복호화 대상 블록의 움직임 정보로 이용한다. 이때, 움직임 정보는 인터 예측 시에 필요한 참조 픽쳐 인덱스(reference picture index), 움직임 벡터, 단방향(uni-direction) 또는 양방향(bi-direction) 등을 나타내는 인터 예측 모드 정보, 참조 픽쳐 리스트(reference picture list), 인트라 예측 모드로 부호화되었는지 인터 예측 모드로 부호화되었는지에 관한 예측 모드(prediction mode) 정보 중 적어도 하나 이상을 포함하는 정보이다.In the motion information merge method, motion information is inferred not only from neighboring reconstructed blocks but also from equivalent position blocks, and uses the motion information as motion information of a current block to be encoded / decoded. At this time, the motion information includes inter-prediction mode information indicating a reference picture index, a motion vector, a uni-direction or a bi-direction necessary for inter prediction, a reference picture list ), Prediction mode information about whether the image is coded in the intra-prediction mode or the inter-prediction mode, and the like.

부호화/복호화 대상 블록에서 예측된 움직임 벡터(predictied motion vector)는 부호화/복호화 대상 블록과 공간적으로 인접한 주변 블록의 움직임 벡터뿐만 아니라, 부호화/복호화 대상 블록과 시간적으로 인접한 블록인 동등 위치 블록의 움직임 벡터일 수도 있다.The predicted motion vector predicted in the current block to be coded / decoded includes not only motion vectors of neighboring blocks spatially adjacent to the current block to be coded / decoded, but also motion vectors of neighboring blocks that are temporally adjacent to the current block to be coded / Lt; / RTI >

도 3은 부호화/복호화 대상 픽쳐와 참조 픽쳐의 일 예를 나타낸다.3 shows an example of a picture to be coded / decoded and a reference picture.

도 3에서 블록 X는 부호화/복호화 대상 픽쳐(310) 내의 부호화/복호화 대상 블록을 나타내며, 블록 A, 블록 B, 블록 C, 블록 D 및 블록 E는 부호화/복호화 대상 블록의 주변에 위치하는 복원 블록을 나타낸다. 그리고, 참조 픽쳐(320) 내의 블록 T는 부호화/복호화 대상 블록과 대응되는 위치에 존재하는 동등 위치 블록을 나타낸다.In FIG. 3, a block X represents a block to be encoded / decoded in a picture 310 to be encoded / decoded, and blocks A, B, C, D, and E represent reconstruction blocks . The block T in the reference picture 320 indicates an equivalent position block existing at a position corresponding to the block to be encoded / decoded.

부호화/복호화 대상 블록에서 어떠한 움직임 벡터를 예측된 움직임 벡터로 이용한지에 대해서는 움직임 백터 예측기 인덱스(motion vector predictor index)을 통해서 알 수 있다.A motion vector predictor index indicates which motion vector is used as a predicted motion vector in a current block to be coded / decoded.

Figure 112012008280353-pat00001
Figure 112012008280353-pat00001

표 1과 같이, 각각의 참조 픽쳐 리스트에 대한 움직임 벡터 예측기 인덱스(mvp_idx_l0, mvp_idx_l1)가 복호화 장치로 전송되며, 복호화 장치는 부호화 장치가 예측한 움직임 벡터와 동일한 움직임 벡터를 예측된 움직임 벡터로 이용한다.As shown in Table 1, a motion vector predictor index (mvp_idx_l0, mvp_idx_l1) for each reference picture list is transmitted to the decoding apparatus, and the decoding apparatus uses the same motion vector as the predicted motion vector by the encoding apparatus as a predicted motion vector.

부호화/복호화 대상 블록과 공간적으로 인접한 주변 블록의 움직임 벡터를 이용하여 부호화/복호화 대상 블록을 부호화/복호화하는 경우, 상대적으로 작은 크기의 메모리(memory)만으로 움직임 벡터를 저장할 수 있다. 하지만, 시간적 움직임 벡터를 이용하는 경우, 참조 픽쳐의 모든 움직임 벡터를 메모리에 저장해야 하므로, 상대적으로 큰 크기의 메모리가 필요하고, 메모리로부터 데이터를 가져오는데 요구되는 메모리 접근 대역폭(memory access bandwidth)의 크기도 증가하게 된다. 따라서, 휴대수신단말기 등 메모리 공간이 충분하지 않거나, 전력의 소모를 최소화해야하는 응용 환경에서는 시간적 움직임 벡터를 더욱 효율적으로 저장할 필요가 있다.When coding / decoding a current block using a motion vector of a neighboring block spatially adjacent to the current block to be coded / decoded, the motion vector can be stored only in a memory having a relatively small size. However, in the case of using a temporal motion vector, since all the motion vectors of the reference picture are required to be stored in the memory, a relatively large memory is required, and the size of the memory access bandwidth required to fetch data from the memory . Therefore, it is necessary to store temporal motion vectors more efficiently in an application environment in which a memory space such as a portable receiving terminal is insufficient or power consumption is to be minimized.

한편, 움직임 벡터를 메모리에 저장하는 종래의 기술로 움직임 벡터의 공간 해상도(spatial resolution)를 낮추는 방법이 있다. 상기 방법에서는 움직임 벡터를 임의의 비율로 압축하여 메모리에 저장한다. 예를 들어, 4x4 블록 단위로 저장되는 움직임 벡터를 4x4 이상의 블록 단위로 저장하여, 저장되는 움직임 벡터의 개수를 줄인다. 이때, 저장되는 움직임 벡터의 블록 크기를 조정하기 위해, 압축 비율에 대한 정보가 전송된다. 상기 정보는 표 2와 같이 시퀀스 파라미터 셋(SPS: Sequence Parameter Set)을 통해 전송된다.On the other hand, there is a conventional technique of storing a motion vector in a memory to reduce spatial resolution of a motion vector. In the above method, a motion vector is compressed at an arbitrary ratio and stored in a memory. For example, a motion vector stored in units of 4x4 blocks is stored in units of 4x4 or more blocks, and the number of stored motion vectors is reduced. At this time, information on the compression ratio is transmitted in order to adjust the block size of the stored motion vector. The information is transmitted through a Sequence Parameter Set (SPS) as shown in Table 2.

Figure 112012008280353-pat00002
Figure 112012008280353-pat00002

표 2를 참조하면, motion_vector_buffer_comp_flag가 1일 경우, 움직임 벡터 버퍼 압축 과정이 수행된다.Referring to Table 2, when motion_vector_buffer_comp_flag is 1, a motion vector buffer compression process is performed.

motion_vector_buffer_comp_ratio_log2는 움직임 벡터 버퍼 압축 과정의 압축 비율을 나타낸다. motion_vector_buffer_comp_ratio_log2가 존재하지 않을 경우, motion_vector_buffer_comp_ratio_log2는 0으로 유추되며, 움직임 벡터 버퍼 압축 비율을 수학식 1과 같이 표현된다.motion_vector_buffer_comp_ratio_log2 represents the compression ratio of the motion vector buffer compression process. If motion_vector_buffer_comp_ratio_log2 does not exist, motion_vector_buffer_comp_ratio_log2 is deduced to be 0, and the motion vector buffer compression ratio is expressed by Equation (1).

Figure 112012008280353-pat00003
Figure 112012008280353-pat00003

예를 들어, 1920x1080(1080p) 픽쳐의 모든 4x4 블록이 다른 움직임 벡터를 가지고, 2개의 참조 픽쳐 리스트를 사용하며, 각각의 리스트마다 2개의 참조 픽쳐를 사용하는 경우, 아래와 같이, 총 3.21 Mbytes의 메모리 공간이 시간적 움직임 벡터를 저장하기 위해 요구된다.For example, when all the 4x4 blocks of the 1920x1080 (1080p) picture have different motion vectors and two reference picture lists are used and two reference pictures are used for each list, a total of 3.21 Mbytes of memory Space is required to store temporal motion vectors.

1. 하나의 움직임 벡터마다 26 bis의 비트 심도(bit depth)1. A bit depth of 26 bis for each motion vector,

(1) 움직임 벡터의 X 성분의 다이내믹 레인지(dynamic range): -252 내지 +7676(비트 심도: 13 bits)(1) The dynamic range of the X component of the motion vector: -252 to +7676 (bit depth: 13 bits)

(2) 움직임 벡터의 Y 성분의 다이내믹 레인지(dynamic range): -252 내지 +4316(비트 심도: 13 bits)(2) The dynamic range of the Y component of the motion vector: -252 to +4316 (bit depth: 13 bits)

(3) (움직임 벡터의 각각의 성분의 다이내믹 레인지는 해당 픽쳐 내의 첫 번째 예측 유닛을 기준으로 계산되었다.)(3) (the dynamic range of each component of the motion vector is calculated based on the first prediction unit in the corresponding picture).

2. 4x4 블록 단위 모두 다른 움직임 벡터를 가질 경우: 480 x 270 = 129600 블록2. When all 4x4 block units have different motion vectors: 480 x 270 = 129600 blocks

3. 각각의 블록마다 2개의 움직임 벡터를 사용3. Use two motion vectors for each block

4. 참조 픽쳐 리스트의 수: 2개4. Number of reference picture lists: 2

5. 참조 픽쳐 리스트마다 2개의 참조 픽쳐를 사용5. Use two reference pictures per reference picture list

=> 26 bits x 129600 블록 x 2개의 움직임 벡터 x 2개의 참조 픽쳐 리스트 x 2개의 참조 픽쳐 = 26956800 bits = 3.21 Mbytes=> 26 bits x 129600 blocks x 2 motion vectors x 2 reference picture lists x 2 reference pictures = 26956800 bits = 3.21 Mbytes

전술한 움직임 벡터의 공간 해상도를 낮추는 방법에 따르면, 움직임 벡터의 공간적인 상관성을 이용하여 요구되는 메모리 공간의 크기 및 메모리 접근 대역폭을 줄일 수 있다. 그러나, 움직임 벡터의 공간 해상도를 낮추는 상기 방법은 움직임 벡터의 다이내믹 레인지를 제한하지 않았다.According to the method of reducing the spatial resolution of the motion vector described above, it is possible to reduce the size of the required memory space and the memory access bandwidth using the spatial correlation of the motion vector. However, the above method of lowering the spatial resolution of the motion vector does not limit the dynamic range of the motion vector.

만약 메모리 공간의 크기를 1/4로 줄일 경우, 상술한 예에서 요구되는 메모리 공간의 크기는 약 0.8 Mbytes로 줄어들게 된다. 이때, 추가로 움직임 벡터의 다이내믹 레인지를 제한하여, 움직임 벡터를 저장하는데 필요한 비트 심도를 움직임 벡터의 각각의 성분마다 6 bits만을 사용하게 하면, 요구되는 메모리 공간의 크기는 0.37 Mbytes로 더욱 줄일 수 있다.If the size of the memory space is reduced to 1/4, the size of the memory space required in the above example is reduced to about 0.8 Mbytes. At this time, if the dynamic range of the motion vector is additionally restricted and only the bit depth necessary for storing the motion vector is used for each component of the motion vector, the required memory space size can be further reduced to 0.37 Mbytes .

따라서, 본 발명에서는 움직임 벡터를 저장하는데 필요한 메모리 공간의 크기와 메모리로부터 데이터를 가져오는데 요구되는 메모리 접근 대역폭을 감소시키기 위해, 움직임 벡터의 다이내믹 레인지를 제한한다. 다이내믹 레인지가 제한된 참조 픽쳐의 움직임 벡터는 부호화/복호화 대상 블록에서 시간적 움직임 벡터로 이용될 수 있다.Accordingly, in the present invention, the dynamic range of the motion vector is limited in order to reduce the size of the memory space required to store the motion vector and the memory access bandwidth required to fetch data from the memory. A motion vector of a reference picture with a limited dynamic range can be used as a temporal motion vector in a block to be coded / decoded.

이하, 다이내믹 레인지는 0을 기준으로 움직임 벡터의 음의 성분이나 양의 성분이 가질 수 있는 최솟값과 최댓값 사이의 구간을 의미하고, 비트 심도는 움직임 벡터를 저장하는데 필요한 공간의 크기를 나타내는 것으로, 비트 폭(bit width)을 의미할 수도 있다. 또한, 특별한 언급이 없는 한, 움직임 벡터는 참조 픽쳐의 움직임 벡터, 즉 시간적 움직임 벡터를 의미한다.Hereinafter, the dynamic range refers to a period between a minimum value and a minimum value that a negative component or positive component of a motion vector can have based on 0, a bit depth indicates a size of a space required to store a motion vector, May also mean a bit width. Unless otherwise specified, a motion vector means a motion vector of a reference picture, that is, a temporal motion vector.

움직임 벡터의 각각의 성분은 다이내믹 레인지를 벗어나는 경우 해당 다이내믹 레인지의 최솟값 또는 최댓값으로 표현된다. 예를 들어, 움직임 벡터의 X 성분이 312이고, 움직임 벡터의 각각의 성분의 다이내믹 레인지의 최댓값이 256일 경우, 움직임 벡터의 X 성분은 256으로 제한된다.Each component of the motion vector is expressed as a minimum value or a maximum value of the dynamic range when it deviates from the dynamic range. For example, when the X component of the motion vector is 312 and the maximum value of the dynamic range of each component of the motion vector is 256, the X component of the motion vector is limited to 256.

마찬가지로, 움직임 벡터의 각각의 성분의 비트 심도가 16 bits이고, 움직임 벡터가 (-36, 24)인 경우, 상기 움직임 벡터의 각각의 성분의 비트 심도를 6 bits로 제한하면, 움직임 벡터의 각각의 성분은 -32 내지 +31의 다이내믹 레인지를 가지게 되어, 상기 움직임 벡터는 다이내믹 레인지 내인 (-32, 24)로 표현된다.Likewise, when the bit depth of each component of the motion vector is 16 bits and the motion vector is (-36, 24), by limiting the bit depth of each component of the motion vector to 6 bits, Component has a dynamic range of -32 to +31, and the motion vector is expressed by the dynamic range (-32, 24).

또한, 움직임 벡터의 각각의 성분의 비트 심도가 16 bits이고, 움직임 벡터가 (-49, 142)인 경우, 상기 움직임 벡터의 각각의 성분의 비트 심도를 9 bits로 제한하면, 움직임 벡터의 각각의 성분은 -256 내지 +255의 다이내믹 레인지를 가지게 되어, 상기 움직임 벡터는 변화없이 (-49, 142)로 표현된다.When the bit depth of each component of the motion vector is 16 bits and the motion vector is (-49, 142), if the bit depth of each component of the motion vector is limited to 9 bits, The component has a dynamic range of -256 to +255, and the motion vector is expressed without change (-49, 142).

도 4는 움직임 벡터의 다이내믹 레인지를 제한하는 일 예이다.4 is an example of limiting the dynamic range of a motion vector.

도 4를 참조하면, -4096 내지 +4095의 다이내믹 레인지를 가지는 움직임 벡터의 다이내믹 레인지를 -128 내지 +127로 제한하면, 비트 심도를 13 bits에서 8 bits로 감소시킬 수 있다.Referring to FIG. 4, if the dynamic range of a motion vector having a dynamic range of -4096 to +4095 is limited to -128 to +127, the bit depth can be reduced from 13 bits to 8 bits.

시간적 움직임 벡터의 각각의 성분은 N bit(s)의 비트 심도로 저장되기 위해 수학식 2 및 수학식 3과 같이 절삭(clip)된다. 여기서, N은 양의 정수이다.Each component of the temporal motion vector is clipped as shown in equations (2) and (3) to be stored at a bit depth of N bits (s). Here, N is a positive integer.

Figure 112012008280353-pat00004
Figure 112012008280353-pat00004

Figure 112012008280353-pat00005
Figure 112012008280353-pat00005

여기서, MV_X는 움직임 벡터의 X 성분, MV_Y는 움직임 벡터의 Y 성분이고, min(a,b)는 a와 b 중에서 작은 값을 출력하는 연산, max(a,b)는 a와 b 중에서 큰 값을 출력하는 연산이다. clippedMV_X와 clippedMV_Y는 각각 절삭된 시간적 움직임 벡터의 X 성분, Y 성분이며, 메모리에 저장되어 부호화/복호화 대상 블록의 시간적 움직임 벡터로 이용된다.Here, MV_X is an X component of a motion vector, MV_Y is a Y component of a motion vector, min (a, b) is an operation of outputting a smaller value among a and b, max (a, b) . clippedMV_X and clippedMV_Y are X and Y components of the temporal motion vector, respectively, and are stored in the memory and used as temporal motion vectors of the current block to be encoded / decoded.

예를 들어, 표 3과 같이 메모리 공간의 크기가 48 byte이고, 움직임 벡터의 각각의 성분마다 16 bits의 비트 심도를 사용하는 경우, 총 12개의 움직임 벡터를 저장할 수 있다.For example, if the size of the memory space is 48 bytes as shown in Table 3, and a bit depth of 16 bits is used for each component of the motion vector, a total of 12 motion vectors can be stored.

MV1-XMV1-X MV1-YMV1-Y MV2-XMV2-X MV2-YMV2-Y MV3-XMV3-X MV3-YMV3-Y MV4-XMV4-X MV4-YMV4-Y MV5-XMV5-X MV5-YMV5-Y MV6-XMV6-X MV6-YMV6-Y MV7-XMV7-X MV7-YMV7-Y MV8-XMV8-X MV8-YMV8-Y MV9-XMV9-X MV9-YMV9-Y MV10-XMV10-X MV10-YMV10-Y MV11-XMV11-X MV11-YMV11-Y MV12-XMV12-X MV12-YMV12-Y

그러나, 움직임 벡터의 각각의 성분마다 8 bits의 비트 심도만을 사용한다면, 표 4와 같이 총 24개의 움직임 벡터를 저장할 수 있다.However, if only the bit depth of 8 bits is used for each component of the motion vector, a total of 24 motion vectors can be stored as shown in Table 4.

MV1-XMV1-X MV1-YMV1-Y MV2-XMV2-X MV2-YMV2-Y MV3-XMV3-X MV3-YMV3-Y MV4-XMV4-X MV4-YMV4-Y MV5-XMV5-X MV5-YMV5-Y MV6-XMV6-X MV6-YMV6-Y MV7-XMV7-X MV7-YMV7-Y MV8-XMV8-X MV8-YMV8-Y MV9-XMV9-X MV9-YMV9-Y MV10-XMV10-X MV10-YMV10-Y MV11-XMV11-X MV11-YMV11-Y MV12-XMV12-X MV12-YMV12-Y MV13-XMV13-X MV13-YMV13-Y MV14-XMV14-X MV14-YMV14-Y MV15-XMV15-X MV15-YMV15-Y MV16-XMV16-X MV16-YMV16-Y MV17-XMV17-X MV17-YMV17-Y MV18-XMV18-X MV18-YMV18-Y MV19-XMV19-X MV19-YMV19-Y MV20-XMV20-X MV20-YMV20-Y MV21-XMV21-X MV21-YMV21-Y MV22-XMV22-X MV22-YMV22-Y MV23-XMV23-X MV23-YMV23-Y MV24-XMV24-X MV24-YMV24-Y

따라서, 본 발명에 따르면, 부호화 장치 및/또는 복호화 장치에서 복원된 영상이 디블록킹 필터(deblocking filter), 적응적 루프 필터(adpative loop filter) 등의 인-루프 필터링(in-loop filtering) 과정을 거쳐 복원된 영상 버퍼(DPB: decoded picture buffer)에 저장될 때, 움직임 벡터의 다이내믹 레인지를 제한하여 참조 픽쳐의 움직임 벡터를 저장한다. 여기서, 복원된 영상 버퍼는 도 1 또는 도 2의 참조 픽쳐 버퍼를 의미할 수 있다.Therefore, according to the present invention, an in-loop filtering process such as a deblocking filter or an ad-hoc loop filter can be performed on a video reconstructed by an encoding device and / or a decoding device A motion vector of a reference picture is stored by restricting a dynamic range of a motion vector when the motion vector is stored in a reconstructed picture buffer (DPB). Here, the reconstructed image buffer may mean the reference picture buffer of FIG. 1 or FIG.

I. 움직임 벡터 절삭 과정I. Motion vector cutting process

움직임 벡터의 각각의 성분을 절삭하는 과정은 슬라이스 타입(slice_type)이 I 픽쳐가 아닌 경우 수행된다. 움직임 벡터 절삭 과정은 필터링 과정을 마친 뒤, 트리블록(treeblock) 또는 최대 크기 부호화 유닛(LCU: Largest Coding Unit) 단위로 수행된다.The process of cutting each component of the motion vector is performed when the slice type (slice_type) is not an I picture. The motion vector cutting process is performed in units of a tree block or a maximum size coding unit (LCU) after the filtering process.

움직임 벡터 절삭 과정의 입력은 현재 픽쳐에서의 예측 유닛의 좌상단 픽셀 위치인 (xP, yP)와 움직임 벡터 행렬 MvL0 및 MvL1이고, 출력은 절삭된 움직임 벡터 행렬 CMvL0 및 CMvL1이다.The input of the motion vector cutting process is (xP, yP), which is the upper left pixel position of the prediction unit in the current picture, and the motion vector matrices MvL0 and MvL1, and the output is the cut motion vector matrices CMvL0 and CMvL1.

행렬 MvL0, MvL1, CMvL0 및 CMvL1에 대해서 수학식 4 내지 수학식 7의 연산이 수행된다.The operations of equations (4) to (7) are performed on the matrices MvL0, MvL1, CMvL0 and CMvL1.

Figure 112012008280353-pat00006
Figure 112012008280353-pat00006

Figure 112012008280353-pat00007
Figure 112012008280353-pat00007

Figure 112012008280353-pat00008
Figure 112012008280353-pat00008

Figure 112012008280353-pat00009
Figure 112012008280353-pat00009

여기서, TMVBitWidth는 움직임 벡터의 비트 심도를 나타내며, Clip3(a, b, c)는 c를 a와 b 사이의 범위 내에 존재하도록 절삭하는 함수를 의미한다.Here, TMVBitWidth represents the bit depth of the motion vector, and Clip3 (a, b, c) means a function for cutting c such that it exists within a range between a and b.

II. 움직임 벡터 저장 과정II. Motion vector storage process

도 5 내지 도 8은 참조 픽쳐의 움직임 벡터를 저장하는 방법을 나타낸 순서도이다.5 to 8 are flowcharts showing a method of storing a motion vector of a reference picture.

도 5를 참조하면, 복원된 영상을 저장하는 영상 버퍼와 움직임 벡터를 저장하는 움직임 벡터 버퍼를 함께 이용하여, 참조 픽쳐의 움직임 벡터를 저장할 수 있다. 이때, 복원된 영상은 인-루프 필터링 과정(S510)을 거치고, 움직임 벡터는 다이내믹 레인지가 제한(S520)되어 저장(S540)된다.Referring to FIG. 5, a motion vector of a reference picture may be stored using an image buffer storing a reconstructed image and a motion vector buffer storing a motion vector. At this time, the reconstructed image is subjected to an in-loop filtering process (S510), and the dynamic range of the motion vector is limited (S520) and stored (S540).

또한, 도 6을 참조하면, 영상 버퍼와 움직임 벡터 버퍼를 함께 이용하되, 움직임 벡터는 다이내믹 레인지 제한 과정(S620) 및 공간 해상도 감소 과정(S630)을 거쳐 저장(S640)된다.Referring to FIG. 6, a motion vector is stored (S640) through a dynamic range limitation process (S620) and a spatial resolution reduction process (S630) using an image buffer and a motion vector buffer together.

또한, 도 7을 참조하면, 복원된 영상은 인-루프 필터링 과정(S710)을 거쳐 영상 버퍼에 저장(S740)되고, 움직임 벡터는 다이내믹 레인지가 제한(S720)되어 움직임 벡터 버퍼에 저장(S750)된다.7, the reconstructed image is stored in an image buffer through an in-loop filtering process S710 (S740), the dynamic range of the motion vector is limited (S720) and stored in a motion vector buffer (S750) do.

또한, 도 8을 참조하면, 복원된 영상은 인-루프 필터링 과정(S810)을 거쳐 영상 버퍼에 저장(S840)되고, 움직임 벡터는 다이내믹 레인지 제한 과정(S820) 및 공간 해상도 감소 과정(S830)을 거쳐 저장(S850)된다.8, the reconstructed image is stored in an image buffer through an in-loop filtering process S810, and the motion vector is subjected to a dynamic range limitation process S820 and a spatial resolution reduction process S830 (S850).

한편, 도 6과 도 8의 실시예에서 다이내믹 레인지 제한 과정(S620, S820)과 공간 해상도 감소 과정(S630, S830)은 순서에 한정되지 않고, 변경될 수 있다.6 and 8, the dynamic range limitation process (S620, S820) and the spatial resolution reduction process (S630, S830) are not limited to the order, but may be changed.

또한, 메모리 접근 대역폭을 더욱 감소시키기 위해, 움직임 벡터의 각각의 성분에 대한 다이내믹 레인지를 서로 다르게 제한할 수 있다. 예를 들어, X 성분의 다이내믹 레인지와 Y 성분의 다이내믹 레인지 중 하나만을 제한하거나, Y 성분의 다이내믹 레인지를 X 성분의 다이내믹 레인지보다 더 제한할 수 있다.In addition, to further reduce the memory access bandwidth, the dynamic range for each component of the motion vector may be differently limited. For example, only one of the dynamic range of the X component and the dynamic range of the Y component can be limited, or the dynamic range of the Y component can be limited more than the dynamic range of the X component.

움직임 벡터의 제한된 다이내믹 레인지는 시퀀스 파라미터 셋, 픽쳐 파리마터 셋(PPS: Picture Parameter Set) 또는 슬라이스 헤더(slice header) 등을 통해 전송되며, 복호화 장치는 시퀀스, 픽쳐 또는 슬라이스 내에서 시간적 움직임 벡터의 다이내믹 레인지의 제한을 동일하게 수행한다. 이때, 다이내믹 레인지 범위 내로 표현되는 움직임 벡터를 저장하는데 필요한 메모리 공간의 크기인 비트 심도가 함께 전송될 수 있다. 또한, 고정된 크기의 비트 심도를 이용하여 움직임 벡터를 저장하지 않고, 시퀀스 파리미터, 픽쳐 파라미터 셋 또는 슬레이스 헤더 등을 통해 전송된 다이내믹 레인지를 이용하여, 시간적 움직임 벡터를 영상의 움직임 특성에 맞게 효율적으로 저장할 수도 있다.The limited dynamic range of a motion vector is transmitted via a sequence parameter set, a picture parameter set (PPS) or a slice header, and the decoding apparatus can perform dynamic motion of a temporal motion vector in a sequence, picture or slice The same restriction of the range is performed. At this time, the bit depth, which is the size of the memory space required to store the motion vector expressed in the dynamic range, can be transmitted together. Also, by using a fixed range of bit depths and using a dynamic range transmitted through a sequence parameter, a picture parameter set, or a slice header without storing a motion vector, a temporal motion vector can be efficiently .

한편, 움직임 벡터는 양자화되어 저장될 수 있다. 움직임 벡터가 양자화되어 저장되는 경우, 움직임 벡터의 정밀도는 감소하게 된다. 양자화 방법으로는 스텝 크기(step size)가 균등한 균등 양자화(uniform quantization), 스텝 크기가 균등하지 않은 비균등 양자화(non-uniform quantization) 등이 있다. 양자화의 스텝 크기는 부호화 장치와 복호화 장치에서 미리 약속된 고정된 값으로 설정되거나, 시퀀스 파라미터 셋. 픽쳐 파라미터 셋, 또는 슬라이스 헤더 등을 통해 부호화 장치로부터 복호화 장치로 전송된다. 복호화 장치에서는 양자화된 움직임 벡터를 그대로 이용하거나, 역양자화하여 이용한다. 도 9는 움직임 벡터를 양자화하는 일 예이다. 도 9를 참조하면, 움직임 벡터가 32 내지 48의 성분 값을 갖는 경우, 움직임 벡터는 40으로 양자화된다.On the other hand, the motion vector can be quantized and stored. When the motion vector is quantized and stored, the precision of the motion vector is reduced. The quantization methods include uniform quantization with equal step size, and non-uniform quantization with unequal step size. The step size of the quantization is set to a fixed value preset in the encoding apparatus and the decoding apparatus, or the sequence parameter set. A picture parameter set, a slice header, or the like, from the encoding apparatus to the decoding apparatus. In the decoding apparatus, a quantized motion vector is used as it is or inverse quantized. 9 is an example of quantizing a motion vector. Referring to FIG. 9, if the motion vector has a component value of 32 to 48, the motion vector is quantized to 40.

또한, 움직임 벡터는 표현 해상도가 제한되어 저장될 수 있다. 표현 해상도는 정수 화소 단위(1화소 단위), 분수 화소 단위(1/2화소 단위, 1/4화소 단위 등)를 의미한다. 예를 들어, 1/4화소 단위로 처리되는 움직임 벡터의 해상도를 정수 화소로 저장할 수 있다. 움직임 벡터의 표현 해상도는 부호화 장치와 복호화 장치에서 미리 약속된 고정된 값으로 설정되거나, 시퀀스 파라미터 셋, 픽쳐 파라미터 셋 또는 슬라이스 헤더 등을 통해 부호화 장치로부터 복호화 장치로 전송된다.In addition, the motion vector can be stored with limited display resolution. The rendering resolution means an integer pixel unit (1 pixel unit), a fractional pixel unit (1/2 pixel unit, 1/4 pixel unit, or the like). For example, the resolution of a motion vector processed in units of quarter pixels can be stored as an integer pixel. The representation resolution of the motion vector is set to a fixed value predetermined by the encoding apparatus and the decoding apparatus, or transmitted from the encoding apparatus to the decoding apparatus through a sequence parameter set, a picture parameter set, or a slice header.

또한, 메모리에 저장되는 시간적 움직임 벡터들 중에서 일부의 움직임 벡터들에 대해서만 움직임 벡터의 다이내믹 레인지 제한 과정, 공간 해상도 감소 과정, 양자화 과정을 수행할 수 있다.In addition, the dynamic range limitation process, the spatial resolution reduction process, and the quantization process of the motion vector can be performed only for some motion vectors among the temporal motion vectors stored in the memory.

움직임 벡터의 다이내믹 레인지를 제한하여 저장하는 경우, 움직임 벡터의 다이내믹 레인지에 대한 정보를 추가하여 메모리에 저장할 수 있다. 예를 들어, 움직임 벡터의 다이내믹 레인지를 -128 내지 +127로 하는 경우, 1의 플래그를 추가로 저장하고, -32 내지 +31로 하는 경우, 0의 플래그를 추가로 저장할 수 있다. 이때, 플래그 정보는 움직임 벡터와 함께 저장되거나, 움직임 벡터가 저장되는 메모리가 아닌 다른 메모리에 저장될 수 있다. 플래그 정보와 움직임 벡터가 다른 메모리에 저장되는 경우, 특정 움직임 벡터가 어떤 다이내믹 레인지로 저장되었는지에 대해 알아낼 때 플래그 정보에 임의 접근하게 할 수 있다. 또한, 일부 움직임 벡터가 어떤 다이내믹 레인지로 저장되었는지에 대한 정보를 시퀀스 파라미터 셋, 픽쳐 파라미터 셋 또는 슬라이스 헤더 등을 통해 전송하여, 복호화기에서도 부호화기와 동일하게 동작하게 할 수 있다.When the dynamic range of the motion vector is limited and stored, information on the dynamic range of the motion vector may be added and stored in the memory. For example, when the dynamic range of the motion vector is -128 to +127, a flag of 1 is additionally stored, and when the dynamic range of the motion vector is -32 to +31, a flag of 0 can be additionally stored. At this time, the flag information may be stored together with the motion vector, or may be stored in a memory other than the memory in which the motion vector is stored. When the flag information and the motion vector are stored in different memories, it is possible to arbitrarily access the flag information when finding out what dynamic range the specific motion vector is stored in. In addition, information on which dynamic range a certain motion vector has been stored is transmitted through a sequence parameter set, a picture parameter set, a slice header, or the like, so that the decoder can operate in the same manner as the encoder.

움직임 벡터의 공간 해상도를 감소시켜 저장하는 경우, 움직임 벡터의 블록 크기에 대한 정보를 추가하여 메모리에 저장할 수 있다. 예를 들어, 움직임 벡터의 블록 크기를 4x4로 하는 경우, 1의 플래그를 추가로 저장하고, 16x16로 하는 경우, 0의 플래그를 추가로 저장할 수 있다. 이때, 플래그 정보는 움직임 벡터와 함께 저장되거나, 움직임 벡터가 저장되는 메모리가 아닌 다른 메모리에 저장될 수 있다. 플래그 정보와 움직임 벡터가 다른 메모리에 저장되는 경우, 특정 움직임 벡터가 어떤 블록 크기로 저장되었는지에 대해 알아낼 때 플래그 정보에 임의 접근하게 할 수 있다. 또한, 일부 움직임 벡터가 어떤 블록 크기로 저장되었는지에 대한 정보를 시퀀스 파라미터 셋, 픽쳐 파라미터 셋 또는 슬라이스 헤더 등을 통해 전송하여, 복호화기에서도 부호화기와 동일하게 동작하게 할 수 있다.When the spatial resolution of the motion vector is reduced and stored, information on the block size of the motion vector may be added and stored in the memory. For example, when the block size of the motion vector is 4x4, a flag of 1 is additionally stored, and when the block size is 16x16, a flag of 0 can be additionally stored. At this time, the flag information may be stored together with the motion vector, or may be stored in a memory other than the memory in which the motion vector is stored. When the flag information and the motion vector are stored in different memories, it is possible to arbitrarily access the flag information when finding out what block size the specific motion vector is stored in. In addition, information on the block size of some motion vectors is transmitted through a sequence parameter set, a picture parameter set, a slice header, or the like, so that the decoder can operate in the same manner as the encoder.

움직임 벡터를 양자화하여 저장하는 경우, 움직임 벡터의 정밀도에 대한 정보를 추가하여 메모리에 저장할 수 있다. 예를 들어, 양자화의 스텝 크기를 4로 하는 경우, 1의 플래그를 추가로 저장하고, 양자화의 스텝 크기를 1로 하는 경우, 0의 플래그를 추가로 저장할 수 있다. 이때, 플래그 정보는 움직임 벡터와 함께 저장되거나, 움직임 벡터가 저장되는 메모리가 아닌 다른 메모리에 저장될 수 있다. 플래그 정보와 움직임 벡터가 다른 메모리에 저장되는 경우, 특정 움직임 벡터가 어떤 스텝 크기로 양자화되어 저장되었는지에 대해 알아낼 때 플래그 정보에 임의 접근하게 할 수 있다. 또한, 일부 움직임 벡터가 어떤 스텝 크기로 양자화되어 저장되었는지에 대한 정보를 시퀀스 파라미터 셋, 픽쳐 파라미터 셋 또는 슬라이스 헤더 등을 통해 전송하여, 복호화기에서도 부호화기와 동일하게 동작하게 할 수 있다.When the motion vector is quantized and stored, information on the precision of the motion vector can be added and stored in the memory. For example, when the step size of the quantization is 4, a flag of 1 is additionally stored, and when the step size of the quantization is 1, a flag of 0 can be additionally stored. At this time, the flag information may be stored together with the motion vector, or may be stored in a memory other than the memory in which the motion vector is stored. When the flag information and the motion vector are stored in different memories, it is possible to make random access to the flag information when determining which step size the specific motion vector is quantized and stored. In addition, information on how many motion vectors are quantized and stored in which step size is transmitted through a sequence parameter set, a picture parameter set, a slice header, or the like, so that the decoder can operate in the same manner as the encoder.

또한, 움직임 정보를 메모리에 저장하는 경우, 움직임 벡터의 공간 해상도를 감소시켜 저장할 수 있다. 이때, 움직임 정보는 인터 예측 시에 필요한 참조 픽쳐 인덱스(reference picture index), 움직임 벡터, 단방향(uni-direction) 또는 양방향(bi-direction) 등을 나타내는 인터 예측 모드 정보, 참조 픽쳐 리스트(reference picture list), 인트라 예측 모드로 부호화되었는지 인터 예측 모드로 부호화되었는지에 관한 예측 모드(prediction mode) 정보 중 적어도 하나 이상을 포함하는 정보이다.In addition, when the motion information is stored in the memory, the spatial resolution of the motion vector can be reduced and stored. At this time, the motion information includes inter-prediction mode information indicating a reference picture index, a motion vector, a uni-direction or a bi-direction necessary for inter prediction, a reference picture list ), Prediction mode information about whether the image is coded in the intra-prediction mode or the inter-prediction mode, and the like.

예를 들어, 특정 영역의 다수의 움직임 정보 중에서 파티션의 크기가 가장 큰 예측 유닛의 움직임 정보를 대표 움직임 정보로 메모리에 저장할 수 있다. 이때, 특정 영역은 부호화/복호화 대상 블록 내의 영역과 주변 블록의 영역을 포함할 수 있다. 또한, 특정 영역은 픽쳐 또는 슬라이스 전체가 일정한 크기로 분할되는 경우, 움직임 정보가 저장되는 블록을 포함하는 영역일 수 있다.For example, motion information of a prediction unit having a largest partition size among a plurality of motion information of a specific area can be stored in the memory as representative motion information. At this time, the specific area may include an area in a block to be encoded / decoded and a surrounding block area. Also, the specific area may be an area including a block in which motion information is stored, when the picture or the entire slice is divided into a certain size.

예를 들어, 특정 영역에 포함되는 다수의 움직임 정보 중에 움직임 정보 병합 방법이나, 부호화 정보 생략(skip) 방법 등으로 부호화된 움직임 정보를 제외한 뒤, 대표 움직임 정보를 메모리에 저장할 수 있다.For example, representative motion information may be stored in a memory after excluding motion information encoded by a motion information merging method, a skip method, or the like among a plurality of motion information included in a specific area.

예를 들어, 특정 영역에 포함되는 다수의 움직임 정보 중에 가장 자주 발생하는 움직임 정보를 대표 움직임 정보로 메모리에 저장할 수 있다. 이때, 블록의 크기별로 움직임 정보의 발생 횟수 등을 계산할 수 있다.For example, motion information that occurs most frequently among a plurality of pieces of motion information included in a specific region may be stored in the memory as representative motion information. At this time, it is possible to calculate the number of occurrences of motion information, etc. according to the size of the block.

예를 들어, 특정 영역에 포함되는 다수의 움직임 정보 중에 특정 위치의 움직임 정보를 저장할 수 있다. 이때, 특정 위치는 특정 영역에 포함되는 위치로서, 특정 영역의 고정된 위치일 수 있다. 또한, 특정 위치는 다수 개 중 하나의 위치로 선택될 수 있다. 다수 개의 위치가 상용된다면, 위치별로 우선순위가 결정될 수 있으며, 우선순위에 따라 움직임 정보가 메모리에 저장될 수 있다.For example, motion information of a specific position can be stored in a plurality of pieces of motion information included in a specific area. At this time, the specific position is a position included in the specific region, and may be a fixed position of the specific region. Further, the specific position may be selected as one of the plurality of positions. If a plurality of positions are used, priority can be determined for each position, and motion information can be stored in a memory according to the priority.

예를 들어, 특정 영역에 포함되는 다수의 움직임 정보를 메모리에 저장할 때, 인트라 예측 모드로 부호화된 블록, PCM(Pulse Coded Modulation) 모드로 부호화된 블록, 슬라이스 또는 픽쳐 경계 밖은 움직임 정보가 존재하지 않으므로, 해당 위치의 움직임 정보는 메모리에 저장하지 않을 수 있다.For example, when a plurality of pieces of motion information included in a specific area are stored in a memory, motion information is not present outside a block coded in an intra prediction mode, a block coded in a PCM (Pulse Coded Modulation) mode, a slice or a picture boundary Therefore, the motion information at the corresponding position may not be stored in the memory.

만약 상술한 예들 중에서 특정 위치의 움직임 정보를 저장할 때, 해당 위치의 움직임 정보가 존재하지 않은 경우, 동등 위치 블록의 움직임 정보, 먼저 부호화되는 블록의 움직임 정보 또는 주변 블록의 움직임 정보가 해당 위치의 움직임 정보로 사용될 수 있다. 이때, 특정 위치는 부호화/복호화 대상 블록 내의 주변에 존재하는 블록 내의 하나의 샘플 위치 또는 블록의 위치일 수 있다. 예를 들어, 특정 위치의 움직임 정보가 존재하지 않은 경우, 해당 위치 주변의 인터 예측 부호화된 블록들의 움직임 정보 중 중간값(median) 또는 평균값(average)을 메모리에 저장할 수 있다. 예를 들어, 특정 위치의 움직임 정보가 존재하지 않은 경우, 해당 위치의 주변 블록들의 움직임 정보의 평균값을 메모리에 저장할 수 있다. 중간값 및 평균값을 계산할 때, 주변 블록들의 움직임 정보가 참조 픽쳐 인덱스, 참조 픽쳐 리스트, 인터 예측 모드 정보 중 하나 이상이 다른 경우, 움직임 벡터는 참조 픽쳐 인덱스. 참조 픽쳐 리스트, 인터 예측 모드 정보 및 픽쳐 디스플레이 순서(picture order count) 등에 따라 크기조정될 수 있다.If motion information of a specific position is not stored, motion information of an equal position block, motion information of a block to be encoded first, It can be used as information. At this time, the specific position may be one sample position or block position in a block existing in the vicinity of the block to be encoded / decoded. For example, when there is no motion information at a specific position, a median or an average of motion information of inter-prediction-encoded blocks around the corresponding position may be stored in the memory. For example, when there is no motion information at a specific position, an average value of motion information of neighboring blocks at the corresponding position may be stored in the memory. In calculating the intermediate value and the average value, if at least one of the reference picture index, the reference picture list, and the inter prediction mode information is different in motion information of neighboring blocks, the motion vector is a reference picture index. The reference picture list, the inter prediction mode information, the picture order count, and the like.

III. 움직임 벡터 도출 과정III. Motion vector derivation process

상술한 움직임 정보 방법들을 이용하여 움직임 정보를 메모리에 저장하고, 움직임 벡터 예측 방법, 향상된 움직임 벡터 예측 방법 또는 움직임 정보 병합 방법에서 참조 픽쳐의 움직임 정보를 이용할 경우, 저장된 움직임 정보를 가져올 수 있다.The motion information may be stored in a memory using the motion information methods described above, and the stored motion information may be obtained when the motion information of the reference picture is used in the motion vector prediction method, the enhanced motion vector prediction method, or the motion information merging method.

예를 들어, 참조 픽쳐 내에서 부호화/복호화 대상 블록의 위치와 대응되는 위치의 움직임 정보를 가져올 수 있다. 이때, 참조 픽쳐 내에서 부호화/복호화 대상 블록의 위치와 대응되는 위치는 특정 영역 내의 고정된 위치나 부호화/복호화 대상 블록의 위치로부터 상대적인 위치일 수 있다.For example, motion information at a position corresponding to a position of a block to be encoded / decoded in a reference picture can be obtained. At this time, the position corresponding to the position of the block to be encoded / decoded in the reference picture may be a position relative to the fixed position in the specific area or the position of the block to be encoded / decoded.

도 10 내지 도 13은 참조 픽쳐로부터 움직임 정보를 가져오는 예들을 나타낸다.FIGS. 10 to 13 show examples of fetching motion information from a reference picture.

도 10 내지 도 13에서 블록 X는 부호화/복호화 대상 픽쳐(1010, 1110, 1210, 1310) 내의 부호화/복호화 대상 블록을 나타내며, 블록 A, 블록 B, 블록 C, 블록 D 및 블록 E는 부호화/복호화 대상 블록의 주변에 위치하는 복원 블록을 나타낸다. 그리고, 참조 픽쳐(1020, 1120, 1220, 1320) 내의 블록 T는 부호화/복호화 대상 블록과 대응되는 동등 위치 블록을 나타낸다. 도 13의 참조 픽쳐(1320) 내의 블록 Y는 부호화/복호화 대상 블록 외의 위치와 대응되는 블록을 나타낸다.Blocks A, B, C, D, and E represent blocks to be coded / decoded in the pictures 1010, 1110, 1210, and 1310 to be coded / decoded. Represents a restoration block located in the periphery of the target block. Blocks T in the reference pictures 1020, 1120, 1220, and 1320 indicate equal-position blocks corresponding to the blocks to be encoded / decoded. Block Y in the reference picture 1320 in Fig. 13 represents a block corresponding to a position other than the current block to be coded / decoded.

도 10을 참조하면, 참조 픽쳐 내에서 부호화/복호화 대상 블록 X의 위치 중 좌상단 픽셀 위치와 대응되는 위치에 해당하는 움직임 정보를 가져올 수 있다.Referring to FIG. 10, motion information corresponding to a position corresponding to the upper left pixel position among the positions of the block X to be encoded / decoded in the reference picture may be obtained.

도 11을 참조하면, 참조 픽쳐 내에서 부호화/복호화 대상 블록 X의 위치 중 가운데 픽셀 위치와 대응되는 위치에 해당하는 움직임 정보를 가져올 수 있다.Referring to FIG. 11, motion information corresponding to a position corresponding to a center pixel position among the positions of a block X to be encoded / decoded in a reference picture may be obtained.

도 12를 참조하면, 참조 픽쳐 내에서 부호화/복호화 대상 블록 X의 위치 중 우하단 픽셀 위치와 대응되는 위치에 해당하는 움직임 정보를 가져올 수 있다.Referring to FIG. 12, motion information corresponding to a position corresponding to a lower right pixel position among the positions of a block X to be encoded / decoded in a reference picture may be obtained.

도 13을 참조하면, 참조 픽쳐 내에서 부호화/복호화 대상 블록 X 외의 위치와 대응되는 위치에 해당하는 움직임 정보를 가져올 수 있다.Referring to FIG. 13, motion information corresponding to a position corresponding to a position other than the block X to be encoded / decoded in the reference picture may be obtained.

메모리에 저장된 움직임 정보, 즉 참조 픽쳐의 움직임 정보를 사용하여, 움직임 벡터 예측, 향상된 움직임 벡터 예측, 움직임 정보 병합, 움직임 정보 병합 생략(merge skip) 등의 부호화/복호화 방법을 수행할 수 있다.It is possible to perform a coding / decoding method such as motion vector prediction, enhanced motion vector prediction, motion information merging, and merge skip by using motion information stored in the memory, that is, motion information of a reference picture.

움직임 벡터의 다이내믹 레인지 제한 방법, 움직임 벡터의 공간 해상도 감소 방법, 움직임 벡터의 양자화 방법, 움직임 벡터의 표현 해상도 감소 방법 중 적어도 하나 이상을 사용하여 움직임 벡터를 메모리에 저장하고, 저장된 움직임 벡터를 부호화/복호화 대상 블록의 움직임 벡터 예측 및 움직임 정보 병합에 이용할 수 있다.A method of storing a motion vector in a memory using at least one of a dynamic range limitation method of a motion vector, a spatial resolution reduction method of a motion vector, a motion vector quantization method, and a motion vector representation resolution reduction method, It can be used for prediction of a motion vector of a block to be decoded and for merging motion information.

참조 픽쳐의 움직임 벡터를 메모리로부터 가져오는 과정을 시간적 움직임 벡터의 도출 과정이라고 한다. 시간적 움직임 벡터 도출 과정에서 TMVbitWidth는 메모리에 저장된 시간적 움직임 벡터의 비트 폭을 나타낸다.The process of extracting a motion vector of a reference picture from a memory is called a derivation of a temporal motion vector. In the temporal motion vector derivation process, TMVbitWidth represents the bit width of the temporal motion vector stored in the memory.

시간적 움직임 벡터 도출 과정의 입력은 현재 픽쳐에서의 예측 유닛의 좌상단 픽셀 위치인 (xP, yP), 휘도 예측 유닛의 가로 길이와 세로 길이인 nPSW와 nPSH 및 현재 예측 유닛 파티션의 참조 픽쳐 인덱스인 refIdxLX이고, 출력은 움직임 벡터 예측값 mxLXCl과 존재 여부 플래그인 availableFlagLXCol이다.The input of the temporal motion vector derivation process is (xP, yP) which is the upper left pixel position of the prediction unit in the current picture, nPSW and nPSH which are the horizontal length and vertical length of the luminance prediction unit, and refIdxLX which is the reference picture index of the current prediction unit partition , And the output is the motion vector prediction value mxLXCl and the presence flag availableFlagLXCol.

RefPicOrderCnt(pic, refidx, LX)는 pic의 참조 픽쳐 RefPicListX[refidx]의 PicOrderCnt를 출력하는 함수이다. 여기서 X는 0 또는 1이 될 수 있다. 참조 픽쳐의 PicOrderCnt는 픽쳐가 "존재하지 않음(non-exisiting)"으로 처리될 때까지 존재한다. Clip3(a, b, c)는 c를 a와 b 사이의 범위 내에 존재하도록 절삭하는 함수를 의미한다.RefPicOrderCnt (pic, refidx, LX) is a function for outputting PicOrderCnt of the reference picture RefPicListX [refidx] of pic. Wherein X may be 0 or 1. The PicOrderCnt of the reference picture exists until the picture is processed as " non-exisiting ". Clip3 (a, b, c) means a function for cutting c such that it exists within a range between a and b.

동등 위치 파티션(collocated partition)을 가지고 있는 colPic은 슬라이스 타입(slice_type)이 B-슬라이스이고, collocated_from_l0_flag가 0인 경우, RefPicList1[0]이 된다; 그렇지 않은 경우, 즉 슬라이스 타입이 P-슬라이스이거나, collocated_from_l0_flag가 1인 경우, RefPicList0[0]이 된다.ColPic with a collocated partition is RefPicList1 [0] if the slice type (slice_type) is a B-slice and collocated_from_l0_flag is 0; Otherwise, if the slice type is a P-slice or if collocated_from_l0_flag is 1, then RefPicList0 [0].

colPu와 colPu의 위치인 (xPCol, yPCol)은 다음과 같은 순서로 유도된다.The positions of colPu and colPu (xPCol, yPCol) are derived in the following order.

1. 현재 예측 유닛의 우하단 휘도 성분 위치 (xPRb, yPRb)는 수학식 8 및 수학식 9와 같이 정의된다.1. The lower right luminance component position (xPRb, yPRb) of the current prediction unit is defined by Equation (8) and Equation (9).

Figure 112012008280353-pat00010
Figure 112012008280353-pat00010

Figure 112012008280353-pat00011
Figure 112012008280353-pat00011

2. colPu가 인트라 예측 모드로 부호화되었거나, colPu가 존재하지 않으면,2. If colPu is encoded in intraprediction mode, or colPu is not present,

(1) 현재 예측 유닛의 중앙 휘도 성분 위치 (xPCtr, yPCtr)는 수학식 10 및 수학식 11과 같이 정의된다.(1) The center luminance component position (xPCtr, yPCtr) of the current prediction unit is defined by Equation (10) and Equation (11).

Figure 112012008280353-pat00012
Figure 112012008280353-pat00012

Figure 112012008280353-pat00013
Figure 112012008280353-pat00013

(2) colPu는 colPic에서 ((xPCtr>>4 )<<4, (yPCtr>>4)<<4)의 위치를 포함하는 예측 유닛으로 설정된다.(2) colPu is set to a prediction unit that includes the positions of ((xPCtr >> 4) << 4, (yPCtr >> 4) << 4) in colPic.

3. (xPCol, yPCol)은 colPic의 좌상단 휘도 성분 위치로부터 colPu의 좌상단 휘도 성분 위치의 값이 된다.3. (xPCol, yPCol) is the position of the upper left luminance component of colPu from the upper left luminance component position of colPic.

mvLXCol과 availableFlagLXCol은 다음과 같이 유도된다.mvLXCol and availableFlagLXCol are derived as follows.

1. colPu가 인트라 예측 모드로 부호화되었거나, colPu가 존재하지 않으면, mvLXCol의 각각의 성분은 0, availableFlagLXCol도 0이 된다.1. If colPu is encoded in intraprediction mode, or colPu is not present, then each component of mvLXCol is 0 and availableFlagLXCol is 0.

2. 그렇지 않으면, 즉 colPu가 인트라 예측 모드로 부호화되지 않고, colPu가 존재하면, mvLXCol과 refIdxCol이 다음과 같이 유도된다.2. Otherwise, if colPu is not encoded in intraprediction mode and colPu is present, mvLXCol and refIdxCol are derived as follows:

(1) PredFlagL0[xPCol][yPCol]이 0이면, 움직임 벡터 mvCol은 MvL1[xPCol][yPCol]으로, 참조 픽쳐 인덱스 refIdxCol은 RefIdxL1[xPCol][yPCol]로 결정된다.(1) If PredFlagL0 [xPCol] [yPCol] is 0, the motion vector mvCol is determined as MvL1 [xPCol] [yPCol] and the reference picture index refIdxCol is determined as RefIdxL1 [xPCol] [yPCol].

(2) 그렇지 않으면, 즉 PredFlagL0[xPCol][yPCol]이 1이면, 다음과 같은 과정이 수행된다.(2) Otherwise, that is, if PredFlagL0 [xPCol] [yPCol] is 1, the following process is performed.

1) PredFlagL1[xPCol][yPCol]이 0이면, 움직임 벡터 mvCol은 MvL0[xPCol][yPCol]로, 참조 픽쳐 인덱스 refIdxCol은 RefIdxL0[xPCol][yPCol]로 결정된다.1) If PredFlagL1 [xPCol] [yPCol] is 0, the motion vector mvCol is determined as MvL0 [xPCol] [yPCol] and the reference picture index refIdxCol is determined as RefIdxL0 [xPCol] [yPCol].

2) 그렇지 않으면, 즉 PredFlagL1[xPCol][yPCol]이 1이면, 다음과 같은 과정이 수행된다.2) Otherwise, that is, if PredFlagL1 [xPCol] [yPCol] is 1, the following procedure is performed.

a. X는 0 또는 1이 되며, 다음과 같은 할당 과정이 수행된다.a. X becomes 0 or 1, and the following allocation process is performed.

i. RefIdxColLX은 RefIdxLX[xPCol][yPCol]로 할당된다.i. RefIdxColLX is assigned RefIdxLX [xPCol] [yPCol].

ii. PicOrderCnt(colPic)이 PicOrderCnt(currPic)보다 작고, RefPicOrderCnt(colPic, RefIdxColLX, LX)가 PicOrderCnt(currPic)보다 크거나, 또는 PicOrderCnt(colPic)이 PicOrderCnt(currPic)보다 크고 RefPicOrderCnt(colPic, RefIdxColLX, LX)가 PicOrderCnt(currPic)보다 작으면 MvXCross는 1로 할당된다.ii. If RefPicOrderCnt (colPic, RefIdxColLX, LX) is larger than PicOrderCnt (currPic) or PicOrderCnt (colPic) is larger than PicOrderCnt (currPic) and RefPicOrderCnt If it is smaller than PicOrderCnt (currPic), MvXCross is assigned as 1.

iii. 그렇지 않으면, 즉 PicOrderCnt(colPic)이 PicOrderCnt(currPic)보다 작고, RefPicOrderCnt(colPic, RefIdxColLX, LX)가 PicOrderCnt(currPic)보다 작거나 같거나, 또는 PicOrderCnt(colPic)이 PicOrderCnt(currPic)보다 크고 RefPicOrderCnt(colPic, RefIdxColLX, LX)가 PicOrderCnt(currPic)보다 크거나 같으면, MvXCross는 1로 할당된다.iii. Otherwise, if PicOrderCnt (colPic) is smaller than PicOrderCnt (currPic) and RefPicOrderCnt (colPic, RefIdxColLX, LX) is smaller than or equal to PicOrderCnt (currPic) , RefIdxColLX, LX) is greater than or equal to PicOrderCnt (currPic), then MvXCross is assigned to one.

b. 다음의 조건 중 하나를 만족하는 경우, 움직임 벡터 mvCol, 참조 픽쳐 인덱스 refIdxCol, ListCol은 각각 MvL1[xPCol][yPCol], RefIdxColL1, L1로 결정된다.b. When one of the following conditions is satisfied, the motion vector mvCol and the reference picture indexes refIdxCol and ListCol are determined as MvL1 [xPCol] [yPCol] and RefIdxColL1, L1, respectively.

i. Mv0Cross는 0, Mv1Cross는 1.i. Mv0Cross is 0, and Mv1Cross is 1.

ii. Mv0Cross와 Mv1Cross가 같고, 참조 픽쳐 리스트가 L1.ii. Mv0Cross and Mv1Cross are the same, and the reference picture list is L1.

c. 그렇지 않으면, 움직임 벡터 mvCol, 참조 픽쳐 인덱스 refIdxCol, ListCol은 각각 MvL0[xPCol][yPCol], RefIdxColL0, L0으로 결정된다.c. Otherwise, the motion vector mvCol and the reference picture indexes refIdxCol and ListCol are determined as MvL0 [xPCol] [yPCol], RefIdxColL0, and L0, respectively.

3) availableFlagLXCol은 1이 되며, 수학식 12 또는 수학식 13 내지 수학식 18의 연산이 수행된다.3) availableFlagLXCol is 1, and the operations of Equation (12) or (13) to (18) are performed.

a. PicOrderCnt(colPic)-RefPicOrderCnt(colPic, refIdxCol, ListCol)이 PicOrderCnt(currPic)-RefPicOrderCnt(currPic, refIdxLX, LX)와 같은 경우,a. If PicOrderCnt (colPic) -RefPicOrderCnt (colPic, refIdxCol, ListCol) is the same as PicOrderCnt (currPic) -RefPicOrderCnt (currPic, refIdxLX, LX)

Figure 112012008280353-pat00014
Figure 112012008280353-pat00014

b. 그렇지 않은 경우,b. Otherwise,

Figure 112012008280353-pat00015
Figure 112012008280353-pat00015

Figure 112012008280353-pat00016
Figure 112012008280353-pat00016

Figure 112012008280353-pat00017
Figure 112012008280353-pat00017

Figure 112012008280353-pat00018
Figure 112012008280353-pat00018

여기서, td와 tb는 수학식 17 및 수학식 18과 같다.Here, td and tb are expressed by the following equations (17) and (18).

Figure 112012008280353-pat00019
Figure 112012008280353-pat00019

Figure 112012008280353-pat00020
Figure 112012008280353-pat00020

즉, 수학식 13 내지 수학식 16을 참조하면, mvLXCol은 움직임 벡터 mvCol의 크기조정 값(scaled version)으로 유도된다.That is, referring to equations (13) to (16), mvLXCol is derived as a scaled version of the motion vector mvCol.

한편, 움직임 벡터가 다이내믹 레인지로 절삭되어도, 절삭된 움직임 벡터가 크기조정(scaling)되는 경우, 다시 다이내믹 레인지를 벗어날 수 있다. 따라서, 크기조정된 움직임 벡터를 도출한 후, 상기 움직임 벡터의 다이내믹 레인지를 제한할 수 있다. 이 경우, 수학식 15와 수학식 16은 각각 수학식 19 와 수학식 20으로 대체될 수 있다.On the other hand, even if the motion vector is cut into the dynamic range, if the cut motion vector is scaled, the dynamic range can be deviated again. Thus, after deriving the resized motion vector, the dynamic range of the motion vector can be limited. In this case, equations (15) and (16) can be replaced by equations (19) and (20), respectively.

Figure 112012008280353-pat00021
Figure 112012008280353-pat00021

Figure 112012008280353-pat00022
Figure 112012008280353-pat00022

IV. 복호화 장치에서 시간적 움직임 벡터를 절삭하기 위한 정보 전송 방법IV. Information transmission method for cutting a temporal motion vector in a decoding apparatus

이하에서는 복호화 장치에서 시간적 움직임 벡터를 부호화 장치와 동일한 방법으로 절삭하기 위해 필요한 정보를 전송하는 방법을 설명하기로 한다.Hereinafter, a method of transmitting information necessary for cutting a temporal motion vector in the decoding apparatus in the same manner as the encoding apparatus will be described.

상술한 시간적 움직임 벡터 도출 과정에서의 TMVBitWidth는 시퀀스 파라미터 셋, 픽쳐 파라미터 셋 또는 슬라이스 헤더 등을 통해 부호화 장치로부터 복호화 장치로 전송될 수 있다.The TMVBitWidth in the above-described temporal motion vector derivation process can be transmitted from the encoding apparatus to the decoding apparatus through a sequence parameter set, a picture parameter set, or a slice header.

Figure 112012008280353-pat00023
Figure 112012008280353-pat00023

표 5의 bit_width_temporal_motion_vector_minus8은 시간적 움직임 벡터 성분의 비트 폭을 나타낸다. bit_width_temporal_motion_vector_minus8이 존재하지 않을 경우, 0으로 유추되며, 시간적 움직임 벡터 성분의 비트 폭은 수학식 21과 같이 표현된다.Bit_width_temporal_motion_vector_minus8 in Table 5 indicates the bit width of the temporal motion vector component. If bit_width_temporal_motion_vector_minus8 does not exist, it is inferred as 0, and the bit width of the temporal motion vector component is expressed as shown in Equation (21).

Figure 112012008280353-pat00024
Figure 112012008280353-pat00024

1. 정보 전송 방법 1 - 움직임 벡터를 압축하고, 움직임 벡터의 비트 심도를 제한하는 경우1. Information transmission method 1 - When the motion vector is compressed and the bit depth of the motion vector is limited

Figure 112012008280353-pat00025
Figure 112012008280353-pat00025

표 6을 참조하면, motion_vector_buffer_comp_flag가 1일 경우, 움직임 벡터 버퍼 압축 과정이 수행된다.Referring to Table 6, when motion_vector_buffer_comp_flag is 1, a motion vector buffer compression process is performed.

motion_vector_buffer_comp_ratio_log2는 움직임 벡터 버퍼 압축 과정의 압축 비율을 나타낸다. motion_vector_buffer_comp_ratio_log2이 존재하지 않을 경우, 0으로 유추되며, 움직임 벡터 버퍼 압축 비율은 수학식 22와 같이 표현된다.motion_vector_buffer_comp_ratio_log2 represents the compression ratio of the motion vector buffer compression process. If motion_vector_buffer_comp_ratio_log2 does not exist, it is inferred as 0, and the motion vector buffer compression ratio is expressed by Equation (22).

Figure 112012008280353-pat00026
Figure 112012008280353-pat00026

다시 표 6을 참조하면, bit_depth_temporal_motion_vector_constraint_flag가 1일 경우, 시간적 움직임 벡터 비트 심도 제한 과정이 수행된다.Referring back to Table 6, when bit_depth_temporal_motion_vector_constraint_flag is 1, a temporal motion vector bit depth limitation process is performed.

bit_depth_temporal_motion_vector_minus8는 시간적 움직임 벡터의 비트 심도를 나타낸다. bit_depth_temporal_motion_vector_minus8이 존재하지 않을 경우, 0으로 유추되며, 시간적 움직임 벡터의 비트 심도는 수학식 23과 같이 표현된다.bit_depth_temporal_motion_vector_minus8 indicates the bit depth of the temporal motion vector. If bit_depth_temporal_motion_vector_minus8 does not exist, it is inferred as 0, and the bit depth of the temporal motion vector is expressed by Equation (23).

Figure 112012008280353-pat00027
Figure 112012008280353-pat00027

2. 정보 전송 방법 2 - 움직임 벡터의 비트 심도를 제한하는 경우2. Information transmission method 2 - Limiting bit depth of motion vector

Figure 112012008280353-pat00028
Figure 112012008280353-pat00028

표 7을 참조하면, bit_depth_temporal_motion_vector_constraint_flag가 1일 경우, 시간적 움직임 벡터 비트 심도 제한 과정이 수행된다.Referring to Table 7, when the bit_depth_temporal_motion_vector_constraint_flag is 1, a temporal motion vector bit depth limitation process is performed.

bit_depth_temporal_motion_vector_minus8는 시간적 움직임 벡터의 비트 심도를 나타낸다. bit_depth_temporal_motion_vector_minus8이 존재하지 않을 경우, 0으로 유추되며, 시간적 움직임 벡터의 비트 심도는 수학식 24와 같이 표현된다.bit_depth_temporal_motion_vector_minus8 indicates the bit depth of the temporal motion vector. If bit_depth_temporal_motion_vector_minus8 does not exist, it is inferred as 0, and the bit depth of the temporal motion vector is expressed by Equation (24).

Figure 112012008280353-pat00029
Figure 112012008280353-pat00029

3. 정보 전송 방법 3 - 움직임 벡터의 비트 심도를 제한하는 경우3. Information transmission method 3 - Limiting bit depth of motion vector

Figure 112012008280353-pat00030
Figure 112012008280353-pat00030

표 8의 bit_depth_temporal_motion_vector_minus8는 시간적 움직임 벡터의 비트 심도를 나타낸다. bit_depth_temporal_motion_vector_minus8이 존재하지 않을 경우, 0으로 유추되며, 시간적 움직임 벡터의 비트 심도는 수학식 25와 같이 표현된다.Bit_depth_temporal_motion_vector_minus8 in Table 8 indicates the bit depth of the temporal motion vector. If bit_depth_temporal_motion_vector_minus8 is not present, it is inferred as 0, and the bit depth of the temporal motion vector is expressed as:

Figure 112012008280353-pat00031
Figure 112012008280353-pat00031

4. 정보 전송 방법 4 - 움직임 벡터의 X 성분, Y 성분 각각에 대해 비트 심도를 제한하는 경우4. Information transmission method 4 - When the bit depth is limited for each of the X component and Y component of the motion vector

Figure 112012008280353-pat00032
Figure 112012008280353-pat00032

표 9를 참조하면, bit_depth_temporal_motion_vector_constraint_flag가 1일 경우, 시간적 움직임 벡터 비트 심도 제한 과정이 수행된다.Referring to Table 9, when the bit_depth_temporal_motion_vector_constraint_flag is 1, the temporal motion vector bit depth limitation process is performed.

bit_depth_temporal_motion_vector_x_minus8는 시간적 움직임 벡터의 X 성분 비트 심도를 나타낸다. bit_depth_temporal_motion_vector_x_minus8이 존재하지 않을 경우, 0으로 유추되며, 시간적 움직임 벡터의 비트 심도는 수학식 26과 같이 표현된다.bit_depth_temporal_motion_vector_x_minus8 represents the X component bit depth of the temporal motion vector. If bit_depth_temporal_motion_vector_x_minus8 does not exist, it is inferred as 0, and the bit depth of the temporal motion vector is expressed by Equation (26).

Figure 112012008280353-pat00033
Figure 112012008280353-pat00033

bit_depth_temporal_motion_vector_y_minus8는 시간적 움직임 벡터의 Y 성분 비트 심도를 나타낸다. bit_depth_temporal_motion_vector_x_minus8이 존재하지 않을 경우, 0으로 유추되며, 시간적 움직임 벡터의 비트 심도는 수학식 27과 같이 표현된다.bit_depth_temporal_motion_vector_y_minus8 represents the Y component bit depth of the temporal motion vector. If bit_depth_temporal_motion_vector_x_minus8 does not exist, it is deduced to be 0, and the bit depth of the temporal motion vector is expressed by Equation (27).

Figure 112012008280353-pat00034
Figure 112012008280353-pat00034

5. 정보 전송 방법 5 - 움직임 벡터를 압축하고, 움직임 벡터의 비트 심도를 제한하는 경우5. Information transmission method 5 - When the motion vector is compressed and the bit depth of the motion vector is limited

Figure 112012008280353-pat00035
Figure 112012008280353-pat00035

표 10을 참조하면, motion_vector_buffer_comp_flag가 1일 경우, 움직임 벡터 버퍼 압축 과정이 수행된다.Referring to Table 10, when motion_vector_buffer_comp_flag is 1, a motion vector buffer compression process is performed.

motion_vector_buffer_comp_ratio_log2는 움직임 벡터 버퍼 압축 과정의 압축 비율을 나타낸다. motion_vector_buffer_comp_ratio_log2이 존재하지 않을 경우, 0으로 유추되며, 움직임 벡터 버퍼 압축 비율은 수학식 28과 같이 표현된다.motion_vector_buffer_comp_ratio_log2 represents the compression ratio of the motion vector buffer compression process. If motion_vector_buffer_comp_ratio_log2 does not exist, it is deduced to be 0, and the motion vector buffer compression ratio is expressed by Equation (28).

Figure 112012008280353-pat00036
Figure 112012008280353-pat00036

V. 영상 코덱의 레벨을 통한 다이내믹 레인지의 정의V. Definition of dynamic range through video codec level

시간적 움직임 벡터의 다이내믹 레인지는 시퀀스 파라미터 셋, 픽쳐 파라미터 셋 또는 슬라이스 헤더를 통해 전송되지 않고, 영상 코덱의 레벨(level)을 통해 정의될 수 있다. 부호화 장치와 복호화 장치는 레벨 정보를 이용하여 움직임 벡터의 제한된 다이내믹 레인지를 판별할 수 있다.The dynamic range of a temporal motion vector is not transmitted through a sequence parameter set, a picture parameter set, or a slice header, but may be defined through a level of an image codec. The encoding apparatus and the decoding apparatus can discriminate the limited dynamic range of the motion vector using the level information.

또한, 레벨에서도 움직임 벡터의 X 성분과 Y 성분 각각의 다이내믹 레인지 및/또는 비트 심도를 서로 다르게 정의할 수 있으며, 각각의 성분들의 최솟값 및 최댓값을 정의할 수도 있다.Further, the dynamic range and / or bit depth of each of the X component and the Y component of the motion vector may be defined differently from the level, and the minimum value and the maximum value of each component may be defined.

표 11와 표 12는 전술한 시간적 움직임 벡터 도출 과정에서의 TMVBitWidth를 레벨(level)에서 정의하는 경우의 일 예이다.Tables 11 and 12 are examples of a case where the TMVBitWidth in the process of deriving the temporal motion vector is defined at a level.

Figure 112012008280353-pat00037
Figure 112012008280353-pat00037

표 11을 참조하면, TMVBitWidth는 레벨에서 정의된 MaxTMVBitWidth로 설정된다. 이때, MaxTMVBitWidth는 시간적 움직임 벡터가 메모리에 저장될 때 움직임 벡터의 최대 비트 폭을 나타낸다.Referring to Table 11, TMVBitWidth is set to MaxTMVBitWidth defined in the level. At this time, MaxTMVBitWidth represents the maximum bit width of the motion vector when the temporal motion vector is stored in the memory.

한편, TMVBitWidth는 레벨에서 정의하고, 정의된 값과의 차이(delta value)를 시퀀스 파라미터 셋, 픽쳐 파라미터 셋, 또는 슬라이스 헤더를 전송할 수도 있다. 즉, TMVBitWidth는 레벨에서 정의된 MaxTMVBitWidth에 시퀀스 파라미터 셋, 픽쳐 파라미터 셋 또는 슬라이스 헤더에서 전송된 차이를 더한 값으로 설정될 수 있다. 이때, TMVBitWidth는 시간적 움직임 벡터가 메모리에 저장될 때 움직임 벡터의 비트 폭을 나타낸다.On the other hand, TMVBitWidth may be defined at a level, and a sequence parameter set, a picture parameter set, or a slice header may be transmitted as a delta value from a defined value. That is, TMVBitWidth may be set to MaxTMVBitWidth defined in the level plus the difference set in the sequence parameter set, the picture parameter set, or the slice header. At this time, TMVBitWidth represents the bit width of the motion vector when the temporal motion vector is stored in the memory.

Figure 112012008280353-pat00038
Figure 112012008280353-pat00038

Figure 112012008280353-pat00039
Figure 112012008280353-pat00039

표 13의 delta_bit_width_temporal_motion_vector_minus8는 시간적 움직임 벡터 성분의 비트 폭의 차이를 나타낸다. delta_bit_width_temporal_motion_vector_minus8이 존재하지 않을 경우, 0으로 유추되며, 시간적 움직임 벡터 성분의 비트 폭은 수학식 29와 같이 표현된다.Delta_bit_width_temporal_motion_vector_minus8 in Table 13 indicates the difference in bit width of temporal motion vector components. If delta_bit_width_temporal_motion_vector_minus8 does not exist, it is deduced to be 0, and the bit width of the temporal motion vector component is expressed by Equation (29).

Figure 112012008280353-pat00040
Figure 112012008280353-pat00040

또한, 표 14와 같이 레벨에 시간적 움직임 벡터 각각의 성분의 다이내믹 레인지를 정의할 수도 있다.It is also possible to define the dynamic range of each component of the temporal motion vector in the level as shown in Table 14. [

Figure 112012008280353-pat00041
Figure 112012008280353-pat00041

또한, 표 15 내지 표 17과 같이 레벨에 시간적 움직임 벡터 각각의 성분의 비트 폭을 정의할 수도 있다.It is also possible to define the bit width of each component of the temporal motion vector in the level as shown in Tables 15 to 17. [

Figure 112012008280353-pat00042
Figure 112012008280353-pat00042

Figure 112012008280353-pat00043
Figure 112012008280353-pat00043

Figure 112012008280353-pat00044
Figure 112012008280353-pat00044

또한, 표 18과 같이 레벨에 시간적 움직임 벡터 Y 성분의 비트 폭을 정의할 수도 있다. It is also possible to define the bit width of the temporal motion vector Y component in the level as shown in Table 18.

Figure 112012008280353-pat00045
Figure 112012008280353-pat00045

또한, 시간적 움직임 벡터의 다이내믹 레인지는 움직임 벡터의 제한에 대한 정보의 전송 없이 부호화 장치 및 복호화 장치에서 미리 약속한 고정된 값으로 정의되거나, 고정된 비트 심도의 형태로 저장될 수 있다.In addition, the dynamic range of the temporal motion vector may be defined as a fixed value predetermined by the encoding apparatus and the decoding apparatus, or may be stored in the form of a fixed bit depth, without transmitting the information on the motion vector limitation.

TMVBitWidth를 부호화 장치와 복호화 장치에서 동일한 값으로 고정해서 사용하는 경우, TMVBitWidth는 4, 6, 8, 10, 12, 14, 16 등의 양의 정수일 수 있다. 이때, TMVBitWidth는 시간적 움직임 벡터가 메모리에 저장될 때 움직임 벡터의 비트 폭을 나타낸다.TMVBitWidth may be a positive integer such as 4, 6, 8, 10, 12, 14, 16, etc. when TMVBitWidth is fixed to the same value in the encoding apparatus and the decoding apparatus. At this time, TMVBitWidth represents the bit width of the motion vector when the temporal motion vector is stored in the memory.

도 14는 본 발명의 일 실시예에 따른 영상의 부호화 방법을 나타낸 순서도이다. 도 14를 참조하면, 영상 부호화 방법은 절삭 단계(S1410), 저장 단계(S1420) 및 부호화 단계(S1430)를 포함한다.14 is a flowchart illustrating a method of encoding an image according to an embodiment of the present invention. Referring to FIG. 14, the image encoding method includes a cutting step S1410, a storing step S1420, and an encoding step S1430.

영상 부호화 장치 및/또는 복호화 장치는 참조 픽쳐의 움직임 벡터를 소정의 다이내믹 레인지로 절삭한다(S1410). "I. 움직임 벡터 절삭 과정"을 통해 전술한 바와 같이, 다이내믹 레인지를 벗어난 움직임 벡터는 해당 다이내믹 레인지의 최솟값 또는 최댓값으로 표현된다. 따라서, "IV. 복호화 장치에서 시간적 움직임 벡터를 절삭하기 위한 정보 전송 방법"과 "V. 영상 코덱의 레벨을 통한 다이내믹 레인지의 정의"을 통해 전술한 바와 같이, 영상 코덱의 레벨 및/또는 시퀀스 파라미터 셋 등을 통해 비트 심도를 제한하거나, 영상 코덱의 레벨을 통해 다이내믹 레인지를 제한하여, 참조 픽쳐의 움직임 벡터를 소정의 다이내믹 레인지로 절삭할 수 있다.The image coding apparatus and / or the decoding apparatus cuts the motion vector of the reference picture into a predetermined dynamic range (S1410). As described above through "I. Motion Vector Cutting Process ", a motion vector out of the dynamic range is expressed by a minimum value or a maximum value of the corresponding dynamic range. Therefore, as described above, the level and / or the sequence parameter of the video codec, as described above, through " Information transmission method for cutting temporal motion vector in IV. Decoding apparatus "and" V. Definition of dynamic range through level of video codec & A motion vector of a reference picture can be cut to a predetermined dynamic range by restricting the bit depth through a set or the like or restricting the dynamic range through the level of the video codec.

영상 부호화 장치 및/또는 복호화 장치는 "II. 움직임 벡터 저장 과정"을 통해 전술한 바와 같이, 절삭된 참조 픽쳐의 움직임 벡터를 버퍼에 저장한다(S1420). 움직임 벡터는 복원된 영상과 함께 또는 따로 버퍼에 저장될 수 있다.The video encoding apparatus and / or the decoding apparatus stores the motion vector of the cut reference picture in the buffer through the " II. Motion vector storing process "(S1420). The motion vector may be stored in the buffer together with the reconstructed image or separately.

영상 부호화 장치는 저장된 참조 픽쳐의 움직임 벡터를 이용하여 부호화 대상 블록의 움직임 벡터를 부호화한다(S1430). "III. 움직임 벡터 도출 과정"을 통해 전술한 바와 같이, HEVC에서 사용되는 향상된 움직임 벡터 예측 방법에서는 부호화/복호화 대상 블록의 주변에 위치하는 복원 블록의 움직임 벡터뿐만 아니라, 참조 픽쳐 내에서 부호화/복호화 대상 블록과 동일한 위치 또는 대응되는 위치에 존재하는 블록의 움직임 벡터를 이용한다. 따라서, 부호화 대상 블록의 움직임 벡터는 부호화 대상 블록과 인접한 주변 블록의 움직임 벡터뿐만 아니라 참조 픽쳐의 움직임 벡터, 즉 시간적 움직임 벡터일 수도 있다.The image encoding apparatus encodes the motion vector of the current block using the motion vector of the stored reference picture (S1430). As described above with reference to "III. Motion vector derivation process ", in the enhanced motion vector prediction method used in the HEVC, not only the motion vector of the restored block located in the periphery of the current block to be coded / decoded, A motion vector of a block existing at the same position or corresponding position with the target block is used. Accordingly, the motion vector of the current block may be a motion vector of a reference picture, that is, a temporal motion vector, as well as a motion vector of a neighboring block adjacent to the current block.

한편, 참조 픽쳐의 움직임 벡터의 X 성분의 다이내믹 레인지와 Y 성분의 다이내믹 레인지는 서로 다르게 정의될 수 있으므로, 참조 픽쳐의 움직임 벡터의 각각의 성분은 각각의 다이내믹 레인지로 절삭될 수 있다.On the other hand, since the dynamic range of the X component and the dynamic range of the Y component of the motion vector of the reference picture can be defined differently, each component of the motion vector of the reference picture can be cut into each dynamic range.

또한, 참조 픽쳐의 움직임 벡터의 다이내믹 레인지를 제한하는 방법뿐만 아니라 참조 픽쳐의 움직임 벡터를 압축하는 방법을 사용할 수도 있다. 참조 픽쳐의 움직임 벡터의 다이내믹 레인지를 제한하거나 참조 픽쳐의 움직임 벡터를 압축하는 경우, 영상 코덱의 레벨 및/또는 시퀀스 파라미터 셋 등에 이를 나타내는 플래그와 이에 관한 파라미터를 정의할 수 있다.It is also possible to use a method of compressing a motion vector of a reference picture as well as a method of restricting the dynamic range of a motion vector of a reference picture. When limiting the dynamic range of a motion vector of a reference picture or compressing a motion vector of a reference picture, a flag indicating the level and / or a sequence parameter set of the video codec and parameters related thereto may be defined.

또한, 메모리에 저장된 움직임 정보, 즉 참조 픽쳐의 움직임 정보를 사용하여, 움직임 벡터 예측, 향상된 움직임 벡터 예측, 움직임 정보 병합, 움직임 정보 병합 생략(merge skip) 등의 부호화 방법을 수행할 수도 있다.In addition, it is also possible to perform a coding method such as motion vector prediction, enhanced motion vector prediction, motion information merging, and motion information merge skip using motion information stored in the memory, i.e., motion information of a reference picture.

도 15는 본 발명의 일 실시예에 따른 영상의 복호화 방법을 나타낸 순서도이다. 도 15를 참조하면 영상 복호화 방법은 절삭 단계(S1510), 저장 단계(S1520), 도출 단계(S1530) 및 복호화 단계(S1540)를 포함한다.15 is a flowchart illustrating a method of decoding an image according to an embodiment of the present invention. Referring to FIG. 15, the image decoding method includes a cutting step S1510, a storing step S1520, a deriving step S1530, and a decoding step S1540.

도 15의 절삭 단계(S1510)와 저장 단계(S1520)는 전술한 "I. 움직임 벡터 절삭 과정"과 " II. 움직임 벡터 저장 과정"을 이용하는 도 14의 절삭 단계(S1410)와 저장 단계(S1420)와 유사하다. 또한, 도 15의 도출 단계(S1530)는 전술한 "III. 움직임 벡터 도출 과정"을 이용하며, 도 14의 부호화 단계(S1430)와 대칭적이다. 따라서, 자세한 설명은 생략하기로 한다.The cutting step S1510 and the storing step S1520 of FIG. 15 are the same as the cutting step S1410 and the storing step S1420 of FIG. 14 using the " I. Motion vector cutting process " . The derivation step S1530 of FIG. 15 uses the above-described " III. Motion vector derivation process "and is symmetric with the encoding step S1430 of FIG. Therefore, a detailed description will be omitted.

영상 복호화 장치는 복호화 대상 블록의 움직임 벡터를 이용하여 인터 예측 복호화를 수행한다(S1540). 영상 복호화 장치는 움직임 벡터의 다이내믹 레인지 제한 방법, 움직임 벡터의 공간 해상도 감소 방법, 움직임 벡터의 양자화 방법, 움직임 벡터의 표현 해상도 감소 방법 중 적어도 하나 이상을 사용하여 움직임 벡터를 메모리에 저장하고, 저장된 움직임 벡터를 복호화 대상 블록의 움직임 벡터 예측 및 움직임 정보 병합에 이용할 수 있다.The video decoding apparatus performs inter prediction decoding using the motion vector of the current block to be decoded (S1540). The video decoding apparatus stores a motion vector in a memory using at least one of a dynamic range limitation method of a motion vector, a spatial resolution reduction method of a motion vector, a motion vector quantization method, and a motion vector resolution reduction method, The vector can be used for motion vector prediction and motion information merging of the decoding target block.

또한, 메모리에 저장된 움직임 정보, 즉 참조 픽쳐의 움직임 정보를 사용하여, 움직임 벡터 예측, 향상된 움직임 벡터 예측, 움직임 정보 병합, 움직임 정보 병합 생략(merge skip) 등의 복호화 방법을 수행할 수도 있다.In addition, it is also possible to perform decoding methods such as motion vector prediction, enhanced motion vector prediction, motion information merging, and motion information merge skip using motion information stored in the memory, that is, motion information of a reference picture.

상술한 실시예들은 일련의 단계 또는 블록으로 표현된 순서도를 통해 설명되고 있으나, 본 발명은 상술한 단계들의 순서에 한정되는 것은 아니며, 일부의 단계는 다른 단계와, 다른 순서 또는 동시에 발생할 수 있다. 또한, 본 발명이 속하는 기술 분야의 통상의 지식을 가진자라면 순서도에 나타낸 단계들은 배타적이지 않으며, 다른 단계가 포함되거나, 일부의 단계가 삭제될 수 있음을 이해할 수 있을 것이다.Although the above-described embodiments are described through a series of steps or a flowchart represented by blocks, the present invention is not limited to the order of the steps described above, and some steps may occur in different steps, different orders, or concurrently. It will also be understood by those skilled in the art that the steps shown in the flowchart illustrations are not exclusive, that other steps may be included, or that some steps may be deleted.

또한, 상술한 실시예들은 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위해, 모든 가능한 조합을 기술할 수는 없지만, 본 발명이 속하는 기술 분야의 통상의 지식을 가진자라면 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
In addition, the above-described embodiments include examples of various aspects. While not all possible combinations can be described to illustrate various aspects, one of ordinary skill in the art will recognize that other combinations are possible. Accordingly, it is intended that the invention include all alternatives, modifications and variations that fall within the scope of the following claims.

Claims (20)

참조 픽쳐를 저장하는 참조 픽쳐 버퍼; 및
상기 참조 픽쳐 및 상기 참조 픽쳐의 움직임 벡터를 이용하여 예측 블록을 생성하는 움직임 보상부를 포함하되,
상기 참조 픽쳐의 움직임 벡터는 소정의 레인지로 절삭되며,
상기 움직임 벡터는 기설정된 고정값 범위로 절삭되는 것을 특징으로 하는 영상 복호화 장치.
A reference picture buffer for storing a reference picture; And
And a motion compensation unit for generating a prediction block using a motion vector of the reference picture and the reference picture,
The motion vector of the reference picture is cut to a predetermined range,
Wherein the motion vector is cut into a predetermined fixed value range.
제1항에 있어서,
상기 참조 픽쳐의 움직임 벡터는 크기 조정(스케일링) 된 후 상기 레인지로 절삭되는 것을 특징으로 하는 영상 복호화 장치.
The method according to claim 1,
Wherein the motion vector of the reference picture is scaled and then cut to the range.
삭제delete 제1항에 있어서,
상기 참조 픽쳐의 움직임 벡터는 기설정된 블록 단위로 저장되고,
상기 움직임 보상부는 상기 기설정된 블록 단위로 저장된 상기 참조 픽쳐의움직임 벡터를 이용하여 상기 예측 블록을 생성하는 것을 특징으로 하는 영상 복호화 장치.
The method according to claim 1,
The motion vector of the reference picture is stored in units of a predetermined block,
Wherein the motion compensation unit generates the prediction block using a motion vector of the reference picture stored in the predetermined block unit.
제1항에 있어서,
상기 움직임 벡터의 x 성분과 y 성분은 서로 동일한 고정값 범위로 절삭되는 것을 특징으로 하는 영상 복호화 장치.
The method according to claim 1,
Wherein the x component and the y component of the motion vector are cut to have the same fixed value range.
제1항에 있어서,
상기 움직임 벡터는 인터 예측 모드로 복호화된 블록의 움직임 벡터인 것을 특징으로 하는 영상 복호화 장치.
The method according to claim 1,
Wherein the motion vector is a motion vector of a block decoded in the inter prediction mode.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020120010096A 2011-01-31 2012-01-31 Video decoding apparatus using motion vector KR101428030B1 (en)

Priority Applications (25)

Application Number Priority Date Filing Date Title
CN201280015709.8A CN103583044B (en) 2011-01-31 2012-01-31 Method and apparatus for carrying out encoding/decoding image using motion vector
PT127423044T PT2672708T (en) 2011-01-31 2012-01-31 Method and apparatus for encoding/decoding images using a motion vector
RU2013140464/08A RU2586017C2 (en) 2011-01-31 2012-01-31 Method and apparatus for encoding/decoding images using motion vector
JP2013551919A JP5911890B2 (en) 2011-01-31 2012-01-31 Video encoding / decoding method and apparatus using motion vectors
BR112013019495-2A BR112013019495B1 (en) 2011-01-31 2012-01-31 Image decoding device
BR122020015411-0A BR122020015411B1 (en) 2011-01-31 2012-01-31 IMAGE DECODING DEVICE
BR122020015452-7A BR122020015452B1 (en) 2011-01-31 2012-01-31 IMAGE DECODING DEVICE
BR122020015455-1A BR122020015455B1 (en) 2011-01-31 2012-01-31 IMAGE DECODING DEVICE
US13/979,214 US10244252B2 (en) 2011-01-31 2012-01-31 Method and apparatus for encoding/decoding images using a motion vector
PCT/KR2012/000770 WO2012105807A2 (en) 2011-01-31 2012-01-31 Method and apparatus for encoding/decoding images using a motion vector
CA3220287A CA3220287A1 (en) 2011-01-31 2012-01-31 Method and apparatus for encoding/decoding images using a motion vector
EP21176802.3A EP3930332A1 (en) 2011-01-31 2012-01-31 Apparatus for encoding/decoding images using a motion vector
PL12742304T PL2672708T3 (en) 2011-01-31 2012-01-31 Method and apparatus for encoding/decoding images using a motion vector
CA3050903A CA3050903C (en) 2011-01-31 2012-01-31 Method and apparatus for encoding/decoding images using a motion vector
BR122014018140-0A BR122014018140B1 (en) 2011-01-31 2012-01-31 Image decoding method
EP12742304.4A EP2672708B1 (en) 2011-01-31 2012-01-31 Method and apparatus for encoding/decoding images using a motion vector
CA2826157A CA2826157C (en) 2011-01-31 2012-01-31 Method and apparatus for encoding/decoding images using a motion vector
JP2016021985A JP6203878B2 (en) 2011-01-31 2016-02-08 Video decoding apparatus, video encoding apparatus, and recording medium
JP2017164566A JP6550429B2 (en) 2011-01-31 2017-08-29 Video decoding apparatus and video encoding apparatus
US16/249,146 US10645411B2 (en) 2011-01-31 2019-01-16 Method and apparatus for encoding/decoding images using a motion vector
JP2019122135A JP6783355B2 (en) 2011-01-31 2019-06-28 Video decoding device, video coding device and bitstream transmission method
US16/830,236 US20200228822A1 (en) 2011-01-31 2020-03-25 Method and apparatus for encoding/decoding images using a motion vector
JP2020171894A JP7369679B2 (en) 2011-01-31 2020-10-12 Video decoding device, video encoding device and recording medium
US17/538,797 US20220086479A1 (en) 2011-01-31 2021-11-30 Method and apparatus for encoding/decoding images using a motion vector
JP2022186903A JP2023018075A (en) 2011-01-31 2022-11-22 Video decoding device, video encoding device, and recording medium

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
KR1020110009636 2011-01-31
KR20110009636 2011-01-31
KR20110019166 2011-03-03
KR1020110019166 2011-03-03
KR1020110050853A KR20120088488A (en) 2011-01-31 2011-05-27 method for storing temporal motion vector and apparatus using the same
KR1020110050853 2011-05-27
KR1020110065707A KR20120088494A (en) 2011-01-31 2011-07-01 method for storing temporal motion vector and apparatus using the same
KR1020110065707 2011-07-01

Related Child Applications (3)

Application Number Title Priority Date Filing Date
KR1020130082553A Division KR101461499B1 (en) 2011-01-31 2013-07-15 Video coding method and computer readable redording meduim using motion vector and apparatus thereof
KR1020130082551A Division KR101378888B1 (en) 2011-01-31 2013-07-15 Video coding apparatus using motion vector
KR1020130082552A Division KR101461498B1 (en) 2011-01-31 2013-07-15 Video decoding method and computer readable redording meduim using motion vector

Publications (2)

Publication Number Publication Date
KR20120088611A KR20120088611A (en) 2012-08-08
KR101428030B1 true KR101428030B1 (en) 2014-08-13

Family

ID=46873849

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120010096A KR101428030B1 (en) 2011-01-31 2012-01-31 Video decoding apparatus using motion vector

Country Status (1)

Country Link
KR (1) KR101428030B1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104704836B (en) * 2012-10-03 2018-04-17 寰发股份有限公司 3 D video, the coding method of multi-view video and scalable video and device
WO2014073877A1 (en) 2012-11-07 2014-05-15 엘지전자 주식회사 Method and apparatus for processing multiview video signal
WO2017188509A1 (en) * 2016-04-28 2017-11-02 엘지전자(주) Inter prediction mode-based image processing method and apparatus therefor
KR102368623B1 (en) 2018-02-28 2022-02-28 삼성전자주식회사 A method and an apparatus for video decoding, a method and an apparatus for video encoding
WO2019194435A1 (en) * 2018-04-02 2019-10-10 엘지전자 주식회사 Method for coding image on basis of tmvp and apparatus therefor
US20220150529A1 (en) * 2018-09-17 2022-05-12 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus, and recording medium storing bitstream

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5262854A (en) * 1992-02-21 1993-11-16 Rca Thomson Licensing Corporation Lower resolution HDTV receivers
KR20080070976A (en) * 2007-01-29 2008-08-01 삼성전자주식회사 Method and apparatus for video encoding, and method and apparatus for video decoding
KR20110017302A (en) * 2009-08-13 2011-02-21 삼성전자주식회사 Method and apparatus for encoding/decoding image by using motion vector accuracy control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5262854A (en) * 1992-02-21 1993-11-16 Rca Thomson Licensing Corporation Lower resolution HDTV receivers
KR20080070976A (en) * 2007-01-29 2008-08-01 삼성전자주식회사 Method and apparatus for video encoding, and method and apparatus for video decoding
KR20110017302A (en) * 2009-08-13 2011-02-21 삼성전자주식회사 Method and apparatus for encoding/decoding image by using motion vector accuracy control

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
S-C Lim, et al, Dynamic rnage restriction of temporal motion vector, JCTVC-E142, 16-23 March, 2011 *

Also Published As

Publication number Publication date
KR20120088611A (en) 2012-08-08

Similar Documents

Publication Publication Date Title
KR101477771B1 (en) Video coding/decoding method using motion vector and apparatus thereof
US11057636B2 (en) Affine motion prediction
US9420286B2 (en) Temporal motion vector prediction in HEVC and its extensions
CN111213376A (en) Encoding motion information for video data using candidate list construction based on coding structure
IL234159A (en) Motion vector coding and bi-prediction in hevc and its extensions
KR101428030B1 (en) Video decoding apparatus using motion vector
KR20230133829A (en) Prediction method and apparatus using the current picture referencing mode

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
AMND Amendment
A302 Request for accelerated examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170727

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180726

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190724

Year of fee payment: 6