KR20140043032A - 움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치 - Google Patents

움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치 Download PDF

Info

Publication number
KR20140043032A
KR20140043032A KR1020130112962A KR20130112962A KR20140043032A KR 20140043032 A KR20140043032 A KR 20140043032A KR 1020130112962 A KR1020130112962 A KR 1020130112962A KR 20130112962 A KR20130112962 A KR 20130112962A KR 20140043032 A KR20140043032 A KR 20140043032A
Authority
KR
South Korea
Prior art keywords
disparity vector
current block
block
vector
depth
Prior art date
Application number
KR1020130112962A
Other languages
English (en)
Other versions
KR102137266B1 (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/432,410 priority Critical patent/US20150245049A1/en
Priority to PCT/KR2013/008563 priority patent/WO2014051320A1/ko
Priority to CN201380051109.1A priority patent/CN104704832B/zh
Publication of KR20140043032A publication Critical patent/KR20140043032A/ko
Application granted granted Critical
Publication of KR102137266B1 publication Critical patent/KR102137266B1/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
    • 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
    • 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
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0081Depth or disparity estimation from stereoscopic image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0085Motion estimation from stereoscopic image signals

Landscapes

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

Abstract

움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치가 개시된다. 일실시예에 따른 영상 처리 방법은 컬러 영상에 대응하는 깊이 영상을 이용하여 컬러 영상에 포함된 현재 블록의 변이 벡터를 결정할 수 있다. 깊이 영상을 이용하여 움직임 벡터 또는 변이 벡터를 예측함으로써, 3D 비디오를 효율적으로 압축할 수 있다.

Description

움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치{METHOD AND APPARATUS FOR ESTIMATION OF MOTION VECTOR AND DISPARITY VECTOR}
아래의 설명은 3차원 비디오의 효율적인 압축 및 복원을 위한 것으로, 보다 구체적으로는 움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치에 관한 것이다.
입체 영상이란 깊이 및 공간에 대한 형상 정보를 영상 정보와 동시에 제공하는 3차원 영상을 의미한다. 스테레오 영상의 경우, 좌우 눈에 각각 다른 시점의 영상을 제공하는 반면에, 입체 영상은 관찰자가 보는 시점을 달리할 때마다 다른 방향에서 본 것과 같은 영상을 제공한다. 따라서, 입체 영상을 생성하기 위해서는 여러 시점에서 촬영한 영상들이 필요하다.
입체 영상을 생성하기 위해 여러 시점에서 찍은 영상들은 데이터량이 방대하다. 따라서, 입체 영상을 위해 네트워크 인프라, 지상파 대역폭 등을 고려하면 MPEG-2, H.264/AVC, 그리고 HEVC 등과 같은 단일시점 비디오 압축(Single-View Video Coding)에 최적화된 부호화 장치를 사용하여 압축하더라도 실현이 거의 불가능하다.
따라서, 입체 영상을 생성하기 위해 최적화된 다시점 영상 부호화 장치가 요구된다. 특히, 시간 및 시점 간의 중복성을 효율적으로 감소시키기 위한 기술 개발이 필요하다.
일실시예에 따른 영상 처리 방법은, 컬러 영상의 현재 블록에 대응하는 깊이 영상을 식별하는 단계; 및 상기 깊이 영상에 포함된 픽셀의 깊이값에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 단계를 포함할 수 있다.
일실시예에 따른 영상 처리 방법은, 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 변이 벡터를 식별하는 단계; 상기 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 상기 컬러 영상에 대응하는 깊이 영상을 이용하여 상기 주변 블록의 변이 벡터를 결정하는 단계; 및 상기 적어도 하나의 주변 블록의 변이 벡터에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 단계를 포함할 수 있다.
일실시예에 따른 영상 처리 방법은, 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 변이 벡터를 이용하여 상기 현재 블록의 변이 벡터를 결정하는 단계; 및 상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 단계를 포함할 수 있다.
일실시예에 따른 영상 처리 방법은, 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 움직임 벡터를 식별하는 단계; 상기 주변 블록이 움직임 벡터를 가지고 있지 않은 경우, 상기 컬러 영상에 대응하는 깊이 영상을 이용하여 상기 주변 블록의 움직임 벡터를 결정하는 단계; 및 상기 적어도 하나의 주변 블록의 움직임 벡터에 기초하여 상기 현재 블록의 움직임 벡터를 결정하는 단계를 포함할 수 있다.
일실시예에 따른 영상 처리 장치는, 컬러 영상의 현재 블록에 대응하는 깊이 영상을 식별하는 깊이 영상 식별부; 및 상기 깊이 영상에 포함된 픽셀의 깊이값에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 변이 벡터 결정부를 포함할 수 있다.
일실시예에 따른 영상 처리 장치는, 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 변이 벡터를 추출하는 변이 벡터 추출부; 및 상기 적어도 하나의 주변 블록의 변이 벡터에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 변이 벡터 결정부를 포함할 수 있다.
일실시예에 따른 영상 처리 장치는, 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 변이 벡터를 이용하여 상기 현재 블록의 변이 벡터를 결정하는 변이 벡터 결정부; 및 상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 움직임 벡터 결정부를 포함할 수 있다.
일실시예에 따른 영상 처리 장치는, 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 움직임 벡터를 추출하는 움직임 벡터 추출부; 및 상기 적어도 하나의 주변 블록의 움직임 벡터에 기초하여 상기 현재 블록의 움직임 벡터를 결정하는 움직임 벡터 결정부를 포함할 수 있다.
도 1은 일실시예에 따른 부호화 장치와 복호화 장치의 동작을 설명하기 위한 도면이다.
도 2는 일실시예에 따른 현재 블록의 변이 벡터를 예측하는 영상 처리 장치를 도시한 도면이다.
도 3은 일실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 장치를 도시한 도면이다.
도 4는 다른 실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 장치를 도시한 도면이다.
도 5는 또 다른 실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 장치를 도시한 도면이다.
도 6은 일실시예에 따른 일실시예에 따른 다시점 비디오의 구조를 도시한 도면이다.
도 7은 일실시예에 따른 현재 블록을 코딩할 때 사용되는 참조 영상을 도시한 도면이다.
도 8은 일실시예에 따른 부호화 장치의 동작을 상세하게 설명하기 위한 도면이다.
도 9는 일실시예에 따른 복호화 장치의 동작을 상세하게 설명하기 위한 도면이다.
도 10은 일실시예에 따른 현재 블록의 변이 벡터를 예측하는 과정을 도시한 도면이다.
도 11은 일실시예에 따른 스킵 모드 및 다이렉트 모드에 대한 현재 블록의 움직임 벡터를 예측하는 과정을 도시한 도면이다.
도 12는 일실시예에 따른 변이 벡터를 이용하여 현재 블록의 움직임 벡터를 예측하는 과정을 도시한 도면이다.
도 13은 일실시예에 따른 인터 모드에 대한 현재 블록의 움직임 벡터를 예측하는 과정을 도시한 도면이다.
도 14는 일실시예에 따른 현재 블록의 변이 벡터를 예측하는 영상 처리 방법을 도시한 흐름도이다.
도 15는 일실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 방법을 도시한 흐름도이다.
도 16은 다른 실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 방법을 도시한 흐름도이다.
도 17은 또 다른 실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 방법을 도시한 흐름도이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 아래의 특정한 구조적 내지 기능적 설명들은 단지 발명의 실시예들을 설명하기 위한 목적으로 예시된 것으로, 발명의 범위가 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 안된다. 일실시예에 따른 영상 처리 방법은 영상 처리 장치에 의해 수행될 수 있으며, 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
실시예들을 상세하게 설명하기 전에, 실시예 또는 특허청구범위에 기재된 용어들을 다음과 같이 정의한다.
(1) 현재 블록(Current Color Block): 부호화 또는 복호화하고자 하는 컬러 영상의 블록을 의미한다.
(2) 현재 컬러 영상(Current Color Image): 현재 블록이 포함된 컬러 영상을 의미한다. 구체적으로, 현재 컬러 영상은 부호화 또는 복호화하고자 하는 블록을 포함하고 있는 컬러 영상을 나타낸다.
(3) 현재 블록에 대응하는 깊이 영상(Corresponding Depth Image): 현재 블록이 포함된 컬러 영상(현재 컬러 영상)에 대응하는 깊이 영상을 의미한다.
(4) 주변 블록(Neighboring Block around the current block): 현재 블록에 이웃하는 부호화되었거나 또는 복호화된 적어도 하나의 블록을 나타낸다. 예를 들어, 주변 블록은 현재 블록의 상단, 현재 블록의 우측 상단, 현재 블록의 좌측, 또는 현재 블록의 좌측 상단에 위치할 수 있다.
(5) 대응 블록(Colocated Depth Block in the corresponding depth map): 현재 블록에 대응하는 깊이 영상에 포함된 깊이 영상 블록을 의미한다. 예를 들어, 대응 블록은 컬러 영상에 대응하는 깊이 영상에서 현재 블록과 동일한 위치에 있는 블록을 포함할 수 있다.
(6) 매크로 블록(Colocated Depth Macroblock): 깊이 영상의 대응 블록을 포함하는 상위 개념의 깊이 영상 블록을 의미한다.
(7) 주변 컬러 영상(Neighboring Color Image around the color image comprising the Current Color Block): 현재 블록이 포함된 컬러 영상의 시점과 다른 시점을 갖는 컬러 영상을 의미한다. 주변 컬러 영상은 현재 블록에 대한 영상 처리 과정이 수행되기 이전에 부호화된 또는 복호화된 컬러 영상일 수 있다.
도 1은 일실시예에 따른 부호화 장치와 복호화 장치의 동작을 설명하기 위한 도면이다.
일실시예에 따른 부호화 장치(110)는 3D(dimensional) 비디오를 부호화하고, 부호화된 데이터를 비트스트림 형태로 생성하여 복호화 장치(120)에 전송할 수 있다. 3D 비디오는 여러 시점의 컬러 영상과 깊이 영상을 포함할 수 있다. 3D 비디오는 시간적으로 연속적인 영상들간에 나타나는 시간적 중복성뿐만 아니라 서로 다른 시점의 영상들 간에 나타나는 시점간 중복성을 가지고 있다. 부호화 장치(110)는 이러한 시간적 중복성 및 시점간 중복성을 효과적으로 제거하여 3D 비디오를 효율적으로 부호화할 수 있다. 부호화 장치(110)는 3D 비디오를 부호화는 과정에서 영상들 간의 중복성을 최대한으로 제거함으로써 부호화 효율을 향상시킬 수 있다.
부호화 장치(110)와 복호화 장치(120)는 컬러 영상들 간의 중복성을 제거하기 위해 블록 기반의 예측을 수행할 수 있다. 부호화 장치(110) 및 복호화 장치(120)는 컬러 영상들 간의 중복성을 효율적으로 제거하기 위해 깊이 영상을 이용할 수 있다. 부호화 장치(110) 및 복호화 장치(120)는 주변 블록의 움직임 벡터(Motion Vector, MV, 또는 Temporal MV)를 이용하여 시간적 중복성을 제거하고, 주변 블록의 변이 벡터(Disparity Vector, 또는 Inter-View MV) 및 컬러 영상에 대응하는 깊이 영상을 이용하여 시점간 중복성을 제거할 수 있다. 부호화 장치(110)는 3D 비디오의 컬러 영상을 부호화하는 과정에서, 움직임 벡터를 효율적으로 부호화함으로써 컬러 영상들 간의 중복성을 최소화할 수 있다.
컬러 영상에 대응하는 깊이 영상의 크기는 컬러 영상의 크기와 다를 수 있다. 깊이 영상의 크기가 컬러 영상의 크기와 다른 경우, 부호화 장치(110) 및 복호화 장치(120)는 깊이 영상의 크기를 컬러 영상의 크기와 동일하도록 깊이 영상의 크기를 조절할 수 있다. 예를 들어, 깊이 영상의 크기가 컬러 영상의 크기보다 작은 경우, 부호화 장치(110) 및 복호화 장치(120)는 깊이 영상을 업샘플링(up-sampling)함으로써 깊이 영상의 크기가 컬러 영상의 크기와 동일하도록 깊이 영상의 크기를 조절할 수 있다.
다른 실시예에 따르면, 깊이 영상의 크기와 컬러 영상의 크기가 서로 다르더라도, 원래 크기의 깊이 영상이 그대로 이용될 수 있다. 원래 크기의 깊이 영상을 이용하는 경우, 깊이 영상의 크기를 변환하는 과정이 요구되지 않기에 복잡도가 감소하고 메모리 요구량이 감소될 수 있다.
도 2 내지 도 17에서 언급되는 영상 처리 장치는 도 1의 부호화 장치(110) 또는 복호화 장치(120)의 내부 또는 외부에서 구현될 수 있다.
도 2는 일실시예에 따른 현재 블록의 변이 벡터를 예측하는 영상 처리 장치를 도시한 도면이다.
도 2를 참조하면, 영상 처리 장치(200)는 깊이 영상 식별부(210) 및 변이 벡터 결정부(220)를 포함할 수 있다.
깊이 영상 식별부(210)는 컬러 영상의 현재 블록에 대응하는 깊이 영상을 식별할 수 있다. 컬러 영상에 대응하는 깊이 영상이 존재하지 않는 경우, 깊이 영상 식별부(210)는 현재 블록에 이웃하는 주변 블록들 또는 현재 블록이 포함된 컬러 영상의 주변 컬러 영상 또는 다른 깊이 영상을 이용하여 현재 블록에 대응하는 깊이 영상을 추정할 수도 있다.
변이 벡터 결정부(220)는 현재 블록에 대응하는 깊이 영상의 깊이 정보를 이용하여 현재 블록의 변이 벡터를 결정할 수 있다. 변이 벡터 결정부(220)는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 식별한 픽셀의 깊이값 중 가장 큰 깊이값을 현재 블록의 변이 벡터로 변환할 수 있다.
예를 들어, 변이 벡터 결정부(220)는 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 픽셀의 깊이값에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 변이 벡터 결정부(220)는 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별할 수 있다. 변이 벡터 결정부(220)는 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 현재 블록의 변이 벡터로 결정할 수 있다. 변이 벡터 결정부(220)는 깊이 영상의 대응 블록에 포함된 전체 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 또는, 변이 벡터 결정부(220)는 깊이 영상의 대응 블록에 포함된 픽셀들 중 일부 픽셀들만을 고려할 수도 있고, 일부 픽셀들의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 일례에 따르면, 변이 벡터 결정부(220)는 깊이 영상 내 미리 설정된 영역에 위치하는 픽셀들을 식별하고, 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 현재 블록의 변이 벡터로 변환할 수도 있다. 예를 들어, 변이 벡터 결정부(220)는 깊이 영상 내 미리 설정된 영역인 대응 블록의 모서리에 위치하는 픽셀들을 식별하고, 식별된 픽셀들의 깊이값 중 가장 큰 깊이값을 현재 블록의 변이 벡터로 변환할 수 있다. 또는, 변이 벡터 결정부(220)는 대응 블록의 모서리에 위치하는 픽셀의 깊이값 및 대응 블록의 중앙에서의 깊이값 중 가장 큰 깊이값을 현재 블록의 변이 벡터로 변환할 수도 있다.
또한, 변이 벡터 결정부(220)는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 변이 벡터 결정부(220)는 매크로 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 현재 블록의 변이 벡터로 결정할 수 있다. 또는, 변이 벡터 결정부(220)는 대응 블록을 포함하는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 현재 블록의 변이 벡터로 변환할 수 있다. 예를 들어, 변이 벡터 결정부(220)는 매크로 블록의 모서리에 위치하는 픽셀들의 깊이값 중 가장 큰 깊이값을 변환하여 현재 블록의 변이 벡터를 결정할 수 있다.
변이 벡터 결정부(220)는 현재 블록의 변이 벡터를 결정하기 위해 현재 컬러 영상에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 변이 벡터 결정부(220)는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 현재 블록의 변이 벡터로 결정할 수 있다. 또는, 변이 벡터 결정부(220)는 대응 블록(또는, 매크로 블록) 내 임의의 한 개의 픽셀의 깊이값을 현재 블록의 변이 벡터로 변환할 수도 있다.
시점간 예측(Inter-View Prediction)에서 움직이는 물체를 정확히 예측하는 것은 중요하다. 일반적으로, 대부분의 움직이는 물체는 배경보다 카메라에 가까이 있기 때문에 가장 큰 깊이값을 가진다. 변이 벡터 결정부(220)는 현재 블록의 변이 벡터를 예측하기 위해 이러한 움직이는 물체와 깊이값 간의 관계를 고려한다.
변이 벡터 결정부(220)는 깊이값을 변이 벡터로 변환하는 과정에서 카메라 파라미터 정보를 이용할 수 있다. 변이 벡터 결정부(220)는 깊이값의 변환을 통해 변이 벡터를 생성하고, 생성된 변이 벡터를 현재 블록의 변이 벡터로 결정할 수 있다.
다른 실시예에 따르면, 변이 벡터 결정부(220)는 컬러 영상의 현재 블록의 변이 벡터를 결정하기 위해 현재 블록에 이웃한 주변 블록의 변이 벡터를 이용할 수 있다. 변이 벡터 결정부(220)는 현재 블록에 이웃한 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 컬러 영상에 대응하는 깊이 영상에 포함된 픽셀의 깊이값을 이용하여 주변 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 변이 벡터 결정부(220)는 현재 블록에 대응하는 깊이 영상의 매크로 블록 또는 대응 블록에 포함된 픽셀들의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다. 또는, 변이 벡터 결정부(220)는 대응 블록을 포함하는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다. 예를 들어, 변이 벡터 결정부(220)는 매크로 블록의 모서리에 위치하는 픽셀들의 깊이값 중 가장 큰 깊이값을 변환하여 주변 블록의 변이 벡터를 결정할 수 있다. 변이 벡터 결정부(220)는 주변 블록의 변이 벡터를 결정하기 위해 현재 컬러 영상에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 변이 벡터 결정부(220)는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다.
변이 벡터 결정부(220)는 주변 블록의 변이 벡터가 결정되면, 주변 블록의 변이 벡터와 미디언 필터(Median Filter)를 이용하여 현재 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 변이 벡터 결정부(220)는 현재 블록에 이웃한 적어도 하나의 주변 블록의 변이 벡터에 미디언 필터를 적용하고, 미디언 필터가 적용된 결과를 현재의 변이 벡터로 결정할 수 있다.
도 3은 일실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 장치를 도시한 도면이다.
도 3을 참조하면, 영상 처리 장치(300)는 변이 벡터 추출부(310) 및 변이 벡터 결정부(320)를 포함할 수 있다. 영상 처리 장치(300)는 변이 벡터 추출부(310)와 변이 벡터 결정부(320)를 통해 현재 블록의 변이 벡터를 예측할 수 있다. 다른 실시예에 따르면, 영상 처리 장치(300)는 움직임 벡터 결정부(330)를 추가적으로 포함할 수 있고, 움직임 벡터 결정부(330)를 통해 현재 블록의 움직임 벡터를 예측할 수 있다.
변이 벡터 추출부(310)는 컬러 영상의 현재 블록에 이웃하는 주변 블록의 변이 벡터를 추출할 수 있다. 변이 벡터 추출부(310)는 주변 블록에 변이 벡터가 존재하는지 여부를 판단하고, 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 컬러 영상에 대응하는 깊이 영상을 이용하여 주변 블록의 변이 벡터를 결정할 수 있다. 다른 실시예에 따르면, 변이 벡터 추출부(310)는 주변 블록에 변이 벡터가 존재하는지 여부를 판단하지 않고, 바로 깊이 영상의 깊이 정보를 이용하여 주변 블록의 변이 벡터를 결정할 수도 있다.
변이 벡터 추출부(310)는 현재 블록에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별할 수 있다. 변이 벡터 추출부(310)는 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다. 또는, 변이 벡터 추출부(310)는 깊이 영상에 포함된 픽셀들 중 일부 픽셀들만을 고려할 수도 있고, 일부 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다.
예를 들어, 변이 벡터 추출부(310)는 변이 벡터를 가지고 있지 않은 주변 블록이 존재하는 경우, 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 적어도 하나의 픽셀의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다. 또는, 변이 벡터 추출부(310)는 깊이 영상 내 미리 설정된 영역에 위치하는 픽셀의 깊이값을 식별하고, 미리 설정된 영역에 위치하는 픽셀의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수도 있다. 예를 들어, 변이 벡터 추출부(310)는 대응 블록의 모서리에 위치하는 픽셀들의 깊이값 및 대응 블록의 중앙에 위치하는 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다.
변이 벡터 추출부(310)는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 주변 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 변이 벡터 추출부(310)는 매크로 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다. 또는, 변이 벡터 추출부(310)는 대응 블록을 포함하는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다. 예를 들어, 변이 벡터 추출부(310)는 매크로 블록의 모서리에 위치하는 픽셀들의 깊이값 중 가장 큰 깊이값을 변환하여 주변 블록의 변이 벡터를 결정할 수 있다.
변이 벡터 추출부(310)는 주변 블록의 변이 벡터를 결정하기 위해 현재 컬러 영상에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 변이 벡터 추출부(310)는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다.
변이 벡터 결정부(320)는 주변 블록의 변이 벡터에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 변이 벡터 결정부(320)는 주변 블록의 변이 벡터에 미디언 필터를 적용하고, 미디언 필터가 적용된 결과를 현재 블록의 변이 벡터로 결정할 수 있다.
움직임 벡터 결정부(330)는 결정된 현재 블록의 변이 벡터를 이용하여 현재 블록의 움직임 벡터를 결정할 수 있다. 구체적으로, 움직임 벡터 결정부(330)는 현재 블록의 변이 벡터를 이용하여 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하고, 식별된 위치에서의 움직임 벡터를 현재 블록의 움직임 벡터로 결정할 수 있다.
식별된 위치에 움직임 벡터가 존재하지 않는 경우, 움직임 벡터 결정부(330)는 현재 블록에 이웃한 주변 블록을 이용하여 현재 블록의 움직임 벡터를 결정할 수 있다. 움직임 벡터 결정부(330)는 주변 블록의 변이 벡터 및 움직임 벡터 중 적어도 하나에 기초하여 현재 블록의 움직임 벡터를 결정할 수 있다. 예를 들어, 움직임 벡터 결정부(330)는 참조 영상 인덱스가 동일 시점의 컬러 영상을 가리키는 경우, 주변 블록들의 움직임 벡터에 미디언 필터를 적용하고, 미디언 필터가 적용된 결과를 현재 블록의 움직임 벡터로 결정할 수 있다. 참조 영상 인덱스가 다른 시점의 컬러 영상을 가리키는 경우에는, 움직임 벡터 결정부(330)는 주변 블록들의 변이 벡터에 미디언 필터가 적용된 결과를 현재 블록의 움직임 벡터로 결정할 수 있다. 위 두 경우가 모두 아닌 경우, 움직임 벡터 결정부(330)는 영벡터(Zero Motion Vector)를 현재 블록의 움직임 벡터로 결정할 수 있다.
도 4는 다른 실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 장치를 도시한 도면이다.
도 4를 참조하면, 영상 처리 장치(400)는 변이 벡터 결정부(410) 및 움직임 벡터 결정부(420)를 포함할 수 있다.
변이 벡터 결정부(410)는 컬러 영상의 현재 블록에 이웃하는 주변 블록의 변이 벡터를 이용하여 현재 블록의 변이 벡터를 결정할 수 있다. 변이 벡터 결정부(410)는 주변 블록에 변이 벡터가 존재하는지 여부를 판단하고, 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 컬러 영상에 대응하는 깊이 영상을 이용하여 주변 블록의 변이 벡터를 결정할 수 있다. 다른 실시예에 따르면, 변이 벡터 결정부(410)는 주변 블록에 변이 벡터가 존재하는지 여부를 판단하지 않고, 바로 깊이 영상의 깊이 정보를 이용하여 주변 블록의 변이 벡터를 결정할 수도 있다.
변이 벡터 결정부(410)는 현재 블록에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별할 수 있다. 변이 벡터 결정부(410)는 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다. 변이 벡터 결정부(410)는 깊이 영상에 포함된 픽셀들 중 일부 픽셀들만을 고려할 수도 있고, 일부 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로서 변환할 수 있다.
예를 들어, 변이 벡터 결정부(410)는 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 컬러 영상의 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 적어도 하나의 픽셀의 깊이값에 기초하여 주변 블록의 변이 벡터를 결정하고, 주변 블록의 변이 벡터에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 변이 벡터 결정부(410)는 깊이 영상의 대응 블록에 포함된 적어도 하나의 픽셀의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다. 또는, 변이 벡터 결정부(410)는 깊이 영상에서, 미리 설정된 영역에 위치하는 픽셀의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수도 있다.
변이 벡터 결정부(410)는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 주변 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 변이 벡터 결정부(410)는 매크로 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다. 또는, 변이 벡터 결정부(410)는 대응 블록을 포함하는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다. 예를 들어, 변이 벡터 결정부(410)는 매크로 블록의 모서리에 위치하는 픽셀들의 깊이값 중 가장 큰 깊이값을 변환하여 주변 블록의 변이 벡터를 결정할 수 있다.
변이 벡터 결정부(410)는 주변 블록의 변이 벡터를 결정하기 위해 현재 컬러 영상에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 변이 벡터 결정부(410)는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다.
변이 벡터 결정부(410)는 주변 블록의 변이 벡터에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 변이 벡터 결정부(410)는 주변 블록의 변이 벡터에 미디언 필터를 적용하고, 미디언 필터가 적용된 결과를 현재 블록의 변이 벡터로 결정할 수 있다.
움직임 벡터 결정부(420)는 결정된 현재 블록의 변이 벡터를 이용하여 현재 블록의 움직임 벡터를 결정할 수 있다. 움직임 벡터 결정부(420)는 현재 블록의 변이 벡터를 이용하여 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하고, 식별된 위치에서의 움직임 벡터를 현재 블록의 움직임 벡터로 결정할 수 있다.
식별된 위치에 움직임 벡터가 존재하지 않는 경우, 움직임 벡터 결정부(420)는 현재 블록에 이웃한 주변 블록을 이용하여 현재 블록의 움직임 벡터를 결정할 수 있다. 움직임 벡터 결정부(420)는 주변 블록의 변이 벡터 및 움직임 벡터 중 적어도 하나에 기초하여 현재 블록의 움직임 벡터를 결정할 수 있다. 움직임 벡터 결정부(420)는 주변 블록의 변이 벡터 또는 움직임 벡터로도 현재 블록의 움직임 벡터를 결정할 수 없는 경우에는 영벡터를 현재 블록의 움직임 벡터로 결정할 수 있다.
도 5는 또 다른 실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 장치를 도시한 도면이다.
도 5를 참조하면, 영상 처리 장치(500)는 움직임 벡터 추출부(510) 및 움직임 벡터 결정부(520)를 포함할 수 있다.
움직임 벡터 추출부(510)는 컬러 영상의 현재 블록에 이웃하는 주변 블록의 움직임 벡터를 추출할 수 있다. 움직임 벡터 추출부(510)는 주변 블록에 움직임 벡터가 존재하는지 여부를 판단하여, 주변 블록이 움직임 벡터를 가지고 있지 않은 경우, 컬러 영상에 대응하는 깊이 영상을 이용하여 주변 블록의 움직임 벡터를 결정할 수 있다. 움직임 벡터 추출부(510)는 움직임 벡터가 존재하지 않는 주변 블록의 움직임 벡터를 다른 시점의 컬러 영상으로부터 획득할 수 있고, 주변 블록의 움직임 벡터를 다른 시점의 컬러 영상으로부터 획득하기 위해 깊이 영상을 이용할 수 있다. 다른 실시예에 따르면, 움직임 벡터 추출부(510)는 주변 블록에 움직임 벡터가 존재하는지 여부를 판단하지 않고, 바로 깊이 영상의 깊이 정보를 이용하여 주변 블록의 움직임 벡터를 결정할 수도 있다.
움직임 벡터 추출부(510)는 주변 블록의 움직임 벡터를 결정하기 위해 깊이 영상을 이용하여 변이 벡터를 획득할 수 있다. 움직임 벡터 추출부(510)는 현재 블록에 대응하는 깊이 영상에 포함된 적어도 하나의 픽셀을 식별하고, 식별된 픽셀의 깊이값에 기초하여 변이 벡터를 획득할 수 있다. 예를 들어, 움직임 벡터 추출부(510)는 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 적어도 하나의 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 움직임 벡터 추출부(510)는 변이 벡터를 획득하는 과정에서 카메라 파라미터 정보를 이용할 수 있다. 움직임 벡터 추출부(510)는 변이 벡터를 이용하여 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서 주변 블록의 움직임 벡터를 탐색할 수 있다. 또는, 움직임 벡터 추출부(510)는 현재 블록에 대응하는 깊이 영상 내 미리 설정된 영역에 위치하는 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 이용하여 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서 주변 블록의 움직임 벡터를 탐색할 수도 있다
움직임 벡터 추출부(510)는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 주변 블록의 움직임 벡터를 결정할 수 있다. 예를 들어, 움직임 벡터 추출부(510)는 매크로 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터가 가리키는 위치에서의 움직임 벡터를 주변 블록의 움직임 벡터로 결정할 수 있다. 또는, 움직임 벡터 추출부(510)는 대응 블록을 포함하는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환하고, 변환된 변이 벡터를 이용하여 주변 블록의 움직임 벡터를 탐색할 수도 있다.
움직임 벡터 추출부(510)는 주변 블록의 움직임 벡터를 결정하기 위해 현재 컬러 영상에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 움직임 벡터 추출부(510)는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터가 가리키는 곳의 움직임 벡터를 주변 블록의 움직임 벡터로 결정할 수 있다.
움직임 벡터 추출부(510)는 변이 벡터가 가리키는 위치에 움직임 벡터가 존재하지 않는 경우에는 주변 블록의 움직임 벡터를 영벡터로 결정할 수 있다. 또한, 움직임 벡터 추출부(510)는 현재 블록의 참조 영상 인덱스와 다른 시점의 컬러 영상에서 가져온 참조 영상 인덱스가 일치하지 않을 경우, 주변 블록의 움직임 벡터를 영벡터로 결정할 수 있다.
움직임 벡터 결정부(520)는 주변 블록의 움직임 벡터에 기초하여 현재 블록의 움직임 벡터를 결정할 수 있다. 예를 들어, 움직임 벡터 결정부(520)는 주변 블록들의 움직임 벡터에 미디언 필터를 적용하고, 미디언 필터가 적용된 결과를 현재 블록의 움직임 벡터로 결정할 수 있다.
도 6은 일실시예에 따른 일실시예에 따른 다시점 비디오의 구조를 도시한 도면이다.
도 6을 참고하면, 일실시예에 따라 3개 시점(Left view, Center view, Right view)의 영상을 입력 받았을 때, GOP(Group of Picture) '8'로 부호화하는 다시점 영상 부호화 방식(Multi-view Video Coding, MVC)을 나타낸다. GOP는 I-프레임으로 시작하는 연속적인 이미지들의 집합을 의미한다.
다시점(Multi-view) 영상을 부호화하는 과정에서는 기본적으로 시간(Temporal)축과 시점(View)축으로 계층적 B 영상(Hierarchical B Picture, 또는 계층적 B-프레임)의 개념을 이용하기 때문에 영상 간의 중복성(Redundancy)은 감소될 수 있다.
도 1의 부호화 장치(110)는 도 6에 도시된 다시점 영상의 구조에 따라 좌측 영상(Left Picture: I-view)을 부호화하고, 우측 영상(Right Picture: P-view)과 중앙 영상(Center Picture: B-view)를 차례대로 부호화함으로써 3개 시점에 대응하는 영상을 부호화할 수 있다.
좌측 영상을 부호화하는 과정에서, 움직임 추정(Motion Estimation)을 통해 이전 영상들에서 좌측 영상과 비슷한 영역을 탐색할 수 있고, 탐색된 영역의 정보를 이용함으로써 시간적 중복성은 감소될 수 있다. 좌측 영상 이후에 부호화되는 우측 영상은 이미 부호화된 좌측 영상을 참조하여 부호화되기 때문에, 움직임 추정을 통한 시간적 중복성뿐만 아니라 변이 추정(Disparity Estimation)을 통한 시점간의 중복성(View Redundancy)도 감소될 수 있다. 또한, 중앙 영상은 이미 부호화된 좌측 영상과 우측 영상을 모두 참조하여 변이 추정을 통한 부호화를 수행할 수 있기 때문에, 시점 간 중복성이 감소될 수 있다.
도 6을 참고하면, 다시점 영상을 부호화하는 과정에서, 좌측 영상과 같이 다른 시점의 영상을 이용하지 않고 부호화되는 영상은 I-View 영상, 우측 영상과 같이 다른 시점의 영상을 단방향으로 예측하여 부호화되는 영상은 P-View 영상, 그리고 중앙 영상과 같이 서로 다른 시점의 영상들을 양방향으로 예측하여 부호화되는 영상은 B-View 영상이라고 정의될 수 있다.
도 7은 일실시예에 따른 현재 블록을 부호화할 때 사용되는 참조 영상을 도시한 도면이다.
영상 처리 장치는 현재 컬러 영상에 포함된 현재 블록을 부호화할 때, 주변 컬러 영상들(720~750)을 참조 영상으로 이용할 수 있다. 예를 들어, 영상 처리 장치는 주변 컬러 영상들(720~750)에서 현재 블록과 가장 유사한 유사 블록을 식별하고, 현재 블록과 유사 블록 사이의 잔차 신호(Residue)를 부호화할 수 있다. H.264/AVC의 경우, 참조 영상을 이용하여 유사 블록을 탐색하는 부호화 모드는 SKIP(P Slice Only)/Direct(B Slice Only), 16x16, 16x8, 8x16, P8x8 모드 등을 포함할 수 있고, HEVC의 경우, 참조 영상을 이용하여 유사 블록을 탐색하는 부호화 모드는 SKIP, MERGE, 2Nx2N, 2NxN, Nx2N 등을 포함할 수 있다.
영상 처리 장치는 현재 블록을 부호화하는 과정에서, 시간적 중복성을 감소시키기 위해 현재 컬러 영상에 대해 시간상으로 주변에 위치하는 참조 영상(720, 730)을 이용할 수 있다. 또한, 영상 처리 장치는 시점간 중복성을 감소시키기 위해 현재 컬러 영상에 대해 시점상 주변에 위치하는 참조 영상(740, 750)을 이용할 수 있다. 영상 처리 장치는 움직임 정보를 획득하기 위해 Ref1 영상(720) 및 Ref2 영상(730)을 이용할 수 있고, 변이 정보를 획득하기 위해 Ref3 영상(740) 및 Ref4 영상(750)을 이용할 수 있다.
도 8은 일실시예에 따른 부호화 장치의 동작을 상세하게 설명하기 위한 도면이다.
구체적으로, 도 8은 부호화 장치가 컬러 영상을 부호화하는 과정을 도시하고 있다. 일실시예에 따르면, 부호화 장치가 컬러 영상을 부호화하는 과정은 다음과 같다. 부호화 장치는 컬러 영상을 수신(810)하고, 부호화 모드를 선택(845)할 수 있다. 부호화 장치는 선택된 부호화 모드에 기초하여 컬러 영상과 블록 기반의 예측(Block Prediction)을 통해 도출된 예측 영상 간의 잔차 신호를 결정할 수 있다. 그러면, 부호화 장치는 잔차 신호를 변환(815)하고, 양자화(820) 및 엔트로피 부호화(825)할 수 있다.
블록 기반의 예측 과정은 시간적 중복성을 감소시키기 위한 예측 과정(Temporal Prediction)과 시점간의 중복성을 감소시키기 위한 예측 과정(Inter-View Prediction)을 포함할 수 있다.
그리고, 다음 컬러 영상에서의 정확한 예측을 위해 디블로킹 필터링(Deblocking Filtering) 과정(875)이 수행될 수 있다. 디블로킹 필터링 과정(875)을 수행하기 위해 양자화(820)된 영상을 다시 역양자화(830)하는 과정 및 역변환(835)의 과정이 수행될 수 있다. 디블로킹 필터링 과정(925)으로 생성된 참조 영상들은 저장되어 다음 컬러 영상의 부호화 과정에서 이용될 수 있다.
부호화 장치는 화면 내 예측(850), 움직임 예측/보상(855), 또는 변이 예측/보상(860)을 통해 시간적 중복성과 시점간 중복성을 제거하기 위한 예측 과정을 수행할 수 있다. 영상 처리 장치는 움직임 예측/보상(855)과 변이 예측/보상(860)의 과정을 수행할 수 있다. 영상 처리 장치는 움직임 예측/보상(855)을 위해 카메라 파라미터(840)에 기초하여 깊이 정보(870, 예를 들어, 깊이값)를 변이 정보(예를 들어, 변이 벡터)로 변환(865)하고, 이 변이 정보를 이용하여 움직임 예측/보상(855) 과정을 수행할 수 있다. 또는, 영상 처리 장치는 변이 예측/보상(860)을 위해 카메라 파라미터(840)에 기초하여 깊이 정보(870, 예를 들어, 깊이값)를 변이 정보(예를 들어, 변이 벡터)로 변환(865)하고 변이 예측/보상(860) 과정을 수행할 수 있다.
블록 기반의 예측을 통해 도출된 예측 영상이 원본 영상과 유사할수록 잔차 신호의 양이 적고, 이에 따라 부호화되어 생성된 비트수도 감소할 수 있다. 따라서, 3D 비디오의 효율적인 부호화를 위해서는 움직임 예측/보상(855) 및 변이 예측/보상(860)의 과정이 중요하다.
영상 처리 장치는 움직임 예측/보상(855) 과정에서 주변 블록의 움직임 벡터 정보, 다른 시점의 컬러 영상에 대한 부호화 정보, 또는 현재 블록에 대응하는 깊이 영상을 이용하여 현재 블록의 움직임 예측/보상(855) 과정을 수행할 수 있다. 또한, 영상 처리 장치는 변이 예측/보상(860) 과정에서 주변 블록의 변이 벡터 정보, 다른 시점의 컬러 영상에 대한 부호화 정보, 또는 현재 블록에 대응하는 깊이 영상을 이용하여 현재 블록의 변이 예측/보상(860) 과정을 수행할 수 있다.
도 9는 일실시예에 따른 복호화 장치의 동작을 상세하게 설명하기 위한 도면이다.
복호화 장치는 부호화된 비트스트림을 복호화하여 컬러 영상을 출력하기 위해, 앞서 설명한 도 8의 부호화 장치의 동작을 역으로 수행할 수 있다. 일실시예에 따르면, 복호화 장치가 부호화된 3D 영상 데이터를 복호화하는 과정은 다음과 같다. 복호화 장치는 부호화된 3D 영상 데이터를 포함하고 있는 비트스트림을 수신(905)하고, 엔트로피 복호화(910)를 수행할 수 있다.
그 후, 복호화 장치는 역양자화(915) 및 역변환(920)의 과정을 수행하고, 복호화 모드를 선택(940)할 수 있다. 복호화 장치는 선택된 복호화 모드에 따라 화면내 예측(945), 움직임 예측/보상(950), 또는 변이 예측/보상(955) 과정을 통해 비트스트림을 효율적으로 복호화할 수 있다.
영상 처리 장치는 움직임 예측/보상(950)과 변이 예측/보상(955)의 과정을 수행할 수 있다. 영상 처리 장치는 움직임 예측/보상(950)을 위해 카메라 파라미터(935)에 기초하여 깊이 정보(965)를 변이 정보로 변환(960)하고, 이 변환 정보를 이용하여 움직임 예측/보상(950) 과정을 수행할 수 있다. 또는, 영상 처리 장치는 변이 예측/보상(955)을 위해 카메라 파라미터(935)에 기초하여 깊이 정보(965)를 변이 정보로 변환(960)하고 변이 예측/보상(955) 과정을 수행할 수 있다.
영상 처리 장치는 움직임 예측/보상(950) 과정에서 주변 블록의 움직임 벡터 정보, 다른 시점의 컬러 영상에 대한 복호화 정보, 또는 현재 블록에 대응하는 깊이 영상을 이용하여 현재 블록의 움직임 예측/보상(950) 과정을 수행할 수 있다. 또한, 영상 처리 장치는 변이 예측/보상(955) 과정에서 주변 블록의 변이 벡터 정보, 다른 시점의 컬러 영상에 대한 복호화 정보, 또는 현재 블록에 대응하는 깊이 영상을 이용하여 현재 블록의 변이 예측/보상(955) 과정을 수행할 수 있다.
그리고, 다음 컬러 영상의 복호화를 위해 디블로킹 필터링(925) 과정이 수행될 수 있다. 디블로킹 필터링 과정(925)으로 생성된 참조 영상들은 저장되어 다음 컬러 영상의 복호화 과정에서 이용될 수 있다.
도 10은 일실시예에 따른 현재 블록의 변이 벡터를 예측하는 과정을 도시한 도면이다.
도 10을 참고하면, 블록 Cb는 컬러 영상에서 부호화하고자 하는 현재 블록을 나타낸다. 그리고, 블록 A, B, C는 현재 블록에 인접한 위치에 존재하는 주변 블록들을 나타낸다. 영상 처리 장치는 현재 블록의 변이 벡터를 예측하기 위해, 주변 블록 A, B, C의 변이 벡터를 식별하고, 식별된 변이 벡터들에 미디언 필터를 적용할 수 있다.
주변 블록 A, B, C 중 변이 벡터가 존재하지 않는 블록이 있는 경우, 영상 처리 장치는 변이 벡터가 존재하지 않는 주변 블록의 변이 벡터를 특정 변이 벡터로 대체할 수 있다. 예를 들어, 주변 블록 A의 변이 벡터가 존재하지 않는다고 가정한다. 영상 처리 장치는 주변 블록 A의 변이 벡터를 결정하기 위해 현재 블록에 대응하는 깊이 영상에 포함된 픽셀 중 의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 또는, 영상 처리 장치는 깊이 영상 내 일부 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록 A의 변이 벡터로 변환할 수 있다. 예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 대응 블록 내 모서리 등과 같은 일정한 영역에 위치하는 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 또는, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 대응 블록을 포함하는 매크로 블록 내 모서리 등과 같은 일정한 영역에 위치하는 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 영상 처리 장치는 변환된 변이 벡터를 주변 블록 A의 변이 벡터로 결정하고, 주변 블록 A, B, C의 변이 벡터들에 미디어 필터를 적용하여 현재 블록 Cb의 변이 벡터를 결정할 수 있다.
영상 처리 장치는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 현재 블록 Cb의 변이 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 매크로 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 현재 블록 Cb의 변이 벡터로 변환하거나 또는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 현재 블록 Cb의 변이 벡터로 변환할 수 있다. 또한, 영상 처리 장치는 현재 블록 Cb에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 영상 처리 장치는 현재 블록 Cb에 대응하는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 현재 블록의 변이 벡터로 결정할 수 있다.
영상 처리 장치는 깊이값을 변이 벡터로 변환하기 위해, 카메라 파라미터 정보를 이용할 수도 있다. 도 10을 통해 도출된 현재 블록의 움직임 벡터 및 변이 벡터는 각각 16x16, 16x8, 8x16, 그리고 P8x8 모드에 기초한 예측 변이 벡터로 사용될 수 있다. 영상 처리 장치는 예측 변이 벡터를 통해 변이 탐색 (Disparity Estimation)을 수행함으로써, 현재 블록의 최종 변이 벡터를 탐색할 수 있다.
영상 처리 장치가 현재 블록의 변이 벡터를 예측하는 과정은 다음과 같다.
단계(1010)에서, 영상 처리 장치는 현재 블록 Cb의 주변 블록 A, B, C의 변이 벡터를 식별할 수 있다. 그 후, 단계(1020)에서, 영상 처리 장치는 주변 블록의 변이 벡터가 존재하는지 여부를 판단할 수 있다.
변이 벡터가 존재하지 않는 주변 블록이 존재하는 경우, 단계(1030)에서, 영상 처리 장치는 변이 벡터가 존재하지 않는 주변 블록의 변이 벡터를 깊이 영상을 이용하여 결정할 수 있다. 예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 변이 벡터가 존재하지 않는 주변 블록의 변이 벡터로 결정할 수 있다. 영상 처리 장치는 주변 블록의 변이 벡터를 결정하기 위해 현재 컬러 영상에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 영상 처리 장치는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다.
영상 처리 장치는 깊이값을 변이 벡터를 변환하기 위해 현재 블록에 대응하는 깊이 영상의 대응 블록 또는 대응 블록을 포함하는 매크로 블록 내 픽셀들을 기준으로 할 수 있다. 예를 들어, 영상 처리 장치는 깊이 영상의 대응 블록(또는, 매크로 블록)에 포함되는 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환하거나, 또는 대응 블록(또는, 매크로 블록) 내 미리 설정된 영역에 존재하는 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다.
단계(1040)에서, 영상 처리 장치는 주변 블록의 변이 벡터에 미디언 필터를 적용할 수 있다. 단계(1050)에서, 영상 처리 장치는 미디언 필터가 적용된 변이 벡터(Median-Filtered Disparity Vector)를 현재 블록 Cb의 변이 벡터로 결정할 수 있다. 영상 처리 장치는 현재 블록 Cb의 변이 벡터를 부호화할 수 있다.
앞서 설명한 변이 벡터를 대체하는 과정 이외에, 다음과 같은 실시예가 구현될 수도 있다. 구체적으로, 영상 처리 장치는 현재 블록 Cb의 주변 블록 A, B, C의 변이 벡터를 이용하지 않고, 바로 현재 블록 Cb에 대응하는 깊이 영상의 대응 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 또는, 영상 처리 장치는 변이 벡터의 변환을 위해 현재 블록 Cb에 대응하는 깊이 영상의 대응 블록에 포함된 일부 픽셀의 깊이값만을 이용할 수도 있다. 예를 들어, 영상 처리 장치는 대응 블록의 모서리에 위치한 네 픽셀들과 중앙 위치의 픽셀들의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 영상 처리 장치는 깊이값을 변이 벡터로 변환하는 과정에서 카메라 파라미터 정보를 이용할 수 있다. 영상 처리 장치는 변환된 변이 벡터를 현재 블록의 변이 벡터로 결정할 수 있다. 일실시예에서, 결정된 현재 블록의 변이 벡터는 인터 모드에 대한 변이 탐색(Disparity Estimation) 과정에서 초기점(Initial Point)을 제공할 수 있다.
도 11은 일실시예에 따른 스킵 모드(Skip Mode) 및 다이렉트 모드(Direct Mode)에 대한 현재 블록의 움직임 벡터를 예측하는 과정을 도시한 도면이다.
도 11을 참고하면, 컬러 영상에서 현재 블록 Cb의 스킵 모드 및 다이렉트 모드에 대한 최종 움직임 벡터를 결정하는 과정을 도시하고 있다. 스킵 모드와 다이렉트 모드에서는 움직임 탐색과 변이 탐색을 수행하지 않는다. 블록 A, B, C는 현재 블록 Cb에 인접한 위치에 존재하는 주변 블록들을 나타낸다.
영상 처리 장치는 현재 블록 Cb의 움직임 벡터를 예측하기 위해, 주변 블록 A, B, C의 변이 벡터를 이용할 수 있다. 영상 처리 장치는 P-View 영상 또는 B-View 영상들을 부/복호화할 때, 스킵 모드 및 다이렉트 모드에 대한 움직임 벡터를 예측하기 위해 이미 부/복호화된 I-View 영상의 정보를 이용할 수 있다. 또한, 다른 시점의 P-View 영상 또는 B-View 영상이 이미 부/복호화된 경우, 영상 처리 장치는 스킵 모드 및 다이렉트 모드에 대한 움직임 벡터를 예측하기 위해 I-View 영상 뿐만 아니라 P-View 영상 및 B-View 영상을 이용할 수도 있다.
단계(1110)에서, 영상 처리 장치는 컬러 영상에서 현재 블록 Cb에 이웃한 주변 블록의 변이 벡터를 식별할 수 있다. 단계(1120)에서, 영상 처리 장치는 주변 블록의 변이 벡터가 존재하는지 여부를 판단할 수 있다.
변이 벡터가 존재하지 않는 주변 블록이 존재하는 경우, 단계(1130)에서, 영상 처리 장치는 변이 벡터가 존재하지 않는 주변 블록의 변이 벡터를 깊이 영상을 이용하여 결정할 수 있다. 영상 처리 장치는 현재 블록 Cb에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 영상 처리 장치는 변환된 변이 벡터를 변이 벡터가 존재하지 않는 주변 블록의 변이 벡터로 결정할 수 있다. 또한, 영상 처리 장치는 깊이값을 변이 벡터를 변환하기 위해 깊이 영상에 포함된 일부 픽셀들의 깊이값만을 고려할 수 있다. 예를 들어, 영상 처리 장치는 현재 블록 Cb에 대응하는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다. 영상 처리 장치는 깊이값을 변이 벡터로 변환하는 과정에서 카메라 파라미터 정보를 이용할 수 있다.
영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 대응 블록 또는 대응 블록을 포함하는 매크로 블록에 기초하여 주변 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 대응 블록(또는, 매크로 블록)에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환하거나 또는 대응 블록(또는, 매크로 블록)에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다.
단계(1140)에서, 영상 처리 장치는 주변 블록의 변이 벡터에 미디언 필터를 적용할 수 있다. 단계(1150)에서, 영상 처리 장치는 미디언 필터가 적용된 변이 벡터를 이용하여 현재 블록 Cb의 움직임 벡터를 결정할 수 있다. 영상 처리 장치는 미디언 필터가 적용된 변이 벡터가 가리키는 위치에서의 움직임 벡터를 현재 블록 Cb의 움직임 벡터로 결정할 수 있다. 예를 들어, 미디언 필터가 적용된 변이 벡터가 I-View 영상을 가리키는 경우, 현재 컬러 영상과 같은 시간대에 있는 I-View 영상에서 미디언 필터가 적용된 변이 벡터가 가리키는 위치를 식별하고, 현재 블록 Cb의 움직임 벡터를 결정하기 위해 그 식별된 위치에서의 움직임 정보를 이용할 수 있다.
미디언 필터가 적용된 변이 벡터가 가리키는 위치에 움직임 벡터가 존재하지 않는 경우, 영상 처리 장치는 현재 블록 Cb의 주변 블록 A, B, C 들을 이용하여 현재 블록 Cb의 움직임 벡터를 결정할 수 있다. 영상 처리 장치는 현재 블록 Cb의 참조 영상 인덱스는 주변 블록 A, B, C 의 참조 영상 인덱스 중 가장 작은 인덱스를 이용할 수 있다.(예를 들어, P-픽쳐의 경우 참조 영상 인덱스는 0)
참조 영상 인덱스가 동일 시점의 컬러 영상을 가리키는 경우, 영상 처리 장치는 주변 블록 A, B, C의 움직임 벡터에 미디언 필터가 적용된 결과를 현재 블록 Cb의 움직임 벡터로 결정할 수 있다. 참조 영상 인덱스가 다른 시점의 컬러 영상을 가리키는 경우에는, 영상 처리 장치는 주변 블록 A, B, C의 변이 벡터에 미디언 필터가 적용된 결과를 현재 블록 Cb의 움직임 벡터로 결정할 수 있다. 위 두 경우가 모두 아닌 경우, 영상 처리 장치는 영벡터를 현재 블록 Cb의 움직임 벡터로 결정할 수 있다.
단계(1160)에서, 영상 처리 장치는 결정된 현재 블록 Cb의 움직임 벡터를 스킵 모드 및 다이렉트 모드에 대한 움직임 벡터로 이용할 수 있다. 또한, 영상 처리 장치는 미디언 필터가 적용된 변이 벡터가 가리키는 위치에서의 참조 영상 인덱스를 스킵 모드 및 다이렉트 모드에서의 참조 영상 인덱스로 이용할 수 있다.
도 12는 일실시예에 따른 변이 벡터를 이용하여 현재 블록의 움직임 벡터를 예측하는 과정을 도시한 도면이다.
도 12를 참조하면, 영상 처리 장치는 현재 컬러 영상(1210)에서 현재 블록(1230)의 변이 벡터(1240)를 이용하여 현재 블록(1230)의 움직임 벡터(1260)를 결정할 수 있다. 예를 들어, 영상 처리 장치는 현재 블록(1230)의 변이 벡터(1240)을 결정하기 위해 주변 블록들의 변이 벡터에 미디언 필터를 적용할 수 있다. 영상 처리 장치는 미디언 필터가 적용된 변이 벡터(1240)가 가리키는 참조 영상(1220) 내 위치를 식별하고, 식별된 위치에서의 움직임 벡터(1250)를 현재 블록(1230)의 움직임 벡터(1260)로 결정할 수 있다.
도 13은 일실시예에 따른 인터 모드에 대한 현재 블록의 움직임 벡터를 예측하는 과정을 도시한 도면이다.
도 13을 참고하면, 블록 Cb는 컬러 영상에서 부호화하고자 하는 현재 블록을 나타낸다. 그리고, 블록 A, B, C는 현재 블록 Cb에 인접한 위치에 존재하는 주변 블록들을 나타낸다. 영상 처리 장치는 현재 블록 Cb의 움직임 벡터를 예측하기 위해, 주변 블록 A, B, C의 움직임 벡터를 이용할 수 있다.
단계(1310)에서, 영상 처리 장치는 현재 블록 Cb의 주변 블록의 움직임 벡터를 식별할 수 있다. 단계(1320)에서, 영상 처리 장치는 주변 블록의 움직임 벡터가 존재하는지 여부를 판단할 수 있다.
움직임 벡터가 존재하지 않는 주변 블록이 존재하는 경우, 단계(1330)에서, 영상 처리 장치는 움직임 벡터가 존재하지 않는 주변 블록의 움직임 벡터를 깊이 영상을 이용하여 결정할 수 있다. 영상 처리 장치는 움직임 벡터가 존재하지 않는 주변 블록의 움직임 벡터를 다른 시점의 컬러 영상으로부터 획득할 수 있고, 주변 블록의 움직임 벡터를 다른 시점의 컬러 영상으로부터 획득하기 위해 깊이 영상을 이용할 수 있다.
영상 처리 장치는 현재 블록 Cb에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 영상 처리 장치는 깊이값을 변이 벡터를 변환하기 위해 깊이 영상에 포함된 일부 픽셀들의 깊이값만을 고려할 수도 있다. 예를 들어, 영상 처리 장치는 영상 처리 장치는 현재 블록 Cb에 대응하는 깊이 영상의 대응 블록에 포함된 픽셀들의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 또는, 영상 처리 장치는 대응 블록 내 모서리에 위치한 네 픽셀들의 깊이값 및 대응 블록의 중앙에 위치한 픽셀의 깊이값 중 가장 큰 값을 변이 벡터로 변환할 수도 있다. 영상 처리 장치는 깊이값을 변이 벡터로 변환하는 과정에서 카메라 파라미터 정보를 이용할 수 있다. 영상 처리 장치는 변이 벡터를 이용하여 주변 블록의 움직임 벡터를 결정할 수 있다. 영상 처리 장치는 변이 벡터가 가리키는 위치에서의 움직임 벡터를 주변 블록의 움직임 벡터로 결정할 수 있다.
영상 처리 장치는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 주변 블록의 움직임 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 매크로 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터가 가리키는 위치에서의 움직임 벡터를 주변 블록의 움직임 벡터로 결정할 수 있다. 또는, 영상 처리 장치는 대응 블록을 포함하는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환하고, 변환된 변이 벡터를 이용하여 주변 블록의 움직임 벡터를 탐색할 수도 있다.
영상 처리 장치는 주변 블록의 움직임 벡터를 결정하기 위해 현재 컬러 영상에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 영상 처리 장치는 현재 컬러 영상에 대응하는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터가 가리키는 곳의 움직임 벡터를 주변 블록의 움직임 벡터로 결정할 수 있다.
현재 블록 Cb의 참조 영상 인덱스와 다른 시점의 컬러 영상에서 가져온 참조 영상 인덱스가 일치하지 않을 경우, 영상 처리 장치는 주변 블록의 움직임 벡터를 영벡터로 결정할 수 있다. 예를 들어, 깊이값의 변환을 통해 생성된 변이 벡터가 I-View 영상을 가리키는 경우, 현재 컬러 영상과 같은 시간대에 있는 I-View 영상에서 변이 벡터가 가리키는 위치를 식별하고, 현재 블록 Cb의 움직임 벡터를 결정하기 위해 그 식별된 위치에서의 움직임 정보를 이용할 수 있다. 변이 벡터가 가리키는 위치에 움직임 벡터가 존재하지 않을 경우, 영상 처리 장치는 주변 블록의 움직임 벡터로서 영벡터를 이용할 수 있다.
단계(1340)에서, 영상 처리 장치는 주변 블록의 움직임 벡터에 미디언 필터를 적용하여 현재 블록 Cb의 움직임 벡터를 결정할 수 있다. 단계(1350)에서, 영상 처리 장치는 미디언 필터가 적용된 움직임 벡터를 이용하여 인터 모드에서의 움직임 탐색을 수행할 수 있다. 영상 처리 장치는 미디언 필터가 적용된 움직임 벡터를 인터 모드에서의 예측 움직임 벡터로 이용할 수 있다. 예측 움직임 벡터는 인터 모드에 대한 움직임 탐색(Motion Estimation) 시 초기점을 제공할 수 있다.
일실시예에 따르면, 도 10 내지 도 13에서 설명된 내용은 아래의 실시예에 따라 구현될 수 있다.
<J.8.3.1 움직임 벡터 컴포넌트들과 참조 인덱스들에 대한 유도 과정(derivation process)>
(1) 이 과정에서의 입력:
- 매크로블록 파티션(macroblock partition) mbPartIdx
- 서브-매크로블록 파티션(sub-macroblock partition) subMbPartIdx.
(2) 이 과정에서의 출력:
- ChromaArrayType이 0이 아닐 때, 루마(luma) 움직임 벡터들 mvL0과 mvL1, 크로마(chroma) 움직임 벡터들 mvCL0과 mvCL1,
- 참조 인덱스들 refIdxL0 및 refIdxL1,
- 예측 리스트 이용 플래그들(prediction list utilization flags) predFlagL0 및 predFlagL1,
- 움직임 벡터 카운트 변수 subMvCnt.
(3) refIdxL0, refIdxL1, mvL0, mvL1 변수들의 유도를 위해 다음과 같은 내용이 적용될 수 있다.
A. mb_type이 P_Skip과 동일한 경우,
a) MbVSSkipFlag가 0과 동일한 경우,
- nal_unit_type이 21과 동일하고, DepthFlag이 0과 동일하며, dmvp_flag이 1과 동일한 경우, subclause J.8.3.1.1에서의 P 슬라이스 및 SP 슬라이스에 포함된 skipped 매크로블록들의 루마 모션 벡터들에 대한 깊이 기반 유도 과정이 호출(invoke)되고, 이 때 루마 움직임 벡터 mvL0, 참조 인덱스 refIdxL0, 및 predFlagL0이 1 로 설정되는 출력을 가진다.
- 다른 경우(nal_unit_type이 21과 동일하지 않거나, DepthFlag이 1과 동일하거나, 또는 dmvp_flag이 0과 동일한 경우), subclause J.8.4.1.1에서의 P 슬라이스 및 SP 슬라이스에 포함된 skipped 매크로블록들의 루마 모션 벡터들에 대한 깊이 기반 유도 과정이 호출되고, 이 때 루마 움직임 벡터 mvL0, 참조 인덱스 refIdxL0, 및 predFlagL0이 1 로 설정되는 출력을 가진다.
b) MbVSSkipFlag가 1과 동일한 경우,
- subclause J.8.3.1.2에서의 P 슬라이스 및 SP 슬라이스에 포함된 VSP skipped 매크로블록의 루마 움직임 벡터들에 대한 유도 과정이 호출되고, 이 때 루마 움직임 벡터 mvL0, 참조 인덱스 refIdxL0, 및 predFlagL0이 1 로 설정되는 출력을 가진다.
c) mvL1 및 refIdxL1이 이용 가능한 것으로 마크되지 않고, predFlagL1이 0과 동일한 경우, 움직임 벡터 카운트 변수 subMvCnt는 1로 설정된다.
B. mb_type이 B_Skip 또는 B_Direct_16x16과 동일하거나, 또는 sub_mb_type [mbPartIdx]이 B_Direct_8x8과 동일한 경우, 다음 사항이 적용된다.
a) 변수 vspFlag은 다음의 표 1과 같이 구체화된다.
vspFlag = ! ( ( mb_type = = B_Skip && MbVSSkipFlag = = 0 ) | | ( ( mb_type = = B_Direct_16x16 | | sub_type[ mbPartIdx ] = = B_Direct_8x8 ) && !mb_direct_type_flag ) )
b) 만일 vspFlag가 0과 동일하고, nal_unit_type이 21과 동일하며, DepthFlag이 0과 동일하고, dmvp_flag이 1과 동일한 경우, subclause J.8.3.1.3에서의 B 슬라이스들에 포함된 B_Skip, B_Direct_16x16, 및 B_Direct_8x8의 루마 움직임 벡터들에 대한 깊이 기반 유도 과정이 호출되며, 이 때 mbPartIdx 및 subMbPartIdx의 입력을 가지고, 루마 움직임 벡터들 mvL0과 mvL1, 참조 인덱스들 refIdxL0과 refIdxL1, 움직임 벡터 카운트 변수 subMvCnt, 및 예측 리스트 이용 플래그들 predFlagL0과 predFlagL1의 출력을 가진다.
c) vspFlag가 0과 동일하고, nal_unit_type이 21과 동일하지 않거나, 또는 DepthFlag이 1과 동일하거나, 또는 dmvp_flag이 0과 동일한 경우, subclause J.8.4.1.2에서의 B 슬라이스들에 포함된 B_Skip, B_Direct_16x16, 및 B_Direct_8x8의 루마 움직임 벡터들에 대한 유도 과정이 호출되고, 이 때 mbPartIdx 및 subMbPartIdx의 입력을 가지고, 루마 움직임 벡터들 mvL0과 mvL1, 참조 인덱스들 refIdxL0과 refIdxL1, 움직임 벡터 카운트 변수 subMvCnt, 및 예측 리스트 이용 플래그들 predFlagL0과 predFlagL1의 출력을 가진다.
d) vspFlag가 1과 동일한 경우, subclause J.8.3.1.6에서의 B 슬라이스들에 포함된 B_Skip, B_Direct_16x16, 및 B_Direct_8x8의 루마 움직임 벡터들에 대한 유도 과정이 호출된다.
subclause J.8.4.1에서,
predFlagLX이 1과 동일하고, DepthFlag가 0과 동일하며, dmvp_flag이 1과 동일한 경우, subclause 8.3.1.7에서의 루마 움직임 벡터 예측에 대한 유도 과정이 호출되고, 이 때 mbPartIdx subMbPartIdx, refIdxLX, 및 currSubMbType의 입력을 가지고 mvpLX의 출력을 가진다. predFlagLX이 1과 동일하고, DepthFlag가 1과 동일하거나, 또는 dmvp_flag이 0과 동일한 경우, subclause 8.4.1.3에서의 루마 움직임 벡터 예측에 대한 유도 과정이 호출되고, 이 때 mbPartIdx subMbPartIdx, refIdxLX, 및 currSubMbType의 입력을 가지고 mvpLX의 출력을 가진다.
<J.8.3.1.1 P 슬라이스와 SP 슬라이스에서 skipped 매크로블록들의 루마 움직임 벡터들에 대한 유도 프로세스>
이 과정은 mb_type이 P_Skip과 동일하고, nal_unit_type이 21과 동일하며, DepthFlag이 0과 동일하고, dmvp_flag이 1과 동일하며, MbVSSkipFlag이 0과 동일한 경우에 호출된다.
(1) 프로세스의 출력:
- 움직임 벡터 mvL0,
- 참조 인덱스 refIdxL0.
(2) P_Skip 매크로블록 타입의 refIdxL0, 및 움직임 벡터 mvL0의 유도를 위해, 다음의 단계들이 구체화된다.
a. subclause J.8.3.1.5에 명시된 과정이 호출되고, 이 때 입력으로 mbPartIdx는 0으로 설정되고, subMbPartIdx는 0으로 설정되며, currSubMbType는 "na"로 설정되고, listSuffixFlag는 0으로 설정된다. 출력으로는 움직임 벡터 mvL0와 참조 인덱스 refIdxL0가 할당된다.
b. refIdxL0가 -1인 경우:
- skipped 매크로블록에 대한 참조 인덱스 refIdxL0는 refIdxL0 = 0으로 도출된다.
- subclause J.8.3.1.7에서의 루마 움직임 벡터 예측에 대한 유도 과정이 호출되고, 이 때 입력으로서 mbPartIdx = 0,subMbPartIdx = 0, refIdxL0, and currSubMbType = "na"가 설정되고, 출력으로서 mvL0가 설정된다.
<J.8.3.1.2 P 슬라이스 및 SP 슬라이스에 포함된 VSP skipped 매크로블록들의 루마 움직임 벡터들에 대한 유도 과정>
이 과정은 mb_type이 P_Skip과 동일하고, nal_unit_type이 21과 동일하며, DepthFlag이 0이고, MbVSSkipFlag이 1인 경우에 호출된다.
이 과정에서 출력은 움직임 벡터 mvL0과 참조 인덱스 refIdxL0이다.
VSP skipped 매크로블록을 위한 참조 인덱스 refIdxL0는 RefPicList0의 첫 번째에 나타나는 합성한 픽쳐(synthetic picture)로서 획득된다.
<J.8.3.1.3 B_Skip, B_Direct_16x16, 및 B_Direct_8x8의 루마 움직임 벡터들에 대한 유도 과정>
이 과정에서 입력은 현재 매크로블록의 파티션 인덱스 mbPartIdx 및 subMbPartIdx이다.
이 과정에서 출력은 참조 인덱스 refIdxL0 및 refIdxL1, 움직임 벡터들 mvL0 및mvL1,움직임 벡터 카운트 변수 subMvCnt, 예측 리스트 이용 플래그들 predFlagL0 및 predFlagL1이다.
출력의 유도를 위해 다음의 단계들이 명시된다.
1. 변수 currSubMbType를 sub_mb_type[ mbPartIdx ]와 동일하도록 설정한다.
2. subclause J.8.3.1.5에 명시된 과정이 호출되고, 입력으로서 mbPartIdx는0으로 설정되고, subMbPartIdx는 0으로 설정되며, currSubMbType 및 listSuffixFlag는 0으로 설정된다. 출력은 움직임 벡터 mvL0 및 참조 인덱스 refIdxL0에 할당된다.
3. subclause J.8.3.1.5에 명시된 과정이 호출되고, mbPartIdx는 0으로 설정되고, subMbPartIdx는 0으로 설정되며, currSubMbType 및 listSuffixFlag는 1로 설정된다. 출력은 움직임 벡터 mvL1 및 참조 인덱스 refIdxL1에 할당된다.
4. 참조 인덱스들 refIdxL0 및 refIdxL1이 모두 -1과 동일한 경우, 다음의 과정이 적용된다.
- 참조 인덱스들 refIdxL0 및 refIdxL1은 다음의 표 2에 의해 도출된다.
refIdxL0 = MinPositive(refIdxL0A, minPositive(refIdxL0B, refIdxI0C)).
refIdxL1 = MinPositive(refIdxL1A, minPositive(refIdxL1B, refIdxI1C)).
where
MinPositive(x, y) =
- When both reference indices refIdxL0 and refIdxL1 are less than 0,
refIdxL0 = 0
- subclause J.8.3.1.7에서의 루마 움직임 벡터 예측에 대한 유도 과정이 호출되고, 입력으로서 mbPartIdx = 0, subMbPartIdx = 0, refIdxLX (X는 0 또는 1), 및 currSubMbType이 설정된다. 출력으로서 mvLX이 할당된다.
<J.8.3.1.4 변이 벡터(disparity vector) 및 inter-view reference에 대한 유도 과정>
이 과정에서 입력은 깊이 참조 시점 컴포넌트(depth reference view component) depthPic, 파티션의 top-left 샘플 (dbx1, dby1)의 위치 및 listSuffixFlag이다.
이 과정에서 출력은 픽쳐 InterViewPic, 오프셋 벡터 dv, 및 변수 InterViewAvailable이다.
InterViewAvailable를 0으로 설정한다.
다음의 표 3은 listFuffixFlag가 1 또는 0, 그 외의 값을 가지고 X가 1로 설정된 상태에서 inter-view reference picture 또는 inter-view only reference picture인 InterViewPic을 획득하는데 적용된다.
for(cIdx = 0;cIdx<num_ref_idx_l0_active_minus1 + 1 && !InterViewAvailable; cIdx ++)
if ( view order index of RefPicList0[ cIdx ] is equal to 0) {
InterViewPic = RefPicList0[ cIdx ]
InterViewAvailable = 1
}
InterViewAvailable가 1일 때, 다음의 단계들이 순서대로 적용된다.
- subclause 8.4.1.3.2에 명시된 과정이 호출되고, 입력으로서 mbPartIdx가 0으로 설정되고, subMbPartIdx가 0으로 설정되며, currSubMbType가 "na"으로 설정되고, listSuffixFlag가 0으로 설정된다. 그리고, 출력으로서 참조 인덱스들 refIdxCandL0[i], 움직임 벡터들 mvCandL0[i]이 설정되며, 여기서 i는 이웃하는 파티션(neighbouring partition) A, B, 및 C에 각각에 대응되는 0, 1, 또는 2의 값을 갖는다.
- subclause 8.4.1.3.2에 명시된 과정이 호출되고, 입력으로서 mbPartIdx가 0으로 설정되고, subMbPartIdx가 0으로 설정되며, currSubMbType가 "na"으로 설정되고, listSuffixFlag가 1로 설정된다. 그리고, 출력으로서 참조 인덱스들 refIdxCandL1[i], 움직임 벡터들 mvCandL1[i]이 설정되며, 여기서 i는 이웃 파티션(neighbouring partition) A, B, 및 C에 각각에 대응되는 0, 1, 또는 2의 값을 갖는다.
변수 dv는 다음의 단계들에 따라 결정된다.
- DvAvailable[i]는 다음의 표 4에 따라 설정되고, 여기서 i는 이웃 파티션 A, B, 및 C에 각각에 대응되는 0, 1, 또는 2의 값을 갖는다.
for( i = 0 ; i<3 ; i ++)
if (view order index of RefPicList0[ refIdxCandLX[i] ] is equal to 0 ) {
DvAvailable[i] = 1
}
- DvAvailable[0], DvAvailable[1], DvAvailable[2] 중 어느 하나가 1일 때,
dv[0] = mvCandLX[i][0]
dv[1] = mvCandLX[i][1].
- 그 외의 경우에,는 다음의 단계들이 순서대로 적용된다.
1. 변수 maxDepth는 다음의 표 5와 같이 설정된다.
maxDepth = INT_MIN
for( j = 0; j < partHeight; j+=(partHeight-1) )
for( i = 0; i < partWidth; i+=(partWidth-1))
if( depthPic[ dbx1 + i, dby1 + j ] > maxDepth ) maxDepth = depthPic[ dbx1 + i, dby1 + j ]
2. 변수 disp는 다음의 표 6과 같이 설정된다.
index = ViewIdTo3DVAcquisitionParamindex( view_id of the current view )
refindex = ViewIdTo3DVAcquisitionParamindex( view_id of the InterViewPic )
disp[0] = Disparity( NdrInverse[maxDepth], ZNear[ dps_id, index ], ZFar[dps_id, index ],
FocalLengthX[dps_id, index ], AbsTX[ index ] - AbsTX[ refindex ] )
disp[1] = 0
3. DvAvailable[i]이 0일 때,
mvCandLX[i] = disp
4. 변수 dv의 각각의 컴포넌트가 움직임 벡터 mvCandLX[0], mvCandLX[1], 및 mvCandLX[2]의 대응되는 벡터 컴포넌트들의 미디안(median) 값으로 주어진다.
dv[0] = Median(mvCandLX[0][0], mvCandLX[1][0], and mvCandLX[2][0])
dv[1] = Median(mvCandLX[0][1], mvCandLX[1][1], and mvCandLX[2][1])
<J.8.3.1.5 inter-view reference에서 inter-view 움직임 벡터에 대한 유도 과정>
이 과정에서 입력은 mbPartIdx, subMbPartIdx, 및 listSuffixFlag이다.
이 과정에서 출력은 움직임 벡터 mvCorrespondand, 참조 인덱스 refIdxCorrespond이다.
Inter-view 참조 픽쳐 InterViewPic 및 오프셋 벡터 dv는 다음의 단계들에 의해 명시된 것에 따라 도출된다.
- 역(inverse) 매크로블록 스캐닝(scanning) 과정이 호출되고, 이 때 입력으로서 CurrMbAddr이 설정되고, 출력으로서 (x1, y1)이 할당된다.
- 역 매크로블록 파티션 스캐닝 과정이 호출되고, 이 때 입력으로서 mbPartIdx이 설정되고, 출력으로서 (dx1, dy1)이 할당된다.
- 역 서브-매크로블록 파티션 스캐닝 과정이 호출되고, 이 때 입력으로서 mbPartIdx 및 subMbPartIdx 이 설정되고, 출력으로서 (dx2, dy2)이 할당된다.
- subclause J.8.3.1.4에 명시된 과정이 호출되고, 이 때 입력으로서 DepthCurrPic, x1 + dx1 + dx2로 설정된 dbx1, y1 + dy1 + dy2로 설정된 dby1 및 listSuffixFlag이 설정되고, 출력으로서 InterViewPic, 오프셋 벡터 dv 및 and 변수 InterViewAvailable이 할당된다.
refIdxCorrespond 및 mvCorrespond는 다음과 같이 설정될 수 잇다.
- InterViewAvailable이 0인 경우, refIdxCorrespond는 -1로 설정되고, mvCorrespond [ 0 ] 및 mvCorrespond [ 1 ]는 모두 0으로 설정된다.
- 그 외의 경우에는, 다음 단계들이 순서대로 적용된다.
- 변수 luma4x4BlkIdx이 (4 * mbPartIdx + subMbPartIdx)과 같이 도출된다.
- 역 4x4 루마 블록 스캐닝 과정이 호출되고, 이 때 입력으로서 luma4x4BlkIdx이 설정되고, 출력으로서 ( x, y )가 할당된다. 또한, ( xCorrespond, yCorrespond )는 ( x + ( dv[ 0 ]>>4 ), y + ( dv [ 1 ]>>4 ) )로 설정되고, mbAddrCorrespond는 ( ( CurrMbAddr / PicWidthInMbs ) + ( dv[1] >>6 ) ) * PicWidthInMbs + ( CurrMbAddr % PicWidthInMbs ) + ( dv[0] >>6 )으로 설정된다.
- mbTypeCorrespond를 픽쳐 InterViewPic 내 mbAddrCorrespond의 어드레스를 가진 매크로블록의 신택스 엘리먼트(syntax element) mb_type로 설정한다. mbTypeCorrespond가 P_8x8, P_8x8ref0, 또는 B_8x8와 동일한 경우, subMbTypeCorrespond를 픽쳐 InterViewPic 내 mbAddrCorrespond의 어드레스를 가진 매크로블록의 신택스 엘리먼트 sub_mb_type로 설정한다.
- mbPartIdxCorrespond를 대응하는 파티션의 매크로블록 파티션 인덱스로 설하고, subMbPartIdxCorrespond를 대응하는 서브-매크로블록 파티션의 서브-매크로블록 파티션 인덱스로 설정한다. 매크로블록 파티션 인덱스 및 서브-매크로블록 파티션 인덱스에 대한 유도 과정이 호출되고, 이 때 입력으로서 luma location equal to ( xCorrespond, yCorrespond )와 동일한 루마 위치, mbTypeCorrespond와 동일한 매크로블록 타입, 및 when mbTypeCorrespond가 P_8x8, P_8x8ref0, 또는 B_8x8와 동일할 때의 서브-매크로블록 타입의 리스트 subMbTypeCorrespond이 설정된다. 출력으로서 매크로블록 파티션 인덱스 mbPartIdxCorrespond 및 서브-매크로블록 파티션 인덱스 subMbPartIdxCorrespond가 할당된다.
- 움직임 벡터 mvCorrespond 및 참조 인덱스 refIdxCorrespond는 다음에 따라 결정된다.
- 매크로블록 mbAddrCorrespond이 인트라 예측 모드(intra prediction mode)로 부호화된 경우, mvCorrespond의 컴포넌트들은 0으로 설정되고, refIdxCorrespond의 컴포넌트들은 -1로 설정된다.
- 그 외의 경우(매크로블록 mbAddrCorrespond이 인트라 예측 모드로 부호화되지 않은 경우), 예측 이용 플래그들 predFlagLXCorrespond이 PredFlagLX[ mbPartIdxCorrespond ], 픽쳐 InterViewPic의 매크로블록 파티션 mbAddrCorrespond\mbPartIdxCorrespond의 예측 이용 플래그로 설정된다. 또한, 다음의 과정이 적용된다.
- predFlagLXCorrespond이 1인 경우, mvCorrespond와 참조 인덱스 refIdxCorrespond는 각각 MvLX[ mbPartIdxCorrespond ][ subMbPartIdxCorrespond ] 및 RefIdxLX[ mbPartIdxCorrespond ]로 설정된다. MvLX[ mbPartIdxCorrespond ][ subMbPartIdxCorrespond ] 및 RefIdxLX[ mbPartIdxCorrespond ]는 각각 픽쳐 InterViewPic 내의 (서브-) 매크로블록 파티션 mbAddrCorrespond\mbPartIdxCorrespond\subMbPartIdxCorrespond에 할당된 움직임 벡터 mvLX 및 참조 인덱스 refIdxLX이다.
<J.8.3.1.6 B 슬라이스들에 포함된 VSP skipped/direct 매크로블록들의 루마 움직임 벡터들에 대한 유도 과정>
이 과정에서의 출력은 움직임 벡터 mvL0, mvL1 및 참조 인덱스 refIdxL0, refIdxL1이다.
VSP skipped/direct 매크로블록의 참조 인덱스 refIdxLX가 reference picture list X에 첫 번째로 나타내는 synthetic reference 컴포넌트로서 도출된다. 여기서, X는 0 또는 1로 대체된다. reference picture list X에 synthetic picture가 없는 경우, refIdxLX는 0으로 설정된다.
움직임 벡터 mvLX는 영(zero) 움직임 벡터로 설정되고, 여기서 X는 0 또는 1로 대체된다.
<J.8.3.1.7 루마 움직임 벡터 예측에 대한 유도 과정>
이 과정에서의 입력은 다음과 같다.
- 매크로블록 파티션 인덱스 mbPartIdx,
- 서브-매크로블록 파티션 인덱스 subMbPartIdx,
- 현재 파티션 refIdxLX의 참조 인덱스(여기서, X는 0 또는 1),
- 변수 currSubMbType.
이 과정에서의 출력은 움직임 벡터 mvLX의 예측 mvpLX (여기서, X는 0 또는 1)이다.
subclause J.8.4.1.3에는 다음의 사항들이 적용된다.
N = A, B, 또는 C이고, X가 0 또는 1과 동일한 조건에서, refIdxLX가 to refIdxLXN와 동일하지 않은 경우에는 다음의 사항들이 적용된다.
mbAddrN\mbPartIdxN\subMbPartIdxN는 이용 가능하지 않은 것으로 마크된다.
refIdxLXN = -1
mvLXN[ 0 ] = 0
mvLXN[ 1 ] = 0
움직임 데이터의 인접 블록들에 대한 유도 과정이 호출되고, 이 때 입력으로서 mbPartIdx, subMbPartIdx, currSubMbType, 및 listSuffixFlag = X (여기서, X는 refIdxLX 또는 refIdxL1에 대해 각각 0 또는 1)이 설정되고, 출력으로서 mbAddrN\mbPartIdxN\subMbPartIdxN, 참조 인덱스들 refIdxLXN 및 움직임 벡터들 mvLXN(여기서, N은 A, B, 또는 C로 대체됨)이 할당된다.
- 다음의 추가적인 사항들이 적용된다.
- 그 외의 경우에, refIdxLX이 inter-view reference 컴포넌트 또는 inter-view only reference 컴포넌트에 대한 참조 인덱스일 때, 미디안 루마 inter-view 움직임 벡터 예측에 대한 깊이 기반 유도 과정이 호출되고, 이 때 입력으로서 mbAddrN\mbPartIdxN\subMbPartIdxN, mvLXN, refIdxLXN (여기서, N은 A, B, 또는 C로 대체됨), refIdxLX이 설정된다. 출력으로서 움직임 벡터 예측 변수(motion vector predictor) mvpLX가 할당된다.
- 그 외의 경우에, refIdxLX이 inter reference 컴포넌트 또는 inter only reference 컴포넌트에 대한 참조 인덱스일 때, 미디안 루마 temporal 움직임 벡터 예측에 대한 깊이 기반 유도 과정이 호출되고, 이 때 입력으로서 mbAddrN\mbPartIdxN\subMbPartIdxN, mvLXN, refIdxLXN (여기서, N은 A, B, 또는 C로 대체됨), refIdxLX이 설정된다. 출력으로서 움직임 벡터 예측 변수(motion vector predictor) mvpLX가 할당된다.
- 그 외의 경우에, MbPartWidth( mb_type )이 8이고, MbPartHeight( mb_type )이 16이며, mbPartIdx가 mvpLX = mvLXCto 1와 같고, refIdxLXC가 refIdxLX와 동일한 경우, 움직임 벡터 예측 변수 mvpLX는 다음과 같이 도출된다.
mvpLX = mvLXC
<J.8.3.1.8 미디안 루마 inter-view 움직임 벡터 예측에 대한 깊이 기반 유도 과정>
이 과정에서의 입력은 다음과 같다.
- 이웃 파티션들 mbAddrN\mbPartIdxN\subMbPartIdxN(여기서, N은 A, B, 또는 C로 대체됨),
- 이웃 파티션들의 움직임 벡터들 mvLXN(여기서, N은 A, B, 또는 C로 대체됨),
- 이웃 파티션들의 참조 인덱스들 refIdxLXN(여기서, N은 A, B, 또는 C로 대체됨),
- 현재 파티션들의 참조 인덱스들 refIdxLXN.
이 과정에서의 출력은 움직임 벡터 예측 mvpLX이다.
파티션 mbAddrN\mbPartIdxN\subMbPartIdxN이 이용 가능하지 않거나 또는 refIdxLXN이 refIdxLX과 동일하지 않은 경우, mvLXN은 다음의 순서에 따라 도출된다.
1. 역 매크로블록 스캐닝 과정이 호출되고, 여기서 입력은 CurrMbAddr이 설정되며, 출력은 ( x1, y1 )로 할당된다.
2. 역 매크로블록 파티션 스캐닝 과정이 호출되고, 여기서 입력은 mbPartIdx이 설정되며, 출력은 ( dx1, dy1 )로 할당된다.
3. 역 서브-매크로블록 파티션 스캐닝 과정이 호출되고, 여기서 입력은 mbPartIdx 및 subMbPartIdx이 설정되며, 출력은 ( dx2, dy2 )로 할당된다.
4. 미디안 루마 움직임 벡터 예측에서 inter-view 움직임 벡터의 수정(modification) 과정이 호출되고, 여기서 입력은 DepthRefPicList0[ refIdxL0 ]와 동일한 depthPic, x1 + dx1 + dx2와 동일한 dbx1, y1 + dy1 + dy2와 동일한 dby1, 및 mvL0와 동일한 mv이 설정된다. 출력은 움직임 벡터 mvLXN로 할당된다.
움직임 벡터 예측 mvpLX의 각각의 컴포넌트는 다음과 같이 움직임 벡터 mvLXA, mvLXB, 및 mvLXC의 대응되는 벡터 컴포넌트들의 미디안 값에 기초하여 결정된다.
mvpLX[ 0 ] = Median( mvLXA[ 0 ], mvLXB[ 0 ], mvLXC[ 0 ] )
mvpLX[ 1 ] = Median( mvLXA[ 1 ], mvLXB[ 1 ], mvLXC[ 1 ] )
<8.3.1.8.1 미디안 루마 움직임 벡터 예측에서 inter-view 움직임 벡터에 대한 수정 과정>
이 과정에서의 입력은 다음과 같다.
- 깊이 참조 시점 컴포넌트(depth reference view component) depthPic,
- 파티션의 top-left 샘플 ( dbx1, dby1 )의 위치,
- 움직임 벡터 mv.
이 과정에서의 출력은 움직임 벡터 mv이다.
refViewId가 depthPic의 view_id 값이라고 가정한다.
다음의 과정이 순서대로 적용된다.
1. numSamples가 partWidth * partHeight라고 가정한다.
2. 변수 maxDepth는 다음의 표 7에 기초하여 결정될 수 있다.
maxDepth = INT_MIN
for( j = 0; j < partHeight; j++ )
for( i = 0; i < partWidth; i++ )
if( depthPic[ dbx1 + i, dby1 + j ] > maxDepth ) maxDepth = depthPic[ dbx1 + i, dby1 + j ]
3. 변수 mv 다음의 표 8에 기초하여 결정될 수 있다.
index = ViewIdTo3DVAcquisitionParamindex( view_id )
refindex = ViewIdTo3DVAcquisitionParamindex( refViewId )
mv[ 0 ] = Disparity( NdrInverse[ maxDepth ], ZNear[ dps_id, index ], ZFar[dps_id, index ],
FocalLengthX[dps_id, index ], AbsTX[ index ] - AbsTX[ refindex ] )
mv[ 1 ] = 0
<J.8.3.1.9 미디안 루마 temporal 움직임 벡터 예측에 대한 깊이 기반 유도 과정>
이 과정에서의 입력은 다음과 같다.
- 이웃 파티션들 mbAddrN\mbPartIdxN\subMbPartIdxN (여기서, N은 A, B, 또는 C로 대체됨),
- 이웃 파티션들의 움직임 벡터들 mvLXN (여기서, N은 A, B, 또는 C로 대체됨),
- 이웃 파티션들의 참조 인덱스들 refIdxLXN (여기서, N은 A, B, 또는 C로 대체됨),
- 현재 파티션의 참조 인덱스 refIdxLX.
이 과정에서의 출력은 움직임 벡터 예측 mvpLX이다.
파티션 mbAddrN\mbPartIdxN\subMbPartIdxN이 이용 가능하지 않거나, 또는 refIdxLXN이 refIdxLX과 동일하지 않은 경우, mvLXN는 다음의 순서에 따라 도출된다.
1. 역 매크로블록 스캐닝 과정이 호출되고, 여기서 입력은 CurrMbAddr이 되며, 출력은 ( x1, y1 )에 할당된다.
2. 역 매크로블록 파티션 스캐닝 과정이 호출되고, 여기서 입력은 mbPartIdx이 되고, 출력은 ( dx1, dy1 )에 할당된다.
3. 역 서브-매크로블록 파티션 스캐닝 과정이 호출되고, 여기서 입력은 mbPartIdx 및 subMbPartIdx이 되고, 출력은 ( dx2, dy2 )에 할당된다.
4. subclause J.8.3.1.10에 명시된 과정이 호출되고, 여기서 입력은 DepthCurrPic로 설정된 depthPic, x1 + dx1 + dx2로 설정된 dbx1, y1 + dy1 + dy2로 설정된 dby1 및 listSuffixFlag이고, 출력은 InterViewPic, 오프셋 벡터 dv 및 변수 InterViewAvailable로 할당된다.
5. refIdxCorrespond 및 mvCorrespond은 다음에 따라 설정된다.
- InterViewAvailable이 0d인 경우, refIdxCorrespond 는 -1로 설정되고, mvCorrespond [ 0 ] 및 mvCorrespond [ 1 ]는 모두 0으로 설정된다.
- 그 외의 경우에는 다음의 과정들이 순서대로 적용된다.
- 변수 luma4x4BlkIdx가 (4 * mbPartIdx + subMbPartIdx)로서 도출된다.
- 역 4x4 루마 블록 스캐닝 과정이 호출되고, 여기서 입력은 luma4x4BlkIdx가 되고, 출력은 ( x, y )가 된다. 또한, ( xCorrespond, yCorrespond )는 ( x + ( dv[ 0 ]>>4 ), y + ( dv [ 1 ]>>4 ) )로 설정되고, mbAddrCorrespond는 ( ( CurrMbAddr / PicWidthInMbs ) + ( dv[1] >>6 ) ) * PicWidthInMbs + ( CurrMbAddr % PicWidthInMbs ) + ( dv[0] >>6 )로 설정된다.
- mbTypeCorrespond를 픽쳐 InterViewPic 내의 어드레스 mbAddrCorrespond를 가진 매크로블록의 신택스 엘리먼트 mb_type로 설정한다. mbTypeCorrespond가 P_8x8, P_8x8ref0, 또는 B_8x8와 동일한 경우, subMbTypeCorrespond는 픽쳐 InterViewPic 내의 어드레스 mbAddrCorrespond를 가진 매크로블록의 신택스 엘리먼트 sub_mb_type로 설정된다.
- mbPartIdxCorrespond을 대응하는 파티션의 매크로블록 파티션 인덱스로 설정하고, subMbPartIdxCorrespond를 대응하는 서브-매크로블록 파티션의 서브-매크로블록 파티션 인덱스로 설정한다. 매크로블록 및 sub-매크로블록 파티션 인덱스들에 대한 유도 과정이 호출되고, 이 때 입력은 ( xCorrespond, yCorrespond )와 동일한 루마 위치(luma location), mbTypeCorrespond와 동일한 매크로블록 타입, 및 mbTypeCorrespond이 P_8x8, P_8x8ref0, 또는 B_8x8과 동일할 때의 서브-매크로블록 타입들 subMbTypeCorrespond의 리스트이다. 출력은 매크로블록 파티션 인덱스 mbPartIdxCorrespond 및 서브-매크로블록 파티션 인덱스 subMbPartIdxCorrespond이다.
- 움직임 벡터 mvCorrespond 및 참조 인덱스 refIdxCorrespond는 다음에 기초하여 결정된다.
- 매크로블록 mbAddrCorrespond이 인트라 예측 모드로 부호화된 경우, mvCorrespond의 컴포넌트는 0으로 설정되고, refIdxCorrespond의 컴포넌트는 -1로 설정된다.
- 그 외의 경우(매크로블록 mbAddrCorrespond이 인트라 예측 모드로 부호화되지 않은 경우), 예측 이용 플래그들은 predFlagLXCorrespond은 PredFlagLX[ mbPartIdxCorrespond ], 픽쳐 InterViewPic의 매크로블록 파티션 mbAddrCorrespond\mbPartIdxCorrespond의 예측 이용 플래그로 설정된다. 또한, 다음 과정들이 적용된다.
- predFlagLXCorrespond이 1인 경우, mvCorrespond 및 참조 인덱스 refIdxCorrespond는 각각 MvLX[ mbPartIdxCorrespond ][ subMbPartIdxCorrespond ] 및 RefIdxLX[ mbPartIdxCorrespond ]로 설정된다. 여기서, MvLX[ mbPartIdxCorrespond ][ subMbPartIdxCorrespond ] 및 RefIdxLX[ mbPartIdxCorrespond ]는 각각 픽쳐 InterViewPic 내의 (서브-)매크로블록 파티션 mbAddrCorrespond\mbPartIdxCorrespond\subMbPartIdxCorrespond에 할당된 움직임 벡터 mvLX 및 참조 인덱스 refIdxLX이다.
6. 움직임 벡터들 mvLXN은 다음의 표 9에 따라 도출된다.
If refIdxCorrespond is equal to refIdxLX,
mvLXN[0] = mvCorrespond[0]
mvLXN[1] = mvCorrespond[1]
Otherwise,
mvLXN[0] = 0
mvLXN[1] = 0
움직임 벡터 예측 mvpLX의 각각의 컴포넌트는 움직임 벡터 mvLXA, mvLXB, and mvLXC의 대응되는 벡터 컴포넌트들의 미디안 값에 기초하여 결정된다.
mvpLX[ 0 ] = Median( mvLXA[ 0 ], mvLXB[ 0 ], mvLXC[ 0 ] )
mvpLX[ 1 ] = Median( mvLXA[ 1 ], mvLXB[ 1 ], mvLXC[ 1 ] )
<J.8.3.1.10 inter-view reference 및 변이 벡터에 대한 유도 과정>
이 과정에서의 입력은 깊이 참조 시점 컴포넌트 depthPic, 파티션(partition)의 top-left 샘플 (dbx1, dby1) 의 위치, 및 listSuffixFlag가 있다.
이 과정에서의 출력은 픽쳐(picture) InterViewPic, 오프셋 벡터(offset vector) dv, 및 변수 InterViewAvailable가 있다.
InterViewAvailable를 0으로 설정한다.
다음의 표 10은 inter-view reference picture 또는 inter-view only reference picture, InterViewPic를 도출하는데 적용되고, 이 때 listFuffixFlag가 1 또는 0 그 밖의 경우 X는 1로 설정된다.
for( cIdx = 0;cIdx<num_ref_idx_l0_active_minus1 + 1 && !InterViewAvailable; cIdx ++)
if ( view order index of RefPicList0[ cIdx ] is equal to 0) {
InterViewPic = RefPicList0[ cIdx ]
InterViewAvailable = 1
}
InterViewAvailable이 1인 경우, 다음의 단계들이 차례대로 적용된다.
(1) 변수 maxDepth는 다음의 표 11과 같이 지정된다.
maxDepth = INT_MIN
for( j = 0; j < partHeight; j+=(partHeight-1) )
for( i = 0; i < partWidth; i+=(partWidth-1))
if( depthPic[ dbx1 + i, dby1 + j ] > maxDepth ) maxDepth = depthPic[ dbx1 + i, dby1 + j ]
(2) 변수 dv는 다음의 표 12와 같이 지정된다.
index = ViewIdTo3DVAcquisitionParamindex( view_id of the current view )
refindex = ViewIdTo3DVAcquisitionParamindex( view_id of the InterViewPic )
dv[ 0 ] = Disparity( NdrInverse[maxDepth], ZNear[ dps_id, index ], ZFar[dps_id, index ],
FocalLengthX[dps_id, index ], AbsTX[ index ] - AbsTX[ refindex ] )
dv[ 1 ] = 0
도 14는 일실시예에 따른 현재 블록의 변이 벡터를 예측하는 영상 처리 방법을 도시한 흐름도이다.
단계(1410)에서, 영상 처리 장치는 컬러 영상의 현재 블록에 대응하는 깊이 영상을 식별할 수 있다. 영상 처리 장치는 컬러 영상에 대응하는 깊이 영상이 존재하지 않는 경우, 현재 블록이 포함된 컬러 영상의 주변 컬러 영상 또는 다른 깊이 영상을 이용하여 현재 블록에 대응하는 깊이 영상을 추정할 수도 있다.
단계(1420)에서, 영상 처리 장치는 깊이 영상에 포함된 픽셀의 깊이값에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 깊이 정보를 이용하여 현재 블록의 변이 벡터를 결정할 수 있다. 영상 처리 장치는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 식별한 픽셀의 깊이값 중 가장 큰 깊이값을 현재 블록의 변이 벡터로 변환할 수 있다.
예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 픽셀의 깊이값에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 영상 처리 장치는 깊이 영상의 대응 블록에 포함된 적어도 하나의 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 또는, 영상 처리 장치는 깊이 영상의 대응 블록에 포함된 복수의 픽셀들 중 깊이 영상 내 미리 설정된 영역에 위치하는 픽셀의 깊이값을 식별할 수 있다. 예를 들어, 영상 처리 장치는 대응 블록의 모서리에 위치하는 픽셀의 깊이값을 식별하거나 또는 대응 블록의 모서리에 위치하는 픽셀의 깊이값 및 대응 블록의 중앙에서의 깊이값을 식별할 수 있다. 영상 처리 장치는 미리 설정된 영역에 위치하는 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 영상 처리 장치는 변환된 변이 벡터를 현재 블록의 변이 벡터로 결정할 수 있다.
영상 처리 장치는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 매크로 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 현재 블록의 변이 벡터로 변환하거나 또는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 현재 블록의 변이 벡터로 변환할 수 있다. 또한, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 현재 블록의 변이 벡터로 결정할 수 있다. 또는, 영상 처리 장치는 대응 블록(또는, 매크로 블록) 내 임의의 한 개의 픽셀의 깊이값을 현재 블록의 변이 벡터로 변환할 수도 있다.
영상 처리 장치는 깊이값을 변이 벡터로 변환하는 과정에서 카메라 파라미터 정보를 이용할 수 있다.
도 15는 일실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 방법을 도시한 흐름도이다.
단계(1510)에서, 영상 처리 장치는 컬러 영상의 현재 블록에 이웃하는 주변 블록의 변이 벡터를 식별하고, 주변 블록에 변이 벡터가 존재하는지 여부를 판단할 수 있다.
단계(1520)에서, 영상 처리 장치는 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 컬러 영상에 대응하는 깊이 영상을 이용하여 주변 블록의 변이 벡터를 결정할 수 있다.
영상 처리 장치는 현재 블록에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별할 수 있다. 영상 처리 장치는 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다. 영상 처리 장치는 깊이 영상에 포함된 픽셀들 중 일부 픽셀들만을 고려할 수도 있고, 일부 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로서 변환할 수 있다. 예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환할 수 있다.
영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 적어도 하나의 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하여 주변 블록의 변이 벡터로 결정할 수 있다. 또는, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 복수의 픽셀들 중 미리 설정된 영역에 위치하는 픽셀의 깊이값을 식별할 수 있다. 예를 들어, 영상 처리 장치는 대응 블록의 모서리에 위치하는 픽셀의 깊이값을 식별하거나 또는 대응 블록의 모서리에 위치하는 픽셀의 깊이값 및 대응 블록의 중앙에서의 깊이값을 식별할 수 있다. 영상 처리 장치는 미리 설정된 영역에 위치하는 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 영상 처리 장치는 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다.
영상 처리 장치는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 주변 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 매크로 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환하거나 또는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다.
단계(1530)에서, 영상 처리 장치는 주변 블록의 변이 벡터에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 주변 블록의 변이 벡터에 미디언 필터를 적용하고, 미디언 필터가 적용된 결과를 현재 블록의 변이 벡터로 결정할 수 있다.
단계(1540)에서, 영상 처리 장치는 현재 블록의 변이 벡터를 이용하여 현재 블록의 움직임 벡터를 결정할 수 있다. 영상 처리 장치는 현재 블록의 변이 벡터를 이용하여 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하고, 식별된 위치에서의 움직임 벡터를 현재 블록의 움직임 벡터로 결정할 수 있다.
영상 처리 장치는 결정된 현재 블록의 변이 벡터를 이용하여 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별할 수 있다. 영상 처리 장치는 식별된 위치에서의 움직임 벡터를 현재 블록의 움직임 벡터로 결정할 수 있다. 영상 처리 장치는 식별된 위치에서의 움직임 벡터가 존재하지 않는 경우, 영상 처리 장치는 현재 블록에 이웃한 주변 블록을 이용하여 현재 블록의 움직임 벡터를 결정할 수 있다. 영상 처리 장치는 주변 블록의 변이 벡터 및 움직임 벡터 중 적어도 하나에 기초하여 현재 블록의 움직임 벡터를 결정할 수 있다.
도 16은 다른 실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 방법을 도시한 흐름도이다.
단계(1610)에서, 영상 처리 장치는 컬러 영상의 현재 블록에 이웃하는 주변 블록의 변이 벡터를 이용하여 현재 블록의 변이 벡터를 결정할 수 있다. 영상 처리 장치는 주변 블록에 변이 벡터가 존재하는지 여부를 판단하고, 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 컬러 영상에 대응하는 깊이 영상을 이용하여 주변 블록의 변이 벡터를 결정할 수 있다.
영상 처리 장치는 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 컬러 영상의 현재 블록에 대응하는 깊이 영상을 식별할 수 있다. 영상 처리 장치는 깊이 영상에 포함된 적어도 하나의 픽셀의 깊이값에 기초하여 주변 블록의 변이 벡터를 결정할 수 있다.
예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 대응 블록(또는, 매크로 블록)에 포함된 적어도 하나의 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하여 주변 블록의 변이 벡터로 결정할 수 있다.
또는, 영상 처리 장치는 깊이 영상의 대응 블록(또는, 매크로 블록)에 포함된 픽셀들 중 일부 픽셀들만을 고려할 수도 있고, 일부 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로서 변환할 수 있다. 예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 대응 블록(또는, 매크로 블록)에서, 미리 설정된 영역에 위치하는 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하여 주변 블록의 변이 벡터로 결정할 수 있다.
또한, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다.
영상 처리 장치는 주변 블록의 변이 벡터에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 주변 블록의 변이 벡터에 미디언 필터를 적용하여 현재 블록의 변이 벡터를 결정할 수 있다.
단계(1620)에서, 영상 처리 장치는 현재 블록의 변이 벡터를 이용하여 현재 블록의 움직임 벡터를 결정할 수 있다. 영상 처리 장치는 현재 블록의 변이 벡터를 이용하여 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별할 수 있다. 영상 처리 장치는 식별된 위치에서의 움직임 벡터를 현재 블록의 움직임 벡터로 결정할 수 있다. 영상 처리 장치는 식별된 위치에서의 움직임 벡터가 존재하지 않는 경우, 현재 블록에 이웃한 주변 블록의 변이 벡터 및 움직임 벡터 중 적어도 하나에 기초하여 현재 블록의 움직임 벡터를 결정할 수 있다. 영상 처리 장치는 주변 블록의 변이 벡터 또는 움직임 벡터로도 현재 블록의 움직임 벡터를 결정할 수 없는 경우에는 영벡터를 현재 블록의 움직임 벡터로 결정할 수 있다.
도 17은 또 다른 실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 방법을 도시한 흐름도이다.
단계(1710)에서, 영상 처리 장치는 컬러 영상의 현재 블록에 이웃하는 주변 블록의 움직임 벡터를 식별할 수 있다. 영상 처리 장치는 주변 블록에 움직임 벡터가 존재하는지 여부를 판단할 수 있다.
단계(1720)에서, 영상 처리 장치는 주변 블록이 움직임 벡터를 가지고 있지 않은 경우, 컬러 영상에 대응하는 깊이 영상을 이용하여 주변 블록의 움직임 벡터를 결정할 수 있다.
영상 처리 장치는 주변 블록의 움직임 벡터를 결정하기 위해 먼저 깊이 영상을 이용하여 변이 벡터를 획득할 수 있다. 예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상에 포함된 적어도 하나의 픽셀을 식별하고, 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 또는, 영상 처리 장치는 주변 블록의 움직임 벡터를 결정하기 위해 현재 컬러 영상에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다.
영상 처리 장치는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 주변 블록의 움직임 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 대응 블록을 포함하는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환하고, 변환된 변이 벡터를 이용하여 주변 블록의 움직임 벡터를 탐색할 수도 있다.
영상 처리 장치는 변이 벡터에 기초하여 변이 벡터가 가리키는 위치를 식별할 수 있다. 영상 처리 장치는 식별된 위치에서의 움직임 벡터를 주변 블록의 움직임 벡터로 결정할 수 있다. 영상 처리 장치는 식별된 위치에 움직임 벡터가 존재하지 않는 경우, 영벡터를 주변 블록의 움직임 벡터로 결정할 수 있다.
단계(1730)에서, 영상 처리 장치는 주변 블록의 움직임 벡터에 기초하여 현재 블록의 움직임 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 주변 블록의 움직임 벡터에 미디언 필터를 적용하여 현재 블록의 움직임 벡터를 결정할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
110: 부호화 장치
120: 복호화 장치

