KR101854003B1 - 복수의 레이어를 포함하는 영상의 부호화 및 복호화 방법 - Google Patents

복수의 레이어를 포함하는 영상의 부호화 및 복호화 방법 Download PDF

Info

Publication number
KR101854003B1
KR101854003B1 KR1020140081943A KR20140081943A KR101854003B1 KR 101854003 B1 KR101854003 B1 KR 101854003B1 KR 1020140081943 A KR1020140081943 A KR 1020140081943A KR 20140081943 A KR20140081943 A KR 20140081943A KR 101854003 B1 KR101854003 B1 KR 101854003B1
Authority
KR
South Korea
Prior art keywords
motion
view
information
candidate list
block
Prior art date
Application number
KR1020140081943A
Other languages
English (en)
Other versions
KR20150004289A (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 경희대학교 산학협력단
Priority to US14/901,766 priority Critical patent/US10080037B2/en
Priority to EP14819793.2A priority patent/EP3018908B1/en
Priority to PCT/KR2014/005907 priority patent/WO2015002460A1/ko
Publication of KR20150004289A publication Critical patent/KR20150004289A/ko
Application granted granted Critical
Publication of KR101854003B1 publication Critical patent/KR101854003B1/ko
Priority to US16/058,117 priority patent/US10681378B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission

Abstract

본 발명의 일 실시예예 따른 복수의 시점(view)을 포함하는 비디오 복호화 방법은 현재 블록의 주변 블록 및 시간 대응 블록의 움직임 정보를 이용하여 기본 병합 움직임 후보 리스트를 구성하는 단계와; 상기 현재 블록과 상이한 시점 영상 및 깊이 정보 맵의 움직임 정보를 이용하여 확장 병합 움직임 후보 리스트를 구성하는 단계를 포함하고, 상기 기본 병합 움직임 후보 리스트에 포함되어 있는 주변 블록 움직임 정보가 시점 합성 예측을 통하여 유도되었는지 여부를 판단하는 단계를 포함할 수 있다.

Description

복수의 레이어를 포함하는 영상의 부호화 및 복호화 방법{VIDEO INCLUDING MULTI LAYERS ENCODING AND DECODING METHOD}
본 발명은 영상의 부호화 및 복호화 처리에 관한 것으로서, 보다 상세하게는 복수의 레이어를 포함하는 영상의 부호화 및 복호화 방법에 관한 것이다.
최근 HD(High Definition) 해상도를 가지는 방송 서비스가 국내뿐만 아니라 세계적으로 확대되면서, 많은 사용자들이 고해상도, 고화질의 영상에 익숙해지고 있으며 이에 따라 많은 기관들이 차세대 영상기기에 대한 개발에 박차를 가하고 있다. 또한 HDTV와 더불어 HDTV의 4배 이상의 해상도를 갖는 UHD(Ultra High Definition)에 대한 관심이 증대되면서 보다 높은 해상도, 고화질의 영상에 대한 압축기술이 요구되고 있다.
영상 압축을 위해, 시간적으로 이전 및/또는 이후의 픽쳐로부터 현재 픽쳐에 포함된 화소값을 예측하는 인터(inter) 예측 기술, 현재 픽쳐 내의 화소 정보를 이용하여 현재 픽쳐에 포함된 화소값을 예측하는 인트라(intra) 예측 기술, 출현 빈도가 높은 심볼(symbol)에 짧은 부호를 할당하고 출현 빈도가 낮은 심볼에 긴 부호를 할당하는 엔트로피 부호화 기술 등이 사용될 수 있다.
영상 압축 기술에는 유동적인 네트워크 환경을 고려하지 않고 하드웨어의 제한적인 동작 환경하에서 일정한 네트워크 대역폭을 제공하는 기술이 있다. 그러나 수시로 대역폭이 변화하는 네트워크 환경에 적용되는 영상 데이터를 압축하기 위해서는 새로운 압축 기술이 요구되고, 이를 위해 스케일러블(scalable) 비디오 부호화/복호화 방법이 사용될 수 있다.
한편, 3차원 비디오는 3차원 입체 디스플레이 장치를 통해 사용자에게 실 세계에서 보고 느끼는 것과 같은 입체감을 생생하게 제공한다. 이와 관련된 연구로써 비디오 표준화 단체인 ISO/IEC의 MPEG에서는 3차원 비디오 표준이 진행 중이다. 3차원 비디오 표준은 실제 영상과 그것의 깊이 정보 맵을 이용하여 스테레오스코픽 영상뿐만 아니라 오토스테레오스코픽 영상의 재생 등을 지원할 수 있는 진보된 데이터 형식과 그에 관련된 기술에 대한 표준을 포함하고 있다.
도 1은 3차원 비디오 시스템의 기본 구조를 도시한 도면으로 현재 3차원 비디오 표준에서 고려하고 있는 시스템의 일 예를 나타내고 있다.
도시된 바와 같이, 컨텐츠를 생성하는 송신 측(3D Content Production)에서는 스테레오 카메라(stereo camera), 깊이 정보 카메라(depth camera), 다시점 카메라(mult-camera setup), 2차원 영상을 3차원 영상으로 변환(2D/3D conversion) 등을 이용하여 N(N≥2) 시점의 영상 콘텐츠를 획득한다.
획득된 영상 콘텐츠에는 N 시점의 비디오 정보(N x Video)와 그것의 깊이 정보 맵(Depth-map) 정보 그리고 카메라 관련 부가정보 등이 포함될 수 있다.
N 시점의 영상 콘텐츠는 다시점 비디오 부호화 방법(Multi-View)을 사용하여 압축되며, 압축된 비트스트림은 네트워크를 통해, 예를 들어, DVB(Digital Video Broadcasting) 등을 통해 단말로 전송된다.
수신 측에서는 전송 받은 비트스트림을 다시점 비디오 복호화 방법(Depth-Image ?Based Rendering)하여 복호화하여 N 시점의 영상을 복원한다.
복원된 N 시점의 영상은 깊이 정보 맵 기반 랜더링(DIBR; Depth-Image-Based Rendering) 과정에 의해 N 시점 이상의 가상 시점 영상들을 생성한다.
생성된 N 시점 이상의 가상시점 영상들은 다양한 입체 디스플레이 장치(예컨대, 2D Display, M-View 3D Display, Head-Tracked Stereo Display)에 맞게 재생되어 사용자에게 입체감이 있는 영상을 제공하게 된다.
가상 시점 영상을 생성하는데 사용되는 깊이 정보 맵은 실세계에서 카메라와 실제 사물(object) 간의 거리(실사 영상과 동일한 해상도로 각 화소에 해당하는 깊이 정보)를 일정한 비트수로 표현한 것이다.
도 2는 국제 표준화 기구인 MPEG의 3차원 비디오 부호화 표준에서 사용 중인 “balloons” 영상에 대한 깊이 정보 맵을 도시한 도면이다.
도 2의 (a)는 “balloons” 영상에 대한 실제 영상이고, 도 2의 (b) balloons” 영상에 대한 깊이 정보 맵을 나타낸다. (b)는 깊이 정보를 화소당 8비트로 표현한 것이다.
실제 영상과 그것의 깊이 정보 맵을 부호화하기 7위한 일예로, H.264/AVC(MPEG-4 Part 10 Advanced Video Coding)를 이용할 수도 있고, 또 다른 방법의 일 예로 MPEG(Moving Picture Experts Group)과 VCEG(Video Coding Experts Group)에서 공동으로 표준화를 진행한 HEVC(High Efficiency Video Coding) 국제 동영상 표준를 사용할 수 있다.
도 3은 3D 비디오 코덱에서 시점 간 예측 구조의 일 예를 도시한 도면이다.
실제 영상과 그것의 깊이 정보 맵은 하나의 카메라뿐만 아니라 여러 개의 카메라에서 획득한 영상일 수 있다. 여러 개의 카메라에서 획득한 영상은 독립적으로 부호화될 수 있으며, 일반적인 2차원 비디오 부호화 코덱을 사용할 수 있다.
또한, 여러 개의 카메라에서 획득한 영상은 시점 간의 상관성이 존재하므로, 부호화 효율을 높이기 위하여 서로 다른 시점간 예측을 사용하여 영상들을 부호화할 수 있다.
도 3에 도시된 바와 같이, 시점 1(View 1)은 시점 0(View 0)을 기준으로 왼쪽에 위치한 카메라(왼쪽 카메라)에서 획득한 영상이고, 시점 2(View 2)는 시점 0(View 0)을 기준으로 오른쪽에 위치한 카메라(오른쪽 카메라)에서 획득한 영상이다.
시점 1(View 1)과 시점 2(View 2)는 시점 0(View 0)을 참조 영상으로 사용하여 시점 간 예측을 수행할 수 있으며, 이런 경우 시점 0(View 0)이 시점 1(View 1)과 시점 2(View 2)보다 먼저 부호화되어야 한다. 이때, 시점 0(View 0)은 다른 시점과 상관없이 독립적으로 부호화될 수 있으므로 독립적인 시점(Independent View)이라고 표현될 수 있다.
반면, 시점 1(View 1)과 시점 2(View 2)는 시점 0(View 0)을 참조 영상으로 사용하므로 의존적인 시점(Dependent View)라고 표현할 수 있다. 독립적인 시점 영상은 일반적인 2차원 비디오 코덱을 사용하여 부호화 될 수 있는 반면 의존적인 시점 영상은 시점간 예측을 수행하여야 하므로, 시점간 예측 프로세스가 포함되어 있는 3차원 비디오 코덱을 사용하여 부호화할 수 있다.
또한, 시점 1(View 1)과 시점 2(View 2)의 부호화 효율을 증가시키기 위하여 깊이 정보 맵을 이용한 부호화를 수행할 수 있다.
도 4는 3D의 텍스쳐와 깊이를 인코딩 및 디코딩하는 비디오 인코더 및 디코더의 일 예를 개략적으로 도시한 제어 블럭도이다.
도시된 바와 같이, 비디오 인코더(410)는 텍스쳐 인코더(415) 및 깊이 인코더(417)를 포함하고, 비디오 디코더(420)는 텍스쳐 디코더(425) 및 깊이 디코더(427)를 포함한다.
텍스쳐 인코더(415)는 실제 영상에 해당하는 텍스쳐(texture)를 입력 받아 이를 비트스트림으로 인코딩하고, 텍스쳐 디코더(425)는 텍스쳐 인코더(415)에서 인코딩된 비트스트림을 수신하여 디코딩하여 디코딩된 텍스쳐로 출력한다.
깊이 인코더(417)는 깊이(depth), 즉 깊이 정보 맵을 인코딩하고, 깊이 디코더(427)는 깊이 정보 맵을 디코딩 한다.
실제 영상과 그것의 깊이 정보 맵을 부호화할 때, 서로 독립적으로 부호화/복호화할 수 있다.
또한, 도 4와 같이 영상과 깊이 정보 맵을 부호화할 때, 서로를 참조하여 즉, 의존적으로 부호화/복호화 할 수 있다. 이미 부호화/복호화된 깊이 정보 맵을 이용하여 실제 영상을 부호화/복호화할 수 있으며, 반대로 이미 부호화/복호화된 실제 영상을 이용하여 깊이 정보 맵을 부호화/복호화 할 수 있다.
도 5는 3D 영상 코딩의 예측 구조를 도시한 도면이다. 구체적으로 도 5는 카메라 3대에서 획득한 실제 영상과 그것의 깊이 정보 맵을 부호화하기 위한 부호화 예측 구조를 나타내고 있다.
도 5에서 3개의 실제 영상은 시점에 따라 T0, T1, T2로 표현되고, 실제 영상과 동일한 위치의 3개의 깊이 정보 맵을 시점에 따라 D0, D1, D2로 표현된다.
여기서 T0와 D0는 시점 0(View 0)에서 획득한 영상이며, T1와 D1는 시점 1(View 1)에서 획득한 영상이며, T2와 D2는 시점 2(View 2)에서 획득한 영상이다. 각 픽쳐는 I(Intra Picture), P(Uni-prediction Picture), B(Bi-prediction Picture)로 부호화될 수 있다.
실제 영상에서 현재 블록의 움직임 정보를 유도하기 위한 예측 방법은 크게 시간적 예측과 시점간 예측으로 나뉠 수 있다. 시간적 예측은 동일한 시점 내에서 시간적 상관성을 이용한 예측 방법이고, 시점간 예측은 시점간 상관성을 이용한 예측 방법이다. 하나의 픽쳐의 예측을 위하여 시간적 예측과 시점간 예측은 서로 혼용되어 사용될 수 있다. 움직임 정보는 움직임 벡터, 참조 영상 번호와 단방향 예측인지 양방향 예측인지 나타내는 예측 방향 정보, 시점간 예측인지 시간적 예측인지, 또 다른 예측인지를 나타내는 정보 중 적어도 하나를 포함할 수 있다.
도 5에서 화살표는 예측 방향을 나타내며, 도시된 바와 같이, 실제 영상과 그것의 깊이 정보 맵은 서로 의존적으로 부호화/복호화 될 수 있다. 즉, 실제 영상의 예측을 위하여 깊이 정보 맵을 참조할 수도 있고, 깊이 정보 맵의 예측의 위하여 실제 영상을 이용할 수도 있다.
한편, 이러한 3D 영상을 디코딩 하기 위하여는 하드웨어 및 소프트웨어의 구현 복잡도가 증가되고 계산 복잡도가 증가되는 문제점이 존재한다.
본 발명은 비디오 코덱에서 구현 복잡도 및 계산 복잡도를 감소시키는 방법을 제공한다.
또한, 본 발명은 부호화/복호화 모듈의 재사용성을 증가시키는 방법을 제공한다.
또한, 본 발명의 일 실시예는 역방향 호환성을 제공하는 독립적인 시점에 대한 일반 영상의 부호화에 사용되는 모듈을 의존적인 시점에 대한 일반 영상과 깊이 정보 맵들에 그대로 적용하여 구현 복잡도를 감소시키고, 의존적인 시점에 대한 일반 영상과 깊이 정보 맵들에 부분 인코더를 추가적으로 적용함으로써 부호화 효율을 향상시킬 수 있다.
본 발명은 독립적인 시점(Independent View; 시점 0(View 0))에 대한 일반 영상의 부호화/복호화 모듈을 재사용하여 의존적인 시점(dependent view; 시점 1(View 1)과 시점 2(View 2))에 대한 일반 영상과 깊이 정보 맵들을 부호화/복호화하는 방법 및 장치를 제공한다.
본 발명은 독립적인 시점에 대한 일반 영상의 부호화에 사용되는 부호화/복호화 모듈을 그대로 사용하여, 의존적인 시점에 대한 일반 영상과 깊이 정보 맵들을 부호화/복호화한 후, 추가적인 부호화/복호화 모듈을 이용하여 의존적인 시점; 시점 1(View 1)과 시점 2(View 2))에 대한 일반 영상과 깊이 정보 맵들을 재부호화/재복호화하거나 혹은 재설정(혹은 변경)하는 방법 및 장치를 제공한다.
본 발명은 독립적인 시점에 대한 일반 영상의 부호화에 사용되는 “기본 병합 움직임 리스트 구성“ 모듈을 그대로 사용하여, 의존적인 시점에 대한 일반 영상과 깊이 정보 맵들에 대한 “기본 병합 움직임 후보 리스트”를 구성한 후, 추가적으로 “추가 병합 움직임 리스트 구성” 모듈을 이용하여 “기본 병합 움직임 후보 리스트”를 재설정(혹은 변경)하여 “확장 병합 움직임 후보 리스트”를 구성하는 방법 및 장치를 제공한다.
본 발명은 일반 영상인지 혹은 깊이 정보 맵 영상인지에 대한 정보(Texture/Depth 정보)와 시점 정보(ViewID 정보)를 통해, 추가적인 부호화/복호화 모듈과 “추가 병합 움직임 리스트 구성” 모듈의 수행여부를 결정하는 방법 및 장치를 제공한다.
본 발명은 “기본 병합 움직임 후보 리스트”를 이용하여 “확장 병합 움직임 후보 리스트”를 구성하는데 있어서, 추가적인 움직임 정보를 “기본 병합 움직임 후보 리스트”의 첫 번째 항목(혹은 임의의 위치에 해당하는 항목)에 삽입하는 방법 및 장치를 제공한다.
본 발명은 추가적인 움직임 정보를 “기본 병합 움직임 후보 리스트”의 첫번째 항목(혹은 임의의 위치에 해당하는 항목)에 삽입하기 전에, 추가적인 움직임 정보와 첫번째 항목의 움직임 정보를 서로 비교하여 삽입 여부를 결정하는 방법 및 장치를 제공한다.
본 발명은 추가적인 움직임 정보들을 “기본 병합 움직임 후보 리스트”의 임의의 위치에 각각 삽입하고, 움직임 후보들을 재설정 및 재배치하는 방법 및 장치를 제공한다.
본 발명에 따르면 비디오 코덱에서 구현 복잡도 및 계산 복잡도를 감소시키는 방법이 제공된다.
또한, 본 발명에 따르면 부호화/복호화 모듈의 재사용성을 증가시키는 방법이 제공된다.
또한, 본 발명의 일 실시예에 따르면 역방향 호환성을 제공하는 독립적인 시점에 대한 일반 영상의 부호화에 사용되는 모듈을 의존적인 시점에 대한 일반 영상과 깊이 정보 맵들에 그대로 적용하여 구현 복잡도를 감소시키고, 의존적인 시점에 대한 일반 영상과 깊이 정보 맵들에 부분 인코더를 추가적으로 적용함으로써 부호화 효율이 향상된다.
도 1은 3차원 비디오 시스템의 기본 구조를 도시한 도면이다.
도 2는 “balloons” 영상에 대한 깊이 정보 맵을 도시한 도면이다
도 3은 3D 비디오 코덱에서 시점 간 예측 구조의 일 예를 도시한 도면이다.
도 4는 3D의 텍스쳐와 깊이를 인코딩 및 디코딩하는 비디오 인코더 및 디코더의 일 예를 개략적으로 도시한 제어 블럭도이다.
도 5는 3D 영상 코딩의 예측 구조를 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 비디오 부호화 장치의 구성을 나타내는 제어 블록도이다.
도 7은 본 발명의 일 실시예에 따른 비디오 복호화 장치의 구성을 나타내는 제어 블록도이다.
도 8은 3차원 비디오 코덱(3D Video Codec)의 인코더 구조도의 일 예를 나타낸 제어 블럭도이다.
도 9는 병합 움직임 후보 리스트를 구성하는데 사용되는 주변 블록들을 나타낸 도면이다.
도 10은 병합 움직임 후보 리스트를 생성하는 방법을 설명하기 위한 개략도이다.
도 11은 병합 움직임 후보 리스트를 생성하는 하드웨어 구현의 일 예를 도시단 도면이다.
도 12는 본 발명의 일 실시예에 따른 비디오 부호화기의 개략도이다.
도 13은 본 발명의 일 실시예에 따른 병합 움직임 후보 리스트를 생성하는 방법을 설명하기 위한 개략도이다.
도 14는 본 발명의 일 실시예에 따른 병합 움직임 후보 리스트 구성 방법을 구현하는 하드웨어를 설명하기 위한 도면이다.
도 15는 본 발명의 일 실시예에 따른 병합 움직임 후보 리스트 구성 방법을 설명하기 위한 도면이다.
도 16은 본 발명의 일 실시예에 따른 확장 병합 움직임 후보 리스트 구성 방법을 설명하기 위한 도면이다.
도 17은 본 발명의 다른 실시예에 따른 확장 병합 움직임 후보 리스트 구성 방법을 설명하기 위한 도면이다.
도 18은 본 발명의 또 다른 실시예에 따른 확장 병합 움직임 후보 리스트 구성 방법을 설명하기 위한 도면이다.
도 19는 본 발명의 일 실시예에 따른 확장 움직임 병합 후보 리스트 구성을 설명하기 위한 제어 흐름도이다.
도 20은 본 발명의 일 실시예에 따른 확장 병합 움직임 후보 리스트 구성 방법을 설명하기 위한 제어 흐름도이다.
도 21은 본 발명의 일 실시예에 따른 시간적 움직임 정보를 이용한 도 20에 후속적인 제어 흐름도이다.
도 22는 본 발명의 일 실시예에 따른 시점간 움직임 정보를 이용한 도 21에 후속적인 제어 흐름도이다.
도 23은 본 발명의 일 실시예에 따른 시점간 차이(disparity) 정보를 이용한 도 22에 후속적인 제어 흐름도이다.
도 24는 본 발명의 일 실시예에 따른 시간적 움직임 정보를 이용한 도 23에 후속적인 제어 흐름도이다.
이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 아울러, 본 발명에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
또한 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
도 6은 비디오 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다. 다시점(multi-view) 비디오 부호화/복호화 방법 또는 장치는 다시점을 제공하지 않는 일반적인 영상 부호화/복호화 방법 또는 장치의 확장(extension)에 의해 구현될 수 있으며, 도 6의 블록도는 다시점 비디오 부호화 장치의 기초가 될 수 있는 영상 부호화 장치의 일 실시예를 나타낸다.
도 6을 참조하면, 상기 영상 부호화 장치(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)에 저장될 수 있다.
도 7은 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다. 도 1에서 상술한 바와 같이 스케일러블 비디오 부호화/복호화 방법 또는 장치는 다시점을 제공하지 않는 일반적인 영상 부호화/복호화 방법 또는 장치의 확장에 의해 구현될 수 있으며, 도 7의 블록도는 다시점 비디오 복호화 장치의 기초가 될 수 있는 영상 복호화 장치의 일 실시예를 나타낸다.
도 6를 참조하면, 상기 영상 복호화 장치(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)에 저장되어 화면 간 예측에 사용될 수 있다.
상술한 바와 같이, 대용량의 3차원 영상 콘텐츠는 비트스트림의 양을 감소시키기 위하여 효율적으로 압축되어야 한다. 부호화 효율을 증가시키기 위하여 서로 다른 시점간 상관성을 이용할 수 있으며, 일반 영상(Texture View)과 깊이 정보 맵(Depth View)간의 상관성을 이용할 수 있다.
도 8은 3차원 비디오 코덱(3D Video Codec)의 인코더 구조도의 일 예를 나타낸 제어 블럭도이다.
도시된 바와 같이 비디오 인코더(800)는 복수의 시점 인코더(810, 820) 및 다중화부(830)를 포함한다.
도 8의 3차원 비디오 인코더는 3개의 서로 다른 시점 영상들을 입력으로 받아 시점 인코더(810, 820)에서 부호화하고, 다중화부(830)를 통해 통합된 하나의 비트스트림을 출력한다. 이때 영상들에는 일반 영상(Texture View)뿐만 아니라 깊이 정보 맵(Depth View)도 포함될 수 있다.
도 8의 3차원 비디오 인코더는 시점 정보(View ID 정보)에 따라 서로 다른 인코더(810, 820)를 이용하여 영상을 부호화된다. 즉, 시점 0(View 0)의 영상은 역방향 호환성(Backward compatibility)를 위하여 기존 2차원 비디오 코덱에서 부호화되어야 하므로, 기본 계층 인코더(시점 0 인코더, 810)에서 부호화 된다. 시점 1(View 1)과 시점 2(View 2)의 영상들은 시점간 예측 알고리즘과 일반 영상과 깊이 정보 맵 간의 상관성을 이용한 알고리즘이 포함된 3차원 비디오 코덱으로 부호화되어야 하므로 향상 계층 인코더(시점 1 또는 시점 2 인코더, 820)에서 부호화된다.
또한, 일반 영상이 아닌 깊이 정보 맵의 경우, 일반 영상의 부호화된 정보를 활용하여 부호화될 수 있으므로, 향상 계층 인코더(820)에서 부호화된다.
따라서, 시점 0(View 0)의 영상을 부호화할 때에 비해, 시점 1(View 1)과 시점 2(View 2)의 영상을 부호화할 때 더욱 복잡한 인코더가 요구되며, 또한 기본 계층의 일반 영상을 부호화하는 경우와 비교하여 깊이 정보 맵을 부호화할 때 더욱 복잡한 인코더가 요구된다. 또한, 이를 구현하기 위한 하드웨어 및 소프트웨어의 구현 복잡도가 증가되고 계산 복잡도가 증가되는 문제점이 존재한다.
한편, HEVC에서는 영상 부호화/복호화 시 움직임 정보의 부호화를 위하여 병합 움직임(merge) 방법을 이용한다.
도 9는 병합 움직임 후보 리스트를 구성하는데 사용되는 주변 블록들을 나타낸 도면이다.
병합 움직임 후보 리스트는 현재 블록(X)의 주변 블록(A, B, C, D, E)과 참조 영상 내 동일 위치에 존재하는 블록(X')에 기초하여 특정되는 콜 블록(H 또는 M))에 기초하여 생성된다. 디코더 및 인코더는 상기 주변 블록 및 콜 블록의 움직임 정보가 현재 블록의 병합 움직임에 이용될 수 있는지를 판단하여, 이용 가능한 경우 해당 블록의 움직임 정보로 병합 움직임 후보 리스트를 구성할 수 있다.
도 10은 병합 움직임 후보 리스트를 생성하는 방법을 설명하기 위한 개략도이다.
도 10에 도시된 바와 같이, 3D 영상 코딩은 시점 0(View 0)에 대한 병합 움직임 구성 방법과 나머지 다른 시점들(시점 1(View 1)과 시점 2(View 2))에 대한 병합 움직임 구성 방법으로 서로 구분되어 있다.
현재 PU(Prediction Unit, PB(Prediction Block) 또는 임의 크기의 블록) 영상이 입력되면 일반 영상인지 혹은 깊이 정보 맵 영상인지에 대한 정보(Texture/Depth 정보)와 시점 정보(ViewID) 정보에 따라, 시점 0(View 0)에 대한 병합 움직임 구성 방법과 나머지 다른 시점들(시점 1(View 1)과 시점 2(View 2))에 대한 병합 움직임 구성 방법 중에 하나가 선택되어 수행된다. 그런 후, 최종적으로 현재 PU 영상에 대한 병합 움직임 후보 리스트가 출력된다.
여기서 시점 0(View 0)에 대한 일반 영상, 즉 기본 계층에 대한 병합 움직임 후보 리스트는 역방향 호환성을 위해 기본 계층을 위한 병합 움직임 구성 방법을 이용하여 구성된다. 반면, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이 정보 맵에 대한 병합 움직임 후보 리스트는 향상 계층을 위한 병합 움직임 구성 방법을 이용하여 구성된다.
도 10에 도시된 바와 같이, 향상 계층(기본 계층과 다른 시점들(시점 1(View 1)과 시점 2(View 2))과 깊이 정보 맵)을 위한 병합 움직임 구성 방법은 기본 계층을 위한 병합 움직임 구성 방법에 새로운 후보를 추가하거나 후보 리스트 순서를 수정하는 방법으로 수행된다. 향상 계층에서의 부호화 효율을 증가시키기 위해서, 향상 계층에서는 기본 계층에서의 병합 움직임 방법을 수정하여 향상된 병합 움직임 방법을 사용한다. 즉, 향상 계층을 위한 병합 움직임 구성 방법은 기본 계층을 위한 병합 움직임 구성 방법을 포함한다.
향상 계층을 위한 병합 움직임 구성 방법은 기본 계층을 위한 병합 움직임 구성보다 복잡하게 구성되며, 계산 복잡도 역시 크다. 또한, 하드웨어 혹은 소프트웨어로 구현하는 측면에서 기본 계층을 위한 병합 움직임 구성 방법과 향상 계층을 위한 병합 움직임 구성 방법을 모두 구현해야 하므로 구현 복잡도가 2배 이상 증가할 수 있다.
도 11은 병합 움직임 후보 리스트를 생성하는 하드웨어 구현의 일 예를 도시단 도면이다.
도 11에 도시된 바와 같이, 시점 0(View 0)에 대한 일반 영상에 적용되는 병합 움직임 리스트 구성 방법에 입력되는 파라미터는 도 9의 블록 A의 공간적 움직임 정보에 해당하는 공간적 움직임 A, 블록 B의 공간적 움직임 정보에 해당하는 공간적 움직임 B, 블록 C의 공간적 움직임 정보에 해당하는 공간적 움직임 C, 블록 D의 공간적 움직임 정보에 해당하는 공간적 움직임 D, 블록 E의 공간적 움직임 정보에 해당하는 공간적 움직임 E, 블록 H의 공간적 움직임 정보에 해당하는 공간적 움직임 H를 포함한다.
시점 1(View 1)과 시점 2(View 2)에 대한 병합 움직임 리스트 구성 방법에 입력되는 파라미터는 시점 0(View 0)에 대한 병합 움직임 리스트 구성 시 입력되는 상기 파라미터에 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이 정보 맵을 위한 "추가 움직임 F”와 “추가 움직임 G”가 추가된다.
상술한 바와 같이 움직임 후보 리스트 생성을 위한 입력 파라미터가 추가되기 때문에 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이 정보 맵을 위한 새로운 병합 움직임 리스트 구성 모듈이 필요하다. 이는 하드웨어의 구현 복잡도를 증가시킬 수 있다.
따라서, 본 발명은 향상 계층(예컨대, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이 정보 맵)을 위한 부호화 알고리즘 및 비디오 코덱의 구현 복잡도 및 계산 복잡도를 감소시키는 방법을 제안한다.
본 발명의 목적은 이미 하드웨어 칩 형태로 구현이 완료된 기본 계층(시점0(View 0)에 대한 일반 영상)을 위한 “병합 움직임 후보 리스트 구성” 모듈을 그대로 재사용하여 향상 계층(예컨대, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이 정보 맵)에 적용함으로써, 하드웨어 구현 복잡도를 감소시키는 것이다.
즉, 2차원 영상 서비스에 사용되는 기본 계층을 위한 부호화/복화화기(예를 들어, “병합 움직임 후보 리스트 구성” 모듈)를 가지고 있는 사용자는 추가적인 모듈(예를 들어, 향상 계층을 위한 “병합 움직임 후보 리스트 구성” 모듈)만 기존 부호화/복호화기에 부착하면 손쉽게 3차원 영상 서비스를 받을 수 있게 된다.
이하, 본 발명에서 제안하는 영상의 부호화 및 복호화 방법에 대하여 구체적으로 설명한다.
도 12는 본 발명의 일 실시예에 따른 비디오 부호화기의 개략도이다.
도시된 바와 같이, 비디오 부호화기는 일반 인코딩부(1210) 및 부분 인코딩부(1220)를 포함하고, 3개의 서로 다른 시점 영상(View 0, View 1, View 2)들을 입력으로 받아 부호화하고 통합된 하나의 비트스트림을 출력한다. 이때 영상은 일반 영상(Texture View)과 깊이 정보 맵(Depth View)을 포함할 수 있다.
영상의 도 8과 달리 시점 별로 개별적인 인코더가 아닌 하나의 인코더를 통하여 부호화된다. 도 12의 비디오 부호화기는 MPEG-1, MPEG-2, MPEG-4 Part 2 Visual, H.264/AVC, VC-1, AVS, KTA, HEVC(H.265/HEVC) 등을 지원하는 하드웨어로 구현될 수 있다.
일반 인코딩부(1210)는 역방향 호환성을 제공하는 독립적인 시점(Independent View; 시점 0(View 0)에 대한 일반 영상을 부호화하는 모듈이다.
부분 인코딩부(1220)는 부호화 효율을 높이기 위하여 추가적인 인코딩을 수행하는 부분으로 일반 영상의 시점 0(View 0)이 아닌 다른 시점(시점 1(View 1)과 시점 2(View 2))들과 깊이 정보 맵을 인코딩한다.
그런 후, 일반 영상의 시점 0(View 0)에 대한 비트스트림과 그리고 다른 시점(시점 1(View 1)과 시점 2(View 2))들과 깊이 정보 맵들에 대한 비트스트림들은 다중화부(1230)에 의하여 하나의 비트스트림으로 다중화된다.
즉, 본 실시예에 따른 부호화기는 역방향 호환성을 제공하는 독립적인 시점에 대한 일반 영상의 부호화에 사용되는 모듈을 의존적인 시점(Dependent view)에 대한 일반 영상과 깊이 정보 맵들에 그대로 적용하여 구현 복잡도를 감소시키고, 의존적인 시점에 대한 일반 영상과 깊이 정보 맵들에 부분 인코더 모듈을 추가적으로 적용함으로써 부호화 효율을 향상시킬 수 있다.
도 12의 부호화기는 부호화 및 복호화 장치 전체에 적용할 수 있으며, 특정한 모듈 각각에 적용할 수도 있다.
도 13은 본 발명의 일 실시예에 따른 병합 움직임 후보 리스트를 생성하는 방법을 설명하기 위한 개략도이다.
병합 움직임 후보 리스트를 구성하기 위한 입력은 현재 PU 정보(또는 영상)와 입력되는 영상이 일반 영상인지 혹은 깊이 정보 맵 영상 인지에 대한 정보(Texture/Depth 정보)와 시점 정보(ViewID 정보)이며, 출력은 현재 PU에 대한 병합 움직임 후보 리스트이다.
도시된 바와 같이, 우선, 기본적으로 현재 PU에 대한 “기본 병합 움직임 리스트 구성” 단계가 수행되고, 이를 통해 “기본 병합 움직임 후보 리스트”가 출력된다. 예를 들어, “기본 병합 움직임 리스트 구성”에는 기존의 HEVC와 같은 공지된 병합 움직임 후보 리스트 구성 방법이 적용될 수 있다.
다음으로, 현재 PU 영상이 일반 영상인지 혹은 깊이 정보 맵 영상인지에 대한 정보(Texture/Depth 정보)와 시점 정보(ViewID 정보)에 따라 “추가 병합 움직임 리스트 구성” 단계가 추가적으로 수행된다.
이 때,“추가 병합 움직임 리스트 구성” 단계에서 입력은 “기본 병합 움직임 리스트 구성” 단계의 출력인 “기본 병합 움직임 후보 리스트”이고, 출력은 “확장 병합 움직임 후보 리스트”이다. “추가 병합 움직임 리스트 구성” 단계는 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이 정보 맵들에 대하여 수행될 수 있다.
도 14는 본 발명의 일 실시예에 따른 병합 움직임 후보 리스트 구성 방법을 구현하는 하드웨어를 설명하기 위한 도면이다.
도 14에 도시된 바와 같이, 시점 0(View 0)에 대한 일반 영상에서 적용되는 병합 움직임 리스트 구성 방법에 입력되는 파라미터는 도 9의 블록 A의 공간적 움직임 정보에 해당하는 공간적 움직임 A, 블록 B의 공간적 움직임 정보에 해당하는 공간적 움직임 B, 블록 C의 공간적 움직임 정보에 해당하는 공간적 움직임 C, 블록 D의 공간적 움직임 정보에 해당하는 공간적 움직임 D, 블록 E의 공간적 움직임 정보에 해당하는 공간적 움직임 E, 블록 H의 공간적 움직임 정보에 해당하는 공간적 움직임 H를 포함한다.
이에 대한 출력은 시점0(View 0)에 대한 일반 영상의 경우에는 “기본 병합 움직임 후보 리스트”이고, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이 정보 맵의 경우에는 “확장 병합 움직임 후보 리스트”이다.
우선, 도 9의 주변 블록(A, B, C, D, E)과 그리고 동일 위치의 후보 블록(H 또는 M))을 이용하여 “기본 병합 움직임 리스트 구성” 과정이 수행되고, 이를 통해“기본 병합 움직임 후보 리스트”가 출력된다.
다음으로, 현재 PU 영상이 일반 영상인지 혹은 깊이 정보 맵 영상인지에 대한 정보(Texture/Depth 정보)와 시점 정보(ViewID 정보)에 따라 “추가 병합 움직임 리스트 구성” 과정이 추가적으로 수행된다. 즉, 병합 움직임 리스트를 구성하기 위하여 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이 정보 맵일 경우에는 “추가 병합 움직임 리스트 구성” 과정이 추가적으로 수행된다.
“추가 병합 움직임 리스트 구성” 단계의 입력은 “기본 병합 움직임 리스트 구성” 단계에서 출력된 “기본 병합 움직임 후보 리스트”와 “추가 움직임 F, 추가 움직임 G”이며, 출력은 “확장 병합 움직임 후보 리스트”이다.
시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이 정보 맵를 위한 병합 움직임 후보 리스트를 구성하기 위해서, 새로운 모듈이 아닌 추가적인 부분 모듈을 사용함으로써 하드웨어 구현 복잡도를 감소시킬 수 있다. 즉, 이미 하드웨어 칩 형태로 구현이 완료된 기본 계층(시점0(View 0)에 대한 일반 영상)을 위한 “병합 움직임 후보 리스트 구성” 모듈을 그대로 재사용하여 향상 계층(예컨대, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이 정보 맵)에 적용함으로써, 하드웨어 구현 복잡도를 감소시킬 수 있다.
도 15는 본 발명의 일 실시예에 따른 병합 움직임 후보 리스트 구성 방법을 설명하기 위한 도면이다.
병합 움직임 후보 리스트를 구성하기 위한 입력은 현재 PU 정보(혹은 영상)와 일반 영상인지 혹은 깊이 정보 맵 영상인지에 대한 정보(Texture/Depth 정보)와 시점 정보(ViewID 정보)이며, 출력은 현재 PU에 대한 병합 움직임 후보 리스트이다.
우선, 현재 PU에 대하여 기본 병합 움직임 후보 리스트가 구성된다. 기본 병합 움직임 후보 리스트를 구성하기 위하여 기존의 HEVC와 같은 공지된 병합 움직임 후보 리스트 구성 방법이 사용될 수 있다.
다음으로, 현재 PU 영상이 일반 영상인지 혹은 깊이 정보 맵 영상인지에 대한 정보(Texture/Depth 정보)와 시점 정보(ViewID 정보)에 따라 확장 병합 움직임 후보 리스트가 구성된다. 이때, 확장 병합 움직임 후보 리스트는 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이 정보 맵들에 대하여 수행되며, “움직임 정보 F”가 확장 병합 움직임 후보 리스트에 추가될 수 있다.
만약, 현재 PU가 일반 영상의 시점 0(View 0)이면, 도 15에서 병합 움직임 후보 리스트의 출력은 “기본 병합 움직임 후보 리스트”가 될 수 있다. 그렇지 않고 현재 PU가 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이 정보 맵들이면, 도 15에서 병합 움직임 후보 리스트의 출력은 “확장 병합 움직임 후보 리스트”가 될 수 있다. 이때 “확장 병합 움직임 후보 리스트”의 후보 개수는 “기본 병합 움직임 후보 리스트”의 후보 개수보다 많을 수 있다.
이 때, “확장 병합 움직임 후보 리스트“를 구성하는 방법, 즉 추가적인 움직임 정보가 확장 병합 움직임 후보 리스트에 추가되는 위치는 다양하게 설정될 수 있다.
도 16은 본 발명의 일 실시예에 따른 확장 병합 움직임 후보 리스트 구성 방법을 설명하기 위한 도면이다.
실시 일예로, 도 16과 같이, 추가적인 움직임 정보인 “움직임 정보 F”를 움직임 후보 리스트의 첫 번째 항목(혹은 임의의 위치에 해당하는 항목)에 삽입할 수 있다. 이때, 추가적인 움직임 후보를 삽입하기 전에 “기본 병합 움직임 후보 리스트”의 첫 번째 움직임 후보인 “움직임 정보 A”와 추가적인 움직임 후보인 “움직임 후보 F”를 서로 비교하여 동일하지 않을 경우에 리스트의 첫 번째 항목에 삽입할 수 있으며, 그 역도 가능하다.
두 움직임 정보를 비교할 때, 두 움직임 벡터의 차이가 임의의 임계값 이내일 경우에는 추가적인 움직임 후보는 추가되지 않을 수 있으며, 그 역도 가능하다.
또한, 두 움직임 정보의 참조 영상이 동일하지 않을 경우에만 추가적인 움직임 후보를 추가할 수 있으며, 그 역도 가능하다.
다른 예에 따르면“움직임 정보 F”는 움직임 후보 리스트의 마지막 항목에 추가될 수도 있다.
도 17은 본 발명의 다른 실시예에 따른 확장 병합 움직임 후보 리스트 구성 방법을 설명하기 위한 도면이다.
본 실시예에 따를 경우, 추가적인 움직임 정보는 복 수개이다. 도 17은 추가적인 움직임 정보가 움직임 정보 F와 움직임 정보 G인 경우, 움직임 정보 F와 움직임 정보 G를 움직임 후보 리스트에 추가하는 것을 나타내고 있다.
“움직임 정보 F”는 움직임 후보 리스트의 첫 번째 항목(혹은 임의의 위치에 해당하는 항목)에 삽입되고, 또 다른 추가적인 움직임 정보인 “움직임 정보 G”는 움직임 후보 리스트의 세 번째 항목(혹은 임의의 위치에 해당하는 항목)에 추가될 수 있다.
이때, 추가적인 움직임 후보를 추가하기 전에 “기본 병합 움직임 후보 리스트”에 있던 원래 항목과 추가적인 움직임 후보를 서로 비교하여 동일하지 않을 경우에만 리스트에 추가할 수 있으며, 그 역도 가능하다.
두 움직임 정보를 비교할 때, 두 움직임 벡터의 차이가 임의의 임계값 이내일 경우에는 추가적인 움직임 후보는 추가되지 않을 수 있으며, 그 역도 가능하다.
또한, 두 움직임 정보의 참조 영상이 동일하지 않을 경우에만 추가적인 움직임 후보를 추가할 수 있으며, 그 역도 가능하다.
다른 예에 따르면, 움직임 정보 F와 움직임 정보 G는 움직임 후보 리스트의 첫 번째 및 두 번째 항목에 추가될 수도 있고, 마지막 두 개의 항목에 추가될 수도 있다.
도 18은 본 발명의 또 다른 실시예에 따른 확장 병합 움직임 후보 리스트 구성 방법을 설명하기 위한 도면이다.
기본 병합 움직임 후보 리스트 구성 시, 주변 블록으로부터 유도된 움직임 정보들로 리스트를 구성하지 못할 경우, 임의 기본값의 움직임 벡터를 리스트에 추가할 수 있다.
이러한 경우 도 18과 같이, 기본값들로 채워진 움직임 후보들을 미리 제거한 후, 추가적인 움직임 정보를 확장 병합 움직임 후보 리스트에 추가할 수 있다.
기본 병합 움직임 후보 리스트의 엔트리 중 기본값을 갖는 움직임 정보 C, 움직임 정보 D, 움직임 정보 E는 제거되고, 움직임 정보 A, 움직임 정보 B에 움직임 정보 F, 움직임 정보 G, 움직임 정보 H, 움직임 정보 I가 추가되어 확장 병합 움직임 후보 리스트가 구성된다.
이를 통해 보다 많은 추가적인 움직임 정보가 움직임 후보로 이용될 수 있다.
도 12 내지 도 18을 참조하여 설명된 영상의 부호화 및 복호화 방법은 다양하게 변형 가능하다.
예를 들어, 기본 인코더(혹은 기본 모듈)를 시점 0(View 0)에 대한 일반 영상뿐만 아니라 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이 정보 맵들에 적용할 수 있다.
또 다른 실시 예로, 기본 인코더(혹은 기본 모듈)를 복잡도가 높은 작은 블록 단위(예컨대, 8x8 단위 혹은 임의의 블록 크기)에만 적용할 수 있다. 이때, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이 정보 맵들에 대하여, 작은 블록 크기 이하에서는 기본 인코더(혹은 기본 모듈)를 사용하여 부호화하고, 작은 블록 크기보다 큰 블록에 대해서는 기본 인코더(혹은 기본 모듈)와 부분 인코더(혹은 확장 모듈)를 사용하여 부호화할 수 있다. 기본 인코더(혹은 기본 모듈)는 도 13과 도 15에서 기본 병합 움직임 리스트 구성 단계를 수행하는 구성을 의미할 수 있으며, 또한 부분 인코더(혹은 확장 모듈)은 도 13과 도 15에서 추가 병합 움직임 리스트 수행하는 구성을 의미할 수 있다.
도 19는 본 발명의 일 실시예에 따른 확장 움직임 병합 후보 리스트 구성을 설명하기 위한 제어 흐름도이다.
우선, 기본 움직임 병합 후보 리스트가 생성된다(S1910).
그런 후, 기본 움직임 병합 후보 리스트에서 기본값을 제거하는 리스트 정리가 수행된다(S1920).
마지막으로, 주변 블록의 시점 합성 예측 사용 정보, 주변 시점 블록의 움직임 정보, 시점 간 차이를 이용하여 3D 영상을 위하여 필요한 추가로 사용될 정보를리스트에 추가함으로써(S1930), 확장 움직임 병합후보 리스트가 출력된다(S1940).
도 20 내지 도 24는 은 본 발명의 일 실시예에 따른 확장 병합 움직임 후보 리스트 구성 방법을 설명하기 위한 제어 흐름도이다.
L은 최종적으로 출력되는 병합 움직임 후보 리스트를 의미하고, 이러한 L은 이는 기본 병합 움직임 후보 리스트 구성 단계, 즉 공간적 움직임 정보(A1,…,B2) 유도 과정, 시간적 움직임 정보(temporal candidate) 유도 과정을 거쳐 구성된 기본 병합 움직임 후보 리스트를 입력으로 하여 확장 움직임 후보 리스트 구성 과정을 통하여 완성된다.
AvailableA1는 현재 블록의 좌측 블록(A1)의 움직임 정보를 후보로 사용 가능한지 여부, AvailableB1은 현재 블록의 상단 블록(B1)의 움직임 정보를 후보로 사용 가능한지 여부, AvailableB0는 현재 블록의 우상단 블록(B0)의 움직임 정보를 후보로 사용 가능한지 여부를 나타낸다.
nS는 좌측 블록(A1), 상단 블록(B1), 우상단 블록 블록(B0)의 음직임 후보 중, L에 포함 되어 있는 후보의 개수를 나타내고, nB는 L에 포함되어 있는 움직임 후보 중 기본 병합 움직임 후보의 개수를 나타낸다. nE는 확장 병합 움직임 후보 리스트 구성 시 새로 추가 된 후보 개수를 나타낸다.
또한, VSP 리스트는 움직임 정보가 시점 합성 예측(VSP)을 사용하였는지 여부를 나타낸다.
도 20은 현재 L에 포함되어 있는 움직임 정보 중 공간적 움직임 정보가 시점 합성 예측을 통하여 유도된 것인지 여부를 판단한다.
도시된 바와 같이, 현재 블록의 좌측 블록(A1)의 움직임 정보, 상단 블록(B1)의 움직임 정보, 우상단 블록(B0)의 움직임 정보가 각각 시점 합성 예측을 사용하여 유도되었다면 VSP 리스트(VPS[])의 값은 1로 변경된다. 그 후, L을 역방향으로 순회하며 움직임 정보가 기본값(DEFAULT)가 아닌 움직임 정보의 개수를 nB로 설정한다. 예를 들어, 리스트 L이 {A1, B1, B0, DEFAULT, DEFAULT, DEFAULT}로 구성되어 있다면 nB는 3이 된다.
도시하지 않았지만, 기본 병합 움직임 후보 리스트를 구성하는 공간적 움직임 후보 중 좌하단 블록(A0)의 움직임 정보 및 좌상단 블록(B2)의 움직임 정보에 대하여도 시점 합성 예측을 사용하여 유도되었는지 여부가 판단될 수 있다.
도 21은 본 발명의 일 실시예에 따른 시간적 움직임 정보를 이용한 도 21에 후속적인 제어 흐름도이다. 도 21을 통하여 현재 깊이 정보 블록에 상응하는 영상 블록의 움직임 정보를 병합 움직임 후보 리스트에 추가할 수 있다.
우선, L의 검색 인덱스 pIdx를 0으로 설정하고, 확장 후보 인덱스 nE를 0으로 초기화 한다.
AvailableT는 깊이정보 맵 부호화 시, 동일한 위치의 영상 블록의 움직임 정보를 후보로 이용 가능한지 여부를 나타내고, candT는 현재 깊이 정보 블록에 상응하는 영상 블록의 움직임 정보를 나타낸다.
AvailableT가 1이고 L[0]부터 L[nB-1] 중의 움직임 정보와 candT와 중복 된다면, 중복되는 위치를 pIdx라 할 때 L[0]부터 L[pIdx-1] 값을 한 칸씩 오른쪽으로 이동(shift)시킨 후 L[0] 위치에 candT를 추가한다. 즉, 기본 병합 확장 리스트를 구성했던 움직임 정보와 candT가 동일하다면, 병합 확장 리스트의 첫 번째 엔트리부터 동일한 위치까지의 엔트리까지 한 개씩 다음 순서로 밀려나고, L[0]에 candT가 추가된다. L에 candT가 추가되면, 새로 추가 된 후보 개수를 나타내는 nE이 1만큼 증가된다.
이 때, L[0]부터 L[nB-1] 중의 움직임 정보와 candT와 중복되는 위치 pIdx가 nS보다 작다면 nS와 nB를 1 감소시키고, 그렇지 않으면 nB만 1 감소된다.
AvailableT가 1이고 L[0]부터 L[nB-1] 중 candT와 중복되는 움직임 후보가 없다면, L[0]부터 L[nB-1]까지 한 칸씩 오른쪽으로 이동(shift)시킨 후 L[0] 위치에 candT이 추가되고 nE이 1만큼 증가된다.
도 21에서 AvailableT이 0인 경우, 즉, 현재 깊이 정보 블록에 상응하는 영상 블록의 움직임 정보가 가용하지 않는 경우, 도 22의 과정이 수행된다. 도 22는 본 발명의 일 실시예에 따른 시점간 움직임 정보를 이용한 도 21에 후속적인 제어 흐름도이다.
도 22을 통하여 현재 블록에 상응하는 주변 시점 블록의 움직임 정보(temporal inter-view motion information)를 병합 움직임 후보 리스트에 추가할 수 있다.
우선, L의 검색 인덱스 pIdx를 0으로 설정하고, 확장 후보 인덱스 nE를 0으로 초기화 한다.
AvailableIVT는 현재 블록에 상응하는 주변 시점 블록의 움직임 정보(temporal inter-view motion information)를 후보를 이용 가능 여부를 나타내고, candIVT는 주변 시점 블록의 움직임 정보를 나타낸다.
AvailableIVT가 1이고 L[0]부터 L[nB-1] 중의 움직임 정보와 candIVT와 중복 된다면, 중복되는 위치를 pIdx라 할 때 L[0]부터 L[pIdx-1] 값을 한 칸씩 오른쪽으로 이동(shift)시킨 후 L[0] 위치에 candIVT를 추가한다. 즉, 기본 병합 확장 리스트를 구성했던 움직임 정보와 candIVT가 동일하다면, 병합 확장 리스트의 첫 번째 엔트리부터 동일한 위치까지의 엔트리까지 한 개씩 다음 순서로 밀려나고, L[0]에 candIVT가 추가된다. L에 candIVT가 추가되면, 새로 추가 된 후보 개수를 나타내는 nE이 1만큼 증가된다.
이 때, L[0]부터 L[nB-1] 중의 움직임 정보와 candIVT와 중복되는 위치 pIdx가 nS보다 작다면 nS와 nB를 1 감소시키고, 그렇지 않으면 nB만 1 감소된다.
AvailableIVT가 1이고 L[0]부터 L[nB-1] 중 candIVT와 중복되는 움직임 후보가 없다면, L[0]부터 L[nB-1]까지 한 칸씩 오른쪽으로 이동(shift)시킨 후 L[0] 위치에 candIVT이 추가되고 nE이 1만큼 증가된다.
도 23은 본 발명의 일 실시예에 따른 시점간 차이(disparity) 정보를 이용한 도 22에 후속적인 제어 흐름도이다.
도 23을 통하여 시점 간 차이(inter-view disparity)를 병합 움직임 후보 리스트에 추가할 수 있다.
AvailableIVD는 시점 간 차이(inter-view disparity)를 움직임 정보로서 이용 가능한지 여부를 나타내고, candIVD는 서로 다른 시점에서 유도한 시점 간 차이를 나타낸다.
AvailableIVD가 1이고 L[0]부터 L[nS-1] 중 candIVD와 중복 되는 후보가 없다면, L[nS+nE]부터 L[nB+nE-1]까지 한 칸씩 오른쪽으로 이동(shift)시킨 후 L[nS+nE] 위치에 candIVD를 추가하고, nE를 1 증가시킨다.
즉, 시점 간 차이는 기본 병합 움직임 후보에 포함되었던 공간적 움직임 후보 다음 위치에 추가될 수 있다.
도 24는 본 발명의 일 실시예에 따른 시간적 움직임 정보를 이용한 도 23에 후속적인 제어 흐름도이다.
도 23을 통하여 시점 간 차이(inter-view disparity)를 병합 움직임 후보 리스트에 추가할 수 있다.
우선, VPS 인덱싱을 위해 변수 n을 0으로 초기화 한다. AvailableVSP는 현재 블록에 시점 간 예측(inter-view disparity)을 사용할 수 있는지 여부를 나타낸다. CandVSP는 시점 합성 예측 모드에 의한 움직임 정보를 의미한다.
MAX는 확장 병합 움직임 리스트를 구성하는 움직임 후보의 최대 개수를 의미하며, MAX는 예를 들어 6일 수 있다.
만약, AvailableVSP가 1이면, L[nS+nE]부터 L[nS+nE-1]까지 한 칸씩 오른쪽으로 이동(shift)시킨 후 L[nS+nE] 위치에 candVSP를 추가하고, VSP[nS+nE]을 1로 변경하고, nE를 1 증가시킨다. 즉, candVSP는 기본 병합 움직임 후보에 포함되었던 공간적 움직임 후보 다음 위치에 추가될 수 있다
그 후, n+nB가 MAX보다 작으면 L[n+nB] 부터 L[MAX-1]을 기본값(DEFAULT)으로 구성한다. 기본값의 일예로, 움직임 벡터로써 0 벡터를 병합 움직임 후보에 추가할 수 있다.
상술한 비디오 부호화 및 복호화 방법은 현재 MPEG(Moving Picture Experts Group)과 VCEG(Video Coding Experts Group)에서 공동으로 표준화를 진행 중인 HEVC(High Efficiency Video Coding)를 사용할 수 있다. 따라서 상술한 부호화 및 복호화 방법은 표 1과 같이 블록 크기 혹은 CU(Coding Uint) 깊이 혹은 TU(Transform Unit) 깊이 등에 따라 적용 범위를 달리할 수 있다.
Figure 112014062114531-pat00001
표 1은 주어진 CU(혹은 TU) 깊이가 2인 경우, 본 발명의 부호화 및 복호화 방법들을 적용하는 범위 결정 방식의 예를 나타낸 것이다. "0"은 해당 깊이에 본 발명에 따른 부호화 및 복호화 적용하는 것을 나타내고 "1"은 해당 깊이에 본 발명에 따른 부호화 및 복호화 적용하지 않는 것을 나타낸다.
CU 깊이에 따라 적용 범위를 달리하는 하는 경우, 표 1에 나타난 바와 같이,) 주어진 깊이 이상의 깊이에만 적용하는 방식(방식A, 주어진 깊이 이하에만 적용하는 방식 (방식B), 주어진 깊이에만 적용하는 방식 (방식C) 이 있을 수 있다.
모든 깊이에 대하여 본 발명의 방법들을 적용하지 않는 경우는 임의의 지시자(flag)를 사용하여 나타낼 수도 있고, CU 깊이의 최대값보다 하나 더 큰 값의 CU 깊이 값을 시그널링할 수도 있다.
이 때, 적용 범위를 결정하는 변수(즉, 크기 혹은 깊이 정보)는 부호화기 및 복호화기가 미리 정해진 값을 사용하도록 설정할 수도 있고, 프로파일 또는 레벨에 따라 정해진 값을 사용하도록 할 수도 있다. 또는, 부호화기가 변수 값을 비트스트림에 포함시켜 전송하면 복호화기는 비트스트림으로부터 이 값을 유도하여 사용할 수도 있다.
한편, 상술한 방법의 적용 여부는 비트스트림에 포함되어 시그널링 될 수 있으며, SPS(Sequence Parameter Set), PPS(Picture Parameter Set), 슬라이스 헤더(Slice Header)에 아래와 같은 구문 요소(Syntax)로 표현될 수 있다. 이에 대한 구문 요소는 표 2 내지 표 5과 같다.
Figure 112014062114531-pat00002
Figure 112014062114531-pat00003
Figure 112014062114531-pat00004
Figure 112014062114531-pat00005
reuse_enabled_flag는 본 발명에 따른 비디오 부호화 및 복호화 방법의 적용 여부를 알려준다. reuse_enabled_flag가 ‘1’이면, 독립적인 시점(Independent View; 시점 0(View 0))에 대한 일반 영상의 부호화/복호화 모듈을 재사용하여 의존적인 시점(dependent view; 시점 1(View 1)과 시점 2(View 2))에 대한 일반 영상과 깊이 정보 맵들을 부호화/복호화(이하, 제안 방법)하는 것을 나타내고, reuse_enabled_flag가 ‘0’이면 독립적인 시점(Independent View; 시점 0(View 0))에 대한 일반 영상의 부호화/복호화 모듈을 재사용하지 않고 의존적인 시점(dependent view; 시점 1(View 1)과 시점 2(View 2))에 대한 일반 영상과 깊이 정보 맵들을 부호화/복호화하는 것을 의미한다. 그 반대도 가능하다.
reuse_disabled_info는 제안 방법이 적용되었을 경우(혹은 “reuse_enabled_flag”이 1인 경우) 활성화되는 구문 요소이다.
reuse_disabled_info는 CU의 깊이(depth) (혹은 CU의 크기(size) 혹은 매크로 블록의 크기 혹은 서브 매크로 블록의 크기 혹은 블록의 크기)에 따라 제안 방법의 적용 여부를 알려줄 수 있다. 예를 들어, reuse_disabled_info가 ‘0’일 경우에는 제안 방법이 모든 블록 크기에 적용될 수 있다. reuse_disabled_info가 ‘1’일 경우에는 제안 방법이 4x4 블록 크기보다 큰 단위에만 적용할 수 있다. 또는 reuse_disabled_ info가 ‘2’일 경우에는 제안 방법이 8x8 블록보다 큰 단위에만 적용되는 것을 나타낼 수 있다.
물론 그 역도 가능하다. 예를 들어 reuse_disabled_info가 ‘1’일 경우에는 제안 방법이 4x4 블록 크기보다 작은 단위에만 적용되는 것을 나타낼 수 있다. 즉, reuse_disabled_info를 이용하여 다양하게 적용 방법을 시그널링할 수 있다.
상기의 시그널링을 이용하여 픽쳐(혹은 프레임) 단위로 제안 방법의 적용 여부를 결정할 수 있다. 또는 제안 방법을 P 픽쳐(혹은 프레임)에만 적용하거나 B 픽쳐(혹은 프레임)에만 적용되도록 제안할 수도 있다.
상술된 제안 방법들은 3차원 비디오 코덱뿐만 아니라 스케일러블 비디오 코덱에도 적용할 수 있다. 실시 일예로, 스케일러블 비디오 코덱의 기본 계층에서 사용하는 부호화/복호화 모듈을 그대로 향상 계층에 적용한 후, 추가적으로 부분 부호화/복호화 모듈을 이용하여 향상 계층을 부호화/복호화할 수 있다. 일 예로, 스케일러블 비디오 코덱의 기본 계층에서 사용하는 “기본 병합 움직임 리스트 구성“ 모듈을 그대로 향상 계층에 적용하여 “기본 병합 움직임 후보 리스트”를 구성한 후, 추가적으로 “추가 병합 움직임 리스트 구성” 모듈을 이용하여 “기본 병합 움직임 후보 리스트”를 재설정(변경)하여 향상 계층을 위한 “확장 병합 움직임 후보 리스트”를 구성할 수 있다.
살펴본 바와 같이, 본 발명은 역방향 호환성을 제공하는 독립적인 시점에 대한 일반 영상의 부호화에 사용되는 모듈을 의존적인 시점에 대한 일반 영상과 깊이 정보 맵들에 그대로 적용하여 구현 복잡도를 감소시키고, 의존적인 시점(dependent view; 시점 1(View 1)과 시점 2(View 2))에 대한 일반 영상과 깊이 정보 맵들에 부분 인코더를 추가적으로 적용함으로써 부호화 효율을 향상시킬 수 있다.
상술한 실시예에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
상술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
410: 비디오 인코더 415 : 텍스쳐 인코더
417 : 깊이정보 인코더 420 : 비디오 디코더
425 : 텍스쳐 디코더 427 : 깊이정보 디코더

Claims (12)

  1. 복수의 시점(view)을 포함하는 비디오를 복호화하는 방법에 있어서,
    현재 블록의 주변 블록 및 시간 대응 블록의 움직임 정보를 이용하여 기본 병합 움직임 후보 리스트를 구성하는 단계;
    상기 현재 블록이 속하는 픽쳐가 깊이 정보 맵 픽쳐 또는 의존적 시점 픽쳐인지 판단하는 단계;
    상기 판단 결과에 따라, 상기 기본 병합 움직임 후보 리스트를 기초로 깊이 정보 맵에 대한 정보 또는 상기 의존적 시점의 시점 정보를 이용하여 확장 병합 움직임 후보 리스트를 구성하는 단계를 포함하고,
    상기 확장 병합 움직임 후보 리스트는 상기 현재 블록과 상이한 시점의 블록에 대한 정보, 시점 합성 예측 정보, 및 시점 간 차이(inter-view disparity) 정보 중 적어도 하나를 포함하는, 비디오 복호화 방법.
  2. 제1항에 있어서,
    상기 기본 병합 움직임 후보 리스트에 포함되어 있는 주변 블록 움직임 정보가 시점 합성 예측을 통하여 유도되었는지 여부를 판단하는 단계를 더 포함하는, 비디오 복호화 방법.
  3. 제1항에 있어서,
    상기 확장 병합 움직임 후보 리스트를 구성하는 단계는 상기 깊이 정보 맵 부호화 시 상기 현재 블록의 동일한 위치의 영상 블록의 움직임 정보(candT)를 추가하는 단계를 더 포함하고,
    상기 candT를 추가하는 단계는,
    상기 candT의 가용성 여부를 판단하는 단계와;
    상기 candT가 가용하면, 상기 candT를 상기 확장 병합 움직임 후보 리스트의 첫 번째 후보로 추가하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.
  4. 제1항에 있어서,
    상기 확장 병합 움직임 후보 리스트를 구성하는 단계는 상기 현재 블록에 대응하는 주변 시점 블록의 움직임 정보(candIVT)를 추가하는 단계를 더 포함하고,
    상기 candIVT를 추가하는 단계는,
    상기 candIVT의 가용성 여부를 판단하는 단계와;
    상기 candIVT가 가용하면, 상기 candIVT를 상기 확장 병합 움직임 후보 리스트의 첫 번째 후보로 추가하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.
  5. 제1항에 있어서,
    상기 확장 병합 움직임 후보 리스트를 구성하는 단계는 시점 간 차이 정보(candIVD)를 추가하는 단계를 더 포함하고,
    상기 candIVD를 추가하는 단계는,
    상기 candIVD의 가용성 여부를 판단하는 단계와;
    상기 candIVD가 가용하면, 상기 candIVD를 상기 확장 병합 움직임 후보 리스트에서 상기 주변 블록의 움직임 정보 이후에 추가하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.
  6. 제1항에 있어서,
    상기 확장 병합 움직임 후보 리스트를 구성하는 단계는 시점 합성 예측 모드에 의한 움직임 정보 (candVSP)를 추가하는 단계를 더 포함하고,
    상기 candVSP 를 추가하는 단계는,
    상기 candVSP의 가용성 여부를 판단하는 단계와;
    상기 candVSP가 가용하면, 상기 candVSP를 상기 확장 병합 움직임 후보 리스트에서 상기 주변 블록의 움직임 정보 이후에 추가하는 단계를 포함하는, 비디오 복호화 방법.
  7. 복수의 시점(view)을 포함하는 비디오를 복호화하는 장치에 있어서,
    현재 블록의 주변 블록 및 시간 대응 블록의 움직임 정보를 이용하여 기본 병합 움직임 후보 리스트를 구성하는 기본 병합 움직임 후보 구성 모듈; 및
    상기 기본 병합 움직임 후보 리스트를 기초로, 깊이 정보 맵에 대한 정보 또는 의존적 시점의 시점 정보를 이용하여 확장 병합 움직임 후보 리스트를 구성하는 확장 병합 움직임 리스트 구성 모듈을 포함하고,
    상기 확장 병합 움직임 리스트 구성 모듈은, 상기 현재 블록이 속하는 픽쳐가 깊이 정보 맵 픽쳐 또는 의존적 시점 픽쳐인지에 대한 판단 결과에 따라, 상기 확장 병합 움직임 후보 리스트를 구성하고,
    상기 확장 병합 움직임 후보 리스트는 상기 현재 블록과 상이한 시점의 블록에 대한 정보, 시점 합성 예측 정보, 및 시점 간 차이(inter-view disparity) 정보 중 적어도 하나를 포함하는, 비디오 복호화 장치.
  8. 제7항에 있어서,
    상기 확장 병합 움직임 리스트 구성 모듈은 상기 기본 병합 움직임 후보 리스트에 포함되어 있는 주변 블록 움직임 정보가 시점 합성 예측을 통하여 유도되었는지 여부를 판단하는 것을 특징으로 하는, 비디오 복호화 장치.
  9. 제7항에 있어서,
    상기 확장 병합 움직임 리스트 구성 모듈은 상기 깊이 정보 맵 부호화 시 상기 현재 블록의 동일한 위치의 영상 블록의 움직임 정보(candT)를 추가하고,
    상기 candT를 추가 시 상기 candT의 가용성 여부를 판단하고, 상기 candT가 가용하면 상기 candT를 상기 확장 병합 움직임 후보 리스트의 첫 번째 후보로 추가하는 것을 특징으로 하는 비디오 복호화 장치.
  10. 제7항에 있어서,
    상기 확장 병합 움직임 리스트 구성 모듈은 상기 현재 블록에 대응하는 주변 시점 블록의 움직임 정보(candIVT)를 추가하고,
    상기 candIVT를 추가 시 상기 candIVT의 가용성 여부를 판단하고, 상기 candIVT가 가용하면 상기 candIVT를 상기 확장 병합 움직임 후보 리스트의 첫 번째 후보로 추가하는 것을 특징으로 하는 비디오 복호화 장치.
  11. 제7항에 있어서,
    상기 확장 병합 움직임 리스트 구성 모듈은 시점 간 차이 정보(candIVD)를 추가하고,
    상기 candIVD를 추가 시, 상기 candIVD의 가용성 여부를 판단하고, 상기 candIVD가 가용하면 상기 candIVD를 상기 확장 병합 움직임 후보 리스트에서 상기 주변 블록의 움직임 정보 이후에 추가하는 것을 특징으로 하는 비디오 복호화 장치.
  12. 제7항에 있어서,
    상기 확장 병합 움직임 리스트 구성 모듈은 시점 합성 예측 모드에 의한 움직임 정보(candVSP)를 추가하고,
    상기 candVSP를 추가 시, 상기 candVSP의 가용성 여부를 판단하고, 상기 candVSP가 가용하면 상기 candVSP를 상기 확장 병합 움직임 후보 리스트에서 상기 주변 블록의 움직임 정보 이후에 추가하는 것을 특징으로 하는 비디오 복호화 장치.
KR1020140081943A 2013-07-02 2014-07-01 복수의 레이어를 포함하는 영상의 부호화 및 복호화 방법 KR101854003B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US14/901,766 US10080037B2 (en) 2013-07-02 2014-07-02 Method for encoding and decoding video including plurality of layers
EP14819793.2A EP3018908B1 (en) 2013-07-02 2014-07-02 Method and apparatus for decoding video including a plurality of layers
PCT/KR2014/005907 WO2015002460A1 (ko) 2013-07-02 2014-07-02 복수의 레이어를 포함하는 영상의 부호화 및 복호화 방법
US16/058,117 US10681378B2 (en) 2013-07-02 2018-08-08 Method for encoding and decoding video including plurality of layers

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20130077389 2013-07-02
KR1020130077389 2013-07-02
KR20130084533 2013-07-18
KR1020130084533 2013-07-18

Publications (2)

Publication Number Publication Date
KR20150004289A KR20150004289A (ko) 2015-01-12
KR101854003B1 true KR101854003B1 (ko) 2018-06-14

Family

ID=52476595

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140081943A KR101854003B1 (ko) 2013-07-02 2014-07-01 복수의 레이어를 포함하는 영상의 부호화 및 복호화 방법

Country Status (4)

Country Link
US (2) US10080037B2 (ko)
EP (1) EP3018908B1 (ko)
KR (1) KR101854003B1 (ko)
WO (1) WO2015002460A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014058280A1 (ko) 2012-10-12 2014-04-17 한국전자통신연구원 영상의 부호화/복호화 방법 및 이를 이용하는 장치
US10484697B2 (en) 2014-09-09 2019-11-19 Qualcomm Incorporated Simultaneous localization and mapping for video coding
KR102574479B1 (ko) * 2017-09-13 2023-09-04 삼성전자주식회사 기본 움직임 벡터를 이용하여 움직임 벡터를 부호화하는 장치 및 방법, 및 복호화 장치 및 방법
KR102389157B1 (ko) 2017-09-19 2022-04-21 한국전자통신연구원 계층 프로젝션 기반 6-자유도 전방위 입체 영상 제공 방법 및 장치
TWI744661B (zh) 2018-06-29 2021-11-01 大陸商北京字節跳動網絡技術有限公司 要根據模式檢查的查找表中的運動候選的數量
KR20210025537A (ko) 2018-06-29 2021-03-09 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 하나 또는 다수의 룩업 테이블들을 사용하여 이전에 코딩된 모션 정보를 순서대로 저장하고 이를 사용하여 후속 블록들을 코딩하는 개념
CN110662056B (zh) 2018-06-29 2022-06-07 北京字节跳动网络技术有限公司 哪个查找表需要更新或不更新
TWI731362B (zh) * 2018-06-29 2021-06-21 大陸商北京字節跳動網絡技術有限公司 擴展Merge模式與其他視頻編碼工具之間的交互
CN114845108A (zh) 2018-06-29 2022-08-02 抖音视界(北京)有限公司 查找表的更新:fifo、约束的fifo
GB2590310B (en) 2018-09-12 2023-03-22 Beijing Bytedance Network Tech Co Ltd Conditions for starting checking HMVP candidates depend on total number minus K
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
WO2020147773A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Inserting order of motion candidates in lut
US11704839B2 (en) * 2019-12-17 2023-07-18 Electronics And Telecommunications Research Institute Multiview video encoding and decoding method

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8823821B2 (en) * 2004-12-17 2014-09-02 Mitsubishi Electric Research Laboratories, Inc. Method and system for processing multiview videos for view synthesis using motion vector predictor list
KR20080015713A (ko) 2006-08-16 2008-02-20 엘지전자 주식회사 비디오 신호의 디코딩/인코딩 방법 및 장치
US8691231B2 (en) * 2011-06-03 2014-04-08 Merrimack Pharmaceuticals, Inc. Methods of treatment of tumors expressing predominantly high affinity EGFR ligands or tumors expressing predominantly low affinity EGFR ligands with monoclonal and oligoclonal anti-EGFR antibodies
WO2012171442A1 (en) * 2011-06-15 2012-12-20 Mediatek Inc. Method and apparatus of motion and disparity vector prediction and compensation for 3d video coding
CN103875249B (zh) 2011-08-09 2018-05-04 三星电子株式会社 用于多视点视频预测编码的方法和装置以及用于多视点视频预测解码的方法和装置
KR20130044189A (ko) 2011-10-21 2013-05-02 광운대학교 산학협력단 다시점 비디오 부호화/복호화 방법 및 그 장치
KR101662918B1 (ko) 2011-11-11 2016-10-05 지이 비디오 컴프레션, 엘엘씨 깊이-맵 추정 및 업데이트를 사용한 효율적인 멀티-뷰 코딩
US10021388B2 (en) * 2012-12-26 2018-07-10 Electronics And Telecommunications Research Institute Video encoding and decoding method and apparatus using the same

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Results on View Synthesis Prediction, JCT3V meeting, ISO/IEC JTC1/SC29/WG11, JCT3V-B0102 (2012.10.09.) *
Results on View Synthesis Prediction, JCT3V meeting, ISO/IEC JTC1/SC29/WG11, JCT3V-B0102 (2012.10.09.)*
Simplification of VSP insertion process, JCT3V meeting, ISO/IEC JTC1/SC29/WG11, JCT3V-D0117 (2013.04.15.) *
Simplification of VSP insertion process, JCT3V meeting, ISO/IEC JTC1/SC29/WG11, JCT3V-D0117 (2013.04.15.)*

Also Published As

Publication number Publication date
EP3018908A4 (en) 2017-03-01
KR20150004289A (ko) 2015-01-12
EP3018908B1 (en) 2021-05-05
US20180352256A1 (en) 2018-12-06
WO2015002460A1 (ko) 2015-01-08
US20160373784A1 (en) 2016-12-22
US10681378B2 (en) 2020-06-09
EP3018908A1 (en) 2016-05-11
US10080037B2 (en) 2018-09-18

Similar Documents

Publication Publication Date Title
KR101854003B1 (ko) 복수의 레이어를 포함하는 영상의 부호화 및 복호화 방법
KR102062821B1 (ko) 필터 정보 예측을 이용한 영상 부호화/복호화 방법 및 장치
US10194133B2 (en) Device and method for eliminating redundancy of view synthesis prediction candidate in motion merge mode
TWI539791B (zh) 三維視頻寫碼中導出之視差向量
KR102185200B1 (ko) 비디오 데이터 디코딩 방법 및 비디오 데이터 디코딩 장치
KR20150064118A (ko) 비디오 코딩에서의 잔차 예측 수행
KR20080092359A (ko) 멀티 뷰 비디오 코딩을 위한 방법 및 장치
KR20150139953A (ko) 백워드 뷰 합성 예측
JP6941656B2 (ja) サブ予測ユニット単位の時間的な視点間動き情報の誘導方法及び装置
KR20160034926A (ko) 비디오 정보의 스케일러블 코딩을 위한 디바이스 및 방법
JP2016508354A (ja) 3dビデオにおけるビュー合成
KR102343817B1 (ko) 멀티-뷰 비디오의 디코딩 방법 및 장치
KR20160072100A (ko) 멀티-뷰 비디오를 디코딩하는 비디오 디코딩 방법 및 장치
KR20170002573A (ko) 비디오 코딩에서 뎁스 픽처 코딩 방법 및 장치
WO2012044093A2 (ko) 필터 정보 예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2013069933A1 (ko) 영상 부호화/복호화 방법 및 그 장치
WO2015141977A1 (ko) 3d 비디오 부호화/복호화 방법 및 장치
KR101672008B1 (ko) 변이 벡터 예측 방법 및 장치
CN116325725A (zh) 多视图的视图位置辅助增强信息的消息
KR20160126611A (ko) 3차원 영상 부호화 및 복호화에 있어서 적응적 병합 후보 선택 장치 및 방법
KR20160002194A (ko) 적응적 병합후보 선택방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant