KR20140046385A - 비디오 데이터 디코딩 방법 및 비디오 데이터 디코딩 장치 - Google Patents

비디오 데이터 디코딩 방법 및 비디오 데이터 디코딩 장치 Download PDF

Info

Publication number
KR20140046385A
KR20140046385A KR1020130120070A KR20130120070A KR20140046385A KR 20140046385 A KR20140046385 A KR 20140046385A KR 1020130120070 A KR1020130120070 A KR 1020130120070A KR 20130120070 A KR20130120070 A KR 20130120070A KR 20140046385 A KR20140046385 A KR 20140046385A
Authority
KR
South Korea
Prior art keywords
video data
coding unit
depth
information
motion information
Prior art date
Application number
KR1020130120070A
Other languages
English (en)
Other versions
KR102185200B1 (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 KR20140046385A publication Critical patent/KR20140046385A/ko
Application granted granted Critical
Publication of KR102185200B1 publication Critical patent/KR102185200B1/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
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24HFLUID HEATERS, e.g. WATER OR AIR HEATERS, HAVING HEAT-GENERATING MEANS, e.g. HEAT PUMPS, IN GENERAL
    • F24H1/00Water heaters, e.g. boilers, continuous-flow heaters or water-storage heaters
    • F24H1/18Water-storage heaters
    • F24H1/20Water-storage heaters with immersed heating elements, e.g. electric elements or furnace tubes
    • F24H1/201Water-storage heaters with immersed heating elements, e.g. electric elements or furnace tubes using electric energy supply
    • F24H1/202Water-storage heaters with immersed heating elements, e.g. electric elements or furnace tubes using electric energy supply with resistances
    • CCHEMISTRY; METALLURGY
    • C02TREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
    • C02FTREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
    • C02F1/00Treatment of water, waste water, or sewage
    • C02F1/02Treatment of water, waste water, or sewage by heating
    • C02F1/04Treatment of water, waste water, or sewage by heating by distillation or evaporation
    • C02F1/045Treatment of water, waste water, or sewage by heating by distillation or evaporation for obtaining ultra-pure water
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F22STEAM GENERATION
    • F22BMETHODS OF STEAM GENERATION; STEAM BOILERS
    • F22B1/00Methods of steam generation characterised by form of heating method
    • F22B1/28Methods of steam generation characterised by form of heating method in boilers heated electrically
    • F22B1/282Methods of steam generation characterised by form of heating method in boilers heated electrically with water or steam circulating in tubes or ducts
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24HFLUID HEATERS, e.g. WATER OR AIR HEATERS, HAVING HEAT-GENERATING MEANS, e.g. HEAT PUMPS, IN GENERAL
    • F24H9/00Details
    • F24H9/20Arrangement or mounting of control or safety devices
    • F24H9/2007Arrangement or mounting of control or safety devices for water heaters
    • F24H9/2014Arrangement or mounting of control or safety devices for water heaters using electrical energy supply
    • F24H9/2021Storage heaters
    • 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/128Adjusting depth or disparity
    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/547Motion estimation performed in a transform domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24DDOMESTIC- OR SPACE-HEATING SYSTEMS, e.g. CENTRAL HEATING SYSTEMS; DOMESTIC HOT-WATER SUPPLY SYSTEMS; ELEMENTS OR COMPONENTS THEREFOR
    • F24D2220/00Components of central heating installations excluding heat sources
    • F24D2220/04Sensors
    • F24D2220/048Level sensors, e.g. water level sensors
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24HFLUID HEATERS, e.g. WATER OR AIR HEATERS, HAVING HEAT-GENERATING MEANS, e.g. HEAT PUMPS, IN GENERAL
    • F24H2250/00Electrical heat generating means
    • F24H2250/02Resistances

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Mechanical Engineering (AREA)
  • Chemical & Material Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Thermal Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Water Supply & Treatment (AREA)
  • Organic Chemistry (AREA)
  • Sustainable Development (AREA)
  • Sustainable Energy (AREA)
  • Environmental & Geological Engineering (AREA)
  • Hydrology & Water Resources (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은, 비디오 데이터 디코딩 방법 및 비디오 데이터 디코딩 장치에 관한 것이다. 본 발명의 일 실시예는, 비디오 데이터와 상기 비디오 데이터에 대응하는 깊이정보 데이터를 포함하는 코딩된 3차원 비디오 데이터를 수신하고 파싱하는 단계; 상기 깊이정보 데이터로부터 상기 비디오 데이터의 코딩단위의 움직임 정보를 얻는 단계; 및 상기 움직임 정보에 기초하여 움직임 보상을 수행하고 상기 코딩단위가 포함된 상기 비디오 데이터와 상기 깊이정보 데이터에 따른 3차원 비디오 데이터를 복원하는 단계;를 포함하는 비디오 데이터 디코딩 방법을 제공한다.

Description

비디오 데이터 디코딩 방법 및 비디오 데이터 디코딩 장치{method and apparatus for decoding video data}
본 발명은, 비디오 데이터 디코딩 방법 및 비디오 데이터 디코딩 장치에 관한 것이다.
3차원 비디오는 3차원 입체 디스플레이 장치를 통해 사용자에게 실세계에서 보고 느끼는 것과 같은 입체감을 생생하게 제공한다. 이와 관련된 연구로써 여러 단체에서 3차원 비디오 코딩에 대한 연구를 진행 중이다. 3차원 비디오 코딩 방식은 실제 영상과 그것의 깊이정보 맵을 이용하여 스테레오스코픽 영상뿐만 아니라 오토스테레오스코픽 영상의 재생등을 지원할 수 있는 진보된 데이터 형식과 그에 관련된 기술에 대한 방식을 포함하고 있다.
본 발명의 목적은 3D 비디오 데이터에서 움직임 정보를 용이하게 산출할 수 있는 비디오 데이터 디코딩 방법 및 비디오 데이터 디코딩 장치를 제공하는 것이다.
본 발명의 목적은 비디오 데이터의 부호화 또는 복호화 시 데이터 처리 효율을 높일 수 있는 비디오 데이터 디코딩 방법 및 비디오 데이터 디코딩 장치를 제공하는 것이다.
본 발명의 다른 목적은, 비디오 데이터의 부호화 또는 복호화 시 메모리 효율을 높이고 복잡도를 감소시킬 수 있는 비디오 데이터 디코딩 방법 및 비디오 데이터 디코딩 장치를 제공하는 것이다.
본 발명의 일 실시예는, 다시점 비디오 데이터와 상기 비디오 데이터에 대응하는 깊이정보 데이터를 포함하는 코딩된 비디오 데이터를 수신하고 파싱하는 단계; 상기 깊이정보 데이터로부터 상기 코딩된 비디오 데이터의 코딩단위의 시점 간 예측을 위한 움직임 정보를 얻고, 상기 움직임 정보에 기초하여 시점 간 예측을 수행하는 단계; 및 상기 움직임 예측에 기초하여 상기 코딩단위가 포함된 상기 다시점 비디오 데이터와 상기 깊이정보 데이터에 따른 비디오 데이터를 복원하는 단계;를 포함하는 비디오 데이터 디코딩 방법을 제공한다.
상기 움직임 정보는, 상기 코딩단위가 참조하는 깊이정보 맵 픽쳐 및, 상기 코딩단위의 좌상측 샘플, 우상측 샘플, 좌하측 샘플, 및 우하측 샘플들의 위치정보 중 적어도 하나 이상의 위치정보에 기초하여 산출될 수 있다.
상기 움직임 정보는, 상기 깊이정보 맵 픽쳐의 뷰 식별자, 상기 코딩단위를 포함하는 픽쳐의 뷰 식별자를 더 이용하여 산출될 수 있다.
상기 움직임 정보는, 상기 코딩단위가 참조하는 깊이정보 맵 픽쳐 내의 깊이정보값의 최대 거리차를 이용하여 산출될 수 있다.
상기 비디오 데이터를 복원하는 단계는, 상기 비디오 데이터와 상기 비디오 데이터에 대응하는 깊이정보 데이터에 따른 디코딩 샘플들을 출력할 수 있다.
상기 코딩단위는, 매크로블록, 또는 HEVC에서 정의하는 코딩유닛(coding unit), 예측유닛(prediction unit) 및 변환유닛(transform unit)닛 중 어느 하나를 포함할 수 있다.
상기 움직임 정보를 얻는 단계는, 상기 코딩단위가 참조하는 상기 깊이정보 맵 픽쳐에 포함된 깊이정보 값을 이용하여 상기 코딩단위에 인접한 코딩단위들에 대한 움직임 정보를 산출할 수 있다.
본 발명의 다른 일 실시예는, 다시점 비디오 데이터와 상기 비디오 데이터에 대응하는 깊이정보 데이터를 포함하는 코딩된 비디오 데이터를 수신하고 파싱하는 수신부; 상기 깊이정보 데이터로부터 상기 코딩된 비디오 데이터의 코딩단위의 시점 간 예측을 위한 움직임 정보를 얻고, 상기 움직임 정보에 기초하여 시점 간 예측을 수행하는 예측부; 및 상기 움직임 예측에 기초하여 상기 코딩단위가 포함된 상기 다시점 비디오 데이터와 상기 깊이정보 데이터에 따른 비디오 데이터를 복원하는 복원부;를 포함하는 비디오 데이터 디코딩 장치를 제공한다.
본 발명에 따르면, 비디오 데이터에서 움직임 정보를 용이하게 산출할 수 있다.
본 발명에 따르면, 비디오 데이터의 부호화 또는 복호화 시 데이터 처리 효율을 높일 수 있는 비디오 데이터 디코딩 방법 및 비디오 데이터 디코딩 장치를 제공하는 것이다.
본 발명에 따르면, 비디오 데이터의 부호화 또는 복호화 시 메모리 효율을 높이고 복잡도를 감소시킬 수 있다.
본 발명에 따르면, Depth-based Motion Vector Prediction (DMVP) 방법을 사용할때, 하나의 깊이정보값을 임의의 영역 안에서 여러 블록들이 공유하여 움직임 정보를 유도하는 방법을 사용하여 깊이정보맵 블록의 깊이정보 값에 접근(Access)하기 위한 횟수를 크게 감소시켜서 메모리 효율을 크게 증가시키고 복잡도를 감소시키는 효과가 있다.
도 1은 3차원 비디오 시스템의 기본 구조와 데이터 형식을 나타낸다
도 2는 국제 표준화 기구인 MPEG의 3차원 비디오 부호화 표준에서 사용 중인 “balloons” 영상(a)과 그 깊이정보 맵(b)을 나타낸 도면
도 3은 H.264 부호화 구조도의 일 예를 나타낸 도면
도 4는 H.264의 복호화 구조도의 일 예를 나타낸 도면
도 5는 3D 비디오 인코더/디코더의 일 실시 예를 나타낸 도면
도 6은 비디오 데이터와 깊이정보 데이터의 참조관계를 예시한 도면
도 7은 현재 블록에 인접한 주변블록을 통해 움직임 정보를 유추하는 일 실시 예를 나타낸 도면
도 8은 16×16 블록에서의 본 발명의 일 실시예를 나타낸 도면
도 9는 16×16 블록이 8×8블록들로 나누어진 일 실시예를 나타낸 도면
도 10은 16×16 블록이 4×4블록들로 나누어진 일 실시예를 나타낸 도면
도 11은 영상 데이터에 대한 메모리 효율을 향상시키는 방법에 대한 실시 일예를 나타낸 도면
도 12는 깊이정보값을 사용하여 움직임정보를 도출하는 과정의 일 실시 예를 나타낸 도면
도 13은 현재 블록(실제 영상에서의 블록)에 대응되는 깊이정보맵 블록에서 깊이정보값을 얻기 위한 위치의 일 실시예를 나타낸 도면
도 14는 16×16 블록이 4×4 블록들로 나누어진 일 예를 나타낸 도면
도 15는 16×16 블록이 4×4 블록들로 나누어진 일 실시예를 나타낸 도면
도 16은 16×16 블록이 임의의 여러 형태의 블록들로 나누어진 일 실시예를 나타낸 도면
도 17은 16×16 블록이 동일한 여러 형태의 블록들로 나누어진 다른 실시예를 나타낸 도면
도 18은 현재 블록 X가 시점간 예측을 수행하는 실시 일 예를 나타낸 도면
도 19는 픽쳐 단위의 대표 깊이정보값들의 일 예를 나타낸 도면
도 20은 주어진 CU(혹은 TU) 깊이가 2인 경우, 본 발명의 실시예들을 적용하는 범위 결정 방식의 예를 나타낸 도면
도 21은 본 발명에 따른 비디오 데이터 디코딩 방법의 일 실시예를 예시한 도면
도 22는 본 발명에 따른 디코딩 장치의 일 실시예를 예시한 도면
도 23은 본 발명에 따른 인코딩 방법의 일 실시예를 예시한 도면
도 24는 본 발명에 따른 인코딩 장치의 일 실시예를 예시한 도면
이하 본 발명을 용이하게 설명할 수 있는 본 발명의 실시예를 상세히 설명한다.
도 1은 3차원 비디오 시스템의 기본 구조와 데이터 형식을 나타낸다.
3차원 비디오 표준에서 고려하고 있는 기본적인 3차원 비디오 시스템은 도 1과 같다. 송신 측에서는 스테레오 카메라, 깊이정보 카메라, 카메라, 2차원 영상을 3차원 영상으로 변환 등을 이용하여 N(N≥2) 시점의 영상 콘텐츠를 획득한다. 획득된 영상 콘텐츠에는 N 시점의 비디오 정보와 그것의 깊이정보 맵(Depth-map) 정보 그리고 카메라 관련 부가정보 등이 포함될 수 있다. N 시점의 영상 콘텐츠는 비디오 부호화 방법을 사용하여 압축되며, 압축된 비트스트림은 네트워크를 통해 단말로 전송된다.
수신 측에서는 전송받은 비트스트림을 비디오 복호화 방법을 사용하여 복호화하여 N 시점의 영상을 복원한다. 복원된 N 시점의 영상은 깊이정보 맵 기반 랜더링(DIBR; Depth-Image-Based Rendering) 과정에 의해 N 시점 이상의 가상시점 영상들을 생성한다. 생성된 N 시점 이상의 가상시점 영상들은 다양한 입체 디스플레이 장치에 맞게 재생되어 사용자에게 입체감이 있는 영상을 제공하게 된다.
가상시점 영상을 생성하는데 사용되는 깊이정보 맵은 실세계에서 카메라와 실제 사물(object) 간의 거리(실사 영상과 동일한 해상도로 각 화소에 해당하는 깊이정보)를 일정한 비트수로 표현한 것이다.
깊이정보 맵의 예로써, 도 2는 국제 표준화 기구인 MPEG의 3차원 비디오 부호화 표준에서 사용 중인 “balloons” 영상(도 2의 (a))과 그것의 깊이정보 맵(도 2의 (b))을 보여주고 있다. 실제 도 2의 깊이정보 맵은 화면에 보이는 깊이 정보를 화소당 8비트로 표현할 수 있다.
도 2는 “balloons” 영상의 실제 영상과 깊이정보 맵 영상의 일 예를 나타낸 것으로서, 도 2의 (a)는 실제 영상, 도 2의 (b)는 깊이정보 맵을 각각 나타낸다.
실제 영상과 그것의 깊이정보 맵을 부호화하는 방법의 일예로, 현재까지 개발된 비디오 부호화 표준 중에서 최고의 부호화 효율을 가지는 비디오 부호화 방법인 H.264/AVC(MPEG-4 Part 10 Advanced Video Coding)를 이용하여 부호화를 수행할 수 있으며, H.264의 부호화 구조도의 일 예는 도 3과 같다.
도 3은 H.264 부호화 구조도의 일 예를 나타낸다.
이 도면의 H.264 부호화 구조도에서 데이터를 처리하는 단위는 가로 세로 16x16화소 크기의 매크로블록(Macroblock)일 수 있고, 영상을 입력 받아 인트라(Intra) 모드 또는 인터(Inter) 모드로 부호화를 수행하고 비트스트림을 출력한다.
인트라 모드일 경우, 스위치가 인트라로 전환이 되며, 인터 모드일 경우에는 스위치가 인터로 전환이 된다. 부호화 과정의 주요한 흐름은 먼저 입력된 블록 영상에 대한 예측 블록을 생성한 후, 입력된 블록과 예측 블록의 차분을 구해 그 차분을 부호화하는 것이다.
먼저 예측 블록의 생성은 인트라 모드와 인터 모드에 따라 수행이 된다. 먼저 인트라 모드일 경우에는 인트라 예측 과정에서 현재 블록의 이미 부호화된 주변 화소값을 이용하여 공간적 예측으로 예측 블록을 생성하며, 인터 모드일 경우에는 움직임 예측 과정에서 참조 영상 버퍼에 저장되어 있는 참조 영상에서 현재 입력된 블록과 가장 매치가 잘 되는 영역을 찾아 움직임 벡터(Motion Vector)를 구한 후, 구한 움직임 벡터를 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성한다. 상기 설명한 것과 같이 현재 입력된 블록과 예측 블록의 차분을 구하여 잔여 블록(Residual Block)을 생성한 후, 이에 대한 부호화을 수행한다. 블록을 부호화하는 방법은 크게 인트라 모드와 인터 모드로 나누어진다. 예측 블록의 크기에 따라 인트라 모드일 경우에는 16x16, 8x8, 4x4 인트라 모드가 있을 수 있고, 인터 모드일 경우에는 16x16, 16x8, 8x16, 8x8 인터 모드로 나누어지고 8x8 인터모드일 경우에는 다시 8x8, 8x4, 4x8, 4x4 서브인터모드로 나누어진다.
잔여 블록에 대한 부호화는 변환, 양자화, 엔트로피(Entropy) 부호화의 순서로 수행이 된다. 먼저 16x16 인트라 모드로 부호화되는 블록은 차분 블록에 변환을 수행하여 변환계수를 출력하고, 출력된 변환계수 중에서 DC 계수만을 모아서 다시 하다마드 변환을 수행하여 하드마드 변환된 DC 계수를 출력한다. 16x16 인트라 모드를 제외한 다른 부호화 모드로 부호화되는 블록에서 변환 과정은 입력된 잔여 블록을 입력 받아 변환(Transform)을 수행하여 변환계수(Transform Coefficient)를 출력한다. 그리고 양자화 과정에서는 입력된 변환계수를 양자화 파라미터에 따라 양자화를 수행한 양자화된 계수(Quantized Coefficient)를 출력한다. 그리고 엔트로피 부호화 과정에서는 입력된 양자화된 계수를 확률 분포에 따른 엔트로피 부호화를 수행하여 비트스트림으로 출력된다.
H.264는 프레임간(Inter-frame) 예측 부호화를 수행하기 때문에 현재 부호화된 영상을 이후에 입력된 영상의 참조 영상으로 사용하기 위해 복호화하여 저장할 필요가 있다. 따라서 양자화된 계수를 역양자화과정과 역변환을 수행하여 예측 영상과 가산기를 통해 재구성된 블록을 생성한 다음 디블록킹 필터를 통해 부호화 과정에서 발생한 블록킹 현상(Blocking Artifact)을 제거한 후, 참조 영상 버퍼에 저장한다.
도 4는 H.264의 복호화 구조도의 일 예를 나타낸다.
이 도면의 H.264 복호화 구조도에서 데이터를 처리하는 단위는 가로 세로 16x16화소 크기의 매크로블록(Macroblock)이며, 비트스트림을 입력 받아 인트라(Intra) 모드 또는 인터(Inter) 모드로 복호화가 수행되어 재구성된 영상을 출력한다.
인트라 모드일 경우, 스위치가 인트라로 전환이 되며, 인터 모드일 경우에는 스위치가 인터로 전환이 된다. 복호화 과정의 주요한 흐름은 먼저 예측 블록을 생성한 후, 입력 받은 비트스트림을 복호화한 결과 블록과 예측 블록을 더하여 재구성된 블록을 생성하는 것이다. 먼저 예측 블록의 생성은 인트라 모드와 인터 모드에 따라 수행이 된다. 먼저 인트라 모드일 경우에는 인트라 예측 과정에서 현재 블록의 이미 부호화된 주변 화소값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성하며, 인터 모드일 경우에는 움직임 벡터를 이용하여 참조 영상 버퍼에 저장되어 있는 참조 영상에서 영역을 찾아 움직임 보상을 수행함으로써 예측 블록을 생성한다.
엔트로피 복호화 과정에서는 입력된 비트스트림을 확률 분포에 따른 엔트로피 복호화를 수행하여 양자화된 계수(Quantized Coefficient)를 출력한다. 양자화된 계수를 역양자화과정과 역변환을 수행하여 예측 영상과 가산기를 통해 재구성된 블록을 생성한 다음 디블록킹 필터를 통해 블록킹 현상(Blocking Artifact)를 제거한 후, 참조 영상 버퍼에 저장한다.
실제 영상과 그것의 깊이정보 맵을 부호화하는 또 다른 방법의 일 예로 현재 MPEG(Moving Picture Experts Group)과 VCEG(Video Coding Experts Group)에서 공동으로 표준화를 진행 중인 HEVC(High Efficiency Video Coding)를 사용할 수 있다. 이는 HD, UHD 영상뿐만 아니라 3D 방송 및 이동통신망에서도 현재보다 낮은 주파수로 고화질의 영상을 제공할 수 있다.
실제 영상과 그것의 깊이정보 맵을 부호화할 때, 서로 독립적으로 부호화/복호화할 수 있다. 또한 실제 영상과 깊이정보 맵을 부호화할 때, 도 5와 같이 서로 의존적으로 부호화/복호화 할 수 있다.
도 5는 3D 비디오 인코더/디코더의 일 실시 예를 나타낸다.
일 실시 예로, 이미 부호화된/복호화된 깊이정보맵을 이용하여 실제 영상을 부호화/복호화할 수 있으며, 반대로 이미 부호화된/복호화된 실제 영상을 이용하여 깊이정보맵을 부호화/복호화할 수 있다.
인코더에서 텍스쳐(texture)와 깊이정보맵은 서로의 정보에 따라 각각 텍스쳐인코더와 뎁스인코더에서 인코딩되어 비트스트림으로 출력된다.
반면에 디코더에서 수신된 비트스트림은 텍스쳐(texture)와 깊이정보맵은 서로의 정보에 따라 텍스처 디코더와 뎁스 인코더에서 각각 디코딩될 수 있다.
실제 영상과 그것의 깊이정보 맵은 카메라 하나뿐만 아니라 여러 개의 카메라에서 획득한 영상일 수 있다. 일 실시 예로, 카메라 3대에서 획득한 실제 영상과 그것의 깊이정보맵을 부호화하기 위한 부호화 예측 구조를 도 6에 나타내었다.
도 6에서 3개의 실제 영상을 시점에 따라 T0, T1, T2로 나타내었고, 실제 영상과 동일한 위치의 3개의 깊이정보맵을 시점에 따라 D0, D1, D2로 나타내었다. 각 픽쳐는 I(Intra Picture), P(Uni-prediction Picture), B(Bi-prediction Picture)로 부호화될 수 있다. 도 6에서 화살표는 예측 방향을 나타낸다. 즉, 실제 영상과 그것의 깊이정보맵은 서로 의존적으로 부호화/복호화된다.
도 6은 3D 비디오 코덱의 예측 구조의 일 예를 나타낸다.
실제 영상에서 현재 블록의 움직임 정보를 유추하기 위한 방법은 크게 시간적 예측과 시점간 예측으로 나뉜다. 여기서, 움직임 정보란, 움직임 벡터만을 의미할 수 있으며, 혹은 움직임벡터와 참조영상 번호와 단방향 예측인지 양방향 예측인지 그리고 시점간 예측인지 시간적 예측인지 또다른 예측인지를 의미할 수도 있다.
시간적 예측은 동일한 시점 내에서 시간적 상관성을 이용한 예측 방법이고, 시점간 예측은 인접한 시점에서 시점간 상관성을 이용한 예측 방법이다. 이러한 시간적 예측과 시점간 예측은 한 픽쳐에서 서로 혼용되어 사용될 수 있다.
도 7은 현재 블록에 인접한 주변블록을 통해 움직임 정보를 유추하는 일 실시 예를 나타낸다.
일 실시 예로, 이 도면에서와 같이 현재 블록이 시점간 예측을 사용하여 움직임 정보가 부호화/복호화 될 수 있다. 이 경우에는 먼저 현재 블록에 인접한 주변 블록(A, B, C, D)들이 시점간 예측에 사용하기 적합한지를 검사한다.
만일 현재 블록에 인접한 주변 블록(A, B, C, D)들이 시점간 예측에 사용하기 적합할 경우, 해당 블록의 움직임 정보들을 사용하여 현재 블록에 대한 움직임 정보를 유도한다. 만일 그렇지 않다면(현재 블록에 인접한 주변 블록(A, B, C, D)들이 시점간 예측에 사용하기 적합하지 않을 경우), 해당 블록(현재 블록에 인접한 주변 블록(A, B, C, D)들)의 움직임 정보는 다른 움직임 정보로 대치되어 사용된다. 이때 현재 블록에 인접한 주변 블록(A, B, C, D)들에 대응되는(일치하는) 깊이정보맵을 이용하여 다른 움직임 정보를 생성하는 Depth-based Motion Vector Prediction (DMVP) 방법을 사용할 수 있다.
이 방법은 현재 블록에 인접한 주변 블록(A, B, C, D)들에 대응되는(일치하는) 깊이정보맵 블록의 깊이정보 값들에서 최대값(max disparity)을 이용하여 현재 블록(실제 영상에서의 블록)을 위한 움직임 정보를 생성한다. 이는 깊이정보맵에서 깊이정보값이 시점간에서 객체의 거리 차이(disparity)를 나타낸다는 점을 이용한 것이다.
최종적으로 유도된 현재 블록에 인접한 주변 블록(A, B, C, D)들의 움직임 정보들을 이용하여 현재 블록(실제 영상에서의 블록)에 대한 움직임 정보를 유도한다. 실시 일 예로, 현재 블록에 인접한 주변 블록(A, B, C, D)들의 움직임 정보들 중에서 중간값(Median) 연산을 통해, 현재 블록(실제 영상에서의 블록)에 대한 움직임 정보를 유도할 수 있다.
또 다른 일 실시 예로, 현재 블록이 시간적 예측을 사용하여 부호화/복호화 될 수 있다. 이 경우에는 먼저 현재 블록에 인접한 주변 블록(A, B, C, D)들이 시점간 예측에 사용하기 적합한지를 검사한다. 만일 현재 블록에 인접한 주변 블록(A, B, C, D)들이 시점간 예측에 사용하기 적합할 경우, 해당 블록의 움직임 정보들을 사용한다. 만일 그렇지 않다면(현재 블록에 인접한 주변 블록(A, B, C, D)들이 시점간 예측에 사용하기 적합하지 않을 경우), 해당 블록의 움직임 정보는 영-백터(zero-vector)로 대치되어 사용된다.
Depth-based Motion Vector Prediction (DMVP) 방법을 사용하여 현재 블록에 인접한 주변 블록(A, B, C, D)들에 대응되는(일치하는) 깊이정보맵 블록의 깊이정보 값들에서 최대값(max disparity)을 얻기 위해서는 깊이정보맵 블록의 모든 깊이정보 값에 접근(Access)해야하며 각 깊이정보 맵 블록의 모든 깊이정보값들을 서로 비교하여야 한다. 이는 실제 영상을 부호화할 때 깊이정보맵이 요구되므로 실제 영상과 깊이정보맵 간의 의존성이 존재하게 된다.
도 8은 16×16 블록에서의 본 발명의 일 실시예를 나타낸다.
실시 일예로, 도 8의 왼쪽 블록(실제 영상에서의 블록)의 크기가 16 X 16 블록일 경우, 깊이정보 맵의 크기 또한 16 X 16 일수 있다. 따라서, 총 256번의 깊이정보 값에 접근(Access)해야 하고 또한 각 깊이정보값 간의 255번의 비교가 수행되어야 한다. 이는 깊이정보 맵의 모든 깊이정보 값에 접근해야 하므로 메모리 효율 및 복잡도 측면에서 비효율적이다. 이러한 문제를 해결하기 위한 방법으로 도 8의 오른쪽과 같이 16x16 블록의 256개의 깊이정보 값들 중에서 블록의 구석 4개의 깊이정보 값만을 사용하는 방법이 있을 수 있다.
이는 깊이정보 값을 접근(Access)하는 횟수를 기존 256에서 4개로 크게 감소시켜서 메모리 효율을 크게 증가시키며, 비교횟수 또한 255에서 3으로 크게 감소하여 복잡도를 감소시키는 효과가 있다.
하지만 16x16블록이 아닌 8x8 블록에서는 각각의 8x8 블록마다 4개의 깊이정보값을 사용해야 하므로 도 9와 같이 4개가 아닌 16개의 깊이정보 값에 접근하여 깊이정보 값들에서 최대값(max disparity)을 얻을 수 있다.
도 9는 16×16 블록이 8×8블록들로 나누어진 일 실시예를 나타내고, 도 10은 16×16 블록이 4×4블록들로 나누어진 일 실시예를 나타낸다.
또한, 4x4 블록에서는 각각의 4x4 블록마다 4개의 깊이정보 값을 사용해야 하므로 도 10과 같이 64개의 깊이정보 값에 접근하여 깊이 정보 값들의 최대값을 얻을 수 있다.
예를 들어 영상이 매우 복잡한 형태이고 움직임이 유동적인 영상의 경우, 하나의 16x16블록은 4x4 블록으로 나누어 부호화될 가능성이 높다. 따라서, 경우에 따라서 16 x 16 블록당 64개의 깊이정보 값을 접근(Access)해야 하므로 4x4 블록의 경우에는 메모리 효율 측면에서 비효율적이다.
본 발명에서는 도 10의 4x4 블록과 같이, 영상을 부호화/복호화 할 때 깊이 정보 값을 자주 접근해야 할 경우 메모리 효율을 향상시킬 수 있는 방법을 제안한다.
도 11은 영상 데이터에 대한 메모리 효율을 향상시키는 방법에 대한 실시 일예를 나타낸다. 이 도면의 영상 읽기”에서 영상 메모리에 존재하는 블록 크기(혹은 임의 형태)의 데이터를 읽어 오기 위한 메모리 접근의 횟수를 감소시키기 위하여, 블록 크기 전체의 데이터를 읽어오지 않고 위치 정보 및 기타 정보를 활용하여 블록에서 일부의 데이터만을 읽어오거나 블록에서 하나의 픽셀값만(혹은 하나 이상의 픽셀 값)을 읽어 올 수 있다.
또한, 이 도면의 “영상 쓰기”에서 영상 메모리에 블록 크기의 데이터를 쓰기 위한 메모리 접근의 횟수를 감소시키기 위하여, 블록 크기 전체에 대한 데이터를 쓰지 않고 하나의 픽셀값만(혹은 하나 이상의 픽셀값)과 위치 정보 및 기타 정보를 활용하여 블록 크기 전체에 대한 데이터를 쓸 수 있다.
또한, 본 발명에서는 DMVP(Depth-based Motion Vector Prediction) 방법을 사용할때, 깊이정보맵 블록의 깊이정보 값에 접근(Access)하기 위한 횟수를 크게 감소시켜서, 메모리 효율을 크게 증가시키고 복잡도를 감소시키는 방법을 제안한다.
도 12는 깊이정보값을 사용하여 움직임정보를 도출하는 과정의 일 실시 예를 나타낸다.
이 도면은 Depth-based Motion Vector Prediction (DMVP) 방법을 사용할 때, 깊이정보 값을 사용하여 현재 블록에 인접한 주변 블록들(혹은 현재 블록)의 움직임정보를 도출하는 과정을 나타낸다. 여기서 깊이정보 값을 유도하는 방법은 다양하게 적용할 수 있다.
실시 제 1 예로, 현재 블록(실제 영상에서의 블록)의 픽쳐와 시점이 동일한 깊이정보 맵에서, 현재 블록에 인접한 주변 블록(A, B, C, D)들에 대응되는 깊이정보 맵 블록 내의 깊이정보 값을 이용할 수 있다.
또 다른 실시 제 2 예로서, 현재 블록(실제 영상에서의 블록)의 픽쳐와 시점이 동일한 깊이정보 맵에서, 현재 블록(실제 영상에서의 블록)에 대응되는 깊이정보 맵 블록 내의 깊이정보 값을 이용할 수 있다.
또 다른 실시 제 3 예로서, 현재 블록(실제 영상에서의 블록)의 픽쳐와 시점이 다른(예를 들어 현재 시점과 인접한 시점) 깊이정보 맵에서, 현재 블록에 인접한 주변 블록(A, B, C, D)들에 대응되는 깊이정보 맵 블록 내의 깊이정보 값을 이용할 수 있으며, 이때 현재 블록에 인접한 주변 블록(A, B, C, D)들에 대응되는 깊이정보 맵 블록을 찾기 위해 깊이정보 맵에서 시점 간의 거리만큼 이동한 위치의 깊이정보 맵 블록을 사용할 수 있다.
또 다른 실시 제 4 예로서, 현재 블록(실제 영상에서의 블록)의 픽쳐와 시점이 다른(혹은 현재 시점과 인접한 시점) 깊이정보 맵에서 현재 블록(실제 영상에서의 블록)에 대응되는 깊이정보 맵 블록 내의 깊이정보 값을 이용할 수 있으며, 이때 현재 블록(실제 영상에서의 블록)에 대응되는 깊이정보 맵 블록을 찾기 위해 깊이정보 맵에서 시점 간의 거리만큼 이동한 위치의 깊이정보맵 블록을 사용할 수 있다.
또 다른 실시 제 5 예로서 깊이정보값을 유도하기 위해 깊이정보 맵을 사용하지 않고 실제 영상들간의 시점 간의 차이나 혹은 움직임 정보의 차이 등을 통해 깊이정보값과 유사한 값을 유도하여 그 값을 깊이정보 값으로 대체하여 사용할 수 있다. 또한, 깊이정보 값을 유도하지 않고 실제 영상들간의 시점 간의 차이나 혹은 움직임 정보의 차이 등을 통해 움직임 정보를 바로 유도할 수 있다.
도 13은 현재 블록(실제 영상에서의 블록)에 대응되는 깊이정보맵 블록에서 깊이정보값을 얻기 위한 위치의 일 실시예를 나타낸다.
우선 이 도면 같이 현재 블록에 인접한 주변 블록들(혹은 현재 블록) X에 대응되는 깊이정보맵 블록 X’에서 깊이정보값을 얻기 위한 위치는 A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S 와 같이 다양하게 선택될 수 있다.
또한 현재 블록에 인접한 주변 블록들(혹은 현재 블록) X에 대응되는 깊이정보맵 블록 X’의 주변블록들의 깊이정보 값들이 사용될 수 있다. 일 실시 예로, 현재 블록에 인접한 주변 블록들(혹은 현재 블록) X에 대응되는 깊이정보 맵 블록 X’와 인접한 왼쪽, 오른쪽, 위쪽, 아래쪽, 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래 블록들이 사용될 수 있다.
실시 일 예로, 이 도면의 현재 블록에 인접한 주변 블록들(혹은 현재 블록) X에 대응되는 깊이정보맵 블록(X')에서 여러 개의 깊이정보 값들 중에서 하나만 사용하여 움직임 정보를 유도할 수 있다. 이는 현재 블록에 인접한 주변 블록들(혹은 현재 블록)의 각 블록 당 하나의 깊이정보 값만을 사용하여 움직임 정보를 유도한다. 이 경우, 도 14와 같이 4 x 4블록마다 각각 하나의 깊이정보 값만을 접근하므로 16 x 16 블록 내에서 16개의 깊이정보 값에 접근한다.
도 14는 16×16 블록이 4×4 블록들로 나누어진 일 예를 나타낸다.
일반적으로 각 블록 마다 최하위 오른쪽 픽셀이 통계적으로 많이 선택이 되어서 비교연산 없이 각 블록마다 그 위치에 해당하는 깊이정보 값을 움직임 정보 유도에 사용할 수 있다.
또 다른 실시 일 예로, 하나의 깊이정보 값을 실제 영상의 임의의 영역(혹은 특정 영역) 안에서 여러 블록들이 공유하여 움직임 정보의 유도에 사용할 수 있다. 실시 일 예로, 실제 영상의 임의의 영역을 매크로블록(Macroblock) 단위로 지정할 수 있으며, 이 경우 매크로 블록이 여러 개의 블록의 나누어질 때 모든 블록이 하나의 깊이정보값을 사용하여 움직임 정보의 유도에 사용될 수 있다. 이러한 실제 영상의 임의의 영역은 매크로블록 단위 뿐만 아니라 서브 블록 단위가 될수 있으며, 또한 매크로 블록의 그룹 단위도 될수 있다. 또한 현재 현재 MPEG(Moving Picture Experts Group)과 VCEG(Video Coding Experts Group)에서 공동으로 표준화를 진행 중인 HEVC(High Efficiency Video Coding)의 경우에는 CU(Coding Unit)단위 혹은 PU(Prediction Unit) 단위 혹은 TU(Transform Unit) 단위 혹은 CU의 그룹 단위가 임의의 영역이 될 수 있다.
도 15는 16×16 블록이 4×4 블록들로 나누어진 일 실시예를 나타내고, 도 16은 16×16 블록이 임의의 여러 형태의 블록들로 나누어진 일 실시예를 나타내며, 도 17은 16×16 블록이 동일한 여러 형태의 블록들로 나누어진 다른 실시예를 나타낸다.
이러한 방법의 실시 일예로, 현재 블록에 인접한 주변 블록들(혹은 현재 블록)의 각 블록의 위치가 도 15에서와 같이 4x4블록들 중에 하나일 경우, 해당 블록(실제 영상에서의 블록)에 대응되는 깊이정보 맵 블록에서 각 4x4 블록단위에서의 사선의 음영 부분의 깊이정보 값을 사용하지 않고 16x16 영역의 오른쪽 아래 위치한 체크의 음영 부분의 깊이정보 값만을 서로 공유하여 사용할 수 있다.
이 경우, 도 15와 같이, 16개의 4x4블록들이 하나의 깊이정보 값만을 접근하기 때문에(16x16 블록 내에서 1개의 깊이정보 값에 접근하므로) 메모리 대역폭을 크게 감소시킬 수 있다. 또한 도 16과 같이, 현재 블록에 인접한 주변 블록들(혹은 현재 블록)의 각 블록이 임의의 여러 형태의 블록일 경우, 해당 블록(실제 영상에서의 블록)에 대응되는 깊이정보 맵 블록에서 각각의 블록 내의 사선의 음영 부분의 깊이정보 값을 사용하지 않고 16x16 영역의 오른쪽 아래 위치한 체크의 음영 부분의 깊이정보 값만을 서로 공유하여 모든 블록에서 사용할 수 있다.
또 다른 실시 일예로, 각 블록 마다 최하위 오른쪽 아래에 위치한 깊이정보 값들간의 상관관계를 조사하여 그 차이가 기준값보다 크지 않거나(또는 그 차이가 기준값 보다 크거나, 그 차이가 작으면), 임의 영역(일 예로 MB 단위)에서 최하위 오른쪽 아래 위치한 깊이정보 값을 각 블록의 대표 깊이정보 값으로 하여, 임의의 영역 내의 모든 블록이 해당 깊이정보 값을 공유하여 움직임 정보를 유도하는 데 사용할 수 있다.
현재 블록이 시점간 예측을 수행하고, 현재 블록에 인접한 주변 블록들이 모두 시간적 예측을 수행할 때(혹은 주변 블록이 유효하지 않거나 혹은 주변 블록이 화면 내 예측인 경우), 현재 블록에 인접한 주변 블록들은 모두 Depth-based Motion Vector Prediction (DMVP) 방법을 사용하여 움직임 정보를 유도할 수 있다.
도 18은 현재 블록 X가 시점간 예측을 수행하는 실시 일 예를 나타낸다. 실시 일 예로 이 도면에서 현재 블록 X가 시점간 예측을 수행하고 현재 블록 X의 주변 블록 A, B, C가 모두 시간적 예측을 수행할 경우(혹은 주변 블록이 유효하지 않거나 혹은 주변 블록이 화면 내 예측인 경우), 현재 블록 X의 주변 블록 A, B, C는 모두 Depth-based Motion Vector Prediction (DMVP) 방법을 사용하여 움직임 정보를 유도하게 된다. 이때 현재 블록 X의 주변 블록 A, B, C에서 오른쪽 아래에 있는 깊이정보값을 사용하여 움직임 정보를 유도할 수 있다.
또 다른 실시 일예로, 도 17과 같이 16 x 16 블록의 256개의 깊이정보 값들 중에서 블록의 구석 4개의(혹은 임의 위치의) 깊이정보 값 중에서 최대(혹은 최소 혹은 임의의 값이 될 수 있음) 깊이정보 값 중 하나만을 임의의 영역(혹은 특정 영역) 안에서 여러 블록들이 공유하여 움직임 정보의 유도에 사용할 수 있다.
실시 일 예로, 실제 영상의 임의의 영역을 매크로블록(Macroblock) 단위로 지정할 수 있으며, 이 경우 매크로 블록이 여러 개의 블록의 나누어질 때, 매크로블록에서 구석 4개의(혹은 임의 위치의 깊이정보값) 깊이 정보값 중에서 하나의 최대(혹은 최소 혹은 임의의 값이 될 수 있음) 깊이 정보값을 사용하여, 매크로블록 안의 모든 블록들이 움직임 정보의 유도에 공유하여 사용될 수 있다.
일반적으로 시점간 예측으로 부호화되는 블록은 도 18과 같이 배경보다는 객체일 경우가 많다. 반면, 배경 부분은 시간적 예측을 사용하여 부호화되는 경우가 많다. 하지만, 현재 블록 X에 시점간 예측을 위한 움직임 정보를 유도할 때, 현재 블록 X의 주변 블록 A, B, C 객체가 아닌 배경부분으로 그것의 깊이정보 맵 블록의 깊이정보 값으로 움직임 정보를 유도하게 되면, 객체가 아닌 배경 부분에 대한 움직임 정보가 유도될 수 있다. 이 경우 현재 블록 X에 대한 움직임 정보의 유도가 잘못되어 부호화 효율을 감소시킬 수 있다.
위와 같은 문제를 해결하고 부호화 효율을 증가시키기 위하여, 현재 블록 X가 시점간 예측을 사용하여 부호화/복호화되고 현재 블록 X의 주변 블록 A, B, C 시간적 예측을 사용할 경우(혹은 주변 블록이 유효하지 않거나 혹은 주변 블록이 화면 내 예측인 경우), 현재 블록 X의 시점간 움직임 정보의 유도를 위해 주변 블록 A, B, C에 대응되는 깊이정보 값을 사용하지 않고 현재 블록 X에 대응되는 깊이정보 값을 사용하여 현재 블록 X에 대한 움직임 정보를 유도할 수 있다.
실시 일예로, 현재 블록 X가 시점간 예측을 사용하여 부호화/복호화될 경우, 현재 블록 X의 주변 블록 A, B, C 가 모두 시간적 예측을 사용한다면(혹은 주변 블록이 유효하지 않거나 혹은 주변 블록이 화면 내 예측인 경우), 현재 블록 X에 대응되는 깊이정보 값을 사용하여 현재 블록 X에 대한 움직임 정보를 유도할 수 있다.
또 다른 실시 일예로, 현재 블록 X가 시점간 예측을 사용하여 부호화/복호화될 경우, 현재 블록 X의 주변 블록 A, B, C 중에서 시간적 예측을 사용하는 블록이 있다면(혹은 주변 블록이 유효하지 않거나 혹은 주변 블록이 화면 내 예측인 경우), 해당 블록에 대응되는 깊이정보 값을 사용하지 않고 현재 블록 X에 대응되는 깊이정보 값을 사용하여 현재 블록 X에 대한 움직임 정보를 유도할 수 있다.
Depth-based Motion Vector Prediction (DMVP) 방법을 사용할 때, 깊이정보 맵 블록의 깊이정보 값에 접근(Access)해야 하므로 실제 영상을 부호화할 때 깊이정보 맵에 접근하도록 할 수 있다.
따라서 실제 영상과 깊이정보 맵 간에 의존성이 존재하며, 이러한 의존성은 부호화시 지연(delay)을 유발할 수 있으며, 하드웨어 구현 측면에서도 비효율적일 수 있다. 따라서 이러한 의존성을 제거하기 위한 방법으로 움직임 정보를 유도하는데 사용되는 깊이정보값 몇 개를 픽쳐 단위로 시그널링하는 방법을 사용할 수 있다. 상기 방법들의 경우, 특정 영역 내에서 하나의 깊이정보 값을 공유한다. 이러한 특정 영역은 16 x 16 크기가 될수 있고, 32 x 32 크기가 될 수 있고 그 이상의 크기가 될 수 있다. 이러한 특정 영역을 픽쳐(혹은 슬라이스 혹은 임의의 영역) 단위로 확장하여 사용할 수 있으며, 픽쳐(혹은 슬라이스 혹은 임의의 영역) 단위에서 하나의 깊이정보값이 아닌 여러 개의 깊이정보값을 사용하여 움직임 정보를 유도할 수 있다.
도 19는 픽쳐 단위의 대표 깊이정보값들의 일 예를 나타낸다.
실시 일예로, 이 도면과 같이 픽쳐(혹은 슬라이스 혹은 임의의 영역) 단위에서 4개의 깊이정보 값을 사용할 수 있다. 이 경우, 픽쳐(혹은 슬라이스 혹은 임의의 영역) 내의 모든 블록은 각 블록에서의 깊이정보 값을 사용하지 않고 이 도면의 깊이정보 값을 사용하여 움직임 정보를 유도할 수 있다. 이때 각 블록에서 사용할 깊이정보 값을 설정하기 위하여 블록마다 인덱스를 시그널링할 수 있으며, 혹은 임의 영역마다 인덱스를 시그널링할 수 있다. 여기서 인덱스 시그널링으로 인한 비트량 증가를 최소화 하기 위해서 픽쳐(혹은 슬라이스 혹은 임의의 영역) 마다 깊이정보값을 하나(혹은 하나 이상)만 사용할 수 있으며, 하나만 사용할 경우 블록마다 시그널링하지 않아도 되므로 비트량 증가를 최소화할 수 있다.
또 다른 실시 일예로, 각 블록마다 선택되어진 깊이정보값을 인덱스 테이블로 만들어서 정보량을 더 줄일 수 있다. 또 다른 실시 일예로, 구성된 깊이정보 값 리스트에서 인덱스 번호가 낮은 순서에 있는 것(우선 순위가 높음)부터 차례대로 사용할 수 있으며, 이때 인덱스에 대한 시그널링을 하지 않을 수 있으며, 해당 깊이정보 값 리스트는 주변 블록의 정보(일예로, 부호화 모드, 움직임 정보 등)를 통해 블록 단위로 갱신되어 다음 블록에서 사용될 수 있다.
상술한 방법을 이용한 복호화 과정의 다른 일예를 나타내면 아래와 같다.
표 1은 움직임 벡터 예측에서 움직임 벡터에 대한 변경 프로세스를 나타낸다. 표 1을 참조하여 움직임 벡터를 산출하는 복호화 과정을 설명하면 다음과 같다.
Figure pat00001
표 1에서 ViewIdTo3DVAcquisitionParamIndex의 기능은 view_id[i]가 액티브 시퀀스 파라미터 셋의 viewId와 동알한 경우, i값을 리턴한다.
NdrInverse[i]는 선형 매핑 또는 비선형 매핑을 나타낼 수 있는데, 선형매핑의 경우 스케일이나 오프셋의 변경없이 입력에 따라 출력이 결정된다.
ZNear 또는 ZFar는 비선형 depth view component를 구성하는 뎁스 샘플의 범위를 나타낼 사용될 수 있다.
표 1에 따르면, 깊이정보 맵 픽쳐(뎁스 레퍼런스 뷰 컴포넌트)와 현재 매크로블록의 좌상단 위치 등을 이용하면, 현재 예측 블록에 해당하는 픽쳐의 시점의 식별자(view_id) 등을 이용하여 움직임 벡터를 산출할 수 있다.
Figure pat00002
마찬가지로 표 2에 따르면, 깊이정보 맵 픽쳐인 뎁스 레퍼런스 뷰 컴포넌트(depth reference view component)와 현재 매크로블록의 좌상단 위치 등을 이용하면, 현재 예측 블록에 해당하는 픽쳐의 시점의 식별자(view_id) 등을 이용하여 움직임 벡터(mv[0], mv[1])를 산출할 수 있다.
하나의 16×16 매크로블록이 4×4 블록으로 나누어 질 경우, 각각의 4×4 블록마다 4개의 깊이정보값을 사용해야하므로 메모리 접근 대역폭이 증가된다는 단점이 존재한다. 이러한 단점을 해결하기 위하여 DMVP(Depth-based Motion Vector Prediction) 방법을 특정 블록단위에서 사용하지 않게 할 수 있다. 실시 일예로, 4x4 블록에서 DMVP(Depth-based Motion Vector Prediction) 방법을 사용하지 않게 설정할 수 있다.
실시 일예로,4x4 블록에서 DMVP(Depth-based Motion Vector Prediction) 방법을 사용하지 않게 설정할 수 있다. 이 경우 해당 블록에 대한 움직임 벡터를 영 벡터(0,0)으로 설정하여 사용할 수 있다.
상술한 방법을 이용한 복호화 과정의 또 다른 일예를 나타내면 다음과 같다.
Figure pat00003
표 3에 따르면, 깊이정보 맵 픽쳐인 뎁스 레퍼런스 뷰 컴포넌트(depth reference view component)와 현재 매크로블록의 좌상단 위치 등을 이용하면, 현재 예측 블록에 해당하는 픽쳐의 시점의 식별자(view_id) 등을 이용하여 움직임 벡터(mv[0], mv[1])를 산출할 수 있다.
표 3에서 예시한 바와 같이 매크로블록과 같은 코딩단위에 대응되는 깊이정보 맵에서 최대 거리값(disparity) 함수를 찾아 리턴하면 움직임 정보(mv[0], mv[1])을 산출할 수 있다.
상술한 방법은 현재 MPEG(Moving Picture Experts Group)과 VCEG(Video Coding Experts Group)에서 공동으로 표준화를 진행 중인 HEVC(High Efficiency Video Coding)를 사용할 수 있다.
따라서 상술한 방법은 도 20의 예와 같이 블록 크기 혹은 CU(Coding Uint) 깊이 혹은 TU(Transform Unit) 깊이 등에 따라 적용 범위를 달리할 수 있다.
도 20은 주어진 CU(혹은 TU) 깊이가 2인 경우, 본 발명의 실시예들을 적용하는 범위 결정 방식의 예(O: 해당 깊이에 적용, X: 해당 깊이에 적용하지 않음.)를 나타낸다. 이렇게 적용 범위를 결정하는 변수(즉, 크기 혹은 깊이 정보)는 부호화기 및 복호화기가 미리 정해진 값을 사용하도록 설정할 수도 있고, 프로파일 또는 레벨에 따라 정해진 값을 사용하도록 할 수도 있고, 부호화기가 변수 값을 비트스트림에 기재하면 복호화기는 비트스트림으로부터 이 값을 구하여 사용할 수도 있다. CU 깊이에 따라 적용 범위를 달리하는 할 때는 이 도면에 예시한 바와 같이, 방식A) 주어진 깊이 이상의 깊이에만 적용하는 방식, 방식B) 주어진 깊이 이하에만 적용하는 방식, 방식C) 주어진 깊이에만 적용하는 방식이 있을 수 있다.
상술한 방법을 이용한 복호화 과정의 또 다른 일례를 나타내면 아래와 같다.
Figure pat00004
깊이정보 맵 픽쳐인 뎁스 레퍼런스 뷰 컴포넌트(depth reference view component)와 현재 매크로블록(또는 CU)의 좌상단 위치 등을 이용하면, 현재 예측 블록(또는 CU)에 해당하는 픽쳐의 시점의 식별자(view_id) 등을 이용하여 움직임 벡터(mv[0], mv[1])를 산출할 수 있다.
모든 깊이에 대하여 본 발명의 방법들을 적용하지 않는 경우는 임의의 지시자(flag)를 사용하여 나타낼 수도 있고, CU 깊이의 최대값보다 하나 더 큰 값을 적용범위를 나타내는 CU 깊이 값으로 시그널링 함으로써 표현할 수도 있다.
본 발명의 추가적인 특징으로, 상술한 방법의 적용 여부는 비트스트림에 포함할 수 있으며, SPS(Sequence Parameter Set), PPS(Picture Parameter Set), 슬라이스 헤더 신택스(Slice Header Syntax)에 아래와 같은 시맨틱스(Semantics)로 적용될 수 있다.
표 5은 SPS에 적용된 일 예, 표 6는 PPS에 적용된 일 예, 표 7은 슬라이스 헤더 신택스에 적용된 일 예, 표 8은 슬라이스 헤더 신택스에 적용된 다른 예를 나타낸다.
표 5는 코딩된 비디오 데이터 중 PS_RBSP의 신택스의 일 예를 나타낸다.
Figure pat00005
표 5에서 SPS_RBSP의 신택스에 따라 코딩된 비디오 데이터는 다음과 같은 정보를 포함할 수 있다.
profile_idc는 코딩된 비디오 데이터의 코딩 프로파일에 대한 식별정보를 나타낸다.
level_idc는 코딩된 비디오 데이터 특정 레벨 또는 그보다 작은 레벨을 나타낸다.
dmvp_enabled_flag는 코딩 블록 또는 코딩 단위의 크기에 따라 해당 코딩 블록 또는 코딩 단위의 깊이정보 맵의 대표을 사용하도록 하는 필드이다. 상세한 예는 후술한다.
표 6은 코딩된 비디오 데이터 중 PPS_RBSP의 신택스의 일 예를 나타낸다.
Figure pat00006
표 6에서 PPS_RBSP의 신택스에 따라 코딩된 비디오 데이터는 다음과 같은 정보를 포함할 수 있다.
pic_parameter_set_id는 슬라이스 헤더에 참조되는 픽쳐 파라미터 셋을 식별한다.
seq_parameter_set_id는 픽처 파라미터 세트 내의 신택스 엘레먼트에 대한 액티브 시퀀스 파라마터 셋을 참조하는 식별자이다.
entropy_coding_mode_flag는 신택스 엘레먼트에 적용되는 엔트로피 코딩 방법을 나타낸다.
dmvp_enabled_flag는 코딩 블록 또는 코딩 단위의 크기에 따라 해당 코딩 블록 또는 코딩 단위의 깊이정보 맵의 대표을 사용하도록 하는 필드이다. 상세한 예는 후술한다.
표 7은 코딩된 비디오 데이터 중 슬라이스 헤더 신택스의 일 예를 나타낸다.
Figure pat00007
표 7에서 슬라이스 헤더의 신택스에 따라 코딩된 비디오 데이터는 다음과 같은 정보를 포함할 수 있다.
slice_type는 슬라이스의 코딩 타입을 나타낸다.
pic_parameter_set_id는 사용되는 픽쳐 파라미터 셋을 나타낸다.
frame_num는 픽쳐 식별자로 사용될 수 있는 필드이다.
dmvp_disabled_info는 코딩 블록 또는 코딩 단위의 크기에 따라 해당 코딩 블록 또는 코딩 단위의 깊이정보 맵의 대표을 사용하도록 하는 필드이다. 상세한 예는 후술한다.
표 8은 코딩된 비디오 데이터 중 슬라이스 헤더 신택스의 다른 일 예를 나타낸다.
Figure pat00008
lightweight_slice_flag가 아닌 경우 표 7에 포함된 신택스에 따른 값들이 비디오 데이터에 포함된다.
위와 마찬가지로 dmvp_disabled_info는 코딩 블록 또는 코딩 단위의 크기에 따라 해당 코딩 블록 또는 코딩 단위의 깊이정보 맵의 대표을 사용하도록 하는 필드이다.
위의 표들의 예에서 “dmvp_enabled_flag”는 DMVP(Depth-based Motion Vector Prediction) 방법의 적용 여부를 알려준다. 여기서 DMVP(Depth-based Motion Vector Prediction) 방법이 적용되었을 경우 “dmvp_enabled_flag”가 ‘1’이 되며, 적용되지 않았을 경우 “dmvp_enabled_flag”가 ‘0’이 된다. 그 반대도 가능하다.
또한, “dmvp_disabled_ info”는 DMVP(Depth-based Motion Vector Prediction) 방법이 적용되었을 경우(혹은 “dmvp_enabled_flag”이 참일 경우) 활성화되는 신택스(syntax)로써, 이는 CU의 깊이(depth) (혹은 CU의 크기(size) 혹은 매크로 블록의 크기 혹은 서브 매크로 블록의 크기 혹은 블록의 크기)에 따라 DMVP(Depth-based Motion Vector Prediction) 방법의 적용 여부를 알려준다. 하나의 일 예로, “dmvp_disabled_info”가 ‘0’일 경우에는 DMVP(Depth-based Motion Vector Prediction) 방법이 모든 블록 크기에 적용될 수 있다. 또한 “dmvp_disabled_info”가 ‘1’일 경우에는 DMVP(Depth-based Motion Vector Prediction) 방법이 4x4 블록 크기보다 큰 단위에만 적용할 수 있다. 또 다른 일 예로, “dmvp_disabled_ info”가 ‘2’일 경우에는 DMVP(Depth-based Motion Vector Prediction) 방법이 8x8 블록 키그보다 큰 단위에만 적용할 수 있다. 혹은 그 역도 가능하다. 예를 들어 “dmvp_disabled_info”가 ‘1’일 경우에는
DMVP(Depth-based Motion Vector Prediction) 방법이 4x4 블록 크기보다 작은 단위에만 적용할 수 있다. 이러한 “dmvp_disabled_info” 신택스(syntax)의 사용 방법은 다양하게 적용할 수 있다.
도 21은 본 발명에 따른 비디오 데이터 디코딩 방법의 일 실시예를 예시한 도면이다. 도 21을 참조하여 본 발명에 따른 비디오 데이터 디코딩 방법의 일 실시예를 설명하면 다음과 같다.
비디오 데이터와 상기 비디오 데이터에 대응하는 깊이정보 데이터를 포함하는 비디오 데이터를 수신하고 파싱한다(S110). 여기서 비디오 데이터는 3D-AVC에 따른 비디오 데이터일 수도 있고, 다시점(multi-view) 비디오 데이터일 수도 있다. 이하에서는 편의상 비디오 데이터로 호칭한다.
도 5에서 예시한 바와 같이 비디오 데이터(texture)와 그에 대응하는 깊이정보 데이터(depth)를 포함하는 비디오의 비트스트림이 디코더로 수신되면, 디코더는 해당 비디오의 비트스트림을 코딩된 신택스에 따라 파싱할 수 있다. 도 2 또는 도 6과 같이 비디오 데이터와 깊이정보 데이터는 대응될 수 있다.
깊이정보 데이터로부터 상기 코딩된 비디오 데이터의 코딩단위의 시점 간 예측을 위한 움직임 정보를 얻고, 상기 움직임 정보에 기초하여 시점 간 예측을 수행한다(S120).
코딩단위는, 매크로블록, 또는 HEVC에서 정의하는 코딩유닛(coding unit), 예측유닛(prediction unit) 및 변환유닛(transform unit)을 포함할 수 있다.
도 8 내지 도 10 및 도 14 내지 도 17는 해당 코딩단위의 움직임 예측을 위한 움직임 정보를 산출하기 위해 코딩단위가 참조하는 깊이정보 맵 픽쳐 중에서, 대응하는 코딩단위의 어떤 위치의 깊이정보값을 이용해야 하는지에 대한 예들을 개시하였다.
움직임 정보를 얻는 과정은 표 1 내지 표 4에 예시하였다.
예를 들어 움직임 정보는, 코딩단위가 참조하는 깊이정보 데이터 내의 깊이정보 맵 픽쳐 및 코딩단위의 좌상측 샘플, 우상측 샘플, 좌하측 샘플, 및 우하측 샘플들의 위치정보 중 적어도 하나 이상을 이용하여 산출될 수 있다.
또한, 움직임 정보는, 깊이정보 맵 픽쳐의 뷰 식별자, 및 코딩단위를 포함하는 픽쳐의 뷰 식별자를 더 이용하여 산출될 수 있다.
다른 예로서, 움직임 정보는 코딩단위가 참조하는 깊이정보 맵 픽쳐 내의 깊이정보값의 최대 거리차를 이용하여 산출할 수도 있다.
도 18에서 예시하였듯이 코딩단위가 참조하는 상기 깊이정보 맵 픽쳐에 포함된 깊이정보 값을 이용하여 코딩단위에 인접한 코딩단위들에 대한 움직임 정보를 산출할 수 있다.
그리고 도 16에서 예시하였듯이 코딩단위의 움직임 정보를 얻은 경우, 상기 코딩단위의 움직임 정보를 이용하여 상기 코딩단위에 포함된 서브코딩단위의 움직임정보를 산출할 수도 있다.
움직임 예측에 기초하여 상기 코딩단위가 포함된 상기 다시점 비디오 데이터와 상기 깊이정보 데이터에 따른 비디오 데이터를 복원한다(S130). 복원된 비디오 데이터는, 비디오 데이터와 비디오 데이터에 대응하는 깊이정보 데이터에 따른 디코딩 샘플들로 출력될 수 있다.
도 22는 본 발명에 따른 디코딩 장치의 일 실시예를 예시한 도면이다.
본 발명에 따른 디코딩 장치의 일 실시예는 도 4 또는 도 5의 오른쪽 도면에 따를 수 있다.
본 발명에 따른 디코딩 장치의 일 실시예는, 수신부(110), 예측부(120) 및 복원부(130)를 포함할 수 있다.
수신부(110)는 비디오 데이터와 비디오 데이터에 대응하는 깊이정보 데이터를 포함하는 비디오 데이터를 수신하고 파싱할 수 있다. 수신부는 수신한 데이터를 엔트로피디코딩, 역양자화, 역변환과정을 수행할 수 있다
수신부(110)는, 도 5에서 예시한 바와 같이 다시점 비디오 데이터(texture)와 그에 대응하는 깊이정보 데이터(depth)를 포함하는 비디오의 비트스트림이 디코더로 수신되면, 디코더는 해당 비디오의 비트스트림을 코딩된 신택스에 따라 파싱할 수 있다.
예측부(120)는 인트라 모드 또는 인터 모드에 따라 참조 영상을 이용하여 움직임 정보를 산출하고 그에 따라 움직임 예측을 수행할 수 있다. 예측부(120)는 깊이정보 데이터로부터 상기 다시점 비디오 데이터의 코딩단위의 움직임 예측을 위한 움직임 정보를 얻을 수 있다.
코딩단위는, 매크로블록, 또는 HEVC에서 정의하는 코딩유닛(coding unit), 예측유닛(prediction unit) 및 변환유닛(transform unit)을 포함할 수 있다.
도 8 내지 도 10 및 도 14 내지 도 17는 예측부(120)가 해당 코딩단위의 시점 간 예측을 위한 움직임 정보를 산출하기 위해 코딩단위가 참조하는 깊이정보 맵 픽쳐 중에서, 대응하는 코딩단위의 어떤 위치의 깊이정보값을 이용해야 하는지에 대한 예들을 개시하였다.
예측부(120)가 움직임 정보를 얻는 과정의 예는 표 1 내지 표 4에 예시하였다. 예를 들어 움직임 정보는, 코딩단위가 참조하는 깊이정보 데이터 내의 깊이정보 맵 픽쳐 및 코딩단위의 좌상측 샘플, 우상측 샘플, 좌하측 샘플, 및 우하측 샘플들의 위치정보 중 적어도 하나 이상을 이용하여 산출될 수 있다. 또한, 움직임 정보는, 깊이정보 맵 픽쳐의 뷰 식별자, 및 코딩단위를 포함하는 픽쳐의 뷰 식별자를 더 이용하여 산출될 수 있다. 다른 예로서, 예측을 위한 움직임 정보는 코딩단위가 참조하는 깊이정보 맵 픽쳐 내의 깊이정보값의 최대 거리차를 이용하여 산출할 수도 있다.
도 18에서 예시하였듯이 예측부(120)는 코딩단위가 참조하는 상기 깊이정보 맵 픽쳐에 포함된 깊이정보 값을 이용하여 코딩단위에 인접한 코딩단위들에 대한 움직임 정보를 산출할 수 있다.
그리고 예측부(120)는 도 16에서 예시하였듯이 코딩단위의 움직임 정보를 얻은 경우, 상기 코딩단위의 움직임 정보를 이용하여 상기 코딩단위에 포함된 서브코딩단위의 움직임정보를 산출할 수도 있다.
복원부(130)는, 비디오 데이터에 대한 움직임을 보상하고, 예측에 기초하여 코딩단위가 포함된 비디오 데이터와 깊이정보 데이터에 따른 비디오 데이터를 복원할 수 있다.
도 23은 본 발명에 따른 인코딩 방법의 일 실시예를 예시한 도면이다. 이 도면을 참고하여 본 발명에 따른 인코딩 방법의 일 실시예를 설명하면 다음과 같다.
다시점 비디오 데이터와 상기 다시점 비디오 데이터에 대응하는 깊이정보 데이터를 각각 인코딩한다(S210).
다시점 비디오 데이터를 코딩단위로 인코딩할 경우, 다시점 비디오 데이터의 뷰 식별자를 이용하여 깊이정보 데이터의 깊이정보 맵 픽쳐를 참조할 수 있다. 코딩단위는, 매크로블록, 또는 HEVC에서 정의하는 코딩유닛(coding unit), 예측유닛(prediction unit) 및 변환유닛(transform unit)을 포함할 수 있다.
예를 들어, 코딩효율을 높이기 위해 해당 뷰 식별자에 따른 깊이정보의 데이터로부터 그 코딩단위가 참조하는 깊이정보 맵 픽쳐 및, 상기 코딩단위의 좌상측 샘플, 우상측 샘플, 좌하측 샘플, 및 우하측 샘플들의 위치정보 중 적어도 하나 이상의 위치정보에 기초하여 움직임 정보를 산출할 수 있다. 움직임 정보는, 깊이정보 맵 픽쳐의 뷰 식별자, 및 코딩단위를 포함하는 픽쳐의 뷰 식별자를 더 이용하여 산출될 수 있다. 움직임 정보는 코딩단위가 참조하는 깊이정보 맵 픽쳐 내의 깊이정보값의 최대 거리차를 이용하여 산출할 수도 있다.
다시점 비디오 데이터와 상기 다시점 비디오 데이터에 대응하는 깊이정보 데이터가 인코딩되면 움직임 정보를 이용하여 시점 간 예측된 데이터와 코딩단위의 차이인 잔여 데이터(residual data)만을 인코딩할 수 있다.
인코딩된 데이터는 예시한 신택스에 따라 비트스트림으로 출력될 수 있다(S220).
도 5에서 예시한 바와 같이 코딩된 다시점 비디오 데이터와 깊이정보 데이터가 다중화되어 비트스트림으로 전송될 수 있다.
전송된 데이터는 각각 해당 전송 데이터에 따라 표 5 내지 표 8의 신택스에 따른 비디오 데이터에 따를 수 있다.
도 24는 본 발명에 따른 인코딩 장치의 일 실시예를 예시한 도면이다. 이 도면을 참고하여 본 발명에 따른 인코딩 장치의 일 실시예를 설명하면 다음과 같다. 도 5에 예시한 바와 유사하게 본 발명에 따른 인코딩 장치의 일 실시예는 인코딩부(210) 및 출력부(220)를 포함한다.
인코딩부(210)는 다시점 비디오 데이터와 상기 다시점 비디오 데이터에 대응하는 깊이정보 데이터를 각각 인코딩한다.
인코딩부(210)가 다시점 비디오 데이터를 코딩단위로 인코딩할 경우, 다시점 비디오 데이터의 뷰 식별자를 이용하여 깊이정보 데이터의 깊이정보 맵 픽쳐를 참조할 수 있다. 코딩단위는, 매크로블록, 또는 HEVC에서 정의하는 코딩유닛(coding unit), 예측유닛(prediction unit) 및 변환유닛(transform unit)을 포함할 수 있다.
도 8 내지 도 10 및 도 14 내지 도 17는 해당 코딩단위의 움직임 예측을 위한 움직임 정보를 산출하기 위해 코딩단위가 참조하는 깊이정보 맵 픽쳐 중에서, 대응하는 코딩단위의 어떤 위치의 깊이정보값을 이용해야 하는지에 대한 예들을 개시하였다.
인코딩부(210)는 다시점 비디오 데이터의 뷰 식별자에 따라 깊이정보의 데이터로부터 그 코딩단위가 참조하는 깊이정보 맵 픽쳐 및, 상기 코딩단위의 좌상측 샘플, 우상측 샘플, 좌하측 샘플, 및 우하측 샘플들의 위치정보 중 적어도 하나 이상의 위치정보에 기초하여 움직임 정보를 산출하고, 산출한 움직임 정보를 이용하여 시점 간 예측을 수행할 수 있다. 움직임 정보는 코딩단위가 참조하는 깊이정보 맵 픽쳐 내의 깊이정보값의 최대 거리차를 이용하여 산출될 수도 있다.
인코딩부(210)는 코딩단위의 잔여 데이터(residual data)만을 코딩할 수 있다.
출력부(220)는 코딩된 데이터가 SPS, PPS, 슬라이스 등 인지에 따라 표 5 내지 표 8의 신택스에 의한 다시점 비디오 데이터와 상기 다시점 비디오 데이터에 대응하는 깊이정보 데이터를 출력할 수 있다.
도 5에서 예시한 바와 같이 다시점 비디오 데이터(texture)와 그에 대응하는 깊이정보 데이터(depth)를 포함하는 비디오의 비트스트림이 디코더로 수신되면, 디코더는 해당 비디오의 비트스트림을 코딩된 신택스에 따라 파싱할 수 있다. 도 2 또는 도 6과 같이 비디오 데이터와 깊이정보 데이터는 대응될 수 있다.
110: 수신부
120: 예측부
130: 복원부
210: 인코딩부
220: 출력부

Claims (15)

  1. 다시점 비디오 데이터와 상기 비디오 데이터에 대응하는 깊이정보 데이터를 포함하는 코딩된 비디오 데이터를 수신하는 단계;
    상기 깊이정보 데이터로부터 상기 코딩된 비디오 데이터의 코딩단위의 시점 간 예측을 위한 움직임 정보를 얻고, 상기 움직임 정보에 기초하여 시점 간 예측을 수행하는 단계; 및
    상기 움직임 예측에 기초하여 상기 코딩단위가 포함된 상기 다시점 비디오 데이터와 상기 깊이정보 데이터에 따른 비디오 데이터를 복원하는 단계;를 포함하는 비디오 데이터 디코딩 방법.
  2. 제 1항에 있어서,
    상기 움직임 정보는,
    상기 코딩단위가 참조하는 깊이정보 맵 픽쳐 및, 상기 코딩단위의 좌상측 샘플, 우상측 샘플, 좌하측 샘플, 및 우하측 샘플들의 위치정보 중 적어도 하나 이상의 위치정보에 기초하여 산출되는, 비디오 데이터 디코딩 방법.
  3. 제 2항에 있어서,
    상기 움직임 정보는,
    상기 깊이정보 맵 픽쳐의 뷰 식별자, 또는 상기 코딩단위를 포함하는 픽쳐의 뷰 식별자를 더 이용하여 산출되는 비디오 데이터 디코딩 방법.
  4. 제 1항에 있어서,
    상기 움직임 정보는,
    상기 코딩단위가 참조하는 깊이정보 맵 픽쳐 내의 깊이정보값의 최대 거리차를 이용하여 산출되는 비디오 데이터 디코딩 방법.
  5. 제 1항에 있어서,
    상기 비디오 데이터를 복원하는 단계는,
    상기 비디오 데이터와 상기 비디오 데이터에 대응하는 깊이정보 데이터에 따른 디코딩 샘플들을 출력하는, 비디오 데이터 디코딩 방법.
  6. 제 1항에 있어서,
    상기 코딩단위는
    매크로블록, 또는 HEVC에서 정의하는 코딩유닛(coding unit), 예측유닛(prediction unit) 및 변환유닛(transform unit)닛 중 어느 하나를 포함하는 비디오 데이터 디코딩 방법.
  7. 제 1항에 있어서,
    상기 움직임 정보를 얻는 단계는,
    상기 코딩단위가 참조하는 상기 깊이정보 맵 픽쳐에 포함된 깊이정보 값을 이용하여 상기 코딩단위에 인접한 코딩단위들에 대한 움직임 정보를 산출하는, 비디오 데이터 디코딩 방법.
  8. 제 1항에 있어서,
    상기 움직임 정보를 얻는 단계는,
    상기 코딩단위의 움직임 정보를 얻은 경우, 상기 코딩단위의 움직임 정보를 이용하여 상기 코딩단위에 포함된 서브코딩단위의 움직임정보를 산출하는 단계를 더 포함하는 비디오 데이터 디코딩 방법.
  9. 다시점 비디오 데이터와 상기 비디오 데이터에 대응하는 깊이정보 데이터를 포함하는 코딩된 비디오 데이터를 수신하고 파싱하는 수신부;
    상기 깊이정보 데이터로부터 상기 코딩된 비디오 데이터의 코딩단위의 시점 간 예측을 위한 움직임 정보를 얻고, 상기 움직임 정보에 기초하여 시점 간 예측을 수행하는 예측부; 및
    상기 움직임 예측에 기초하여 상기 코딩단위가 포함된 상기 다시점 비디오 데이터와 상기 깊이정보 데이터에 따른 비디오 데이터를 복원하는 복원부;를 포함하는 비디오 데이터 디코딩 장치.
  10. 제 9항에 있어서,
    상기 예측부는,
    상기 코딩단위가 참조하는 깊이정보 맵 픽쳐 및, 상기 코딩단위의 좌상측 샘플, 우상측 샘플, 좌하측 샘플, 및 우하측 샘플들의 위치정보 중 적어도 하나 이상의 위치정보에 기초하여 상기 코딩단위를 산출하는, 비디오 데이터 디코딩 장치.
  11. 제 10항에 있어서,
    상기 예측부는,
    상기 깊이정보 맵 픽쳐의 뷰 식별자, 또는 상기 코딩단위를 포함하는 픽쳐의 뷰 식별자를 더 이용하여 상기 움직임 정보를 산출하는 비디오 데이터 디코딩 장치.
  12. 제 10항에 있어서,
    상기 예측부는,
    상기 코딩단위가 참조하는 깊이정보 맵 픽쳐 내의 깊이정보값의 최대 거리차를 이용하여 상기 움직임 정보를 산출하는 비디오 데이터 디코딩 장치.
  13. 제 10항에 있어서,
    상기 복원부는,
    상기 비디오 데이터와 상기 비디오 데이터에 대응하는 깊이정보 데이터를 포함하는 디코딩 샘플들을 출력하는, 비디오 데이터 디코딩 장치.
  14. 제 9항에 있어서,
    상기 예측부는,
    상기 코딩단위가 참조하는 상기 깊이정보 맵 픽쳐에 포함된 깊이정보 값을 이용하여 상기 코딩단위에 인접한 코딩단위들에 대한 움직임 정보를 산출하는 비디오 데이터 디코딩 장치.
  15. 제 9항에 있어서,
    상기 예측부는,
    상기 코딩단위의 움직임 정보를 얻은 경우, 상기 코딩단위의 움직임 정보를 이용하여 상기 코딩단위에 포함된 서브코딩단위의 움직임정보를 산출하는, 비디오 데이터 디코딩 장치.
