KR101672008B1 - 변이 벡터 예측 방법 및 장치 - Google Patents

변이 벡터 예측 방법 및 장치 Download PDF

Info

Publication number
KR101672008B1
KR101672008B1 KR1020140090231A KR20140090231A KR101672008B1 KR 101672008 B1 KR101672008 B1 KR 101672008B1 KR 1020140090231 A KR1020140090231 A KR 1020140090231A KR 20140090231 A KR20140090231 A KR 20140090231A KR 101672008 B1 KR101672008 B1 KR 101672008B1
Authority
KR
South Korea
Prior art keywords
vector
direction component
vertical direction
block
motion
Prior art date
Application number
KR1020140090231A
Other languages
English (en)
Other versions
KR20150010631A (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 KR20150010631A publication Critical patent/KR20150010631A/ko
Application granted granted Critical
Publication of KR101672008B1 publication Critical patent/KR101672008B1/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/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
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding

Landscapes

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

Abstract

본 발명은 3차원 영상 부호화 장치는 깊이 정보 맵을 수신하는 단계; 3차원 영상 부호화 장치는 다 시점 카메라로부터 수신한 실제 영상(texture) 및 상기 수신한 깊이 정보 맵을 통해 변이 벡터(Disparity Vector, DV)를 생성하는 단계; 및 3차원 영상 부호화 장치는 상기 변이 벡터 및 다 시점 카메라로부터 수신한 실제 영상의 부호화를 수행하는 단계를 포함하고, 상기 변이 벡터는 수평 방향 성분(DVx) 및 수평 방향에 대해 직각인 수직 방향 성분(DVy)을 가지고, 주변 블록을 통해 상기 수직 방향 성분을 재설정 하는 3차원 영상 부호화 방법을 제공한다.

Description

변이 벡터 예측 방법 및 장치{Method And Apparatus For Estimating Disparity Vector}
본 발명은 영상 부호화 및/또는 복호화 장치 및 방법에 관한 것으로, 특히 변이 벡터로부터 실제 영상(Texture) 및 깊이 정보 맵(Depth map)을 생성하는 영상 부호화 및/또는 복호화 장치 및 방법에 관한 것이다.
정보통신산업의 지속적인 발달은 방송 수신 단말기의 고성능화 및 디스플레이 성능 향상을 가져왔다. 특히, 방송 수신 단말기의 고성능화 및 디스플레이 기술의 지속적인 발달로 인하여, 방송 수신 단말기는 HD(High Definition)에서부터 더 나아가 최근에 이르러서는 FHD(Full High Definition) 수준의 영상을 재생할 수 있는 디스플레이를 구비할 수 있게 되었다.
이 뿐만이 아니라, 방송 수신 단말기의 고성능화는 방송 제공자로 하여금 3차원 영상의 제공을 촉진시켰다. 하지만, 기존의 3차원 영상 제공 방법인 다 시점 카메라를 통한 3차원 영상 제공 방법은 충분한 화질의 영상을 제공하지 못했다. 특히, 다 시점 카메라를 이용한 3차원 영상 제공 방법에서 사용하는 변이 벡터는, 수평 방향을 가지는 단일 방향 성분만을 제공하여, 수신자에게 충분한 화질을 제공하지 못했다. 이 뿐만이 아니라, 수평 방향 성분만을 가지는 변이 벡터의 한정된 성능으로, 인해 다 시점 카메라에서 추출한 영상에 포함된 다수의 정보가 손실됐었다.
따라서, 본 발명은 변이 벡터(Disparity Vector)의 값을 재설정 하여, 개선된 화질을 제공하는 영상 부호화 및/또는 복호화 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명은 수평 방향 성분 및 수직 방향 성분을 포함하는 변이 벡터(Disparity Vector)를 제공하여 개선된 화질을 제공하는 영상 부호화 및/또는 복호화 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명은 변이 벡터의 수직 방향 성분을 '0'으로 제한하지 않고, 주변 방향 블록을 토대로 변이 벡터를 재설정 하여, 개선된 화질을 제공하는 영상 부호화 및/또는 복호화 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명의 일 실시예에 따르면, 깊이 정보 맵을 수신하여, 깊이 정보 맵을 부호화 하는 깊이 정보 맵 인코더(Depth Encoder); 및 다 시점 카메라로부터 수신한 실제 영상(Texture) 및 상기 깊이 정보 맵을 통해 변이 벡터(Disparity Vector, DV)를 생성하고, 변이 벡터를 주변 블록을 통해 수평 방향 성분(DVx) 및 수평 방향에 대해 직각인 수직 방향 성분(DVy)을 가지도록 재설정하고, 상기 변이 벡터 및 실제 영상을 부호화하는 실제 영상 인코더(Texture Encoder)를 포함하는 3차원 영상 부호화 장치를 포함할 수 있다.
이때, 상기 변이 벡터의 수직 방향 성분(DVy)은 상기 주변 블록 중 블록의 움직임 벡터(Motion Vector)의 수평 방향 성분과 상기 변이 벡터의 수평 방향 성분의 차이가 가장 작은 블록을 선택 하고, 상기 선택된 블록의 수직 움직임 벡터를 상기 변이 벡터의 수직 방향 성분으로 설정하는 것을 특징으로 하는 3차원 영상 부호화 장치를 포함할 수 있다.
이때, 상기 주변 블록 중 블록의 움직임 벡터(Motion Vector)의 수평 방향 성분과 상기 변이 벡터의 수평 방향 성분의 차이가 가장 작은 블록은, 상기 차이가 기 설정된 문턱값(Threshold) 이내일 경우, 상기 블록의 움직임 벡터의 수직 방향 성분을 변이 벡터의 수직 방향 성분으로 설정하는 것을 특징으로 하는 3차원 영상 부호화 장치를 포함할 수 있다.
이때, 상기 문턱값(Threshold)은 시퀀스, 픽쳐, 슬라이스, CU 또는 블록 단위로 설정되는 것을 특징으로 하는 3차원 영상 부호화 장치를 포함할 수 있다.
이때, 상기 변이 벡터의 수직 방향 성분(DVy)은, 상기 주변 블록으로부터 유도된 병합 움직임 후보 리스트(merge list) 중 수평 움직임 벡터가 상기 변이 벡터의 수평 방향 성분과 가장 비슷한 병합 움직임 후보를 선택하고, 상기 선택된 병합 움직임 후보의 움직임 벡터의 수직 방향 성분을 상기 변이 벡터의 수직 방향 성분으로 설정하는 것을 특징으로 하는 3차원 영상 부호화 장치를 포함할 수 있다.
이때, 상기 변이 벡터의 성분을 병합 움직임 후보 리스트(merge list)의 새로운 움직임 벡터로 추가하는 것을 특징으로 하는 3차원 영상 부호화 장치를 포함할 수 있다.
이때, 상기 변이 벡터의 수직 방향 성분은 기 설정된 값(Cy)를 가지는 것을 특징으로 하는 3차원 영상 부호화 장치를 포함할 수 있다.
본 발명의 다른 실시예에 따르면, 깊이 정보 맵(Depth Map)을 수신하는 단계; 다 시점 카메라로부터 수신한 실제 영상(texture) 및 상기 깊이 정보 맵을 통해 변이 벡터(Disparity Vector, DV)를 생성하는 단계; 상기 변이 벡터를 주변 블록을 통해 수평 방향 성분(DVx) 및 수평 방향에 대해 직각인 수직 방향 성분(DVy)을 가지도록 재설정하는 단계; 및 변이 벡터 및 실제 영상을 부호화하는 단계를 포함하는 3차원 영상 부호화 방법을 포함할 수 있다.
이때, 상기 변이 벡터의 수직 방향 성분(DVy)은 상기 주변 블록 중 블록의 움직임 벡터(Motion Vector)의 수평 방향 성분과 상기 변이 벡터의 수평 방향 성분의 차이가 가장 작은 블록을 선택하고, 상기 선택된 블록의 수직 움직임 벡터를 상기 변이 벡터의 수직 방향 성분으로 설정하는 것을 특징으로 하는 3차원 영상 부호화 방법을 포함할 수 있다.
이때, 상기 주변 블록 중 블록의 움직임 벡터(Motion Vector)의 수평 방향 성분과 상기 변이 벡터의 수평 방향 성분의 차이가 가장 작은 블록은, 상기 차이가 기 설정된 문턱값(Threshold) 이내일 경우, 상기 블록의 움직임 벡터의 수직 방향 성분을 변이 벡터의 수직 방향 성분으로 설정하는 것을 특징으로 하는 3차원 영상 부호화 방법을 포함할 수 있다.
이때, 상기 문턱값(Threshold)은 시퀀스, 픽쳐, 슬라이스, CU 또는 블록 단위로 설정되는 것을 특징으로 하는 3차원 영상 부호화 방법을 포함할 수 있다.
이때, 상기 변이 벡터의 수직 방향 성분(DVy)은, 상기 주변 블록으로부터 유도된 병합 움직임 후보 리스트(merge list) 중 수평 움직임 벡터가 상기 변이 벡터의 수평 방향 성분과 가장 비슷한 병합 움직임 후보를 선택하고, 상기 선택된 병합 움직임 후보의 움직임 벡터의 수직 방향 성분을 상기 변이 벡터의 수직 방향 성분으로 설정하는 것을 특징으로 하는 3차원 영상 부호화 방법을 포함할 수 있다.
이때, 상기 변이 벡터의 성분을 병합 움직임 후보 리스트(merge list)의 새로운 움직임 벡터로 추가하는 것을 특징으로 하는 3차원 영상 부호화 방법을 포함할 수 있다.
이때, 상기 변이 벡터의 수직 방향 성분은 기 설정된 값(Cy)를 가지는 것을 특징으로 하는 3차원 영상 부호화 방법을 포함할 수 있다.
본 발명의 또 다른 실시예에 따르면, 변이 벡터(Disparity Vector) 정보 및 영상 부호화 정보를 포함하는 비트스트림을 수신하고, 상기 영상 부호화 정보에 대한 영상 복호화를 수행하는 실제 영상 디코더(Texture Decoder); 상기 실제 영상 디코더로부터 상기 변이 벡터 정보를 수신하여 깊이 정보 맵을 생성하는 깊이 정보 맵 디코더(Depth Decoder)를 포함하고, 상기 변이 벡터는 수평 방향 성분(DVx) 및 수평 방향에 대해 직각인 수직 방향 성분(DVy)을 가지고, 주변 블록을 통해 상기 수직 방향 성분을 재설정 하는 3차원 영상 복호화 장치를 포함할 수 있다.
본 발명의 또 다른 실시예에 따르면, 변이 벡터(Disparity Vector) 정보를 포함하는 비트스트림을 수신하는 단계; 및 상기 변이 벡터로부터 깊이 정보 맵을 생성하는 단계를 포함하고, 상기 변이 벡터는 수평 방향 성분(DVx) 및 수평 방향에 대해 직각인 수직 방향 성분(DVy)을 가지고, 주변 블록을 통해 상기 수직 방향 성분을 재설정 하는 3차원 영상 복호화 방법을 포함할 수 있다.
이때, 상기 주변 블록은 현재 블록에 인접한 블록 또는 현재 블록에 대응(Collocated)되는 블록인 것을 특징으로 하는 3차원 영상 복호화 방법을 포함할 수 있다.
이때, 상기 변이 벡터의 수직 방향 성분(DVy)은 상기 주변 블록 중 블록의 수평 움직임 정보가 상기 변이 벡터의 수평 방향 성분과 가장 비슷한 블록을 선택하고, 상기 선택된 블록의 수직 움직임 정보를 상기 변이 벡터의 수직 방향 성분으로 설정하는 것을 특징으로 하는 3차원 영상 복호화 방법을 포함할 수 있다.
이때, 상기 움직임 정보는 움직임 벡터(Motion Vector), 참조영상 번호, 시간적 예측여부 정보, 시점 간 예측 여부 정보, 단방향 예측 여부 정보 또는 양방향 예측 여부 정보를 포함하는 것을 특징으로 하는 3차원 영상 복호화 방법을 포함할 수 있다.
이때, 상기 수평 방향 변이 벡터 값과 상기 주변 블록의 변이 벡터 값의 차이가 기 설정된 문턱값(Threshold) 이내일 경우, 상기 변이 벡터는 상기 주변 블록의 움직임 정보를 상기 변이 벡터의 수직 방향으로 설정하는 것을 특징으로 하는 3차원 영상 복호화 방법을 포함할 수 있다.
이때, 상기 문턱값(Threshold)은 시퀀스, 픽쳐, 슬라이스, CU 또는 블록 단위로 설정되는 것을 특징으로 하는 3차원 영상 복호화 방법을 포함할 수 있다.
이때, 상기 변이 벡터의 수직 방향 성분(DVy)은, 상기 주변 블록으로부터 유도된 병합 움직임 후보 리스트(merge list) 중 수평 움직임 정보가 상기 변이 벡터의 수평 방향 성분과 가장 비슷한 병합 움직임 후보를 선택하고, 상기 선택된 병합 움직임 후보의 수직 움직임 정보를 상기 변이 벡터의 수직 방향 성분으로 설정하는 것을 특징으로 하는 3차원 영상 복호화 방법을 포함할 수 있다.
이때, 상기 변이 벡터를 재설정 하는 경우, 상기 변이 벡터의 값을 병합 움직임 후보 리스트(merge list)의 새로운 움직임 정보로 추가하는 것을 특징으로 하는 3차원 영상 복호화 방법을 포함할 수 있다.
이때, 상기 변이 벡터의 수직 방향 성분은 기 설정된 값(Cy)를 가지는 것을 특징으로 하는 3차원 영상 복호화 방법을 포함할 수 있다.
본 발명은 변이 벡터(Disparity Vector)의 값을 재설정 하여, 개선된 화질을 제공하는 효과가 있다.
본 발명은 수평 방향 성분 및 수직 방향 성분을 포함하는 변이 벡터(Disparity Vector)로부터 개선된 화질을 제공하는 효과가 있다.
본 발명은 변이 벡터의 수직 방향 성분을 '0'으로 제한하지 않고, 주변 방향 블록을 토대로 변이 벡터를 재설정 하여, 개선된 화질을 제공하는 효과가 있다.
도 1은 3차원 비디오 시스템의 기본 구조를 개략적으로 나타낸다.
도 2는 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 3은 비디오 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 4는 “balloons” 영상의 실제 영상과 깊이정보 맵 영상의 일예를 나타내는 도면이다.
도 5는 3차원 비디오 코덱(codec)에서 시점간 예측(inter view prediction)의 구조를 나타내는 일예이다.
도 6은 3차원 비디오 인코더 및/또는 디코더에서 실제 영상(texture view)과 깊이정보 맵(depth view)을 부호화 및/또는 복호화하는 과정을 나타낸 일예이다.
도 7은 3차원 비디오 코덱에 대한 예측 구조의 일예를 나타낸다.
도 8은 현재 블록에 대한 병합 움직임(merge) 리스트(list)를 구성하는데 사용되는 주변 블록들을 나타낸 일예를 나타낸다
도 9는 변이 벡터(Disparity Vector)에 대한 방향 성분의 개념을 도시하였다.
도 10은 본 발명의 일 실시예에 따른 깊이 정보 값으로부터 수직 성분 정보를 포함하는 변이 벡터를 생성하는 과정을 도시한 블록도이다.
도 11은 본 발명의 일 실시예에 따른 변이 벡터 재설정 과정에 대한 불록도이다.
도 12는 본 발명의 다른 실시예에 따른 변이 벡터 재설정 과정에 대한 블록도이다.
도 13은 본 발명의 또 다른 실시예에 따른, 변이 벡터의 재설정 과정의 블록도이다.
도 14는 본 발명의 일 실시예에 따른 변이 벡터의 재설정 과정에 대한 순서도이다.
도 15는 본 발명의 다른 실시예에 따른 변이 벡터의 재설정 과정에 대한 순서도이다.
이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 아울러, 본 발명에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함 될 수 있음을 의미한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
또한, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위 에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부 만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
도 1은 3차원 비디오 시스템의 기본 구조를 개략적으로 나타낸다.
도 1을 참조하면, 3차원 비디오(3D video; 3DV) 시스템은 송신측(sender), 3D 수신측(3D receiver), 스테레오 수신측(stereo receiver), 2D 수신축(2D receiver)을 포함할 수 있다.
송신측(sender)은 스테레오 카메라 및/또는 다시점 카메라를 이용하여 비디오 정보를 생성할 수 있다. 이때, 비디오 정보는 실제 영상(Texture)일 수 있다.
또한, 송신측은 깊이 정보 카메라를 이용하여 깊이 정보 맵(depth map, 또는 depth view)을 생성할 수 있다. 이때, 송신측에서는 생성된 비디오 정보와 깊이 정보 맵을 이용하여 N(N≥2) 시점(view)의 영상 콘텐츠를 생성할 수 있다.
N 시점의 영상 콘텐츠에는 N 시점의 비디오 정보와 그것의 깊이 정보 맵(Depth-map) 정보 그리고 카메라 관련 부가정보 등이 포함될 수 있다. N 시점의 영상 콘텐츠는 3차원 비디오 부호화 장치에서 다시점 비디오 부호화 방법을 사용하여 압축될 수 있으며, 압축된 영상 콘텐츠(비트스트림)는 네트워크를 통해 수신측의 단말로 전송될 수 있다.
수신측에서는 전송 받은 비트스트림을 비디오 복호화 장치(예를 들어, 3D 비디오복호화 장치, 스테레오 비디오 복호화 장치, 2D 비디오 복호화 장치 등)에서 다시점 비디오 복호화 방법을 사용하여 N 시점의 영상을 복원할 수 있다.
복원된 N 시점의 영상은 깊이 정보 맵 기반 랜더링(DIBR; Depth-Image-Based Rendering) 과정에 의해 N 시점 이상의 가상시점 영상들로 생성될 수 있다. 생성된 N 시점 이상의 가상시점 영상들은 다양한 입체 디스플레이 장치(예를 들어, N-시점 디스플레이, 스테레오 디스플레이, 2D 디스플레이 등)에 맞게 재생되어 사용자에게 입체감이 있는 영상을 제공하게 된다.
한편, 멀티 뷰(multi-view)에 대한 비디오 부호화 및/또는 복호화 장치는 단일 뷰에 대한 비디오 부호화 및/또는 복호화 장치를 확장(extension)하여 구현될 수 있다. 이하, 영상 부호화 및 복호화 장치의 구성을 서술한다.
도 2는 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 2는 멀티 뷰 구조에 대해 적용 가능한 비디오 부호화 장치의 일 실시예를 나타낸다. 도 2는 도 1의 3차원 비디오 시스템에서 송신측에 대응할 수 있다.
도 2를 참조하면, 비디오 부호화 장치(200)는 인터 예측부(210), 인트라 예측부(220), 스위치(215), 감산기(225), 변환부(230), 양자화부(240), 엔트로피 부호화부(250), 역양자화부(260), 역변환부(270), 가산기(275), 필터부(280) 및 참조 픽처 버퍼(290)를 포함한다.
비디오 부호화 장치(200)는 입력 영상에 대해 인트라(intra) 모드 또는 인터(inter) 모드로 부호화를 수행하고 비트스트림(bitstream)을 출력할 수 있다.
인트라 예측은 화면 내 예측, 인터 예측은 화면 간 (inter picture or inter frame) 예측 또는 뷰 간 (inter-view) 예측을 의미한다. 인트라 모드인 경우 스위치(215)가 인트라 모드로 전환되고, 인터 모드인 경우 스위치(215)가 인터 모드로 전환된다.
비디오 부호화 장치(200)는 입력 픽처의 블록(현재 블록)에 대한 예측 블록을 생성한 후, 현재 블록과 예측 블록의 차분을 부호화할 수 있다.
인트라 모드인 경우, 인트라 예측부(220)는 현재 블록 주변의 이미 부호화된 블록의 화소값을 참조 화소로 이용할 수 있다. 인트라 예측부(220)는 참조 화소를 이용하여 공간적 예측을 수행하고 현재 블록에 대한 예측 샘플들을 생성할 수 있다.
인터 모드인 경우, 인터 예측부(210)는, 참조 픽처 버퍼(290)에 저장되어 있는 참조 픽처에서 입력 블록(현재 블록)과의 차이가 가장 적은 참조 블록을 특정하는 움직임 벡터를 구할 수 있다. 인터 예측부(210)는 움직임 벡터와 참조 픽처 버퍼(290)에 저장되어 있는 참조 픽처를 이용하여 움직임 보상을 수행함으로써 현재 블록에 대한 예측 블록을 생성할 수 있다.
멀티 뷰 구조의 경우, 인터 모드에서 적용되는 인터 예측은 인터 뷰 예측을 포함할 수 있다. 인터 예측부(210)는 참조 뷰의 픽처를 샘플링하여 인터 뷰 참조 픽처를 구성할 수 있다. 인터 예측부(210)는 인터 뷰 참조 픽처를 포함하는 참조 픽처 리스트를 이용하여 인터 뷰 예측을 수행할 수 있다. 뷰 간의 참조 관계는 뷰 간의 의존성을 특정하는 정보를 통해 시그널링될 수 있다.
한편, 현재 뷰의 픽처와 참조 뷰의 픽처가 동일 사이즈인 경우에 상기 참조 뷰 픽처에 적용되는 샘플링은 참조 뷰 픽처로부터의 샘플 복사 또는 보간에 의한 참조 샘플의 생성을 의미할 수 있다. 현재 뷰 픽처와 참조 뷰 픽처의 해상도가 상이한 경우에 상기 참조 뷰 픽처에 적용되는 샘플링은 업샘플링을 의미할 수 있다. 예컨대, 뷰 간 해상도가 다른 경우에는 참조 뷰의 복원된 픽처를 업샘플링하여 인터 뷰 참조 픽처가 구성될 수도 있다.
어떤 뷰의 픽처를 이용하여 인터 뷰 참조 픽처를 구성할 것인지는 부호화 비용(coding cost) 등을 고려하여 결정될 수 있다. 부호화 장치는 인터 뷰 참조 픽처로 사용될 픽처가 속하는 뷰(view)를 특정하는 정보를 복호화 장치로 전송할 수 있다.
또한, 인터 뷰 예측에 있어서 참조되는 뷰, 즉 참조 뷰 내에서 현재 블록의 예측에 이용되는 픽처는 현재 픽처(현재 뷰 내 예측 대상 픽처)와 동일 AU(Access Unit)의 픽처일 수 있다.
감산기(225)는 현재 블록과 예측 블록의 차분에 의해 레지듀얼 블록(residual block, 레지듀얼 신호)을 생성할 수 있다.
변환부(230)는 레지듀얼 블록에 대해 변환(transform)을 수행하여 변환 계수(transform coefficient)를 출력할 수 있다. 변환 생략(transform skip) 모드가 적용되는 경우에, 변환부(230)는 레지듀얼 블록에 대한 변환을 생략할 수도 있다.
양자화부(240)는 변환 계수를 양자화 파라미터에 따라 양자화하여 양자화된 계수(quantized coefficient)를 출력할 수 있다.
엔트로피 부호화부(250)는, 양자화부(240)에서 산출된 값들 또는 부호화 과정에서 산출된 부호화 파라미터 값 등을 확률 분포에 따라 엔트로피 부호화하여 비트스트림을 출력할 수 있다. 엔트로피 부호화부(250)는 비디오의 화소 정보 외에 비디오 디코딩을 위한 정보(예컨대, 신택스 엘리먼트(syntax element) 등)을 엔트로피 부호화 할 수도 있다.
부호화 파라미터는 부호화 및 복호화에 필요한 정보로서, 신택스 엘리먼트와 같이 부호화 장치에서 부호화되어 복호화 장치로 전달되는 정보뿐만 아니라, 부호화 혹은 복호화 과정에서 유추될 수 있는 정보를 포함할 수도 있다.
레지듀얼 신호는 원신호와 예측 신호의 차이를 의미할 수 있고, 또한 원신호와 예측 신호의 차이가 변환(transform)된 형태의 신호 또는 원신호와 예측 신호의 차이가 변환되고 양자화된 형태의 신호를 의미할 수도 있다. 레지듀얼 신호는 블록 단위에서는 레지듀얼 블록이라 할 수 있다.
엔트로피 부호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 부호화 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 부호화를 통해서 영상 부호화의 압축 성능이 높아질 수 있다.
엔트로피 부호화를 위해 지수 골룸(exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 부호화 방법이 사용될 수 있다. 예를 들어, 엔트로피 부호화부(250)는 가변 길이 부호화(VLC: Variable Lenghth Coding/Code) 테이블을 이용하여 엔트로피 부호화를 수행할 수 있다. 또한 엔트로피 부호화부(250)는 대상 심볼의 이진화(binarization) 방법 및 대상 심볼/빈(bin)의 확률 모델(probability model)을 도출한 후, 도출된 이진화 방법 또는 확률 모델을 사용하여 엔트로피 부호화를 수행할 수도 있다.
양자화된 계수는 역양자화부(260)에서 역양자화되고 역변환부(270)에서 역변환될 수 있다. 역양자화, 역변환된 계수는 가산기(275)를 통해 예측 블록과 더해지고 복원 블록이 생성될 수 있다.
복원 블록은 필터부(280)를 거치고, 필터부(280)는 디블록킹 필터(deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나 이상을 복원 블록 또는 복원 픽처에 적용할 수 있다. 필터부(280)를 거친 복원 블록은 참조 영상 버퍼(290)에 저장될 수 있다.
도 3은 비디오 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
멀티 뷰 구조에 대한 비디오 부호화/복호화 장치는 단일 뷰 구조에 대한 비디오 부호화/복호화 장치를 확장(extension)하여 구현될 수 있다.
도 3은 멀티 뷰 구조에 대해 적용 가능한 비디오 복호화 장치의 일 실시예를 나타낸다. 예컨대, 도 3의 복호화 장치는 도 1의 3차원 비디오 시스템에서 3D 수신측에 대응할 수 있다.
도 3을 참조하면, 상기 비디오 복호화 장치(300)는 엔트로피 복호화부(310), 역양자화부(320), 역변환부(330), 인트라 예측부(340), 인터 예측부(350), 필터부(360) 및 참조 픽처 버퍼(370)를 포함한다.
비디오 복호화 장치(300)는 부호화 장치에서 출력된 비트스트림을 입력 받아 인트라 모드 또는 인터 모드로 복호화를 수행하고 재구성된 영상, 즉 복원 영상을 출력할 수 있다.
인트라 모드인 경우 스위치가 인트라 예측을 위해 전환되고, 인터 모드인 경우 스위치가 인터 예측을 위해 전환될 수 있다.
비디오 복호화 장치(300)는 입력 받은 비트스트림으로부터 복원된 레지듀얼 블록(residual block)을 얻고 예측 블록을 생성한 후 복원된 레지듀얼 블록과 예측 블록을 더하여 재구성된 블록, 즉 복원 블록을 생성할 수 있다.
엔트로피 복호화부(310)는, 입력된 비트스트림을 확률 분포에 따라 엔트로피 복호화하여, 양자화된 계수(quantized coefficient)와 신택스 엘리먼트 등의 정보를 출력할 수 있다.
양자화된 계수는 역양자화부(320)에서 역양자화되고 역변환부(330)에서 역변환 된다. 양자화된 계수를 역양자화/역변환하여, 복원된 레지듀얼 블록(residual block)이 생성될 수 있다.
인트라 모드인 경우, 인트라 예측부(340)는 현재 블록 주변의 이미 부호화된 블록의 화소값을 이용하여 공간적 예측을 수행하고, 현재 블록에 대한 예측 블록을 생성할 수 있다.
인터 모드인 경우, 인터 예측부(350)는 움직임 벡터 및 참조 픽처 버퍼(370)에 저장되어 있는 참조 픽처를 이용하여 움직임 보상을 수행함으로써 현재 블록에 대한 예측 블록을 생성할 수 있다.
멀티 뷰 구조의 경우, 인터 모드에서 적용되는 인터 예측은 인터 뷰 예측을 포함할 수 있다. 인터 예측부(350)는 참조 뷰의 픽처를 샘플링하여 인터 뷰 참조 픽처를 구성할 수 있다. 인터 예측부(350)는 인터 뷰 참조 픽처를 포함하는 참조 픽처 리스트를 이용하여 인터 뷰 예측을 수행할 수 있다. 뷰 간의 참조 관계는 뷰 간의 의존성을 특정하는 정보를 통해 시그널링될 수 있다.
한편, 현재 뷰 픽처(현재 픽처)와 참조 뷰 픽처가 동일 사이즈인 경우에 상기 참조 뷰 픽처에 적용되는 샘플링은 참조 뷰 픽처로부터의 샘플 복사 또는 보간에 의한 참조 샘플의 생성을 의미할 수 있다. 현재 뷰 픽처와 참조 뷰 픽처의 해상도가 상이한 경우에 상기 참조 뷰 픽처에 적용되는 샘플링은 업샘플링을 의미할 수 있다.
예컨대, 뷰 간 해상도가 다른 경우에 뷰 간에 인터 뷰 예측이 적용된다면, 참조 뷰의 복원된 픽처를 업샘플링하여 인터 뷰 참조 픽처가 구성될 수 있다.
이때, 인터 뷰 참조 픽처로 사용될 픽처가 속하는 뷰를 특정하는 정보는 부호화 장치로부터 복호화 장치로 전송할 수 있다.
또한, 인터 뷰 예측에 있어서 참조되는 뷰, 즉 참조 뷰 내에서 현재 블록의 예측에 이용되는 픽처는 현재 픽처(현재 뷰 내 예측 대상 픽처)와 동일 AU(Access Unit)의 픽처일 수 있다.
복원된 레지듀얼 블록과 예측 블록은 가산기(355)에서 더해져서, 복원 블록이 생성된다. 다시 말하면, 레지듀얼 샘플과 예측 샘플이 더해져서 복원된 샘플 또는 복원된 픽처가 생성된다.
복원된 픽처는 필터부(360)에서 필터링 된다. 필터부(360)는 디블록킹 필터, SAO, ALF 중 적어도 하나 이상을 복원 블록 또는 복원 픽처에 적용할 수 있다. 필터부(360)는 재구성된(modified) 혹은 필터링된(filtered) 복원 픽처(reconstructed picture)를 출력한다. 복원 영상은 참조 픽처 버퍼(370)에 저장되어 인터 예측에 사용될 수 있다.
도 2와 도 3에서는 각각의 모듈들이 서로 다른 기능을 수행하는 것으로 설명하였으나, 본 발명은 이에 한정되지 않으며, 하나의 모듈에서 둘 이상의 기능을 수행할 있다. 예컨대, 도 2와 도 3에서 인트라 예측부와 인터 예측부의 동작은 하나의 모듈(예측부)에서 수행될 수도 있다.
한편, 도 2 및 도 3에서는 하나의 부호화 장치/복호화 장치가 멀티 뷰에 대한 부호화/복호화를 모두 처리하는 것으로 설명하였으나, 이는 설명의 편의를 위한 것으로서, 부호화 장치/복호화 장치는 뷰별로 구성될 수도 있다.
이 경우, 현재 뷰의 부호화 장치/복호화 장치는 다른 뷰의 정보를 이용하여 현재 뷰의 부호화/복호화를 수행할 수 있다. 예컨대, 현재 뷰의 예측부(인터 예측부)는 다른 뷰의 픽셀 정보 또는 복원된 픽처 정보를 이용하여 현재 블록에 대한 인트라 예측 또는 인터 예측을 수행할 수도 있다.
여기서는, 뷰 간의 예측만을 예로서 설명하였으나, 부호화 장치/복호화 장치는 뷰별로 구성되든, 하나의 장치가 멀티 뷰를 처리하든 상관없이, 다른 뷰의 정보를 이용하여 현재 레이어에 대한 부호화/복호화를 수행할 수 있다.
본 발명에서 뷰에 관한 설명은 스케일러빌러티를 지원하는 레이어(layer)에 대해서도 동일하게 적용될 수 있다. 예컨대, 본 발명에서 뷰(view)는 레이어(layer)일 수도 있다.
이하, 상술한 깊이 정보 맵을 생성하는 방법을 구체적으로 서술한다.
도 4는 “balloons” 영상의 실제 영상과 깊이 정보 맵 영상의 일예를 나타내는 도면이다.
깊이 정보 맵(depth map)은 가상시점 영상을 생성하는데 사용되며, 실세계에서 카메라와 실제 사물(object) 간의 거리(실사 영상과 동일한 해상도로 각 화소에 해당하는 깊이 정보)를 일정한 비트수로 표현한 것이다.
깊이 정보 맵을 생성하는 방법은 깊이 정보 맵 카메라를 이용하여 획득하는 방법과 실제 일반 영상(Texture)을 이용하여 생성하는 방법을 포함할 수 있다.
깊이 정보 맵 카메라를 이용하여 깊이 정보 맵을 획득하는 경우, 주로 정지된 객체나 장면에서 신뢰성 높은 깊이 정보를 제공한다. 이때 깊이 정보 맵을 획득하기 위해 레이저(laser)나 구조화된 광선(structured light)기법을 이용할 수 있다. 또한, 빛의 비행시간(time-of-flight of light)에 기초한 깊이 측정기법을 사용하여 비디오 프레임 비율로 깊이 정보를 취득하는 기법을 이용할 수도 있다.
실제 일반 영상(Texture)을 이용하여 깊이 정보 맵을 생성하는 경우, 두 일반 영상 간의 시점 차이를 나타내는 변이 벡터(Disparity Vector)를 이용하여 깊이 정보 맵을 생성할 수 있다.
구체적으로, 두 대 이상의 카메라를 수평이 되도록 정렬하고, 카메라의 방향이 평행을 되도록 조정할 경우, 복수의 카메라가 수신한 어느 한 영상에 존재하는 특정한 화소가 다른 시점의 영상에도 존재할 수 있다. 이때, 두 시점에서의 좌표의 수평 차이를 변이(disparity)라고 하며, 좌표의 수평 차이로부터 변이 벡터(Disparity Vector)를 구할 수 있다.
변이(disparity)는 객체가 카메라에서 가까이 있을 경우, 큰 값을 가지며, 반대로 객체가 카메라에서 멀어질수록 변이는 작은 값을 가지게 된다. 이때, 시점간 색상의 상관도를 이용하면 각 화소의 변이 값을 구할 수 있다. 이렇게 구해진 값을 3차원 거리 값으로 변환하여 깊이 정보(depth value)를 표현할 수 있으며, 깊이 정보로부터 깊이 정보 맵을 생성할 수 있다.
실제 일반 영상을 이용하여 자동적으로 생성된 깊이 정보 맵의 예로써, 도 4의 (a)는 국제 표준화 기구인 MPEG의 3차원 비디오 부호화 표준에서 사용 중인 “balloons” 영상을 나타낸 것이다. 도 4의 (b)는 도 4의 (a)에 도시된 “balloons” 영상에 대한 깊이 정보 맵 영상을 나타낸 것이다. 도 4의 (b)에 도시된 깊이 정보 맵 영상은 화면에 보이는 깊이 정보를 화소당 8비트로 표현한 것이다.
3차원 영상 부호화 및/또는 복호화 장치는 상술한 실제 영상(Texture)과 실제 영상의 깊이 정보 맵을 부호화할 때, 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) 국제 동영상 표준을 사용할 수도 있다.
실제 영상(Texture)과 그것의 깊이 정보 맵(Depth map)은 하나의 카메라뿐만 아니라 여러 개의 카메라에서 획득된 영상일 수 있다. 여러 개의 카메라에서 획득한 영상은 독립적으로 부호화될 수 있으며, 일반적인 2차원 비디오 부호화 및/또는 복호화 코덱을 사용하여 부호화될 수 있다. 이때, 여러 개의 카메라에서 획득된 영상은 시점 간의 상관성이 존재하므로, 여러 개의 카메라에서 획득된 영상은 부호화 효율을 높이기 위하여 서로 다른 시점간 예측을 사용하여 부호화될 수 있다.
도 5는 3차원 비디오 코덱(codec)에서 시점간 예측(inter view prediction)의 구조를 나타내는 일예이다.
도5를 참조하면, 시점 1(View 1)은 시점 0(View 0)을 기준으로 왼쪽에 위치한 카메라에서 획득한 영상이고, 시점 2(View 2)는 시점 0(View 0)을 기준으로 오른쪽에 위치한 카메라에서 획득한 영상이다.
시점 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)는 깊이 정보 맵을 이용하여 부호화될 수 있다. 예를 들어, 실제 영상과 그것의 깊이 정보 맵을 부호화할 때, 실제 영상과 깊이 정보 맵은 서로 독립적으로 부호화 및/또는 복호화될 수 있다. 또는 실제 영상과 깊이 정보 맵을 부호화할 때, 실제 영상과 깊이 정보 맵은 도 6과 같이 서로 의존적으로 부호화 및/또는 복호화될 수 있다.
도 6은 3차원 비디오 인코더 및/또는 디코더에서 실제 영상(texture view)과 깊이 정보 맵(depth view)을 부호화 및/또는 복호화하는 과정을 나타낸 일예이다.
도 6을 참조하면, 3차원 비디오 부호화 장치는 실제 영상(texture view)을 부호화하는 실제 영상 인코더(texture encoder)와 깊이 정보 맵(depth view)을 부호화하는 깊이 정보 맵 인코더(depth encoder)를 포함할 수 있다.
예를 들어, 실제 영상 인코더는 깊이 정보 맵 인코더에 의해 이미 부호화된 깊이 정보 맵을 이용하여 실제 영상을 부호화할 수 있다. 반대로, 깊이 정보 맵 인코더는 실제 영상 인코더에 의해 이미 부호화된 실제 영상을 이용하여 깊이 정보 맵을 부호화할 수 있다.
이때, 실제 영상을 이용하여 깊이 정보 맵을 생성하는 과정은 도 4에서 상술한 실제 영상(Texture)으로부터 변이 벡터(Disparity Vector)를 이용하여 깊이 정보 맵(Depth map)을 생성하는 방법을 이용할 수 있다. 또한, 도 4에서 상술한 실제 영상(Texture)으로부터 변이 벡터(Disparity Vector)를 이용하여 깊이 정보 맵(Depth map)을 생성하는 방법을 역으로 이용하여, 깊이 정보 맵으로부터 실제 영상을 생성하는 방법을 이용할 수도 있다.
3D 비디오 디코더는 실제 영상을 복호화하는 실제 영상 디코더(texture decoder)와 깊이 정보 맵을 복호화하는 깊이 정보 맵 디코더(depth decoder)를 포함할 수 있다.
예를 들어, 실제 영상 디코더는 깊이 정보 맵 디코더에 의해 이미 복호화된 깊이 정보 맵을 이용하여 실제 영상을 복호화할 수 있다. 반대로, 깊이 정보 맵 디코더는 실제 영상 디코더에 의해 이미 복호화된 실제 영상을 이용하여 깊이정보 맵을 복호화할 수 있다. 이때, 깊이 정보 맵으로부터 실제 영상을 생성하는 방법과, 실제 영상으로부터 깊이 정보 맵을 생성하는 방법은 상술한 인코더에서 깊이 정보 맵으로부터 실제 영상을 생성하는 방법과, 실제 영상으로부터 깊이 정보 맵을 생성하는 방법을 사용할 수 있다.
도 7은 3차원 비디오 코덱에 대한 예측 구조의 일예를 나타낸다.
3차원 비디오 코덱은, 2대 이상의 복수의 카메라를 사용하여 부호화 및/또는 복호화를 할 수 있다. 다만, 도7은 설명의 편의 상 3대의 카메라에서 획득한 실제 영상(Texture)과 상기 실제 영상에 대한 깊이 정보 맵(Depth map)을 부호화하기 위한 부호화 예측 구조를 나타낸 것이다.
도7을 참조하면, 3대의 카메라가 획득한 3개의 실제 영상은 시점에 따라 T0, T1, T2로 나타낼 수 있고, 실제 영상과 동일한 위치의 3개의 깊이 정보 맵은 시점에 따라 D0, D1, D2로 나타낼 수 있다. 이때, T0와 D0는 시점 0(View 0)에서 획득한 영상이며, T1와 D1는 시점 1(View 1)에서 획득한 영상이며, T2와 D2는 시점 2(View 2)에서 획득한 영상일 수 있다.
도7에 도시된 사각형은 영상(픽처)을 나타낼 수 있다. 각 영상(픽처)는 부호화 타입에 따라 I 픽처(Intra Picture), P 픽처(Uni-prediction Picture), B 픽처(Bi-prediction Picture)로 나눌 수 있으며, 각 픽처의 부호화 타입에 따라 부호화될 수 있다. I 픽처는 픽처간 예측 없이 영상 자체를 부호화할 수 있고, P 픽처는 순방향으로만 참조 영상을 이용하여 픽처간 예측 부호화할 수 있고, B 픽처는 순방향과 역방향 양측으로 참조 영상을 이용하여 픽처간 예측 부호화할 수 있다.
도7에서 화살표는 예측 방향을 나타낸다. 즉, 예측 방향에 따라 실제 영상과 그것의 깊이 정보 맵은 서로 의존적으로 부호화 및/또는 복호화될 수 있다.
현재 블록의 움직임 정보를 유추하기 위한, 실제 영상에서 현재 블록을 예측하는 방법은 크게 시간적 예측(temporal prediction)과 시점간 예측(inter view prediction)으로 나뉜다. 시간적 예측은 동일한 시점 내에서 시간적 상관성을 이용한 예측 방법이고, 시점간 예측은 인접한 시점에서 시점간 상관성을 이용한 예측 방법이다. 이러한 시간적 예측과 시점간 예측은 한 픽처에서 서로 혼용되어 사용될 수 있다.
이때, 현재 블록은 실제 영상 내에서 현재 예측이 수행되는 블록을 의미할 수 있다. 또한, 움직임 정보는 움직임 벡터만을 의미할 수 있으며, 또는 움직임 벡터, 참조 영상 번호, 단방향 예측여부, 양방향 예측여부, 시점간 예측여부 시간적 예측여부, 또 다른 예측여부를 의미할 수도 있다.
영상 부호화 및/또는 복호화에 대한 움직임 정보의 부호화 방법 중 하나로 병합 움직임(merge) 방법을 이용한다. 이때 움직임 정보란, 움직임 벡터, 참조영상에 대한 인덱스 그리고 예측 방향(단방향, 양방향, 등) 중에서 적어도 하나를 포함하는 정보를 의미할 수 있다. 예측 방향은 참조 픽쳐 목록(Reference Picture List; RefPicList)의 사용에 따라 크게 단방향 예측과 양방향 예측으로 나누어 질 수 있다. 단방향 예측에는 순방향 참조 픽쳐 목록 (LIST 0)을 사용한 순방향 예측(Pred_L0; Prediction L0)과 역방향 참조 픽쳐 목록 (LIST 1)을 사용한 역방향 예측(Pred_L1; Prediction L1)으로 구분할 수 있다. 또한, 양방향 예측(Pred_BI; Prediction BI)은 순방향 참조 픽쳐 목록(LIST 0)과 역방향 참조 픽쳐 목록 (LIST 1)을 모두 사용할 수 있으며, 순방향 예측과 역방향 예측이 모두 존재하는 것을 말할 수 있다. 또한, 순방향 참조 픽쳐 목록 (LIST 0)을역방향 참조 픽쳐 목록 (LIST 1)에 복사하여 순방향 예측이 두개 존재하는 경우도 양방향 예측에 포함할 수 있다. 이러한 예측 방향 여부를 predFlagL0, predFlagL1를사용하여 정의할 수 있다. 이때, 단방향 예측이면서 순방향 예측일 경우, predFlagL0는 '1'이 되고 predFlagL1은 '0'이 될 수 있다. 또한, 단방향 예측이면서 역방향 예측일 경우, predFlagL0는 '0'이 되고 predFlagL1은 '1'이 될 수 있다. 마지막으로, 양방향 예측일 경우, predFlagL0는 '1'이 되고 predFlagL1은 '1'이 될 수 있다.
도 8은 현재 블록에 대한 병합 움직임(merge) 리스트(list)를 구성하는데 사용되는 주변 블록들을 나타낸 일 예이다.
병합 움직임은 부호화 유닛(Coding Unit: CU, 이하 ‘CU’라 함) 단위의 병합 움직임과 예측 유닛(Prediction Unit: PU, 이하 ‘PU’라 함) 단위의 병합 움직임이 가능하다. CU또는 PU(이하, 설명의 편의를 위해 ‘블록’이라 함) 단위로 병합 움직임을 수행하는 경우, 블록 파티션(partition)별로 병합 움직임의 수행 여부에 대한 정보와 현재 블록에 인접한 주변 블록(현재 블록의 좌측 인접블록, 현재 블록의 상측 인접 블록, 현재 블록의 시간적(temporral) 인접 블록 등)중 어떤 블록과 병합 움직임을 할 것인지에 대한 정보를 전송할 필요가 있다.
병합 움직임(merge) 후보 리스트(List)은 움직임 정보들이 저장된 리스트를 나타내며, 병합 움직임이 수행되기 전에 생성된다. 여기서 병합 움직임후보 리스트에 저장되는 움직임 정보는 현재 블록에 인접한 주변 블록의 움직임 정보이거나 참조 영상에서 현재 블록에 대응되는(collocated) 블록의 움직임 정보일수 있다. 또한, 병합 움직임 후보 리스트에 저장되는 움직임 정보는 이미 병합 움직임 후보 리스트에 존재하는 움직임 정보들을 조합하여 만든 새로운 움직임 정보일수 있다.
상술한 바와 같이, 병합 움직임 방법(merge mode)은 현재 블록(현재 PU)의 움직임 정보(예를 들어, 움직임 벡터, 참조 픽처 리스트, 참조 픽처 인덱스 등)로서 현재 블록의 주변 블록의 움직임 정보를 이용하는 방법을 말하며, 주변 블록의 움직임 정보를 기반으로 현재 블록에 대한 병합 움직임 후보 리스트를 구성한다.
도 8에 도시된 바와 같이, 주변 블록은 현재 블록과 공간적(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)로 이용될 수 있는지를 판단하고, 다음으로 이용 가능한 블록의 움직임 정보를 병합 움직임 후보로 결정한다. 그리고 병합 움직임 후보를 병합 움직임 후보 리스트에 추가할 수 있다.
본 발명의 일 실시예로, 도 8에서 X 블록에 대한 병합 움직임 후보 리스트를 생성할 때, 주변블록 A가 사용 가능하여 병합 움직임 후보 리스트에 포함된 경우, 주변 블록 B는 주변블록 A와 동일한 움직임 정보가 아닐 경우에만, 병합 움직임 후보 리스트에 포함될 수 있다. 마찬가지로, 주변 블록 C는 주변 블록 B와 동일한 움직임 정보가 아닐 경우에만 병합 움직임 후보 리스트에 포함될 수 있다. 상술한 방법은 주변 블록 D와 주변 블록 E에 적용될 수 있다. 여기서 동일한 움직임 정보라는 것은 움직임 벡터가 동일하고 동일한 참조픽쳐를 사용하고, 동일한 예측 방향을 사용함을 의미할 수 있다.
이때, 동일한 예측 방향은 정방향 또는 역방향을 포함하는 단방향인지 여부, 양방향인지 여부를 포함할 수 있다.
마지막으로, 도 8에서 X 블록에 대한병합 움직임 후보 리스트는 소정의 순서, 예컨대, A→B→C→D→E→H(혹은 M) 블록순서로 리스트에 추가될 수도 있다.
도 9는 변이 벡터(Disparity Vector)에 대한 방향 성분의 개념을 도시하였다.
도 9는 복수의 카메라를 이용해 실제 영상(Texture)를 생성할 경우, 변이(disparity)의 방향성분을 도시한 도면이다. 일반적으로 3차원 영상 콘텐츠는 수평 방향으로 설치된 여러 개의 카메라로부터 여러 시점의 영상을 획득한다. 따라서, 일반 영상을 이용하여 생성된 깊이 정보 맵(Depth map)은 일반 영상들간의 시점 간의 차이에서 수평 방향만을 고려하여 생성한다. 즉, 변이 벡터(Disparity Vector, DV)를 수평 변이 벡터(DVx)라고 말할 수 있다.
하지만, 수평 변이 벡터(DVx)만으로는 깊이 정보 맵의 생성에 한정된 성능을 지닌다. 따라서, 이하 수직 성분을 더 포함하는 변이 벡터를 생성하는 방법을 서술하겠다. 이때, 수직 성분의 변이 벡터는 수직 변이 벡터(DVy)라고 말할 수 있다.
도 10은 본 발명의 일 실시예에 따른 깊이 정보 값으로부터 수직 성분 정보를 포함하는 변이 벡터를 생성하는 과정을 도시한 블록도이다.
깊이 정보 값을 변이벡터(DV; Disparity Vector)로 변경하는 방법는 도4 및 도 6에서 상술한 바와 같다. 또한, 변수 “M”은 깊이 정보 값이 Disparity Vector로 변경된 수평 방향 성분의 값일 수 있다.
깊이 정보 맵을 통해 유도된 변이 벡터(DV)는 수평 방향 성분만 존재한다. 따라서, 기존의 변이 벡터는 수평 방향 성분(DVx)으로 설정하고, 수평 방향에 대해 직각인 수직 방향 성분(DVy)을 변이 벡터 값의 구성요소로 추가할 수 있다. 이를 통해 변이 벡터는 수평 방향 성분(DVx) 및 수평 방향에 대해 직각인 수직 방향 성분(DVy)을 포함할 수 있다. 이때, 수직 방향 성분(DVy)은 '0'으로 설정할 수 있다.
수평 방향으로 설치된 카메라들은 그 위치와 방향에 오류가 있을 수 있다. 이러한 정렬되지 않은 다 시점 영상에 대한 오류를 최소화하기 위하여, 다 시점 영상들에 수직시차보정 즉, 편위 수정(rectification)을 수행할 수 있다.
하지만, 편위 수정(rectification)된 다 시점 영상이라 하더라도, 오차가 있을 수 있다. 또한, 카메라 내에서 수직 방향의 움직임을 가진 객체들이 여전히 존재할 수 있으며, 이로 인해 카메라의 촬영 시간 오차로 인해 시점 간의 수직 방향에서의 움직임차이가 생길 수 있다. 따라서, 다 시점 영상에서 두 이웃한 시점 간에는 수평 방향 성분의 움직임뿐만 아니라 수직 방향 성분의 움직임이 존재할 수 있다. 하지만, 상술한 바와 같이 깊이 정보 맵을 통해 유도된 변이 벡터(DV)의 경우, 수직 방향 성분(DVy)을 '0'으로 제한될 수 있다. 이는3차원 영상의 실제 영상(Texture) 및 깊이 성분 맵(Depth map)의 부호화 성능을 감소시키는 요인이 될 수 있다. 따라서, 변이벡터(DV)의 수직 방향 성분(DVx)을 '0'으로 제한하지 않고 임의의 값을 가지는 것을 허용하는 방법과, 수직 방향 성분을 유추하여 변이 벡터(DV)의 부호화 효율을 향상시키는 방법을 구체적인 실시예를 통해 서술한다.
도 11은 본 발명의 일 실시예에 따른 변이 벡터 재설정 과정이다.
도 11의 변이 벡터(DV) 재설정 과정은 입력 받은 변이 벡터(DV)와 주변블록의 움직임 정보들을 통해 새로운 변이 벡터(DV)를 재설정할 수 있다. 또한, 재설정된 변이 벡터를 출력할 수 있다.
주변 블록의 움직임 정보는 현재 블록에 인접한 주변 블록의 움직임 정보이거나 참조 영상에서 현재 블록에 대응되는(collocated) 블록의 움직임 정보일 수 있다. 이때, 도 8에서 현재 블록에 인접한 주변 블록(A, B, C, D, E)과 그리고 현재 블록에 대응되는 주변 블록(H 또는 M))이 될 수 있다. 또한, 주변 블록의 움직임 정보는 병합 움직임 후보 리스트에 포함된 움직임 후보들이 주변 블록의 움직임 정보가 될 수 있다.
도 11의 변이 벡터(DV)는 상술한 수평 방향 성분과 수직 방향 성분을 포함하는 (DVx,DVy)로 구성될 수 있다. 이때, 변이벡터는 변이 벡터(DV) 재설정 과정을 통해 변이 벡터의 수평 방향 성분(DVx)과 수직 방향 성분(DVy)을 변경하여 재설정할 수 있다.
도 12는 본 발명의 다른 실시예에 따른 변이 벡터 재설정 과정이다.
도12의 깊이 정보 값으로부터 변이 벡터(Disparity Vector)를 생성하는 과정은 깊이 정보 값(Depth Value)를 입력받아, 임의의 함수 M = 함수(Depth Value)를 통해 변이 벡터(DV)를 출력한다. 여기서 변이 벡터(DV)의 수직 방향 성분 DVy는'0'일 수 있다. 이때, 구체적인 변이 벡터를 생성하는 과정은 도 10에서 상술한 바와 같다.
다음으로, 변이 벡터(DV)를 재설정 하는 과정은 변이 벡터(DV)와 주변 블록의 움직임 정보들을 입력 받아, 변이 벡터(DV)를 재설정하여 재설정된 변이벡터(DV)를 출력한다. 이때, 구체적인 변이 벡터의 재설정 과정은 도 11에서 상술한 바와 같다.
도 12의 변이 벡터 재설정 과정에서, 주변 블록의 움직임 정보를 사용하여 변이 벡터를 재설정 하는 과정은 다음과 같은 실시예를 포함할 수 있다.
본 발명의 일 실시예로, 변이 벡터의 성분은 주변 블록 중 변이 벡터의 수평 방향 성분(DVx) 값과 움직임 정보의 수평 성분이 가장 비슷한 블록을 참조하여 재설정할 수 있다. 이때, 가장 비슷한 움직임 정보를 찾기 위해 임의의 문턱값(Threshold)를 사용할 수 있으며, 변위 벡터의 수평 방향 성분 값과 움직임 정보의 수평 방향 값이 임의의 문턱값 이내일 경우, 변위 벡터의 수평 방향 성분 값과 움직임 정보의 수평 방향 값이 비슷하다고 판단할 수 있다. 이때, 임의의 문턱값은 시퀀스, 픽쳐, 슬라이스, CU, 블록 단위일 수 있다.
선택된 블록에 대한 움직임 정보의 수직 방향 성분을 변이 벡터(DV)의 수직 방향 성분(DVy)으로 설정할 수 있다. 이때, 선택된 블록에 대한 움직임 정보의 수직 방향 성분이 임의의 문턱값(Threshold) 이내일 경우, 움직임 정보에 포함된 움직임 벡터(Motion Vector)의 수직 방향 성분을 변이 벡터의 수직 방향 성분으로 설정할 수 있다. 이때, 임의의 문턱값은 시퀀스, 픽쳐, 슬라이스, CU, 블록 단위일수 있다. 또한, 대상 블록을 찾기 위해 움직임 벡터를 이용하는 방법뿐만 아니라 참조 픽쳐 번호(어떤 참조 픽쳐를 사용했는지에 대한 정보)와 시점 번호(View Index)등을 사용하여 주변 블록에서 대상 움직임 후보를 선택할 수 있다. 또한, 현재 픽쳐의 시점 번호(View Index)와 주변 블록으로부터의 움직임 후보의 시점 번호(ViewIndex)가 같지 않을 경우, 해당 움직임 후보를 대상 움직임 후보로 설정할 수있다. 또 다른 일 실시예로, 현재 픽쳐의 시점 번호(View Index)와 주변 블록으로부터의 움직임 후보의 시점 번호(View Index)가 같을 경우, 해당 움직임 후보를 대상 움직임 후보로 설정할 수 있다.
본 발명의 다른 실시예로, 상기 주변 블록으로부터 유도된 병합 움직임 후보 리스트(merge list) 중 수평 움직임 정보가 상기 변이 벡터의 수평 방향 성분과 가장 비슷한 병합 움직임 후보로 선택할 수 있다. 이때, 가장 비슷한 움직임 정보를 찾기 위해 임의의 문턱값(Threshold)를 사용할 수 있으며, 변위 벡터의 수평 방향 성분 값과 움직임 정보의 수평 방향 값이 임의의 문턱값 이내일 경우,변위 벡터의 수평 방향 성분 값과 움직임 정보의 수평 방향 값이 비슷하다고 판단할 수 있다.이때,임의의 문턱값은 시퀀스, 픽쳐, 슬라이스, CU, 블록 단위일 수 있다.
선택된 병합 움직임 후보에 대한 수직 방향 성분은 변이 벡터(DV)의 수직 방향 성분(DVy)로 설정할 수 있다. 이때, 선택된 병합 움직임 후보에 대한 움직임 정보의 수직 방향 성분이 임의의 문턱값(Threshold) 이내일 경우, 움직임 정보에 포함된 움직임 벡터(Motion Vector)의 수직 방향 성분을 변이 벡터의 수직 방향 성분으로 설정할 수 있다. 이때, 임의의 문터값은 시퀀스, 픽처, 슬라이스 CU, 블록 단위일 수 있다.
또한, 대상 움직임 후보를 찾기 위해 움직임 벡터(Motion Vector)를 이용하는 방법뿐만 아니라 참조 픽쳐 번호(어떤 참조 픽쳐를 사용했는지에 대한정보)와 시점 번호(View Index)등을 사용하여 병합 움직임 후보 리스트에서 대상움직임 후보를 선택할 수도 있다. 예컨대, 현재 픽쳐의 시점 번호(View Index)와 주변 블록으로부터의 움직임 후보의 시점 번호(View Index)가 같지 않을 경우, 해당 움직임 후보를 대상 움직임 후보로 설정할 수 있다. 또한, 현재 픽쳐의 시점 번호(View Index)와 주변 블록으로부터의 움직임 후보의 시점 번호(View Index)가 같을 경우, 해당 움직임 후보를 대상 움직임 후보로 설정할 수 있다.
본 발명의 또 다른 실시예로, 변이 벡터(DV)의 수직 방향 성분(DVy)에 임의의 약속된 값(Cy)을 설정할 수 있다. 임의의 약속된 값(Cy)은 양수 혹은 음수부호를 가지는 형태일 수 있다. 임의의 약속된 값(Cy)의 양수 혹은 음수 부호를 선택할 경우, 주변 블록들 중에서 변이 벡터(DV)의 수평 방향 성분 DVx와 가장 비슷한 수평 방향 움직임 성분을 가진 블록을 선택할 수 있다. 또한, 병합 움직임 후보 리스트 중에서 변이 벡터(DV)의 수평 방향 성분 DVx와 가장 비슷한 수평 방향 움직임 성분을 가진 병합 움직임 후보를 선택할 수 있다. 상기 선택된 블록 또는 병합 움직임 후보의 수직 방향 움직임 성분이 양수인지 혹은 음수인지에 따라 임의의 약속된 값(Cy)의 부호를 결정할 수 있다. 이때, 대상 움직임 후보의 수직 방향 움직임 성분이 양수이면, 변이 벡터(DV)의 수직 방향 성분(DVy)을 양수로 설정할 수 있으며, 그 역도 가능하다. 이때, 대상움직임 후보를 찾기 위해 움직임 벡터를 이용하는 방법뿐만 아니라 참조 픽쳐 번호(어떤 참조 픽쳐를 사용했는지에 대한 정보)와 시점 번호(View Index)등을 사용하여 주변 블록(혹은 병합 움직임 후보 리스트)에서 대상 움직임 후보를 선택할 수있다. 구체적인 실시예는 상술한 바와 같다.
마지막으로, 시퀀스, 픽쳐, 슬라이스, CU(CodingUnit), 블록 단위로 변이 벡터(DV)의 수직 방향 성분(DVy)을 시그널링하여 디코더로 전송할 수 있다. 이때, 시그널링된 값은 양수 또는 음수 부호를 가지는 형태로 부호화(se(v))될 수 있다
상술한 과정을 통해 재설정된 변이 벡터는 다음과 같이 사용할 수 있다.
도 12의 변이 벡터(DV) 재설정 과정에서 재설정된 변이 벡터(DV)를 병합 움직임 후보 리스트의 새로운 움직임 후보로 추가할 수 있다. 즉, 병합 움직임 후보 리스트에는 재설정되기 전의 변이 벡터(DV)와 재설정된 후의 변이 벡터(DV)가 모두 포함될 수 있다.
또한, 변이 벡터(DV)를 이용하여 양방향 예측움직임 정보를 설정할 수 있다. 편위 수정(rectification)된 다시점 영상이라도, 수직 방향의 변이 벡터(DV)는 '0'이 아닐 수 있으며, '0'에 가까운 값일 수 있다. 이때, 재설정되기 전의 변이 벡터(DV)를 L0(List 0) 움직임 벡터로 사용하고, 도12의 변이 벡터(DV) 재설정과정에서 재설정된 변이 벡터(DV)를 L1(List 1)움직임 벡터로 사용하여, 양방향 예측에 의한 가중치 평균 예측을 통해 부호화효율을 향상시킬 수 있다.
또한, 변이 벡터(DV)를 이용하여 양방향 예측움직임 정보를 설정하기 위해 L0 (List 0) 움직임 벡터에는 주변 블록으로부터 유도된 움직임 벡터를 사용하고, L1 (List 1) 움직임 벡터에는 도 12의 변이 벡터(DV) 재설정 과정에서 재설정된 변이 벡터(DV)를 사용할 수 있다. 이때, 상술한 과정의 역과정도 가능하다.
또한, 도 12의 변이 벡터(DV) 재설정 과정에서 재설정된 변이 벡터(DV)를 이용하여 가상시점 영상을 합성하는데 사용할 수 있으며, 가상시점 영상 예측에서 변이 벡터(DV)로 이용할 수 있다. 반대로 가상시점영상을 합성하거나 혹은 가상시점 영상 예측을 위해, 재설정된 후의 변이 벡터(DV)를 이용하지 않고 재설정되기 전의 변이 벡터(DV)를 이용할 수 있다.
상술한 변이 벡터를 재설정 하는 방법 이외에도, 변이 벡터를 재설정 할 수 있으며, 상술한 변이 벡터를 재설정 하는 방법 이외의 방법을 본 권리범위에서 제외하는 것은 아니다.
상술한 변이 벡터(DV)가 수평 성분(DVx) 및 수직 성분(DVy)을 포함하는 구성 및 변이 벡터를 재설정 하는 과정은, 현재 MPEG(Moving Picture Experts Group)과VCEG(Video Coding Experts Group)에서 공동으로 표준화를 진행 중인 3D-HEVC(High Efficiency Video Coding)에서 사용할 수 있다. 따라서 상술한 방법은 LCU(Largest Coding Unit), CU(Coding Unit), PU(Prediction Unit), 또는 TU(Transform Unit)의 깊이(Depth)에 따라 적용 범위를 달리할 수 있으며, 마찬가지로 LCU, CU, PU, TU의 크기에 따라 적용 범위를 달리할 수 있다.
이때, 적용 범위를 결정하는 변수는 부호화기 및 복호화기가 미리 정해진 값을 사용하도록 설정할 수 있다. 적용 범위를 결정하는 변수는 LCU, CU, PU, TU의 크기 또는 깊이 정보일 수 있으며, 적용 범위를 결정하는 변수는 프로파일 또는 레벨에 따라 정해진 값을 사용하도록 할 수도 있다. 마찬가지로, 적용 범위를 결정하는 변수는 부호화 장치가 변수 값을 비트스트림에 기재하면 복호화 장치는 비트스트림으로부터 변수 값을 구하여 사용할 수도 있다.
상술한 CU (또는 PU, TU)깊이에 따라, 변이 벡터를 재설정 하는 과정에 대한 적용 범위를 달리하는 방법은 깊이가 주어진 깊이 이상일 경우, 변이 벡터의 재설정 과정을 적용하는 방법(방법1), 깊이가 주어진 깊이 이하일 경우, 변이 벡터의 재설정 과정을 적용하는 방법(방법 2) 및 깊이가 주어진 깊이와 동일할 경우, 변이 벡터의 재설정 과정을 적용하는 방법(방법 3)이 있을 수 있다.
표 1은 주어진 CU(또는 PU, TU)의 깊이(Depth)가 2인 경우, 본 발명의 변이 벡터를 재설정 하는 과정에 대한 적용 범위를 달리하는 방법들의 적용 범위 결정의 일 실시예를 나타낸다.
이때, O는 해당 깊이에 상술한 방법을 적용하는 것을 의미하며, X는 해당 깊이에 상술한 방법을 적용하지 않는 것을 의미한다.
CU(또는 PU, TU)의 깊이 방법 1 방법 2 방법 3
0 X O X
1 X O X
2 O O O
3 O X X
4 이상 O X X
모든 깊이에 대하여 본 발명의 변이 벡터를 재설정 하는 과정에 대한 적용 범위를 달리하는 방법들을 적용하지 않는 경우, 임의의 지시자(flag)는 상술한 방법들을 적용하지 않는다는 정보를 포함할 수 있다. 또한, 대상 CU(또는 PU, TU)의 깊이가 충분하지 못하여, 모든 깊이(Depth)에 대하여 본 발명의 변이 벡터를 재설정 하는 과정에 대한 적용 범위를 달리하는 방법들을 적용하지 못하는 경우, 대상 CU(또는 PU, TU) 깊이 값보다 하나 더 큰 값을 CU(또는 PU, TU) 깊이 값으로 재설정 하여, 상술한 방법을 사용할 수 있다. 이때, 대상 CU(또는 PU, TU) 깊이 값보다 하나 더 큰 값을 CU(또는 PU, TU) 깊이 값으로 재설정 하였음에도 불구하고, 상술한 방법을 사용하지 못하는 경우, 대상 CU(또는 PU, TU) 깊이 값보다 하나 더 큰 값을 CU(또는 PU, TU) 깊이 값으로 재설정하는 과정을 반복할 수 있다.
또한, 상술한 변이 벡터를 재설정 하는 과정에 대한 적용 범위를 달리하는 방법의 적용 여부는 비트스트림에 포함할 수 있으며, SPS(Sequence Parameter Set), PPS(Picture Parameter Set), Slice Header Syntax에 아래와 같은 의미(Semantics)로 적용될 수 있다.
표 2는 상술한 SPS(Sequence Parameter Set)에 적용된 일 예이다.
Figure 112014067153405-pat00001
표 3은 상술한 PPS(Picture Parameter Set)에 적용된 일 예이다.
Figure 112014067153405-pat00002
표 4는 상술한 Slice Header Syntax에 적용된 일 예이다.
Figure 112014067153405-pat00003
표 5는 상술한 Slice Header Syntax에 적용된 다른 실시예이다.
Figure 112014067153405-pat00004
도 13은 본 발명의 또 다른 실시예에 따른, 변이 벡터의 재설정 과정의 블록도이다.
“vertical_dv_enable_flag”는 상술한 변이 벡터 재설정 방법의 적용 여부를 지시할 수 있다. 이때, 변이 벡터 재설정 방법이 적용될 경우, “vertical_dv_enable_flag”가 '1'이 되며, 변이 벡터 재설정 방법이 적용되지 않을 경우, “vertical_dv_enable_flag”가 '0'이 될 수 있으며, 역의 과정도 가능할 수 있다.
또한, “vertical_dv_info”는 상술한 변이 벡터 재설정 방법이 적용되었을 경우(또는 “vertical_dv_enable_flag”이 참(True)의 값을 가지는 경우) 활성화되는 구문(syntax)일 수 있다. “vertical_dv_info”는 CU의 깊이(depth), CU의 크기(size), 매크로 블록의 크기, 서브 매크로 블록의 크기, 또는 블록의 크기에 따라 변이 벡터 재설정의 적용 여부를 지시할 수 있다.
본 발명의 일 실시예에 따르면, “vertical_dv_info”가 '0'일 경우, 상술한 변이 벡터 재설정이 모든 블록 크기에 적용될 수 있다. 또한 “vertical_dv_info”가 '1'일 경우에는 변이 벡터 재설정이 4x4 블록 크기보다 큰 단위에만 적용할 수 있다. 또한, “vertical_dv_info”가 '2'일 경우, 변이 벡터의 재설정이 8x8 블록보다 큰 단위(unit)에만 적용할 수 있다.
“vertical_dv_info”의 사용은 상술한 실시예 만으로 한정되지 않으며, 다양한 실시예를 가진다. 예를 들어, “vertical_dv_info”가 '1'일 경우, 상술한 방법인 4x4보다 큰 블록의 변이 벡터를 재설정 하는 것이 아니라, 4x4 보다 작은 블록의 변이 벡터를 재설정 할 수 있다.
또한, 상술한 변이 벡터의 재설정 방법을 이용하여 픽쳐(또는 프레임) 단위로 변이 벡터의 재설정 여부를 결정할 수 있다. 마찬가지로, P 픽쳐(또는 프레임) 에만 상술한 변이 벡터 재설정 방법이 적용될 수 있으며, B픽쳐(또는 프레임) 에만 상술한 변이 벡터 재설정 방법이 적용될 수 있다.
이때, “vertical_dv_value”는 상술한 변이 벡터 재설정 방법 중에서 시퀀스, 픽쳐, 슬라이스 단위로 “수직 방향 성분”의 변이 벡터를 시그널링할 때 사용할 수 있다. 또한, vertical_dv_value는 양수 또는 음수 부호를 가지는 형태로 부호화(se(v))될 수 있다. 또는, vertical_dv_value는 0과 양수 부호를 가지는 형태로 부호화(ue(v))될 수 있다.
상술한 바와 같이 도 13은 시퀀스, 픽쳐, 슬라이스 단위로 시그널링된 수직 방향 성분의 변이 벡터를 적용하는 방법을 포함한다.
변이 백터(DV) 재설정 과정에서는 수평 성분과 수직 성분을 포함하는 변이 벡터(DVx, DVy) 및 “vertical_dv_value”를 입력받아 변이 벡터(DV)의 수직 성분을 “vertical_dv_value”로 변경하여 변이 벡터를 재설정할 수 있다. 또한, 변이 벡터 재설정 과정은 재설정된 변이 벡터 (DVx, vertical_dv_value)를 출력할 수 있다.
“vertical_dv_threshold”는 변이 벡터 재설정 할 경우, 수직 방향 성분(DVy)의 변이 벡터의 문턱값(Threshold)을 시퀀스, 픽쳐, 슬라이스 단위로 시그널링할 때 사용하는 구문(syntax)이다. 이때, vertical_dv_threshold는 양수 또는 음수 부호를 가지는 형태로 부호화(se(v))될 수 있다. 또한, vertical_dv_threshold 는 0과 양수 부호를 가지는 형태로 부호화(ue(v))될 수 있다.
문턱값(Threshold)은 선택된 대상 움직임 후보의 수직 방향 움직임 성분을 변이 벡터의 수직 방향 성분으로 적용할지 여부를 결정하기 위해 사용될 수 있다. 이때, 선택된 대상 움직임 후보의 수직 방향 움직임 성분이 임의의 문턱값(Threshold) 이내일 경우(또는 이외일 경우)에 해당 움직임 벡터를 변이 벡터에 적용할 수 있다. 이때, 대상 움직임 후보는 주변 블록(또는 주변 블록으로부터 유도된 병합 움직임 후보 리스트(merge list))로부터 선택될 수 있다. 대상 움직임 후보를 선택하는 방법은 도 8 및 도 12에서 상술한 바와 같다.
도 14는 본 발명의 일 실시예에 따른, 변이 벡터의 재설정 과정에 대한 순서도이다.
도 14에 따르면, 3차원 영상 부호화 장치는 깊이 정보 맵 인코더에서 3차원 영상 부호화 장치는 깊이 정보 맵을 수신한다(S1400).
3차원 영상 부호화 장치는 다 시점 카메라로부터 수신한 실제 영상(texture) 및 상기 수신한 깊이 정보 맵을 통해 변이 벡터(Disparity Vector, DV)를 생성한다(S1410). 이때, 상기 변이 벡터는 수평 방향 성분(DVx) 및 수평 방향에 대해 직각인 수직 방향 성분(DVy)을 가지고, 주변 블록을 통해 상기 수직 방향 성분을 재설정 할 수 있다. 구체적인 변이 벡터 생성 방법은 도 4, 도 6, 도 9 내지 도 13에서 상술한 바와 같다.
3차원 영상 부호화 장치는 실제 영상 인코더에서 상기 변이 벡터 및 다 시점 카메라로부터 수신한 실제 영상의 부호화를 수행한다(S1420). 이때, 구체적인 영상 부호화 방법은 도 2에서 상술한 바와 같다.
도 15는 본 발명의 다른 실시예에 따른, 변이 벡터의 재설정 과정에 대한 순서도이다.
도 15에 따르면, 3차원 영상 복호화 장치는 변이 벡터(Disparity Vector) 정보를 포함하는 비트스트림을 수신한다(S1500).
3차원 영상 복호화 장치는 상기 변이 벡터로부터 깊이 정보 맵을 생성한다(S1510). 이때, 상기 변이 벡터는 수평 방향 성분(DVx) 및 수평 방향에 대해 직각인 수직 방향 성분(DVy)을 가지고, 주변 블록을 통해 상기 수직 방향 성분을 재설정 할 수 있다. 구체적인 변이 벡터 재설정 방법은 상술한 바와 같다.
상술한 본 발명에 따른 방법은 컴퓨터에서 실행되기 위한 프로그램으로 제작되어 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있으며, 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
또한, 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해 되어서는 안 될 것이다.

