KR20140081682A - 영상 부호화/복호화 방법 및 장치 - Google Patents

영상 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
KR20140081682A
KR20140081682A KR1020130155356A KR20130155356A KR20140081682A KR 20140081682 A KR20140081682 A KR 20140081682A KR 1020130155356 A KR1020130155356 A KR 1020130155356A KR 20130155356 A KR20130155356 A KR 20130155356A KR 20140081682 A KR20140081682 A KR 20140081682A
Authority
KR
South Korea
Prior art keywords
block
prediction
parallel
neighboring
size
Prior art date
Application number
KR1020130155356A
Other languages
English (en)
Inventor
이진호
이하현
강정원
김휘용
최진수
김진웅
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Publication of KR20140081682A publication Critical patent/KR20140081682A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/187Methods 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 a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding

Landscapes

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

Abstract

복수의 계층을 지원하는 영상 부/복호화 방법 및 장치가 개시된다. 상기 영상 복호화 방법은 병렬 처리 지시자 정보를 기반으로 상위 계층(enhancement layer)의 예측 대상 블록에 대한 인터 예측을 병렬적으로 수행할지 여부를 판단하고 병렬 예측 블록의 크기를 결정하는 단계, 상기 병렬 예측 블록의 크기에 따라 상기 예측 대상 블록에 대한 공간적 후보를 유도하는 단계 및 상기 공간적 후보를 기반으로 상기 예측 대상 블록에 대한 후보 리스트를 생성하여 병렬적으로 인터 예측을 수행하는 단계를 포함한다.

Description