KR1020130120070A 2012-10-09 2013-10-08 비디오 데이터 디코딩 방법 및 비디오 데이터 디코딩 장치 KR102185200B1 (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
KR20120112063 2012-10-09
KR1020120112063 2012-10-09
KR20120114096 2012-10-15
KR1020120114096 2012-10-15
KR1020130006176A KR20140048783A (ko) 2012-10-09 2013-01-18 깊이정보값을 공유하여 움직임 정보를 유도하는 방법 및 장치
KR1020130006176 2013-01-18
KR1020130006727 2013-01-21
KR1020130006727A KR20140048784A (ko) 2012-10-09 2013-01-21 제한적 깊이정보값을 공유하여 움직임 정보를 유도하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20140046385A true KR20140046385A (ko) 2014-04-18
KR102185200B1 KR102185200B1 (ko) 2020-12-01

Family

ID=50654724

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020130006176A KR20140048783A (ko) 2012-10-09 2013-01-18 깊이정보값을 공유하여 움직임 정보를 유도하는 방법 및 장치
KR1020130006727A KR20140048784A (ko) 2012-10-09 2013-01-21 제한적 깊이정보값을 공유하여 움직임 정보를 유도하는 방법 및 장치
KR1020130120070A KR102185200B1 (ko) 2012-10-09 2013-10-08 비디오 데이터 디코딩 방법 및 비디오 데이터 디코딩 장치

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020130006176A KR20140048783A (ko) 2012-10-09 2013-01-18 깊이정보값을 공유하여 움직임 정보를 유도하는 방법 및 장치
KR1020130006727A KR20140048784A (ko) 2012-10-09 2013-01-21 제한적 깊이정보값을 공유하여 움직임 정보를 유도하는 방법 및 장치

Country Status (6)

Country Link
US (2) US10034020B2 (ko)
EP (1) EP2908529B1 (ko)
JP (2) JP6106757B2 (ko)
KR (3) KR20140048783A (ko)
CN (2) CN109068143B (ko)
WO (1) WO2014058216A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9769481B2 (en) 2014-03-28 2017-09-19 University-Industry Cooperation Group Of Kyung Hee University Method and apparatus for encoding of video using depth information
KR101603412B1 (ko) 2014-03-28 2016-03-15 경희대학교 산학협력단 깊이 정보를 이용한 비디오 부호화 방법 및 장치
US9769498B2 (en) 2014-03-28 2017-09-19 University-Industry Cooperation Group Of Kyung Hee University Method and apparatus for encoding of video using depth information
KR101603414B1 (ko) 2014-03-28 2016-03-15 경희대학교 산학협력단 깊이 정보를 이용한 비디오 부호화 장치 및 그 방법
KR101603413B1 (ko) 2014-03-28 2016-03-28 경희대학교 산학협력단 깊이 정보를 이용한 비디오 부호화 방법 및 장치
US9955187B2 (en) 2014-03-28 2018-04-24 University-Industry Cooperation Group Of Kyung Hee University Method and apparatus for encoding of video using depth information
CN115243040A (zh) 2015-11-23 2022-10-25 韩国电子通信研究院 视频编码/解码方法和记录介质
EP3554082A1 (en) * 2018-04-11 2019-10-16 InterDigital VC Holdings, Inc. A method and device for coding the geometry of a point cloud
EP3813369A1 (en) * 2018-08-13 2021-04-28 Lg Electronics Inc. Inter prediction method based on history-based motion vector, and device therefor
US10796443B2 (en) * 2018-10-17 2020-10-06 Kneron, Inc. Image depth decoder and computing device
KR20200095408A (ko) * 2019-01-31 2020-08-10 한국전자통신연구원 이머시브 비디오 포맷팅 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110003549A (ko) * 2008-04-25 2011-01-12 톰슨 라이센싱 깊이 신호의 코딩

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070111947A (ko) * 2006-05-19 2007-11-22 엘지전자 주식회사 비디오 신호의 디코딩/인코딩 방법 및 장치
KR20080042652A (ko) * 2006-11-10 2008-05-15 엘지전자 주식회사 비디오 신호 디코딩 장치 및, 비디오 신호 디코딩 방법
WO2009005626A2 (en) * 2007-06-28 2009-01-08 Thomson Licensing Single loop decoding of multi-vieuw coded video
KR20100105877A (ko) 2008-01-11 2010-09-30 톰슨 라이센싱 비디오 및 깊이 코딩
EP2338281A4 (en) * 2008-10-17 2012-08-15 Nokia Corp SHARING THE MOTION VECTOR IN 3D VIDEO CODING
EP2348733A4 (en) 2008-10-27 2012-09-12 Lg Electronics Inc METHOD AND APPARATUS FOR THE SYNTHESIS OF VIRTUAL VISUALIZATION IMAGES
US9113196B2 (en) * 2008-11-10 2015-08-18 Lg Electronics Inc. Method and device for processing a video signal using inter-view prediction
KR101660312B1 (ko) * 2009-09-22 2016-09-27 삼성전자주식회사 3차원 비디오의 움직임 탐색 장치 및 방법
JP2011223481A (ja) * 2010-04-14 2011-11-04 Sony Corp データ構造、画像処理装置、画像処理方法、およびプログラム
KR101747434B1 (ko) * 2011-01-20 2017-06-16 연세대학교 산학협력단 움직임 정보 및 변이 정보를 부호화/복호화하는 영상 처리 장치 및 방법
CN102036078B (zh) * 2011-01-21 2012-07-25 哈尔滨商业大学 基于视角间相关性的多视角视频编解码系统运动估计方法
JP5747559B2 (ja) * 2011-03-01 2015-07-15 富士通株式会社 動画像復号方法、動画像符号化方法、動画像復号装置、及び動画像復号プログラム
US9247266B2 (en) * 2011-04-18 2016-01-26 Texas Instruments Incorporated Temporal motion data candidate derivation in video coding
CN102510500B (zh) * 2011-10-14 2013-12-18 北京航空航天大学 一种基于深度信息的多视点立体视频错误隐藏方法
TWI461066B (zh) * 2011-11-03 2014-11-11 Ind Tech Res Inst 彈性調整估算搜尋範圍的移動估算方法及視差估算方法
US20130176390A1 (en) * 2012-01-06 2013-07-11 Qualcomm Incorporated Multi-hypothesis disparity vector construction in 3d video coding with depth
CN102710949B (zh) * 2012-05-11 2014-06-04 宁波大学 一种基于视觉感知的立体视频编码方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110003549A (ko) * 2008-04-25 2011-01-12 톰슨 라이센싱 깊이 신호의 코딩

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Miska M. Hannuksela et al., 3D-AVC Draft Text 3, Joint Collaborative Team on 3D Video Coding Extension Development of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 1st Meeting: Stockholm, SE, 2012.07.16., JCT3V-A1002.* *
Tadashi Uchiumi et al., 3D-CE5.h related: Simplification of depth-based inter-view prediction, Joint Collaborative Team on 3D Video Coding Extension Development of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 1st Meeting: Stockholm, SE, 2012.07.16., JCT2-A0013.* *
표준 3(VCEG-AR14)* *

Also Published As

Publication number Publication date
CN109068143B (zh) 2022-09-09
KR20140048783A (ko) 2014-04-24
US20150264398A1 (en) 2015-09-17
EP2908529B1 (en) 2020-12-09
KR20140048784A (ko) 2014-04-24
US10368100B2 (en) 2019-07-30
CN104995916A (zh) 2015-10-21
JP6446488B2 (ja) 2018-12-26
EP2908529A4 (en) 2016-04-20
JP2017139780A (ja) 2017-08-10
CN104995916B (zh) 2018-11-02
CN109068143A (zh) 2018-12-21
JP2015532558A (ja) 2015-11-09
JP6106757B2 (ja) 2017-04-05
KR102185200B1 (ko) 2020-12-01
US20180332306A1 (en) 2018-11-15
WO2014058216A1 (ko) 2014-04-17
EP2908529A1 (en) 2015-08-19
US10034020B2 (en) 2018-07-24

Similar Documents

Publication Publication Date Title
JP6446488B2 (ja) ビデオデータデコーディング方法及びビデオデータデコーディング装置
US9131247B2 (en) Multi-view video coding using scalable video coding
JP6026534B2 (ja) 深度範囲の変動を伴う動き深度マップのコーディング
TWI543591B (zh) 寫碼視訊資料之方法、用於寫碼視訊資料之裝置及電腦可讀儲存媒體
JP5805871B2 (ja) 3次元ビデオコーデックにおける深度マップのためのスライスヘッダ予測
TWI539791B (zh) 三維視頻寫碼中導出之視差向量
KR101854003B1 (ko) 복수의 레이어를 포함하는 영상의 부호화 및 복호화 방법
JP2016530848A (ja) 非対称動き分割を使用するビデオコーディング技法
KR102227279B1 (ko) 비디오 부호화/복호화 방법 및 장치
KR20150132505A (ko) 스킵 및 직접 모드들에 대한 3d 비디오 코딩에서의 디스패리티 벡터 유도
KR101862498B1 (ko) 비디오 코딩에서 뎁스 픽처 코딩 방법 및 장치
TW201440503A (zh) 三維視訊之視圖合成
KR102343817B1 (ko) 멀티-뷰 비디오의 디코딩 방법 및 장치
KR20160072105A (ko) 멀티-뷰 비디오를 디코딩하는 비디오 디코딩 장치 및 방법
WO2015141977A1 (ko) 3d 비디오 부호화/복호화 방법 및 장치
KR20140124045A (ko) 객체 기반 적응적 밝기 보상 방법 및 장치

Legal Events

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