Claims (14)

  1. 깊이 정보 맵을 수신하여, 깊이 정보 맵을 부호화 하는 깊이 정보 맵 인코더(Depth Encoder); 및
    다 시점 카메라로부터 수신한 실제 영상(Texture)과 상기 깊이 정보 맵 중 적어도 하나를 이용하여 부호화 대상 블록의 변이 벡터(Disparity Vector, DV)를 생성하고, 상기 부호화 대상 블록의 주변 블록을 이용하여 상기 변이 벡터를 재설정하고, 상기 재설정된 변이 벡터 및 상기 실제 영상을 부호화하는 실제 영상 인코더(Texture Encoder)를 포함하되,
    상기 재설정된 변이 벡터는 수평 방향 성분(DVx)과 수직 방향 성분(DVy)을 가지는 3차원 영상 부호화 장치.
  2. 제1항에 있어서,
    상기 수직 방향 성분(DVy)은, 상기 주변 블록 중 블록의 움직임 벡터(Motion Vector)의 수평 방향 성분과 상기 변이 벡터의 수평 방향 성분의 차이가 가장 작은 블록을 선택 하고, 상기 선택된 블록의 움직임 벡터에 대한 수직 방향 성분을 상기 변이 벡터의 수직 방향 성분으로 설정하는 것을 특징으로 하는 3차원 영상 부호화 장치.
  3. 제2항에 있어서,
    상기 차이가 기 설정된 문턱값(Threshold) 이내일 경우, 상기 선택된 블록의 움직임 벡터에 대한 수직 방향 성분을 상기 변이 벡터의 수직 방향 성분으로 설정하는 것을 특징으로 하는 3차원 영상 부호화 장치.
  4. 제3항에 있어서,
    상기 문턱값(Threshold)은 시퀀스, 픽쳐, 슬라이스, 코딩 유닛(CU) 또는 블록 단위로 설정되는 것을 특징으로 하는 3차원 영상 부호화 장치.
  5. 제1항에 있어서,
    상기 변이 벡터의 수직 방향 성분(DVy)은, 상기 주변 블록으로부터 유도된 병합 움직임 후보 리스트(merge list) 중 수평 방향 성분이 상기 변이 벡터의 수평 방향 성분과 가장 비슷한 병합 움직임 후보를 선택하고, 상기 선택된 병합 움직임 후보의 움직임 벡터의 수직 방향 성분을 상기 변이 벡터의 수직 방향 성분으로 설정하는 것을 특징으로 하는 3차원 영상 부호화 장치.
  6. 제1항에 있어서,
    상기 재설정된 변이 벡터를 병합 움직임 후보 리스트(merge list)에 추가하는 것을 특징으로 하는 3차원 영상 부호화 장치.
  7. 제1항에 있어서,
    상기 재설정된 변이 벡터의 수직 방향 성분은 기 설정된 값(Cy)을 가지는 것을 특징으로 하는 3차원 영상 부호화 장치.
  8. 깊이 정보 맵(Depth Map)을 수신하는 단계;
    다 시점 카메라로부터 수신한 실제 영상(texture) 과 상기 깊이 정보 맵 중 적어도 하나를 이용하여 부호화 대상 블록의 변이 벡터(Disparity Vector, DV)를 생성하는 단계;
    상기 부호화 대상 블록의 주변 블록을 이용하여 상기 변이 벡터를 재설정하는 단계; 여기서, 상기 재설정된 변이 벡터는 수평 방향 성분(DVx)과 수직 방향 성분(DVy)을 가짐, 및
    상기 재설정된 변이 벡터 및 상기 실제 영상을 부호화하는 단계를 포함하는 3차원 영상 부호화 방법.
  9. 제8항에 있어서,
    상기 수직 방향 성분(DVy)은 상기 주변 블록 중 블록의 움직임 벡터(Motion Vector)의 수평 방향 성분과 상기 변이 벡터의 수평 방향 성분의 차이가 가장 작은 블록을 선택하고, 상기 선택된 블록의 움직임 벡터에 대한 수직 방향 성분을 상기 변이 벡터의 수직 방향 성분으로 설정하는 것을 특징으로 하는 3차원 영상 부호화 방법.
  10. 제9항에 있어서,
    상기 차이가 기 설정된 문턱값(Threshold) 이내일 경우, 상기 선택된 블록의 움직임 벡터에 대한 수직 방향 성분을 상기 변이 벡터의 수직 방향 성분으로 설정하는 것을 특징으로 하는 3차원 영상 부호화 방법.
  11. 제10항에 있어서,
    상기 문턱값(Threshold)은 시퀀스, 픽쳐, 슬라이스, 코딩 유닛(CU) 또는 블록 단위로 설정되는 것을 특징으로 하는 3차원 영상 부호화 방법.
  12. 제8항에 있어서,
    상기 변이 벡터의 수직 방향 성분(DVy)은, 상기 주변 블록으로부터 유도된 병합 움직임 후보 리스트(merge list) 중 수평 방향 성분이 상기 변이 벡터의 수평 방향 성분과 가장 비슷한 병합 움직임 후보를 선택하고, 상기 선택된 병합 움직임 후보의 움직임 벡터의 수직 방향 성분을 상기 변이 벡터의 수직 방향 성분으로 설정하는 것을 특징으로 하는 3차원 영상 부호화 방법.
  13. 제8항에 있어서,
    상기 재설정된 변이 벡터를 병합 움직임 후보 리스트(merge list)에 추가하는 것을 특징으로 하는 3차원 영상 부호화 방법.
  14. 제8항에 있어서,
    상기 재설정된 변이 벡터의 수직 방향 성분은 기 설정된 값(Cy)을 가지는 것을 특징으로 하는 3차원 영상 부호화 방법.
KR1020140090231A 2013-07-18 2014-07-17 변이 벡터 예측 방법 및 장치 KR101672008B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20130084982 2013-07-18
KR1020130084982 2013-07-18

Publications (2)

Publication Number Publication Date
KR20150010631A KR20150010631A (ko) 2015-01-28
KR101672008B1 true KR101672008B1 (ko) 2016-11-03

Family

ID=52482378

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140090231A KR101672008B1 (ko) 2013-07-18 2014-07-17 변이 벡터 예측 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101672008B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100603601B1 (ko) * 2004-11-08 2006-07-24 한국전자통신연구원 다시점 콘텐츠 생성 장치 및 그 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101628383B1 (ko) * 2010-02-26 2016-06-21 연세대학교 산학협력단 영상 처리 장치 및 방법
KR101747434B1 (ko) * 2011-01-20 2017-06-16 연세대학교 산학협력단 움직임 정보 및 변이 정보를 부호화/복호화하는 영상 처리 장치 및 방법
BR112014003165A2 (pt) * 2011-08-09 2017-03-01 Samsung Electronics Co Ltd método para codificar um mapa de profundidade de dados de vídeo de múltiplas visualizações, aparelho para codificar um mapa de profundidade de dados de vídeo de múltiplas visualizações, método para decodificar um mapa de profundidade de dados de vídeo de múltiplas visualizações, e aparelho para decodificar um mapa de profundidade de dados de vídeo de múltiplas visualizações

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100603601B1 (ko) * 2004-11-08 2006-07-24 한국전자통신연구원 다시점 콘텐츠 생성 장치 및 그 방법

Also Published As

Publication number Publication date
KR20150010631A (ko) 2015-01-28

Similar Documents

Publication Publication Date Title
JP6522629B2 (ja) 3dビデオコード化のためのブロックベースの高度残差予測
JP6535673B2 (ja) 非対称動き分割を使用するビデオコーディング技法
TWI538484B (zh) 寫碼視訊資料之方法、裝置及非暫時性電腦可讀媒體
US10681378B2 (en) Method for encoding and decoding video including plurality of layers
KR102264104B1 (ko) 백워드 뷰 합성 예측
US10194133B2 (en) Device and method for eliminating redundancy of view synthesis prediction candidate in motion merge mode
KR101780434B1 (ko) 3d 비디오 코딩에서의 유도된 디스패리티 벡터
JP7183361B2 (ja) サブ予測ユニット単位の時間的な視点間動き情報の誘導方法及び装置
WO2014205343A1 (en) More accurate advanced residual prediction (arp) for texture coding
KR20150132505A (ko) 스킵 및 직접 모드들에 대한 3d 비디오 코딩에서의 디스패리티 벡터 유도
TW201440504A (zh) 視差向量推導
CN114586346A (zh) 使用非矩形融合模式协调加权预测的方法和装置
KR101672008B1 (ko) 변이 벡터 예측 방법 및 장치
KR20160126611A (ko) 3차원 영상 부호화 및 복호화에 있어서 적응적 병합 후보 선택 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 4