KR102072117B1 - 모션 벡터의 예측 부호화/복호화 방법 및 장치 - Google Patents

모션 벡터의 예측 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
KR102072117B1
KR102072117B1 KR1020190029754A KR20190029754A KR102072117B1 KR 102072117 B1 KR102072117 B1 KR 102072117B1 KR 1020190029754 A KR1020190029754 A KR 1020190029754A KR 20190029754 A KR20190029754 A KR 20190029754A KR 102072117 B1 KR102072117 B1 KR 102072117B1
Authority
KR
South Korea
Prior art keywords
block
motion vector
prediction
representative
blocks
Prior art date
Application number
KR1020190029754A
Other languages
English (en)
Other versions
KR20190031457A (ko
Inventor
임정연
박중건
문주희
이영렬
김해광
전병우
한종기
임성원
이주옥
Original Assignee
에스케이텔레콤 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Publication of KR20190031457A publication Critical patent/KR20190031457A/ko
Application granted granted Critical
Publication of KR102072117B1 publication Critical patent/KR102072117B1/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • 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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Landscapes

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

Abstract

본 발명의 일 실시예에 따르면, 인터예측을 이용하여 부호화된 주변블록들 중에서, 인터예측방법, 인터예측방향, 움직임보상방향, 블록크기 및 참조픽쳐와의 거리 중에서 적어도 하나의 우선순위에 따라 대표블록을 선택하고, 상기 선택된 대표블록의 움직임벡터 및 시간적 후보 움직임벡터 중에서 선택된 움직임벡터를 예측움직임벡터로 이용하여 상기 현재블록의 움직임벡터를 부호화하여 비트스트림을 출력하는 영상부호화기; 및 상기 비트스트림으로부터 예측움직임벡터에 대한 인덱스 및 잔차벡터를 추출하고, 인터예측을 이용하여 부호화된 주변블록들 중에서 인터예측방법, 인터예측방향, 움직임보상방향, 블록크기 및 참조픽쳐와의 거리 중에서 적어도 하나의 우선순위에 따라 대표블록을 선택하여 선택된 대표블록을 고려하여 상기 인덱스를 식별하여 상기 인덱스에 대응되는 대표블록의 움직임벡터를 현재블록의 예측 움직임벡터를 복원하여 현재블록을 복원하는 영상복호화기를 포함하는 것을 특징으로 하는 영상 부호화/복호화 장치 및 방법을 제공한다.

Description

모션 벡터의 예측 부호화/복호화 방법 및 장치{Method and apparatus for predictive coding of motion vector, method and apparatus for predictive decoding of motion vector}
본 발명은 모션 벡터의 예측 부호화/복호화 방법 및 장치에 관한 것이다. 더욱 상세하게는, 현재 블록의 주변 블록들의 모션 벡터들을 이용하여 보다 정확하게 현재 블록의 모션 벡터를 예측하여 부호화 효율을 향상시키기 위한 방법 및 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
통상적으로 동영상은 일련의 픽쳐(Picture)로 구성되어 있으며, 각 픽쳐들은 블록(Block)과 같은 소정의 영역으로 분할된다. 영상의 영역이 블록으로 분할되는 경우에는 분할된 블록은 부호화 방법에 따라 크게 인트라 블록(Intra Block), 인터 블록(Inter Block)으로 분류된다. 인트라 블록은 인트라 예측 부호화(Intra Prediction Coding) 방식을 사용하여 부호화되는 블록을 뜻하는데, 인트라 예측 부호화란 현재 부호화를 수행하는 현재 픽쳐 내에서 이전에 부호화되고 복호화되어 복원된 블록들의 픽셀을 이용하여 현재 블록의 픽셀을 예측함으로써 예측 블록을 생성하고 현재 블록의 픽셀과의 차분값을 부호화하는 방식이다. 인터 블록은 인터 예측 부호화(Inter Prediction Coding)를 사용하여 부호화되는 블록을 뜻하는데, 인터 예측 부호화란 하나 이상의 과거 픽쳐 또는 미래 픽쳐를 참조하여 현재 픽쳐 내의 현재 블록을 예측함으로써 예측 블록을 생성하고 현재 블록과의 차분값을 부호화하는 방식이다. 여기서, 현재 픽쳐를 부호화하거나 복호화하는데 참조되는 픽쳐를 참조 픽쳐(Reference Picture)라고 한다.
일반적으로 영상신호를 부호화하는 이유는 영상의 크기(용량)를 줄이기 위한 것, 즉 영상압축을 하기 위함이다. 일반적으로 영상압축에는 인트라예측과 인터 예측 두가지 방법으로 예측을 수행한다. 예측의 역할은, 원래 신호에다가 그와 유사한 신호를 예측하여 그 차이 값을 전송하는 것이 목적이다. 픽셀값들이 100, 200, 150, 240, 178이 있다고 가정하였을 때, 이진수로 표현하면 100=1100100(2), 200=11001000(2), 150=10010110(2), 240=11110000(2), 178=10110010(2) 이 되고 총 40 bit가 사용된다. 하지만 이 값들을 예측을 하여 (예측된 값을 95, 190, 149, 240, 178 이라 가정) 원래 신호와의 차분값인 잔차신호만 부호화한다면 5=101(2), 10=1010(2), 1=1(2), 0=0(2)으로 표현될 수 있으며, 그만큼 부호화에 사용되는 비트수가 줄어들고 복호화장치로 전송되는 전체 영상의 크기가 줄어들게 된다. 즉, 예측을 잘 할수록 부호화 효율이 높아지게 된다.
예측기에는 크게 인트라예측, 인터예측, 두 가지 방법이 있다.
인트라예측은 현재 블록(원래신호)과 이웃하는 주위 픽셀들을 이용하여 예측블록(예측신호들)을 만든 후 그 차이인 잔여데이터(잔차신호)를 전송하는 방법이다. 이 경우, 잔차신호와, 어느 방향으로 예측을 하였는지를 나타내는 예측모드 인덱스를 전송하면 된다(예를 들어, 블록 위쪽을 이용하여 예측하면 예측모드는 0, 블록 왼쪽을 이용하여 예측하면 예측모드는 1).
인터예측은 첫 번째로 움직임추정을 통한 방법, 두 번째로 머지를 통한 방법, 세 번째로 스킵을 통한 방법 총 세 가지 방법이 있다.
첫 번째로, 움직임추정을 통한 방법은 검색 범위 내에서 예측블록을 찾기 위해 현재블록과 차이값이 가장 작은 블록(예측블록)을 찾아내어 현재블록과 예측블록과이 차이값인 잔차신호를 전송하는 방식이다. 이때, 예측블록의 위치를 알려주는 움직임파라미터를 같이 전송한다. 움직임 파라미터는에는, 예측블록의 위치를 알려주는 움직임벡터(Motion Vector)와, 어느 픽쳐에서 움직임벡터를 찾았는지 알려주는 참조픽쳐인덱스(바로 전 픽쳐에서 찾았는지 또는 두 픽쳐 전에서 찾았는지 알려주는 등), 예측을 과거 픽쳐에서 하였는지 미래 픽쳐에서 하였는지 알려주는 예측방향플래그(예컨대, L0: 과거픽쳐에서 예측, L1: 미래픽쳐에서 예측), 이렇게 세 가지 요소를 포함한다. 여기서 참조픽쳐인덱스와 예측방향플래그는 적은 비트수로 부호화가 가능하지만 움직임벡터의 경우 값 자체가 매우 큰 값을 가질 수 가 있어서 전송에 많은 비트 수를 필요로 할 수 있다. 그래서 움직임벡터만 따로 예측을 통해 예측움직임벡터를 추출하고 현재의 움직임벡터와 예측움직임벡터와의 차이인 잔차벡터만 전송하게 되는데, 움직임벡터 예측을 하여 예측움직임벡터(MVP)를 구하고 현재 블록의 움직임벡터와의 차이 벡터만 보내는 방식이다. 여기서, 움직임벡터를 예측하는 방법은 AMVP(Advanced Motion Vector Prediction)라 한다.
두 번째로 머지라는 방법이 있다. 머지는 현재 블록과 이웃하는 주위 블록의 움직임 파라미터를 그대로 현재블록의 부호화에 사용하는 방식이며, 그 움직임 파라미터를 이용하여 예측블록을 생성하고 현재블록과 예측블록의 차이값인 잔차신호를 복호화장치로 전송하게 된다. 머지방법이 AMVP 방법과 다른 점은, 머지는 직접 움직임추정을 하는 것이 아니라 주위블록의 움직임 파라미터를 이용하여 예측블록을 생성한다는 것이다. 머지의 장점으로는 움직임 추정을 사용하지 않으므로 그만큼 복잡도를 줄일 수 있으며, 움직임파라미터를 복호화장치에 전송할 필요 없이 주위 어느 블록의 움직임 파라미터를 사용하였는지 인덱스만 보내주면 되며, 움직임파라미터를 안보내고 인덱스만 보내주는 만큼 전송할 데이터양이 줄어들게 됨으로 부호화 효율이 좋아진다.
세 번째로 스킵이라는 방법이 있다. 스킵 방법은 현재블록과 이웃하는 주위 블록의 움직임파라미터를 이용하여 예측블록을 생성하고 어느 블록의 움직임 파라미터를 사용하였는지 인덱스를 전송한다는 점에서는 머지 방법과 비슷하나, 머지 방법과의 차이점은 스킵 방법은 현재블록에 대한 잔차신호는 부호화하지 않는다는 것이다.
이하, 종래기술에 따른 AMVP를 보다 상세하게 설명한다. AMVP란, 현재 블록의 움직임벡터의 예측값인 예측움직임벡터(MVP)를 현재 블록에 이웃하는 블록들의 움직임벡터들을 이용하여 얻고, 어느 블록의 움직임 벡터를 이용하여 움직임벡터의 예측값을 예측하였는지를 나타내는 인덱스를 부호화하는 방법이다. 영상 부호화 장치는 이 예측움직임벡터와 현재 움직임 벡터 간의 차이에 해당하는 차분 움직임 벡터를 산출한 후 부호화하여 복호화 장치로 전송한다.
도 1은 AMVP에 사용되는 현재블록의 주위 블록 A0, A1, B0, B1 및 B2을 예시한 도면이다.
도 1에서, AMVP에 이용되는 이러한 주위 블록들을 후보 블록들이라 한다. 현재 블록의 좌측하단에 인접하는 후보 블록들 A0 및 A1을 A 그룹이라 하고, 현재 블록의 상측에 인접하는 후보 블록들 B0, B1 및 B2를 B 그룹이라 할 때, A 그룹에 속하는 후보블록들의 움직임 벡터들 중 하나와 B 그룹에 속하는 후보블록들의 움직임 벡터들 중 하나가 각 그룹의 대표 움직임 벡터로서 선택된다. 그리고 시간적(Temporal)으로 하나의 움직임 벡터가 대표 움직임 벡터로서 선택된다. 시간적(temporal) 움직임 벡터의 예시로 동일위치 블록(co-located 블록)의 움직임 벡터가 있다. 동일위치 블록(Co-located 블록)이란, 이전 프레임에서 현재 블록과 같은 위치의 블록을 말한다.
도 2는 시간적 대표 움직임 벡터를 위한 유사위치 블록(A ~ E)을 예시한 도면이다.
도 2에서, 스킵, 머지와 AMVP 모두의 경우, 현재 블록의 이전 프레임 내에서 블록 A 내지 블록 D 중 하나의 블록이 포함된 블록을 동일위치(Co-located) 블록으로 결정하여 시간적(Temporal) 후보로 사용될 수 있다. 시간적 후보의 다른 예로 블록 E가 사용될 수 있으며, 블록 E 이외에도 주위에 이웃하는 모든 블록이 시간적 후보로 선택이 가능하다.
전술한 바와 같은 복수의 대표 움직임 벡터들 중에서 현재의 움직임 벡터와의 차분 움직임 벡터와, 어느 블록의 움직임 벡터를 선택했는지 알려주는 인덱스를 부호화 해보고 가장 부호화 효율이 높은 블록의 움직임 벡터가 최종적인 예측 움직임 벡터로 결정된다. 종래 기술에 따른 AMVP에서는 도 1에 도시한 바와 같이, 예측 움직임 벡터 결정에 이용되는 후보 블록들의 개수가 제한적이고 또한 미리 정해져 있어 부호화효율 향상이 제한적이라는 문제가 있다.
전술한 문제점을 해결하기 위해 본 발명은 현재 블록의 주변 블록들의 모션 벡터들을 이용하여 보다 정확하게 현재 블록의 모션 벡터를 예측함에 있어서 다양한 주변블록을 이용하여 후보블록 및 대표블록 선택의 폭을 넓힘으로써 부호화 효율을 향상 가능성을 높이는 데에 주된 목적이 있다.
본 발명의 일 실시예에 따르면, 영상을 부호화하는 장치에 있어서, 인터예측을 이용하여 부호화된 주변블록들 중에서, 각 주변블록에 대한 움직임 보상방향의 우선순위에 따라 대표블록을 선택하고, 상기 선택된 대표블록의 움직임벡터 및 기설정된 주변 픽처의 후보 움직임벡터 중에서 선택된 움직임벡터를 예측움직임벡터로 이용하여 상기 현재블록의 움직임벡터를 부호화하는 엔트로피부호화부를 포함하는 것을 특징으로 하는 영상 부호화 장치를 제공한다. 상기 엔트로피부호화부는, 과거방향 및 미래방향에 대한 움직임 보상방향의 우선순위를 설정하고, 상기 주변블록 중에서 우선순위가 높은 방향으로 움직임 보상을 수행한 블록을 대표블록으로 선택할 수 있다.
본 발명의 일 실시예에 따르면, 영상을 복호화하는 장치에 있어서, 비트스트림으로부터 AMVP인덱스를 추출하고, 인터예측을 이용하여 복호화된 주변블록들 중에서 각 주변블록에서 수행된 움직임 보상방향의 우선순위에 따라 하나 이상의 대표블록을 선택하고, 상기 선택된 대표블록 및 기설정된 주변 픽처의 후보 움직임블록을 고려하여 상기 추출된 AMVP인덱스를 식별하는 비트스트림 복호부; 및 상기 선택된 대표블록 및 상기 주변 픽처의 후보 움직임블록 중에서 상기 AMVP인덱스에 따라 식별된 블록의 움직임벡터를 현재블록의 예측움직임 벡터로 복원하여 상기 현재블록의 움직임벡터를 복원하여 예측블록을 생성하는 인터예측부를 포함하는 것을 특징으로 하는 영상 복호화 장치를 제공한다. 상기 비트스트림 복호부는, 과거방향 및 미래방향에 대한 움직임 보상방향의 우선순위를 설정하고, 상기 주변블록 중에서 우선순위가 높은 방향으로 움직임 보상을 수행한 블록을 대표블록으로 선택할 수 있다. 상기 대표블록은, 현재블록의 좌측 주변블록 그룹과 상측 주변블록 그룹에서 하나씩 선택할 수 있다.
여기서, 상기 엔트로피부호화부는, 상기 각 주변블록이 참조하는 픽처와의 거리에 대한 우선순위를 추가로 고려하여 상기 대표블록을 선택할 수 있다. 또한, 추가로 고려되는 상기 우선순위는 현재블록이 참조하는 픽처와의 거리와 상기 주변블록이 참조하는 픽처와의 거리가 서로 같은지 여부에 따라 결정될 수 있다.
본 발명의 일 실시예에 따르면, 영상을 복호화하는 장치에 있어서, 비트스트림으로부터 AMVP인덱스를 추출하고, 인터예측을 이용하여 복호화된 주변블록들 중에서 각 주변블록이 움직임 보상을 위하여 참조한 픽처와의 거리, 인터예측방법, 인터예측방향 및 블록크기 중 어느 하나의 우선순위에 따라 대표블록을 선택하고, 상기 선택된 대표블록 및 기설정된 주변 픽처의 후보 움직임블록을 고려하여 상기 추출된 AMVP인덱스를 식별하는 비트스트림 복호부; 및 상기 선택된 대표블록 및 상기 주변 픽처의 후보 움직임블록 중에서 상기 AMVP인덱스에 따라 식별된 블록의 움직임벡터를 현재블록의 예측움직임 벡터로 복원하여 상기 현재블록의 움직임벡터를 복원하여 예측블록을 생성하는 인터예측부를 포함하는 것을 특징으로 하는 영상 복호화 장치를 제공한다.
본 발명의 일 실시예에 따르면, 영상을 부호화하는 방법에 있어서, 인터예측을 이용하여 부호화된 주변블록들 중에서, 각 주변블록에 대한 움직임 보상방향의 우선순위에 따라 대표블록을 선택하는 단계; 및 상기 선택된 대표블록의 움직임벡터 및 기설정된 주변 픽처의 후보 움직임벡터 중에서 선택된 움직임벡터를 예측움직임벡터로 이용하여 상기 현재블록의 움직임벡터를 부호화하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법을 제공한다.
본 발명의 일 실시예에 따르면, 영상을 복호화하는 방법에 있어서, 비트스트림으로부터 AMVP인덱스를 추출하는 단계; 인터예측을 이용하여 복호화된 주변블록들 중에서 각 주변블록에서 수행된 움직임 보상방향의 우선순위에 따라 하나 이상의 대표블록을 선택하는 단계; 상기 선택된 대표블록 및 기설정된 주변 픽처의 후보 움직임블록을 고려하여 상기 추출된 AMVP인덱스를 식별하는 단계; 및 상기 선택된 대표블록 및 상기 주변 픽처의 후보 움직임블록 중에서 상기 AMVP인덱스에 따라 식별된 블록의 움직임벡터를 현재블록의 예측움직임 벡터로 복원하여 상기 현재블록의 움직임벡터를 복원하여 예측블록을 생성하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법을 제공한다. 여기서, 상기 하나 이상의 대표블록을 선택하는 단계에서는, 과거방향 및 미래방향에 대한 움직임 보상방향의 우선순위를 설정하고, 상기 주변블록 중에서 우선순위가 높은 방향으로 움직임 보상을 수행한 블록을 대표블록으로 선택할 수 있으며, 상기 대표블록은, 현재블록의 좌측 주변블록 그룹과 상측 주변블록 그룹에서 하나씩 선택할 수 있다.
본 발명의 일 실시예에 따르면, 영상을 복호화하는 방법에 있어서, 비트스트림으로부터 AMVP인덱스를 추출하고, 인터예측을 이용하여 복호화된 주변블록들 중에서 각 주변블록이 움직임 보상을 위하여 참조한 픽처와의 거리, 인터예측방법, 인터예측방향 및 블록크기 중 어느 하나의 우선순위에 따라 대표블록을 선택하는 단계; 상기 선택된 대표블록 및 기설정된 주변 픽처의 후보 움직임블록을 고려하여 상기 추출된 AMVP인덱스를 식별하는 단계; 및 상기 선택된 대표블록 및 상기 주변 픽처의 후보 움직임블록 중에서 상기 AMVP인덱스에 따라 식별된 블록의 움직임벡터를 현재블록의 예측움직임 벡터로 복원하여 상기 현재블록의 움직임벡터를 복원하여 예측블록을 생성하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법을 제공한다.
본 발명에 의하면, 현재 블록의 주변 블록들의 모션 벡터들을 이용하여 보다 정확하게 현재 블록의 모션 벡터를 예측함에 있어서 다양한 주변블록을 이용하여 후보블록 및 대표블록 선택의 폭을 넓힘으로써 부호화 효율을 향상 가능성을 높이는 효과가 있다.
도 1은 AMVP에 사용되는 현재블록의 주위 블록 A0, A1, B0, B1 및 B2을 예시한 도면이다.
도 2는 시간적 대표 움직임 벡터를 위한 유사위치 블록을 예시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 영상 부호화 장치의 구성을 간략하게 나타낸 블록 구성도이다.
도 4는 최대 부호화단위 블록의 분할 예시를 나타낸 도면이다.
도 5는 예측단위 블록의 예를 도시한 도면이다.
도 6은 현재 블록 위쪽의 픽셀값들을 이용하여 예측 블록을 만드는 과정에 대한 경우를 도시한 도면이다.
도 7은 인트라예측모드의 종류 및 그 인덱스를 예시한 도면이다.
도 8은 여러가지 방법의 인터예측을 수행하는 인터예측부의 내부를 예시한 도면이다.
도 9는 움직임 추정을 통해 참조 픽쳐에서 현재 블록과 가장 유사한 블록을 예측 블록으로 결정하는 경우를 예시한 도면이다.
도 10은 머지 방법을 이용한 인터예측에 사용되는 주변블록의 예를 도시한 도면이다.
도 11은 메모리에 저장된 참조 픽쳐의 픽셀들과 정수 픽셀 이하로 보간된 픽셀들을 나타낸 도면이다.
도 12는 양자화된 계수블록을 지그재그 스캔하는 경우를 예시한 도면이다.
도 13은 AMVP와 머지, 스킵에 사용되는 인덱스를 부호화하는 절삭형 코드에 대하여 예시한 도면이다.
도 14는 현재블록의 주변블록의 인터예측모드를 예시한 도면이다.
도 15는 현재블록의 주변블록의 인터예측 방향을 예시한 도면이다.
도 16은 현재블록의 주변블록의 블록크기를 예시한 도면이다.
도 17은 후보블록의 움직임벡터에서 대표 움직임벡터를 구하는 방법을 나타낸 흐름도이다.
도 18은 현재블록의 주변블록의 인터예측모드 및 예측방향을 예시한 도면이다.
도 19는 주변블록의 다른 예를 나타낸 것이다.
도 20은 본발명의 일 실시예에 따른 영상 복호화 장치의 구성을 간략하게 나타낸 블록 구성도이다.
이하에서는 영상의 특성에 따라 AMVP의 주변 후보 블록 설정 시, 현재 블록의 움직임벡터와 가장 유사한 예측움직임벡터를 더 정확하게 찾을 수 있도록 하는 기술을 설명한다. 이하의 본 발명의 실시의 형태에 대해서, 도면 및 수식 등을 참조하면서 설명한다. 이하에서는 영상을 블록 단위로 부호화하고 복호화하는 장치에 대해 예를 들어 설명한다.
도 3은 본 발명의 일 실시예에 따른 영상 부호화 장치(100)의 구성을 간략하게 나타낸 블록 구성도이다. 이하, 본 발명의 일 실시예에 따른 영상 부호화 장치(100)의 각 구성요소를 간단히 설명한다.
본 발명의 일 실시예에 따른 영상 부호화 장치(100)는 영상을 부호화하는 장치로서, 영상부호화 장치(100)는 크게 블록분할부(101, Coding Tree Generator), 인트라예측부(102, Intra Predictor), 인터예측부(103, Inter Predictor), 변환부(104, Transformer), 양자화부(105, Quantizer), 움직임 보상부(106, Motion Compensator), 엔트로피부호화부(107, Entropy Coder), 역양자화부(108, Inverse Quantizer), 역변환부(109, Inverse Tranformer), 메모리(110, Memory), 감산부(111, Subtractor) 및 가산부(112, Adder)를 포함할 수 있다. 이러한 영상 부호화 장치(100)는 개인용 컴퓨터(PC: Personal Computer), TV, 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 단말기(Wireless Terminal), 디지털 TV 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.
블록분할부(101)는 입력 영상을 부호화단위 블록으로 분할한다. 부호화단위 블록은 인트라예측/인터예측을 위해 분할되는 가장 기본적인 단위이고, 4개의 같은 크기(정사각형)의 블록으로 반복적으로 분할되는 구조이다. 예를 들어, 최대 부호화단위 블록은 64x64 크기로 정할 수 있고 최소 부호화단위 블록은 8x8 로 정할 수 있다. 도 4는 최대 부호화단위 블록의 분할 예시를 나타낸 도면이다. 각각의 부호화단위 블록은 예측 종류에 따라 도 5와 같이 1개 또는 그 이상의 예측단위 블록을 포함한다. 예측단위 블록은 예측 정보를 가지고 있는 가장 작은 단위이다. 보통 3-레벨 쿼드트리(Quadtree)를 이용하는데 그 이상의 레벨을 이용할 수도 있고, 일반적으로 루마(luma), 크로마(chroma)를 위한 최대 뎁스(depth)는 서로 동일하다. 도 5에서, (201)은 부호화단위 블록이 그대로 예측단위 블록으로 사용되었을 경우를 나타낸다. (202), (203), (205), (206)은 동일한 크기의 예측단위 블록 2개를 포함하는 경우이며, (204)는 동일한 크기의 예측단위 블록 4개를 포함하는 경우이고, (207) 과 (208) 은 1:3 의 비율을 갖는 예측단위 블록 2개를 포함하는 경우이다. 도 5의 예시 이외에도 부호화단위 블록은 여러가지 모양으로 분할될 수 있다.
인트라예측부(102)는 현재 블록을 현재 픽쳐 내의 픽셀값을 이용하여 예측블록(Predicted Block)을 생성한다. 픽쳐 내의 정보를 이용하여 예측을 하는데, 현재블록과 이웃하는 픽셀값들을 이용하여 도 6과 같이 예측 블록을 만든 후 현재 블록과의 차분값을 부호화한다. 도 6의 경우 현재블록의 위쪽에 존재하는 픽셀값들을 이용하여 예측블록을 생성하였으나, 위쪽의 픽셀값 외에도 도 7과 같이 현재블록 주위의 이웃하는 픽셀값들을 여러 각도의 픽셀값을 이용하는 인트라모드로 예측블록을 생성할 수도 있다. 도 7에 도시한 각각의 숫자는 인트라예측모드의 인덱스를 예시한 것이다. 예측블록을 생성한 후에는 어떤 예측모드가 사용되었는지를 나타내는 인덱스를 부호화한다.
한편, 인트라예측을 할 때 이웃하는 픽셀들에 스무딩 필터를 이용하여 스무딩(Smoothing)하게 한 후 예측블록을 사용할 수도 있다. 예를 들어 [1,2,1] 필터를 사용할 경우 예측에 사용되는 픽셀들은 수학식 1과 같이 변환된다.
[수학식 1]
Y[n] = (X[n-1] + 2*X[n] + X[n+1] + 2)/4
수학식 1에서 X[n]은 필터링 대상 픽셀, X[n-1] 및 X[n+1]은 현재블록의 경계선에 평행한 방향의 필터링 대상 픽셀의 좌우 인접 픽셀을 의미한다.
또한, 예측단위 블록의 크기와 인트라 예측에 사용되는 예측모드의 각도에 따라 스무딩(Smoothing)을 할지 또는 하지 않을지 여부를 결정할 수도 있다. 이 경우, 이러한 스무딩을 결정하기 위하여 룩업테이블(Look Up Table)을 만들어 사용할 수도 있다.
도 8은 여러가지 방법의 인터예측을 수행하는 인터예측부(103)를 예시한 도면이다.
인터예측부(103)는 현재 블록을 이전에 부호화되고 복호화된 픽쳐들의 정보를 이용하여 예측 블록을 생성한다. 도 8과 같이 스킵(Skip), 머지(Merge), 움직임 추정(Motion Estimation) 등의 세가지 방법에 따라 예측을 수행할 수 있다.
도 9는 움직임 추정을 통해 참조 픽쳐에서 현재 블록과 가장 유사한 블록을 예측 블록으로 결정하는 경우를 예시한 도면이다.
움직임추정(301)은 픽쳐 간의 정보를 이용하여 예측하는 것을 의미한다. 도 9를 참조하면, 움직임 추정을 통해 참조 픽쳐에서 현재 블록과 가장 유사한 블록을 예측 블록으로 결정하고, 예측 블록의 위치를 움직임 벡터로 표현한다. 그리고 엔트로피부호화부(107)는 해당 움직임 파라미터(Motion Parameter)를 부호화한다. 여기서 움직임 파라미터는 움직임 벡터(MV, Motion Vector), 참조 픽쳐 인덱스(Referecnce Picture Index) 및 예측 방향(Prediction Direction)을 포함할 수 있는데, 움직임 벡터의 경우 그대로 부호화할 경우 효율이 떨어지므로, 예측움직임벡터를 생성하여 원래의 움직임 벡터와의 차분값인 차분움직임벡터를 부호화한다. 후술하는 영상 복호화장치는 영상부호화 장치로부터 전송된 비트스트림에서 추출한 움직임 파라미터를 이용하여 예측 블록을 복원한 후, 복원한 예측 블록과 비트스트림에서 추출한 잔차블록의 값을 합하여 현재 블록을 복호화한다.
AMVP(302, Advanced Motion Vector Prediction)란, 현재 블록의 움직임벡터를 이웃하는 블록의 움직임벡터를 이용하여 예측하고, 어느 블록의 움직임 벡터를 이용하여 예측하였는지 그 인덱스를 부호화하는 방법이다. 수학식 2는 차분 움직임 벡터(MVD, Motion Vector Difference)를 산출하는 수식을 나타낸다.
[수학식2]
MVD = MV - MVP
여기서 MV는 현재블록의 움직임벡터, MVP는 이웃하는 블록에서 예측한 예측움직임벡터, MVD는 현재블록의 움직임벡터와 예측움직임벡터의 차이값인 차분움직임벡터이다.
도 10은 머지 방법을 이용한 인터예측에 사용되는 주변블록의 예를 도시한 도면이다.
머지(303, Merge)란, 현재블록의 이웃하는 블록에서 현재 블록을 위한 움직임 파라미터를 결정하는 기술의 하나이다. 도 10을 참조하면, 블록 A 내지 블록 E와 도 2의 시간적 후보 블록에서 머지를 위한 최적의 블록을 찾을 수도 있으며, 또는 도 10의 블록 A 내지 블록 E에 우선순위를 두어 우선순위가 상위인 두 개의 후보 블록(즉, 대표블록)과 도 2에서의 시간적 후보 블록 중에서 최적의 블록이 결정될 수도 있다. 참고로 모든 실시예를 통틀어, 시간적 후보블록이란 시간적으로 주변에 위치하는 픽처의 블록을 의미하며, 바로 이전 픽처에 위치하되 현재블록과 동일한 공간적 위치에 존재하는 블록이 사용될 수도 있다. 시간적 후보블록의 의미는 AMVP에 사용되는 경우도 머지의 경우와 마찬가지의 의미가 된다.
스킵(304, Skip)이란 주변블록의 움직임 파라미터를 이용하여 현재블록과 가장 유사한 블록(예측블록)을 찾은 경우, 잔차블록의 잔차신호 값이 모두 0인 경우를 의미한다. 이 경우에는 잔차신호를 따로 부호화할 필요 없이 주변 블록의 움직임 파라미터를 이용하여 예측 블록을 만들고 현재 블록을 부호화한다. 그리고 어떤 블록의 움직임 파라미터 정보를 사용하였는지를 나타내기 위하여 해당 블록의 인덱스를 부호화한다.
AMVP, 머지 및 스킵을 위한 현재블록과 이웃하는 주위 블록들의 후보는 도 1에 도시한 이웃블록(A0~B2)과 도 10에 도시한 이웃 블록(A ~ E) 이외에도 다른 이웃하는 블록들이 후보가 될 수 있다.
감산부(111)는 현재블록에서 예측블록을 감산하여 잔차블록을 생성한다.
변환부(104)는 잔차 블록을 변환하여 변환 블록을 생성한다. 변환 블록은 변환 및 양자화 과정을 위해 사용되는 단위이다. 변환단위는 도 4처럼 부호화단위와 동일하게 분할될 수도 있고, 다른 다양한 방법으로 분할하여 변환을 수행할 수도 있다. 변환단위에 대한 정보도 부호화단위 블록과 마찬가지로 쿼드트리 구조를 이용할 수 있으며, 변환 단위는 여러 가지 크기를 가질 수 있다. 변환부(104)는 잔차신호를 주파수 영역으로 변환하여 변환 계수를 가지는 변환 블록을 생성하여 출력한다. 여기서 잔차신호를 주파수 영역으로 변환하는 방법으로는 이산 코사인 변환(DCT: Discrete Cosine Transform)기반 변환, 이산 사인 변환(DST: Discreate Sine Transform), KLT(Karhunen Loeve Transform) 등 다양한 변환 기법을 이용할 수 있으며, 이를 이용하여 잔차신호가 주파수 영역으로 변환되어 변환 계수로 변환된다. 변환 기법을 편하게 사용하기 위해 기저벡터(basis vector)를 이용하여 매트릭스(Matrix) 연산을 하게 되는데 예측 블록이 어떤 방식으로 부호화되었는지 여부에 따라 매트릭스 연산시 변환기법들을 다양하게 섞어 사용할 수 있다. 예를 들어, 인트라예측시 예측모드에 따라 가로방향으로는 이산 코사인 변환을 사용하고 세로 방향으로는 이산 사인 변환을 사용할 수도 있다.
양자화부(105)는 변환 블록을 양자화하여 양자화된 변환 블록을 생성한다. 즉, 양자화부(105)는 변환부(104)로부터 출력되는 변환 블록의 변환 계수들을 양자화하여 양자화된 변환 계수(Quantized Transform Coefficient)를 가지는 양자화된 변환 블록을 생성하여 출력한다. 여기서, 양자화 방법으로는 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization) 또는 양자화 가중치 매트릭스(Quantization Weighted Matrix) 등이 이용될 수 있지만, 이를 개량한 양자화 등 다양한 양자화 방법이 이용될 수 있다.
역양자화부(108)는 양자화된 변환 블록에 대하여 양자화시에 이용한 양자화 기법을 역으로 수행하여 역양자화하여 변환계수를 가지는 역양자화 변환 블록을 복원한다.
역변환부(109)는 변환 시에 사용한 방법과 동일한 방법을 이용하여 역양자화 변환 블록을 역변환하여 잔차신호를 가지는 잔차 블록을 복원하는데, 변환부(104)에서 이용한 변환 기법을 역으로 수행하여 역변환한다.
가산부(112, Adder)는 역변환부(109)에서 복원된 잔차신호와, 인트라예측 또는 인터예측을 통하여 생성된 예측 영상을 가산하여 현재 블록을 복원한다.
메모리(110)는 역변환부(109)에서 복원된 잔차신호와, 인트라예측 또는 인터예측을 통하여 생성된 예측 영상을 가산하여 복원된 현재 블록을 저장하며, 다음 블록 또는 다음 픽쳐 등 다른 블록을 예측하는데 활용될 수 있다.
움직임보상부(106)는, 정수 픽셀 이하의 픽셀은 참조픽쳐의 픽셀값들 간의 보간을 통해 참조픽쳐의 해상도를 높인 후 움직임 보상을 수행할 수 있다.
도 11에는 메모리에 저장된 참조 픽쳐의 픽셀들과 정수 픽셀 이하로 보간된 픽셀들을 나타내었다. 참조 픽쳐의 이미 복원된 픽셀 A~U를 보간 필터(Interpolation Filter)로 필터링하면 보간된 픽셀 a~s를 생성할 수 있으며, 보간된 픽셀 a~s는 도시된 바와 같이 이미 복원된 픽셀들 사이에 보간되어 참조 픽쳐의 해상도가 4배 이상 높아질 수 있다. 이때 사용하는 보간 필터는 양선형 필터(Bilinear Filter), DCT기반 필터(DCT based Inerpolation Filter), 큐빅 필터(Cubic Interpolation Filter)등 다양한 필터가 사용될 수 있다.
엔트로피부호화부(107)는 양자화된 변환 블록을 부호화하여 비트스트림을 출력한다. 즉, 엔트로피부호화부(107)는 양자화부(105)로부터 출력되는 양자화된 변환 블록의 양자화된 변환계수를 도 12의 예에서처럼 지그재그 스캔 등 다양한 스캔 방식으로 스캔한 주파수 계수열을 엔트로피 부호화(Entropy Encoding) 등 다양한 부호화 기법을 이용하여 부호화하고, 후술하는 영상 복호화 장치에서 해당 블록을 복호화하는데 필요한 부가적인 정보들(예를 들면, 예측 모드에 대한 정보, 양자화 계수, 움직임 파라미터 등)을 포함하는 비트스트림을 생성하고 출력한다.
도 13은 AMVP와 머지, 스킵에 사용되는 인덱스를 부호화하는 절삭형(Truncated) 코드에 대한 예시이다. 주변에 이용가능한 블록의 개수에 따라서 비트를 다르게 할당할 수 있다. 이 외에도 주변의 이용가능한 블록의 개수에 상관없이 도 13의 첫번째 테이블처럼 최대 개수 블록에 대한 테이블(table)만 사용하는 것도 가능하다.
본 실시예에서 엔트로피부호화부(107)는 인터예측을 수행한 주변블록 중에서 수행된 인터예측방법의 우선순위에 따라 대표블록을 선택하고, [선택된 대표블록의 움직임벡터 및 이전 픽쳐에 포함된 블록 중에서 현재블록과 유사한 위치에 있는 블록의 움직임벡터]들 중에서 현재블록의 움직임벡터와 가장 유사한 최적의 움직임벡터를 예측움직임벡터로 이용하여 현재블록의 움직임벡터를 부호화할 수 있다. 여기서 인터예측 방법이란, AMVP 방법, 스킵, 머지 중에서 하나의 방법을 의미한다. 또한 이전 픽쳐에 포함된 블록 중에서 현재블록과 동일 또는 유사한 위치에 있는 블록이란 전술한 바와 같은 시간적 후보블록을 의미한다. 엔트로피부호화부(107)는 여기서 선택된 대표 움직임벡터 중에서 현재 움직임벡터와 가장 유사한 최적의 움직임벡터를 예측움직임벡터로 선택하여 선택된 위치에 대한 인덱스를 부호화하여 영상 복호화장치로 전송한다. 또한 엔트로피부호화부(107)는 현재 움직임벡터와 설정된 예측움직임벡터에 대한 차분값을 부호화하여 비트스트림으로 생성하여 영상 복호화장치로 전송한다.
종래기술에 따른 AMVP의 경우, 현재 블록의 주변 블록들 중에서 도 1과 같이 미리 정해진 소수의 블록들의 움직임 벡터들만이 대표 움직임 벡터 선택에 이용된다. 그러나 본 실시예에서는, 종래기술과 달리, 더 많은 주변 블록들의 움직임 벡터들(예컨대, 모든 주변 블록들의 움직임 벡터들)이 대표 움직임 벡터 선택에 이용된다.
이하 설명될 제1실시예 내지 제3실시예에서는, AMVP(302)가 이용되는 경우, 인터예측모드에 따라 현재블록에 이웃하는 주변 후보 블록에서 AMVP를 위한 대표 블록을 왼쪽 그룹과 위쪽 두 그룹에서 각각 1개씩 선정하여 AMVP를 위한 대표블록으로 설정하는 방법을 나타낸 것이다. 참고로, 이하의 설명에서 후보블록으로부터 대표벡터를 선정한다고 설명되는 경우의 의미는 후보블록으로부터 소정의 기준에 의해 대표블록을 선정하고 선정된 대표블록의 움직임벡터 중에서 현재 움직임벡터와 가장 유사한 움직임벡터(즉, 대표벡터)를 예측 움직임벡터로 설정한다는 의미이다.
(제1실시예)
도 14는 현재블록의 주변블록의 인터예측모드를 예시한 도면이다.
본 실시예에서, 엔트로피부호화부(107)는 현재블록의 움직임벡터에 대한 정보의 부호화시 주변 후보 블록들이 속해 있는 두 그룹들(예컨대 도 14 에서 왼쪽 블록그룹(a, b, c)과 위쪽 블록그룹(d, e, f, g))에서 각각 대표블록을 선출하고, 선출된 2개의 대표블록의 움직임벡터와 시간적(temporal) 후보블록의 움직임벡터(즉, 시간적 후보벡터)까지 포함한 총 3개의 대표벡터 중 가장 최적인 예측움직임벡터를 선택하고 그에 해당하는 인덱스를 할당하여 부호화한다. 그리고 원래의 현재블록의 움직임 벡터와 선택된 예측 움직임벡터의 차이 값인 잔차벡터(mvd)를 부호화한다.
만일, 인터예측모드의 우선순위를 'AMVP > 스킵 > 머지' 로 설정하였을 경우, 대표 벡터를 선정하는 과정에서는 AMVP를 이용하여 부호화된 블록을 우선적으로 선정하고, AMVP를 이용한 블록이 없을 경우 스킵, 머지 순으로 부호화된 블록을 선정한다. 따라서, 도 14에서 왼쪽 그룹에서는 블록 c, 위쪽 그룹에서는 블록 f가 대표벡터로 선택된다. 도 14에서는 만약, 인터예측모드가 동일한 블록이 복수개 존재하는 경우, 예컨대 위쪽 그룹의 경우에는 '오른쪽>왼쪽', 왼쪽 그룹의 경우에는 '아래>위'와 같이 선택방향의 우선순위를 두어 대표벡터를 선정한다. 여기서, 선택방향의 우선순위는 그 반대방향으로 할 수도 있다. 또한 대표벡터의 생성은 반드시 왼쪽 그룹에서 하나, 위쪽 그룹에서 하나인 것에 한정되지 않고 하나의 그룹에서 복수개의 대표벡터를 선택할 수도 있다. 또한, 인터예측모드의 우선순위를 'AMVP > 스킵 > 머지' 로 설정하는 것에 한정되지 않고, AMVP, 스킵 및 머지 방법에 대하여 다양한 방법으로 우선순위를 정할 수 있다.
한편, 후술하는 영상 복호화 장치에서 복호화하는 과정의 경우, 대표 블록을 선정하는 과정은 영상 부호화과정에서의 대표블록 선정과정과 동일하다. 또한, 후술하는 영상 복호화 장치에서 대표블록 및 시간적 후보블록 중에서 어느 블록이 최종적으로 선택되었는지에 대한 인덱스를 비트스트림으로부터 추출하고 추출된 인덱스에 해당하는 블록의 움직임벡터를 예측 움직임벡터로 복호화하고, 비트스트림으로부터 복호화된 잔차벡터를 더하여 최종적인 현재블록의 움직임 벡터를 복원한다.
(제2실시예)
도 15는 현재블록의 주변블록의 인터예측 방향을 예시한 도면이다.
제2실시예에서, 엔트로피부호화부(107)는 제1실시예와 마찬가지로 현재블록의 움직임벡터에 대한 정보의 부호화시 주변 후보 블록들이 속해 있는 두 그룹들(도 14 에선 왼쪽 그룹(a, b, c)과 위쪽그룹(d, e, f, g))에서 각각 선택된 대표블록 및 시간적(temporal) 후보블록 등 3개의 블록의 대표벡터 중 가장 최적인 예측움직임벡터를 선택하고 그에 해당하는 인덱스를 할당하여 부호화한다. 그리고 원래의 현재블록의 움직임 벡터와 선택된 예측 움직임벡터의 차이 값인 잔차벡터(mvd)를 부호화한다. 이는 후술하는 제3실시예에서도 마찬가지이다.
다만, 제2실시예에서는 주변블록의 인터예측 방향의 우선순위에 따라 대표블록을 선정하는 점이 제1실시예와 다른 점이다. 도 15의 예에서 현재 블록의 주위 블록들이 단방향 또는 양방향으로 부호화되었는지 확인 후, 우선순위를 설정(예컨대 '단방향>양방향'으로 설정)하였을 경우, 단방향으로 부호화된 블록의 움직임벡터를 대표벡터로 우선적으로 선정할 수 있다. 제1실시예와 마찬가지로 대표블록은 왼쪽 그룹 블록(a, b, c, d) 및 위쪽 그룹 블록(d, e, f, g)에서 각각 하나씩의 대표블록을 선택할 수 있으며, 경우에 따라서는 왼쪽 및 위쪽 그룹에서 각각 하나 이상의 대표블록을 선택하거나, 왼쪽그룹 및 위쪽그룹을 통틀어서 하나의 대표블록만 선택할 수도 있다. 예측방향의 우선순위는 과거 방향(list0), 미래방향(list1), 양방향의 3가지 중에서 2개 이상에 대하여 우선순위를 설정할 수도 있다.
만일, '양방향>단방향'의 우선순위가 설정되고, 왼쪽그룹의 경우 '아래 > 위'의 선택방향의 우선순위가 설정되고, 위쪽 그룹의 경우 '오른쪽 > 왼쪽'의 선택방향의 우선순위가 설정된 경우, 도 15에서 대표블록으로는 왼쪽그룹에서 블록 a, 위쪽 그룹에서 블록 g가 선택된다.
또한, 현재 블록의 움직임보상 방향에 따라 후보블록의 움직임보상 방향의 우선순위를 고려하여 후보블록 중에서 하나 이상의 대표블록을 선택할 수도 있다. 예를 들어 현재 블록의 움직임추정이 과거 방향으로 진행되고 있다면, 주위 블록들 중 어느 하나의 블록(즉, 제1후보블록)에 대하여 움직임보상 방향이 현재 블록의 움직임추정 방향과 동일한 방향(즉, 과거 방향)인지 여부를 판단하여 대표블록으로 선택할지 여부를 결정한다. 만일, 제1후보블록에 대하여 현재블록의 움직임 추정방향과 다른 경우에는 현재 블록과 제1후보블록에 대하여 참조픽처의 일련번호(POC: Pictute of Count)가 서로 일치하는지 여부를 확인하여 픽처의 일련번호가 서로 같은 경우에 해당 제1후보블록을 대표블록으로 선택할 수 있다.
위와 같이 제1후보블록에 대하여 움직임보상 방향의 우선순위를 고려하여 대표블록으로 선택할지 여부를 확인한 후에 제1후보블록이 대표블록으로 선택되지 않은 경우, 다른 후보블록(즉, 제2후보블록)에 대하여도 제1후보블록의 경우와 유사하게 움직임보상 방향의 우선순위를 고려하여 따라 제2후보블록을 대표블록으로 선택할지 여부를 결정한다.
(제3실시예)
도 16은 현재블록의 주변블록의 블록크기를 예시한 도면이다.
제3실시예에서, 엔트로피부호화부(107)는 주변블록의 블록크기의 우선순위에 따라 대표블록을 선정하는 점이 제1 및 제2 실시예와 다른 점이다. 도 16의 예에서 블록크기의 우선순위를 설정(예컨대 '큰 블록 > 작은 블록'으로 설정)하였을 경우, 현재 블록의 주위 블록들의 크기가 큰지 작은지를 확인하고, 큰 블록으로 부호화된 블록을 대표블록으로 우선적으로 선정할 수 있다.
만일, '큰 블록 > 작은 블록'의 우선순위가 설정되고, 왼쪽그룹의 경우 '아래 > 위'의 선택방향 우선순위가 설정되고, 위쪽 그룹의 경우 '오른쪽 > 왼쪽'의 선택방향 우선순위가 설정된 경우, 도 16에서 대표블록으로는 블록 b, 블록 d가 각각 선택된다.
또한, 현재 블록의 크기에 대한 주위블록의 크기의 우선순위에 따라 대표블록을 선정하는 방법도 가능하다. 예를 들어, 현재 블록의 크기가 16×16으로 설정되었을 경우, 주위 블록들 중 크기가 16×16에 가까운 블록에 높은 우선순위를 설정하여 주위 블록들 중에서 대표블록으로 선택할 수도 있다. 여기서 선정된 대표블록의 움직임벡터가 대표 움직임벡터(즉, 대표벡터)가 된다.
(제4실시예)
제4실시예에서, 엔트로피부호화부(107)는 주변블록에서 참조한 픽쳐의 거리에 대한 우선순위에 따라 주변블록 중에서 하나 이상의 대표블록을 선정하는 점이 제1, 제2 및 제3 실시예와 다른 점이다.
도 16의 예에서, 각 주위 블록마다 참조한 픽쳐의 거리가 각각 다를 경우, 해당 주위블록과 참조한 픽쳐 사이의 거리가 가까운 순으로 우선순위로 설정(예컨대 주변블록 c의 참조픽처와의 거리는 2, 주변블록 d의 참조픽처와의 거리는 1, 주변블록 e의 참조픽처와의 거리는 3일 경우 주변블록 d에 가장 높은 우선순위를 설정)하여 가장 가까운 블록의 움직임벡터를 대표벡터로 설정할 수 있다.
또한, 현재 블록이 참조하고 있는 픽쳐의 거리와 비교하는 것도 가능하다. 예를 들어 현재블록의 움직임추정 과정 시 참조하고 있는 픽쳐와의 거리가 2인 경우, 주위 블록 중 해당 블록이 참조한 픽쳐와의 거리가 2에 가장 가까운 주위 블록에 높은 우선순위를 설정하여 대표블록으로 선정하여 그 움직임벡터를 대표벡터로 설정할 수도 있다. 또한, 대표블록을 선정함에 있어서 움직임 보상방향에 따라 우선순위를 정한 다음에, 각 주변블록이 참조하는 픽처와의 거리에 대한 우선순위를 추가로 고려하여 대표블록을 선택할 수도 있다. 이 경우 우선순위는 움직임 보상방향에 따라 우선순위가 같은 경우 현재블록이 참조하는 픽처와의 거리와 주변블록이 참조하는 픽처와의 거리가 서로 같은지 여부에 따라 결정될 수 있다. 즉, 거리가 서로 같으면 우선순위는 높고 거리가 같지 않으면 우선순위는 낮도록 설정할 수 있다.
한편, 종래기술에 따른 AMVP의 경우, 현재 블록의 주변 블록들 중 미리 정해진 소수의 블록들이 대표블록을 선택하기 위한 후보 블록들로 이용되었다. 그러나 제5실시예 내지 제8실시예에서는, 종래기술과 달리 주변 블록들 중에서 소정 기준에 따라 후보 블록들이 선택된다는 점에 차이가 있다.
다음으로, 본 발명에 따른 제5실시예 내지 제8실시예를 설명한다.
제5실시예 내지 제8실시예에서, 엔트로피부호화부(107)는 인터예측을 수행한 주변블록 중에서, 소정의 우선순위에 따라 후보블록을 선택하고, 선택된 후보블록 중에서 소정의 조건에 따라 대표블록을 선택하고, 선택된 대표블록의 움직임벡터 및 시간적 후보블록의 움직임벡터 중에서 최적의 움직임벡터를 예측움직임벡터로 이용하여 현재블록의 움직임벡터를 부호화한다.
여기서 후보블록의 갯수는 주변블록의 왼쪽그룹에서 두개의 후보블록을, 윗쪽그룹에서 세개의 후보블록을 선택한다고 가정한다. 또한, 각 그룹에서 선택 방향의 우선순위는 별도의 설명이 없는 한 왼쪽 그룹에서는 '아래>위'이고, 위쪽 그룹에서는 '오른쪽 > 왼쪽'인 것으로 가정한다.
(제5실시예)
제5실시예에서, 엔트로피부호화부(107)는 인터예측을 수행한 주변블록 중에서, 수행된 인터예측방법의 우선순위에 따라 후보블록을 선택한다.
후보 블록을 선정하고 대표 블록(대표 벡터)를 정하는 방식에 종래기술과의 차이점이 존재하는데, 제1 내지 제4실시예에서는 각 그룹에서 소정 기준에 따라 대표 벡터를 곧바로 선정한다. 그러나 본 실시예에서는 후보 블록을 인터예측모드에 따라 각 그룹마다 소정의 개수로 정한 후 도 17을 이용하여 대표블록을 선정한다.
도 18은 현재블록의 주변블록의 인터예측모드 및 예측방향을 예시한 도면이다.
도 18의 예에서 보면, 예컨대 'AMVP > 스킵 > 머지'로 우선순위를 설정한 경우, 왼쪽 그룹(a, b, c)에서는 AMVP를 이용한 블록 c와 스킵을 이용한 블록 a가 도 17의 대표블록 설정 알고리즘에 사용될 최종 후보 블록으로 선정이 된다. 왼쪽 그룹과 유사하게, 위쪽 그룹(d, e, f, g)에서는 AMVP를 이용한 블록 g, d와 스킵을 이용한 블록 e가 도 17의 대표블록 설정 알고리즘에 사용될 최종 후보 블록으로 선정이 된다. 각 그룹에서 선정되는 후보블록의 갯수는 실시예에 따라 달라질 수 있으며, 인터예측 방법의 우선순위 또한 달라질 수 있다. 또한 우선순위를 인터예측모드와 움직임보상방향의 혼합으로 결정할 수도 있다.
각 그룹에서 후보 블록들이 선정된 후에는 도 17의 방법을 이용하여 대표벡터가 선정된다. 이하, 그룹 A의 대표 벡터를 결정하는 과정을 도 17을 참조하여 설명한다. 여기서 예측방향이란 움직임보상방향의 한 종류(과거방향 혹은 미래방향)로 사용될 수도 있다. 그룹 A의 후보블록이 A0(블록1), A1(블록2)이라 가정한다. 이때, A0이 도 17에서의 블록 1이 되며 A1이 블록 2가 된다. 먼저 X=1로 시작한다(S1701). 블록 X의 참조픽쳐 인덱스와 예측방향이 현재블록과 동일한지 여부를 판단한다(S1702). S1702 단계의 판단결과 '예'이면 블록X가 대표블록이 된다(즉, 그 블록의 움직임벡터가 대표벡터가 됨). 만일, S1702 단계의 판단결과 '아니오'이면, 남은 블록이 존재하는지 여부를 판단하고(S1703), S1703 단계에서의 판단결과 '예'이면 X에 1을 증가하여(즉, 블록2가 됨) 다시 S1702 단계로 진행한다(S1704).
만일, S1703 단계에서의 판단결과 '아니오'이면 X에 1을 대입하고(S1705) 블록X의 참조픽쳐 인덱스는 현재 블록과 같지만 예측방향이 다른지 여부를 확인한다(S1706). S1706 단계의 판단결과 '예'이면 블록X가 대표블록이 된다. 만일, S1706 단계의 판단결과 '아니오'이면, 블록X의 참조픽쳐인덱스는 현재블록과 다르지만 예측방향이 같은지 여부를 확인한다(S1707). 만일, S1707 단계의 판단결과 '예'이면 블록X가 대표블록이 된다. 만일, S1707 단계의 판단결과 '아니오'이면, 블록X의 참조픽쳐인덱스와 예측방향이 모두 현재블록과 다른지 여부를 확인한다(S1708). 만일, S1708 단계의 판단결과 '예'이면 블록X가 대표블록이 된다. 만일, S1708 단계의 판단결과 '아니오'이면, 남은 블록이 더 존재하는지 여부를 판단한다. 만일 남은 블록이 존재하면 X에 1을 증가하여(즉, 블록2가 됨) 다시 S1706 단계로 진행한다(S1710).
여기서 단계 1708에서 둘다 '아니오'라고 판단하는 경우는, 인터예측으로 이용가능한 블록이 아닌 경우를 의미한다. 예를 들어 인트라예측 블록인 경우가 이에 해당한다.
따라서 위쪽 그룹에 대해서도 이와 유사한 방법으로 대표 벡터를 추출할 수가 있다.
(제6실시예)
제6실시예에서, 엔트로피부호화부(107)는 인터예측을 수행한 주변블록 중에서, 수행된 인터예측 방향의 우선순위에 따라 후보블록을 선택한다.
만약, 우선순위를 '단방향 > 양방향'으로 설정하였을 경우 주변블록 중에서 단방향인 블록들을 우선적으로 후보블록으로 설정한 후, 도 17의 알고리즘을 이용하여 대표벡터를 선정한다. 또한, 과거 방향(list0), 미래방향(list1), 양방향 중에서 두가지 이상에 대하여 우선순위를 정하여 후보블록을 선정하는 것도 가능하다.
따라서, 도 18의 경우에, 우선순위를 '단방향 > 양방향'으로 설정한 경우, 왼쪽 그룹에서는 블록 c, 블록 a가 후보블록으로 선택되고, 위쪽 그룹에서는 블록 f, 블록 d, 블록 g가 후보블록으로 선택된다. 여기서 선택된 각 그룹별 후보블록들은 도 17의 알고리즘에 따라 그룹별로 하나의 대표블록이 선택된다.
또한 현재 블록의 움직임보상 방향과 비교하는 것도 가능하다. 예를 들어 현재 블록의 움직임보상이 과거 방향으로 진행되고 있다면, 주위 블록들 중 움직임보상 방향이 과거인 블록에 높은 우선순위를 설정하여 후보블록으로 설정한 후 도 17의 알고리즘을 이용하여 대표벡터로 선택할 수도 있다.
(제7실시예)
제7실시예에서, 엔트로피부호화부(107)는 인터예측을 수행한 주변블록 중에서, 수행된 인터예측 블록 크기의 우선순위에 따라 후보블록을 선택한다.
만약, 우선순위를 '큰 블록 > 작은 블록'으로 설정하였을 경우 큰 블록의 블록들을 우선적으로 후보블록으로 설정한 후 도 17의 알고리즘을 이용하여 대표벡터를 선정한다.
따라서, 도 16의 경우에, 우선순위를 '큰 블록 > 작은 블록'으로 설정한 경우, 왼쪽 그룹에서는 블록 b, 블록 a가 후보블록으로 선택되고, 위쪽 그룹에서는 블록 d, 블록 e, 블록 c가 후보블록으로 선택된다. 여기서 선택된 각 그룹별 후보블록들은 도 17의 알고리즘에 따라 그룹별로 하나의 대표블록이 선택된다.
또한 현재 블록의 크기와 비교하는 것도 가능하다. 예를 들어 현재 블록의 크기가 16×16으로 설정되었을 경우, 주위 블록들 중 크기가 16×16에 가까운 블록에 높은 우선순위를 설정하여 후보블록으로 설정한 후 도 17의 알고리즘을 이용하여 대표벡터로 선택할 수도 있다.
(제8실시예)
제8실시예에서, 엔트로피부호화부(107)는 인터예측을 수행한 주변블록 중에서, 참조한 픽쳐와의 거리에 대한 우선순위에 따라 후보블록을 선택한다.
만약, 우선순위를 '짧은거리 > 긴거리'로 설정하였을 경우, 참조한 픽쳐와의 거리가 가까운 순으로 우선순위로 설정(예컨대 주변블록 c의 참조픽처의 거리는 2, d의 참조픽처의 거리는 1, e의 참조픽처의 거리는 3일 경우 d에 가장 높은 우선순위를 설정)하여 참조픽처의 거리가 가장 가까운 블록을 우선적으로 후보블록으로 설정한 후 도 17의 알고리즘을 이용하여 대표벡터를 선정한다.
또한 현재 블록이 참조하고 있는 픽쳐의 거리와 비교하는 것도 가능하다. 예를 들어 현재블록의 움직임추정 과정 시 참조하고 있는 픽쳐와의 거리가 2인 경우, 주위 블록 중 참조한 픽쳐와의 거리가 2에 가장 가까운 블록에 높은 우선순위를 설정하여 후보블록으로 설정한 후 도 17의 알고리즘을 이용하여 대표벡터로 선택할 수도 있다.
한편, 도 17의 대표블록 선택 알고리즘을 적용함에 있어서, 후보블록에 대하여 인터예측방법, 인터예측방향, 움직임보상방향, 블록크기 및 참조픽처와의 거리 중에서 어느 하나의 우선순위에 따른 검색순서로 후보블록이 소정의 조건이 맞는지 여부를 판단하여 대표블록으로 선택한다. 예를 들어, '단방향 > 양방향'으로 우선순위가 설정된 경우, 단방향의 블록을 우선적으로 블록1로 놓고 양방향의 블록을 블록2로 놓고 두 17의 알고리즘을 적용한다. 만일 단방향 블록이 2개인 경우에는 선택방향 우선순위에 따라(예컨대 '아래 > 위'인 경우) 아래 블록이 블록1, 위 블록이 블록2가 되어 도 17의 알고리즘을 적용한다.
한편, 도 19는 주변블록의 다른 예를 나타낸 것이다. 만일 제 5실시예에서 후보블록을 선택하는 경우, 인터예측된 블록 중에서 AMVP, 스킵, 머지의 순서로 그룹별 후보블록을 찾는다. 따라서 왼쪽 그룹에서 2개, 위쪽 그룹에서 3개씩 후보블록이 선택된 예를 보여준다.
도 20은 본 발명의 일 실시예에 따른 영상 복호화 장치의 구성을 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상 복호화 장치(400)는 전술한 영상 부호화 장치 같이, 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, TV, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 단말기(Wireless Terminal), 디지털 TV 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 복호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.
본 발명의 일 실시예에 따른 영상 복호화 장치(400)는 비트스트림 복호부(401), 역양자화부(402), 역변환부(403), 예측부(405), 가산부(409, Adder) 및 메모리(408)를 포함하여 구성될 수 있다.
비트스트림 복호부(401)는 비트스트림을 복호화하여 양자화된 변환 블록을 추출한다. 즉, 비트스트림 복호부(401)는 입력되는 비트스트림으로부터 추출된 비트열을 복호화하고 역 스캐닝하여 양자화된 변환 계수를 가지는 양자화된 변환 블록을 복원한다. 이때, 비트스트림 복호부(401)는 엔트로피부호화부(107)에서 이용한 엔트로피 부호화와 같은 부호화 기법을 이용하여 복호화할 수 있다.
또한, 비트스트림 복호부(401)는 인터예측의 경우, 비트스트림으로부터 부호화된 차분벡터를 추출하고 복호화하여 차분 벡터를 복원하고 AMVP에 사용된 차분 움직임 벡터에 대한 AMVP 인덱스를 비트스트림으로부터 추출한다. 여기서 추출된 AMVP 인덱스로부터 식별되는 위치에 해당되는 주변블록의 움직임 벡터를 예측 움직임벡터로 복원하고 복원된 예측 움직임벡터와 복호된 차분 벡터를 합산하여 복원하고자 하는 현재블록의 움직임벡터를 복원한다.
한편, 본 발명의 일 실시예에 따른 영상 복호화 장치(400)의 비트스트림 복호부(401)에서 움직임벡터를 복호화하기 위하여 대표 블록을 선정하는 과정은, 영상 부호화 장치(100)의 비트스트림 복호부(401)에서 수행하는 부호화 과정에서의 대표블록 선정과정과 동일하다. 따라서, 비트스트림 복호부(401)는 현재블록의 소정의 주변블록들에 대하여 인터예측방법, 움직임보상방향, 블록크기 및 참조된 픽쳐와의 거리 중에서 적어도 하나의 우선순위에 따라 대표블록을 선택한다.
또한, 비트스트림 복호부(401)는 인트라예측의 경우 비트스트림으로부터 부호화된 인트라예측모드 인덱스를 추출하고 복호화하여 현재 블록이 어떤 인트라예측모드를 사용하였는지 알려준다.
역양자화부(402)는 양자화된 변환 블록을 역양자화한다. 즉, 역양자화부(402)는 비트스트림 복호부(401)로부터 출력되는 양자화된 변환 블록의 양자화된 변환계수를 역양자화한다. 이때, 역양자화부(402)는 영상부호화 장치의 양자화부(105)에서 이용한 양자화 기법을 역으로 수행하여 역양자화한다.
역변환부(403)는 역양자화부(402)로부터 출력되는 역양자화된 변환 블록을 역변환하여 잔차블록을 복원한다. 즉, 역변환부(403는 역양자화부(402)로부터 출력되는 역양자화된 변환 블록의 역양자화된 변환 계수를 역변환함으로써 복원된 잔차 신호를 가지는 잔차 블록을 복원하는데, 영상 부호화 장치의 변환부(104)에서 이용한 변환 기법을 역으로 수행하여 역변환한다.
예측부(405)는 인트라예측부(406) 및 인터예측부(407)를 포함할 수 있으며, 도 3을 통하여 전술한 영상 부호화 장치의 인트라예측부(102) 및 인터예측부(103)와 각각 유사한 기능을 한다.
가산부(409, Adder)는 역변환된 잔차신호와, 인트라예측 또는 인터예측을 통하여 생성된 예측 영상을 가산하여 현재 블록 영상을 복원한다.
메모리(408)는 영상 부호화 장치의 메모리와 동일하게 복호된 영상을 저장하여 이후의 예측에 사용될 수 있다.
영상 복호화 장치에서, 대표 블록을 선정하는 과정은 영상 부호화 장치에서와 동일하며, 비트스트림 복호부(401)는 어느 블록이 차분움직임 벡터로 최종적으로 선택되었는지를 비트스트림에서 인덱스를 추출하여 복호화한 예측 움직임벡터와, 복호화된 잔차벡터를 더하여 최종적인 현재블록의 움직임 벡터를 복원한다.
인트라예측부(406)는 여기서 생성된 움직임 벡터를 이용하여 복원할 현재블록을 예측하는데에 사용한다.
한편, 본 발명의 일 실시예에 따른 영상 부호화/복호화 장치는 도 3의 영상 부호화 장치의 비트스트림(부호화 데이터) 출력단을 도 20의 영상 복호화 장치의 비트스트림 입력단에 연결함으로써 구현할 수 있다.
본 발명의 일 실시예에 따른 영상 부호화/복호화 장치는, 현재블록의 소정의 주변블록들에 대하여 인터예측방법, 인터예측방향, 움직임보상방향, 블록크기 및 참조픽쳐와의 거리 중에서 어느 하나의 우선순위에 따라 대표블록을 선택하거나 현재블록의 소정의 주변블록에 대하여 인터예측방법, 인터예측방향, 움직임보상방향, 블록크기 및 참조픽쳐와의 거리 중에서 어느 하나의 우선순위에 따라 후보블록을 선택하고 선택된 후보블록에 대하여 소정의 조건에 따라 대표블록을 선택하고, 선택된 대표블록의 움직임벡터 및 현재블록과 유사한 위치에 있는 다른 픽쳐의 블록의 움직임벡터(즉, 시간적 후보 움직임벡터) 중에서 최적의 움직임벡터를 예측움직임벡터로 이용하여 현재블록의 움직임벡터를 비트스트림으로 부호화하는 영상 부호화 장치(100)(본 발명의 일 실시예에서의 영상 부호화/복호화 장치에서의 영상 부호화기를 구현)와, 비트스트림으로부터 예측움직임벡터에 대한 인덱스(AMVP 인덱스) 및 잔차벡터를 추출하고, 인터예측을 이용하여 부호화된 주변블록들 중에서 인터예측방법, 인터예측방향, 움직임보상방향, 블록크기 및 참조픽쳐와의 거리 중에서 적어도 하나의 우선순위에 따라 대표블록을 선택하여 선택된 대표블록을 고려하여 인덱스를 식별하여 인덱스에 대응되는 대표블록의 움직임벡터를 현재블록의 예측 움직임벡터로 복원하고 복원된 예측움직임 벡터를 이용하여 현재블록을 복원하는 영상 복호화 장치(400)(본 발명의 일 실시예에서 따른 영상 부호화/복호화 장치에서의 영상 복호화기를 구현)를 포함하여 구현될 수 있다.
본 발명의 일 실시예에 따른 영상 부호화 방법은, 영상 복호화 장치(100)에서 블록분할부(101)에 의하여 입력 영상을 부호화단위 블록으로 분할되는 단계, 인트라예측부(102)가 현재 블록을 현재 픽쳐 내의 픽셀값을 이용하여 예측블록을 생성하거나 인터예측부(103)가 현재 블록을 이전에 부호화되고 복호화된 픽쳐들의 정보를 이용하여 예측 블록을 생성하는 단계, 감산부(111)가 현재블록에서 예측블록을 감산하여 잔차블록을 생성하는 단계, 변환부(104)가 잔차 블록을 변환하여 변환 블록을 생성하는 단계, 양자화부(105)가 변환 블록을 양자화하여 양자화된 변환 블록을 생성하는 단계, 양자화부(105)에 의해 양자화된 변환 블록을 엔트로피부호화부(107)가 부호화하여 비트스트림으로 출력하는 엔트로피부호화단계, 양자화부(105)에 의해 양자화된 블록을 역양자화부(108)가 역양자화하여 변환계수를 가지는 변환 블록을 복원하는 단계, 역양자화부(108)에 의해 역양자화된 변환 블록을 역변환부(109)가 역변환하여 잔차신호를 가지는 잔차 블록을 복원하는 단계, 가산부(112)가 역변환된 잔차신호와, 인트라예측 또는 인터예측을 통하여 생성된 예측 영상을 가산하여 현재 블록을 복원하는 단계, 메모리(110)가 역변환된 잔차신호와, 인트라예측 또는 인터예측을 통하여 생성된 예측 영상을 가산하여 복원된 현재 블록을 저장하는 단계를 포함하여 구현될 수 있다.
본 발명의 일 실시예에 따른 영상 부호화 방법에서, 엔트로피부호화단계의 제1실시예는, 인터예측을 이용하여 부호화된 주변블록들 중에서, 이용된 인터예측방법의 우선순위에 따라 대표블록을 선택하고, 선택된 대표블록의 움직임벡터 및 시간적 후보 움직임벡터 중에서 선택된 움직임벡터를 예측움직임벡터로 이용하여 현재블록의 움직임벡터를 부호화한다. 여기서, 인터예측방법의 우선순위에 따라 대표블록을 선택하는 방법은, 움직임추정을 이용한 예측 방법(AMVP), 스킵(SKIP) 방법 및 머지(Merge) 방법에 대한 우선순위를 설정하고, 주변블록 중에서 우선순위가 높은 방법으로 인터예측을 수행한 기설정된 갯수의 블록을 대표블록으로 선택하는 것을 의미할 수 있다.
본 발명의 일 실시예에 따른 영상 부호화 방법에서, 엔트로피부호화단계의 제2실시예는, 인터예측을 이용하여 부호화된 주변블록들 중에서, 이용된 인터예측방향의 우선순위에 따라 대표블록을 선택하고, 선택된 대표블록의 움직임벡터 및 시간적 후보 움직임벡터 중에서 선택된 움직임벡터를 예측움직임벡터로 이용하여 상기 현재블록의 움직임벡터를 부호화한다. 여기서, 인터예측방향의 우선순위에 따라 대표블록을 선택하는 방법은, 단방향 및 양방향 예측에 대한 우선순위를 설정하고, 주변블록 중에서 우선순위가 높은 예측방향으로 인터예측을 수행한 기설정된 갯수의 블록을 대표블록으로 선택하는 것을 의미할 수 있다. 또한, 인터예측방향의 우선순위에 따라 대표블록을 선택하는 방법은, 과거방향 예측, 미래방향 예측 및 양방향 예측 중 두가지 이상의 예측 방향에 대한 우선순위를 설정하고, 주변블록 중에서 우선순위가 높은 예측방향으로 인터예측을 수행한 기설정된 갯수의 블록을 대표블록으로 선택하는 것을 의미할 수 있다.
본 발명의 일 실시예에 따른 영상 부호화 방법에서, 엔트로피부호화단계의 제3실시예는, 인터예측을 이용하여 부호화된 주변블록들 중에서, 블록크기의 우선순위에 따라 대표블록을 선택하고, 선택된 대표블록의 움직임벡터 및 시간적 후보 움직임벡터 중에서 선택된 움직임벡터를 예측움직임벡터로 이용하여 상기 현재블록의 움직임벡터를 부호화한다. 여기서, 블록크기의 우선순위에 따라 대표블록을 선택하는 방법은, 작은 블록 및 큰 블록의 우선순위를 설정하고, 주변블록 중에서 우선순위가 높은 블록 크기로 인터예측을 수행한 기설정된 갯수의 블록을 대표블록으로 선택하는 것을 의미할 수 있다.
본 발명의 일 실시예에 따른 영상 부호화 방법에서, 엔트로피부호화단계의 제4실시예는, 인터예측을 이용하여 부호화된 주변블록들 중에서, 이용된 인터예측방법의 우선순위에 따라 후보블록을 선택하고, 상기 선택된 후보블록 중에서 소정의 조건에 따라 대표블록을 선택하고, 상기 선택된 대표블록의 움직임벡터 및 시간적 후보 움직임벡터 중에서 선택된 움직임벡터를 예측움직임벡터로 이용하여 상기 현재블록의 움직임벡터를 부호화한다. 여기서, 인터예측방법의 우선순위에 따라 후보블록을 선택하는 방법은, 움직임추정을 이용한 예측 방법(AMVP), 스킵(SKIP) 방법 및 머지(Merge) 방법에 대한 우선순위를 설정하고, 주변블록 중에서 우선순위가 높은 방법으로 인터예측을 수행한 기설정된 갯수의 블록을 후보블록으로 선택하는 것을 의미할 수 있다.
본 발명의 일 실시예에 따른 영상 부호화 방법에서, 엔트로피부호화단계의 제5실시예는, 인터예측을 이용하여 부호화된 주변블록들 중에서, 이용된 인터예측방향의 우선순위에 따라 후보블록을 선택하고, 상기 선택된 후보블록 중에서 대하여 소정의 조건에 따라 대표블록을 선택하고, 상기 선택된 대표블록의 움직임벡터 및 시간적 후보 움직임벡터 중에서 선택된 움직임벡터를 예측움직임벡터로 이용하여 현재블록의 움직임벡터를 부호화한다. 여기서, 인터예측방향의 우선순위에 따라 대표블록을 선택하는 방법은, 단방향 및 양방향 예측에 대한 우선순위를 설정하고 주변블록 중에서 우선순위가 높은 방법으로 인터예측을 수행한 기설정된 갯수의 블록을 후보블록으로 선택하거나 과거방향 예측, 미래방향 예측 및 양방향 예측 중 두가지 이상의 예측 방향에 대한 우선순위를 설정하고 주변블록 중에서 우선순위가 높은 방법으로 인터예측을 수행한 기설정된 갯수의 블록을 후보블록으로 선택하는 것을 의미할 수 있다.
본 발명의 일 실시예에 따른 영상 부호화 방법에서, 엔트로피부호화단계의 제6실시예는, 인터예측을 이용하여 부호화된 주변블록들 중에서, 블록크기의 우선순위에 따라 후보블록을 선택하고, 상기 선택된 후보블록 중에서 소정의 조건에 따라 대표블록을 선택하고, 상기 선택된 대표블록의 움직임벡터 및 시간적 후보 움직임벡터 중에서 선택된 움직임벡터를 예측움직임벡터로 이용하여 상기 현재블록의 움직임벡터를 부호화한다. 여기서, 블록크기의 우선순위에 따라 후보블록을 선택하는 방법은, 작은 블록 및 큰 블록의 우선순위를 설정하고, 주변블록 중에서 우선순위가 높은 블록 크기로 인터예측을 수행한 기설정된 갯수의 블록을 후보블록으로 선택하는 것을 의미할 수 있다.
본 발명의 일 실시예에 따른 영상 부호화/복호화 방법은, 본 발명의 일 실시예에 따른 영상 부호화 방법과 본 발명의 일 실시예에 따른 영상 복호화 방법을 결합하여 구현함으로써 실현할 수 있다.
본 발명의 일 실시예에 따른 영상 부호화/복호화 방법은, 인터예측을 수행한 주변블록 중에서, 인터예측방법, 인터예측방향, 움직임보상방향, 블록크기 및 참조픽쳐와의 거리 중에서 어느 하나의 우선순위에 따라 대표블록을 선택하거나, 인터예측을 수행한 주변블록 중에서, 인터예측방법, 인터예측방향, 움직임보상방향, 블록크기 및 참조픽쳐와의 거리 중에서 어느 하나의 우선순위에 따라 후보블록을 선택하고 상기 선택된 후보블록에 대하여 소정의 조건에 따라 대표블록을 선택하고, 상기 선택된 대표블록의 움직임벡터 및 시간적 후보 움직임벡터 중에서 최적의 움직임벡터를 예측움직임벡터로 이용하여 상기 현재블록의 움직임벡터를 비트스트림으로 부호화하는 영상부호화단계; 및 상기 비트스트림으로부터 예측움직임벡터에 대한 인덱스(AMVP 인덱스) 및 잔차벡터를 추출하고, 인터예측을 이용하여 부호화된 주변블록들 중에서 인터예측방법, 인터예측방향, 움직임보상방향, 블록크기 및 참조픽쳐와의 거리 중에서 적어도 하나의 우선순위에 따라 대표블록을 선택하여 선택된 대표블록을 고려하여 인덱스를 식별하여 인덱스에 대응되는 대표블록의 움직임벡터를 현재블록의 예측 움직임벡터로 복원하고 복원된 예측움직임 벡터를 이용하여 현재블록을 복원하는 영상복호화단계를 포함한다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명은 소정의 기준에 따라, 현재 블록의 주변 블록들의 모션 벡터들을 이용하여 보다 정확하게 현재 블록의 모션 벡터를 예측함에 있어서 다양한 주변블록을 이용하여 후보블록 및 대표블록 선택의 폭을 넓힘으로써 부호화 효율을 향상 가능성을 높이는 효과가 있어서 매우 유용한 발명이다.

Claims (4)

  1. 영상을 복호화하는 장치에 있어서,
    비트스트림으로부터 현재 블록의 예측 움직임 벡터를 식별하기 위한 인덱스 및 차분 움직임 벡터를 추출하는 비트스트림 복호부; 및
    상기 예측 움직임 벡터 및 상기 차분 움직임 벡터에 기반하여 예측 블록을 생성하는 인터예측부를 포함하고,
    상기 인터예측부의 예측 모드는 상기 예측 움직임 벡터 및 상기 차분 움직임 벡터에 기반하여 예측 블록을 생성하는 AMVP(Advanced Motion Vector Prediction) 모드 및 주변 블록의 움직임 파라미터를 이용하여 예측 블록을 생성하는 머지 모드를 포함하고,
    상기 예측 움직임 벡터는 추출된 상기 인덱스에 의하여 식별된 움직임 벡터로 결정되고,
    상기 인덱스는 블록 위치의 우선순위를 고려하여 결정된 하나 이상의 대표 블록들에 상응하고,
    상기 하나 이상의 대표 블록들은 참조 픽처 내의 시간적 후보 블록에 상응하는 대표 블록을 포함하고, 상기 시간적 후보 블록은 상기 현재 블록에 상응하는 위치의 오른쪽 하단에 위치하고,
    상기 하나 이상의 대표 블록들은 상기 현재 블록의 왼쪽 그룹에 상응하는 제1 대표 블록 및 상기 현재 블록의 위쪽 그룹에 상응하는 제2 대표 블록을 포함하고,
    상기 왼쪽 그룹은 상기 현재 블록의 좌측하단에 인접하는 두 개의 후보 블록들을 포함하고, 상기 위쪽 그룹은 상기 현재 블록의 상측에 인접하는 세 개의 후보 블록들을 포함하고,
    상기 블록 위치의 우선순위는 상기 머지 모드를 위한 경우와 상기 AMVP 모드를 위한 경우가 서로 상이하고, 상기 AMVP 모드를 위한 경우의 상기 블록 위치의 우선순위는 상기 왼쪽 그룹에서는 '아래>위'이고, 상기 위쪽 그룹에서는 '오른쪽>왼쪽'이고,
    상기 하나 이상의 대표 블록들은 주변 블록에 상응하는 제1 인터 예측 방향 및 상기 현재 블록에 상응하는 제2 인터 예측 방향이 동일할 때, 상기 주변 블록의 제1 참조 픽처에 상응하는 제1 픽처 일련번호 및 상기 현재 블록의 제2 참조 픽처에 상응하는 제2 픽처 일련번호 사이의 차이를 고려하여 결정되는 것을 특징으로 하는 영상 복호화 장치.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 하나 이상의 대표 블록들은 기설정된 개수만큼 구비되고, 상기 인덱스는 상기 기설정된 개수의 대표 블록들 중 하나를 지시하는 것을 특징으로 하는 영상 복호화 장치.
KR1020190029754A 2011-11-24 2019-03-15 모션 벡터의 예측 부호화/복호화 방법 및 장치 KR102072117B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020110123841 2011-11-24
KR20110123841 2011-11-24

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020120133206A Division KR101960761B1 (ko) 2011-11-24 2012-11-22 모션 벡터의 예측 부호화/복호화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20190031457A KR20190031457A (ko) 2019-03-26
KR102072117B1 true KR102072117B1 (ko) 2020-02-03

Family

ID=48857395

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020120133206A KR101960761B1 (ko) 2011-11-24 2012-11-22 모션 벡터의 예측 부호화/복호화 방법 및 장치
KR1020190029754A KR102072117B1 (ko) 2011-11-24 2019-03-15 모션 벡터의 예측 부호화/복호화 방법 및 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020120133206A KR101960761B1 (ko) 2011-11-24 2012-11-22 모션 벡터의 예측 부호화/복호화 방법 및 장치

Country Status (2)

Country Link
US (3) US9503721B2 (ko)
KR (2) KR101960761B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160073115A1 (en) * 2013-04-05 2016-03-10 Samsung Electronics Co., Ltd. Method for determining inter-prediction candidate for interlayer decoding and encoding method and apparatus
WO2015005750A1 (ko) * 2013-07-12 2015-01-15 삼성전자 주식회사 변이 벡터 유도를 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US9917988B2 (en) * 2014-04-09 2018-03-13 Mediatek Inc. Method for detecting occlusion areas
EP3158753B1 (en) * 2014-06-19 2021-12-08 VID SCALE, Inc. Intra block copy coding with block vector derivation
EP4418654A3 (en) 2014-10-31 2024-11-06 Samsung Electronics Co., Ltd Video encoding device and video decoding device using high-precision skip encoding and method thereof
KR101904683B1 (ko) * 2014-12-09 2018-10-04 미디어텍 인크. 비디오 코딩에서 움직임 벡터 예측자 또는 합병 후보를 도출하는 방법
CN108141604B (zh) * 2015-06-05 2022-07-05 杜比实验室特许公司 图像编码和解码方法和图像解码设备
US10721489B2 (en) * 2016-09-06 2020-07-21 Qualcomm Incorporated Geometry-based priority for the construction of candidate lists
KR20180082330A (ko) * 2017-01-09 2018-07-18 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
US10291928B2 (en) 2017-01-10 2019-05-14 Blackberry Limited Methods and devices for inter-prediction using motion vectors for video coding
CN111788829B (zh) * 2018-02-28 2022-02-08 三星电子株式会社 编码方法及其装置以及解码方法及其装置
WO2019208372A1 (ja) 2018-04-25 2019-10-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US10893291B2 (en) * 2018-09-28 2021-01-12 Qualcomm Incorporated Ultimate motion vector expression with adaptive directional information set
CN113273209B (zh) * 2018-12-17 2024-09-27 交互数字Vc控股公司 Mmvd和smvd与运动和预测模型的组合
WO2020189980A1 (ko) * 2019-03-15 2020-09-24 삼성전자주식회사 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
KR102230265B1 (ko) 2019-07-01 2021-03-19 삼성전자주식회사 주변 움직임 정보를 이용하여 움직임 정보를 부호화 및 복호화하는 장치, 및 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100618910B1 (ko) 2004-04-03 2006-09-01 (주)씨앤에스 테크놀로지 최적화된 연산복잡도를 갖는 움직임 추정 장치 및 그 방법
WO2005098752A1 (ja) * 2004-04-09 2005-10-20 Sony Corporation 画像処理装置および方法、記録媒体、並びにプログラム
KR101366093B1 (ko) 2007-03-28 2014-02-21 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치
KR101678968B1 (ko) 2009-08-21 2016-11-25 에스케이텔레콤 주식회사 참조 픽처 보간 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR101432767B1 (ko) 2009-10-20 2014-08-26 에스케이텔레콤 주식회사 움직임 정보 기반의 인접 화소를 이용한 인터 예측 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR101441905B1 (ko) * 2009-11-18 2014-09-24 에스케이텔레콤 주식회사 후보 예측 움직임 벡터 집합 선택을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR101752418B1 (ko) * 2010-04-09 2017-06-29 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US8711940B2 (en) * 2010-11-29 2014-04-29 Mediatek Inc. Method and apparatus of motion vector prediction with extended motion vector predictor

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Benjamin Bross et. al, "WD4: Working Draft 4 of high efficiency video coding", JCTVC 6th meeting, 14-22, July, 2011, JCTVC-F803_d1.*
Yunfei Zheng et. al, "CE9: Unified Merge and AMV P candidates selection", JCTVC 6th Meeting, 14-22, July, 2011, JCTVC-F297.*

Also Published As

Publication number Publication date
US20140254686A1 (en) 2014-09-11
US9521406B1 (en) 2016-12-13
US9648329B2 (en) 2017-05-09
KR101960761B1 (ko) 2019-03-22
US20170019671A1 (en) 2017-01-19
KR20190031457A (ko) 2019-03-26
US9503721B2 (en) 2016-11-22
KR20130057949A (ko) 2013-06-03
US20160353125A1 (en) 2016-12-01

Similar Documents

Publication Publication Date Title
KR102072117B1 (ko) 모션 벡터의 예측 부호화/복호화 방법 및 장치
KR101934278B1 (ko) 개선된 머지를 이용한 영상 부호화/복호화 방법 및 장치
KR102046521B1 (ko) 스킵 모드를 이용한 영상 복호화 방법 및 이러한 방법을 사용하는 장치
KR101830352B1 (ko) 스킵모드를 이용한 동영상 부호화 및 복호화 방법 및 장치
KR101484171B1 (ko) 예측 움직임벡터 색인부호화에 기반한 움직임정보 생성/복원 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법
KR20130085838A (ko) 가중치예측을 이용한 영상 부호화/복호화 방법 및 장치
KR102072124B1 (ko) 세밀한 예측 단위를 사용하는 효과적인 부호화/복호화 방법 및 장치
KR20110017301A (ko) 움직임 벡터를 부호화하는 방법 및 장치
KR102027474B1 (ko) 이전 블록의 움직임 벡터를 현재 블록의 움직임 벡터로 이용하는 영상 부호화, 복호화 방법 및 장치
KR20130003718A (ko) 고속 코딩 단위(Coding Unit) 모드 결정을 통한 부호화/복호화 방법 및 장치
KR101377529B1 (ko) 적응적 움직임 벡터 부호화/복호화를 이용한 영상 부호화/복호화 방법 및 장치
KR101510585B1 (ko) 움직임 정보 부호화/복호화 장치 및 움직임 정보를 부호화/복호화하는 방법
KR101479137B1 (ko) 예측 움직임벡터 색인부호화에 기반한 움직임정보 생성/복원 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법
KR101699832B1 (ko) 예측 움직임벡터 색인부호화에 기반한 움직임정보 생성/복원 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법
KR101676381B1 (ko) 예측 움직임벡터 색인부호화에 기반한 움직임정보 생성/복원 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법
KR20190113611A (ko) 영상 부호화/복호화 방법 및 장치
WO2012141500A2 (ko) 스킵 모드를 이용한 영상 복호화 방법 및 이러한 방법을 사용하는 장치

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right