Claims (51)

  1. 컬러 영상의 현재 블록에 대응하는 깊이 영상을 식별하는 단계; 및
    상기 깊이 영상에 포함된 픽셀의 깊이값에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 단계
    를 포함하는 영상 처리 방법.
  2. 제1항에 있어서,
    상기 현재 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하는 단계; 및
    상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 상기 변환된 변이 벡터를 상기 현재 블록의 변이 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  3. 제1항에 있어서,
    상기 현재 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하는 단계; 및
    상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 상기 현재 블록의 변이 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  4. 제1항에 있어서,
    상기 현재 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상 내 미리 설정된 영역에 위치하는 픽셀들을 식별하는 단계; 및
    상기 식별된 픽셀들의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 상기 현재 블록의 변이 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  5. 제1항에 있어서,
    상기 미리 설정된 영역에 위치하는 픽셀들을 식별하는 단계는,
    상기 현재 블록에 대응하는 매크로 블록 내 모서리에 위치한 픽셀들을 식별하는 영상 처리 방법.
  6. 제1항에 있어서,
    상기 미리 설정된 영역에 위치하는 픽셀들을 식별하는 단계는,
    상기 현재 블록에 대응하는 매크로 블록 내 모서리 및 상기 대응 블록의 중앙에 위치한 픽셀들을 식별하는 영상 처리 방법.
  7. 제1항에 있어서,
    상기 현재 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상의 매크로 블록에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하는 단계; 및
    상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 상기 현재 블록의 변이 벡터로 결정하는 단계
    를 포함하고,
    상기 매크로 블록은, 상기 현재 블록에 대응하는 깊이 영상의 대응 블록을 포함하는 깊이 영상 블록인 영상 처리 방법.
  8. 제1항에 있어서,
    상기 현재 블록의 변이 벡터를 결정하는 단계는,
    상기 깊이 영상을 촬영한 카메라의 파라미터를 이용하여 상기 현재 블록의 변이 벡터를 결정하는 영상 처리 방법.
  9. 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 변이 벡터를 식별하는 단계;
    상기 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 상기 컬러 영상에 대응하는 깊이 영상을 이용하여 상기 주변 블록의 변이 벡터를 결정하는 단계; 및
    상기 적어도 하나의 주변 블록의 변이 벡터에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 단계
    를 포함하는 영상 처리 방법.
  10. 제9항에 있어서,
    상기 주변 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상에 포함된 적어도 하나의 픽셀을 식별하는 단계; 및
    상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 상기 주변 블록의 변이 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  11. 제9항에 있어서,
    상기 주변 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하는 단계; 및
    상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 상기 주변 블록의 변이 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  12. 제9항에 있어서,
    상기 주변 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상 내 미리 설정된 영역에 위치하는 픽셀들을 식별하는 단계; 및
    상기 식별된 픽셀들의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 상기 주변 블록의 변이 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  13. 제9항에 있어서,
    상기 주변 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상의 매크로 블록에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하는 단계; 및
    상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 상기 주변 블록의 변이 벡터로 결정하는 단계
    를 포함하고,
    상기 매크로 블록은, 상기 현재 블록에 대응하는 깊이 영상의 대응 블록을 포함하는 깊이 영상 블록인 영상 처리 방법.
  14. 제9항에 있어서,
    상기 현재 블록의 변이 벡터를 결정하는 단계는,
    상기 적어도 하나의 주변 블록의 변이 벡터에 미디언 필터를 적용하여 상기 현재 블록의 변이 벡터를 결정하는 영상 처리 방법.
  15. 제9항에 있어서,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 단계
    를 더 포함하는 영상 처리 방법.
  16. 제15항에 있어서,
    상기 현재 블록의 움직임 벡터를 결정하는 단계는,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하는 단계; 및
    상기 식별된 위치에서의 움직임 벡터를 상기 현재 블록의 움직임 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  17. 제15항에 있어서,
    상기 현재 블록의 움직임 벡터를 결정하는 단계는,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하는 단계; 및
    상기 식별된 위치에서의 움직임 벡터가 존재하지 않는 경우, 상기 현재 블록에 이웃한 주변 블록의 변이 벡터 및 움직임 벡터 중 적어도 하나에 기초하여 상기 현재 블록의 움직임 벡터를 결정하는 단계
    를 포함하는 영상 처리 방법.
  18. 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 변이 벡터를 이용하여 상기 현재 블록의 변이 벡터를 결정하는 단계; 및
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 단계
    를 포함하는 영상 처리 방법.
  19. 제18항에 있어서,
    상기 현재 블록의 변이 벡터를 결정하는 단계는,
    상기 적어도 하나의 주변 블록의 변이 벡터에 미디언 필터를 적용하여 상기 현재 블록의 변이 벡터를 결정하는 영상 처리 방법.
  20. 제18항에 있어서,
    상기 현재 블록의 변이 벡터를 결정하는 단계는,
    상기 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 상기 컬러 영상의 현재 블록에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하는 단계;
    상기 식별된 픽셀의 깊이값에 상기 주변 블록의 변이 벡터를 결정하는 단계; 및
    상기 결정된 주변 블록의 변이 벡터에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 단계
    를 포함하는 영상 처리 방법.
  21. 제20항에 있어서,
    상기 주변 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상의 매크로 블록에 포함된 적어도 하나의 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하여 상기 주변 블록의 변이 벡터로 결정하고,
    상기 매크로 블록은, 상기 현재 블록에 대응하는 깊이 영상의 대응 블록을 포함하는 깊이 영상 블록인 영상 처리 방법.
  22. 제20항에 있어서,
    상기 주변 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상의 매크로 블록 내 미리 설정된 영역에 위치하는 픽셀들을 식별하는 단계; 및
    상기 식별된 픽셀들의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 상기 주변 블록의 변이 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  23. 제18항에 있어서,
    상기 현재 블록의 움직임 벡터를 결정하는 단계는,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하는 단계; 및
    상기 식별된 위치에서의 움직임 벡터를 상기 현재 블록의 움직임 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  24. 제18항에 있어서,
    상기 현재 블록의 움직임 벡터를 결정하는 단계는,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하는 단계; 및
    상기 식별된 위치에 움직임 벡터가 존재하지 않는 경우, 상기 현재 블록에 이웃한 주변 블록의 변이 벡터 및 움직임 벡터 중 적어도 하나에 기초하여 상기 현재 블록의 움직임 벡터를 결정하는 단계
    를 포함하는 영상 처리 방법.
  25. 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 움직임 벡터를 식별하는 단계;
    상기 주변 블록이 움직임 벡터를 가지고 있지 않은 경우, 상기 컬러 영상에 대응하는 깊이 영상을 이용하여 상기 주변 블록의 움직임 벡터를 결정하는 단계; 및
    상기 적어도 하나의 주변 블록의 움직임 벡터에 기초하여 상기 현재 블록의 움직임 벡터를 결정하는 단계
    를 포함하는 영상 처리 방법.
  26. 제25항에 있어서,
    상기 주변 블록의 움직임 벡터를 결정하는 단계는,
    상기 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하는 단계;
    상기 변이 벡터에 기초하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하는 단계; 및
    상기 식별된 위치에서의 움직임 벡터를 상기 주변 블록의 움직임 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  27. 제26항에 있어서,
    상기 주변 블록의 움직임 벡터를 결정하는 단계는,
    상기 식별된 위치에 움직임 벡터가 존재하지 않는 경우, 영벡터를 주변 블록의 움직임 벡터로 결정하는 영상 처리 방법.
  28. 제25항에 있어서,
    상기 주변 블록의 움직임 벡터를 결정하는 단계는,
    상기 깊이 영상의 매크로 블록에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하는 단계;
    상기 변환된 변이 벡터를 이용하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하는 단계; 및
    상기 식별된 위치에서의 움직임 벡터를 상기 주변 블록의 움직임 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  29. 제25항에 있어서,
    상기 현재 블록의 움직임 벡터를 결정하는 단계는,
    상기 적어도 하나의 주변 블록의 움직임 벡터에 미디언 필터를 적용하여 상기 현재 블록의 움직임 벡터를 결정하는 영상 처리 방법.
  30. 제1항 내지 제29항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체.
  31. 컬러 영상의 현재 블록에 대응하는 깊이 영상을 식별하는 깊이 영상 식별부; 및
    상기 깊이 영상에 포함된 픽셀의 깊이값에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 변이 벡터 결정부
    를 포함하는 영상 처리 장치.
  32. 제31항에 있어서,
    상기 변이 벡터 결정부는,
    상기 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 상기 식별한 픽셀의 깊이값 중 가장 큰 깊이값을 상기 현재 블록의 변이 벡터로 변환하는 영상 처리 장치.
  33. 제31항에 있어서,
    상기 변이 벡터 결정부는,
    상기 현재 블록에 이웃한 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 상기 현재 블록에 대응하는 상기 깊이 영상의 매크로 블록 내 픽셀들의 깊이값 중 가장 큰 깊이값을 상기 주변 블록의 변이 벡터로 변환하고, 상기 변환된 주변 블록의 변이 벡터와 미디언 필터를 이용하여 상기 현재 블록의 변이 벡터를 결정하는 영상 처리 장치.
  34. 제31항에 있어서,
    상기 변이 벡터 결정부는,
    상기 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 상기 식별한 픽셀의 깊이값 중 가장 큰 깊이값을 상기 현재 블록의 변이 벡터로 변환하는 영상 처리 장치.
  35. 제31항에 있어서,
    상기 변이 벡터 결정부는,
    상기 현재 블록에 대응하는 깊이 영상 내 미리 설정된 영역에 위치하는 픽셀들을 식별하고, 상기 식별된 픽셀들의 깊이값 중 가장 큰 깊이값을 상기 현재 블록의 변이 벡터로 변환하는 영상 처리 장치.
  36. 제31항에 있어서,
    상기 변이 벡터 결정부는,
    상기 현재 블록에 대응하는 깊이 영상의 매크로 블록에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 상기 현재 블록의 변이 벡터로 변환하고,
    상기 매크로 블록은, 상기 현재 블록에 대응하는 깊이 영상의 대응 블록을 포함하는 깊이 영상 블록인 영상 처리 장치.
  37. 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 변이 벡터를 추출하는 변이 벡터 추출부; 및
    상기 적어도 하나의 주변 블록의 변이 벡터에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 변이 벡터 결정부
    를 포함하는 영상 처리 장치.
  38. 제37항에 있어서,
    상기 변이 벡터 추출부는,
    상기 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 상기 컬러 영상에 대응하는 깊이 영상을 이용하여 상기 주변 블록의 변이 벡터를 결정하는 영상 처리 장치.
  39. 제37항에 있어서,
    상기 변이 벡터 추출부는,
    상기 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 상기 컬러 영상에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 상기 식별한 픽셀의 깊이값 중 가장 큰 깊이값을 상기 주변 블록의 변이 벡터로 변환하는 영상 처리 장치.
  40. 제37항에 있어서,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 움직임 벡터 결정부
    를 더 포함하는 영상 처리 장치.
  41. 제40항에 있어서,
    상기 움직임 벡터 결정부는,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하고, 상기 식별된 위치에서의 움직임 벡터를 상기 현재 블록의 움직임 벡터로 결정하는 영상 처리 장치.
  42. 제40항에 있어서,
    상기 움직임 벡터 결정부는,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하고, 상기 식별된 위치에서의 움직임 벡터가 존재하지 않는 경우, 상기 현재 블록에 이웃한 주변 블록의 변이 벡터 및 움직임 벡터 중 적어도 하나에 기초하여 상기 현재 블록의 움직임 벡터를 결정하는 영상 처리 장치.
  43. 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 변이 벡터를 이용하여 상기 현재 블록의 변이 벡터를 결정하는 변이 벡터 결정부; 및
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 움직임 벡터 결정부
    를 포함하는 영상 처리 장치.
  44. 제43항에 있어서,
    상기 변이 벡터 결정부는,
    상기 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 상기 컬러 영상에 대응하는 깊이 영상에 포함된 적어도 하나의 픽셀을 식별하고, 상기 식별된 픽셀의 깊이값에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 영상 처리 장치.
  45. 제44항에 있어서,
    상기 변이 벡터 결정부는,
    상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 상기 주변 블록의 변이 벡터로 변환하고, 상기 변환된 주변 블록의 변이 벡터를 이용하여 상기 현재 블록의 변이 벡터를 결정하는 영상 처리 장치.
  46. 제43항에 있어서,
    상기 움직임 벡터 결정부는,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하고, 상기 식별된 위치에서의 움직임 벡터를 상기 현재 블록의 움직임 벡터로 결정하는 영상 처리 장치.
  47. 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 움직임 벡터를 추출하는 움직임 벡터 추출부; 및
    상기 적어도 하나의 주변 블록의 움직임 벡터에 기초하여 상기 현재 블록의 움직임 벡터를 결정하는 움직임 벡터 결정부
    를 포함하는 영상 처리 장치.
  48. 제47항에 있어서,
    상기 움직임 벡터 추출부는,
    상기 주변 블록이 움직임 벡터를 가지고 있지 않은 경우, 상기 컬러 영상에 대응하는 깊이 영상을 이용하여 상기 주변 블록의 움직임 벡터를 결정하는 영상 처리 장치.
  49. 제48항에 있어서,
    상기 움직임 벡터 추출부는,
    상기 깊이 영상에 포함된 적어도 하나의 픽셀을 식별하고, 상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하며, 상기 변환된 변이 벡터를 이용하여 상기 주변 블록의 움직임 벡터를 상기 컬러 영상의 주변 컬러 영상에서 탐색하는 영상 처리 장치.
  50. 컬러 영상에 포함된 현재 블록의 변이 벡터를 결정하는 영상 처리 장치에 있어서,
    상기 영상 처리 장치는, 상기 컬러 영상에 대응하는 깊이 영상의 깊이 정보를 이용하여 상기 현재 블록의 변이 벡터를 결정하고,
    상기 결정된 변이 벡터는, 상기 현재 블록에 대응하는 깊이 영상에 포함된 적어도 하나의 픽셀의 깊이값에 기초하여 결정되는 영상 처리 장치.
  51. 제50항에 있어서,
    상기 영상 처리 장치는,
    상기 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하여 상기 현재 블록의 변이 벡터로 결정하는 영상 처리 장치.