영상 부호화/복호화 방법 및 장치{METHOD AND APPARATUS FOR IMAGE ENCODING/DECODING}
본 발명은 영상 부호화 및 복호화에 관한 것으로, 보다 상세하게는 스케일러블 비디오 코딩(Scalable Video Coding; SVC)을 기반으로 하는 영상 부호화 및 복호화에 관한 것이다.
최근 멀티미디어(multimedia) 환경이 구축되면서, 다양한 단말과 네트워크가 이용되고 있으며, 이에 따른 사용자 요구도 다변화하고 있다.
예컨대, 단말의 성능과 컴퓨팅 능력(computing capability)가 다양해짐에 따라서 지원하는 성능도 기기별로 다양해지고 있다. 또한 정보가 전송되는 네트워크 역시 유무선 네트워크와 같은 외형적인 구조뿐만 아니라, 전송하는 정보의 형태, 정보량과 속도 등 기능별로도 다양해지고 있다. 사용자는 원하는 기능에 따라서 사용할 단말과 네트워크를 선택하며, 또한 기업이 사용자에게 제공하는 단말과 네트워크의 스펙트럼도 다양해지고 있다.
이와 관련하여, 최근 HD(High Definition) 해상도를 가지는 방송이 국내뿐만 아니라 세계적으로 확대되어 서비스되면서, 많은 사용자들이 고해상도, 고화질의 영상에 익숙해지고 있다. 이에 따라서 많은 영상 서비스 관련 기관들이 차세대 영상 기기에 대한 개발에 많은 노력을 하고 있다.
또한 HDTV와 더불어 HDTV의 4배 이상의 해상도를 가지는 UHD(Ultra High Definition)에 대한 관심이 증대되면서 보다 높은 해상도, 고화질의 영상을 압축하여 처리하는 기술에 대한 요구는 더 높아지고 있다.
영상을 압축하여 처리하기 위해, 시간적으로 이전 및/또는 이후의 픽처로부터 현재 픽처에 포함된 화소값을 예측하는 인터(inter) 예측 기술, 현재 픽처 내의 화소 정보를 이용하여 현재 픽처에 포함된 다른 화소값을 예측하는 인트라(intra) 예측 기술, 출현 빈도가 높은 심볼(symbol)에 짧은 부호를 할당하고 출현 빈도가 낮은 심볼에 긴 부호를 할당하는 엔트로피 인코딩 기술 등이 사용될 수 있다.
상술한 바와 같이, 지원하는 기능이 상이한 각 단말과 네트워크 그리고 다변화된 사용자의 요구를 고려할 때, 지원되는 영상의 품질, 크기, 프레임 등도 이에 따라 다변화될 필요가 있다.
이와 같이, 이종의 통신망과 다양한 기능 및 종류의 단말로 인해, 영상의 화질, 해상도, 크기, 프레임 율 등을 다양하게 지원하는 스케일러빌리티(scalability)는 비디오 포맷의 중요한 기능이 되고 있다.
따라서, 고효율의 비디오 부호화 방법을 기반으로 다양한 환경에서 사용자가 요구하는 서비스를 제공하기 위해 시간, 공간, 화질 등의 측면에서 효율적인 비디오 부호화와 복호화가 가능하도록 스케일러빌리티 기능을 제공하는 것이 필요하다.
본 발명은 부호화/복호화 효율을 향상시킬 수 있는 영상 부호화/복호화 방법 및 장치를 제공한다.
본 발명은 부호화/복호화 효율을 향상시킬 수 있는 스케일러블 비디오 코딩에서 인터 예측을 병렬적으로 수행하는 방법 및 장치를 제공한다.
본 발명은 부호화/복호화 효율을 향상시킬 수 있는 스케일러블 비디오 코딩에서 병렬적으로 공간적 후보를 유도하고 하나의 후보 리스트를 생성하는 방법 및 장치를 제공한다.
본 발명은 부호화/복호화 효율을 향상시킬 수 있는 스케일러블 비디오 코딩에서 하위 계층의 정보를 이용하여 상위 계층을 부/복호화하는 방법 및 장치를 제공한다.
본 발명의 일 실시예에 따르면, 복수의 계층을 지원하는 영상 복호화 방법이 제공된다. 상기 영상 복호화 방법은 병렬 처리 지시자 정보를 기반으로 상위 계층(enhancement layer)의 예측 대상 블록에 대한 인터 예측을 병렬적으로 수행할지 여부를 판단하고 병렬 예측 블록의 크기를 결정하는 단계, 상기 병렬 예측 블록의 크기에 따라 상기 예측 대상 블록에 대한 공간적 후보를 유도하는 단계 및 상기 공간적 후보를 기반으로 상기 예측 대상 블록에 대한 후보 리스트를 생성하여 병렬적으로 인터 예측을 수행하는 단계를 포함하며, 상기 병렬 처리 지시자 정보는 병렬적으로 인터 예측이 수행되는 병렬 예측 블록의 크기를 지시하는 정보이다.
본 발명의 다른 실시예에 따르면, 복수의 계층을 지원하는 영상 복호화 장치가 제공된다. 상기 영상 복호화 장치는 병렬 처리 지시자 정보를 기반으로 상위 계층(enhancement layer)의 예측 대상 블록에 대한 인터 예측을 병렬적으로 수행할지 여부를 판단하고 병렬 예측 블록의 크기를 결정하고, 상기 병렬 예측 블록의 크기에 따라 상기 예측 대상 블록에 대한 공간적 후보를 유도하고, 상기 공간적 후보를 기반으로 상기 예측 대상 블록에 대한 후보 리스트를 생성하여 병렬적으로 인터 예측을 수행하는 예측부를 포함하며, 상기 병렬 처리 지시자 정보는 병렬적으로 인터 예측이 수행되는 병렬 예측 블록의 크기를 지시하는 정보이다.
본 발명의 또 다른 실시예에 따르면, 복수의 계층을 지원하는 영상 부호화 방법이 제공된다. 상기 영상 부호화 방법은 병렬 처리 지시자 정보를 기반으로 상위 계층(enhancement layer)의 예측 대상 블록에 대한 인터 예측을 병렬적으로 수행할지 여부를 판단하고 병렬 예측 블록의 크기를 결정하는 단계, 상기 병렬 예측 블록의 크기에 따라 상기 예측 대상 블록에 대한 공간적 후보를 유도하는 단계 및 상기 공간적 후보를 기반으로 상기 예측 대상 블록에 대한 후보 리스트를 생성하여 병렬적으로 인터 예측을 수행하는 단계를 포함하며, 상기 병렬 처리 지시자 정보는 병렬적으로 인터 예측이 수행되는 병렬 예측 블록의 크기를 지시하는 정보이다.
본 발명의 또 다른 실시예에 따르면, 복수의 계층을 지원하는 영상 부호화 장치가 제공된다. 상기 영상 부호화 장치는 병렬 처리 지시자 정보를 기반으로 상위 계층(enhancement layer)의 예측 대상 블록에 대한 인터 예측을 병렬적으로 수행할지 여부를 판단하고 병렬 예측 블록의 크기를 결정하고, 상기 병렬 예측 블록의 크기에 따라 상기 예측 대상 블록에 대한 공간적 후보를 유도하고, 상기 공간적 후보를 기반으로 상기 예측 대상 블록에 대한 후보 리스트를 생성하여 병렬적으로 인터 예측을 수행하는 예측부를 포함하며, 상기 병렬 처리 지시자 정보는 병렬적으로 인터 예측이 수행되는 병렬 예측 블록의 크기를 지시하는 정보이다.
종래 기술에서 부/복호화 대상 블록에 대한 인터 예측을 병렬적으로 수행할 경우, 주변 블록이 병렬 예측을 지원하는 특정 블록 내에 속하면 가용하지 않은 블록으로 판단하여 사용하지 않는다. 그러나 특정 블록 내에 속한 블록의 정보를 사용하지 않음에 따라 부/복호화 효율이 저하되는 문제가 발생할 수 있다. 이러한 문제점을 해결하기 위해, 본 발명에서는 부/복호화 대상 블록의 주변 블록이 병렬 예측을 지원하는 특정 블록 내에 속하는 경우, 다른 계층의 정보를 이용하거나 다른 가용한 주변 블록의 정보를 이용하여 병렬적으로 예측을 수행할 수 있도록 함으로써, 공간적 혹은 시간적 후보의 병렬 유도를 유지하면서 부/복호화 효율을 향상시킬 수 있다.
도 1은 발명이 적용되는 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 2는 본 발명이 적용되는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 3은 본 발명이 적용될 수 있는 복수 계층을 이용한 스케일러블 비디오 코딩 구조의 일예를 개략적으로 나타내는 개념도이다.
도 4는 부호화 블록(CB 혹은 CU)이 포함할 수 있는 예측 블록(PB 혹은 PU)의 형태를 도시한 도면이다.
도 5는 머지 모드 또는 움직임 벡터 예측을 위해 사용되는 공간적 후보 및 시간적 후보를 유도하는 과정을 설명하기 위한 도면이다.
도 6은 부호화 블록이 4개의 예측 블록들로 분할(파티션)된 경우를 나타내는 도면이다.
도 7은 본 발명의 일 실시예에 따라 부호화 블록 내 예측 블록들이 병렬적으로 공간적 후보를 유도하여 하나의 머징 후보 리스트를 공유하는 방법을 설명하기 위한 도면이다.
도 8은 본 발명의 실시예에 따른 스케일러블 비디오 코딩에서 인터 예측을 병렬적으로 수행하는 방법을 개략적으로 나타내는 순서도이다.
도 9는 본 발명의 일 실시예에 따른 제2 계층의 예측 대상 블록에 대한 공간적 후보를 유도하는 방법을 설명하기 위해 도시된 도면이다.
도 10은 본 발명의 일 실시예에 따른 제2 계층의 공간적 후보를 유도하여 하나의 후보 리스트(single candidate list)를 생성하는 방법을 설명하기 위해 도시된 도면이다.
이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 해당 설명을 생략할 수도 있다.
본 명세서에서 어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있는 것을 의미할 수도 있고, 중간에 다른 구성 요소가 존재하는 것을 의미할 수도 있다. 아울러, 본 명세서에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
제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) 모드로 부호화를 수행하고 비트스트림을 출력할 수 있다. 인트라 모드인 경우 스위치(115)가 인트라로 전환되고, 인터 모드인 경우 스위치(115)가 인터로 전환될 수 있다. 인트라 예측은 화면 내 예측, 인터 예측은 화면 간 예측을 의미한다. 영상 부호화 장치(100)는 입력 영상의 입력 블록에 대한 예측 블록을 생성한 후, 입력 블록과 예측 블록의 차분(residual)을 부호화할 수 있다. 이때, 입력 영상은 원 영상(original picture)를 의미할 수 있다.
인트라 모드인 경우, 인트라 예측부(120)는 현재 블록 주변의 이미 부호화/복호화된 블록의 픽셀값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다.
인터 모드인 경우, 움직임 예측부(111)는, 움직임 예측 과정에서 참조 픽처 버퍼(190)에 저장되어 있는 참조 영상에서 입력 블록과 가장 매치가 잘 되는 영역을 찾아 움직임 벡터를 구할 수 있다. 움직임 보상부(112)는 움직임 벡터를 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다. 여기서, 움직임 벡터는 인터 예측에 사용되는 2차원 벡터이며, 현재 부호화/복호화 대상 영상과 참조 영상 사이의 오프셋을 나타낼 수 있다.
감산기(125)는 입력 블록과 생성된 예측 블록의 차분에 의해 잔차 블록(residual block)을 생성할 수 있다.
변환부(130)는 잔차 블록에 대해 변환(transform)을 수행하여 변환 계수(transform coefficient)를 출력할 수 있다. 여기서, 변환 계수는 잔차 블록 및/또는 잔차 신호에 대한 변환을 수행함으로써 생성된 계수 값을 의미할 수 있다. 이하, 본 명세서에서는 변환 계수에 양자화가 적용되어 생성된, 양자화된 변환 계수 레벨(transform coefficient level)도 변환 계수로 불릴 수 있다.
양자화부(140)는 입력된 변환 계수를 양자화 파라미터(quantization parameter, 또는 양자화 매개변수)에 따라 양자화하여 양자화된 계수(quantized coefficient)를 출력할 수 있다. 양자화된 계수는 양자화된 변환 계수 레벨(quantized transform coefficient level)로 불릴 수도 있다. 이때, 양자화부(140)에서는 양자화 행렬을 사용하여 입력된 변환 계수를 양자화할 수 있다.
엔트로피 부호화부(150)는, 양자화부(140)에서 산출된 값들 또는 부호화 과정에서 산출된 부호화 파라미터 값 등을 기초로 엔트로피 부호화를 수행하여 비트스트림(bitstream)을 출력할 수 있다. 엔트로피 부호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼(symbol)에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 부호화 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 부호화를 통해서 영상 부호화의 압축 성능이 높아질 수 있다. 엔트로피 부호화부(150)는 엔트로피 부호화를 위해 지수-골롬(Exponential-Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 부호화 방법을 사용할 수 있다.
도 1의 실시예에 따른 영상 부호화 장치(100)는 인터 예측 부호화, 즉 화면 간 예측 부호화를 수행하므로, 현재 부호화된 영상은 참조 영상으로 사용되기 위해 복호화되어 저장될 필요가 있다. 따라서 양자화된 계수는 역양자화부(160)에서 역양자화되고 역변환부(170)에서 역변환된다. 역양자화, 역변환된 계수는 가산기(175)를 통해 예측 블록과 더해지고 복원 블록(Reconstructed Block)이 생성된다.
복원 블록은 필터부(180)를 거치고, 필터부(180)는 디블록킹 필터(deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나 이상을 복원 블록 또는 복원 픽처에 적용할 수 있다. 필터부(180)는 적응적 인루프(in-loop) 필터로 불릴 수도 있다. 디블록킹 필터는 블록 간의 경계에 생긴 블록 왜곡을 제거할 수 있다. SAO는 코딩 에러를 보상하기 위해 픽셀값에 적정 오프셋(offset) 값을 더해줄 수 있다. ALF는 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. 필터부(180)를 거친 복원 블록은 참조 픽처 버퍼(190)에 저장될 수 있다.
도 2는 본 발명이 적용되는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 1에서 상술한 바와 같이, 스케일러블 비디오 부호화/복호화 방법 또는 장치는, 스케일러빌리티를 제공하지 않는 일반적인 영상 부호화/복호화 방법 또는 장치의 확장에 의해 구현될 수 있으며, 도 2의 블록도는 스케일러블 비디오 복호화 장치의 기초가 될 수 있는 영상 복호화 장치의 일 실시예를 나타낸다.
도 2를 참조하면, 영상 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 움직임 보상부(250), 가산기(255), 필터부(260) 및 참조 픽처 버퍼(270)를 포함한다.
영상 복호화 장치(200)는 부호화기에서 출력된 비트스트림을 입력 받아 인트라 모드 또는 인터 모드로 복호화를 수행하고 재구성된 영상, 즉 복원 영상을 출력할 수 있다. 인트라 모드인 경우 스위치가 인트라로 전환되고, 인터 모드인 경우 스위치가 인터로 전환될 수 있다.
영상 복호화 장치(200)는 입력 받은 비트스트림으로부터 복원된 잔차 블록(reconstructed residual block)을 얻고 예측 블록을 생성한 후 복원된 잔차 블록과 예측 블록을 더하여 재구성된 블록, 즉 복원 블록을 생성할 수 있다.
엔트로피 복호화부(210)는, 입력된 비트스트림을 확률 분포에 따라 엔트로피 복호화하여, 양자화된 계수(quantized coefficient) 형태의 심볼을 포함한 심볼들을 생성할 수 있다.
엔트로피 복호화 방법이 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 각 심볼들에 대한 비트열의 크기가 감소될 수 있다.
양자화된 계수는 역양자화부(220)에서 역양자화되고 역변환부(230)에서 역변환되며, 양자화된 계수가 역양자화/역변환 된 결과, 복원된 잔차 블록이 생성될 수 있다. 이때, 역양자화부(220)에서는 양자화된 계수에 양자화 행렬을 적용할 수 있다.
인트라 모드인 경우, 인트라 예측부(240)는 현재 블록 주변의 이미 복호화된 블록의 픽셀값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다. 인터 모드인 경우, 움직임 보상부(250)는 움직임 벡터 및 참조 픽처 버퍼(270)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
잔차 블록과 예측 블록은 가산기(255)를 통해 더해지고, 더해진 블록은 필터부(260)를 거칠 수 있다. 필터부(260)는 디블록킹 필터, SAO, ALF 중 적어도 하나 이상을 복원 블록 또는 복원 픽쳐에 적용할 수 있다. 필터부(260)는 재구성된 영상, 즉 복원 영상을 출력할 수 있다. 복원 영상은 참조 픽처 버퍼(270)에 저장되어 인터 예측에 사용될 수 있다.
도 3은 본 발명이 적용될 수 있는 복수 계층을 이용한 스케일러블 비디오 코딩 구조의 일예를 개략적으로 나타내는 개념도이다. 도 3에서 GOP(Group of Picture)는 픽처군 즉, 픽처의 그룹을 나타낸다.
영상 데이터를 전송하기 위해서는 전송 매체가 필요하며, 그 성능은 다양한 네트워크 환경에 따라 전송 매체별로 차이가 있다. 이러한 다양한 전송 매체 또는 네트워크 환경에의 적용을 위해 스케일러블 비디오 코딩 방법이 제공될 수 있다.
스케일러빌러티를 지원하는 비디오 코딩 방법(이하, ‘스케일러블 코딩’혹은 ‘스케일러블 비디오 코딩’이라 함)은 계층(layer) 간의 텍스쳐 정보, 움직임 정보, 잔여 신호 등을 활용하여 계층 간 중복성을 제거하여 인코딩 및 디코딩 성능을 높이는 코딩 방법이다. 스케일러블 비디오 코딩 방법은, 전송 비트율, 전송 에러율, 시스템 자원 등의 주변 조건에 따라, 공간적(spatial), 시간적(temporal), 화질적(혹은 품질적, quality) 관점에서 다양한 스케일러빌리티를 제공할 수 있다.
스케일러블 비디오 코딩은, 다양한 네트워크 상황에 적용 가능한 비트스트림을 제공할 수 있도록, 복수 계층(multiple layers) 구조를 사용하여 수행될 수 있다. 예를 들어 스케일러블 비디오 코딩 구조는, 일반적인 영상 디코딩 방법을 이용하여 영상 데이터를 압축하여 처리하는 기본 계층을 포함할 수 있고, 기본 계층의 디코딩 정보 및 일반적인 영상 디코딩 방법을 함께 사용하여 영상 데이터를 압축 처리하는 향상 계층을 포함할 수 있다.
여기서, 계층(layer)은 공간(spatial, 예를 들어, 영상 크기), 시간(temporal, 예를 들어, 디코딩 순서, 영상 출력 순서, 프레임 레이트), 화질, 복잡도 등을 기준으로 구분되는 영상 및 비트스트림(bitstream)의 집합을 의미한다.
기본 계층(Base layer)은 베이스 레이어라고 지칭할 수도 있고, 하위 계층(lower layer)이라 지칭할 수도 있다. 향상 계층(Enhancement layer)은 인핸스먼트 레이어 혹은 상위 계층(higher layer)이라 지칭할 수도 있다. 이때, 하위 계층은 특정 계층 보다 낮은 스케일러빌러티를 지원하는 계층을 의미할 수 있으며, 상위 계층은 특정 계층 보다 높은 스케일러빌러티를 지원하는 계층을 의미할 수 있다. 특정 계층이 부호화 혹은 복호화 시에 참조하는 계층은 참조 계층이라 지칭할 수 있다.
도 3을 참조하면, 예를 들어 기본 계층은 SD(standard definition), 15Hz의 프레임율, 1Mbps 비트율로 정의될 수 있고, 제1 향상 계층은 HD(high definition), 30Hz의 프레임율, 3.9Mbps 비트율로 정의될 수 있으며, 제2 향상 계층은 4K-UHD (ultra high definition), 60Hz의 프레임율, 27.2Mbps 비트율로 정의될 수 있다.
상기 포맷(format), 프레임율, 비트율 등은 하나의 실시예로서, 필요에 따라 달리 정해질 수 있다. 또한 사용되는 계층의 수도 본 실시예에 한정되지 않고 상황에 따라 달리 정해질 수 있다. 예를 들어, 전송 대역폭이 4Mbps라면 상기 제1 향상계층 HD의 프레임 레이트를 줄여서 15Hz 이하로 전송할 수 있다.
스케일러블 비디오 코딩 방법은 상기 도 3의 실시예에서 상술한 방법에 의해 시간적, 공간적, 화질적 스케일러빌리티를 제공할 수 있다.
본 명세서에서 스케일러블 비디오 코딩은 인코딩 관점에서는 스케일러블 비디오 인코딩, 디코딩 관점에서는 스케일러블 비디오 디코딩과 동일한 의미를 가진다.
한편, 상술한 바와 같이 부/복호화기에서 부/복호화 대상 블록을 부/복호화할 경우, 부/복호화 대상 블록에 대해 화면 내 예측(이하, 인트라 예측) 또는 화면 간 예측(이하, 인터 예측)을 수행할 수 있다.
이때, 부/복호화 대상 블록은 NxN 크기의 정사각형 또는 NxM 크기의 직사각형 블록일 수 있으며, N 또는 M은 2, 4, 8, 16, 32, 64 중에 하나의 값을 가질 수 있다. 또한, 부/복호화 대상 블록은 부/복호화가 수행되는 처리 단위에 따라서 부호화 블록(CB: Coding Block, 혹은 CU: Coding Unit), 예측 블록(PB: Prediction Block, 혹은 PU: Prediction Unit), 변환 블록(TB: Transform Block, 혹은 TU: Transform Unit) 중 적어도 하나일 수 있다.
부/복호화기에서는 효율적으로 부/복호화를 수행하기 위해서, 영상을 부호화 블록(CB 혹은 CU) 단위로 분할하여 부/복호화를 수행한다. 이때, 부호화 블록은 예측을 위해 예측 블록(PB 혹은 PU)으로 분할될 수 있고, 변환을 위해 변환 블록(TB 혹은 TU)으로 분할될 수 있다.
도 4는 부호화 블록(CB 혹은 CU)이 포함할 수 있는 예측 블록(PB 혹은 PU)의 형태를 도시한 도면이다.
부호화 블록은 하나 이상의 예측 블록으로 분할되어 예측이 수행될 수 있다. 이때, 부호화 블록이 예측 블록으로 분할되는 행위는 파티션(partition)이라고 지칭할 수 있다. 부호화 블록은 예측 방법(예측 모드)에 따라 스킵(skip) 모드, 인터(inter) 모드, 인트라(intra) 모드 중 어느 하나로 부호화되며, 각 모드에 따라 부호화 블록은 다양한 형태의 예측 블록으로 파티션되어 예측 블록 단위로 예측이 수행될 수 있다.
도 4를 참조하면, 부호화 블록의 예측 모드가 스킵 모드인 경우, 부호화 블록은 파티션 없이, 부호화 블록과 동일한 크기를 갖는 2Nx2N 모드(410)의 예측 블록을 포함할 수 있다.
부호화 블록의 예측 모드가 인터 모드인 경우, 부호화 블록은 2Nx2N 모드(410), 2NxN 모드(415), Nx2N 모드(420), NxN 모드(425), 2NxnU 모드(430), 2NxnD 모드(435), nLx2N 모드(440), nRx2N 모드(445)의 형태로 파티션된 예측 블록(들)을 포함할 수 있다.
부호화 블록의 예측 모드가 인트라 모드인 경우, 부호화 블록은 2Nx2N 모드(410), NxN 모드(425)의 형태로 파티션된 예측 블록(들)을 포함할 수 있다.
인터 예측은 공간적(spatial) 또는 시간적(temporal) 후보의 움직임 정보를 이용하여 예측을 수행하는 머지(merge) 모드와, 공간적 또는 시간적 후보의 움직임 벡터를 예측 값으로 이용하여 예측을 수행하는 움직임 벡터 예측(AMVP: Advanced Motion Vector Prediction)이 있다.
이때, 머지 모드는 레지듀얼(residual) 신호의 부/복호화 여부에 따라 머지 스킵(skip) 모드 및 머지 모드로 구분할 수 있다. 머지 스킵 모드는 레지듀얼 블록을 생성하지 않고 공간적 또는 시간적 후보의 움직임 정보를 기초로 예측된 블록을 복원 블록으로 사용한다. 머지 모드는 레지듀얼 신호를 부/복호화하여 생성된 레지듀얼 블록과, 공간적 또는 시간적 후보의 움직임 정보를 기초로 예측된 블록을 이용하여 복원 블록을 도출한다.
도 5는 머지 모드 또는 움직임 벡터 예측을 위해 사용되는 공간적 후보 및 시간적 후보를 유도하는 과정을 설명하기 위한 도면이다.
머지 모드 또는 움직임 벡터 예측을 위해 사용되는 공간적 후보는 부/복호화 대상 블록의 주변에 위치한 이미 복원된 주변 블록으로부터 유도되는 움직임 정보를 말한다. 다시 말해, 부/복호화 대상 블록과 동일한 픽처에 존재하면서 부/복호화 대상 블록에 인접하여 위치한 주변 블록들로부터 유도되는 움직임 예측 관련 정보를 공간적 후보라는 용어로 사용할 수 있다. 머지 모드에 대한 공간적 후보는 공간적 머징 후보로 지칭할 수 있고, 움직임 벡터 예측에 대한 공간적 후보는 공간적 움직임 벡터 예측 후보로 지칭할 수 있다.
도 5를 참조하면, 부/복호화 대상 블록(500)에 대한 공간적 후보는, 부/복호화 대상 블록(500)의 좌측에 위치한 제1 좌측 주변 블록(A0, 510), 제2 좌측 주변 블록(A1, 520), 부/복호화 대상 블록(500)의 상단에 위치한 제1 상단 주변 블록(B0, 530), 제2 상단 주변 블록(B1, 540), 제3 상단 주변 블록(B2, 550)이 갖고 있는 움직임 정보로부터 유도될 수 있다.
이때, 제1 좌측 주변 블록(A0, 510), 제2 좌측 주변 블록(A1, 520), 제1 상단 주변 블록(B0, 530), 제2 상단 주변 블록(B1, 540), 제3 상단 주변 블록(B2, 550)은 부/복호화 대상 블록(500)의 경계에 위치한 픽셀에서 x 방향 또는/및 y 방향으로 +1 픽셀 혹은 -1 픽셀 이동하였을 때 위치하는 픽셀을 포함하는 블록일 수 있다.
머지 모드 또는 움직임 벡터 예측을 위해 사용되는 시간적 후보는 콜(col: collocated) 픽처 내 콜 블록으로부터 유도되는 움직임 정보를 말한다.
콜 픽처는 부/복호화 대상 블록의 참조 픽처 리스트(reference picture list)에 포함된 참조 픽처들 중에서 하나의 픽처로서, 콜 픽처를 지시하는 참조 인덱스(reference index)에 의해 특정될 수 있다. 콜 블록은 콜 픽처 내에서 부/복호화 대상 블록과 공간적으로 동일한 위치에 존재하는 블록을 기준으로 하여 유도된 위치에 있는 픽셀을 포함하는 블록일 수 있다.
머지 모드에 대한 시간적 후보는 시간적 머징 후보로 지칭할 수 있고, 움직임 벡터 예측에 대한 시간적 후보는 시간적 움직임 벡터 예측 후보로 지칭할 수 있다.
도 5를 참조하면, 부/복호화 대상 블록(500)에 대한 시간적 후보는, 부/복호화 대상 블록(500)의 콜 픽처에 존재하면서 부/복호화 대상 블록(500)의 하단 우측(bottom right)에 대응되는(collocated) 제1 콜 블록(T1, 560), 부/복호화 대상 블록(500)의 중앙(center)에 대응되는(collocated) 제2 콜 블록(T2, 570)이 갖고 있는 움직임 정보로부터 유도될 수 있다.
예컨대, 부/복호화 대상 블록(500)의 좌측 최상단 픽셀이 (xPb, yPb) 위치이고, 부/복호화 대상 블록(500)의 가로가 nPbW이고, 부/복호화 대상 블록(500)의 세로가 nPbH라고 할 때, 제1 콜 블록(T1, 560)은 콜 픽처에서 (xPb+nPbW, yPb+nPbH) 위치의 픽셀을 포함하는 블록이며, 제2 콜 블록(T2, 570)은 (xPb+(nPbW>>1), yPb+(nPbH>>1)) 위치의 픽셀을 포함하는 블록일 수 있다.
상기 움직임 정보는 참조 픽처 리스트(reference picture list, RefPicList0/1), 움직임 벡터(motion vector, mvL0/L1), 참조 픽처 인덱스(refIdxL0/L1), 예측 리스트 활용(prediction list utilization) 정보(predFlagL0/L1)를 포함할 수 있다. 움직임 정보를 통하여 알 수 있는 POC(Picture Order Count)도 공간적 또는 시간적 후보를 유도하는데 이용될 수 있다.
움직임 벡터는 방향성 정보로서 예측 블록이 인터 예측 시에 참조하는 참조 블록을 참조 픽처로부터 유도하기 위해 사용되는 정보이다. 예측 블록이 복수 개의 방향성 정보를 이용하여 인터 예측할 경우, mvL0와 mvL1를 사용할 수 있다.
참조 픽처 인덱스(혹은 참조 인덱스)는 예측 블록이 인터 예측 시에 참조하는 참조 픽처 리스트 내 참조 픽처를 지시하기 위한 인덱스 정보이다. 예측 블록이 복수 개의 참조 픽처를 이용하여 인터 예측할 경우, refIdxL0 및 refIdxL1를 사용할 수 있다.
예측 리스트 활용 정보는 참조 픽처가 어떠한 참조 픽처 리스트에서 유도된 픽처인지를 나타낼 수 있다. 예컨대, 참조 픽처 리스트 L0(RefPicList0)로부터 참조 픽처가 유도된 경우, predFlagL0의 값은 1일 수 있으며, 참조 픽처 리스트 L1(RefPicList1)로부터 참조 픽처가 유도된 경우, predFlagL1의 값은 1일 수 있다.
상술한 바와 같이, 부/복호화 대상 블록의 주변 블록으로부터 공간적 후보를 유도할 때, 주변 블록의 가용성(availability) 여부를 판단하여 가용한 주변 블록의 움직임 정보를 공간적 후보로 사용한다. 또한, 부/복호화 대상 블록의 콜 블록으로부터 시간적 후보를 유도할 때, 콜 블록의 가용성 여부를 판단하여 가용한 콜 블록의 움직임 정보를 시간적 후보로 사용한다.
만일 주변 블록 혹은 콜 블록이 인터 모드로 부호화되었고 부/복호화 대상 블록과 동일한 슬라이스에 속하는 경우, 주변 블록 혹은 콜 블록은 가용하다고 판단할 수 있다. 그렇지 않고, 주변 블록 혹은 콜 블록이 인트라 모드로 부호화되었거나 부/복호화 대상 블록이 속한 슬라이스/픽처/타일과 다른 슬라이스/픽처/타일에 속하는 경우, 주변 블록 혹은 콜 블록은 가용하지 않다고 판단할 수 있다.
상기와 같이 가용한 주변 블록 혹은 가용한 콜 블록으로부터 유도된 공간적 후보 혹은 시간적 후보를 이용하여 부/복호화 대상 블록의 인터 예측을 위한 머징 후보 리스트 혹은 움직임 벡터 예측 후보 리스트를 생성할 수 있다.
이때, 머징 후보 리스트는 머지 모드로 인터 예측 시 공간적 혹은 시간적 머징 후보로부터 유도되며, 움직임 벡터 예측 후보 리스트는 움직임 벡터 예측 모드로 인터 예측 시 공간적 혹은 시간적 움직임 벡터 예측 후보로부터 유도될 수 있다. 이하 설명의 편의를 위해 머징 후보 리스트 또는 움직임 벡터 예측 후보 리스트를 후보 리스트라는 용어를 사용하여 표현할 수도 있다.
부호화기에서는 머징 후보 리스트 혹은 움직임 벡터 예측 후보 리스트에 포함된 공간적 후보 및/또는 시간적 후보 중 최적의 후보를 선택하고, 선택된 최적의 후보에 대한 정보(최적의 후보를 지시하는 인덱스)를 전송(시그널링)할 수 있다. 복호화기에서는 부호화기로부터 전송된 최적의 후보에 대한 정보를 기반으로 머징 후보 리스트 혹은 움직임 벡터 예측 후보 리스트로부터 부/복호화 대상 블록의 예측 시 사용되는 움직임 정보를 유도하여 예측을 수행할 수 있다.
머징 후보 리스트 혹은 움직임 벡터 예측 후보 리스트를 생성할 때, 주변 블록 또는 콜 블록을 일정한 순서에 따라 가용성 여부를 판단하여 공간적 또는 시간적 후보로 유도할 수 있으며, 유도된 후보를 순서대로 머징 후보 리스트 혹은 움직임 벡터 예측 후보 리스트에 추가할 수 있다. 이때, 머징 후보 리스트 혹은 움직임 벡터 예측 후보 리스트에 포함되는 공간적 또는 시간적 후보의 개수가 정해진 최대 후보 개수보다 작은 경우, 유도된 후보들의 조합 또는 (0, 0) 값을 가지는 제로 움직임 벡터 등으로 정해진 최대 후보 개수만큼 머징 후보 리스트 혹은 움직임 벡터 예측 후보 리스트를 채울 수 있다.
예를 들어, 머지 모드(혹은 머지 스킵 모드)로 예측을 수행할 경우, 제2 좌측 주변 블록(A1, 520), 제2 상단 주변 블록(B1, 540), 제1 상단 주변 블록(B0, 530), 제1 좌측 주변 블록(A0, 510), 제3 상단 주변 블록(B2, 550), 제1 콜 블록(T1, 560), 제2 콜 블록(T2, 570)의 순서대로 가용성 여부를 판단하여 머징 후보를 유도할 수 있다. 이때 유도된 머징 후보의 순서대로 최대 머징 후보 개수(예를 들어 5개)만큼 머징 후보 리스트에 추가될 수 있다. 만일 최대 머징 후보 개수를 채우지 못한 경우, (0, 0) 값을 가지는 제로 움직임 벡터 머징 후보를 추가하여 머징 후보 리스트를 구성할 수 있다.
한편, 하나의 부호화 블록은 복수 개의 예측 블록으로 분할되어 예측이 수행될 수 있다. 이때, 부호화 블록이 머지 모드로 부호화된 경우, 부호화 블록 내 분할된 예측 블록들은 각각 공간적 또는 시간적 머징 후보를 유도하여 머징 후보 리스트를 구성한다. 이러한 경우, 하나의 부호화 블록 내 예측 블록들 간에 의존성(dependency)이 발생할 수 있다. 이에 대해서는 도 6을 참조하여 설명한다.
도 6은 부호화 블록이 4개의 예측 블록들로 분할(파티션)된 경우를 나타내는 도면이다.
도 6을 참조하면, 부호화 블록(600)이 NxN 모드의 형태로 파티션된 경우, 4개의 예측 블록들(610, 620, 630, 640)로 구성될 수 있다. 이때, 부호화 블록(600) 내 예측 블록들(610, 620, 630, 640)은 인덱스 정보(예를 들어, 파티션 인덱스)를 이용하여 특정될 수 있다.
예를 들어, 제1 예측 블록(610)은 파티션 인덱스를 0으로 설정할 수 있고, 제2 예측 블록(620)은 파티션 인덱스를 1로 설정할 수 있고, 제3 예측 블록(630)은 파티션 인덱스를 2로 설정할 수 있고, 제4 예측 블록(640)은 파티션 인덱스를 3으로 설정할 수 있다.
부호화 블록(600)이 머지 모드로 부호화된 경우, 부호화 블록(600) 내 예측 블록들(610, 620, 630, 640)은 각 예측 블록의 위치를 기준으로 주변 블록 및 콜 블록을 결정하여 공간적 머징 후보 및 시간적 머징 후보를 유도한다.
예를 들어, 제4 예측 블록(640)에 대한 공간적 머징 후보를 유도할 경우, 제4 예측 블록(640)을 기준으로 주변 블록들을 선정할 수 있다. 도 6에 도시된 바와 같이, 제4 예측 블록(640)을 기준으로 선정된 주변 블록은 제4 예측 블록(640)의 좌측 하단에 위치한 제1 좌측 주변 블록(A0), 제4 예측 블록(640)의 좌측에 위치한 제2 좌측 주변 블록(A1), 제4 예측 블록(640)의 상단 우측에 위치한 제1 상단 주변 블록(B0), 제4 예측 블록(640)의 상단에 위치한 제2 상단 주변 블록(B1), 제4 예측 블록(640)의 상단 좌측에 위치한 제3 상단 주변 블록(B2)을 포함할 수 있다.
이때, 제1 좌측 주변 블록(A0)과 제1 상단 주변 블록(B0)은 부호화 블록(600)의 외부에 존재하는 블록으로, 이미 부호화 혹은 복호화가 완료된 블록일 수 있다. 하지만, 제2 좌측 주변 블록(A1), 제2 상단 주변 블록(B1), 제3 상단 주변 블록(B2)은 다른 예측 블록(610, 620, 630)의 내부에 존재하는 블록으로, 각 예측 블록(610, 620, 630)이 복원되어야 이용할 수 있다. 다시 말해, 제2 좌측 주변 블록(A1)은 제3 예측 블록(630)이 예측되어 복원된 후에 제2 좌측 주변 블록(A1)의 움직임 정보를 알 수 있다. 제2 상단 주변 블록(B1)은 제2 예측 블록(620)이 예측되어 복원된 후에 제2 상단 주변 블록(B1)의 움직임 정보를 알 수 있다. 제3 상단 주변 블록(B2)은 제1 예측 블록(610)이 예측되어 복원된 후에 제3 상단 주변 블록(B2)의 움직임 정보를 알 수 있다. 즉, 제4 예측 블록(640)의 공간적 후보를 유도하기 위해서는 부호화 블록(600) 내 다른 예측 블록(610, 620, 630)들이 복원되어야 하기 때문에 부호화 블록(600) 내 예측 블록들 간에는 공간적 의존성이 존재하게 된다.
상술한 바와 같이, 부호화 블록이 복수 개의 예측 블록으로 분할된 경우, 하나의 예측 블록에 대한 공간적 후보는 다른 예측 블록이 복원되어야 유도될 수 있는 공간적 의존성이 존재할 수 있으므로, 각각의 예측 블록은 순차적으로 부호화 혹은 복호화가 진행되게 된다. 따라서, 복수 개의 예측 블록에 대해 병렬적으로 공간적 후보를 유도하고 머지 후보 리스트를 구성할 수 없으며, 예측 과정의 복잡도가 높아지고 예측 효율이 저하되는 문제점이 발생할 수 있다.
상기와 같은 문제점을 해결하고 부/복호화 효율을 향상시키기 위해, 본 발명에서는 공간적 혹은 시간적 후보를 병렬적으로 유도하여 예측을 수행할 수 있는 방법을 제공한다.
예를 들어, 본 발명에서는 공간적 의존성으로 인해 발생하는 복잡도를 해결하기 위해서, 의존성이 존재하는 블록을 제외하고 공간적 후보를 유도하여 각 예측 블록에 대한 머징 후보 리스트(혹은 움직임 벡터 예측 후보 리스트)를 병렬적으로 생성할 수 있다. 도 6에 도시된 것처럼, 제4 예측 블록(640)에 대한 공간적 후보를 유도할 때, 의존성이 존재하는 주변 블록(A1, B1, B2)은 가용하지 않는 것으로 판단하고 공간적 후보 유도 시에 사용하지 않을 수 있다.
또한, 본 발명에서는 부호화 블록이 머지 모드로 부호화된 경우, 상기 부호화 블록에 대해 병렬적으로 머지를 수행할 것인지 여부를 결정하여 예측을 수행할 수 있다. 예컨대, 병렬적 머지의 수행 여부를 나타내는 지시자를 이용하여 병렬적으로 머지 예측을 수행할지를 결정할 수 있다. 병렬적 머지의 수행 여부를 나타내는 지시자는 SPS(Sequence Parameter Set), PPS(Picture Parameter Set), 슬라이스 헤더(Slice Segment Header) 등을 통해 설정되어 시그널링될 수 있다. 상기 지시자는 log2_parallel_merge_level_minus2와 같은 정보를 이용할 수 있다.
예를 들어, 병렬적 머지의 수행 여부를 나타내는 지시자로 log2_parallel_merge_level_minus2를 이용할 경우, log2_parallel_merge_level_minus2의 값을 통해 병렬적 머지를 수행하는 블록의 크기를 지시할 수 있다. 병렬적 머지를 수행하는 블록의 크기는 머지 모드로 병렬적으로 예측(혹은 움직임 보상)이 수행되는 영역을 의미하므로, MER(Motion Estimation Region)이라는 용어로 지칭될 수 있다.
표 1은 log2_parallel_merge_level_minus2 값에 따른 병렬적으로 예측이 수행되는 블록(이하, ‘병렬 예측 블록’이라 함)의 크기를 나타낸다.
log2_parallel_merge_level_minus2 병렬 예측 블록 크기
0 4x4
1 8x8
2 16x16
3 32x32
4 64x64
표 1을 참조하면, log2_parallel_merge_level_minus2이 2인 경우, 병렬 예측 블록(MER)의 크기는 16x16으로 결정될 수 있다. 이때, 16x16 크기의 블록(병렬 예측 블록) 내에 존재하는 부호화 블록 혹은 예측 블록에 대한 공간적 후보를 유도할 경우, 병렬 예측 블록 내부에 존재하는 움직임 정보는 가용하지 않은 것으로 판단하여 공간적 혹은 시간적 후보로 유도하지 않을 수 있다.
또한, 본 발명에서는 병렬 예측 블록 내 특정 크기를 가지는 부호화 블록에 대해서 하나의 머징 후보 리스트(single merging candidate list)를 유도할 수 있다. 다시 말해, 상기 특정 크기의 부호화 블록 내부에 존재하는 모든 예측 블록들은 하나의 머징 후보 리스트를 유도하여 공유할 수 있다. 따라서, 병렬 예측 블록 내 특정 크기를 가지는 부호화 블록이 복수 개의 예측 블록으로 분할된 경우라도 상기 특정 크기의 부호화 블록 내 예측 블록들은 2Nx2N 모드로 분할된 예측 블록과 동일한 머징 후보 리스트를 가지게 된다.
본 발명의 실시예에 따르면 병렬적 머지를 수행하는 블록의 크기(병렬 예측 블록 크기)와 부호화 블록의 크기 정보를 기반으로 특정 블록이 하나의 머징 후보 리스트를 공유할지 여부를 결정하여 병렬 예측 블록 내의 부호화 블록 혹은 예측 블록에 대한 예측이 병렬적으로 수행될 수 있도록 한다. 이때, 특정 블록, 즉 특정 크기를 가지는 부호화 블록이 하나의 머징 후보 리스트를 공유할지 여부는 플래그 정보를 이용할 수 있으며, 예컨대 singleMCLFlag(Single Merging Candidate List Flag)를 이용할 수 있다. 만일 singleMCLFlag가 0인 경우 부호화 블록 내 예측 블록들은 하나의 머징 후보 리스트를 공유하지 않는다는 것을 나타낼 수 있다. 그렇지 않고, singleMCLFlag가 1인 경우 부호화 블록 내 예측 블록들은 하나의 머징 후보 리스트를 공유한다는 것을 나타낼 수 있으며, 이때 부호화 블록 내 예측 블록들에 대한 공간적 또는 시간적 머징 후보는 부호화 블록을 기준으로 유도될 수 있다.
예를 들어, 병렬 예측 블록이 8x8 크기 이상이고 부호화 블록이 8x8 크기인 경우, 8x8 크기의 부호화 블록 내 예측 블록들이 하나의 머징 후보 리스트를 공유하도록 할 수 있다. 이러한 경우 log2_parallel_merge_level_minus2가 1 이상을 지시하고 8x8 크기의 부호화 블록에 대해 singleMCLFlag를 1로 설정할 수 있다.
도 7은 본 발명의 일 실시예에 따라 부호화 블록 내 예측 블록들이 병렬적으로 공간적 후보를 유도하여 하나의 머징 후보 리스트를 공유하는 방법을 설명하기 위한 도면이다.
도 7에 도시된 바와 같이, 부호화 블록(700)이 8x8 크기이고 Nx2N 모드의 형태로 파티션된 경우, 부호화 블록(700)은 두 개의 4x8 크기 예측 블록(710, 720)으로 구성될 수 있다.
이때, 상술한 바와 같이 병렬 예측 블록이 8x8 크기 이상이고 부호화 블록이 8x8 크기인 경우에 대해, 상기 8x8 크기 부호화 블록이 하나의 머징 후보 리스트를 공유하도록 하는 singleMCLFlag가 1로 설정된 경우라고 하자.
이러한 경우, 8x8 크기의 부호화 블록(700) 내 두 개의 4x8 크기 예측 블록(710, 720)은 각 예측 블록의 위치를 기준으로 주변 블록을 결정하여 공간적 머징 후보를 유도하는 것이 아니라, 두 개의 예측 블록(710, 720)을 포함하는 8x8 크기의 부호화 블록(700)을 기준으로 주변 블록을 결정하여 공간적 머징 후보를 유도할 수 있다.
도 7에 도시된 바와 같이, 두 개의 예측 블록(710, 720)은 부호화 블록(700)을 기준으로 A0, A1, B0, B1, B2 블록을 주변 블록으로 사용할 수 있다. 그리고 주변 블록 A0, A1, B0, B1, B2의 가용성 여부를 판단하여 공간적 머징 후보를 유도할 수 있다. 따라서, 두 개의 예측 블록(710, 720)은 A0, A1, B0, B1, B2 주변 블록으로부터 유도된 공간적 머징 후보를 이용하여 하나의 머징 후보 리스트를 공유하게 된다.
또한, 두 개의 예측 블록(710, 720)은 병렬 처리를 위해 부호화 블록(700)을 기준으로 콜 블록을 결정하여 시간적 머징 후보를 유도함으로써 하나의 머징 후보 리스트를 생성할 수 있다.
이하, 본 발명에서는 복수의 계층(layer) 또는 시점(view)을 포함하는 스케일러블 비디오 코딩 구조에서 인터 예측 시 병렬 처리를 수행할 수 있는 방법에 대해 설명한다.
복수의 계층 또는 시점은 제1, 제2, 제3, 제n 계층 또는 시점으로 표현할 수 있다. 이하 설명에서는 제1 계층과 제2 계층이 존재하는 영상을 예로 들어 기술하며, 그 이상의 계층 또는 시점에도 동일한 방법으로 적용할 수 있다. 또한, 제1 계층은 하위(base) 계층, 제2 계층은 상위(enhancement) 계층으로 지칭할 수도 있다.
도 8은 본 발명의 실시예에 따른 스케일러블 비디오 코딩에서 인터 예측을 병렬적으로 수행하는 방법을 개략적으로 나타내는 순서도이다. 도 8의 방법은 상술한 도 1의 부호화 장치 혹은 도 2의 복호화 장치에서 수행될 수 있다. 본 실시예에서는 설명의 편의 상 복호화 장치에서 수행되는 것으로 기재하나, 부호화 장치에서도 수행될 수 있다.
도 8을 참조하면, 스케일러블 비디오 코딩 구조에서 제2 계층(상위 계층)의 인터 예측을 수행할 때, 복호화 장치는 병렬 처리 지시자를 기반으로 인터 예측을 병렬적으로 수행할지 여부를 판단하고 병렬 예측 블록의 크기를 결정한다(S800).
병렬 처리 지시자는 상술한 바와 같이 병렬적으로 인터 예측(머지 모드 혹은 움직임 벡터 예측)을 수행할지 여부를 나타내는 지시자를 말하며, 예컨대 log2_parallel_merge_level_minus2와 같은 정보를 이용할 수 있다.
또한, 병렬 처리 지시자는 SPS, PPS, 슬라이스 헤더 등을 통해 부호화기에서 복호화기로 전송될 수 있다. 즉, 부호화기에서 병렬적으로 인터 예측을 수행할지 여부를 결정하고, 그 결정된 정보를 SPS, PPS, 슬라이스 헤더 내 병렬 처리 지시자에 설정하여 복호화기로 전송할 수 있다.
예를 들어, 병렬 처리 지시자(log2_parallel_merge_level_minus2)가 0인 경우, 복호화 장치는 병렬적으로 예측이 수행되는 병렬 예측 블록의 크기를 4x4로 결정할 수 있다. 이때 병렬 예측 블록의 크기가 4x4이므로 통상의 인터 예측 방법과 같이 공간적 혹은 시간적 후보를 유도할 수 있다.
병렬 처리 지시자(log2_parallel_merge_level_minus2)가 1 이상인 경우, 복호화 장치는 병렬적으로 인터 예측을 수행하는 것으로 판단하고 병렬 처리 지시자(log2_parallel_merge_level_minus2) 값에 따라 병렬 예측 블록의 크기를 결정하여 병렬적으로 공간적 혹은 시간적 후보를 유도할 수 있다. 이때, 병렬 처리 지시자(log2_parallel_merge_level_minus2) 값에 따른 병렬 예측 블록의 크기는 상술한 표 1과 같은 정보를 이용하여 결정될 수 있다.
병렬 처리 지시자 정보에 따라 제2 계층의 예측 대상 블록에 대해 병렬 처리를 수행하는 것으로 판단한 경우, 복호화 장치는 병렬 예측 블록의 크기에 따라 예측 대상 블록의 공간적 혹은 시간적 후보를 유도한다(S810).
이때, 복호화 장치는 예측 대상 블록의 주변 블록에 대한 가용성 여부를 판단하고, 가용한 주변 블록의 움직임 정보를 공간적 후보로 유도할 수 있다. 가용성 여부는, 상술한 바와 같이 주변 블록이 인터 또는 인트라로 부호화되었는지, 예측 대상 블록과 동일한 슬라이스/픽처/타일인지 여부 등에 따라 판단될 수 있다.
본 발명의 실시예에 따른 제2 계층의 예측 대상 블록에 대한 공간적 후보를 유도하는 방법으로는,
(1) 예측 대상 블록의 주변 블록이 병렬 예측 블록의 외부에 존재하는 외부주변 블록일 경우, 상기 외부 주변 블록에 대한 가용성 여부를 판단하여 공간적 후보로 유도하고, 예측 대상 블록의 주변 블록이 병렬 예측 블록의 내부에 존재하는 내부 주변 블록일 경우, 상기 내부 주변 블록을 가용하지 않은 블록으로 판단하여 공간적 후보로 이용하지 않을 수 있다.
(2) 예측 대상 블록의 주변 블록이 병렬 예측 블록의 내부에 존재하는 내부주변 블록일 경우, 상기 내부 주변 블록을 병렬 예측 블록의 외부에 존재하는 블록으로 대체하여 공간적 후보로 유도할 수 있다.
(3) 예측 대상 블록의 주변 블록이 병렬 예측 블록의 내부에 존재하는 내부 주변 블록일 경우, 상기 내부 주변 블록을 제1 계층의 대응 블록으로 대체하여 공간적 후보로 유도할 수 있다.
(4) 예측 대상 블록의 주변 블록을 제1 계층의 대응 블록으로 대체하여 공간적 후보로 유도할 수 있다. 다시 말해, 병렬 처리를 수행하는 것으로 판단된 경우, 예측 대상 블록의 주변 블록이 병렬 예측 블록의 내부에 존재하는 블록인지 외부에 존재하는 블록인지를 판단하지 않고, 항상 제1 계층의 대응 블록을 이용하여 제2 계층의 예측 대상 블록에 대한 공간적 후보를 유도할 수 있다.
(5) 예측 대상 블록의 주변 블록으로부터 M개의 공간적 후보를 유도하고, 제1 계층의 대응 블록으로부터 N개의 공간적 후보를 유도할 수 있다. M, N은 임의의 고정된 정수일 수 있다. 다시 말해, 예측 대상 블록의 주변 블록들 중 병렬 예측 블록의 내부에 존재하는 블록들을 제외한 주변 블록으로부터 M개, 병렬 예측 블록의 내부 또는 외부에 존재하는 블록에 대응하는 제1 계층의 대응 블록으로부터 N개의 공간적 후보를 독립적으로 유도할 수 있다. 일 예로, M은 2, N은 3일 수 있다.
상기에서 제1 계층의 대응 블록은 업샘플링(up-sampling) 등과 같은 방법으로 제2 계층의 해상도에 맞게 스케일링(scaling)된 영상일 수 있으며, 제2 계층의 블록에 대응되는 위치(co-located)에 있는 제1 계층의 블록일 수 있다.
상술한 제2 계층의 예측 대상 블록에 대한 공간적 후보를 유도하는 방법은 도 9의 실시예를 통해 구체적으로 설명하도록 한다.
복호화 장치는 제2 계층의 예측 대상 블록에 대한 콜 블록을 기반으로 시간적 후보를 유도할 수 있다. 이때, 시간적 후보는 통상의 방법으로 유도될 수도 있으며, 상술한 (1) ~ (5)의 방법과 같이 유도될 수도 있다.
복호화 장치는 공간적 후보 혹은 시간적 후보를 이용하여 후보 리스트를 생성하고, 생성된 후보 리스트를 기반으로 예측 대상 블록에 대한 예측 및/또는 움직임 보상(motion estimation)을 수행한다(S820).
복호화 장치는 후보 리스트에 포함된 후보들 중 예측 시 사용되는 후보에 대한 인덱스 정보를 부호화기로부터 수신하며, 수신된 인덱스 정보를 통해 후보 리스트로부터 예측 시 사용할 후보를 결정하여 예측 대상 블록에 대한 예측 및/또는 움직임 보상을 수행할 수 있다.
한편, 부호화 장치는 상술한 (1) ~ (5)의 방법 중 적어도 하나의 방법으로 병렬적으로 유도된 공간적 후보를 이용하여 후보 리스트를 생성하고, 병렬적으로 움직임 예측 및/또는 보상을 수행한다. 그리고 후보 리스트에 포함된 후보들 중 최적의 후보를 결정하여 결정된 후보에 대한 정보(결정된 후보를 지시하는 인덱스)를 복호화기로 전송한다.
상술한 본 발명의 실시예에 따른 스케일러블 비디오 코딩에서 인터 예측을 병렬적으로 수행하는 방법은 병렬 처리를 수행하는 경우에 항상 적용될 수 있다. 또는, 병렬 처리 지시자 정보를 기반으로 병렬 예측 블록의 크기가 특정 크기 이상 또는 병렬 예측 블록의 크기가 특정 크기 이하인 경우에 적용될 수도 있다.
도 9는 본 발명의 일 실시예에 따른 제2 계층의 예측 대상 블록에 대한 공간적 후보를 유도하는 방법을 설명하기 위해 도시된 도면이다.
제1 계층 및 제2 계층을 포함하는 스케일러블 비디오 코딩 구조에서 제2 계층의 예측 대상 블록에 대해 머지(혹은 머지 스킵) 모드로 예측을 수행할 경우, 예측 대상 블록의 공간적 후보를 유도하는 방법을 설명한다.
도 9의 실시예에서는 설명의 편의상 병렬 처리 지시자(log2_parallel_merge_level_minus2)가 2인 경우, 즉 병렬 예측 블록의 크기가 16x16이고, 병렬 예측 블록 내에 4개의 예측 블록이 존재하는 경우를 예로 들어 설명한다. 이때, 제1 계층의 블록은 제2 계층의 블록과 대응되는 위치(co-located)에 존재하는 블록일 수 있으며, 제1 계층의 블록 크기는 제2 계층의 블록 크기에 맞게 업샘플링 등의 방법을 이용하여 스케일링된 영상일 수 있다.
본 발명의 실시예에 따른 제2 계층의 예측 대상 블록에 대한 공간적 후보는 도 8에서 상술한 (1) ~ (5)의 방법 중 적어도 하나를 이용하여 유도될 수 있다. 제2 계층의 예측 대상 블록은 도 9에 도시된 제1 예측 블록(910), 제2 예측 블록(920), 제3 예측 블록(930) 및 제4 예측 블록(940)일 수 있다.
(1) 예측 대상 블록의 주변 블록이 병렬 예측 블록의 외부에 존재하는 외부주변 블록일 경우, 상기 외부 주변 블록에 대한 가용성 여부를 판단하여 공간적 후보로 유도하고, 예측 대상 블록의 주변 블록이 병렬 예측 블록의 내부에 존재하는 내부 주변 블록일 경우, 상기 내부 주변 블록을 가용하지 않은 블록으로 판단하여 공간적 후보로 이용하지 않을 수 있다.
예를 들어, 제1 예측 블록(910)에 대한 공간적 후보를 유도할 경우, 제1 예측 블록(910)의 주변 블록 EA4, EA5, EB5, EB6, EB7은 병렬 예측 블록(900)의 외부에 존재하므로 가용한 블록으로 판단하여 공간적 후보로 이용할 수 있다.
제2 예측 블록(920)에 대한 공간적 후보를 유도할 경우, 제2 예측 블록(920)의 주변 블록 EB2, EB8은 병렬 예측 블록(900)의 내부에 존재하므로 가용하지 않은 블록으로 판단할 수 있다. 반면, 제2 예측 블록(920)의 주변 블록 EB3, EB4, EB6는 병렬 예측 블록(900)의 외부에 존재하므로 가용한 블록으로 판단하여 공간적 후보로 이용할 수 있다.
제3 예측 블록(930)에 대한 공간적 후보를 유도할 경우, 제3 예측 블록(930)의 주변 블록 EA2, EA3, EA5는 병렬 예측 블록(900)의 외부에 존재하므로 가용한 블록으로 판단하여 공간적 후보로 이용할 수 있다. 반면, 제3 예측 블록(930)의 주변 블록 EB9, EB2는 병렬 예측 블록(900)의 내부에 존재하므로 가용하지 않은 블록으로 판단할 수 있다.
제4 예측 블록(940)에 대한 공간적 후보를 유도할 경우, 제4 예측 블록(940)의 주변 블록 EA1, EB1, EB2는 병렬 예측 블록(900)의 내부에 존재하므로 가용하지 않은 블록으로 판단할 수 있다. 반면, 제4 예측 블록(940)의 주변 블록 EA0, EB0는 병렬 예측 블록(900)의 외부에 존재하므로 가용한 블록으로 판단하여 공간적 후보로 이용할 수 있다.
(2) 예측 대상 블록의 주변 블록이 병렬 예측 블록의 내부에 존재하는 내부주변 블록일 경우, 상기 내부 주변 블록을 병렬 예측 블록의 외부에 존재하는 블록으로 대체하여 공간적 후보로 유도할 수 있다.
예를 들어, 제2 예측 블록(920)에 대한 공간적 후보를 유도할 경우, 제2 예측 블록(920)의 주변 블록 EB2, EB8는 병렬 예측 블록(900)의 내부에 존재하므로 가용하지 않은 블록으로 판단할 수 있다. 이때, 주변 블록 EB2는 병렬 예측 블록(900)의 외부에 존재하는 블록 EA5로 대체되어 공간적 후보로 유도될 수 있다. 주변 블록 EB8는 병렬 예측 블록(900)의 외부에 존재하는 블록 EA4로 대체되어 공간적 후보로 유도될 수 있다.
제4 예측 블록(940)에 대한 공간적 후보를 유도할 경우, 제4 예측 블록(940)의 주변 블록 EA1, EB2, EB1은 병렬 예측 블록(900)의 내부에 존재하므로 가용하지 않은 블록으로 판단할 수 있다. 이때, 주변 블록 EA1은 병렬 예측 블록(900)의 외부에 존재하는 블록 EA3로, 주변 블록 EB2은 병렬 예측 블록(900)의 외부에 존재하는 블록 EA5 혹은 EB7로, 주변 블록 EB1은 EB4로 대체되어 공간적 후보로 유도될 수 있다.
(3) 예측 대상 블록의 주변 블록이 병렬 예측 블록의 내부에 존재하는 내부 주변 블록일 경우, 상기 내부 주변 블록을 제1 계층의 대응 블록으로 대체하여 공간적 후보로 유도할 수 있다.
예를 들어, 제2 예측 블록(920)에 대한 공간적 후보를 유도할 경우, 제2 예측 블록(920)의 주변 블록 EB2, EB8은 병렬 예측 블록(900)의 내부에 존재하므로 가용하지 않은 블록으로 판단할 수 있다. 이때, 주변 블록 EB2는 EB2에 대응되는 제1 계층의 대응 블록 BB2로, 주변 블록 EB8은 EB8에 대응되는 제1 계층의 대응 블록 BB8로 대체되어 공간적 후보로 유도될 수 있다.
제4 예측 블록(940)에 대한 공간적 후보를 유도할 경우, 제4 예측 블록(940)의 주변 블록 EA1, EB2, EB1은 병렬 예측 블록(900)의 내부에 존재하므로 가용하지 않은 블록으로 판단할 수 있다. 이때, 주변 블록 EA1은 EA1에 대응되는 제1 계층의 대응 블록 BA1로, 주변 블록 EB2는 EB2에 대응되는 제1 계층의 대응 블록 BB2로, 주변 블록 EB1은 EB1에 대응되는 제1 계층의 대응 블록 BB1으로 대체되어 공간적 후보로 유도될 수 있다.
(4) 예측 대상 블록의 주변 블록을 제1 계층의 대응 블록으로 대체하여 공간적 후보로 유도할 수 있다. 다시 말해, 병렬 처리를 수행하는 것으로 판단된 경우, 예측 대상 블록의 주변 블록이 병렬 예측 블록의 내부에 존재하는 블록인지 외부에 존재하는 블록인지를 판단하지 않고, 항상 제1 계층의 대응 블록을 이용하여 제2 계층의 예측 대상 블록에 대한 공간적 후보를 유도할 수 있다.
예를 들어, 제1 예측 블록(910)에 대한 공간적 후보를 유도할 경우, 제1 예측 블록(910)의 주변 블록 EA4를 제1 계층의 대응 블록 BA4로 대체하여 공간적 후보로 유도할 수 있다. 또한, 제1 예측 블록(910)의 주변 블록 EA5를 제1 계층의 대응 블록 BA5로, 제1 예측 블록(910)의 주변 블록 EB5를 제1 계층의 대응 블록 BB5로, 제1 예측 블록(910)의 주변 블록 EB6을 제1 계층의 대응 블록 BB6로, 제1 예측 블록(910)의 주변 블록 EB7을 제1 계층의 대응 블록 BB7로 대체하여 공간적 후보로 유도할 수 있다.
제2 예측 블록(920)에 대한 공간적 후보를 유도할 경우, 제2 예측 블록(920)의 주변 블록 EB8, EB2, EB3, EB4, EB6을 각각 대응하는 제1 계층의 대응 블록 BB8, BB2, BB3, BB4, BB6으로 대체하여 공간적 후보로 유도할 수 있다.
제3 예측 블록(930)에 대한 공간적 후보를 유도할 경우, 제3 예측 블록(930)의 주변 블록 EA2, EA3, EB9, EB2, EA5를 각각 대응하는 제1 계층의 대응 블록 BA2, BA3, BB9, BB2, BA5로 대체하여 공간적 후보로 유도할 수 있다.
제4 예측 블록(940)에 대한 공간적 후보를 유도할 경우, 제4 예측 블록(940)의 주변 블록 EA0, EA1, EB0, EB1, EB2를 각각 대응하는 제1 계층의 대응 블록 BA0, BA1, BB0, BB1, BB2로 대체하여 공간적 후보로 유도할 수 있다.
(5) 예측 대상 블록의 주변 블록으로부터 M개의 공간적 후보를 유도하고, 제1 계층의 대응 블록으로부터 N개의 공간적 후보를 유도할 수 있다. M, N은 임의의 고정된 정수일 수 있다.
예를 들어, 제1 예측 블록(910)에 대한 공간적 후보를 유도할 경우, 제1 예측 블록(910)의 주변 블록 EA5, EB6, EB5, EA4, EB7의 순서로 각 주변 블록의 가용성을 판단하고, 2개의 가용한 주변 블록을 공간적 후보로 유도할 수 있다. 또한, 제1 예측 블록(910)의 주변 블록에 대응되는 제1 계층의 대응 블록 BA5, BB6, BB5, BA4, BB7의 순서로 각 대응 블록의 가용성을 판단하고, 3개의 가용한 대응 블록을 공간적 후보로 유도할 수 있다. 이때, 후보 리스트의 정해진 최대 후보 개수를 채우지 못한 경우, (0, 0)의 움직임 벡터 혹은 참조 픽처 인덱스 0 등에 해당하는 움직임 정보를 이용하여 후보 리스트를 채울 수 있다.
제4 예측 블록(940)에 대한 공간적 후보를 유도할 경우, 제4 예측 블록(940)의 주변 블록 EB0, EA0의 순서로 각 주변 블록의 가용성을 판단하여 2개의 공간적 후보를 유도할 수 있으며, 제1 계층의 대응 블록 BA1, BB1, BB0, BA0, BB2의 순서로 각 대응 블록의 가용성을 판단하여 3개의 공간적 후보를 유도할 수 있다. 이때, 후보 리스트의 정해진 최대 후보 개수를 채우지 못한 경우, (0, 0)의 움직임 벡터 혹은 참조 픽처 인덱스 0 등에 해당하는 움직임 정보를 이용하여 후보 리스트를 채울 수 있다.
본 발명의 실시예에 따른 제2 계층의 예측 대상 블록에 대한 공간적 후보를 유도할 때, 제1 계층의 움직임 정보를 이용함에 있어서 제2 계층의 예측 대상 블록에 대응되는 제1 계층의 대응 블록의 움직임 정보를 이용할 수 있다.
예를 들어, 제4 예측 블록(940)에 대한 공간적 후보를 유도할 경우, 제4 예측 블록(940)의 중앙 위치에 대응되는 제1 계층의 BC0 블록이 가지고 있는 움직임 정보를 공간적 후보로 이용할 수 있다.
또한, 본 발명의 실시예에 따른 제2 계층의 예측 대상 블록에 대한 공간적 후보를 유도할 때, 병렬 예측 블록의 크기에 따라 제1 계층으로부터 유도하는 공간적 후보의 개수를 달리할 수 있다.
예를 들어, 병렬 예측 블록의 크기가 클수록 제2 계층에서 가용한 공간적 후보가 적어지기 때문에, 제1 계층으로부터 유도하는 공간적 후보를 늘릴 수 있다. 일 예로, 병렬 예측 블록의 크기가 32x32인 경우에는 4개, 병렬 예측 블록의 크기가 16x16인 경우에는 3개, 병렬 예측 블록의 크기가 8x8인 경우에는 2개의 제1 계층 공간적 후보를 유도할 수 있다.
또한, 본 발명의 실시예에 따른 제2 계층의 예측 대상 블록에 대한 공간적 후보를 유도할 때, 제1 계층으로부터 유도하는 공간적 후보의 가용성 여부를 판단할 수 있다.
예를 들어, 제1 계층의 대응 블록의 존재 여부, 대응 블록의 부호화 모드(인트라 또는 인터 모드), 픽처/슬라이스/타일 경계, 부호화 트리 블록(CTB: Coding Tree Block) 경계 등의 여부를 판별하여 제1 계층의 대응 블록에 대한 가용성 여부를 판단할 수 있다. 이때, 제1 계층의 대응 블록이 가용하지 않다고 판단된 경우, 상기 가용하지 않은 대응 블록의 주변에 위치한 블록에 대해 가용성 여부를 판단하여 공간적 후보로 사용할 수도 있다.
도 10은 본 발명의 일 실시예에 따른 제2 계층의 공간적 후보를 유도하여 하나의 후보 리스트(single candidate list)를 생성하는 방법을 설명하기 위해 도시된 도면이다.
제1 계층 및 제2 계층을 포함하는 스케일러블 비디오 코딩 구조에서 제2 계층의 예측 대상 블록에 대해 머지(혹은 머지 스킵) 모드로 예측을 수행할 경우, 예측 대상 블록의 공간적 후보를 병렬적으로 유도하여 하나의 후보 리스트를 생성하는 방법을 설명한다.
도 10의 실시예에서는 설명의 편의상 병렬 처리 지시자(log2_parallel_merge_level_minus2)가 2인 경우, 즉 병렬 예측 블록의 크기가 16x16이고, 16x16 크기의 병렬 예측 블록이 다수의 부호화 블록 및 예측 블록으로 분할된 경우를 예로 들어 설명한다. 예컨대, 도 10에 도시된 바와 같이, 16x16 크기의 병렬 예측 블록은 4개의 8x8 크기 부호화 블록을 포함하며, 하나의 8x8 크기 부호화 블록은 4x8 크기의 제1 예측 블록 및 제2 예측 블록으로 분할될 수 있다.
이때, 제2 계층의 병렬 예측 블록(1000) 내 부호화 블록 및 예측 블록들은 상술한 도 8 및 도 9의 (1) ~ (5)의 방법 중 적어도 하나를 이용하여 병렬적으로 공간적 후보를 유도할 수 있다.
또한, 병렬 예측 블록(1000) 내 특정 크기의 부호화 블록이 존재하면 특정 크기의 부호화 블록에 포함된 예측 블록들은 하나의 후보 리스트를 공유하여 예측이 수행될 수 있다. 일 예로, 병렬 예측 블록의 크기가 8x8 이상이고, 부호화 블록의 크기가 8x8인 경우, 상기 8x8 크기의 부호화 블록 내 예측 블록들은 하나의 후보 리스트를 생성할 수 있다.
도 10을 참조하면, 병렬 예측 블록(1000)의 크기가 8x8이상이고 부호화 블록의 크기가 8x8이므로, 부호화 블록 내 제1 예측 블록 및 제2 예측 블록은 하나의 후보 리스트를 공유할 수 있다. 즉, 제1 예측 블록 및 제2 예측 블록에 대한 후보 리스트를 생성할 때, 제1 예측 블록 및 제2 예측 블록은 제1 예측 블록 및 제2 예측 블록을 포함하는 부호화 블록을 기준으로 공간적 후보를 유도하여 하나의 후보 리스트를 생성할 수 있다.
제1 예측 블록 및 제2 예측 블록에 대한 하나의 후보 리스트는 다음과 같은 과정으로 생성할 수 있다.
1. 제1 예측 블록 및 제2 예측 블록을 포함하는 부호화 블록에 대응되는 위치의 제1 계층 BC0를 포함하는 블록에 대한 가용성 여부를 판단하여, 가용한 경우 제1 계층 BC0 블록의 움직임 정보를 공간적 후보로 유도하여 후보 리스트에 추가할 수 있다.
2. 제1 예측 블록 및 제2 예측 블록을 포함하는 부호화 블록의 주변 블록 EA1은 병렬 예측 블록(1000)의 내부에 존재하므로 가용하지 않은 블록으로 판단할 수 있다. 따라서, 주변 블록 EA1에 대응되는 제1 계층의 BA1 블록의 가용성 여부를 판단하여, 가용한 블록인 경우 제1 계층의 BA1 블록에 대한 움직임 정보를 공간적 후보로 유도하여 후보 리스트에 추가할 수 있다.
3. 제1 예측 블록 및 제2 예측 블록을 포함하는 부호화 블록의 주변 블록 EB1은 병렬 예측 블록(1000)의 내부에 존재하므로 가용하지 않은 블록으로 판단할 수 있다. 따라서, 주변 블록 EB1에 대응되는 제1 계층의 BB1 블록의 가용성 여부를 판단하여, 가용한 블록인 경우 제1 계층의 BB1 블록에 대한 움직임 정보를 공간적 후보로 유도하여 후보 리스트에 추가할 수 있다.
4. 제1 예측 블록 및 제2 예측 블록을 포함하는 부호화 블록의 주변 블록 EB0는 병렬 예측 블록(1000)의 외부에 존재하나 복원되지 않은 블록이므로 가용하지 않은 블록으로 판단할 수 있다. 따라서, 주변 블록 EB0에 대응되는 제1 계층의 BB0 블록의 가용성 여부를 판단하여, 가용한 블록인 경우 제1 계층의 BB0 블록에 대한 움직임 정보를 공간적 후보로 유도하여 후보 리스트에 추가할 수 있다.
5. 제1 예측 블록 및 제2 예측 블록을 포함하는 부호화 블록의 주변 블록 EA0는 병렬 예측 블록(1000)의 외부에 존재하나 복원되지 않은 블록이므로 가용하지 않은 블록으로 판단할 수 있다. 따라서, 주변 블록 EA0에 대응되는 제1 계층의 BA0 블록의 가용성 여부를 판단하여, 가용한 블록인 경우 제1 계층의 BA0 블록에 대한 움직임 정보를 공간적 후보로 유도하여 후보 리스트에 추가할 수 있다.
6. 제1 예측 블록 및 제2 예측 블록을 포함하는 부호화 블록의 주변 블록 EB2는 병렬 예측 블록(1000)의 내부에 존재하므로 가용하지 않은 블록으로 판단할 수 있다. 따라서, 주변 블록 EB2에 대응되는 제1 계층의 BB2 블록의 가용성 여부를 판단하여, 가용한 블록인 경우 제1 계층의 BB2 블록에 대한 움직임 정보를 공간적 후보로 유도하여 후보 리스트에 추가할 수 있다.
상술한 공간적 후보 유도 및 하나의 후보 리스트 생성 방법은 머지 모드를 예로 들어 설명하였으나, 이는 움직임 벡터 예측(AMVP)을 이용한 인터 예측 시에도 적용될 수 있다.
상술한 실시예들에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호범위는 특허청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (13)

  1. 복수의 계층을 지원하는 영상 복호화 방법에 있어서,
    병렬 처리 지시자 정보를 기반으로 상위 계층(enhancement layer)의 예측 대상 블록에 대한 인터 예측을 병렬적으로 수행할지 여부를 판단하고 병렬 예측 블록의 크기를 결정하는 단계;
    상기 병렬 예측 블록의 크기에 따라 상기 예측 대상 블록에 대한 공간적 후보를 유도하는 단계; 및
    상기 공간적 후보를 기반으로 상기 예측 대상 블록에 대한 후보 리스트를 생성하여 병렬적으로 인터 예측을 수행하는 단계를 포함하며,
    상기 병렬 처리 지시자 정보는 병렬적으로 인터 예측이 수행되는 병렬 예측 블록의 크기를 지시하는 정보인 것을 특징으로 하는 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 예측 대상 블록에 대한 공간적 후보를 유도하는 단계는,
    상기 예측 대상 블록의 주변에 위치한 주변 블록을 결정하는 단계;
    상기 주변 블록이 상기 병렬 예측 블록의 내부에 존재하는지 외부에 존재하는지를 기반으로 상기 주변 블록의 가용성을 판단하는 단계; 및
    상기 주변 블록이 가용한 블록이면 상기 가용한 블록을 상기 예측 대상 블록에 대한 공간적 후보로 유도하는 단계를 포함하며,
    상기 주변 블록의 가용성을 판단하는 단계에서는,
    상기 주변 블록이 상기 병렬 예측 블록의 외부에 존재하면 상기 주변 블록을 가용한 블록으로 판단하고,
    상기 주변 블록이 상기 병렬 예측 블록의 내부에 존재하면 상기 주변 블록을 가용하지 않은 블록으로 판단하는 것을 특징으로 하는 영상 복호화 방법.
  3. 제2항에 있어서,
    상기 주변 블록이 상기 병렬 예측 블록의 내부에 존재하여 가용하지 않은 블록으로 판단된 경우,
    상기 가용하지 않은 블록을 상기 병렬 예측 블록의 외부에 존재하는 블록으로 대체하여 상기 예측 대상 블록에 대한 공간적 후보로 유도하는 것을 특징으로 하는 영상 복호화 방법.
  4. 제2항에 있어서,
    상기 주변 블록이 상기 병렬 예측 블록의 내부에 존재하여 가용하지 않은 블록으로 판단된 경우,
    상기 가용하지 않은 블록을 상기 가용하지 않은 블록에 대응되는 위치(co-located)에 존재하는 하위 계층(base layer)의 대응 블록으로 대체하여 상기 예측 대상 블록에 대한 공간적 후보로 유도하는 것을 특징으로 하는 영상 복호화 방법.
  5. 제1항에 있어서,
    상기 예측 대상 블록에 대한 공간적 후보를 유도하는 단계는,
    상기 예측 대상 블록의 주변에 위치한 주변 블록을 결정하는 단계;
    상기 주변 블록을 상기 주변 블록에 대응되는 위치(co-located)에 존재하는 하위 계층(base layer)의 대응 블록으로 대체하는 단계; 및
    상기 대응 블록을 기반으로 하여 상기 예측 대상 블록에 대한 공간적 후보를 유도하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법.
  6. 제1항에 있어서,
    상기 예측 대상 블록에 대한 공간적 후보를 유도하는 단계는,
    상기 예측 대상 블록의 주변에 위치한 주변 블록으로부터 상위 계층에 대한 고정된 개수의 공간적 후보를 유도하는 단계; 및
    상기 주변 블록에 대응되는 위치(co-located)에 존재하는 하위 계층(base layer)의 대응 블록으로부터 하위 계층에 대한 고정된 개수의 공간적 후보를 유도하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법.
  7. 제6항에 있어서,
    상기 병렬 예측 블록의 크기에 따라 상기 상위 계층에 대한 고정된 개수 및 상기 하위 계층에 대한 고정된 개수를 결정하는 것을 특징으로 하는 영상 복호화 방법.
  8. 제7항에 있어서,
    상기 병렬 예측 블록의 크기가 32x32인 경우, 상기 하위 계층에 대한 고정된 개수는 4개이며 상기 상위 계층에 대한 고정된 개수는 1개이며,
    상기 병렬 예측 블록의 크기가 16x16인 경우, 상기 하위 계층에 대한 고정된 개수는 3개이며 상기 상위 계층에 대한 고정된 개수는 2개이며,
    상기 병렬 예측 블록의 크기가 8x8인 경우, 상기 하위 계층에 대한 고정된 개수는 2개이며 상기 상위 계층에 대한 고정된 개수는 3개인 것을 특징으로 하는 영상 복호화 방법.
  9. 제1항에 있어서,
    상기 병렬 예측 블록 내 특정 크기의 부호화 블록이 포함된 경우, 상기 예측 대상 블록에 대한 공간적 후보를 유도하는 단계는,
    상기 특정 크기의 부호화 블록에 포함된 상기 예측 대상 블록에 대해 상기 특정 크기의 부호화 블록을 기준으로 주변 블록을 결정하는 단계; 및
    상기 주변 블록의 가용성 여부에 따라 상기 예측 대상 블록에 대한 공간적 후보를 유도하는 단계를 포함하며,
    상기 주변 블록이 상기 병렬 예측 대상 블록의 외부에 존재하고 복원된 블록이면 가용한 블록으로 판단하며,
    상기 주변 블록이 상기 병렬 예측 대상 블록의 내부에 존재하거나 혹은 복원되지 않은 블록이면 가용하지 않은 블록으로 판단하며,
    상기 주변 블록이 가용하지 않은 블록으로 판단된 경우, 상기 가용하지 않은 블록은 상기 가용하지 않은 블록에 대응되는 위치에 존재하는 하위 계층의 대응 블록으로 대체되는 것을 특징으로 하는 영상 복호화 방법.
  10. 제9항에 있어서,
    상기 예측 대상 블록에 대한 후보 리스트를 생성하여 병렬적으로 인터 예측을 수행하는 단계에서는,
    상기 예측 대상 블록에 대한 공간적 후보를 이용하여 상기 특정 크기의 부호화 블록에 포함된 예측 대상 블록에 대한 하나의 후보 리스트(single candidate list)를 생성하는 것을 특징으로 하는 영상 복호화 방법.
  11. 복수의 계층을 지원하는 영상 복호화 장치에 있어서,
    병렬 처리 지시자 정보를 기반으로 상위 계층(enhancement layer)의 예측 대상 블록에 대한 인터 예측을 병렬적으로 수행할지 여부를 판단하고 병렬 예측 블록의 크기를 결정하고,
    상기 병렬 예측 블록의 크기에 따라 상기 예측 대상 블록에 대한 공간적 후보를 유도하고,
    상기 공간적 후보를 기반으로 상기 예측 대상 블록에 대한 후보 리스트를 생성하여 병렬적으로 인터 예측을 수행하는 예측부를 포함하며,
    상기 병렬 처리 지시자 정보는 병렬적으로 인터 예측이 수행되는 병렬 예측 블록의 크기를 지시하는 정보인 것을 특징으로 하는 영상 복호화 장치.
  12. 복수의 계층을 지원하는 영상 부호화 방법에 있어서,
    병렬 처리 지시자 정보를 기반으로 상위 계층(enhancement layer)의 예측 대상 블록에 대한 인터 예측을 병렬적으로 수행할지 여부를 판단하고 병렬 예측 블록의 크기를 결정하는 단계;
    상기 병렬 예측 블록의 크기에 따라 상기 예측 대상 블록에 대한 공간적 후보를 유도하는 단계; 및
    상기 공간적 후보를 기반으로 상기 예측 대상 블록에 대한 후보 리스트를 생성하여 병렬적으로 인터 예측을 수행하는 단계를 포함하며,
    상기 병렬 처리 지시자 정보는 병렬적으로 인터 예측이 수행되는 병렬 예측 블록의 크기를 지시하는 정보인 것을 특징으로 하는 영상 부호화 방법.
  13. 복수의 계층을 지원하는 영상 부호화 장치에 있어서,
    병렬 처리 지시자 정보를 기반으로 상위 계층(enhancement layer)의 예측 대상 블록에 대한 인터 예측을 병렬적으로 수행할지 여부를 판단하고 병렬 예측 블록의 크기를 결정하고,
    상기 병렬 예측 블록의 크기에 따라 상기 예측 대상 블록에 대한 공간적 후보를 유도하고,
    상기 공간적 후보를 기반으로 상기 예측 대상 블록에 대한 후보 리스트를 생성하여 병렬적으로 인터 예측을 수행하는 예측부를 포함하며,
    상기 병렬 처리 지시자 정보는 병렬적으로 인터 예측이 수행되는 병렬 예측 블록의 크기를 지시하는 정보인 것을 특징으로 하는 영상 부호화 장치.
KR1020130155356A 2012-12-14 2013-12-13 영상 부호화/복호화 방법 및 장치 KR20140081682A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20120146113 2012-12-14
KR1020120146113 2012-12-14

Publications (1)

Publication Number Publication Date
KR20140081682A true KR20140081682A (ko) 2014-07-01

Family

ID=51732917

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130155356A KR20140081682A (ko) 2012-12-14 2013-12-13 영상 부호화/복호화 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20140081682A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018182185A1 (ko) * 2017-03-31 2018-10-04 주식회사 칩스앤미디어 병렬 처리를 위한 움직임 정보를 처리하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018182185A1 (ko) * 2017-03-31 2018-10-04 주식회사 칩스앤미디어 병렬 처리를 위한 움직임 정보를 처리하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치
KR20220005101A (ko) * 2017-03-31 2022-01-12 주식회사 칩스앤미디어 병렬 처리를 위한 움직임 정보를 처리하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치

Similar Documents

Publication Publication Date Title
US10334258B2 (en) Scalable video coding method and apparatus using inter prediction mode
CN112235572B (zh) 视频解码方法和装置以及计算机设备和存储介质
EP3306935A1 (en) Image encoding and decoding method and image decoding device
WO2020061094A1 (en) Affine motion prediction
KR20180035190A (ko) 움직임 후보 리스트 생성 방법 및 그를 이용한 부호화 장치
KR102209109B1 (ko) 영상 부호화/복호화 방법 및 장치
US20150139323A1 (en) Method of decoding images and device using same
US20140247883A1 (en) Scalable video encoding and decoding method and apparatus using same
KR20140008503A (ko) 영상 부호화/복호화 방법 및 장치
KR20150052259A (ko) 스케일러블 비디오 코딩을 위한 가중된 예측 모드
JP2022536383A (ja) 単純化されたmpmリスト生成方法を用いる画像符号化/復号化方法、装置、及びビットストリームを伝送する方法
KR20160085237A (ko) 머지를 기반으로 한 복호화 방법 및 장치
JP2023517623A (ja) 長方形スライスのサイズ情報を選択的に符号化する画像符号化/復号化方法及び装置、並びにビットストリームを伝送する方法
JP2023513788A (ja) フィルタ利用可能情報を選択的にシグナリングする画像符号化/復号化方法及び装置、並びにビットストリームを伝送する方法
KR101561461B1 (ko) 영상의 부호화/복호화 방법 및 이를 이용하는 장치
KR101420718B1 (ko) 스케일러블 비디오 부호화 및 복호화 방법, 그리고 이를 이용한 장치
JP2023508178A (ja) Pdpcを行う画像符号化/復号化方法、装置、及びビットストリームを伝送する方法
KR20140081682A (ko) 영상 부호화/복호화 방법 및 장치
KR101561463B1 (ko) 영상 부호화/복호화 방법 및 장치
KR102602633B1 (ko) 영상 부호화/복호화 방법 및 장치
JP7444998B2 (ja) リーフノードの再設定された予測モードタイプに基づいて予測を行う画像符号化/復号化方法、装置、及びビットストリームを伝送する方法
KR102325977B1 (ko) 영상의 복호화 방법 및 이를 이용하는 장치
KR102222311B1 (ko) 영상의 복호화 방법 및 이를 이용하는 장치

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination