KR102378087B1 - 변이 벡터를 사용한 병합 움직임 후보 유도 장치 및 방법 - Google Patents

변이 벡터를 사용한 병합 움직임 후보 유도 장치 및 방법 Download PDF

Info

Publication number
KR102378087B1
KR102378087B1 KR1020150046781A KR20150046781A KR102378087B1 KR 102378087 B1 KR102378087 B1 KR 102378087B1 KR 1020150046781 A KR1020150046781 A KR 1020150046781A KR 20150046781 A KR20150046781 A KR 20150046781A KR 102378087 B1 KR102378087 B1 KR 102378087B1
Authority
KR
South Korea
Prior art keywords
disparity vector
block
spatial merge
motion candidate
candidate
Prior art date
Application number
KR1020150046781A
Other languages
English (en)
Other versions
KR20150114913A (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 KR20150114913A publication Critical patent/KR20150114913A/ko
Application granted granted Critical
Publication of KR102378087B1 publication Critical patent/KR102378087B1/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
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

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

Abstract

본 발명은 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한지에 대해 판단하는 단계, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한 경우, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는지에 대해 판단하는 단계 및 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는 경우, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보의 변이 벡터에 임의의 값을 더하여 수정 변이 벡터를 유도하는 단계를 포함하는 수정 변이 벡터를 유도하는 영상 복호화 방법을 제공한다.

Description

변이 벡터를 사용한 병합 움직임 후보 유도 장치 및 방법{Apparatus And Method For Deriving Merge Candidate Using Disparity Vector}
본 발명은 영상 부호화/복호화 장치 및 방법에 관한 것으로서, 보다 구체적으로는 영상 부호화/복호화 시 일부 후보만을 병합 움직임 후보의 유도에 사용하는 장치 및 방법에 관한 것이다.
정보 통신 산업의 지속적인 발달은 HD(High Definition) 해상도를 가지는 방송 서비스의 세계적인 확산을 야기시켰으며, 이로 인해 많은 사용자들은 HD 영상에 익숙해지게 되었다.
HD화질에 익숙해진 사용자들은 더욱 더 높은 화질과 높은 해상도를 가지는 영상을 원하게 되었으며, 사용자들의 수요를 충족시키기 위해 많은 기관들이 차세대 영상 기기에 대한 개발에 박차를 가하였다. 이로 인하여, 오늘날에는 FHD(Full HD) 및 UHD(Ultra High Definition)가 지원되는 영상을 접할 수 있게 되었다.
사용자들은 높은 화질과 높은 해상도를 가지는 영상뿐만 아니라, 입체감을 느낄 수 있는 3차원 영상을 원하게 되었다. 다양한 기관들은 사용자들의 수요를 충족시켜 주기 위하여 3차원 영상을 개발하기에 이르렀다.
하지만, 3차원 영상은 실제 영상(texture) 정보뿐만 아니라 깊이 맵(depth map) 정보까지 포함하기 때문에, 2차원 영상보다 많은 데이터를 포함한다. . 따라서, 기존의 영상 부호화/복호화 과정에 따라 3차원 영상을 부호화/복호화 할 경우에는 충분한 부호화/복호화 효율이 나오지 않은 문제점이 있다.
본 발명이 해결하고자 하는 과제는 움직임 병합 즉, 머지(Merge)를 수행할 때, 변이 벡터(Disparity Vector)를 이용하는 영상 부호화/복호화 장치 및 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 움직임 병합 즉, 머지(Merge)를 수행할 때, 수정된 변이 벡터(Disparity Vector)를 이용하는 영상 부호화/복호화 장치 및 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 과제는 일부 후보만을 이용하여 움직임 병합 후보를 생성하는 영상 부호화/복호화 장치 및 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 과제는 일부 후보만을 이용하여 움직임 병합 후보를 생성함으로써, 계산 복잡도가 감소된 영상 부호화/복호화 장치 및 방법을 제공하는 것이다.
본 발명의 일 실시예에 따르면, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한지에 대해 판단하는 단계, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한 경우, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는지에 대해 판단하는 단계 및 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는 경우, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보의 변이 벡터에 임의의 값을 더하여 수정 변이 벡터를 유도하는 단계를 포함하는 수정 변이 벡터를 유도하는 영상 복호화 방법을 제공한다.
본 발명의 다른 실시예에 따르면, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한지에 대해 판단하는 단계, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한 경우, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는지에 대해 판단하는 단계 및 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는 경우, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보의 변이 벡터에 임의의 값을 더하여 수정 변이 벡터를 유도하는 단계를 포함하는 수정 변이 벡터를 유도하는 영상 부호화 방법을 제공한다.
본 발명의 또 다른 실시예에 따르면, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한 경우, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는지에 대해 판단하는 사용 가능 판단부 및 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는 경우, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보의 변이 벡터에 임의의 값을 더하여 수정 변이 벡터를 유도하는 변이 벡터 수정부를 포함하는 수정 변이 벡터를 유도하는 영상 복호화 장치를 제공한다.
본 발명의 또 다른 실시예에 따르면, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한 경우, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는지에 대해 판단하는 사용 가능 판단부 및 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는 경우, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보의 변이 벡터에 임의의 값을 더하여 수정 변이 벡터를 유도하는 변이 벡터 수정부를 포함하는 수정 변이 벡터를 유도하는 영상 부호화 장치를 제공한다.
본 발명의 또 다른 실시예에 따르면, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한 경우, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는지에 대해 판단하는 블록 탐색부 및 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는 경우, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보의 변이 벡터에 임의의 값을 더하여 수정 변이 벡터를 유도하는 변이 벡터 수정부를 포함하는 수정 변이 벡터를 유도하는 영상 복호화 장치를 제공한다.
본 발명의 또 다른 실시예에 따르면, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한 경우, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는지에 대해 판단하는 블록 탐색부 및 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는 경우, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보의 변이 벡터에 임의의 값을 더하여 수정 변이 벡터를 유도하는 변이 벡터 수정부를 포함하는 수정 변이 벡터를 유도하는 영상 부호화 장치를 제공한다.
본 발명에 따르면, 움직임 병합 즉, 머지(Merge)를 수행할 때, 변이 벡터(Disparity Vector)를 이용할 수 있다.
본 발명에 따르면, 움직임 병합 즉, 머지(Merge)를 수행할 때, 수정된 변이 벡터(Disparity Vector)를 이용할 수 있다.
본 발명에 따르면, 일부 후보만을 이용하여 움직임 병합 후보를 생성할 수 있다.
본 발명에 따르면, 일부 후보만을 이용하여 움직임 병합 후보를 생성함으로써, 계산 복잡도를 감소시킬 수 있다.
도 1은 3차원 비디오 시스템의 기본 구조를 개략적으로 도시한 것이다.
도 2는 “balloons” 영상의 실제 영상과 깊이 정보 맵 영상의 일례를 나타내는 도면이다.
도 3은 영상을 부호화 및 복호화할 때 영상의 분할 구조를 개략적으로 나타내는 도면이다.
도 4는 부호화 유닛(CU)이 포함할 수 있는 예측 유닛(PU)의 형태를 도시한 것이다.
도 5는 변환 유닛(TU)의 쿼드트리 분할 구조의 일 예를 개략적으로 도시한 것이다.
도 6는 3차원 비디오 코덱(codec)에서 시점 간 예측(inter view prediction)의 구조를 나타내는 일례다.
도 7은 3차원 비디오 인코더 및/또는 디코더에서 실제 영상(texture view)과 깊이 정보 맵(depth view)을 부호화 및/또는 복호화하는 과정을 나타낸 일례다.
도 8은 비디오 인코더의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 9은 비디오 디코더의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 10은 3차원 비디오 코덱에 대한 예측 구조의 일례를 나타내는 도면이다.
도 11은 현재 블록에 대한 머지 후보 리스트(merge candidate list)를 구성하는 데 사용되는 주변 블록들을 나타낸 일례다.
도 12는 인접한 시점의 움직임 정보를 이용하여, 현재 블록의 움직임 정보를 유도하는 과정의 일례를 나타내는 도면이다.
도 13는 하나의 예측 유닛(Prediction Unit, PU)이 여러 개의 서브 예측 유닛(Sub-Prediction Unit)으로 나누어지는 일례를 나타내는 도면이다.
도 14은 참조 블록을 이용하여 현재 블록의 움직임 정보를 유도하는 과정의 일례를 나타내는 도면이다.
도 15는 예측 유닛과 수정 변이 벡터를 포함하고 있는 주변 블록의 일례를 도시한 것이다.
도 16은 수정 변이 벡터를 유도하는 방법의 일례에 관한 순서도다.
도 17은 본 발명의 일 실시예에 따른 인터 예측부에서의 수정 변이 벡터 유도 방법에 관한 순서도이다.
도 18은 본 발명의 다른 실시예에 따른 인터 예측부에서의 수정 변이 벡터 유도 방법에 관한 순서도이다.
도 19는 본 발명의 또 다른 실시예에 따른 인터 예측부에서의 수정 변이 벡터 유도 방법에 관한 순서도이다.
도 20은 본 발명의 또 다른 실시예에 따른 인터 예측부에서의 수정 변이 벡터 유도 방법에 관한 순서도이다.
도 21은 본 발명의 일 실시예에 따른 인터 예측부에서의 수정 변이 벡터 유도 장치의 구조를 개략적으로 도시한 블록도이다.
도 22는 본 발명의 다른 실시예에 따른 인터 예측부에서의 수정 변이 벡터 유도 장치의 구조를 개략적으로 도시한 블록도이다.
이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 아울러, 본 발명에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함 될 수 있음을 의미한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
또한, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위 에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부 만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
3차원 비디오는 3차원 입체 디스플레이 장치를 통해 사용자에게 실 세계에서 보고 느끼는 것과 같은 입체감을 제공한다. 이와 관련하여, ISO/IEC의 MPEG(Moving Picture Experts Group)와 ITU-T의 VCEG(Video Coding Experts Group)의 공동 표준화 그룹인 JCT-3V(The Joint Collaborative Team on 3D Video Coding Extension Development)에서는 3차원 비디오 표준화가 진행 중이다.
도 1은 3차원 비디오 시스템의 기본 구조를 개략적으로 도시한 것이다.
도 1을 참조하면, 3차원 비디오(3D video; 3DV) 시스템은 송신측(sender) 및 수신측(receiver)을 포함할 수 있다. 이때, 도 1의 3차원 비디오 시스템은 3차원 비디오 표준에서 고려하고 있는 기본적인 3차원 비디오 시스템일 수 있으며, 3차원 비디오 표준은 실제 영상과 실제 영상에 대응되는 깊이 정보 맵을 이용하여, 스테레오스코픽 영상뿐만 아니라 오토스테레오스코픽(autostereoscopic) 영상의 재생을 지원할 수 있는 진보된 데이터 형식과 그에 관련된 기술에 대한 표준을 포함할 수 있다.
송신측은 다시점(multi-view)의 영상 콘텐츠를 생성할 수 있다. 구체적으로, 송신측에서는 스테레오 카메라 및 다시점 카메라를 이용하여 비디오 정보를 생성하고, 깊이 정보 카메라를 이용하여 깊이 정보 맵(depth map, 또는 depth view)을 생성할 수 있다. 또한, 송신측에서는 변환기를 이용하여 2차원 영상을 3차원 영상으로 변환할 수도 있다. 송신측에서는 생성된 비디오 정보와 깊이 정보 맵 등을 이용하여 N(N≥2) 시점(view)(즉, 다시점)의 영상 콘텐츠를 생성할 수 있다. 이때, N 시점의 영상 콘텐츠에는 N 시점의 비디오 정보와 그것의 깊이 정보 맵(Depth-map) 정보 그리고 카메라 관련 부가 정보 등이 포함될 수 있다. N 시점의 영상 콘텐츠는 3차원 비디오 인코더에서 다시점 비디오 부호화 방법을 사용하여 압축될 수 있으며, 압축된 영상 콘텐츠(비트스트림)는 네트워크를 통해 수신측의 단말로 전송될 수 있다.
수신측(receiver)은 송신측으로부터 수신된 영상 콘텐츠를 복호화하여 다시점(multi-view)의 영상을 제공할 수 있다. 구체적으로, 수신측에서는 비디오 디코더(예를 들어, 3차원 비디오 디코더, 스테레오 비디오 디코더, 2차원 비디오 디코더 등)에서 다시점 비디오 복호화 방법을 사용하여 전송 받은 비트스트림을 복호화함으로써 N 시점의 영상을 복원할 수 있다. 이때, 복원된 N 시점의 영상과 깊이 정보 맵 기반 랜더링(DIBR; Depth-Image-Based Rendering) 과정을 이용하여 N 시점 이상의 가상 시점 영상들이 생성될 수도 있다. 생성된 N 시점 이상의 가상 시점 영상들은 다양한 입체 디스플레이 장치(예를 들어, N-시점 디스플레이, 스테레오 디스플레이, 2차원 디스플레이 등)에 맞게 재생되어 사용자에게 입체감이 있는 영상을 제공하게 된다.
도 2는 “balloons” 영상의 실제 영상과 깊이 정보 맵 영상의 일례를 나타내는 도면이다.
도 2의 (a)는 국제 표준화 기구인 MPEG의 3차원 비디오 부호화 표준에서 사용 중인 “balloons” 영상을 나타낸 것이다. 도 2의 (b)는 도 2의 (a)에 도시된 “balloons” 영상에 대한 깊이 정보 맵 영상을 나타낸 것이다. 도 2의 (b)에 도시된 깊이 정보 맵 영상은 화면에 보이는 깊이 정보를 화소당 8비트로 표현한 것이다.
깊이 정보 맵(depth map)은 가상 시점 영상을 생성하는데 사용되며, 깊이 정보 맵은 실세계에서 카메라와 실제 사물(object) 간의 거리(실사 영상과 동일한 해상도로 각 화소에 해당하는 깊이 정보)를 일정한 비트수로 표현한 것이다. 이때, 깊이 정보 맵은 깊이 정보 맵 카메라를 이용하거나, 실제 일반 영상(Texture)을 이용하여 획득할 수 있다.
깊이 정보 맵 카메라를 이용하여 획득한 깊이 정보 맵은 주로 정지된 객체나 장면에서 신뢰성 높은 깊이 정보를 제공하나, 일정한 거리 이내에서만 깊이 정보 맵 카메라가 작동한다는 문제점이 있다. 이때, 깊이 정보 맵 카메라는 레이저(laser)나 구조화된 광선(structured light) 기법 또는 TFL(Time-of-Flight of Light)에 기초한 깊이 측정기법을 사용할 수 있다.
깊이 정보 맵은 실제 일반 영상(Texture)과 변이 벡터(Disparity Vector)를 이용하여 생성될 수도 있다. 변이 벡터는 두 일반 영상 간의 시점 차이를 나타내는 정보를 의미한다. 변이 벡터는 현재 시점에서의 임의의 한 화소를 다른 시점에서의 화소들과 비교하여 가장 유사한 화소를 찾았을 때, 현재 시점에서의 임의의 한 화소와 다른 시점에서의 화소(현재 시점에서의 임의의 한 화소와 가장 유사한 화소) 간의 거리를 통해 획득할 수 있다.
실제 영상과 그것의 깊이 정보 맵은 하나의 카메라뿐만 아니라 여러 개의 카메라에서 획득된 영상일 수 있다. 여러 개의 카메라에서 획득된 영상은 독립적으로 부호화될 수 있고, 일반적인 2차원 비디오 부호화/복호화 코덱을 사용하여 부호화/복호화될 수도 있다. 또한, 여러 개의 카메라에서 획득된 영상은 시점 간의 상관성이 존재하므로, 여러 개의 카메라에서 획득된 영상은 부호화 효율을 높이기 위하여 서로 다른 시점들 간의 예측을 사용하여 부호화될 수 있다.
도 3은 영상을 부호화 및 복호화할 때 영상의 분할 구조를 개략적으로 나타내는 도면이다.
영상을 효율적으로 분할하기 위해 부호화 유닛(Coding Unit: CU)별로 부호화 및 복호화를 수행할 수 있다. 유닛은 구문 요소(syntax element)와 영상 샘플들이 포함된 블록을 합쳐서 일컫는 말이다. 유닛이 분할된다는 것은 유닛에 해당하는 블록을 분할한다는 것을 의미할 수 있다.
도 3을 참조하면, 영상(300)을 최대 부호화 유닛(Largest Coding Unit; LCU)(이하, LCU라 함) 단위로 순차적으로 분할한 후, LCU 마다 분할 구조를 결정한다. 본 명세서에서, LCU는 코딩 트리 유닛(Coding Tree Unit, CTU)과 동일한 의미로 사용될 수 있다. 분할 구조는 LCU(310) 내에서 영상을 효율적으로 부호화하기 위한 부호화 유닛(이하, CU라 함)의 분포를 의미하며, 이러한 분포는 하나의 CU를 그 가로 크기 및 세로 크기의 절반으로 감소된 4개의 CU로 분할할지 여부에 따라 결정될 수 있다. 분할된 CU는 동일한 방식으로 분할된 CU에 대해서 그 가로 크기 및 세로 크기가 절반씩 감소된 4개의 CU로 재귀적으로 분할될 수 있다.
이때, CU의 분할은 미리 정의된 깊이까지 재귀적으로 분할될 수 있다. 깊이 정보는 CU의 크기를 나타내는 정보로서, 각 CU마다 저장될 수 있. 예컨대, LCU의 깊이는 0이고, SCU(Smallest Coding Unit)의 깊이는 미리 정의된 최대 깊이일 수 있다. 여기서, LCU는 상술한 바와 같이 최대 크기를 가지는 부호화 유닛이며, SCU(Smallest Coding Unit)는 최소 크기를 가지는 부호화 유닛이다.
LCU(310)로부터 가로 및 세로 크기의 절반으로 분할을 수행할 때마다 CU의 깊이는 1씩 증가한다. 예를 들어, 특정 깊이 L에서 CU의 크기가 2Nx2N라면, 분할이 수행되지 않는 경우에 CU의 크기는 여전히 2Nx2N이며, 분할이 수행되는 경우에 CU의 크기는 NxN이 된다. 이때, NxN 크기 CU의 깊이는 깊이 L+1이 된다. 즉, CU의 크기에 대응하는 N의 크기는 깊이가 1씩 증가할 때마다 절반으로 감소한다.
도 3을 참조하면, 최소 깊이가 0인 LCU의 크기는 64x64 화소들이고, 최대 깊이가 3인 SCU의 크기는 8x8 화소들일 수 있다. 이때, 64x64 화소들의 CU(LCU)의 깊이는 0, 32x32 화소들의 CU의 깊이는 1, 16x16 화소들의 CU의 깊이는 2, 8x8 화소들의 CU(SCU)의 깊이는 3으로 표현될 수 있다.
또한, 특정 CU를 분할할지에 대한 정보는 CU마다 1비트의 분할 정보를 통해 표현될 수 있다. 이 분할 정보는 SCU를 제외한 모든 CU에 포함될 수 있으며, 예컨대 CU를 분할하지 않을 경우에는 분할 정보에 0을 저장할 수 있고, CU를 분할할 경우에는 분할 정보에 1을 저장할 수 있다.
도 4는 부호화 유닛(CU)이 포함할 수 있는 예측 유닛(PU)의 형태를 도시한 것이다.
LCU로부터 분할된 CU 중 더 이상 분할(split)되지 않는 CU는 하나 이상의 예측 유닛으로 분할 또는 파티셔닝(partitioning)될 수 있다.
예측 유닛(이하, PU라 함)은 예측을 수행하는 기본 단위로서, 스킵(skip) 모드, 인터(inter) 모드, 인트라(intra) 모드 중 어느 하나로 부호화 및 복호화되며, 각 모드에 따라서 다양한 형태로 파티션될 수 있다.
도 4를 참조하면, 스킵 모드의 경우, CU의 파티션 없이, CU와 동일한 크기를 갖는 2Nx2N 모드(410)를 지원할 수 있다.
인터 모드의 경우, CU에 대하여 8가지의 파티션된 형태, 예컨대 2Nx2N 모드(410), 2NxN 모드(415), Nx2N 모드(420), NxN 모드(425), 2NxnU 모드(430), 2NxnD 모드(435), nLx2N 모드(440), nRx2N 모드(445)를 지원할 수 있다.
인트라 모드의 경우, CU에 대하여 2Nx2N 모드(410), NxN 모드(425)를 지원할 수 있다.
도 5는 변환 유닛(TU)의 쿼드트리 분할 구조의 일 예를 개략적으로 도시한 것이다.
변환 유닛(Transform Unit, TU)은 CU 내에서 공간변환과 양자화 과정에서 사용되는 기본 단위이다. TU는 정사각형 형태 혹은 직사각형 형태를 가질 수 있으며, TU는 CU 내에 포함될 수 있다. TU의 크기는 CU의 크기와 동일하거나, CU의 크기보다 작을 수 있으며, 하나의 CU는 복수의 서로 다른 크기를 가지는 TU를 포함할 수 있다.
TU는 CU로부터 분할될 수 있으며, TU가 CU로부터 분할될 때, 쿼드트리 분할을 이용할 수 있다. TU가 쿼드트리를 이용하여 CU로부터 분할될 때, 원칙적으로는 재귀적으로 두 번까지 분할되나, 본 명세서에서는 도 5에서 도시한 바와 같이 TU가 CU로부터 재귀적으로(recursively) 세 번 이상 분할되는 것을 권리 범위에서 제외하는 것은 아니다.
도 6는 3차원 비디오 코덱(codec)에서 시점 간 예측(inter view prediction)의 구조를 나타내는 일례다.
시점 1(View 1)과 시점 2(View 2)는 시점 0(View 0)을 참조 영상으로 사용하여 시점 간 예측을 수행할 수 있으며, 부호화 순서는 시점 1(View 1)과 시점 2(View 2)보다 시점 0(View 0)이 먼저 부호화되어야 한다.
이때, 시점 0(View 0)은 다른 시점과 상관없이 독립적으로 부호화될 수 있으므로 독립적인 시점(Independent View)이라고 한다. 반면, 시점 1(View 1)과 시점 2(View 2)는 시점 0(View 0)을 참조 영상으로 사용하여 부호화되므로 의존적인 시점(Dependent View)라고 한다. 독립적인 시점 영상은 일반적인 2차원 비디오 코덱을 사용하여 부호화 될 수 있다. 반면, 의존적인 시점 영상은 시점 간 예측을 수행하여야 하므로, 시점 간 예측 과정이 포함된 3차원 비디오 코덱을 사용하여 부호화될 수 있다.
또한, 시점 1(View 1)과 시점 2(View 2)의 부호화 효율을 증가시키기 위하여 시점 1(View 1)과 시점 2(View 2)는 깊이 정보 맵을 이용하여 부호화될 수 있다. 예를 들어, 실제 영상과 그것의 깊이 정보 맵을 부호화할 때, 실제 영상과 깊이 정보 맵은 서로 독립적으로 부호화 및/또는 복호화될 수 있다. 또는 실제 영상과 깊이 정보 맵을 부호화할 때, 실제 영상과 깊이 정보 맵은 도 7과 같이 서로 의존적으로 부호화 및/또는 복호화될 수 있다.
도 7은 3차원 비디오 인코더 및/또는 디코더에서 실제 영상(texture view)과 깊이 정보 맵(depth view)을 부호화 및/또는 복호화하는 과정을 나타낸 일례다.
도 7을 참조하면, 3차원 비디오 인코더는 실제 영상(texture view)을 부호화하는 실제 영상 인코더(texture encoder)와 깊이 정보 맵(depth view)을 부호화하는 깊이 정보 맵 인코더(depth encoder)를 포함할 수 있다.
이때, 실제 영상 인코더는 깊이 정보 맵 인코더에 의해 부호화된 깊이 정보 맵을 이용하여 실제 영상을 부호화할 수 있다. 반대로, 깊이 정보 맵 인코더는 실제 영상 인코더에 의해 부호화된 실제 영상을 이용하여 깊이 정보 맵을 부호화할 수 있다.
3차원 비디오 디코더는 실제 영상을 복호화하는 실제 영상 디코더(texture decoder)와 깊이 정보 맵을 복호화하는 깊이 정보 맵 디코더(depth decoder)를 포함할 수 있다.
이때, 실제 영상 디코더는 깊이 정보 맵 디코더에 의해 복호화된 깊이 정보 맵을 이용하여 실제 영상을 복호화할 수 있다. 반대로, 깊이 정보 맵 디코더는 실제 영상 디코더에 의해 복호화된 실제 영상을 이용하여 깊이 정보 맵을 복호화할 수 있다.
도 8은 비디오 인코더의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 8은 멀티 뷰 구조에 대해 적용 가능한 비디오 인코더의 일 실시예를 나타내며, 멀티 뷰 구조에 대한 비디오 인코더는 단일 뷰 구조에 대한 비디오 인코더를 확장(extension)하여 구현될 수 있다. 이때, 도 8의 비디오 인코더는 도 7의 실제 영상 인코더 및/또는 깊이 정보 맵 인코더에서 사용될 수 있으며, 인코더는 부호화 장치를 의미할 수 있다.
도 8을 참조하면, 비디오 인코더(800)는 인터 예측부(810), 인트라 예측부(820), 스위치(815), 감산기(825), 변환부(830), 양자화부(840), 엔트로피 부호화부(850), 역양자화부(860), 역변환부(870), 가산기(875), 필터부(880) 및 참조 픽처 버퍼(890)를 포함한다.
비디오 인코더(800)는 입력 영상에 대해 인트라(intra) 모드 또는 인터(inter) 모드로 부호화를 수행하고 비트스트림(bitstream)을 출력할 수 있다.
인트라 예측(intra prediction)은 화면 내 예측(intra picture prediction)을 의미하며, 인터 예측(inter prediction)은 화면 간 (inter picture) 예측 또는 뷰 간 (inter-view) 예측을 의미한다. 인트라 모드인 경우 스위치(815)가 인트라 모드로 전환되고, 인터 모드인 경우 스위치(815)가 인터 모드로 전환된다.
비디오 인코더(800)는 입력 픽처의 블록(현재 블록)에 대한 예측 블록을 생성한 후, 현재 블록과 예측 블록의 차분을 부호화할 수 있다.
인트라 모드인 경우, 인트라 예측부(820)는 현재 블록 주변의 이미 부호화된 블록의 화소값을 참조 화소로 이용할 수 있다. 인트라 예측부(820)는 참조 화소를 이용하여 현재 블록에 대한 예측 샘플들을 생성할 수 있다.
인터 모드인 경우, 인터 예측부(810)는, 참조 픽처 버퍼(890)에 저장되어 있는 참조 픽처에서 입력 블록(현재 블록)에 대응하는 참조 블록을 특정하는 움직임 벡터를 구할 수 있다. 인터 예측부(810)는 움직임 벡터와 참조 픽처 버퍼(890)에 저장되어 있는 참조 픽처를 이용하여 움직임 보상을 수행함으로써 현재 블록에 대한 예측 블록을 생성할 수 있다.
멀티 뷰 구조에서, 인터 모드에서 적용되는 인터 예측은 인터 뷰 예측을 포함할 수 있다. 인터 예측부(810)는 참조 뷰의 픽처를 샘플링하여 인터 뷰 참조 픽처를 구성할 수도 있다. 인터 예측부(810)는 인터 뷰 참조 픽처를 포함하는 참조 픽처 리스트를 이용하여 인터 뷰 예측을 수행할 수 있다. 뷰 간의 참조 관계는 뷰 간의 의존성을 특정하는 정보를 통해 시그널링될 수 있다.
한편, 현재 뷰의 픽처와 참조 뷰의 픽처가 동일 사이즈인 경우에 상기 참조 뷰 픽처에 적용되는 샘플링은 참조 뷰 픽처로부터의 샘플 복사 또는 보간에 의한 참조 샘플의 생성을 의미할 수 있다. 현재 뷰 픽처와 참조 뷰 픽처의 해상도가 상이한 경우에 상기 참조 뷰 픽처에 적용되는 샘플링은 업샘플링 또는 다운샘플링을 의미할 수 있다. 예컨대, 뷰 간 해상도가 다른 경우에는 참조 뷰의 복원된 픽처를 업샘플링하여 인터 뷰 참조 픽처가 구성될 수도 있다.
어떤 뷰의 픽처를 이용하여 인터 뷰 참조 픽처를 구성할 것인지는 부호화 비용(coding cost) 등을 고려하여 결정될 수 있다. 인코더는 인터 뷰 참조 픽처로 사용될 픽처가 속하는 뷰(view)를 특정하는 정보를 복호화 장치로 전송할 수 있다.
또한, 인터 뷰 예측에 있어서 참조되는 뷰, 즉 참조 뷰 내에서 현재 블록의 예측에 이용되는 픽처는 현재 픽처(현재 뷰 내 예측 대상 픽처)와 동일 AU(Access Unit)의 픽처일 수 있다.
감산기(825)는 현재 블록과 예측 블록의 차분에 의해 레지듀얼 블록(residual block, 레지듀얼 신호)을 생성할 수 있다.
변환부(830)는 레지듀얼 블록에 대해 변환(transform)을 수행하여 변환 계수(transform coefficient)를 출력할 수 있다. 변환 생략(transform skip) 모드가 적용되는 경우에, 변환부(830)는 레지듀얼 블록에 대한 변환을 생략할 수도 있다.
양자화부(840)는 변환 계수를 양자화 파라미터에 따라 양자화하여 양자화된 계수(quantized coefficient)를 출력할 수 있다.
엔트로피 부호화부(850)는, 양자화부(840)에서 산출된 값들 또는 부호화 과정에서 산출된 부호화 파라미터 값 등을 확률 분포에 따라 엔트로피 부호화하여 비트스트림을 출력할 수 있다. 엔트로피 부호화부(850)는 비디오의 화소 정보 외에 비디오 디코딩을 위한 정보(예컨대, 신택스 엘리먼트(syntax element) 등)을 엔트로피 부호화 할 수도 있다.
부호화 파라미터는 부호화 및 복호화에 필요한 정보로서, 신택스 엘리먼트와 같이 인코더에서 부호화되어 복호화 장치로 전달되는 정보뿐만 아니라, 부호화 혹은 복호화 과정에서 유추될 수 있는 정보를 포함할 수도 있다.
레지듀얼 신호는 원신호와 예측 신호의 차이를 의미할 수 있고, 또한 원신호와 예측 신호의 차이가 변환(transform)된 형태의 신호 또는 원신호와 예측 신호의 차이가 변환되고 양자화된 형태의 신호를 의미할 수도 있다. 블록 단위에서, 레지듀얼 신호는 레지듀얼 블록이라 할 수 있다.
엔트로피 부호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 부호화 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 부호화를 통해서 영상 부호화의 압축 성능이 높아질 수 있다.
엔트로피 부호화를 위해 지수 골룸(exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding) 또는 CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 부호화 방법이 사용될 수 있다. 예를 들어, 엔트로피 부호화부(850)는 가변 길이 부호화(VLC: Variable Lenghth Coding/Code) 테이블을 이용하여 엔트로피 부호화를 수행할 수 있다. 또한 엔트로피 부호화부(850)는 대상 심볼의 이진화(binarization) 방법 및 대상 심볼/빈(bin)의 확률 모델(probability model)을 도출한 후, 도출된 이진화 방법 또는 확률 모델을 사용하여 엔트로피 부호화를 수행할 수도 있다.
양자화된 계수는 역양자화부(860)에서 역양자화되고 역변환부(870)에서 역변환될 수 있다. 역양자화, 역변환된 계수는 가산기(875)를 통해 예측 블록과 더해지고 복원 블록이 생성될 수 있다.
복원 블록은 필터부(880)를 거치고, 필터부(880)는 디블록킹 필터(deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나 이상을 복원 블록 또는 복원 픽처에 적용할 수 있다. 필터부(880)를 거친 복원 블록은 참조 영상 버퍼(890)에 저장될 수 있다.
도 9은 비디오 디코더의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 9은 멀티 뷰 구조에 대해 적용 가능한 비디오 디코더의 일 실시예를 나타내며, 멀티 뷰 구조에 대한 비디오 디코더는 단일 뷰 구조에 대한 비디오 디코더를 확장(extension)하여 구현될 수 있다.
이때, 도 9의 비디오 디코더는 도 7의 실제 영상 디코더 및/또는 깊이 정보 맵 디코더에서 사용될 수 있다. 설명의 편의를 위해, 본 명세서에서는 ‘복호화’와 ‘디코딩’가 혼용되거나 ‘복호화 장치’와 ‘디코더’가 혼용될 수도 있다.
도 9을 참조하면, 상기 비디오 디코더(900)는 엔트로피 복호화부(910), 역양자화부(920), 역변환부(930), 인트라 예측부(940), 인터 예측부(950), 필터부(960) 및 참조 픽처 버퍼(970)를 포함한다.
비디오 디코더(900)는 인코더에서 출력된 비트스트림을 입력 받아 인트라 모드 또는 인터 모드로 복호화를 수행하고 재구성된 영상, 즉 복원 영상을 출력할 수 있다.
인트라 모드인 경우 스위치가 인트라 예측을 위해 전환되고, 인터 모드인 경우 스위치가 인터 예측을 위해 전환될 수 있다.
비디오 디코더(900)는 입력 받은 비트스트림으로부터 복원된 레지듀얼 블록(residual block)을 얻고 예측 블록을 생성한 후 복원된 레지듀얼 블록과 예측 블록을 더하여 재구성된 블록, 즉 복원 블록을 생성할 수 있다.
엔트로피 복호화부(910)는, 입력된 비트스트림을 확률 분포에 따라 엔트로피 복호화하여, 양자화된 계수(quantized coefficient)와 신택스 엘리먼트 등의 정보를 출력할 수 있다.
양자화된 계수는 역양자화부(920)에서 역양자화되고 역변환부(930)에서 역변환 된다. 양자화된 계수를 역양자화/역변환하여, 복원된 레지듀얼 블록(residual block)이 생성될 수 있다.
인트라 모드인 경우, 인트라 예측부(940)는 현재 블록 주변의 이미 부호화된 블록의 화소값을 이용하여 현재 블록에 대한 예측 블록을 생성할 수 있다.
인터 모드인 경우, 인터 예측부(950)는 움직임 벡터 및 참조 픽처 버퍼(970)에 저장되어 있는 참조 픽처를 이용하여 움직임 보상을 수행함으로써 현재 블록에 대한 예측 블록을 생성할 수 있다.
멀티 뷰 구조의 경우, 인터 모드에서 적용되는 인터 예측은 인터 뷰 예측을 포함할 수 있다. 인터 예측부(950)는 참조 뷰의 픽처를 샘플링하여 인터 뷰 참조 픽처를 구성할 수 있다. 인터 예측부(950)는 인터 뷰 참조 픽처를 포함하는 참조 픽처 리스트를 이용하여 인터 뷰 예측을 수행할 수 있다. 뷰 간의 참조 관계는 뷰 간의 의존성을 특정하는 정보를 통해 시그널링될 수 있다.
한편, 현재 뷰 픽처(현재 픽처)와 참조 뷰 픽처가 동일 사이즈인 경우에 상기 참조 뷰 픽처에 적용되는 샘플링은 참조 뷰 픽처로부터의 샘플 복사 또는 보간에 의한 참조 샘플의 생성을 의미할 수 있다. 현재 뷰 픽처와 참조 뷰 픽처의 해상도가 상이한 경우에 상기 참조 뷰 픽처에 적용되는 샘플링은 업샘플링 또는 다운샘플링을 의미할 수 있다.
예컨대, 뷰 간 해상도가 다른 경우에 뷰 간에 인터 뷰 예측이 적용된다면, 참조 뷰의 복원된 픽처를 업샘플링하여 인터 뷰 참조 픽처가 구성될 수 있다.
이때, 인터 뷰 참조 픽처로 사용될 픽처가 속하는 뷰를 특정하는 정보는 인코더로부터 디코더로 전송될 수 있다.
또한, 인터 뷰 예측에 있어서 참조되는 뷰, 즉 참조 뷰 내에서 현재 블록의 예측에 이용되는 픽처는 현재 픽처(현재 뷰 내 예측 대상 픽처)와 동일 AU(Access Unit)의 픽처일 수 있다.
복원된 레지듀얼 블록과 예측 블록은 가산기(955)에서 더해져서, 복원 블록이 생성된다. 다시 말하면, 레지듀얼 샘플과 예측 샘플이 더해져서 복원된 샘플 또는 복원된 픽처가 생성된다.
복원된 픽처는 필터부(960)에서 필터링 된다. 필터부(960)는 디블록킹 필터, SAO, ALF 중 적어도 하나 이상을 복원 블록 또는 복원 픽처에 적용할 수 있다. 필터부(960)는 재구성된(modified) 혹은 필터링된(filtered) 복원 픽처(reconstructed picture)를 출력한다. 복원 영상은 참조 픽처 버퍼(970)에 저장되어 인터 예측에 사용될 수 있다.
도 8과 도 9에서는 각각의 모듈들이 서로 다른 기능을 수행하는 것으로 설명하였으나, 본 발명은 이에 한정되지 않으며, 하나의 모듈에서 둘 이상의 기능을 수행할 있다. 예컨대, 도 8과 도 9에서 인트라 예측부와 인터 예측부의 동작은 하나의 모듈(예측부)에서 수행될 수도 있다.
한편, 도 8 및 도 9에서는 하나의 인코더/디코더가 멀티 뷰에 대한 부호화/복호화를 모두 처리하는 것으로 설명하였으나, 이는 설명의 편의를 위한 것으로서, 인코더/디코더는 뷰별로 구성될 수도 있다.
이 경우, 현재 뷰의 인코더/디코더는 다른 뷰의 정보를 이용하여 현재 뷰의 부호화/복호화를 수행할 수 있다. 예컨대, 현재 뷰의 예측부(인터 예측부)는 다른 뷰의 픽셀 정보 또는 복원된 픽처 정보를 이용하여 현재 블록에 대한 인트라 예측 또는 인터 예측을 수행할 수도 있다.
여기서는, 뷰 간의 예측만을 예로서 설명하였으나, 인코더/디코더는 뷰별로 구성되든, 하나의 장치가 멀티 뷰를 처리하든 상관없이, 다른 뷰의 정보를 이용하여 현재 레이어에 대한 부호화/복호화를 수행할 수 있다.
본 발명에서 뷰에 관한 설명은 스케일러빌러티를 지원하는 레이어(layer)에 대해서도 동일하게 적용될 수 있다. 예컨대, 본 발명에서 뷰(view)는 레이어(layer)일 수도 있다.
도 10은 3차원 비디오 코덱에 대한 예측 구조의 일례를 나타내는 도면이다. 설명의 편의상 도 10에서는 3대의 카메라에서 획득한 실제 영상과 실제 영상에 대응되는 깊이 정보 맵을 부호화하기 위한 예측 구조를 나타낸다.
도 10에서는 3대의 카메라에서 획득된 3개의 실제 영상은 시점(view)에 따라 T0, T1, T2로 나타내었고, 실제 영상에 대응되는 3개의 깊이 정보 맵은 시점(view)에 따라 각각 D0, D1, D2로 나타내었다. 여기서, T0와 D0는 시점 0(View 0)에서 획득한 영상이고, T1와 D1는 시점 1(View 1)에서 획득한 영상이며, T2와 D2는 시점 2(View 2)에서 획득한 영상이다. 이때, 도 10에 도시된 사각형은 영상(픽처)를 나타낸다.
각 영상(픽처)는 부호화/복호화 타입에 따라 I 픽처(Intra Picture), P 픽처(Uni-prediction Picture), B 픽처(Bi-prediction Picture)로 나뉘어지며, 각 픽처는 각 픽처의 부호화/복호화 타입에 따라 부호화/복호화될 수 있다. I 픽처에서는 인터 예측 없이 영상 자체를 부호화하고, P 픽처에서는 단방향에 존재하는 참조 영상만을 이용하여 인터 예측을 하며, B 픽처에서는 양방향에 존재하는 참조 영상을 이용하여 인터 예측을 수행할 수 있다. 이때, 도 10의 화살표는 예측 방향을 나타낸다. 즉, 예측 방향에 따라 실제 영상과 그것의 깊이 정보 맵은 서로 의존적으로 부호화/복호화될 수 있다.
인터 예측을 통해 영상의 부호화/복호화를 수행하기 위해서는 현재 블록의 움직임 정보가 필요하다. 현재 불륵의 움직임 정보를 유추하는 방법으로는 현재 블록과 인접한 블록의 움직임 정보를 이용하는 방법, 동일한 시점 내에서 시간적 상관성을 이용하는 방법, 또는 인접한 시점에서 시점 간 상관성을 이용하는 방법이 있으며, 상술한 인터 예측 방법은 한 픽처에서 혼용되어 사용될 수 있다. 여기서, 현재 블록은 예측이 수행되는 블록을 말한다. 움직임 정보는 움직임 벡터, 참조 영상 번호 및/또는 예측 방향(예컨대, 단방향 예측인지 양방향 예측인지, 시간적 상관성을 이용하는지, 또는 시점 간 상관성을 이용하는지 여부 등)을 의미할 수도 있다.
이때, 예측 방향은 참조 픽쳐 목록(Reference Picture List: RefPicList)의 사용에 따라 크게 단방향 예측과 양방향 예측으로 나누어 질 수 있다. 단방향 예측은 순 방향 참조 픽쳐 목록 (LIST 0, L0)을 사용하는 순방향 예측(Pred_L0: Prediction L0)과 역 방향 참조 픽쳐 목록 (LIST 1, L1)을 사용하는 역방향 예측(Pred_L1: Prediction L1)으로 구분된다. 또한, 양방향 예측(Pred_BI: Prediction BI)은 순방향 참조 픽쳐 목록(LIST 0)과 역방향 참조 픽쳐 목록(LIST 1)을 모두 사용하여, 순방향 예측과 역방향 예측이 모두 존재하는 것을 말할 수 있으며, 순방향 참조 픽쳐 목록 (LIST 0)을 역방향 참조 픽쳐 목록 (LIST 1)에 복사하여 순방향 예측이 두 개 존재하는 경우도 양 방향 예측에 포함할 수 있다.
예측 방향 여부는 predFlagL0, predFlagL1를 사용하여 정의할 수 있다. 이때, predFlagL0는 순방향 참조 픽쳐 목록(List 0)의 사용 여부를 지시하는 지시자이며, predFlagL1는 역방향 참조 픽쳐 목록(List 1)의 사용 여부를 지시하는 지시자에 해당된다. 예컨대, 단방향 예측이고 순방향 예측일 경우에는 predFlagL0가 '1'이 되고 predFlagL1은 '0'이 될 수 있고, 단방향 예측이고 역방향 예측일 경우에는 predFlagL0가 '0'이 되고 predFlagL1이 '1'이 될 수 있으며, 양방향 예측일 경우에는 predFlagL0가 '1'이 되고 predFlagL1이 '1'이 될 수 있다.
움직임 예측 방법은 1) 움직임 벡터 예측기(Motion Vector Predictor)와 차분 움직임 벡터(Motion Vector Difference)를 이용하는 방법과, 2) 움직임 병합을 사용하는지의 여부를 나타내는 플래그(merge_flag)와 어떤 위치에 있는 움직임 상속받을 것인지에 대한 정보인 인덱스(merge_idx)를 이용하는 병합 움직임 유도 즉, 머지 방법이 있다. 이하, 머지에 관한 구체적인 내용을 후술하도록 한다.
도 11은 현재 블록에 대한 머지 후보 리스트(merge candidate list)를 구성하는 데 사용되는 주변 블록들을 나타낸 일례다.
머지 모드(merge mode)는 인터 예측을 수행하는 방법 중 하나이며, 머지 모드에서는 현재 블록의 움직임 정보(예를 들어, 움직임 벡터, 참조 픽처 리스트, 참조 픽처 인덱스 중 적어도 하나)로서 현재 블록의 주변 블록의 움직임 정보를 이용할 수 있다. 이때, 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 사용하는 것을 머징(merging), 움직임 병합(motion merging) 또는 병합 움직임 (merging motion)이라고 한다.
머지 모드에서는 부호화 유닛(Coding Unit: CU, 이하 ‘CU’라 함) 단위의 병합 움직임(merging)과 예측 유닛(Prediction Unit: PU, 이하 ‘PU’라 함) 단위의 병합 움직임이 가능하다.
블록 단위(예컨대, CU 또는 PU)(이하, 설명의 편의를 위해 ‘블록’이라 함) 로 병합 움직임을 수행하는 경우에는, 블록 파티션(partition)별로 병합 움직임을 수행할지 여부에 관한 정보와 현재 블록에 인접한 주변 블록 중 어떤 블록과 병합 움직임을 할 것인지에 대한 정보가 필요하다.
병합 움직임을 수행하기 위해서 머지 후보 리스트(merging candidate list)를 구성할 수 있다.
머지 후보 리스트는 움직임 정보들의 리스트를 나타내며, 머지 모드가 수행되기 전에 생성될 수 있다. 여기서, 머지 후보 리스트의 움직임 정보는 현재 블록에 인접한 주변 블록의 움직임 정보이거나, 이미 머지 후보 리스트에 존재하는 움직임 정보들을 조합하여 만든 새로운 움직임 정보일 수도 있다. 주변 블록의 움직임 정보(예컨대, 움직임 벡터 및/또는 참조 픽처 인덱스)는 주변 블록에 의해 특정되는 혹은 주변 블록에 저장된(주변 블록의 디코딩에 사용된) 움직임 정보일 수 있다.
이때, 주변 블록은 도 11에 도시된 바와 같이, 현재 블록과 공간적(spatial)으로 인접하여 위치한 주변 블록(neighboring block)(A, B, C, D, E)과, 현재 블록과 시간적(temporal)으로 대응하는 동일 위치의 후보 블록(co-located block)(H 혹은 M)을 포함할 수 있다. 동일 위치의 후보 블록은 현재 블록을 포함하는 현재 픽처와 시간적으로 대응하는 동일 위치의 픽처(co-located picture) 내 대응 위치의 블록을 말한다. 동일 위치의 픽처 내 H 블록이 가용하면 H 블록을 동일 위치의 후보 블록으로 결정하고, H 블록이 가용하지 않으면 동일 위치의 픽처 내 M 블록을 동일 위치의 후보 블록으로 결정할 수 있다.
머지 후보 리스트의 구성시, 주변 블록(A, B, C, D, E) 및 동일 위치의 후보 블록(H 혹은 M)의 움직임 정보가 현재 블록의 머지 후보 리스트를 구성하는 머지 후보(merge candidate)로 이용될 수 있는지 여부가 판단된다. 즉, 현재 블록의 인터 예측에 이용 가능한 블록의 움직임 정보가 머지 후보로서 머지 후보 리스트에 추가될 수 있다.
예컨대, X 블록에 대한 머지 후보 리스트를 구성하는 방법으로, 1) 우선 주변 블록 A가 사용 가능한 경우, 주변 블록 A를 머지 후보 리스트에 포함한다. 2) 이후, 주변 블록 B의 움직임 정보가 주변 블록 A의 움직임 정보와 동일하지 않을 경우에만 주변 블록 B를 머지 후보 리스트에 포함한다. 3) 동일한 방법으로 주변 블록 C의 움직임 정보가 주변 블록 B의 움직임 정보와는 다를 경우에만 주변 블록 C를 머지 후보 리스트에 포함하고, 4) 주변 블록 D의 움직임 정보가 주변 블록 C의 움직임 정보와는 다를 경우에만 주변 블록 D를 머지 후보 리스트에 포함한다. 아울러, 5) 주변 블록 E의 움직임 정보가 주변 블록 D의 움직임 정보와 다를 경우에만 주변 블록 E를 머지 후보 리스트에 포함하고, 6) 마지막으로, 머지 후보 리스트에는 주변 블록 H(혹은 M)를 포함시킨다. 즉, 각각의 주변 블록은 A→B→C→D→E→H(혹은 M) 블록 순서로 머지 후보 리스트에 추가될 수 있다. 여기서, 동일한 움직임 정보는 동일한 움직임 벡터, 동일한 참조 픽쳐, 및 동일한 예측 방향(단방향, 양방향)을 사용하는 것을 의미할 수 있다.
여기서는, 주변 블록을 머지 후보로서 머지 후보 리스트에 추가한다는 표현과 주변 블록의 움직임 정보를 머지 후보로서 머지 후보 리스트에 추가한다는 표현을 혼용하였으나, 이는 설명의 편의를 위한 것으로서, 두 표현은 실질적으로 상이하지 않다. 예컨대, 머지 후보로서의 주변 블록은 해당 블록의 움직임 정보를 의미한다고 할 수 있다.
도 12는 인접한 시점의 움직임 정보를 이용하여, 현재 블록의 움직임 정보를 유도하는 과정의 일례를 나타내는 도면이다.
도 12에서는 설명의 편의를 위하여 하나의 인접한 시점만을 이용하여 현재 블록의 움직임 정보를 유도하는 과정을 예시로 들고 있으나, 인접한 시점은 2개 이상일 수도 있다.
도 12을 참조하면, 3차원 비디오 시스템에서는 움직임 정보를 효율적으로 부호화/복호화 하기 위하여, 인접한 시점의 움직임 정보를 이용할 수 있다. 구체적으로, 도 12의 현재 블록(현재 위치 X에 대한 블록)은 현재 블록에 대한 움직임 정보를 유도하기 위하여, 인접한 시점에 위치한 대상 블록(참조 위치 XR)을 찾는다. 이때, 인접한 시점에 위치한 대상 블록은 현재 블록에 대응하는 블록을 의미하며, 현재 시점에서의 현재 픽처와 참조 시점에서의 현재 픽처는 카메라 위치의 차이만이 있을 뿐이므로, 상술한 바와 같이 변이 벡터(Disparity Vector, DV)를 이용하여 인접한 시점에 위치한 대상 블록을 유도할 수 있다.
도 13는 하나의 예측 유닛(Prediction Unit, PU)이 여러 개의 서브 예측 유닛(Sub-Prediction Unit)으로 나누어지는 일례를 나타내는 도면이다.
도 13에서는 64x64 크기를 가지는 예측 유닛(Prediction Unit, PU)이 8x8 크기의 서브 예측 유닛으로 나누어지는 일례를 나타낸다. 도 13에서는 설명의 편의를 위하여, 예측 유닛이 64x64의 크기를 가지는 것으로 설명하나, 예측 유닛은 64x64 크기뿐만 아니라, 32x32, 16x16, 8x8, 4x4 등의 크기를 가질 수도 있다. 3차원 비디오 시스템에서는 하나의 예측 유닛이 여러 개의 서브 예측 유닛(Sub-Prediction Unit)으로 분할될 수 있다. 이때, 변이 벡터를 이용한 움직임 정보의 유도는 서브 예측 유닛 단위로 수행된다. 서브 예측 유닛의 크기는 기 설정된 크기(예컨대, 4x4, 8x8, 16x16 등)를 가질 수 있으며, 서브 예측 유닛의 크기는 부호화 시에 지정될 수 있다. 서브 예측 유닛의 크기에 대한 정보는 비디오 파라미터 세트 확장 신텍스(Video Parameter Set Extension syntax, VPS Extension syntax) 내에 포함되어 시그널링될 수 있다.
도 14은 참조 블록을 이용하여 현재 블록의 움직임 정보를 유도하는 과정의 일례를 나타내는 도면이다.
현재 블록에 대한 움직임 정보의 유도 과정은 참조 블록에 존재하는 움직임 정보를 현재 블록의 움직임 정보로 설정하는 것을 의미한다. 하지만, 3차원 비디오 시스템에서는 움직임 정보를 효율적으로 부호화/복호화 하기 위하여, 현재 시점(view)에서 현재 픽쳐에 위치한 현재 블록(X)에 대해 각각의 서브 예측 유닛 단위로 움직임 정보를 유도할 수 있다.
즉, 3차원 비디오 시스템에서는 참조 블록(XR)의 서브 예측 유닛에 존재하는 움직임 정보를 현재 블록(X)의 서브 예측 유닛에 대한 움직임 정보로 설정할 수 있다. 이때, 참조 블록(XR)은 참조 시점에서의 현재 픽쳐에 위치한 참조 블록(XR)을 의미할 수 있으며, 구체적인 움직임 정보 유도 과정은 후술하도록 한다.
인터 예측부는 참조 시점의 유도된 참조 블록 내에서 서브 예측 유닛 단위로 움직임 정보를 유도할 수 있다. 인터 예측부가 참조 시점의 유도된 참조 블록 내에서 서브 예측 유닛 단위로 움직임 정보를 가져올 때 모든 서브 예측 유닛이 움직임 정보를 가지고 있는 것은 아니다. 즉, 참조 블록 내에서는 움직임 정보를 가져올 수 없는 부분이 있다. 참조 블록 내에서 움직임 정보를 가져올 수 없는 경우를 보완하기 위하여, 인터 예측부는 참조 블록의 중앙에 위치한 서브 예측 유닛에 사용 가능한 움직임 정보가 존재하는지 검사한다.
참조 블록의 중앙에 위치한 서브 예측 유닛에 사용 가능한 움직임 정보가 존재하는 경우, 인터 예측부는 참조 블록의 중앙에 위치한 서브 예측 유닛에 존재하는 움직임 정보를 저장 공간에 저장하며, 저장 공간은 비디오 부호화/복호화 장치 외에 존재하는 별도의 저장 장치를 의미할 수 있고, 비디오 부호화/복호화 장치 내부에 위치할 수도 있다. 또한, 저장 공간은 메모리, 프로세서 등을 의미할 수 있으며, 저장 공간은 물리적 공간이 아닌 가상의 즉, 논리적 저장 공간을 의미할 수도 있다. 이때, 저장 공간에 저장된 움직임 정보는 초기 움직임 정보를 의미할 수 있다.
인터 예측부가 현재 블록의 서브 예측 유닛에 대해 움직임 정보를 유도할 때, 현재 블록의 서브 예측 유닛에 대응되는 참조 블록의 서브 예측 유닛에 움직임 정보가 존재하지 않는 경우에는, 상술한 초기 움직임 정보를 현재 블록의 서브 예측 유닛에 대한 움직임 정보로 사용할 수 있다. 만약, 참조 블록의 중앙에 위치한 서브 예측 유닛에 사용 가능한 움직임 정보가 존재하지 않는 경우, 인터 예측부는 시간적 시점간 움직임 정보 예측은 사용하지 않을 수 있다. 이때, 움직임 정보는 움직임 병합 후보 즉, 머지 후보로 사용될 수 있다.
인터 예측부가 깊이 맵을 부호화 할 때에는 현재 블록에 상응하는 텍스처 블록으로부터 움직임 정보를 유도할 수 있다. 또한, 인터 예측부는 변이 벡터(Disparity vector) 자체를 움직임 정보로 사용할 수 있으며, 인터 예측부는 시점 합성 예측(View-Synthesis Prediction, VSP) 수행 여부를 움직임 병합 후보로 사용할 수 있다. 아울러, 인터 예측부는 변이 벡터에 임의 값을 더하여 수정한 수정 변이 벡터(Shifted Disparity vector)를 움직임 병합 후보로 사용할 수도 있다.
움직임 병합 후보 즉 머지 후보는 동시에 여러 개의 후보들이 사용될 수 있으므로, 후보들 간의 우선 순위가 존재한다. 우선 순위는 통계적으로 부호화 효율이 높은 후보들 순으로 나열 될 수 있다. 인터 예측부는 움직임 사용 가능한 후보들 중 현재 블록의 움직임 병합에 최종적으로 사용할 후보를 결정하기 위해, 움직임 병합 후보 리스트(Merge list)에 우선 순위가 높은 순으로, 사용 가능한 후보들을 삽입한 후, 율 왜곡 최적화(Rate-Distortion Optimization, RDO) 결과가 가장 좋은 후보의 인덱스를 부호화 한다. 여기서 인덱스는 움직임 병합 후보 리스트 내에서 해당 후보의 위치를 의미한다.
도 15는 예측 유닛과 수정 변이 벡터를 포함하고 있는 주변 블록의 일례를 도시한 것이다.
도 15를 참조하면, X는 현재 예측 유닛(Current PU)를 의미하며, A0, A1, B0, B1, B2는 머지를 수행할 때, 후보로 사용되는 주변 블록을 의미한다. 아울러, DV_A1, DV_B0, DV_B2는 주변 블록에 포함돼 있는 수정 변이 벡터를 의미한다.
현재 3차원 비디오 부호화 방법에서 사용되는 수정 변이 벡터(Shifted Disparity Vector)는 변이 벡터의 수평 성분 또는 수직 성분에 임의 값을 더하여 만든 벡터로, 병합 움직임 후보로 사용되고 있다. 수정 변이 벡터는 현재 부호화 할 블록과 공간적으로 인접하는 블록들(Spatial neighboring blocks) 중, 사용 가능하면서 변이 벡터를 보유하고 있는 블록의 변이 벡터에 임의 값을 더하는 방식으로 유도된다. 도 15는 수정 변이 벡터를 유도할 수 있는 현재 블록의 주변 블록을 도시한 일례이다. 음영으로 표시된 주변 블록들(A1, B0, B1, B2)은 사용 가능한 블록들이며, 음영으로 표시되지 않은 주변 블록 A0은 병합 움직임을 유도할 수 없어서 사용할 수 없는 블록이며, 병합 움직임을 유도할 수 없어서 사용할 수 없는 블록의 일례로, 인트라 모드로 부호화 된 블록이 있다.
도 15의 일례에서는 현재 블록 주변의 사용 가능한 블록들 중 A1, B0, B2 블록만이 변이 벡터를 보유하고 있으며, 이 블록들 중 가장 우선순위가 높은 블록이 보유한 변이 벡터에 임의 값을 더하여 최종의 수정 변이 벡터가 계산된다.
도 16은 수정 변이 벡터를 유도하는 방법의 일례에 관한 순서도다.
도 16을 참조하면, 현재 블록 X의 주변 블록들이 변이 벡터를 보유하고 있음을 알 수 있는 방법은 주변 블록이 VSP(시점 합성 예측) 모드로 부호화 되었는가를 확인하여, VSP가 사용되었다면 해당 주변 블록이 보유하고 있는 움직임 벡터가 변이 벡터인 것으로 간주할 수 있다. 여기서, VSP란 가상의 시점 영상을 생성하여 블록 예측을 하는 방법으로, VSP를 사용한 블록은 변이 벡터를 보유하게 된다.
도 16에서의 수정 변이 벡터를 유도하는 방법에 관해 보다 구체적으로 설명하면, 우선 인터 예측부는 초기화를 수행한다(S1600).
인터 예측부는 병합 후보 리스트 내의 i 번째 후보가 VSP를 사용하는지 여부를 판단한다(S1610, S1620). 이때, 인터 예측부는 병합 후보 리스트 내의 인덱스 값이 0(즉, i=0)인 머지 후보를 검색할 수 있다.
인터 예측부는 병합 후보 리스트 내의 i 번째 후보가 VSP를 사용하는 경우, I 번째 후보의 변이 벡터에 임의의 값을 더하여 수정 변이 벡터를 유도한다(S1650).
인터 예측부가 병합 후보 리스트 내의 i 번째 후보가 VSP를 사용하는지 여부를 판단하는 단계(S1610, S1620)에서 병합 후보 리스트 내의 i 번째 후보가 VSP를 사용하지 않는 경우, 인터 예측부는 병합 후보 리스트 내의 i 번째 후보가 움직임 병합 후보 리스트 내의 마지막 후보인지 여부를 판단한다(S1630).
이때, 병합 후보 내의 i 번째 후보가 움직임 병합 후보 리스트 내의 마지막 후보가 아닌 경우, 인터 예측부는 초기화를 다시 수행한다(S1640). 이후, 인터 예측부는 병합 후보 리스트 내의 i 번째 후보가 VSP를 사용하는지 여부에 대해 판단하며(S1610), 상술한 바와 같이 S1620 내지 S1650 과정을 수행한다.
상술한 과정에서는 인터 예측부가 수정 변이 벡터를 유도하기 위하여, 현재 블록의 사용 가능한 주변 블록들을 모두 확인해야 하는데, 통상적으로 최대 5회의 탐색이 필요하다. 수정 변이 벡터 유도 과정은 병합 움직임 리스트를 구성하기 위하여 PU 마다 매번 상술한 유도 과정을 수행해야 하며, PU 마다 상술한 유도 과정을 수행하는 것은 높은 외부메모리 접근과 계산 복잡도를 가진다.
따라서, 이하에서는 외부 메모리 접근과 계산 복잡도를 낮추기 위한 방법을 추가적으로 제안한다.
도 17은 본 발명의 일 실시예에 따른 인터 예측부에서의 수정 변이 벡터 유도 방법에 관한 순서도이다.
도 17에 따르면, 인터 예측부는 수정 변이 벡터를 유도하기 위하여 병합 움직임 후보 리스트 내의 모든 공간적으로 인접한 블록들을 탐색하지 않고, 가장 우선 순위가 높은 인접 블록만을 탐색한다.
인터 예측부는 가장 우선순위가 높은 공간적 움직임 후보만을 탐색함으로써 수정 변이 벡터 유도 과정의 복잡도를 간소화시킬 수 있다. 통상적으로, 병합 움직임 후보 리스트에 삽입하기 위한 움직임 후보들 간에는 우선 위가 존재한다. 우선 순위가 낮은 후보들이 보유한 변이 벡터들은 현재 블록의 변이 벡터와 상관성이 떨어지므로 우선 순위가 가장 높은 후보만을 탐색하여도 부호화 효율에는 영향이 없다.
병합 움직임 후보 리스트에 삽입하기 위한 움직임 후보는 모션 파라미터 상속(Motion Parameter Inheritance, MPI), 인터 뷰 머지 후보(inter-view merging candidate, IvMC), A1, B1, B0, 인터 뷰 변이 벡터 후보(inter-view disparity vector candidate, IvDC), 뷰 합성 예측(View synthesis prediction, VSP), A0, B2, 쉬프트 인터 뷰(ShiftIV), Col, Bi 및 Zero 후보일 수 있다. 이때, MPI는 상술한 실제 영상의 움직임 정보를 상속하는 움직임 정보를 의미하고, IvMC는 시점 간 머지를 이용하는 움직임 정보를 의미하며, A1은 상술한 바와 같이 예측 대상 블록의 좌측에 위치한 블록의 움직임 정보를 의미한다. 또한, B1은 상술한 바와 같이 예측 대상 블록의 상측에 위치한 블록의 움직임 정보를 의미하고, B0는 상술한 바와 같이 예측 대상 블록의 우상측에 위치한 블록의 움직임 정보를 의미하며, IvDC는 상술한 변이 벡터를 이용(즉, 시차를 이용)하여 유도된 움직임 정보를 의미한다. 아울러, VSP는 시점을 합성하여 유도한 움직임 정보를 의미하고, A0은 상술한 바와 같이 예측 대상 블록의 좌하측에 위치한 블록의 움직임 정보를 의미하며, B2는 상술한 바와 같이 예측 대상 블록의 좌상측에 위치한 블록의 움직임 정보를 의미하고, ShiftIV는 보정된 시차를 이용하여 유도된 움직임 정보를 의미한다. Col은 상술한 바와 같이 현재 블록을 포함하는 현재 픽처와 시간적으로 대응하는 동일 위치의 픽처(co-located picture) 내 대응 위치의 블록을 통해 유도된 움직임 정보이고, Bi는 양방향을 이용하여 유도된 움직임 후보를 의미하며, Zero는 영 벡터를 의미한다.
이때, 3차원 비디오 부호화/복호화에서 공간적 움직임 후보(Spatial merging candidate)들의 우선 순위는 예컨대, A1(좌), B1(상), B0(우상), A0(좌하), B2(좌상) 순서로 우선 순위가 높을 수 있으며, 본 움직임 후보의 우선 순위는 단순히 일례에 불과하다. 즉, 3차원 비디오 부호화/복호화에서 움직임 후보의 우선 순위는 상술한 바와는 달라질 수도 있다.
도 17에서의 수정 변이 벡터가 유도되는 방법에 대해 보다 더 구체적으로 설명하면, 우선, 인터 예측부는 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한지 여부에 대해 판단한다(S1700). 이때, 가장 높은 우선 순위를 가지는 움직임 후보는 상술한 모션 파라미터 상속(Motion Parameter Inheritance, MPI), 인터 뷰 머지 후보(inter-view merging candidate, IvMC), A1, B1, B0, 인터 뷰 변이 벡터 후보(inter-view disparity vector candidate, IvDC), 뷰 합성 예측(View synthesis prediction, VSP), A0, B2, 쉬프트 인터 뷰(ShiftIV), Col, Bi 및 Zero 후보 중 어느 하나일 수 있다.
가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한 경우, 인터 예측부는 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 보유하고 있는지를 판단한다(S1710).
이때, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 보유하고 있는 경우, 인터 예측부는 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보의 변이 벡터에 임의의 값을 더하여 수정 변이 벡터를 유도한다(S1720).
도 18은 본 발명의 다른 실시예에 따른 인터 예측부에서의 수정 변이 벡터 유도 방법에 관한 순서도이다.
도 18에 따르면, 인터 예측부는 A1 후보가 사용 가능한지 여부에 대해 판단한다(S1800). 이때, 인터 예측부가 A1 후보가 사용 가능한 후보인지 여부에 대해 판단하는 구체적인 내용은 상술한 바와 같다.
A1 후보가 사용 가능한 경우, 인터 예측부는 A1 후보가 변이 벡터를 보유했는지 여부에 대해 판단한다(S1810). 이때, 인터 예측부가 A1 후보가 변이 벡터를 보유했는지 여부에 대해 판단하는 구체적인 내용은 상술한 바와 같다.
A1 후보가 변이 벡터를 보유한 경우, 인터 예측부는 A1 후보가 보유한 변이 벡터에 임의의 값을 더하여 수정 변이 벡터를 유도한다.
인터 예측부는 수정 변이 벡터 유도 방법에서 가장 우선 순위가 높은 공간적 움직임 후보뿐 아니라 그보다 우선순위가 낮은 임의 개수의 공간적 움직임 후보들을 탐색할 수도 있다. 이하, 인터 예측부가 가장 우선 순위가 높은 공간적 움직임 후보뿐 아니라 그보다 우선순위가 낮은 임의 개수의 공간적 움직임 후보들을 탐색하여 수정 변이 벡터 유도를 하는 방법에 대해 설명하도록 한다.
도 19는 본 발명의 또 다른 실시예에 따른 인터 예측부에서의 수정 변이 벡터 유도 방법에 관한 순서도이다.
도 19에 따르면, 인터 예측부는 우선 순위가 높은 순서대로 임의 개수(max)만큼의 공간적으로 인접한 주변 블록만을 탐색할 수 있다. 상술한 방법과 마찬가지로, 인터 예측부가 모든 주변 블록을 탐색하지 않으므로, 임의 개수를 몇으로 설정하는가에 따라 유동적으로 복잡도가 간소화될 수 있다.
도 19에 따른 인터 예측부에서의 수정 변이 벡터 유도 방법을 보다 더 구체적으로 설명하면, 우선, 인터 예측부는 초기값을 설정한다(S1900). 이때, 설정되는 초기 값은 병합 움직임 후보 즉, 머지 후보의 인덱스 및/또는 인터 예측부가 탐색할 주변 블록의 개수일 수 있다.
인터 예측부는 i 번째 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한지에 대해 판단한다(S1910).
i 번째 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한 움직임 후보인 경우, 인터 예측부는 i 번째 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 보유하였는지 여부에 대해 판단한다(S1920).
i 번째 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 보유한 경우, 인터 예측부는 i 번째 우선 순위를 가지는 공간적 병합 움직임 후보의 변이 벡터에 임의의 값을 더하여 수정 변이 벡터를 유도한다(S1930).
만약, 단계 S1910에서 i 번째 우선 순위를 가지는 공간적 병합 움직임 후보가 사용하지 않거나, 또는 단계 S1920에서 i 번째 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 보유하지 않은 경우에는 인터 예측부는 i가 max값 미만인지 여부에 대해 판단한다(S1950).
이때, 인터 예측부는 i가 max값 미만인 경우, i 값을 하나 증가(즉, i=i+1)시킨다(S1940).
도 20은 본 발명의 또 다른 실시예에 따른 인터 예측부에서의 수정 변이 벡터 유도 방법에 관한 순서도이다.
도 20에 따르면, max가 1로 설정되었으므로, 인터 예측부는 우선 순위가 0번째와 1번째인 A1(좌), B1(상)의 주변 블록만을 탐색한다.
도 20에 따른 인터 예측부에서의 수정 변이 벡터 유도 방법을 보다 더 구체적으로 설명하면, 우선, 인터 예측부는 초기값을 설정한다(S2000). 이때, 설정되는 초기 값은 병합 움직임 후보 즉, 머지 후보의 인덱스 및/또는 인터 예측부가 탐색할 주변 블록의 개수일 수 있으며, 도 20에서는 max가 1로 설정되었으므로, 인터 예측부가 탐색할 주변 블록의 개수는 2개일 수 있다. 이때, 인터 예측부가 탐색하는 주변 블록은 A1(좌), B1(상)일 수 있다.
인터 예측부는 i 번째 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한지에 대해 판단한다(S2010).
i 번째 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한 움직임 후보인 경우, 인터 예측부는 i 번째 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 보유하였는지 여부에 대해 판단한다(S2020).
i 번째 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 보유한 경우, 인터 예측부는 i 번째 우선 순위를 가지는 공간적 병합 움직임 후보의 변이 벡터에 임의의 값을 더하여 수정 변이 벡터를 유도한다(S2030).
만약, 단계 S2010에서 i 번째 우선 순위를 가지는 공간적 병합 움직임 후보가 사용하지 않거나, 또는 단계 S2020에서 i 번째 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 보유하지 않은 경우에는 인터 예측부는 i가 max값 미만인지 여부에 대해 판단한다(S2050).
이때, 인터 예측부는 i가 max값 미만인 경우, i 값을 하나 증가(즉, i=i+1)시킨다(S2040).
도 21은 본 발명의 일 실시예에 따른 인터 예측부에서의 수정 변이 벡터 유도 장치의 구조를 개략적으로 도시한 블록도이다.
도 21을 참조하면, 인터 예측부(2100)는 사용 가능 판별부(2120) 및 변이 벡터 수정부(2130)를 포함할 수 있다. 아울러, 초기 입력은 우선 순위가 가장 높은 공간적으로 인접하는 주변 블록이며, 출력은 수정 변이 벡터이다.
사용가능 판별부(2120)는 우선 순위가 가장 높은 주변 블록이 변이 벡터를 보유하하고 있는지를 판단하여, 우선 순위가 가장 높은 주변 블록이 수정 변이 벡터의 유도에 사용 가능하지를 판별한다. 이때, 사용 가능 판별부(2120)가 우선 순위가 가장 높은 주변 블록이 수정 변이 벡터의 유도에 사용 가능한지 판단하는 보다 구체적인 내용은 상술한 바와 같다.
변이 벡터 수정부(2130)은 주변 블록으로부터 유도된 변이 벡터에 임의의 값을 더하여 수정 변이 벡터를 생성하는 기능을 한다. 이때, 변이 벡터 수정부(2130)가 수정 변이 벡터를 생성하는 보다 구체적인 내용은 상술한 바와 같다.
도 22는 본 발명의 다른 실시예에 따른 인터 예측부에서의 수정 변이 벡터 유도 장치의 구조를 개략적으로 도시한 블록도이다.
도 22를 참조하면, 인터 예측부(2200) 블록 탐색부(2210) 및 변이 벡터 수정부(2230)를 포함할 수 있으며, 블록 탐색부(2210)는 사용 가능 판별부(2220)를 포함할 수 있다.
블록 탐색부(2210)는 우선 순위가 높은 순으로 임의 개수의 주변 블록만을 탐색할 수 있으며, 블록 탐색부로부터 출력 된 선택 블록은 변이 벡터 수정부(2230)의 입력이 된다. 이때, 블록 탐색부(2210)의 구체적인 내용은 상술한 바와 같다.
사용가능 판별부(2220)는 우선 순위가 가장 높은 주변 블록이 변이 벡터를 보유하하고 있는지를 판단하여, 우선 순위가 가장 높은 주변 블록이 수정 변이 벡터의 유도에 사용 가능하지를 판별한다. 이때, 사용 가능 판별부(2220)가 우선 순위가 가장 높은 주변 블록이 수정 변이 벡터의 유도에 사용 가능한지 판단하는 보다 구체적인 내용은 상술한 바와 같다.
변이 벡터 수정부(2230)은 주변 블록으로부터 유도된 변이 벡터에 임의의 값을 더하여 수정 변이 벡터를 생성하는 기능을 한다. 이때, 변이 벡터 수정부(2230)가 수정 변이 벡터를 생성하는 보다 구체적인 내용은 상술한 바와 같다.
상술한 실시예들에서, 방법들은 일련의 단계 또는 유닛으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
상술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
상술한 본 발명에 따른 방법은 컴퓨터에서 실행되기 위한 프로그램으로 제작되어 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있으며, 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
또한, 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해 되어서는 안 될 것이다.

Claims (10)

  1. 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한지에 대해 판단하는 단계;
    가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한 경우, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는지에 대해 판단하는 단계; 및
    가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는 경우, 상기 변이 벡터로부터 수정 변이 벡터를 산출하는 단계를 포함하고,
    상기 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보는 예측 대상 블록의 좌측에 위치한 블록의 움직임 정보인, 영상 복호화 방법.
  2. 청구항 1에 있어서,
    상기 수정 변이 벡터는,
    가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보의 변이 벡터에 임의의 값을 더하여 산출되는, 영상 복호화 방법.
  3. 청구항 1에 있어서,
    우선 순위에 대한 변수를 1만큼 증가시키는 단계;
    해당 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한지에 대해 판단하는 단계;
    해당 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한 경우, 해당 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는지 판단하는 단계; 및
    해당 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는 경우, 수정 변이 벡터를 유도하는 단계를 더 포함하는, 영상 복호화 방법.
  4. 청구항 1에 있어서,
    상기 우선 순위 관련 변수가 기 설정된 최대치에 이를 때까지,
    상기 우선 순위에 대한 변수를 하나 증가시키는 단계, 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는지 판단하는 단계, 수정 변이 벡터를 유도하는 단계를 반복하는, 영상 복호화 방법.
  5. 삭제
  6. 청구항 1에 있어서,
    상기 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는지에 대해 판단하는 단계는,
    상기 공간적 병합 움직임 후보의 주변 블록이 시점 합성 예측(VSP) 모드로 부호화되었는지 확인하는 단계를 포함하는, 영상 복호화 방법.
  7. 프로세서; 및
    상기 프로세서를 통해 실행되는 적어도 하나의 명령을 저장하는 메모리를 포함하고,
    상기 적어도 하나의 명령은,
    가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한지에 대해 판단하도록 하는 명령;
    가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 사용 가능한 경우, 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는지에 대해 판단하도록 하는 명령; 및
    가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는 경우, 상기 변이 벡터로부터 수정 변이 벡터를 산출하도록 하는 명령을 포함하고,
    상기 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보는 예측 대상 블록의 좌측에 위치한 블록의 움직임 정보인, 영상 복호화 장치.
  8. 청구항 7에 있어서,
    상기 수정 변이 벡터는,
    가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보의 변이 벡터에 임의의 값을 더하여 산출되는, 영상 복호화 장치.
  9. 삭제
  10. 청구항 7에 있어서,
    상기 가장 높은 우선 순위를 가지는 공간적 병합 움직임 후보가 변이 벡터를 가지고 있는지에 대해 판단하도록 하는 명령은, 상기 공간적 병합 움직임 후보의 주변 블록이 시점 합성 예측(VSP) 모드로 부호화되었는지 확인하도록 하는 명령을 포함하는, 영상 복호화 장치.

KR1020150046781A 2014-04-02 2015-04-02 변이 벡터를 사용한 병합 움직임 후보 유도 장치 및 방법 KR102378087B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20140039274 2014-04-02
KR1020140039274 2014-04-02

Publications (2)

Publication Number Publication Date
KR20150114913A KR20150114913A (ko) 2015-10-13
KR102378087B1 true KR102378087B1 (ko) 2022-03-24

Family

ID=54348289

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150046781A KR102378087B1 (ko) 2014-04-02 2015-04-02 변이 벡터를 사용한 병합 움직임 후보 유도 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102378087B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014044168A1 (en) * 2012-09-21 2014-03-27 Mediatek Inc. Method and apparatus of virtual depth values in 3d video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014044168A1 (en) * 2012-09-21 2014-03-27 Mediatek Inc. Method and apparatus of virtual depth values in 3d video coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
L. Zhang, et. al., "3D-CE5.h: Merge Candidates Derivation from Disparity Vector", Joint Collaborative Team on 3D Video Coding Extension Development of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 2n*

Also Published As

Publication number Publication date
KR20150114913A (ko) 2015-10-13

Similar Documents

Publication Publication Date Title
KR102378459B1 (ko) 움직임 병합 모드에서 시점 합성 예측 후보의 중복성 제거 장치 및 방법
KR102446602B1 (ko) 서브 예측 유닛 단위의 움직임 정보 유도의 방법 및 장치
KR102378087B1 (ko) 변이 벡터를 사용한 병합 움직임 후보 유도 장치 및 방법
KR20220024764A (ko) Ibc를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
KR102424941B1 (ko) 3차원 영상 부호화 및 복호화에 있어서 적응적 병합 후보 선택 장치 및 방법
KR102395974B1 (ko) 서브 예측 유닛 단위의 시간적인 시점 간 움직임 정보 유도의 방법 및 장치
CN110855992B (zh) 导出子预测单元的时间点之间的运动信息的方法和装置
KR20160002194A (ko) 적응적 병합후보 선택방법 및 장치
KR20150010631A (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
GRNT Written decision to grant