KR1020130112962A 2012-09-28 2013-09-24 움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치 KR102137266B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US14/432,410 US20150245049A1 (en) 2012-09-28 2013-09-25 Image processing method and apparatus for predicting motion vector and disparity vector
PCT/KR2013/008563 WO2014051320A1 (ko) 2012-09-28 2013-09-25 움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치
CN201380051109.1A CN104704832B (zh) 2012-09-28 2013-09-25 用于预测运动矢量和视差矢量的图像处理方法和设备

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261707524P 2012-09-28 2012-09-28
US61/707,524 2012-09-28
US201261746272P 2012-12-27 2012-12-27
US61/746,272 2012-12-27

Publications (2)

Publication Number Publication Date
KR20140043032A true KR20140043032A (ko) 2014-04-08
KR102137266B1 KR102137266B1 (ko) 2020-07-23

Family

ID=50651866

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130112962A KR102137266B1 (ko) 2012-09-28 2013-09-24 움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치

Country Status (3)

Country Link
US (1) US20150245049A1 (ko)
KR (1) KR102137266B1 (ko)
CN (1) CN104704832B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10630992B2 (en) 2016-01-08 2020-04-21 Samsung Electronics Co., Ltd. Method, application processor, and mobile terminal for processing reference image
KR20200068102A (ko) * 2018-11-28 2020-06-15 이노뎁 주식회사 압축영상에 대한 신택스 기반의 mrpn-cnn을 이용한 객체 분류 방법
WO2021206280A1 (ko) * 2020-04-10 2021-10-14 삼성전자 주식회사 움직임 벡터의 부호화 장치 및 방법, 및 움직임 벡터의 복호화 장치 및 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10341638B2 (en) * 2013-01-07 2019-07-02 Mediatek Inc. Method and apparatus of depth to disparity vector conversion for three-dimensional video coding
US10158876B2 (en) * 2013-04-10 2018-12-18 Qualcomm Incorporated Backward view synthesis prediction
US10009621B2 (en) * 2013-05-31 2018-06-26 Qualcomm Incorporated Advanced depth inter coding based on disparity of depth blocks
US9288507B2 (en) * 2013-06-21 2016-03-15 Qualcomm Incorporated More accurate advanced residual prediction (ARP) for texture coding
KR102156410B1 (ko) * 2014-04-14 2020-09-15 삼성전자주식회사 오브젝트 움직임을 고려한 영상 처리 장치 및 방법
TWI691199B (zh) 2017-04-21 2020-04-11 美商時美媒體公司 用於產生遊戲的運動向量的系統及方法
US11418766B2 (en) 2019-12-17 2022-08-16 Samsung Electronics Co., Ltd. Apparatus and method for chroma processing for multi-frame fusion

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120084629A (ko) * 2011-01-20 2012-07-30 삼성전자주식회사 움직임 정보 및 변이 정보를 부호화/복호화하는 영상 처리 장치 및 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100463527C (zh) * 2005-10-18 2009-02-18 宁波大学 一种多视点视频图像视差估计的方法
WO2007110000A1 (en) * 2006-03-29 2007-10-04 Huawei Technologies Co., Ltd. A method and device of obtaining disparity vector and its multi-view encoding-decoding
KR20100014553A (ko) * 2007-04-25 2010-02-10 엘지전자 주식회사 비디오 신호의 인코딩/디코딩 방법 및 장치
EP2501137A3 (en) * 2007-06-11 2012-12-12 Samsung Electronics Co., Ltd. Method and apparatus for generating header information of stereoscopic image
CN102017627B (zh) * 2008-04-25 2013-05-01 汤姆森许可贸易公司 使用基于深度信息的视差估计的多视点视频编码
KR101497659B1 (ko) * 2008-12-04 2015-03-02 삼성전자주식회사 깊이 영상을 보정하는 방법 및 장치
CN102170567A (zh) * 2010-06-22 2011-08-31 上海盈方微电子有限公司 一种基于预测运动矢量搜索的自适应运动估计算法
JP5238767B2 (ja) * 2010-07-26 2013-07-17 株式会社東芝 視差画像生成方法及び装置
CN103907346B (zh) * 2011-10-11 2017-05-24 联发科技股份有限公司 运动矢量预测子及视差矢量导出方法及其装置
US20130271567A1 (en) * 2012-04-16 2013-10-17 Samsung Electronics Co., Ltd. Image processing method and apparatus for predicting motion vector and disparity vector
AU2013278195B2 (en) * 2012-06-19 2017-01-19 Lg Electronics Inc. Method and device for processing video signal
WO2014000664A1 (en) * 2012-06-28 2014-01-03 Mediatek Inc. Method and apparatus of disparity vector derivation in 3d video coding
KR101737595B1 (ko) * 2012-12-27 2017-05-18 니폰 덴신 덴와 가부시끼가이샤 화상 부호화 방법, 화상 복호 방법, 화상 부호화 장치, 화상 복호 장치, 화상 부호화 프로그램 및 화상 복호 프로그램
US9762905B2 (en) * 2013-03-22 2017-09-12 Qualcomm Incorporated Disparity vector refinement in video coding
CN105122808B (zh) * 2013-04-10 2018-08-03 联发科技股份有限公司 三维或多视图视频编码或解码的方法及装置
US9288507B2 (en) * 2013-06-21 2016-03-15 Qualcomm Incorporated More accurate advanced residual prediction (ARP) for texture coding
CN105556970B (zh) * 2013-07-12 2019-01-11 三星电子株式会社 使用修正矢量推导的视频编码方法及其设备、视频解码方法及其设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120084629A (ko) * 2011-01-20 2012-07-30 삼성전자주식회사 움직임 정보 및 변이 정보를 부호화/복호화하는 영상 처리 장치 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10630992B2 (en) 2016-01-08 2020-04-21 Samsung Electronics Co., Ltd. Method, application processor, and mobile terminal for processing reference image
KR20200068102A (ko) * 2018-11-28 2020-06-15 이노뎁 주식회사 압축영상에 대한 신택스 기반의 mrpn-cnn을 이용한 객체 분류 방법
WO2021206280A1 (ko) * 2020-04-10 2021-10-14 삼성전자 주식회사 움직임 벡터의 부호화 장치 및 방법, 및 움직임 벡터의 복호화 장치 및 방법
US11997286B2 (en) 2020-04-10 2024-05-28 Samsung Electronics Co., Ltd. Device and method for encoding motion vector, and device and method for decoding motion vector

Also Published As

Publication number Publication date
CN104704832B (zh) 2018-07-20
CN104704832A (zh) 2015-06-10
KR102137266B1 (ko) 2020-07-23
US20150245049A1 (en) 2015-08-27

Similar Documents

Publication Publication Date Title
JP6543368B2 (ja) 映像復号化方法、映像符号化方法及び記録媒体
KR102137266B1 (ko) 움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치
US10659758B2 (en) Image encoding method and image decoding method
JP6522629B2 (ja) 3dビデオコード化のためのブロックベースの高度残差予測
KR101984605B1 (ko) 비디오 신호 처리 방법 및 장치
TW201340724A (zh) 視訊寫碼中之像差向量預測
EP3764643B1 (en) Image processing method based on inter prediction mode, and device therefor
TWI536812B (zh) 針對三維(3d)視訊之基於鄰近區塊的差異向量之約束
EP2976882A1 (en) Disparity vector derivation in 3d video coding for skip and direct modes
KR20140146564A (ko) 움직임 정보의 부호화 방법 및 장치, 그 복호화 방법 및 장치
WO2015006884A1 (en) 3d video coding with partition-based depth inter coding
KR20130016172A (ko) 인터 예측 부호화된 동영상 복호화 방법
EP2984838A1 (en) Backward view synthesis prediction
CN110677678B (zh) 依赖形状的帧间编码
KR20190017856A (ko) 비디오 신호 처리 방법 및 장치
US20130271567A1 (en) Image processing method and apparatus for predicting motion vector and disparity vector
KR20200140896A (ko) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
KR20130002242A (ko) 영상 정보의 부호화 방법 및 복호화 방법
KR20130067280A (ko) 인터 예측 부호화된 동영상 복호화 방법
KR20150037847A (ko) 비디오 신호 처리 방법 및 장치
CN113966616A (zh) 使用临近块信息的运动候选列表构建
KR20130116777A (ko) 움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치
KR20130083314A (ko) LCU boundary에서의 deblocking filtering 방법
KR20130116826A (ko) 3d 비디오 부호화/복호화 장치 및 부호화/복호화 방법
KR20140072939A (ko) 다시점 잔차 신호 예측 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right