KR20140077824A - 영상의 부호화/복호화 방법 및 이를 이용하는 장치 - Google Patents
영상의 부호화/복호화 방법 및 이를 이용하는 장치 Download PDFInfo
- Publication number
- KR20140077824A KR20140077824A KR1020130145501A KR20130145501A KR20140077824A KR 20140077824 A KR20140077824 A KR 20140077824A KR 1020130145501 A KR1020130145501 A KR 1020130145501A KR 20130145501 A KR20130145501 A KR 20130145501A KR 20140077824 A KR20140077824 A KR 20140077824A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- merged motion
- target block
- motion prediction
- upper layer
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 복수의 계층을 지원하는 영상의 복호화 방법은 복호화 대상이 되는 상위 계층의 대상 블록이 참조할 수 있는 기본 계층의 참조 블록을 복호화 하는 단계와; 상기 참조 블록의 병합 움직임 예측 영역에 기초하여 상기 대상 블록의 병합 움직임 예측 영역을 설정하는 단계와; 상기 대상 블록의 병합 움직임 예측 영역에 기초하여 상기 대상 블록에 대한 병합 움직임 예측 목록을 유도하는 단계와; 상기 병합 움직임 예측 목록에 기초하여 상기 대상 블록에 대한 움직임 보상을 수행하는 단계를 포함할 수 있다. 이로 인해 다른 계층의 정보를 이용하여 머지 예측을 수행하는 경우 머지 예측 영역(merge estimated region)을 재설정할 수 있는 영상의 부호화/복호화 방법 및 이를 이용하는 장치가 제공된다
Description
본 발명은 영상의 부호화 및 복호화 처리에 관한 것으로서, 보다 상세하게는 계층적 비디오 부호화에서 병렬성을 제공하기 위한 계층간 영상 부/복호화 방법 및 그 장치에 관한 것이다.
최근 HD(High Definition) 해상도를 가지는 방송 서비스가 국내뿐만 아니라 세계적으로 확대되면서, 많은 사용자들이 고해상도, 고화질의 영상에 익숙해지고 있으며 이에 따라 많은 기관들이 차세대 영상기기에 대한 개발에 박차를 가하고 있다. 또한 HDTV와 더불어 HDTV의 4배 이상의 해상도를 갖는 UHD(Ultra High Definition)에 대한 관심이 증대되면서 보다 높은 해상도, 고화질의 영상에 대한 압축기술이 요구되고 있다.
영상 압축을 위해, 시간적으로 이전 및/또는 이후의 픽쳐로부터 현재 픽쳐에 포함된 화소값을 예측하는 인터(inter) 예측 기술, 현재 픽쳐 내의 화소 정보를 이용하여 현재 픽쳐에 포함된 화소값을 예측하는 인트라(intra) 예측 기술, 출현 빈도가 높은 심볼(symbol)에 짧은 부호를 할당하고 출현 빈도가 낮은 심볼에 긴 부호를 할당하는 엔트로피 부호화 기술 등이 사용될 수 있다.
영상 압축 기술에는 유동적인 네트워크 환경을 고려하지 않고 하드웨어의 제한적인 동작 환경하에서 일정한 네트워크 대역폭을 제공하는 기술이 있다. 그러나 수시로 대역폭이 변화하는 네트워크 환경에 적용되는 영상 데이터를 압축하기 위해서는 새로운 압축 기술이 요구되고, 이를 위해 스케일러블(scalable) 비디오 부호화/복호화 방법이 사용될 수 있다.
이러한 일환으로, 다양한 공간적 해상도(Spatial Resolution), 다양한 프레임율(Frame-rate)을 지원 가능한 하나의 통합된 데이터를 생성하여 다양한 전송환경과 다양한 단말들에게 데이터를 효율적으로 전송하고자 하는 요구가 증가하고 있다. 이러한 데이터의 효율적인 전송을 지원하기 위한 비디오 부호화 기술로써, HEVC를 기반으로 하는 SHVC(SHVC; Scalable High efficiency Video Coding)에 대한 표준화가 진행 중이다. SHVC에서 상위 계층의 영상 정보는 하위 계층의 영상 정보를 통해 부호화될 수 있다. 여기서 하위 계층은 기본 계층을 의미할 수도 있다.
본 발명은 각 계층들의 부호화/복호화 시간의 동기화 및 더 나은 병렬성을 제공하기 위한 방법을 제공한다.
본 발명은 다른 계층의 정보를 이용하여 머지 예측을 수행하는 경우 머지 예측 영역(merge estimated region)을 재설정할 수 있는 영상의 부호화/복호화 방법 및 이를 이용하는 장치를 제공한다.
본 발명의 일실시예는, SHVC에서 계층들을 부호화 할때, 기본 계층에서의 MER 크기에 따라 상위 계층에서의 MER 크기를 재설정해줌으로써, 기본 계층 블록의 부호화/복호화 시간과 상위 계층 블록의 부호화/복호화 시간의 차이를 감소시킬 수 있는 영상의 부호화/복호화 방법 및 이를 이용하는 장치를 제공한다.
본 발명의 일 실시예인 복수의 계층을 지원하는 영상의 복호화 방법은 복호화 대상이 되는 상위 계층의 대상 블록이 참조할 수 있는 기본 계층의 참조 블록을 복호화 하는 단계와; 상기 참조 블록의 병합 움직임 예측 영역에 기초하여 상기 대상 블록의 병합 움직임 예측 영역을 설정하는 단계와; 상기 대상 블록의 병합 움직임 예측 영역에 기초하여 상기 대상 블록에 대한 병합 움직임 예측 목록을 유도하는 단계와; 상기 병합 움직임 예측 목록에 기초하여 상기 대상 블록에 대한 움직임 보상을 수행하는 단계를 포함할 수 있다.
상기 대상 블록의 병합 움직임 예측 영역은 상기 기본 계층의 픽쳐 너비와 상기 상위 계측의 픽쳐 너비의 비율에 따라 설정될 수 있다.
상기 기본 계층의 픽쳐 너비와 상기 상위 계측의 픽쳐 너비의 비율(이하, 제1 비율)이 1 이상이면, 상기 대상 블록의 병합 움직임 예측 영역은 상기 참조 블록의 병합 움직임 예측 영역을 나타내는 소정의 레벨값에 상기 제1 비율을 2로 나눈 몫에 대응하는 제2비율을 더한 값으로 설정될 수 있다.
상기 기본 계층의 픽쳐 너비와 상기 상위 계측의 픽쳐 너비의 비율(이하, 제1 비율)이 1 미만이면, 상기 대상 블록의 병합 움직임 예측 영역은 상기 참조 블록의 병합 움직임 예측 영역을 나타내는 소정의 레벨값에서 상기 제1 비율의 역수를 2로 나눈 몫에 대응하는 제2 비율을 뺀 값으로 설정될 수 있다.
상기 레벨값은 상기 기본 계층에 대한 log2_parallel_merge_level_minus2라는 구문 요소의 디코딩을 통하여 유도될 수 있다.
상기 대상 블록의 병합 움직임 예측 영역을 나타내는 소정의 구문 요소를 수신하는 단계를 더 포함할 수 있다.
상기 대상 블록은 적어도 둘 이상의 예측 블록으로 분할되는 코딩 블록이고, 상기 병합 움직임 예측 영역에 내에 포함되는 예측 블록 간에는 병렬적 병합 움직임 목록이 생성될 수 있다.
상기 대상 블록의 병합 움직임 예측 영역은 상기 대상 블록이 휘도 블록인지 색차 블록인지에 따라 기설정된 크기로 설정될 수 있다.
본 발명의 다른 실시 형태에 따른 복수의 계층을 지원하는 영상의 복호화 장치는 복호화 대상이 되는 상위 계층의 대상 블록이 참조할 수 있는 기본 계층의 참조 블록을 복호화 하는 기본 계층 복호화부와; 상기 참조 블록의 병합 움직임 예측 영역에 기초하여 상기 대상 블록의 병합 움직임 예측 영역을 설정하고, 상기 대상 블록의 병합 움직임 예측 영역에 기초하여 상기 대상 블록에 대한 병합 움직임 예측 목록을 유도하고, 상기 병합 움직임 예측 목록에 기초하여 상기 대상 블록에 대한 움직임 보상을 수행하는 상위 계층 복호화부를 포함할 수 있다.
본 발명은 비디오 부호화에서 각 계층들의 부호화/복호화 시간의 동기화에 이용된다.
본 발명의 일실시예에 따르면, SHVC에서 계층들을 부호화 할때, 기본 계층에서의 MER 크기에 따라 상위 계층에서의 MER 크기를 재설정해줌으로써, 기본 계층 블록의 부호화/복호화 시간과 상위 계층 블록의 부호화/복호화 시간의 차이를 감소시킬 수 있는 영상의 부호화/복호화 방법 및 이를 이용하는 장치가 제공된다.
도 1은 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 2는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 3은 본 발명이 적용될 수 있는, 복수 계층을 이용한 스케일러블 비디오 코딩 구조의 일 실시예를 개략적으로 나타내는 개념도이다.
도 4는 병합 움직임 후보 목록에 포함될 수 있는 주변 블록을 나타낸 도면이다.
도 5는 하나의 CU가 2개의 PU로 나누어졌을 경우(Nx2N), 병합 움직임 후보 목록을 설정하는 일예를 도시한 도면이다.
도 6은 여러 개의 CU를 포함하고 있는 2Nx2N CU에 대한 일예를 도시한 도면이다.
도 7은 병렬적으로 병합 움직임 후보 목록을 구성하기 위한 방법을 설명하는 실시 일예를 도시한 도면이다.
도 8은 본 발명의 일 예에 따라 여러 개의 MER로 묶여진 블록들을 도시한 도면이다.
도 9는 SHVC에서의 부호화/복호화 구조의 일 예를 도시한 도면이다.
도 10은 SHVC 비트스트림 구조의 일예를 도시한 도면이다.
도 11은 블록 기반으로 병렬적 부호화/복호화를 실현하는 방법의 일예를 도시한 도면이다.
도 12는 상위 계층과 기본 계층 간 실제 병렬적 부호화/복호화 순서 및 그에 따른 시간 차이의 일예를 도시한 도면이다.
도 13은 하나의 상위 계층 블록과 그에 상응하는 기본 계층 블록 간 부호화/복호화 시간의 차이의 일예를 도시한 도면이다.
도 14는 블록 간 부호화/복호화 시간 차이에 따른 하나의 상위 계층 영상과 그에 상응하는 기본 계층 영상 간 부호화/복호화 시간의 차이의 일예를 도시한 도면이다.
도 15는 하위 계층 및 이에 대응하는 상위 계층 블록을 병렬적으로 부호화/복호화 하는 방법의 일예를 도시한 도면이다.
도 16은 상위 계층 블록 간 의존성에 의한 부호화/복호화 시간의 증가의 일예를 도시한 도면이다.
도 17은 계층 간 상응하는 블록에 대하여 상위 계층의 MER 크기와 기본 계층의 MER 크기가 동일한 경우의 일예를 도시한 도면이다.
도 18은 상위 계층과 기본 계층 간의 MER 크기 차이로 인한 의존성 발생에 따른 부호화/복호화 시간의 증가의 일예를 도시한 도면이다.
도 19은 상위 계층 블록의 병렬적 부호화/복호화를 통한 부호화/복호화 시간 감소의 일예를 도시한 도면이다.
도 20은 본 발명의 일 실시예에 따른 시간 동기화 방법의 개념도에 대한 일예를 도시한 도면이다.
도 21은 상위 계층 영상의 MER크기 재설정으로 인한 부호화/복호화 시간의 감소의 일예를 도시한 도면이다.
도 22는 본 발명의 일 실시예에 따른 복호화기 구조도를 나타낸 제어 블록도이다.
도 23은 본 발명의 다른 실시예에 따른 복호화기 구조도를 나타낸 제어 블록도이다.
도 24는 본 발명의 일 실시예에 따른 부호화기 구조도를 나타낸 제어 블록도이다.
도 25는 본 발명의 다른 실시예에 따른 부호화기 구조도를 나타낸 제어 블록도이다.
도 26은 본 발명에 따라 상위 계층의 영상 크기가 기본 계층의 영상 크기보다 큰 경우의 일예를 도시한 도면이다.
도 27은 본 발명에 따라 상위 계층의 영상 크기가 기본 계층의 영상 크기보다 작은 경우의 일예를 도시한 도면이다.
도 28은 본 발명에 따라 상위 계층과 기본 계층의 영상 비례 값에 따라 상위 계층의 MER 크기를 정하는 알고리즘의 제어 흐름도의 일예를 도시한 도면이다.
도 29는 본 발명에 따른 방법들을 조합하는 경우에 대한 실시예를를 도시한 도면이다.
도 2는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 3은 본 발명이 적용될 수 있는, 복수 계층을 이용한 스케일러블 비디오 코딩 구조의 일 실시예를 개략적으로 나타내는 개념도이다.
도 4는 병합 움직임 후보 목록에 포함될 수 있는 주변 블록을 나타낸 도면이다.
도 5는 하나의 CU가 2개의 PU로 나누어졌을 경우(Nx2N), 병합 움직임 후보 목록을 설정하는 일예를 도시한 도면이다.
도 6은 여러 개의 CU를 포함하고 있는 2Nx2N CU에 대한 일예를 도시한 도면이다.
도 7은 병렬적으로 병합 움직임 후보 목록을 구성하기 위한 방법을 설명하는 실시 일예를 도시한 도면이다.
도 8은 본 발명의 일 예에 따라 여러 개의 MER로 묶여진 블록들을 도시한 도면이다.
도 9는 SHVC에서의 부호화/복호화 구조의 일 예를 도시한 도면이다.
도 10은 SHVC 비트스트림 구조의 일예를 도시한 도면이다.
도 11은 블록 기반으로 병렬적 부호화/복호화를 실현하는 방법의 일예를 도시한 도면이다.
도 12는 상위 계층과 기본 계층 간 실제 병렬적 부호화/복호화 순서 및 그에 따른 시간 차이의 일예를 도시한 도면이다.
도 13은 하나의 상위 계층 블록과 그에 상응하는 기본 계층 블록 간 부호화/복호화 시간의 차이의 일예를 도시한 도면이다.
도 14는 블록 간 부호화/복호화 시간 차이에 따른 하나의 상위 계층 영상과 그에 상응하는 기본 계층 영상 간 부호화/복호화 시간의 차이의 일예를 도시한 도면이다.
도 15는 하위 계층 및 이에 대응하는 상위 계층 블록을 병렬적으로 부호화/복호화 하는 방법의 일예를 도시한 도면이다.
도 16은 상위 계층 블록 간 의존성에 의한 부호화/복호화 시간의 증가의 일예를 도시한 도면이다.
도 17은 계층 간 상응하는 블록에 대하여 상위 계층의 MER 크기와 기본 계층의 MER 크기가 동일한 경우의 일예를 도시한 도면이다.
도 18은 상위 계층과 기본 계층 간의 MER 크기 차이로 인한 의존성 발생에 따른 부호화/복호화 시간의 증가의 일예를 도시한 도면이다.
도 19은 상위 계층 블록의 병렬적 부호화/복호화를 통한 부호화/복호화 시간 감소의 일예를 도시한 도면이다.
도 20은 본 발명의 일 실시예에 따른 시간 동기화 방법의 개념도에 대한 일예를 도시한 도면이다.
도 21은 상위 계층 영상의 MER크기 재설정으로 인한 부호화/복호화 시간의 감소의 일예를 도시한 도면이다.
도 22는 본 발명의 일 실시예에 따른 복호화기 구조도를 나타낸 제어 블록도이다.
도 23은 본 발명의 다른 실시예에 따른 복호화기 구조도를 나타낸 제어 블록도이다.
도 24는 본 발명의 일 실시예에 따른 부호화기 구조도를 나타낸 제어 블록도이다.
도 25는 본 발명의 다른 실시예에 따른 부호화기 구조도를 나타낸 제어 블록도이다.
도 26은 본 발명에 따라 상위 계층의 영상 크기가 기본 계층의 영상 크기보다 큰 경우의 일예를 도시한 도면이다.
도 27은 본 발명에 따라 상위 계층의 영상 크기가 기본 계층의 영상 크기보다 작은 경우의 일예를 도시한 도면이다.
도 28은 본 발명에 따라 상위 계층과 기본 계층의 영상 비례 값에 따라 상위 계층의 MER 크기를 정하는 알고리즘의 제어 흐름도의 일예를 도시한 도면이다.
도 29는 본 발명에 따른 방법들을 조합하는 경우에 대한 실시예를를 도시한 도면이다.
이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 아울러, 본 발명에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
또한 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
도 1은 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다. 스케일러블(scalable) 비디오 부호화/복호화 방법 또는 장치는 스케일러빌리티(scalability)를 제공하지 않는 일반적인 영상 부호화/복호화 방법 또는 장치의 확장(extension)에 의해 구현될 수 있으며, 도 1의 블록도는 스케일러블 비디오 부호화 장치의 기초가 될 수 있는 영상 부호화 장치의 일 실시예를 나타낸다.
도 1을 참조하면, 상기 영상 부호화 장치(100)는 움직임 예측부(111), 움직임 보상부(112), 인트라 예측부(120), 스위치(115), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 참조영상 버퍼(190)를 포함한다.
영상 부호화 장치(100)는 입력 영상에 대해 인트라(intra) 모드 또는 인터(inter) 모드로 부호화를 수행하고 비트스트림(bit stream)을 출력할 수 있다. 인트라 예측은 화면 내 예측, 인터 예측은 화면 간 예측을 의미한다. 인트라 모드인 경우 스위치(115)가 인트라로 전환되고, 인터 모드인 경우 스위치(115)가 인터로 전환된다. 영상 부호화 장치(100)는 입력 영상의 입력 블록에 대한 예측 블록을 생성한 후, 입력 블록과 예측 블록의 차분을 부호화할 수 있다.
인트라 모드인 경우, 인트라 예측부(120)는 현재 블록 주변의 이미 부호화된 블록의 화소값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다.
인터 모드인 경우, 움직임 예측부(111)는, 움직임 예측 과정에서 참조 영상 버퍼(190)에 저장되어 있는 참조 영상에서 입력 블록과 가장 매치가 잘 되는 영역을 찾아 움직임 벡터를 구할 수 있다. 움직임 보상부(112)는 움직임 벡터와 참조 영상 버퍼(190)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
감산기(125)는 입력 블록과 생성된 예측 블록의 차분에 의해 잔여 블록(residual block)을 생성할 수 있다. 변환부(130)는 잔여 블록에 대해 변환(transform)을 수행하여 변환 계수(transform coefficient)를 출력할 수 있다. 그리고 양자화부(140)는 입력된 변환 계수를 양자화 파라미터에 따라 양자화하여 양자화된 계수(quantized coefficient)를 출력할 수 있다.
엔트로피 부호화부(150)는, 양자화부(140)에서 산출된 값들 또는 부호화 과정에서 산출된 부호화 파라미터 값 등을 기초로, 심볼(symbol)을 확률 분포에 따라 엔트로피 부호화하여 비트스트림(bit stream)을 출력할 수 있다. 엔트로피 부호화 방법은 다양한 값을 갖는 심볼을 입력 받아, 통계적 중복성을 제거하면서, 복호 가능한 2진수의 열로 표현하는 방법이다.
여기서, 심볼이란 부호화/복호화 대상 구문 요소(syntax element) 및 부호화 파라미터(coding parameter), 잔여 신호(residual signal)의 값 등을 의미한다. 부호화 파라미터는 부호화 및 복호화에 필요한 매개변수로서, 구문 요소와 같이 부호화 장치에서 부호화되어 복호화 장치로 전달되는 정보뿐만 아니라, 부호화 혹은 복호화 과정에서 유추될 수 있는 정보를 포함할 수 있으며 영상을 부호화하거나 복호화할 때 필요한 정보를 의미한다. 부호화 파라미터는 예를 들어 인트라/인터 예측모드, 이동/움직임 벡터, 참조 영상 색인, 부호화 블록 패턴, 잔여 신호 유무, 변환 계수, 양자화된 변환 계수, 양자화 파라미터, 블록 크기, 블록 분할 정보 등의 값 또는 통계를 포함할 수 있다. 또한 잔여 신호는 원신호와 예측 신호의 차이를 의미할 수 있고, 또한 원신호와 예측 신호의 차이가 변환(transform)된 형태의 신호 또는 원신호와 예측 신호의 차이가 변환되고 양자화된 형태의 신호를 의미할 수도 있다. 잔여 신호는 블록 단위에서는 잔여 블록이라 할 수 있다.
엔트로피 부호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 부호화 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 부호화를 통해서 영상 부호화의 압축 성능이 높아질 수 있다.
엔트로피 부호화를 위해 지수 골룸(exponential golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 부호화 방법이 사용될 수 있다. 예를 들어, 엔트로피 부호화부(150)에는 가변 길이 부호화(VLC: Variable Lenghth Coding/Code) 테이블과 같은 엔트로피 부호화를 수행하기 위한 테이블이 저장될 수 있고, 엔트로피 부호화부(150)는 저장된 가변 길이 부호화(VLC) 테이블을 사용하여 엔트로피 부호화를 수행할 수 있다. 또한 엔트로피 부호화부(150)는 대상 심볼의 이진화(binarization) 방법 및 대상 심볼/빈(bin)의 확률 모델(probability model)을 도출한 후, 도출된 이진화 방법 또는 확률 모델을 사용하여 엔트로피 부호화를 수행할 수도 있다.
양자화된 계수는 역양자화부(160)에서 역양자화되고 역변환부(170)에서 역변환될 수 있다. 역양자화, 역변환된 계수는 가산기(175)를 통해 예측 블록과 더해지고 복원 블록이 생성될 수 있다.
복원 블록은 필터부(180)를 거치고, 필터부(180)는 디블록킹 필터(deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나 이상을 복원 블록 또는 복원 픽처에 적용할 수 있다. 필터부(180)를 거친 복원 블록은 참조 영상 버퍼(190)에 저장될 수 있다.
도 2는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다. 도 1에서 상술한 바와 같이 스케일러블 비디오 부호화/복호화 방법 또는 장치는 스케일러빌리티를 제공하지 않는 일반적인 영상 부호화/복호화 방법 또는 장치의 확장에 의해 구현될 수 있으며, 도 2의 블록도는 스케일러블 비디오 복호화 장치의 기초가 될 수 있는 영상 복호화 장치의 일 실시예를 나타낸다.
도 2를 참조하면, 상기 영상 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 움직임 보상부(250), 필터부(260) 및 참조 영상 버퍼(270)를 포함한다.
영상 복호화 장치(200)는 부호화 장치에서 출력된 비트스트림을 입력 받아 인트라 모드 또는 인터 모드로 복호화를 수행하고 재구성된 영상, 즉 복원 영상을 출력할 수 있다. 인트라 모드인 경우 스위치가 인트라로 전환되고, 인터 모드인 경우 스위치가 인터로 전환될 수 있다. 영상 복호화 장치(200)는 입력 받은 비트스트림으로부터 복원된 잔여 블록(residual block)을 얻고 예측 블록을 생성한 후 복원된 잔여 블록과 예측 블록을 더하여 재구성된 블록, 즉 복원 블록을 생성할 수 있다.
엔트로피 복호화부(210)는, 입력된 비트스트림을 확률 분포에 따라 엔트로피 복호화하여, 양자화된 계수(quantized coefficient) 형태의 심볼을 포함한 심볼들을 생성할 수 있다. 엔트로피 복호화 방법은 2진수의 열을 입력 받아 각 심볼들을 생성하는 방법이다. 엔트로피 복호화 방법은 상술한 엔트로피 부호화 방법과 유사하다.
양자화된 계수는 역양자화부(220)에서 역양자화되고 역변환부(230)에서 역변환되며, 양자화된 계수가 역양자화/역변환 된 결과, 복원된 잔여 블록(residual block)이 생성될 수 있다.
인트라 모드인 경우, 인트라 예측부(240)는 현재 블록 주변의 이미 부호화된 블록의 화소값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다. 인터 모드인 경우, 움직임 보상부(250)는 움직임 벡터 및 참조 영상 버퍼(270)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
복원된 잔여 블록과 예측 블록은 가산기(255)를 통해 더해지고, 더해진 블록은 필터부(260)를 거친다. 필터부(260)는 디블록킹 필터, SAO, ALF 중 적어도 하나 이상을 복원 블록 또는 복원 픽처에 적용할 수 있다. 필터부(260)는 재구성된 영상, 즉 복원 영상을 출력한다. 복원 영상은 참조 영상 버퍼(270)에 저장되어 화면 간 예측에 사용될 수 있다.
상기 영상 복호화 장치(200)에 포함되어 있는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 움직임 보상부(250), 필터부(260) 및 참조 영상 버퍼(270) 중 영상의 복호화에 직접적으로 관련된 구성요소들, 예컨대, 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 움직임 보상부(250), 필터부(260) 등을 다른 구성요소와 구분하여 복호화부 또는 디코딩부로 표현할 수 있다.
또한, 영상 복호화 장치(200)는 비트스트림에 포함되어 있는 인코딩된 영상에 관련된 정보를 파싱하는 도시하지 않은 파싱부를 더 포함할 수 있다. 파싱부는 엔트로피 복호화부(210)를 포함할 수도 있고, 엔트로피 복호화부(210)에 포함될 수도 있다. 이러한 파싱부는 또한 디코딩부의 하나의 구성요소로 구현될 수도 있다.
도 3은 본 발명이 적용될 수 있는, 복수 계층을 이용한 스케일러블 비디오 코딩 구조의 일 실시예를 개략적으로 나타내는 개념도이다. 도 3에서 GOP(Group of Picture)는 픽처군 즉, 픽처의 그룹을 나타낸다.
영상 데이터를 전송하기 위해서는 전송 매체가 필요하며, 그 성능은 다양한 네트워크 환경에 따라 전송 매체별로 차이가 있다. 이러한 다양한 전송 매체 또는 네트워크 환경에의 적용을 위해 스케일러블 비디오 코딩 방법이 제공될 수 있다.
스케일러블 비디오 코딩 방법은 계층(layer) 간의 텍스쳐 정보, 움직임 정보, 잔여 신호 등을 활용하여 계층간 중복성을 제거하여 부호화/복호화 성능을 높이는 코딩 방법이다. 스케일러블 비디오 코딩 방법은, 전송 비트율, 전송 에러율, 시스템 자원 등의 주변 조건에 따라, 공간적, 시간적, 화질적 관점에서 다양한 스케일러빌리티를 제공할 수 있다.
스케일러블 비디오 코딩은, 다양한 네트워크 상황에 적용 가능한 비트스트림을 제공할 수 있도록, 복수 계층(multiple layers) 구조를 사용하여 수행될 수 있다. 예를 들어 스케일러블 비디오 코딩 구조는, 일반적인 영상 부호화 방법을 이용하여 영상 데이터를 압축하여 처리하는 기본 계층을 포함할 수 있고, 기본 계층의 부호화 정보 및 일반적인 영상 부호화 방법을 함께 사용하여 영상 데이터를 압축 처리하는 향상 계층을 포함할 수 있다.
여기서, 계층(layer)은 공간(spatial, 예를 들어, 영상 크기), 시간(temporal, 예를 들어, 부호화 순서, 영상 출력 순서, 프레임 레이트), 화질, 복잡도 등을 기준으로 구분되는 영상 및 비트스트림(bitstream)의 집합을 의미한다. 또한 기본 계층은 하위 계층, 참조 계층 또는 Base layer, 향상 계층은 상위 계층, Enhancement layer를 의미할 수 있다. 또한 복수의 계층들은 서로 간에 종속성을 가질 수도 있다.
도 3을 참조하면, 예를 들어 기본 계층은 SD(standard definition), 15Hz의 프레임율, 1Mbps 비트율로 정의될 수 있고, 제1 향상 계층은 HD(high definition), 30Hz의 프레임율, 3.9Mbps 비트율로 정의될 수 있으며, 제2 향상 계층은 4K-UHE(ultra high definition), 60Hz의 프레임율, 27.2Mbps 비트율로 정의될 수 있다. 상기 포맷(format), 프레임율, 비트율 등은 하나의 실시예로서, 필요에 따라 달리 정해질 수 있다. 또한 사용되는 계층의 수도 본 실시예에 한정되지 않고 상황에 따라 달리 정해질 수 있다.
예를 들어, 전송 대역폭이 4Mbps라면 상기 제1향상계층 HD의 프레임 레이트를 줄여서 15Hz이하로 전송할 수 있다. 스케일러블 비디오 코딩 방법은 상기 도 3의 실시예에서 상술한 방법에 의해 시간적, 공간적, 화질적 스케일러빌리티를 제공할 수 있다.
비트스트림 내 복수의 계층을 지원하는 비디오의 부호화 및 복호화, 즉 스케일러블 코딩(scalable coding)의 경우, 복수의 계층간에는 강한 연관성(correlation)이 존재하기 때문에 이런 연관성을 이용하여 예측을 수행하면 데이터의 중복 요소를 제거할 수 있고 영상의 부호화 성능을 향상시킬 수 있다. 다른 계층의 정보를 이용하여 예측의 대상이 되는 현재 레이어의 예측을 수행하는 것을 이하에서는 계층간 예측(inter-layer prediction)이라고 표현한다. 스케일러블 비디오 코딩은 이하 부호화 관점에서는 스케일러블 비디오 부호화, 복호화 관점에서는 스케일러블 비디오 복호화와 동일한 의미를 가진다.
복수의 계층들은 해상도, 프레임 레이트, 컬러 포맷 중 적어도 하나가 서로 다를 수 있으며, 계층간 예측 시 해상도의 조절을 위하여 레이어의 업샘플링 또는 다운샘플링이 수행될 수 있다.
통상적으로 화면간 예측은 현재 픽처의 이전 픽처 또는 이후 픽처 중 적어도 하나를 참조 픽처로 하고, 참조 픽처를 기반으로 현재 블록에 대한 예측을 수행할 수 있다. 현재 블록의 예측에 이용되는 영상을 참조 픽처(reference picture) 또는 참조 프레임(reference frame)이라고 한다.
참조 픽처 내의 영역은 참조 픽처를 지시하는 참조 픽처 인덱스(refIdx) 및 움직임 벡터(motion vector) 등을 이용하여 나타낼 수 있다.
화면간 예측은 참조 픽처 및 참조 픽처 내에서 현재 블록에 대응하는 참조 블록을 선택해서, 현재 블록에 대한 예측 블록을 생성할 수 있다.
화면 간 예측에서 부호화 장치 및 복호화 장치는 현재 블록의 움직임 정보를 도출한 후, 도출된 움직임 정보에 기반하여 화면 간 예측 및/또는 움직임 보상을 수행할 수 있다. 이 때, 부호화 장치 및 복호화 장치는 복원된 주변 블록(neighboring block) 및/또는 이미 복원된 콜(col) 픽쳐(collocated picture) 내에서 현재 블록에 대응되는 콜(col) 블록(collocated block)의 움직임 정보를 이용함으로써, 부호화/복호화 효율을 향상시킬 수 있다.
여기서, 복원된 주변 블록은 이미 부호화 및/또는 복호화되어 복원된 현재 픽쳐 내의 블록으로서, 현재 블록에 인접한 블록 및/또는 현재 블록의 외부 코너에 위치한 블록을 포함할 수 있다. 또한 부호화 장치 및 복호화 장치는, 콜 픽쳐 내에서 현재 블록과 공간적으로 대응되는 위치에 존재하는 블록을 기준으로 소정의 상대적인 위치를 결정할 수 있고, 상기 결정된 소정의 상대적인 위치(상기 현재 블록과 공간적으로 대응되는 위치에 존재하는 블록의 내부 및/또는 외부의 위치)를 기반으로 상기 콜 블록을 도출할 수 있다. 여기서, 일례로 콜 픽쳐는 참조 픽쳐 리스트에 포함된 참조 픽쳐 중에서 하나의 픽쳐에 해당될 수 있다.
화면간 예측은 현재 블록과의 레지듀얼(residual) 신호가 최소화되며 움직임 벡터 크기 역시 최소가 되도록 예측 블록을 생성할 수 있다.
한편, 움직임 정보 도출 방식은 현재 블록의 예측 모드에 따라 달라질 수 있다. 인터 예측을 위해 적용되는 예측 모드에는 AMVP(Advanced Motion Vector Predictor), 머지(merge) 등이 있을 수 있다.
일례로, AMVP(Advanced Motion Vector Predictor)가 적용되는 경우, 부호화 장치 및 복호화 장치는 복원된 주변 블록의 움직임 벡터 및/또는 콜 블록의 움직임 벡터를 이용하여, 예측 움직임 벡터 후보 리스트를 생성할 수 있다. 즉, 복원된 주변 블록의 움직임 벡터 및/또는 콜 블록의 움직임 벡터는 예측 움직임 벡터 후보로 사용될 수 있다. 부호화 장치는 상기 리스트에 포함된 예측 움직임 벡터 후보 중에서 선택된 최적의 예측 움직임 벡터를 지시하는 예측 움직임 벡터 인덱스를 복호화 장치로 전송할 수 있다. 이 때, 복호화 장치는 상기 예측 움직임 벡터 인덱스를 이용하여, 예측 움직임 벡터 후보 리스트에 포함된 예측 움직임 벡터 후보 중에서, 현재 블록의 예측 움직임 벡터를 선택할 수 있다.
부호화 장치는 현재 블록의 움직임 벡터와 예측 움직임 벡터 간의 움직임 벡터 차분(MVD: Motion Vector Difference)을 구할 수 있고, 이를 부호화하여 복호화 장치로 전송할 수 있다. 이 때, 복호화 장치는 수신된 움직임 벡터 차분을 복호화할 수 있고, 복호화된 움직임 벡터 차분과 예측 움직임 벡터의 합을 통해 현재 블록의 움직임 벡터를 도출할 수 있다.
부호화 장치는 또한 참조 픽처를 지시하는 참조 픽처 인덱스 등을 복호화 장치에 전송할 수 있다.
복호화 장치는 주변 블록의 움직임 정보들을 이용하여 현재 블록의 움직임 벡터를 예측하고, 부호화 장치로부터 수신한 레지듀얼을 이용하여 현재 블록에 대한 움직임 벡터를 유도할 수 있다. 복호화 장치는 유도한 움직임 벡터와 부호화 장치로부터 수신한 참조 픽처 인덱스 정보를 기반으로 현재 블록에 대한 예측 블록을 생성할 수 있다.
다른 예로, 머지(merge)가 적용되는 경우, 부호화 장치 및 복호화 장치는 복원된 주변 블록의 움직임 정보 및/또는 콜 블록의 움직임 정보를 이용하여, 머지 후보 리스트를 생성할 수 있다. 즉, 부호화 장치 및 복호화 장치는 복원된 주변 블록 및/또는 콜 블록의 움직임 정보가 존재하는 경우, 이를 현재 블록에 대한 머지 후보로 사용할 수 있다.
부호화 장치는 머지 후보 리스트에 포함된 머지 후보 중에서 최적의 부호화 효율을 제공할 수 있는 머지 후보를 현재 블록에 대한 움직임 정보로 선택할 수 있다. 이 때, 상기 선택된 머지 후보를 지시하는 머지 인덱스가 비트스트림에 포함되어 복호화 장치로 전송될 수 있다. 복호화 장치는 상기 전송된 머지 인덱스를 이용하여, 머지 후보 리스트에 포함된 머지 후보 중에서 하나를 선택할 수 있으며, 상기 선택된 머지 후보를 현재 블록의 움직임 정보로 결정할 수 있다. 따라서, 머지 모드가 적용되는 경우, 복원된 주변 블록 및/또는 콜 블록의 움직임 정보가 현재 블록의 움직임 정보로 그대로 사용될 수 있다. 복호화 장치는 예측 블록과 부호화 장치로부터 전송되는 레 지듀얼을 더하여 현재 블록을 복원할 수 있다.
상술한 AMVP 및 머지 모드에서는, 현재 블록의 움직임 정보를 도출하기 위해, 복원된 주변 블록의 움직임 정보 및/또는 콜 블록의 움직임 정보가 사용될 수 있다.
화면 간 예측에 이용되는 다른 모드 중 하나 인 스킵 모드의 경우에, 주변 블록의 정보를 그대로 현재 블록에 이용할 수 있다. 따라서 스킵 모드의 경우에, 부호화 장치는 현재 블록의 움직임 정보로서 어떤 블록의 움직임 정보를 이용할 것인지를 지시하는 정보 외에 레지듀얼 등과 같은 신택스 정보를 복호화 장치에 전송하지 않는다.
부호화 장치 및 복호화 장치는 상기 도출된 움직임 정보에 기반하여 현재 블록에 대한 움직임 보상을 수행함으로써, 현재 블록의 예측 블록을 생성할 수 있다. 여기서, 예측 블록은 현재 블록에 대한 움직임 보상 수행 결과 생성된, 움직임 보상된 블록을 의미할 수 있다. 또한, 복수의 움직임 보상된 블록은 하나의 움직임 보상된 영상을 구성할 수 있다.
복호화 장치는 현재 블록의 인터 예측에 필요한 움직임 정보, 예컨대 움직임 벡터, 참조 픽처 인덱스 등에 관한 정보를 부호화 장치로부터 수신한 스킵 플래그, 머지 플래그 등을 확인하고 이에 대응하여 유도할 수 있다.
예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 서로 다를 수 있다. 예컨대, 예측 블록 단위로 예측모드가 정해져서 변환 블록 단위로 예측이 수행될 수도 있고, 예측 블록 단위로 예측 모드가 정해지고 변환 블록 단위로 화면 내 예측이 수행될 수 도 있다.
병합(merge) 움직임 예측 방법, 즉 머지 예측에 사용되는 움직임 정보란, 움직임 벡터, 참조영상에 대한 인덱스 그리고 예측 방향(단방향, 양방향, 등) 중에서 적어도 하나를 포함하는 정보다. 예측 방향은 참조 픽쳐 목록(Reference Picture List; RefPicList)의 사용에 따라 크게 단방향 예측과 양방향 예측으로 나누어 질 수 있다.
단방향 예측에는 순방향 참조 픽쳐 목록 (LIST 0)을 사용한 순방향 예측(Pred_L0; Prediction L0)과 역방향 참조픽쳐목록 (LIST 1)을 사용한 역방향 예측(Pred_L1; Prediction L1)으로 구분된다.
또한, 양방향 예측(Pred_BI; Prediction BI)은 순방향 참조픽쳐목록 (LIST 0)와 역방향 참조픽쳐목록 (LIST 1)을 모두 사용하며, 순방향 예측과 역방향 예측이 모두 존재하는 것을 의미할 수 있다.
또한, 순방향 참조픽쳐목록(LIST 0)을 역방향 참조픽쳐목록 (LIST 1)에 복사하여 순방향 예측이 두 개 존재하는 경우도 양방향 예측의 범위에 포함될 수 있다. 이러한 예측 방향 여부는 predFlagL0, predFlagL1와 같은 플래그 정보를 사용하여 표현될 수 있다.
실시 일예로, 단방향 예측이고 순방향 예측일 경우 predFlagL0는 ‘1’이 되고 predFlagL1은 ‘0’이 될 수 있다. 또한, 단방향 예측이고 역방향 예측일 경우 predFlagL0는 ‘0’이 되고 predFlagL1은 ‘1’이 될 수 있다. 또한, 양방향 예측일 경우 predFlagL0는 ‘1’이 되고 predFlagL1은 ‘1’이 될 수 있다.
병합 움직임 예측은 부호화 유닛(Coding Unit: CU, 이하 ‘CU’라 함) 별로 수행될 수도 있고, 예측 유닛(Prediction Unit: PU, 이하 ‘PU’라 함) 별로 수행될 수도 있다.
CU 또는 PU(설명의 편의를 위해 CU 는 ‘부호화 블록’, PU는 ‘예측 블록’, CU 및PU를 통칭하여 ‘블록’으로 표현할 수 있음) 별로 병합 움직임을 수행하는 경우에는, 블록 파티션(partition)별로 병합 움직임 예측을 수행할지에 관한 정보와 현재 블록에 인접한 주변 블록(현재 블록의 좌측 인접 블록, 현재 블록의 상측 인접 블록, 현재 블록의 시간적(temporral) 인접 블록 등) 중 어떤 블록과 병합 움직임을 할 것인지에 대한 정보가 시그널링 되어야 한다.
병합 움직임 후보 목록(merge list)은 움직임 정보들이 저장된 목록을 나타내며, 병합 움직임 예측이 수행되기 전에 생성된다. 병합 움직임 후보 목록에 저장되는 움직임 정보는 현재 블록에 인접한 주변 블록의 움직임 정보이거나 참조 영상에서 현재 블록에 대응되는(collocated) 블록의 움직임 정보일 수 있다. 또한 병합 움직임 후보 목록에 저장되는 움직임 정보는 이미 병합 움직임 후보 목록에 존재하는 움직임 정보들을 조합하여 만든 새로운 움직임 정보일 수 있다.
도 4는 본 병합 움직임 후보 목록에 포함될 수 있는 주변 블록을 나타낸 도면이다.
도 4의 주변 블록(A, B, C, D, E)과 그리고 동일 위치의 후보 블록(H(혹은 M))에 대하여 해당 블록의 움직임 정보가 현재 블록의 병합 움직임 예측에 이용될 수 있는지 여부가 판단되며, 특정 블록이 병합 움직임 예측에 이용 가능한 경우에 해당 블록의 움직임 정보가 병합 움직임 후보 목록에 추가될 수 있다.
또한, 각 주변 블록은 서로 동일한 움직임 정보를 가지는지 확인하여 동일한 움직임 정보일 경우, 해당 주변 블록의 움직임 정보는 병합 움직임 후보 목록에 포함되지 않는다.
실시 일 예로, 도 4에서 X 블록에 대한 병합 움직임 후보 목록을 생성할 때, 주변 블록 A가 사용 가능하여 병합 움직임 후보 목록에 포함된 후, 주변 블록 B는 주변 블록 A와 동일한 움직임 정보가 아닐 경우에만, 병합 움직임 후보 목록에 포함될 수 있다.
동일한 방법으로 주변 블록 C는 주변 블록 B와 동일한 움직임 정보가 아닐 경우에만 병합 움직임 후보 목록에 포함될 수 있다. 동일한 방법이 주변 블록 D와 주변 블록 E에 적용될 수 있다.
여기서, 동일한 움직임 정보라는 것은 움직임 벡터가 동일하고 동일한 참조픽쳐를 사용하고 동일한 예측 방향(단방향(순방향, 역방향), 양방향)을 사용함을 의미할 수 있다.
마지막으로 도 4에서 X 블록에 대한 병합 움직임 후보 목록은 소정의 순서, 예컨대, A→B→C→D→E→H(혹은 M) 블록 순서로 목록에 추가될 수 있다. 여기서 A는 A1으로, B는 B1으로, C는 B0로, D는 A0로, E는 B2라고 표현될 수 있고, 이 경우, A→B→C→D→E→H(혹은 M)를 A1→B1→B0→A0→B2→H(혹은 M)로 표현할 수 있다.
도 5는 하나의 CU가 2개의 PU로 나누어졌을 경우(Nx2N), 병합 움직임 후보 목록을 설정하는 일예를 도시한 도면이다.
병합 움직임 예측을 위한 주변 블록은 현재 블록에 인접한 주변 블록의 움직임 정보이거나 참조 영상에서 현재 블록에 대응되는(collocated) 블록의 움직임 정보일 수 있다.
도 5의 (가)와 (나)는 각각 첫 번째 PU(PU0)와 두 번째 PU(PU1)에 대한 병합 움직임 후보 목록을 구성하기 위해 사용되는 주변 블록들을 나타낸다.
도 5에 도시되어 있는 (나)의 두 번째 PU의 병합 움직임 후보 목록을 병렬적으로 구성하기 위해서 첫 번째 PU에 위치한 A1 블록은 두 번째 PU의 병합 움직임 후보 목록에 포함되지 않는다. 즉, (나)의 첫 번째 PU에 위치한 A1 블록은 두 번째 PU의 병합 움직임 후보 목록 구성에 사용 가능하지 않으며, A1 블록의 움직임 정보는 병합 움직임 후보 목록 구성 시 접근될 수 없다는 것을 의미할 수 있다. 또는, A1 블록에 대한 움직임 정보가 존재하지 않는다는 것을 의미할 수 있으며, 혹은 블록 움직임 정보의 가용성이 없음을 의미할 수도 있다.
도 6은 여러 개의 CU를 포함하고 있는 2Nx2N CU에 대한 일예를 도시한 도면이다.
첫 번째 CU는 PU로 분할되지 않으며, 두 번째 CU의 CUO은 2NxN 의 PU로 분할되고, 세 번째 CU의 CU0는 Nx2N 의 PU로 분할되고, 마지막 CU의 CU0는 NxN 의 PU로 분할된다.
부호화기 및 복호화기는 PU에 대한 병합 움직임 후보 목록을 구성하여 움직임 정보에 대한 부호화/복호화를 수행한다. 병합 움직임 후보 목록을 구성하기 위해서는 주변 PU에 대한 움직임 정보가 존재하여야 한다.
한편, 도 6에 도시된 바와 같이 여러 개의 CU를 포함하고 있는 2Nx2N CU에서 인코더가 병렬적으로 병합 움직임 예측(Merge Estimation)을 수행할 경우, 2Nx2N CU안에 PU들 중에서 첫 번째 PU에 해당하는 PU0 경우에만 병합 움직임 예측(Merge Estimation)을 수행할 수 있다.
그 외 PU들은 병렬적으로 병합 움직임 예측(Merge Estimation)을 수행할 수 없다. 그 이유는 각 PU는 병합 움직임 후보 목록을 구성한 후 병합 움직임 예측(Merge Estimation)을 수행하여야 하는데, PU0를 제외한 PU 경우에는 인접한 주변 블록의 PU에 대한 움직임 정보가 없으므로 병합 움직임 후보 목록을 구성할 수 없다. 따라서 PU0를 제외한 PU는 병렬적으로 병합 움직임 예측(Merge Estimation)이 불가능하다.
도 6의 PU0를 제외한 PU들에 병렬적으로 병합 움직임 예측(Merge Estimation)이 수행되도록 적용하기 위하여 병렬 병합 움직임 예측(PME; Parallel Merge Estimation) 방법을 사용할 수 있으며, 그 방법의 실시 일 예는 도 7과 같다.
도 7은 병렬적으로 병합 움직임 후보 목록을 구성하기 위한 방법을 설명하는 실시 일예를 도시한 도면이다.
도시된 바와 같이, LCU(largest coding block)는 복수의 CU로 분할되며, 하나의 CU 역시 하나 이상의 PU로 분할될 수 있다. 예측 대상이 되는 PU의 주변에서는 여러 블록이 존재할 있으며, 이러한 블록에 대한 움직임 정보는 사용 가능하거나 불가능 할 수 있다. 즉, 이미 코딩/ 디코딩되어 사용 가능한 MVPs(motion vector predictions/motion vector precidictors), 동일한 MER에 포함되어 있는 사용 불가능한 MVPs, 아직 주변 PU가 코딩/디코딩 되지 않아 사용 불가능한 MVPs가 존재한다.
도 7에서 “PU0”의 경우, 주변 블록에 사용 가능한 움직임 정보가 이미 존재하므로 병합 움직임 예측 목록을 만들 수 있다.
도 7에서 “PU1”의 경우, 주변 블록이 부호화(혹은 복호화) 되지 않았으므로 사용 가능한 움직임 정보가 없어서, 기존 방법으로는 병렬적으로 병합 움직임 방법을 사용할 수 없다. 이 경우, 주변 블록의 사용 가능하지 않은 움직임 정보를 병합 움직임 후보 목록에 포함시키지 않게 함으로써, 병렬적으로 병합 움직임 예측 방법을 사용 가능하도록 만들수 있다. 다시 말해, 현재 PU에 대하여 사용 가능한 주변 블록의 움직임 정보만을 사용하여 병합 움직임 후보 목록을 구성함으로써, 병렬적으로 병합 움직임 후보 목록을 구성할 수 있게 된다.
이러한 병렬 병합 움직임 예측(PME) 방법의 허용 범위를 병합 움직임 예측 범위(MER; Merge Estimation Region, 혹은 병합 움직임 예측 영역)이라고 표현할 수 있다. 도 7의 LCU는 4개의 MER로 구성될 수 있다.
실시 일예로, 도 7에서 “PU2”의 경우, 같은 MER 내에 존재하는 주변 블록의 움직임 정보를 병합 움직임 후보 목록에 포함시키지 않을 수 있으며, 다른 MER에 존재하는 주변 블록의 움직임 정보만을 병합 움직임 후보 목록에 포함시킬 수 있다.
도 8은 본 발명의 일 예에 따라 여러 개의 MER로 묶여진 블록들을 도시한 도면이다. 도시된 바와 같이, 블록들은 일정한 크기를 갖는 MER에 포함되어 있다.
PME는 해당 MER 내에서만 수행되며, 해당 MER 내에서는 병렬적으로 부호화/복호화가 수행되기 때문에 해당 MER 내에 포함되는 움직임 후보에 대해서는 ‘비가용 혹은 사용할 수 없음(Unavailable)’으로 표기하여 후보에서 제외한다. 즉 MER 내의 움직임 후보는 움직임 후보 리스트에 포함시키지 않는다.
도 9는 SHVC에서의 부호화/복호화 구조의 일 예를 도시한 도면이다.
도 9에 도시된 바와 같이, SHVC(Scalable High efficiency Video Coding)의 영상은 가장 저해상도(또는 저화질)로 구성된 기본 계층(Base Layer, B0, B1, B2, B3...) 및 고해상도(또는 고화질)인 상위 계층(Enhanced Layer, E0, E1, E2, E3...)으로 구성될 수 있다. 물론 상위 계측은 두 개 이상이 가능하다.
도 9를 참조하면, SHVC(Scalable High efficiency Video Coding)의 부호화/복호화 구조는 가장 저해상도(또는 저화질)로 구성된 기본 계층(Base Layer)의 영상 부호화/복호화 후, 고해상도(또는 고화질)인 상위 계층(Enhanced Layer)의 영상이 부호화/복호화 되도록 구성되어 있다. 화살표는 영상의 부호화 /복호화 순서를 나타낸다.
그러나, 이러한 순서대로 부호화/복호화할 때에는 한 픽처(Picture) 단위로 지연이 발생한다. 이는 상위 계층의 영상을 부호화/복호화 하기 위해 그에 상응하는 기본 계층의 영상을 예측에 사용하므로, 그 기본 계층 영상이 모두 부호화/복호화 되기까지 기다려야 하기 때문이다.
도 10은 SHVC 비트스트림 구조의 일 예를 도시한 도면이다.
도 6에서처럼 상위 계층 영상을 부호화/복호화 하기 위해서는 그와 동일한 시간에 있는 기본 계층 영상이 모두 부호화/복호화 될 때까지 기다려야 한다. 하지만 도 10에 도시되어 있는 것처럼 비트스트림에서는 NAL 헤더를 통해 NAL유닛 단위로 분리가 가능하므로 상위 계층의 데이터와 기본 계층의 데이터를 구분할 수 있다. 따라서, 각각의 계층에 대해 따로 병렬적으로 부호화/복호화 하는 것이 가능하다.
따라서 병렬적으로 기본 계층 영상과 상위 계층 영상을 함께 부호화/복호화 할 수 있으며, 이러한 방법의 하나로 각각의 계층 간에 상응하는 블록끼리 병렬적으로 부호화/복호화 하는 것이 가능하다.
이 때 상위 계층을 구성하는 블록을 부호화/복호화 하기 위해서는 그에 상응하는 기본 계층의 블록이 먼저 부호화/복호화되어 있어야 한다.
도 11은 블록 기반으로 병렬적 부호화/복호화를 실현하는 방법의 일예를 도시한 도면이다.
도 11에 도시된 바와 같이, E0를 부호화/복호화 하기 위해서는 B0가 먼저 부호화/복호화 되어있어야 하며, E1를 부호화/복호화 하기 위해서는 B1이 먼저 부호화/복호화 되어 있어야 한다. 즉 상위 계층과 기본 계층 간의 부호화/복호화 순서는 B0 - B1 ( E0 ) - B2 ( E1 ) - B3 ( E2 ) - … 순이 된다. 여기서 괄호는 부호화/복호화가 수행 가능함을 나타낸다.
도 12는 상위 계층과 기본 계층 간 실제 병렬적 부호화/복호화 순서 및 그에 따른 시간 차이의 일예를 도시한 도면이고, 도 13은 하나의 상위 계층 블록과 그에 상응하는 기본 계층 블록 간 부호화/복호화 시간의 차이의 일예를 도시한 도면이다.
SHVC에서의 병렬 부호화/복호화는 기본 계층 블록의 부호화/복호화가 먼저 시작되면 그에 상응하는 상위 계층 블록의 부호화/복호화가 진행된다.
보다 구체적으로는 도 12에서와 도시된 바와 같이, 하나의 기본 계층의 블록과 그에 상응하는 상위 계층의 블록 간에는 부호화/복호화에 있어서 많은 시간 차이가 발생한다. 각 상위 계층 영상의 블록은 일반적으로 기본 계층 블록의 두 배에 해당하는 너비, 높이를 가짐으로써 생기는 부호화/복호화 과정의 증가, 업샘플링을 통한 예측 부호화 과정 등을 통해 기본 계층 영상 블록의 부호화/복호화 시간보다 약 4배 이상의 시간 지연이 생긴다. 따라서 상위 계층 영상 자체의 부호화/복호화 또한 기본 계층 영상보다 약 4배 이상의 시간 지연이 생기게 된다.
도 13은 상위 계층 블록과 하위 계층 블록 간에 발생하는 부호화/복호화 시간 차이를 보여주고 있으며, 도 14는 블록 간 부호화/복호화 시간 차이에 따른 하나의 상위 계층 영상과 그에 상응하는 기본 계층 영상 간 부호화/복호화 시간의 차이를 보여주고 있다. 기본 계층 영상과 상위 계층 영상의 블록 수가 모두 N으로 같다고 가정하고, 각 계층의 블록 간 부호화/복호화 시간의 차이를 t라고 한다면, 상위 계층 영상의 부호화/복호화 함으로써 생기는 시간 지연은 t x N이 된다.
이러한 시간 지연 문제, 특히 상위 계층에서의 시간 지연은 기본 계층에서 보다 전체적인 부호화/복호화 시간에 많은 영향을 미치므로 가능한 줄이거나, 적어도 증가하지 않을 수 있도록 하는 것이 바람직하다.
도 15는 하위 계층 및 이에 대응하는 상위 계층 블록을 병렬적으로 부호화/복호화 하는 방법의 일예를 도시한 도면이고, 도 16은 상위 계층 블록 간 의존성에 의한 부호화/복호화 시간의 증가의 일예를 도시한 도면이다.
도 15는 E13을 4개의 블록으로 분할하여 부호화/복호화를 수행할 경우이다. 이 경우, 각각의 상의 계층영상 블록들(E13A, E13B, E13C, E13D)은 기본 계층의 영상 블록과 크기가 동일하므로, 부호화/복호화 하는 데는 기본 계층의 블록과 많은 차이를 보이지 않는다.
하지만 네 개의 블록(E13A, E13B, E13C, E13D) 간에는 공간적인 의존성이 존재한다. 결국 서로 순차적으로 부호화/복호화할 수 밖에 없으므로 도 16과 같은 순서로 부호화된다.
HEVC에서는 병합 움직임 예측 영역(Merge Estimation Region: MER)이라는 개념을 도입하고 있다. 즉, MER 영역 내에서는 공간적 의존성을 줄여 영역 내에 포함되는 블록에 대해서는 병렬적으로 움직임 예측을 수행할 수 있게 하는 방법이다.
도 15에서 상위 계층의 E13 블록을 부호화/복호화하는 경우를 생각해보자. 만일 상위 계층의 E13 블록에 PME를 적용할 경우, 기본 계층과 상위 계층은 동일한 PPS를 사용하므로 기본 계층의 PME 에 대한 MER 영역 설정이 상위 계층에 그대로 적용된다. 따라서 상위계층에서는 E13A, E13B, E13C, E13D 각 블록 내에서만 PME가 적용되고, E13A, E13B, E13C, E13D 블록 간에는 부호화/복호화 의존성이 남아있게 된다. 즉, MER 영역 내에서는 병렬적으로 움직임 예측을 수행하지만, MER 영역 간에는 일반 블록처럼 의존도가 존재한다.
도 17은 계층 간 상응하는 블록에 대하여 상위 계층의 MER 크기와 기본 계층의 MER 크기가 동일한 경우의 일예를 도시한 도면이이고, 도 18은 상위 계층과 기본 계층 간의 MER 크기 차이로 인한 의존성 발생에 따른 부호화/복호화 시간의 증가의 일예를 도시한 도면이다.
도 17에 도시되어 있는 것처럼, 하위 계층의 MER0를 부호화/복호화 하는 경우 상위 계층에서는 MER0-0, MER0-1, MER0-2, MER0-3을 차례대로 부호화/복호화해야 한다. 즉, 상위 계층에서 MER 간의 의존도로 인해 부호화/복호화 시간의 증가가 발생한다. 이는 하위 계층의 MER 크기와 상위 계층의 MER 크기가 동일하기 때문에 발생되는 문제점이다.
따라서 이러한 경우 도 16과 유사하게 블록 간 의존도가 발생했던 것처럼, MER 간에도 의존성이 발생함에 따라 부호화/복호화 시간이 증가하게 된다(도 18).
상기한 바와 같은 문제를 개선하기 위하여, 본 발명에 따를 경우, 블록 간의 공간적 의존성을 제거한다. 블록 간의 공간적 의존성을 제거하면 각 블록들이 병렬적으로 부호화/복호화될 수 있으므로 부호화/복호화 시간이 크게 감소될 수 있다.
예를 들면, 도 15의 E13을 부호화하기 위해 네 개의 블록(E13A, E13B, E13C, E13D) 각각에 대하여 부호화를 병렬적으로 수행하면 도 16의 부호화/복호화 구조는 도 19과 같은 구조로 바뀌게 된다.
도 19은 상위 계층 블록의 병렬적 부호화/복호화를 통한 부호화/복호화 시간 감소의 일예를 도시한 도면이다. 도 19에 도시된 바와 같이, 하위 계층의 B0이 부호화/복호화 되면, 상위 계층의 E0A, E0B E0C E0D는 병렬적으로 부호화/복호화가 가능하다. 즉, 상위 계층의 E0A, E0B E0C E0D가 포함되는 E0이 하나의 MER로 설정되어 있으면 MER 내의 블록 간에는 블록 간 가용성 여부가 적용되지 않기 때문에 병렬적 병합 움직임 예측이 가능하다.
본 발명에 따르면 화면 간 부호화에서, 기본 계층 MER 크기 기반의 상위 계층 MER 크기 설정을 통한 부호화/복호화 시간 동기화 방법 및 장치가 제공될 수 있다.
이를 위하여 기본 계층에서의 MER 크기에 따라 상위 계층에서의 MER 크기를 재설정해줌으로써, 기본 계층 블록의 부호화/복호화 시간과 상위 계층 블록의 부호화/복호화 시간의 차이를 줄이는 것이 가능하다.
도 20은 본 발명의 일 실시예에 따른 시간 동기화 방법의 개념도에 대한 일예를 도시한 도면이다. 도 20에 도시되어 있는 MER은 도 17에 도시되어 있는 세부적으로 나누어졌던 상위 계층의 MER보다 크다.
도 21은 상위 계층 영상의 MER크기 재설정으로 인한 부호화/복호화 시간의 감소의 일예를 도시한 도면이다. 도 20에 따라 MER를 재설정할 경우, 도 21과 같이 기본 계층 블록의 부호화/복호화 시간과 상위 계층 블록의 부호화/복호화 시간의 차이를 줄이는 것이 가능하다. 이러한 방법은 도 19에 도시되어 있는 상위 계층 블록의 병렬적 부호화/복호화를 이뤄내는 것과 유사할 수 있다.
도 22는 본 발명의 일 실시예에 따른 복호화기 구조도를 나타낸 제어 블록도이다.
도 22는 하위 계층의 MER 정보를 기반으로 상위 계층의 MER 정보를 설정하는 경우이다. 도 22에 도시한 바와 같이, 영상의 비트스트림이 복호화기로 입력되면 비트스트림 분리부(221)에서 상위 계층의 비트스트림과 하위 계층의 비트스트림을 분리하여 각 계층의 복호화부(222, 223)로 전달한다.
또한 비트스트림 분리부(221)에서는 MER 정보를 포함하는 비트스트림을 MER 파싱부(224)로 전달하는 역할을 수행한다. MER 파싱부(224)에서 얻은 MER 정보는 각 계층의 복호화부(222, 223)로 전달된다.
상위 계층에 전달되는 MER 정보는 MER 재설정부(225)를 거쳐서 새롭게 설정된 후에 상위 계층 복호화부(223)로 전달된다.
기본 계층의 복호화부(222)는 기본 계층에 해당하는 MER 정보와 비트스트림 정보를 입력받아 영상을 복원한다.
상위 계층의 복호화부(223)는 기본 계층의 복원 영상(혹은 블록)과 상위 계층에 해당하는 비트스트림 정보, 그리고 새롭게 설정된 MER 정보를 입력 받아 상위 계층 복원 영상을 출력한다.
MER 파싱부(224)는 독립된 구성 요소일 수도 있고, 기본 계층의 복호화부(222) 또는 상위 계층의 복호화부(223) 중 어느 하나에 머지되거나 포함되는 구성요소 일 수 있다.
MER 재설정부(225)는 상술한 바와 같이, 독립적이 구성 요소일 수도 있고, 상위 계층의 복호화부(223)에 머지되거나 포함되는 구성요소 일 수 있다.
도 23은 본 발명의 다른 실시예에 따른 복호화기 구조도를 나타낸 제어 블록도이다.
도 23은 각각의 MER정보가 별도로 부호화된 경우에 대한 복호화기를 도시한 것이다. 도 23에서는 영상의 비트스트림이 복호화기로 입력되면 비트스트림 분리부(231)에서 상위 계층 영상에 해당하는 비트스트림은 상위 계층 복호화부(233)로 전달하고, 기본 계층 영상에 해당하는 비트스트림은 기본 계층 복호화부(232)로 전달한다.
또한 비트스트림 분리부(231)는 상위 계층의 MER 정보를 포함하는 비트스트림을 상위 계층 MER 파싱부(235)로, 기본 계층의 MER 정보를 포함하는 비트스트림은 기본 계층 MER 파싱부(234)로 전달한다.
상위 계층의 MER 파싱부(235)에서는 상위 계층에 해당하는 MER 정보를 상위 계층 복호화부(233)로, 기본 계층의 MER 파싱부에서는 그에 해당하는 MER 정보를 기본 계층 복호화부(232)로 전달한다.
기본 계층 복호화부(232)에서는 기본 계층 비트스트림과 기본 계층 MER 정보를 받아 복호화를 수행하여 기본 계층의 영상을 복원한다.
상위 계층 복호화부(233)에서는 기본 계층의 복원 영상(혹은 블록)과 상위 계층 비트스트림, 그리고 상위 계층 MER 정보를 받아 상위 계층의 영상을 복원한다.
기본 계층 MER 파싱부(234)는 독립적이 구성 요소일 수도 있고 기본 계층 복호화부(232)에 머지되거나 포함되는 구성요소일 수 있고, 상위 계층의 MER 파싱부(235) 역시 독립적이 구성 요소일 수도 있고 상위 계층 복호화부(233) 에 머지되거나 포함되는 구성요소일 수 있다.
도 24는 본 발명의 일 실시예에 따른 부호화기 구조도를 나타낸 제어 블록도이다.
도 24은 하위 계층의 MER 정보를 기반으로 상위 계층의 MER 정보를 설정하는 경우의 부호화기를 나타낸다.
도 24에서는 기본 계층의 영상과 기본 계층 MER 설정부(241)에서 설정된 기본 계층 MER 정보를 함께 입력 받아 기본 계층 부호화부(242)에서 부호화를 진행한다.
상위 계층 MER 설정부(243)에서는 기본 계층 MER 설정부(241)에서 설정된 MER 정보를 입력받아 상위 계층의 MER 정보를 재설정한다.
상위 계층 부호화부(244)에서는 상위 계층의 영상과 기본 계층 영상(혹은 블록), 상위 계층 MER 정보를 입력받아 상위 계층 영상을 부호화한다.
각 계층의 영상이 부호화되면 비트스트림 통합부(245)에서 하나의 비트스트림으로 통합하여 전송하게 된다.
도 25는 본 발명의 다른 실시예에 따른 부호화기 구조도를 나타낸 제어 블록도이다. 도 25는 각 계층의 MER정보가 별도로 부호화되는 경우의 부호화기를 나타낸다.
도 25에서는 기본 계층 MER설정부(251)에서 설정된 기본 계층 MER 정보와 기본 계층 영상이 기본 계층 부호화부(252)로 입력되면 기본 계층 영상의 부호화를 진행한다.
그리고 상위 계층 MER 설정부(253)에서 설정된 상위 계층 MER 정보와 기본 계층 영상(혹은 블록), 그리고 상위 계층 영상이 상위 계층 부호화부(254)로 입력이 되면 상위 계층 영상의 부호화를 진행한다.
각 계층의 부호화부에서 부호화가 진행된 각 계층의 비트스트림은 비트스트림 통합부(255)에서 하나의 비트스트림으로 통합된다.
이하에서는, 상위 계층 영상과 기본 계층 영상 간 MER 크기 관계에 따라 발생할 수 있는 경우에 대한 본 발명의 구체적인 방법에 대하여 설명한다.
도 26은 본 발명에 따라 상위 계층의 영상 크기가 기본 계층의 영상 크기보다 큰 경우의 일예를 도시한 도면이다..
도 26에 도시된 바와 같이, 상위 계층의 영상 크기가 기본 계층의 영상 크기보다 큰 경우 기본 계층의 log2_parallel_merge_level_minus2에 + 1을 하여 상위 계층의 log2_parallel_merge_level_minus2 값을 재설정한다.
MER의 크기는 HEVC에서 PPS 신택스의 log2_parallel_merge_level_minus2의 값으로 정의된다. 따라서 기본 계층에서의 log2_parallel_merge_level_minus2 값을 기반으로 상위 계층에서의 log2_parallel_merge_level_minus2 값을 재설정할 수 있다.
도 27은 본 발명에 따라 상위 계층의 영상 크기가 기본 계층의 영상 크기보다 작은 경우의 일예를 도시한 도면이다
도 27에 도시된 바와 같이, 상위 계층의 영상 크기가 기본 계층의 영상 크기보다 작은 경우, 기본 계층의 log2_parallel_merge_level_minus2에 -1을 더하여 상위 계층의 log2_parallel_merge_level_minus2 값을 재설정한다.
MER의 크기는 HEVC에서 PPS 신택스의 log2_parallel_merge_level_minus2의 값으로 정의된다. 따라서 기본 계층에서의 log2_parallel_merge_level_minus2 값을 기반으로 상위 계층에서의 log2_parallel_merge_level_minus2 값을 재설정할 수 있다.
위의 두 가지 경우를 포함하는 경우를 일반화하면, 기본 계층의 영상 크기와 상위 계층의 영상 크기를 비교하고 영상 크기 간 비율을 통하여 상위 계층 영상의 log2_parallel_merge_level_minus2 값을 재설정할 수 있다.
도 28은 본 발명에 따라 상위 계층과 기본 계층의 영상 비례 값에 따라 상위 계층의 MER 크기를 정하는 알고리즘의 제어 흐름도의 일예를 도시한 도면이다.
우선, 기본 계층과 상위 계층의 픽쳐 비율을 파악한다(S281).
예를 들어 기본 계층 영상의 너비가 640라고 하고, log2_parallel_merge_level_minus2의 값은 3, 즉, MER의 크기가 32x32이고 상위 계층 영상의 너비가 1280라고 가정하자.
이 때 기본 계층의 픽쳐 너비(bl_pic_width)와 상위 계층의 픽쳐 너비(el_pic_width)의 비율 값(ratio)은 1280/640으로 2가 된다.
기본 계층과 상위 계층의 픽쳐 비율을 파악되면 ratio이 1보다 같거나 큰지 여부가 판단되고, 판단 결과에 따라 ratio가 재설정된다. 재설된 ratio에 따라 상위 계층의 MER 역시 재 설정된다.
만약, 상술한 가정처럼 상위 계층의 픽쳐 너비가 기본 계층의 픽쳐 너비보다 2배 커서 ratio 값이 1보다 크다면(S282), 새로운 ratio 값은 2를 2로 나눈 1이 되고, 상위 계층 영상의 log2_parallel_merge_level_minus2의 값은 기본 계층의 log2_parallel_merge_level_minus2의 값인 3에 1을 더하여 4가 된다. 따라서, 상위 계층 영상의 MER의 크기는 64x64가 된다.
또 다른 예로 기본 계층 영상의 너비와 상위 계층 영상의 너비가 1280으로 같다고 하자. 하위 계층의 log2_parallel_merge_level_minus2의 값은 4, 즉, MER의 크기가 64x64이고, ratio는 1이다. ratio를 2로 나누면 0.5이고, 소수점 이하는 버림이 되므로 새로운 ratio 값은 0이 된다. 따라서 기본 계층 영상의 log2_parallel_merge_level_minus2에 0이 더해지는 것이므로 상위 계층 영상의 log2_parallel_merge_level_minus2는 하위 계층 영상의 값과 같게 된다.
즉, 기본 계층의 픽쳐 너비(bl_pic_width)와 상위 계층의 픽쳐 너비(el_pic_width)의 비율(ratio)이 1보다 같거나 크면, 새로운 ratio은 ratio ≫ 1으로 설정되고, 재설정될 상위 계층의 MER(el_log2_parallel_merge_level_minus2)은 기본 계층의 MER(bl_log2_parallel_merge_level_minus2)에 새로운 ratio를 더한 값으로 설정된다(S283).
만약, 상위 계층의 픽쳐 너비가 기본 계층의 픽쳐 너비보다 작아서, ratio 값은 1보다 작으면(S284), 새로운 ratio은 (1/ratio) ≫ 1으로 설정되고, 재설정될 상위 계층의 MER(el_log2_parallel_merge_level_minus2)은 기본 계층의 MER(bl_log2_parallel_merge_level_minus2)에 새로운 ratio를 뺀 값으로 설정된다(S285).
예를 들어, 기본 계층 영상의 너비가 1280이고 log2_parallel_merge_level_minus2의 값이 3, 즉, MER의 크기가 32x32이며, 상위 계층 영상의 너비가 320이라고 가정 하자. 이 때 ratio는 320/1280가 되어 1/4이 된다.
ratio가 1보다 작으므로 역수화 하면 4, 이것을 반으로 나누면 2이다. 따라서 기본 계층의 bl_log2_parallel_merge_level_minus2 값 3에서 ratio 값인 2를 빼면 1이 되어 상위 계층의 MER(el_log2_parallel_merge_level_minus2)의 크기는 8x8이 된다.
만약, 상위 계층의 MER(el_log2_parallel_merge_level_minus2)이 0보다 작으면(S286), 상위 계층의 MER(el_log2_parallel_merge_level_minus2)은 0으로 설정된다(S287).
본 발명의 또 다른 실시예에 따르면, 기본 계층과 상위 계층 간 공유하던 신택스 정보를 각각의 계층별로 나누어 시그널링 할 수 있다.
기존의 SHVC 구조에서는 각 계층의 PPS가 따로 존재 하지 않으며, 기본 계층과 상위 계층 간에 하나의 PPS를 공유하여 사용하였다. 이로 인해 PPS 내 포함 된 MER 정보에 의해 동일한 MER이 각 계층에 사용된다.
각 계층마다 MER을 다르게 설정하기 위하여, 계층마다 MER 설정 정보를 시그널링 할 수 있다. 실시 일예로, 계층 별 MER 설정 정보는 VPS (video parameter set), SPS(sequence parameter set), PPS(picture parameter set), 슬라이스 헤더 등에 포함하여 전송될 수 있다. 이러한 방법을 통하여, 상위 계층에서는 새로운 MER 크기를 사용함으로써기본 계층과 MER 크기가 달라질 수 있게 된다.
상술한 방법들 모두 블록 크기 혹은 CU 깊이 등에 따라 적용 범위를 달리할 수 있다. 이렇게 적용 범위를 결정하는 변수(즉, 크기 혹은 깊이 정보)는 부호화기 및 복호화기가 미리 정해진 값을 사용하도록 설정할 수도 있고, 프로파일 또는 레벨에 따라 정해진 값을 사용하도록 할 수 도 있고, 부호화기가 변수 값을 비트스트림에 시그널링하면 복호화기는 비트스트림으로부터 이 값을 구하여 사용할 수도 있다.
CU 깊이에 따라 적용 범위를 달리하는 할 때는 아래 표 1에 예시한 바와 같이, 주어진 깊이 이상의 깊이에만 적용하는 방식(방식A), 주어진 깊이 이하에만 적용하는 방식(방식B), 주어진 깊이에만 적용하는 방식이 있을 수 있다(방식C).
아래의 표 1은 주어진 CU 깊이가 2인 경우, 본 발명의 방법들을 적용하는 범위 결정 방식의 예를 나타낸 것이다. 이 때, O은 해당 깊이에 적용됨을 나타내고, X는 해당 깊이에 적용하지 않음을 나타낸다.
<표 1>
모든 깊이에 대하여 본 발명의 방법들을 적용하지 않는 경우는 임의의 지시자(flag)를 사용하여 나타낼 수도 있고, CU 깊이의 최대값보다 하나 더 큰 값을 적용범위를 나타내는 CU 깊이 값으로 시그널링 함으로써 표현할 수도 있다.
또한 상술한 방법은 휘도 블록의 크기에 따라 색차 블록에 다르게 적용할 수 있으며, 또한, 휘도 신호 영상 및 색차 영상에 다르게 적용할 수 있다.
도 29는 본 발명에 따른 방법들을 조합하는 경우에 대한 실시예를를 도시한 도면이다.
도 29의 변형된 방법들 중에서 방법 “사 1”을 살펴보면, 휘도블록의 크기가 8(8x8, 8x4, 2x8 등)인 경우이고, 그리고 색차 블록의 크기가 4(4x4, 4x2, 2x4)인 경우에 명세서의 방법을 휘도 신호 및 색차 신호 및 수평 신호 및 수직 신호에 적용할 수 있다.
위의 변형된 방법들 중에서 방법 “파 2”을 살펴보면, 휘도블록의 크기가 16(16x16, 8x16, 4x16 등)인 경우이고, 그리고 색차 블록의 크기가 4(4x4, 4x2, 2x4)인 경우에 명세서의 방법을 휘도 신호 및 색차 신호 및 수평 신호에 적용하고 수직 신호에는 적용하지 않을 수 있다.
또 다른 변형된 방법들로 휘도 신호에만 명세서의 방법이 적용되고 색차 신호에는 적용되지 않을 수 있다. 반대로 색차 신호에만 명세서의 방법이 적용되고 휘도 신호에는 적용되지 않을 수 있다.
상술한 본 발명에 따른 방법은 컴퓨터에서 실행되기 위한 프로그램으로 제작되어 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있으며, 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
상술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
100 : 영상 부호화 장치 111: 움직임 예측부
112: 움직임 보상부 120 : 인트라 예측부
115 : 스위치 125 : 감산기
130 : 변환부 140 : 양자화부
150 : 엔트로피 부호화부 160 : 역양자화부
170 : 역변환부 180 : 필터부
112: 움직임 보상부 120 : 인트라 예측부
115 : 스위치 125 : 감산기
130 : 변환부 140 : 양자화부
150 : 엔트로피 부호화부 160 : 역양자화부
170 : 역변환부 180 : 필터부
Claims (16)
- 복수의 계층을 지원하는 영상의 복호화 방법에 있어서,
복호화 대상이 되는 상위 계층의 대상 블록이 참조할 수 있는 기본 계층의 참조 블록을 복호화 하는 단계와;
상기 참조 블록의 병합 움직임 예측 영역에 기초하여 상기 대상 블록의 병합 움직임 예측 영역을 설정하는 단계와;
상기 대상 블록의 병합 움직임 예측 영역에 기초하여 상기 대상 블록에 대한 병합 움직임 예측 목록을 유도하는 단계와;
상기 병합 움직임 예측 목록에 기초하여 상기 대상 블록에 대한 움직임 보상을 수행하는 단계를 포함하는 것을 특징으로 하는 영상의 복호화 방법. - 제1항에 있어서,
상기 대상 블록의 병합 움직임 예측 영역은 상기 기본 계층의 픽쳐 너비와 상기 상위 계측의 픽쳐 너비의 비율에 따라 설정되는 것을 특징으로 하는 영상의 복호화 방법. - 제2항에 있어서,
상기 기본 계층의 픽쳐 너비와 상기 상위 계측의 픽쳐 너비의 비율(이하, 제1 비율)이 1 이상이면,
상기 대상 블록의 병합 움직임 예측 영역은 상기 참조 블록의 병합 움직임 예측 영역을 나타내는 소정의 레벨값에 상기 제1 비율을 2로 나눈 몫에 대응하는 제2비율을 더한 값으로 설정되는 것을 특징으로 하는 영상의 복호화 방법. - 제2항에 있어서,
상기 기본 계층의 픽쳐 너비와 상기 상위 계측의 픽쳐 너비의 비율(이하, 제1 비율)이 1 미만이면,
상기 대상 블록의 병합 움직임 예측 영역은 상기 참조 블록의 병합 움직임 예측 영역을 나타내는 소정의 레벨값에서 상기 제1 비율의 역수를 2로 나눈 몫에 대응하는 제2 비율을 뺀 값으로 설정되는 것을 특징으로 하는 영상의 복호화 방법. - 제3항 또는 제4항에 있어서,
상기 레벨값은 상기 기본 계층에 대한 log2_parallel_merge_level_minus2라는 구문 요소의 디코딩을 통하여 유도되는 것을 특징으로 하는 영상의 복호화 방법. - 제1항에 있어서,
상기 대상 블록의 병합 움직임 예측 영역을 나타내는 소정의 구문 요소를 수신하는 단계를 더 포함하는 것을 특징으로 하는 영상의 복호화 방법. - 제1항에 있어서,
상기 대상 블록은 적어도 둘 이상의 예측 블록으로 분할되는 코딩 블록이고,
상기 병합 움직임 예측 영역에 내에 포함되는 예측 블록 간에는 병렬적 병합 움직임 목록이 생성되는 것을 특징으로 하는 영상의 복호화 방법. - 제1항에 있어서,
상기 대상 블록의 병합 움직임 예측 영역은 상기 대상 블록이 휘도 블록인지 색차 블록인지에 따라 기설정된 크기로 설정되는 것을 특징으로 하는 영상의 복호화 방법. - 복수의 계층을 지원하는 영상의 복호화 장치에 있어서,
복호화 대상이 되는 상위 계층의 대상 블록이 참조할 수 있는 기본 계층의 참조 블록을 복호화 하는 기본 계층 복호화부와;
상기 참조 블록의 병합 움직임 예측 영역에 기초하여 상기 대상 블록의 병합 움직임 예측 영역을 설정하고, 상기 대상 블록의 병합 움직임 예측 영역에 기초하여 상기 대상 블록에 대한 병합 움직임 예측 목록을 유도하고, 상기 병합 움직임 예측 목록에 기초하여 상기 대상 블록에 대한 움직임 보상을 수행하는 상위 계층 복호화부를 포함하는 것을 특징으로 하는 영상의 복호화 장치. - 제9항에 있어서,
상기 상위 계층 복호화부는 상기 대상 블록의 병합 움직임 예측 영역을 상기 기본 계층의 픽쳐 너비와 상기 상위 계측의 픽쳐 너비의 비율에 따라 설정하는 것을 특징으로 하는 영상의 복호화 장치. - 제10항에 있어서,
상기 기본 계층의 픽쳐 너비와 상기 상위 계측의 픽쳐 너비의 비율(이하, 제1 비율)이 1 이상이면,
상기 상위 계층 복호화부는 상기 대상 블록의 병합 움직임 예측 영역을 상기 참조 블록의 병합 움직임 예측 영역을 나타내는 소정의 레벨값에 상기 제1 비율을 2로 나눈 몫에 대응하는 제2비율을 더한 값으로 설정하는 것을 특징으로 하는 영상의 복호화 장치. - 제10항에 있어서,
상기 기본 계층의 픽쳐 너비와 상기 상위 계측의 픽쳐 너비의 비율(이하, 제1 비율)이 1 미만이면,
상기 상위 계층 복호화부는 상기 대상 블록의 병합 움직임 예측 영역을 상기 참조 블록의 병합 움직임 예측 영역을 나타내는 소정의 레벨값에서 상기 제1 비율의 역수를 2로 나눈 몫에 대응하는 제2 비율을 뺀 값으로 설정하는 것을 특징으로 하는 영상의 복호화 장치. - 제11항 또는 제12항에 있어서,
상기 상위 계층 복호화부는 상기 기본 계층에 대한 log2_parallel_merge_level_minus2라는 구문 요소의 디코딩을 통하여 상기 레벨값을 유도하는 것을 특징으로 하는 영상의 복호화 장치. - 제9항에 있어서,
상기 상위 계층 복호화부는 상기 대상 블록의 병합 움직임 예측 영역을 나타내는 소정의 구문 요소를 수신하여 파싱하는 것을 특징으로 하는 영상의 복호화 장치. - 제9항에 있어서,
상기 대상 블록은 적어도 둘 이상의 예측 블록으로 분할되는 코딩 블록이고,
상기 상위 계층 복호화부는 상기 병합 움직임 예측 영역에 내에 포함되는 예측 블록 간에 병렬적 병합 움직임 목록을 생성하는 것을 특징으로 하는 영상의 복호화 장치. - 제9항에 있어서,
상기 상위 계층 복호화부는 상기 대상 블록의 병합 움직임 예측 영역을 상기 대상 블록이 휘도 블록인지 색차 블록인지에 따라 기설정된 크기로 설정하는 것을 특징으로 하는 영상의 복호화 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120135656 | 2012-11-27 | ||
KR20120135656 | 2012-11-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140077824A true KR20140077824A (ko) | 2014-06-24 |
KR101561461B1 KR101561461B1 (ko) | 2015-10-20 |
Family
ID=51129664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130145501A KR101561461B1 (ko) | 2012-11-27 | 2013-11-27 | 영상의 부호화/복호화 방법 및 이를 이용하는 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101561461B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019231206A1 (ko) * | 2018-05-30 | 2019-12-05 | 디지털인사이트주식회사 | 영상 부호화/복호화 방법 및 장치 |
CN113330744A (zh) * | 2018-12-21 | 2021-08-31 | 高通股份有限公司 | 视频编解码中用于并行处理的处理区域的推导 |
CN113906745A (zh) * | 2019-12-26 | 2022-01-07 | Kddi 株式会社 | 图像解码装置、图像解码方法及程序 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11743452B2 (en) * | 2018-09-03 | 2023-08-29 | Electronics And Telecommunications Research Institute | Video encoding/decoding method and device, and recording medium for storing bitstream |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101197176B1 (ko) | 2011-09-23 | 2012-11-05 | 주식회사 케이티 | 머지 후보 블록 유도 방법 및 이러한 방법을 사용하는 장치 |
KR101205017B1 (ko) * | 2011-11-23 | 2012-11-26 | (주)휴맥스 | 비대칭 파티션에 대한 공통 병합 후보 블록 집합을 이용한 영상 부호화 방법 및 복호화 방법 |
-
2013
- 2013-11-27 KR KR1020130145501A patent/KR101561461B1/ko active IP Right Grant
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019231206A1 (ko) * | 2018-05-30 | 2019-12-05 | 디지털인사이트주식회사 | 영상 부호화/복호화 방법 및 장치 |
US11350118B2 (en) | 2018-05-30 | 2022-05-31 | Digitalinsights Inc. | Image encoding/decoding method and device |
US11356687B2 (en) | 2018-05-30 | 2022-06-07 | Digitalinsights Inc. | Image encoding/decoding method and device |
US11818378B2 (en) | 2018-05-30 | 2023-11-14 | Digitalinsights Inc. | Image encoding/decoding method and device |
US11831890B2 (en) | 2018-05-30 | 2023-11-28 | Digitalinsights Inc. | Image encoding/decoding method and device |
CN113330744A (zh) * | 2018-12-21 | 2021-08-31 | 高通股份有限公司 | 视频编解码中用于并行处理的处理区域的推导 |
CN113906745A (zh) * | 2019-12-26 | 2022-01-07 | Kddi 株式会社 | 图像解码装置、图像解码方法及程序 |
Also Published As
Publication number | Publication date |
---|---|
KR101561461B1 (ko) | 2015-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11889052B2 (en) | Method for encoding video information and method for decoding video information, and apparatus using same | |
CN113302932B (zh) | 视频编解码的方法、装置及存储介质 | |
US10334258B2 (en) | Scalable video coding method and apparatus using inter prediction mode | |
KR102209109B1 (ko) | 영상 부호화/복호화 방법 및 장치 | |
KR20140016823A (ko) | 영상의 복호화 방법 및 이를 이용하는 장치 | |
KR20190089836A (ko) | 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치 | |
JP2013545372A (ja) | 映像情報符号化方法及び復号化方法 | |
CN113196745B (zh) | 视频编解码的方法和装置 | |
KR101979284B1 (ko) | 인터 예측 모드 스케일러블 코딩 방법 및 장치 | |
KR101561461B1 (ko) | 영상의 부호화/복호화 방법 및 이를 이용하는 장치 | |
KR102045983B1 (ko) | 머지를 기반으로 한 복호화 방법 및 장치 | |
CN113841412B (zh) | 视频编解码的方法、装置、计算机设备及存储介质 | |
KR20130085088A (ko) | 스케일러블 비디오 코딩에서의 고속 모드 결정 방법 및 그 장치 | |
KR102219841B1 (ko) | 비디오 부호화 방법 및 비디오 복호화 방법과 이를 이용하는 장치 | |
KR20210013254A (ko) | 영상 부호화/복호화 방법 및 장치 | |
KR20210022598A (ko) | 비디오 부호화 방법 및 비디오 복호화 방법과 이를 이용하는 장치 | |
KR102602633B1 (ko) | 영상 부호화/복호화 방법 및 장치 | |
KR102325977B1 (ko) | 영상의 복호화 방법 및 이를 이용하는 장치 | |
KR20140081682A (ko) | 영상 부호화/복호화 방법 및 장치 | |
KR20140088015A (ko) | 영상의 부호화/복호화 방법 및 이를 이용하는 장치 | |
KR20150112470A (ko) | 영상의 부호화 방법 및 이를 이용하는 장치 | |
KR20150008337A (ko) | 영상의 복호화 방법 및 이를 이용하는 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
FPAY | Annual fee payment |
Payment date: 20181002 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20191001 Year of fee payment: 5 |