KR20200040168A - 움직임 정보 결정 방법 및 이를 이용한 영상 복호화 장치 - Google Patents

움직임 정보 결정 방법 및 이를 이용한 영상 복호화 장치 Download PDF

Info

Publication number
KR20200040168A
KR20200040168A KR1020190025764A KR20190025764A KR20200040168A KR 20200040168 A KR20200040168 A KR 20200040168A KR 1020190025764 A KR1020190025764 A KR 1020190025764A KR 20190025764 A KR20190025764 A KR 20190025764A KR 20200040168 A KR20200040168 A KR 20200040168A
Authority
KR
South Korea
Prior art keywords
motion information
block
blocks
determining
predicted
Prior art date
Application number
KR1020190025764A
Other languages
English (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
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Publication of KR20200040168A publication Critical patent/KR20200040168A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

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

Abstract

움직임 정보 결정 방법 및 이를 이용한 영상 복호화 장치를 개시한다.
본 발명의 일 실시예에 의하면, 블록 기반의 영상 부호화 또는 복호화에서 기 설정된 크기의 이미지 영역 단위로 움직임 정보를 결정하는 방법으로서, 대상 블록들 중 상기 영역에 포함된 복수 개의 후보 픽셀들 각각에 대응하는 하나 이상의 대응 블록을 결정하는 단계; 및 상기 대응 블록들의 움직임 정보로부터, 상기 영역의 대표 움직임 정보를 결정하는 단계를 포함하는 것을 특징으로 하는 움직임 정보 결정 방법을 제공한다.

Description

움직임 정보 결정 방법 및 이를 이용한 영상 복호화 장치{METHOD FOR DETERMINING MOTION INFORMATION AND APPARATUS USING THE SAME}
본 발명은 영상의 부호화 및 복호화에 관한 것으로서, 더욱 구체적으로는 움직임 정보 저장 단위의 다양한 위치에 존재하는 복수 개의 픽셀을 이용하여 움직임 정보를 설정함으로써 부호화 및 복호화의 효율을 향상시킨 움직임 정보 저장 방법 및 이를 이용한 영상 복호화 장치에 관한 것이다.
동영상 데이터는 음성 데이터나 정지 영상 데이터 등에 비하여 많은 데이터량을 가지기 때문에, 압축을 위한 처리 없이 그 자체를 저장하거나 전송하기 위해서는 메모리를 포함하여 많은 하드웨어 자원을 필요로 한다.
따라서, 통상적으로 동영상 데이터를 저장하거나 전송할 때에는 부호화기를 사용하여 동영상 데이터를 압축하여 저장하거나 전송하며, 복호화기에서는 압축된 동영상 데이터를 수신하여 압축을 해제하고 재생한다. 이러한 동영상 압축 기술로는 H.264/AVC를 비롯하여, H.264/AVC에 비해 약 40% 정도의 부호화 효율을 향상시킨 HEVC(High Efficiency Video Coding)가 존재한다.
그러나, 영상의 크기 및 해상도, 프레임률이 점차 증가하고 있고, 이에 따라 부호화해야 하는 데이터량도 증가하고 있으므로 기존의 압축 기술보다 더 부호화 효율이 좋고 화질 개선 효과도 높은 새로운 압축 기술이 요구된다.
이러한 요구에 부응하기 위해 본 발명은 개선된 영상 부호화 및 복호화 기술을 제공하는 것을 목적으로 하며, 특히, 본 발명의 일 측면은 움직임 정보의 도출에 이용되는 기준 픽셀의 위치와 개수를 변화시키고, 다양한 기준을 추가적으로 적용하여 대표 움직임 정보를 도출함으로써 부호화 및 복호화의 효율을 향상시키는 기술과 관련된다.
본 발명의 일 측면은, 블록 기반의 영상 부호화 또는 복호화에서 기 설정된 크기의 이미지 영역 단위로 움직임 정보를 결정하는 방법으로서, 대상 블록들 중 상기 영역에 포함된 복수 개의 후보 픽셀들 각각에 대응하는 하나 이상의 대응 블록을 결정하는 단계; 및 상기 대응 블록들의 움직임 정보로부터, 상기 영역의 대표 움직임 정보를 결정하는 단계를 포함하는 것을 특징으로 하는 움직임 정보 결정 방법을 제공한다.
본 발명의 다른 일 측면은, 영상 복호화 장치로서, 비트스트림(bitstream)을 복호화하여 대상 블록들을 복원하는 영상 복원부; 및 상기 대상 블록들의 움직임 정보를 이용하여, 기 설정된 크기의 이미지 영역 단위로 움직임 정보를 결정하는 제어수단을 포함하고, 상기 제어수단은, 상기 대상 블록들 중 상기 영역에 포함된 복수 개의 후보 픽셀들 각각에 대응하는 하나 이상의 대응 블록을 결정하고, 상기 대응 블록들의 움직임 정보로부터 상기 영역의 대표 움직임 정보를 결정하는 것을 특징으로 하는 영상 복호화 장치를 제공한다.
이상에서 설명한 바와 같이 본 발명의 일 실시예에 의하면, 시간적 움직임 정보를 더욱 정확하게 설정할 수 있어 부호화 및 복호화에 대한 정확성과 압축 성능을 향상시킬 수 있다.
도 1은 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 예시적인 블록도이다.
도 2는 QTBTTT 구조를 이용하여 블록을 분할하는 방법을 설명하기 위한 도면이다.
도 3은 복수의 인트라 예측 모드들을 설명하기 위한 도면이다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다.
도 5는 움직임 정보를 결정 및 저장하는 종래 방법을 설명하기 위한 도면이다.
도 6은 움직임 정보를 결정 및 저장하는 본 발명의 일 실시예를 설명하기 위한 순서도이다.
도 7 및 도 8은 후보 픽셀의 다양한 위치를 설명하기 위한 도면이다.
도 9 내지 도 11은 움직임 정보 결정에 대한 다양한 기준을 설명하기 위한 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 식별 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 1은 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 예시적인 블록도이다. 이하에서는 도 1을 참조하여 영상 부호화 장치와 이 장치의 하위 구성들에 대하여 설명하도록 한다.
도 1에 도시된 바와 같이, 영상 부호화 장치는 블록 분할부(110), 예측부(120), 감산기(130), 변환부(140), 양자화부(145), 부호화부(150), 역양자화부(160), 역변환부(165), 가산기(170), 필터부(180) 및 메모리(190)를 포함하여 구성될 수 있다.
영상 부호화 장치의 각 구성요소는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 각 구성요소의 기능이 소프트웨어로 구현되고 마이크로프로세서가 각 소프트웨어(구성요소)의 각 기능을 실행하는 형태로 구현될 수도 있다.
하나의 영상(비디오)은 복수의 픽처들로 구성된다. 각 픽처들은 복수의 영역으로 분할되고 각 영역마다 부호화가 수행된다. 예를 들어, 하나의 픽처는 하나 이상의 타일(Tile)로 분할된다. 여기서, 하나 이상의 타일을 타일 그룹(Tile Group)으로 정의할 수 있다. 각 타일은 하나 이상의 CTU(Coding Tree Unit)로 분할된다. 그리고 각 CTU는 트리 구조에 의해 하나 이상의 CU(Coding Unit)들로 분할된다.
각 CU에 적용되는 정보들은 CU의 신택스(Syntax)로 부호화되고, 하나의 CTU에 포함된 CU들에 공통적으로 적용되는 정보는 CTU의 신택스로 부호화된다. 또한, 하나의 타일 내의 모든 블록들에 공통적으로 적용되는 정보들은 타일의 신택스로 부호화되거나 해당 타일이 속한 타일 그룹의 신택스로 부호화되며, 하나의 픽처들을 구성하는 모든 블록들에 적용되는 정보들은 픽처 파라미터 셋(PPS, Picture Parameter Set) 또는 픽처 헤더에 부호화된다.
나아가, 복수의 픽처가 공통으로 참조하는 정보들은 시퀀스 파라미터 셋(SPS, Sequence Parameter Set)에 부호화되며, 하나 이상의 SPS가 공통으로 참조하는 정보들은 비디오 파라미터 셋(VPS, Video Parameter Set)에 부호화된다.
블록 분할부(110)는 CTU(Coding Tree Unit)의 크기를 결정한다. CTU의 크기에 대한 정보(CTU size)는 SPS 또는 PPS의 신택스로 부호화되어 영상 복호화 장치로 전달된다.
블록 분할부(110)는 영상을 구성하는 각 픽처(picture)를 미리 결정된 크기를 가지는 복수의 CTU(Coding Tree Unit)로 분할한 이후에, 분할된 CTU를 트리 구조(tree structure)를 이용하여 반복적으로(recursively) 분할한다. 트리 구조에서의 리프 노드(leaf node)가 부호화의 기본 단위인 CU(coding unit)가 된다.
트리 구조에는 상위 노드(혹은 부모 노드)가 동일한 크기를 가지는 네 개의 하위 노드(혹은 자식 노드)로 분할되는 쿼드트리(Quad Tree, QT), 상위 노드가 두 개의 하위 노드로 분할되는 바이너리트리(Binary Tree, BT), 상위 노드가 1:2:1 비율로 세 개의 하위 노드로 분할되는 터너리트리(Ternary Tree, TT) 등이 포함될 수 있다.
또한, QT 구조, BT 구조 및 TT 구조 중 둘 이상이 혼용된 구조 등이 포함될 수 있다. 예컨대, QTBT(Quad Tree plus Binary Tree) 구조가 사용될 수 있고, QTBTTT(Quad Tree plus Binary Tree Ternary Tree) 구조가 사용될 수 있다.
도 2는 QTBTTT 구조를 이용하여 블록을 분할하는 방법을 설명하기 위한 도면이다. 도 2에서 보는 바와 같이, CTU는 먼저 QT 구조로 분할될 수 있다. 쿼드트리 분할은 분할 블록(splitting block)의 크기가 QT에서 허용되는 리프 노드의 최소 블록 크기(MinQTSize)에 도달할 때까지 반복될 수 있다.
QT의 리프 노드가 BT에서 허용되는 루트 노드의 최대 블록 크기(MaxBTSize)보다 크지 않은 경우, BT 구조 또는 TT 구조 중 하나 이상으로 더 분할될 수 있다. BT 구조 및/또는 TT 구조에서는 복수의 분할 방향이 존재할 수 있다.
예컨대, 일부 예시에서, 해당 노드의 블록을 가로로 분할하는 타입(즉, horizontal splitting)과 세로로 분할하는 타입(즉, vertical splitting) 두 가지가 존재할 수 있다.
도 2에 표현된 바와 같이, BTTT 분할이 수행되면, 노드들이 분할되었는지 여부를 지시하는 플래그, 분할 방향(vertical 또는 horizontal)을 나타내는 플래그 및/또는 분할 타입(Binary 또는 Ternary)을 나타내는 플래그가 영상 복호화 장치로 시그널링될 수 있다.
한편, 해당 노드의 블록을 서로 비대칭 형태의 두 개의 블록으로 분할하는 타입이 추가로 더 존재할 수도 있다. 비대칭 형태에는 해당 노드의 블록을 1:3의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태, 해당 노드의 블록을 대각선 방향으로 분할하는 형태 등이 포함될 수 있다.
트리 구조의 다른 예시로서 QTBT가 사용되는 경우, CTU는 먼저 QT 구조로 분할된 이후에, QT의 리프 노드들은 BT 구조로 더 분할될 수 있다.
CU는 CTU로부터의 QTBT 또는 QTBTTT 분할에 따라 다양한 크기를 가질 수 있다. 이하에서는, 부호화 또는 복호화하고자 하는 CU(즉, QTBTTT의 리프 노드)에 해당하는 블록을 '현재 블록'이라 지칭한다.
예측부(120)는 현재 블록을 예측하여 예측 블록을 생성한다. 예측부(120)는 인트라 예측부(122)와 인터 예측부(124)를 포함하여 구성될 수 있다. 일반적으로, 픽처 내 현재 블록들은 각각 예측적으로 코딩될 수 있다. 현재 블록의 예측은 현재 블록을 포함하는 픽처의 데이터를 사용하는 인트라 예측 기술 또는 현재 블록을 포함하는 픽처 이전에 코딩된 픽처의 데이터를 사용하는 인터 예측 기술을 사용하여 수행될 수 있다.
인트라 예측부(122)는 현재 블록이 포함된 현재 픽처 내에서 현재 블록의 주변에 위치한 픽셀(참조 픽셀)들을 이용하여 현재 블록 내의 픽셀들을 예측한다. 예측 방향에 따라 복수의 인트라 예측모드가 존재한다. 예컨대, 도 3에서 보는 바와 같이, 복수의 인트라 예측모드는 planar 모드와 DC 모드를 포함하는 비방향성 모드와 65개의 방향성 모드를 포함할 수 있다. 각 예측모드에 따라 사용할 주변 픽셀과 연산식이 다르게 정의된다.
인트라 예측부(122)는 현재 블록을 부호화하는데 사용할 인트라 예측 모드를 결정할 수 있다. 일부 예들에서, 인트라 예측부(122)는 여러 인트라 예측 모드들을 사용하여 현재 블록을 인코딩하고, 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다.
예를 들어, 인트라 예측부(122)는 여러 테스트된 인트라 예측 모드들에 대한 레이트 왜곡(rate-distortion) 분석을 사용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중 최선의 레이트 왜곡 특징들을 갖는 인트라 예측 모드를 선택할 수도 있다.
인트라 예측부(122)는 복수의 인트라 예측 모드 중에서 하나의 인트라 예측 모드를 선택하고, 선택된 인트라 예측 모드에 따라 결정되는 주변 픽셀(참조 픽셀)과 연산식을 사용하여 현재 블록을 예측한다. 선택된 인트라 예측 모드에 대한 정보는 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다.
인터 예측부(124)는 움직임 추정(motion estimation) 과정을 통해 현재 픽처보다 먼저 부호화 및 복호화된 참조 픽처 내에서 현재 블록과 가장 유사한 블록을 탐색하고, 움직임 보상 과정을 통해 탐색된 블록을 이용하여 현재 블록에 대한 예측 블록을 생성한다. 인터 예측은 일반적으로 예측 방향에 따라 단방향 예측(Uni-directional prediction)과 양방향 예측(Bi-directional prediction)으로 구별될 수 있다.
인터 예측부(124)는 현재 픽처 내의 현재 블록과 참조 픽처 내의 예측 블록 간의 변위(displacement)에 해당하는 움직임벡터(motion vector)를 생성한다. 일반적으로, 움직임 추정은 루마(luma) 성분에 대해 수행되고, 루마 성분에 기초하여 계산된 모션 벡터는 루마 성분 및 크로마 성분 모두에 대해 사용된다.
현재 블록을 예측하기 위해 사용된 참조 픽처에 대한 정보 및 움직임벡터에 대한 정보를 포함하는 움직임 정보는 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다.
움직임 정보를 부호화하는 데 소요되는 비트량을 감소 또는 최소화시키기 위해 다양한 방법이 사용될 수 있다. 이 다양한 방법들 중 대표적인 예로 Skip 모드, Merge 모드 및 AMVP(Adaptive(Advanced) motion vector predictor) 모드를 들 수 있다.
Skip 모드 및 Merge 모드에서는 먼저, 주변 블록들로부터 미리 설정된 개수의 후보 블록들이 선별된다. 후보 블록들이 선별되면, 인터 예측부(124)는 후보 블록들이 포함된 머지 리스트(merge list)를 구성하고, 리스트에 포함된 후보 블록의 움직임 정보들 중에서 현재 블록의 움직임 정보로 사용될 움직임 정보를 선택하며, 선택된 움직임 정보(선택된 후보 블록)를 식별하기 위한 merge index 값을 생성한다.
선택된 움직임 정보의 index 값 즉, merge index 값은 부호화되어 영상 복호화 장치로 시그널링된다. HEVC 표준에서, Skip/Merge 모드에 대한 index 값은 merge_idx syntax를 통해 표현된다.
AMVP 모드에서는 먼저, 현재 블록의 주변 블록들을 이용하여 현재 블록의 움직임 벡터에 대한 예측 움직임 벡터(motion vector predictor, MVP) 후보들이 유도된다. 예측 움직임 벡터 후보들이 유도되면, 인터 예측부(124)는 현재 블록의 움직임 벡터에 대한 예측 움직임 벡터(mvp)를 결정하고, 현재 블록의 움직임 벡터에서 결정된 예측 움직임 벡터를 감산하여 차분 움직임 벡터(motion vector difference, mvd)를 산출한다. 산출된 차분 움직임 벡터는 부호화되어 영상 복호화 장치로 시그널링된다.
예측 움직임 벡터 후보들로부터 예측 움직임 벡터를 결정하는 과정은 미리 정의된 함수(예를 들어, 중앙 값 연산, 평균 값 연산 등)를 통해 구현될 수 있다. 이 경우, 영상 복호화 장치는 미리 정의된 함수를 적용하도록 설정되어 있다.
예측 움직임 벡터 후보들을 유도하기 위해 이용되는 주변 블록들은 이미 부호화 및 복호화가 완료된 블록에 해당하므로, 영상 복호화 장치도 이 주변 블록들에 대한 움직임 벡터를 이미 인지하고 있다. 따라서, 예측 움직임 벡터 후보들을 식별하기 위한 정보들은 부호화될 필요가 없으므로, 영상 부호화 장치는 차분 움직임 벡터에 대한 정보와 현재 블록을 예측하기 위해 사용된 참조 픽처에 대한 정보만을 부호화한다.
예측 움직임 벡터 후보들로부터 예측 움직임 벡터를 결정하는 과정은 예측 움직임 벡터 후보들 중 어느 하나를 선택하는 방식으로 구현될 수도 있다. 이와 같은 경우, 차분 움직임 벡터에 대한 정보, 현재 블록을 예측하기 위해 사용된 참조 픽처에 대한 정보와 함께, 결정된 예측 움직임 벡터를 식별하기 위한 정보가 추가적으로 부호화된다.
감산기(130)는 인트라 예측부(122) 또는 인터 예측부(124)에 의해 생성된 예측 블록과 현재 블록을 감산하여 잔차 블록을 생성하고, 변환부(140)는 공간 영역의 픽셀 값들을 가지는 잔차 블록 내의 잔차 신호를 주파수 도메인의 변환 계수로 변환한다.
변환부(140)는 잔차 블록 내의 잔차 신호들을 현재 블록의 크기를 변환 단위로 사용하여 변환할 수 있으며, 잔차 블록을 더 작은 복수의 서브 블록으로 분할하고 서브 블록 크기의 변환 단위로 잔차 신호들을 변환할 수도 있다.
잔차 블록을 더 작은 서브 블록으로 분할하는 방법은 다양하게 존재할 수 있다. 예컨대, 기 정의된 동일한 크기의 서브 블록으로 분할할 수도 있으며, 잔차 블록을 루트 노드로 하는 QT(Quad Tree) 방식의 분할을 사용할 수도 있다.
양자화부(145)는 변환부(140)로부터 출력되는 변환 계수들을 양자화하고, 양자화된 변환 계수들을 부호화부(150)로 출력한다.
부호화부(150)는 양자화된 변환 계수들을 CABAC 등의 부호화 방식을 사용하여 부호화함으로써 비트스트림을 생성한다. 또한, 부호화부(150)는 블록 분할과 관련된 CTU size, QT 분할 플래그, BTTT 분할 플래그, 분할 방향 및 분할 타입 등의 정보를 부호화 및 시그널링하여 영상 복호화 장치가 영상 부호화 장치와 동일하게 블록을 분할할 수 있도록 한다.
나아가 부호화부(150)는 현재 블록이 인트라 예측에 의해 부호화되었는지 아니면 인터 예측에 의해 부호화되었는지 여부를 지시하는 예측 타입에 대한 정보를 부호화하고, 예측 타입에 따라 인트라 예측정보(즉, 인트라 예측 모드에 대한 정보) 또는 인터 예측정보(참조 픽처 및 움직임벡터에 대한 정보)를 부호화한다.
역양자화부(160)는 양자화부(145)로부터 출력되는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 생성한다. 역변환부(165)는 역양자화부(160)로부터 출력되는 변환 계수들을 주파수 도메인으로부터 공간 도메인으로 변환하여 잔차 블록을 복원한다.
가산부(170)는 복원된 잔차 블록과 예측부(120)에 의해 생성된 예측 블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록 내의 픽셀들은 다음 순서 블록의 인트라 예측을 위한 참조 픽셀로 사용된다.
필터부(180)는 블록 기반의 예측 및 변환/양자화로 인해 발생하는 블록킹 아티팩트(blocking artifacts), 링잉 아티팩트(ringing artifacts), 블러링 아티팩트(blurring artifacts) 등을 감소시키기 위해, 복원된 픽셀들에 대한 필터링을 수행한다. 필터부(180)는 디블록킹 필터(182)와 SAO 필터(184)를 포함할 수 있다.
디블록킹 필터(180)는 복원된 블록 간의 경계를 필터링하여 블록 단위의 부호화/복호화로 인해 발생하는 블록킹 현상(blocking artifact)을 제거하고, SAO 필터(184)는 디블록킹 필터링된 영상에 대해 추가적인 필터링을 수행한다.
SAO 필터(184)는 손실 부호화(lossy coding)로 인해 발생하는 복원된 픽셀과 원본 픽셀 간의 차이를 보상하기 위해 사용되는 필터에 해당한다. 디블록킹 필터(182) 및 SAO 필터(184)를 통해 필터링된 복원 블록은 메모리(190)에 저장된다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
도 1에는 표현하지 않았으나, 영상 부호화 장치는 대상 블록들의 움직임 정보를 미리 설정된 크기의 이미지 영역 단위로 할당하는 제어수단을 더 포함하여 구성될 수 있다. 이 제어수단은 도 1에 표현된 하위 구성들과 함께 동일한 물리적 구성(프로세서 등)에서 구현되거나, 도 1에 표현된 하위 구성들과는 다른 물리적 구성에서 구현될 수 있다. 제어수단에 대한 상세한 내용은 후술하도록 한다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다. 이하에서는 도 4를 참조하여 영상 복호화 장치와 이 장치의 하위 구성들에 대하여 설명하도록 한다.
도 4에 도시된 바와 같이, 영상 복호화 장치는 복호화부(410), 역양자화부(420), 역변환부(430), 예측부(440), 가산기(450), 필터부(460) 및 메모리(470)를 포함하여 구성될 수 있다.
영상 복호화 장치는 도 1에 표현된 영상 부호화 장치와 마찬가지로, 각 구성요소가 하드웨어 칩으로 구현될 수 있으며, 각 구성요소의 기능이 소프트웨어로 구현되고 마이크로프로세서가 각 소프트웨어의 기능을 실행하도록 구성될 수도 있다.
복호화부(410)는 영상 부호화 장치로부터 수신된 비트스트림을 복호화하여 블록 분할과 관련된 정보(루마 블록의 분할정보 및/또는 크로마 블록의 분할정보)를 추출하고, 이를 이용하여 복호화하고자 하는 현재 블록을 결정하며, 현재 블록을 복원하기 위해 필요한 예측 정보와 잔차 신호에 대한 정보 등을 추출한다.
복호화부(410)는 SPS(Sequence Parameter Set) 또는 PPS(Picture Parameter Set)로부터 CTU size에 대한 정보를 추출하여 CTU의 크기를 결정하고, 픽처를 결정된 크기의 CTU로 분할한다. 또한, 복호화부(410)는 CTU를 트리 구조의 최상위 레이어, 즉, 루트 노드로 결정하고, 비트스트림으로부터 분할 정보를 추출한 후, 이를 이용하여 블록을 분할 또는 복원한다.
또한, 복호화부(410)는 QT 분할의 리프 노드에 해당하는 노드에 대해서는 블록의 BT 분할 여부 및 분할 타입(분할 방향)에 대한 정보를 추출하여 해당 리프 노드를 BT 구조로 분할한다.
다른 예로서, QTBTTT 구조를 사용하여 블록을 분할 또는 복원하는 경우, 복호화부(410)는 QT 분할 여부에 대한 정보(플래그)를 추출하여 각 노드를 하위 레이어의 네 개의 노드로 분할하고, QT 분할의 리프 노드(QT 분할이 더 이상 발생하지 않는 노드)에 해당하는 노드에 대해서는 BT 또는 TT로 더 분할되는지 여부, 분할 방향에 대한 정보 및 BT 구조인지 TT 구조인지를 구별하는 분할 타입 정보를 추출하여 BT 또는 TT 구조로 반복적으로(recursively) 분할한다.
또 다른 예로서, QTBTTT 구조를 사용하여 블록을 분할 또는 복원하는 경우, 복호화부(410)는 분할 여부에 대한 정보(예를 들어, 플래그)를 추출하고, 해당 블록이 분할된 경우 분할 타입 정보를 추출한다. 분할 타입이 QT인 경우, 복호화부(410)는 각 노드를 하위 레이어에 해당하는 네 개의 노드들로 분할한다. 분할 타입이 QT 분할의 리프 노드(QT 분할이 더 이상 발생하지 않는 노드) 타입 즉, BT 또는 TT로 분할되었음을 나타내는 경우, 복호화부(410)는 추가적으로 분할 방향에 대한 정보 및 BT 구조인지 TT 구조인지를 구별하는 분할 타입 정보를 추출하여 BT 또는 TT 구조로 분할한다.
이와 같이, 분할정보를 이용하여 복호화하고자 하는 현재 블록이 결정되면, 복호화부(410)는 현재 블록이 인트라 예측되었는지 아니면, 인터 예측되었는지를 지시하는 예측 타입에 대한 정보를 추출한다.
예측 타입 정보가 인트라 예측을 지시하는 경우, 복호화부(410)는 현재 블록의 인트라 예측정보(인트라 예측 모드)에 대한 신택스 요소를 추출한다. 예측 타입 정보가 인터 예측을 지시하는 경우, 복호화부(410)는 인터 예측정보에 대한 신택스 요소 즉, 움직임벡터 및 그 움직임벡터가 참조하는 참조 픽처를 나타내는 정보(현재 블록의 움직임 정보)를 추출한다.
한편, 복호화부(410)는 잔차 신호에 대한 정보로서 현재 블록의 양자화된 변환계수들에 대한 정보를 추출한다.
역양자화부(420)는 양자화된 변환계수들을 역양자화하고, 역변환부(430)는 역양자화된 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환하여 잔차 신호들을 복원함으로써 현재 블록에 대한 잔차 블록을 생성한다.
예측부(440)는 인트라 예측부(442) 및 인터 예측부(444)를 포함하여 구성될 수 있는 데, 인트라 예측부(342)는 현재 블록의 예측 타입이 인트라 예측일 때 활성화되고, 인터 예측부(344)는 현재 블록의 예측 타입이 인트라 예측일 때 활성화된다.
인트라 예측부(442)는 복호화부(410)로부터 추출된 인트라 예측 모드에 대한 신택스 요소를 이용하여 복수의 인트라 예측 모드 중 현재 블록의 인트라 예측 모드를 결정하고, 결정된 인트라 예측 모드에 따라 현재 블록 주변의 참조 픽셀들을 이용하여 현재 블록을 예측한다.
인터 예측부(444)는 복호화부(410)로부터 추출된 인터 예측 모드에 대한 신택스 요소를 이용하여 현재 블록의 움직임 벡터와 이 움직임 벡터가 참조하는 참조 픽처를 결정하고, 움직임 벡터와 참조 픽처를 통해 현재 블록을 예측한다.
가산기(450)는 역변환부(430)로부터 출력되는 잔차 블록과 인터 예측부(444) 또는 인트라 예측부(442)로부터 출력되는 예측 블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록 내의 픽셀들은 이후에 복호화할 블록의 인트라 예측을 위한 참조 픽셀로 활용된다.
필터부(460)는 디블록킹 필터(462) 및 SAO 필터(464)를 포함한다. 디블록킹 필터(462)는 복원된 블록 간의 경계를 디블록킹 필터링하여 블록 단위의 복호화로 인해 발생하는 블록킹 현상(blocking artifact)을 제거한다.
SAO 필터(464)는, 손실 부호화(lossy coding)으로 인해 발생하는 복원된 픽셀과 원본 픽셀 간의 차이를 보상하기 위해, 디블록킹 필터링 이후의 복원된 블록에 대해 추가적인 필터링을 수행한다.
디블록킹 필터(462) 및 SAO 필터(464)를 통해 필터링된 복원 블록은 메모리(470)에 저장되고, 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
도 4에는 표현하지 않았으나, 영상 복호화 장치는 대상 블록들의 움직임 정보를 미리 설정된 크기의 이미지 영역 단위로 할당하는 제어수단을 더 포함하여 구성될 수 있다. 이 제어수단은 도 4에 표현된 하위 구성들과 함께 동일한 물리적 구성(프로세서 등)에서 구현되거나, 도 4에 표현된 하위 구성들과는 다른 물리적 구성에서 구현될 수 있다. 제어수단에 대한 상세한 내용은 후술하도록 한다.
한편, 영상 복호화 장치에 포함되는 제어수단은 영상 부호화 장치에 포함되는 전술된 제어수단과 그 기능 측면에서 대응되는 구성에 해당한다. 이하에서는, 영상 복호화 장치에 포함되는 제어수단과 영상 부호화 장치에 포함되는 제어수단을 용이하게 구별하기 위하여, 영상 복호화 장치에 포함되는 제어수단을 복호화 제어수단으로 지칭하며, 영상 부호화 장치에 포함되는 제어수단을 부호화 제어수단으로 지칭하도록 한다.
도 5는 움직임 정보를 결정 및 저장하는 종래 방법을 설명하기 위한 도면이며, 도 6은 움직임 정보를 결정 및 저장하는 본 발명의 일 실시예를 설명하기 위한 순서도이다. 이하에서는, 도 5 및 도 6을 참조하여 움직임 정보 결정과 저장에 대한 종래 방법과 본 발명의 방법을 비교 설명하도록 한다.
인터 예측에서 merge 후보 리스트 및/또는 AMVP 예측 움직임 벡터 후보 리스트를 구성하는 주변 블록에는 공간적 주변 블록, 시간적 주변 블록 등이 포함될 수 있다. 공간적 주변 블록에는 현재 픽처 내에서 현재 블록과 인접한 블록들이 포함될 수 있으며, 시간적 주변 블록에는 co-located 블록의 중앙부에 위치한 블록과 이 co-located 블록에 인접한 블록이 포함될 수 있다. co-located 블록은 미리 정해진 참조 픽처 내에서 현재 블록과 동일한 위치의 블록을 의미한다.
시간적 주변 블록들의 움직임 정보를 이용하기 위하여, 영상 부호화 장치와 영상 복호화 장치는 하나 이상의 참조 픽처의 움직임 정보를 메모리(190, 470)에 미리 저장한다. 여기서, 참조 픽처는 현재 픽처를 부호화 또는 복호화하는 시점에 이미 부호화 또는 복호화가 완료된 픽처에 해당한다.
영상 부호화 장치와 영상 복호화 장치는 특정 순서의 픽처에 대한 부호화 또는 복호화가 완료되면, 해당 픽처의 움직임 정보를 메모리(190, 470)에 저장하여 다음 순서의 픽처에 대한 예측 과정에 이용한다. 본 명세서에서는 픽처 단위로 움직임 정보가 저장되는 것으로 가정하여 설명하나, 움직임 정보의 저장은 픽처를 구성하는 타일 그룹, 타일, CTU 등 다양한 단위로 수행될 수 있다.
움직임 정보는 부호화 또는 복호화가 완료된 픽처(또는 이미지)를 구성하는 하나 이상의 영역 단위마다 결정 또는 할당되며, 결정된 움직임 정보들은 이 영역마다 구별되어 저장된다. 움직임 정보가 할당되어 저장되는 영역들은 기 설정된 크기를 가진다. 이하에서는, 움직임 정보 결정 및 저장의 기본 단위에 해당하는 영역을 서브 블록이라 지칭하도록 한다.
움직임 정보를 서브 블록 단위로 결정하고 저장하는 종래 방법이 도 5에 구체적으로 나타나 있다. 도 5 (a)에는 (복원된) 픽처(500)의 블록들의 분할 형태가 나타나 있으며, 도 5 (b)에는 복수 개의 서브 블록(1 내지 16)으로 분할 또는 구획된 픽처(500)가 나타나 있고, 도 5 (c)에는 도 5 (a)와 (b)를 기초로 결정 및 저장된 움직임 정보가 나타나 있다.
종래 방법은 서브 블록에 포함된 하나 이상의 픽셀들 중 서브 블록의 좌측 상단에 위치한 단일의 픽셀(도 5 (b)의 검은 바탕의 위치)을 설정하고, 이 픽셀을 포함하는 부호화 또는 복호화 대상 블록의 움직임 정보를 해당 서브 블록의 대표 움직임 정보로 결정 및 저장한다.
예를 들어, 도 5 (b)의 1번 서브 블록과 5번 서브 블록의 경우, 1번 서브 블록의 좌측 상단 픽셀과 5번 서브 블록의 좌측 상단 픽셀이 모두 도 5 (a)의 1번 부호화 또는 복호화 대상 블록에 포함되어 있으므로, 이 두 서브 블록의 움직임 정보는 1번 부호화 또는 복호화 대상 블록의 대표 움직임 정보(a)로 설정되어 도 5 (c)에 표현된 바와 같이 저장된다.
도 5 (b)의 7번 서브 블록의 경우, 좌측 상단 픽셀이 도 5 (a)의 5번 부호화 또는 복호화 대상 블록에 포함되어 있으므로, 6번 내지 8번 대상 블록의 움직임 정보에 대한 고려 없이 5번 대상 블록의 움직임 정보(e)가 7번 서브 블록의 대표 움직임 정보로 할당되어 도 5 (c)에 표현된 바와 같이 저장된다. 즉, 6번 내지 8번 대상 블록의 움직임 정보(f, g 및 h)들은 서브 블록의 움직임 정보로 결정 또는 할당되지 않는다.
도 5 (b)의 15번 서브 블록의 경우, 좌측 상단 픽셀이 도 5 (a)의 12번 대상 블록에 포함되어 있으므로, 13번 내지 15번 대상 블록의 움직임 정보에 대한 고려 없이, 12번 대상 블록의 움직임 정보(l)가 15번 서브 블록의 대표 움직임 정보로 도 5 (c)에 표현된 바와 같이 설정된다.
도 5 (a)의 대상 블록에 대한 움직임 정보가 존재하지 않는 경우, 도 5 (b)의 해당 서브 블록의 움직임 정보도 저장되지 않는다. 예를 들어, 도 5 (a)의 12번 대상 블록이 인트라 모드로 부호화된 경우, 13번 내지 15번 대상 블록의 움직임 정보에 대한 고려 없이, 도 5 (b)의 15번 서브 블록의 움직임 정보는 not available 상태가 된다.
이와 같이, 종래 방법은 움직임 정보 결정을 위해 제한된 개수(단일 개)의 기준 위치(서브 블록의 좌측 상단에 위치한 단일의 픽셀)만을 이용하므로 움직임 정보를 정확하게 예측하기 어려운 한계를 가진다.
본 발명은 복수 개의 기준 위치(서브 블록의 다양한 위치에 존재하는 복수 개의 픽셀)를 이용하여 움직임 정보를 설정함으로써 종래 방법의 한계를 극복하도록 구성된다. 또한, 본 발명은 움직임 정보의 이용 가능성 또는 움직임 정보의 빈도 수를 기준으로 복수 개의 기준 위치들 중 어느 하나를 최적의 움직임 정보로 선별하거나 단일 개의 최적의 기준 위치를 설정함으로써 움직임 정보의 정확성을 더욱 향상시킬 수 있다.
본 발명의 구체적인 실시예들에 대해 설명하기에 앞서, 이하에서는 설명과 이해의 편의를 위해 영상 복호화 장치를 중심으로 설명하도록 한다. 영상 복호화 장치에서 수행되는 것으로 설명되는 이하의 실시예들은 영상 부호화 장치에서도 동일하게 수행될 수 있다.
영상 복호화 장치는 비트스트림을 복호화하여 대상 블록들을 복원하는 영상 복원부, 부호화 또는 복호화 대상 블록들(이하 '대상 블록'이라 지칭한다)의 움직임 정보를 기 설정된 크기를 가지는 이미지 영역 단위(서브 블록)로 할당하여 저장하는 제어수단 즉, 복호화 제어수단을 포함하여 구성될 수 있다.
영상 복원부는 영상 복호화 장치에 포함되는 구성들을 통합하여 지칭하는 용어로서, 이 영상 복원부에는 도 4에 표현된 영상 복호화 장치의 각 구성들이 포함될 수 있다.
움직임 정보가 저장되는 기본 단위인 서브 블록은 다양한 크기를 가지도록 가변적으로 설정될 수 있다. 일 예로, 서브 블록은 부호화 또는 복호화 대상 블록들 중 가장 작은 크기의 대상 블록과 동일한 크기를 가지도록 미리 설정될 수 있다.
영상 복원부에서 대상 픽처의 복호화가 완료되면(S610), 복호화 제어수단은 복수 개의 후보 픽셀들 각각에 대응하는 대응 블록들의 움직임 정보로부터 하나의 대표 움직임 정보를 결정한다(S620, S630). 대응 블록이란 픽처(500) 내 복호화된 대상 블록들 중 복수 개의 후보 픽셀 각각을 포함하는 대상 블록들을 의미한다. 후보 픽셀이란 움직임 정보를 설정하는 기준이 되는 픽셀을 의미하며, 후보 픽셀들의 개수 또는 위치에 대한 상세한 내용은 후술하도록 한다.
실시형태에 따라, 복호화 제어수단은 미리 설정된 기준을 적용하여 대응 블록의 움직임 정보 중 어느 하나를 해당 서브 블록의 대표 움직임 정보로 설정할 수 있다. 미리 설정된 기준에는 대응 블록이 인트라 모드로 예측되었는지 여부, 대응 블록에 포함되는 후보 픽셀의 개수, 대응 블록의 움직임 정보가 어파인(affine) 변환을 통하여 도출되었는지 여부 등이 포함될 수 있으며, 이에 대한 상세한 내용은 후술하도록 한다.
대표 움직임 정보가 결정되면(S630), 복호화 제어수단은 결정된 대표 움직임 정보를 해당 서브 블록에 할당하여 메모리(470)에 저장한다(S640). 각 서브 블록에 할당되어 저장된 대표 움직임 정보들은 다음 픽처의 부호화 또는 복호화 과정에 이용된다.
도 7 및 도 8은 후보 픽셀의 다양한 위치를 설명하기 위한 도면이다. 이하에서는, 도 7 및 도 8을 참조하여, 다양한 위치에 설정된 복수 개의 후보 픽셀들을 이용하여 움직임 정보를 결정하는 본 발명의 기술적 특징에 대해 설명하도록 한다.
도 7에 도시된 바와 같이, 복호화 제어수단은 서브 블록(700)의 가장자리에 위치한 후보 픽셀들을 이용하여 대응 블록을 결정할 수 있다. 복호화 제어수단은 서브 블록(700)의 가장자리 중 모서리에 위치한 후보 픽셀들(TL, TR, BL 및 BR)을 이용하거나(도 7 (a)), 서브 블록(700)의 가장자리 중 중앙부에 위치한 후보 픽셀들(T, L, R 및 B)을 이용하여 대응 블록을 결정할 수도 있다(도 7 (b)). 또한, 복호화 제어수단은 도 7 (c)에 도시된 바와 같이, 서브 블록(700)의 중앙부에 위치한 후보 픽셀들(C1, C2, C3 및 C4)을 이용하여 대응 블록을 결정할 수 있다.
후보 픽셀들의 서브 블록(700) 내 위치는 더욱 다양하게 존재할 수 있다. 후보 픽셀들의 다양한 위치에 대한 예들이 도 8에 표현되어 있으며, 이하에서는 설명의 편의를 위해 서브 블록(700)의 일정 부분을 구성하며 후보 픽셀들 각각을 포함하는 영역 또는 블록을 하위 서브 블록(800)이라 지칭하도록 한다.
도 8에 도시된 예와 같이, 복호화 제어수단은 하위 서브 블록(800)의 중앙부에 위치한 후보 픽셀들(C1 내지 C4)을 이용하여 대응 블록을 결정하거나(도 8 (a)), 좌측 상단에 위치한 후보 픽셀들(C1 내지 C4)을 이용하여 대응 블록을 결정할 수도 있다(도 8 (b)).
또한, 실시형태에 따라, 복호화 제어수단은 우측 상단에 위치한 후보 픽셀들(C1 내지 C4)을 이용하여 대응 블록을 결정하거나(도 8 (c)), 좌측 하단에 위치한 후보 픽셀들(C1 내지 C4)을 이용하여 대응 블록을 결정하거나(도 8 (d)), 우측 하단에 위치한 후보 픽셀들(도 8 (e)의 C1 내지 C4) 또는 상단 중앙부에 위치한 후보 픽셀들(도 8 (f)의 C1 내지 C4)을 이용하여 대응 블록을 결정할 수 있다.
나아가, 실시형태에 따라, 복호화 제어수단은 우측 하단에 위치한 하위 서브 블록(800)의 좌측 상단 후보 픽셀(C4)을 이용하여 대응 블록을 결정할 수도 있다(도 8 (b)). 종래 방법이 좌측 상단에 위치한 하위 서브 블록(800)의 좌측 상단 후보 픽셀(C1)을 이용하여 대응 블록을 결정하였다면, 이 실시예는 해당 서브 블록(700)의 최대 중점에 해당하는 단일의 후보 픽셀(C4)을 이용하여 대응 블록을 결정하는 실시예에 해당한다.
도 8에는 서브 블록(700)이 네 개의 하위 서브 블록(800)들로 구성되는 형태를 기준으로 후보 픽셀의 위치를 결정하는 실시예만이 표현되어 있으나, 실시형태에 따라 서브 블록(700)은 하위 서브 블록(800)보다 더욱 적은 면적을 가지는 영역 또는 블록들로 구성될 수 있다 예를 들어, 전술된 바와 같이 서브 블록(700)은 최소의 크기를 가지는 복호화 대상 블록과 동일한 크기를 가지도록 구성될 수 있다.
또한, 도 8에는 하위 서브 블록(800)에 하나의 후보 픽셀이 포함된 실시예만이 표현되어 있으나, 하위 서브 블록(800)에 복수 개의 후보 픽셀이 포함된 실시예도 본 발명에서 구현될 수 있다.
도 9 내지 도 11은 움직임 정보 결정에 대한 다양한 기준을 설명하기 위한 도면이다. 이하에서는, 도 9 내지 도 11을 참조하여 움직임 정보의 이용 가능성, 대응 블록이 포함하는 후보 픽셀의 개수 등과 같이 움직임 정보를 결정하기 위한 다양한 기준에 대해 설명하도록 한다.
전술된 바와 같이, 본 발명은 서브 블록(700)에 포함된 복수 개의 후보 픽셀들을 이용하므로, 서브 블록(700) 각각에 대하여 후보 픽셀을 하나 이상 포함하는 블록(대응 블록)이 단일 개 또는 복수 개 결정될 수 있다. 따라서, 본 발명은 미리 설정된 기준을 적용하여 복수 개의 대응 블록들 중 어느 하나의 움직임 정보를 대표 움직임 정보로 설정하도록 구성될 수 있다.
대표 움직임 정보를 설정하기 위한 미리 설정된 기준에는 움직임 정보의 이용 가능성, 대응 블록이 포함하는 후보 픽셀의 개수 등이 포함될 수 있다. 이하에서는, 전자의 기준에 대해 먼저 설명한 후, 후자의 기준에 대해 후술하도록 한다.
복호화 제어수단은 대응 블록 또는 이 대응 블록의 움직임 정보를 기준으로 이용 가능성 여부를 판단한다. 여기서, 움직임 정보의 이용 가능성에는 대응 블록이 인트라 모드로 예측된 경우가 포함될 수 있다. 즉, 대응 블록이 인트라 모드로 예측된 경우, 해당 대응 블록의 움직임 정보는 이용 가능하지 않은 것으로 판단될 수 있다.
복호화 제어수단은 이용 가능성 여부를 판단하기 위해, 복수 개(n개, n은 2 이상의 자연수)의 후보 픽셀들 중 어느 하나(i번째 후보 픽셀, i는 1 이상 n 이하인 자연수)를 선별하고(S910), 선별된 i번째 후보 픽셀을 포함하는 대응 블록을 결정한다(S920).
대응 블록이 결정되면, 복호화 제어수단은 결정된 대응 블록이 이용 가능한지 여부(인트라 모드로 예측되었는지 여부)를 판단한다(S930). 대응 블록이 인트라 모드로 예측된 경우, 복호화 제어수단은 해당 대응 블록의 움직임 정보를 이용 가능하지 않은 것으로 간주하여 다음 번째(i++)의 후보 픽셀에 대해 이용 가능 여부를 판단한다(S940).
이와 같은 과정을 반복적으로 적용하여, i번째 후보 픽셀을 포함하는 대응 블록의 움직임 정보가 이용 가능한 것으로 판단되는 경우, 복호화 제어수단은 해당 움직임 정보(미리 설정된 기준을 만족하는 최초의 움직임 정보)를 서브 블록(700)의 대표 움직임 정보로 설정하고(S950), 설정된 대표 움직임 정보를 해당 서브 블록(700)에 할당하여 메모리(470)에 저장한다(S960).
실시형태에 따라, 도 10에 표현된 바와 같이, 이용 가능성(미리 설정된 기준)에는 대응 블록이 인트라 모드로 예측되었는지 여부 이외에, 대응 블록의 움직임 정보가 어파인(affine) 모드로 예측되었는지 여부가 더 포함될 수 있다.
어파인 모드란 영상의 평행 이동뿐만 아니라, 영상의 확대, 축소, 회전 등에 의해 유발되는 영상 왜곡을 고려하여 움직임 정보를 예측하는 방법이다. 따라서, 어파인 모드로 예측되었는지 여부란 어파인 모드를 통해 대응 블록의 움직임 정보가 예측되었는지 여부를 의미한다. 이를 달리 표현하면, 어파인 모드로 예측되었는지 여부란 대응 블록의 움직임 정보가 skip 모드, merge 모드, AMVP 모드 등을 포함하는 일반적 인터 모드로 예측되었는지 여부와 동일한 개념으로 이해될 수 있다.
n개의 후보 픽셀들 중 i번째 후보 픽셀을 선별하는 과정(S1010), i번째 후보 픽셀을 포함하는 대응 블록을 결정하는 과정(S1020), 대응 블록이 인트라 모드로 예측되었는지 여부를 판단하는 과정(S1030) 및 인트라 모드로 예측된 것으로 판단되는 경우 다음 번째 후보 픽셀에 대해 이용 가능성을 판단하는 과정(S1040) 등이 전술된 바와 동일하게 수행될 수 있다.
위 과정들이 반복적으로 수행되어 i번째 후보 픽셀을 포함하는 대응 블록이 인터 모드로 예측된 것으로 판단되는 경우, 복호화 제어수단은 해당 대응 블록의 움직임 정보가 어파인 모드로 예측되었는지 여부를 추가적으로 판단한다(S1050).
대응 블록의 움직임 정보가 어파인 모드로 예측된 것으로 판단되면, 복호화 제어수단은 해당 움직임 정보를 이용 가능하지 않은 움직임 정보로 간주하여 다음 번째(i++) 후보 픽셀에 대한 이용 가능성을 다시 판단한다(S1060).
이와 달리, 대응 블록의 움직임 정보가 일반적 인터 모드로 예측된 것으로 판단되는 경우, 복호화 제어수단은 해당 움직임 정보를 이용 가능한 움직임 정보로 간주하여 해당 움직임 정보를 서브 블록(700)의 대표 움직임 정보로 결정하고(S1070), 결정된 대표 움직임 정보를 해당 서브 블록(700)에 할당하여 메모리(470)에 저장한다(S1080).
실시형태를 달리하여, 도 10을 통해 설명된 실시예는 어파인 모드로 예측된 대응 블록의 움직임 정보를 이용 가능한 것으로 판단하도록 변형될 수 있다.
이 실시예에서, 대응 블록이 인트라 모드로 예측된 경우와 이 대응 블록의 움직임 정보가 어파인 모드로 예측된 경우 모두를 이용 가능하지 않은 것으로 설정하여 이용 가능성에 대한 1차 판단을 수행한다. 1차 판단의 결과, 이용 가능한 움직임 정보가 존재하지 않는 경우, 복호화 제어수단은 움직임 정보가 어파인 모드로 예측된 경우를 이용 가능한 것으로 재설정하여 이용 가능성에 대한 2차 판단을 수행함으로써 대표 움직임 정보를 결정한다.
실시형태에 따라, 도 10을 통해 설명된 실시예는 대응 블록이 인트라 모드로 예측된 경우와 이 대응 블록의 움직임 정보가 일반적 인터 모드로 예측된 경우 모두를 이용 가능하지 않은 것으로 설정하여 이용 가능성에 대한 1차 판단을 수행하도록 변경될 수 있다. 즉, 이 실시예에서 복호화 제어수단은 어파인 모드로 예측된 움직임 정보를 이용 가능한 움직임 정보로 판단한다.
만약, 1차 판단의 결과, 이용 가능한 움직임 정보가 존재하지 않는 경우, 복호화 제어수단은 움직임 정보가 일반적 인터 모드로 예측된 경우를 이용 가능한 것으로 재설정하여 이용 가능성에 대한 2차 판단을 수행함으로써 대표 움직임 정보를 결정할 수 있다.
도 9 및 도 10을 통해 설명된 실시예들은 미리 설정된 기준을 후보 픽셀(이 후보 픽셀을 포함하는 대응 블록의 움직임 정보) 모두에 대해 순차적으로 적용하여 대표 움직임 정보를 설정하는 방법에 해당한다. 여기서, 미리 설정된 기준이 적용되는 후보 픽셀들의 순서는 변경될 수 있다.
예를 들어, n의 값이 4인 경우, 복호화 제어수단은 TL→TR→BL→BR 순서, BR→TL→TR→BL 순서, BL→TL→BR→TR 순서 등 다양한 순서로 도 7 (a)의 후보 픽셀에 대한 이용 가능성을 판단할 수 있다. 또한, 복호화 제어수단은 C1→C2→C3→C4 순서, C2→C3→C1→C4 순서, C4→C1→C3→C2 순서, C4→C1→C2→C3 순서 등 다양한 순서로 도 7 (c) 및 도 8의 후보 픽셀에 대한 이용 가능성을 판단할 있다.
다른 예로, n의 값이 2인 경우, 복호화 제어수단은 TL→TR 순서, BR→TL 순서, BL→TL 순서 등 다양한 순서로 도 7 (a)의 후보 픽셀에 대한 이용 가능성을 판단할 수 있다. 또한, 복호화 제어수단은 C1→C2 순서, C2→C3 순서, C4→C1 순서 등 다양한 순서로 도 7 (c) 및 도 8의 후보 픽셀에 대한 이용 가능성을 판단할 수 있다.
다음으로, 미리 설정된 기준에 대한 후자의 기준 즉, 대응 블록이 포함하는 후보 픽셀의 개수가 미리 설정된 기준으로 적용되는 실시예에 대해 도 11을 이용하여 설명하면 아래와 같다.
이 실시예는 미리 설정된 기준을 후보 픽셀(이 후보 픽셀을 포함하는 대응 블록의 움직임 정보) 모두에 대해 순차적으로 적용하는 전술된 실시예와 달리, 미리 설정된 기준을 후보 픽셀 모두에 대해 동시적으로 적용하는 실시예에 해당한다. 또한, 이 실시예에서, 미리 설정된 기준에는 대응 블록이 인트라 모드로 예측되었는지 여부가 포함될 수 있다.
먼저, 복호화 제어수단은 대응 블록 중 인트라 모드로 예측되지 않은(즉, 인터 모드로 예측된) 대응 블록의 움직임 정보를 선별한다(S1110). 미리 설정된 기준의 적용은 전술된 바와 같은 순차적 방법을 통해 구현되거나 동시적으로 적용하는 방법을 통해 구현될 수 있다.
복호화 제어수단은 미리 설정된 기준을 만족하는 대응 블록들(인터 모드로 예측된 대응 블록들) 중 최대 개수의 후보 픽셀을 포함하는 대응 블록의 움직임 정보를 대표 움직임 정보로 결정하고(S1120), 결정된 대표 움직임 정보를 해당 서브 블록에 할당하여 메모리(470)에 저장한다(S1130).
이 실시예에서, 본 발명은 복수 개의 후보 픽셀들 중 하나 이상을 포함하는 복호화 대상 블록을 대응 블록으로 결정하므로, 특정 대응 블록에 포함되는 복수 개의 후보 픽셀들은 결과적으로 동일한 움직임 정보를 도출하게 된다. 따라서, '최대 개수의 후보 픽셀을 포함하는 대응 블록의 움직임 정보'란 '가장 많이 선별된 움직임 정보' 또는 '최다 빈도 수를 가지는 움직임 정보'와 동일한 의미로 이해될 수 있다.
메모리(470)에 저장되는 움직임 벡터의 형태와 관련하여, 움직임 벡터는 정수부 및 소수부를 각각 표현하는 두 가지의 값으로 구성될 수 있다. 일반적인 경우, 움직임 벡터 값은 예측의 정확도를 높이기 위해 움직임 보상 과정을 거처 1/4-pixel, 1/16-pixel 등과 같이 소수점 이하의 값을 가지게 된다. 이러한 형태의 움직임 벡터를 메모리(470)에 저장하기 위해, (v-bits) 정수부 및 (w-bits) 소수부를 별도로 표현할 수 있다. 예컨대, 움직임 벡터의 정확도가 1/4-pixel이고 움직임 벡터 값이 '3.75'이며 v가 6이고 w가 2인 경우, 정수부 값 '3'은 '000011'로 표현되고, 소수부 값 '0.75'는 '11'로 표현될 수 있다. 여기서, 움직임 벡터의 정확도가 1/4-pixel이므로 소수부 값 '0.00'은 '00'으로, '0.25'는 '01'로, '0.50'은 '10'으로 '0.75'는 '11'로 표현될 수 있다. 움직임 벡터의 정확도가 1/16-pixel인 경우, w는 4가 된다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
410: 복호화부 420: 역양자화부
430: 역변환부 440: 예측부
442: 인트라 예측부 444: 인터 예측부
450: 가산기 460: 필터
470: 메모리

Claims (12)

  1. 블록 기반의 영상 부호화 또는 복호화에서 기 설정된 크기의 이미지 영역 단위로 움직임 정보를 결정하는 방법으로서,
    대상 블록들 중 상기 영역에 포함된 복수 개의 후보 픽셀들 각각에 대응하는 하나 이상의 대응 블록을 결정하는 단계; 및
    상기 대응 블록들의 움직임 정보로부터, 상기 영역의 대표 움직임 정보를 결정하는 단계를 포함하는 것을 특징으로 하는 움직임 정보 결정 방법.
  2. 제1항에 있어서, 상기 대응 블록은,
    상기 후보 픽셀을 하나 이상 포함하는 대상 블록인 것을 특징으로 하는 움직임 정보 결정 방법.
  3. 제1항에 있어서, 상기 후보 픽셀은,
    상기 영역의 가장자리 또는 중앙부에 위치하는 것을 특징으로 하는 움직임 정보 결정 방법.
  4. 제1항에 있어서,
    상기 대표 움직임 정보를 결정하는 단계는,
    미리 설정된 기준을 상기 대응 블록들에 순차적으로 적용하여 상기 대표 움직임 정보를 결정하되, 상기 미리 설정된 기준을 만족하는 최초의 대응 블록의 움직임 정보를 상기 대표 움직임 정보로 결정하며,
    상기 미리 설정된 기준은,
    상기 대응 블록들이 인트라 모드로 예측되었는지 여부를 포함하는 것을 특징으로 하는 움직임 정보 결정 방법.
  5. 제4항에 있어서, 상기 미리 설정된 기준은,
    상기 대응 블록들의 움직임 정보가 어파인(affine) 모드로 예측되었는지 여부를 더 포함하는 것을 특징으로 하는 움직임 정보 결정 방법.
  6. 제1항에 있어서,
    상기 대표 움직임 정보를 결정하는 단계는,
    미리 설정된 기준을 상기 대응 블록들에 적용하여 상기 대표 움직임 정보를 결정하되, 상기 미리 설정된 기준을 만족하는 대응 블록들의 움직임 정보들 중 최다 빈도 수를 가지는 움직임 정보를 상기 대표 움직임 정보로 결정하며,
    상기 미리 설정된 기준은,
    상기 대응 블록이 인트라 모드로 예측되었는지 여부를 포함하는 것을 특징으로 하는 움직임 정보 결정 방법.
  7. 영상 복호화 장치로서,
    비트스트림(bitstream)을 복호화하여 대상 블록들을 복원하는 영상 복원부; 및
    상기 대상 블록들의 움직임 정보를 이용하여, 기 설정된 크기의 이미지 영역 단위로 움직임 정보를 결정하는 제어수단을 포함하고,
    상기 제어수단은,
    상기 대상 블록들 중 상기 영역에 포함된 복수 개의 후보 픽셀들 각각에 대응하는 하나 이상의 대응 블록을 결정하고, 상기 대응 블록들의 움직임 정보로부터 상기 영역의 대표 움직임 정보를 결정하는 것을 특징으로 하는 영상 복호화 장치.
  8. 제7항에 있어서, 상기 대응 블록은,
    상기 후보 픽셀을 하나 이상 포함하는 대상 블록인 것을 특징으로 하는 영상 복호화 장치.
  9. 제7항에 있어서, 상기 후보 픽셀은,
    상기 영역의 가장자리 또는 중앙부에 위치하는 것을 특징으로 하는 영상 복호화 장치.
  10. 제7항에 있어서,
    상기 제어수단은,
    미리 설정된 기준을 상기 대응 블록들에 순차적으로 적용하여 상기 대표 움직임 정보를 결정하되, 상기 미리 설정된 기준을 만족하는 최초의 대응 블록의 움직임 정보를 상기 대표 움직임 정보로 결정하며,
    상기 미리 설정된 기준은,
    상기 대응 블록들이 인트라 모드로 예측되었는지 여부를 포함하는 것을 특징으로 하는 영상 복호화 장치.
  11. 제10항에 있어서, 상기 미리 설정된 기준은,
    상기 대응 블록들의 움직임 정보가 어파인(affine) 모드로 예측되었는지 여부를 더 포함하는 것을 특징으로 하는 영상 복호화 장치.
  12. 제7항에 있어서,
    상기 제어수단은,
    미리 설정된 기준을 상기 대응 블록들에 적용하여 상기 대표 움직임 정보를 결정하되, 상기 미리 설정된 기준을 만족하는 대응 블록들의 움직임 정보들 중 최다 빈도 수를 가지는 움직임 정보를 상기 대표 움직임 정보로 결정하며,
    상기 미리 설정된 기준은,
    상기 대응 블록이 인트라 모드로 예측되었는지 여부를 포함하는 것을 특징으로 하는 영상 복호화 장치.
KR1020190025764A 2018-10-08 2019-03-06 움직임 정보 결정 방법 및 이를 이용한 영상 복호화 장치 KR20200040168A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180119878 2018-10-08
KR20180119878 2018-10-08

Publications (1)

Publication Number Publication Date
KR20200040168A true KR20200040168A (ko) 2020-04-17

Family

ID=70460887

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190025764A KR20200040168A (ko) 2018-10-08 2019-03-06 움직임 정보 결정 방법 및 이를 이용한 영상 복호화 장치

Country Status (1)

Country Link
KR (1) KR20200040168A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111953976A (zh) * 2020-07-08 2020-11-17 西安万像电子科技有限公司 图像处理方法及装置
CN113706573A (zh) * 2020-05-08 2021-11-26 杭州海康威视数字技术股份有限公司 一种运动物体的检测方法、装置及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113706573A (zh) * 2020-05-08 2021-11-26 杭州海康威视数字技术股份有限公司 一种运动物体的检测方法、装置及存储介质
CN113706573B (zh) * 2020-05-08 2024-06-11 杭州海康威视数字技术股份有限公司 一种运动物体的检测方法、装置及存储介质
CN111953976A (zh) * 2020-07-08 2020-11-17 西安万像电子科技有限公司 图像处理方法及装置

Similar Documents

Publication Publication Date Title
KR101986587B1 (ko) 영상의 부호화 방법 및 장치, 및 복호화 방법 및 장치
US11838516B2 (en) Inter-prediction method and image decoding device
US11671584B2 (en) Inter-prediction method and video decoding apparatus using the same
KR20130002242A (ko) 영상 정보의 부호화 방법 및 복호화 방법
US11425391B2 (en) Inter-prediction method and image decoding device
KR20220077095A (ko) 인트라 예측을 이용하는 비디오 코딩 방법 및 장치
KR20220071939A (ko) 비디오 부호화 및 복호화를 위한 장치 및 방법
KR20200040168A (ko) 움직임 정보 결정 방법 및 이를 이용한 영상 복호화 장치
US11962764B2 (en) Inter-prediction method and video decoding apparatus using the same
CN113812147B (zh) 使用块内复制的图像编码和解码
KR102648468B1 (ko) 레벨 설정 방법 및 이를 이용한 영상 복호화 장치
US20220360768A1 (en) Method for deriving bidirectional prediction weight index and video decoding apparatus
KR20230155387A (ko) 레벨 설정 방법 및 이를 이용한 영상 복호화 장치
CN117441334A (zh) 视频编码/解码方法和装置
KR20200081186A (ko) 시간적 후보의 움직임 벡터 유도 방법 및 이를 이용한 영상 복호화 장치
KR20200110138A (ko) 공유 후보 리스트를 이용한 움직임정보 유도 방법 및 영상 복호화 장치

Legal Events

Date Code Title Description
A201 Request for examination