KR20140048784A - 제한적 깊이정보값을 공유하여 움직임 정보를 유도하는 방법 및 장치 - Google Patents
제한적 깊이정보값을 공유하여 움직임 정보를 유도하는 방법 및 장치 Download PDFInfo
- Publication number
- KR20140048784A KR20140048784A KR1020130006727A KR20130006727A KR20140048784A KR 20140048784 A KR20140048784 A KR 20140048784A KR 1020130006727 A KR1020130006727 A KR 1020130006727A KR 20130006727 A KR20130006727 A KR 20130006727A KR 20140048784 A KR20140048784 A KR 20140048784A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- depth
- value
- information
- blocks
- Prior art date
Links
Images
Classifications
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F24—HEATING; RANGES; VENTILATING
- F24H—FLUID HEATERS, e.g. WATER OR AIR HEATERS, HAVING HEAT-GENERATING MEANS, e.g. HEAT PUMPS, IN GENERAL
- F24H1/00—Water heaters, e.g. boilers, continuous-flow heaters or water-storage heaters
- F24H1/18—Water-storage heaters
- F24H1/20—Water-storage heaters with immersed heating elements, e.g. electric elements or furnace tubes
- F24H1/201—Water-storage heaters with immersed heating elements, e.g. electric elements or furnace tubes using electric energy supply
- F24H1/202—Water-storage heaters with immersed heating elements, e.g. electric elements or furnace tubes using electric energy supply with resistances
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- C—CHEMISTRY; METALLURGY
- C02—TREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
- C02F—TREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
- C02F1/00—Treatment of water, waste water, or sewage
- C02F1/02—Treatment of water, waste water, or sewage by heating
- C02F1/04—Treatment of water, waste water, or sewage by heating by distillation or evaporation
- C02F1/045—Treatment of water, waste water, or sewage by heating by distillation or evaporation for obtaining ultra-pure water
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F22—STEAM GENERATION
- F22B—METHODS OF STEAM GENERATION; STEAM BOILERS
- F22B1/00—Methods of steam generation characterised by form of heating method
- F22B1/28—Methods of steam generation characterised by form of heating method in boilers heated electrically
- F22B1/282—Methods of steam generation characterised by form of heating method in boilers heated electrically with water or steam circulating in tubes or ducts
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F24—HEATING; RANGES; VENTILATING
- F24H—FLUID HEATERS, e.g. WATER OR AIR HEATERS, HAVING HEAT-GENERATING MEANS, e.g. HEAT PUMPS, IN GENERAL
- F24H9/00—Details
- F24H9/20—Arrangement or mounting of control or safety devices
- F24H9/2007—Arrangement or mounting of control or safety devices for water heaters
- F24H9/2014—Arrangement or mounting of control or safety devices for water heaters using electrical energy supply
- F24H9/2021—Storage heaters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/128—Adjusting depth or disparity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/161—Encoding, multiplexing or demultiplexing different image signal components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/547—Motion estimation performed in a transform domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F24—HEATING; RANGES; VENTILATING
- F24D—DOMESTIC- OR SPACE-HEATING SYSTEMS, e.g. CENTRAL HEATING SYSTEMS; DOMESTIC HOT-WATER SUPPLY SYSTEMS; ELEMENTS OR COMPONENTS THEREFOR
- F24D2220/00—Components of central heating installations excluding heat sources
- F24D2220/04—Sensors
- F24D2220/048—Level sensors, e.g. water level sensors
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F24—HEATING; RANGES; VENTILATING
- F24H—FLUID HEATERS, e.g. WATER OR AIR HEATERS, HAVING HEAT-GENERATING MEANS, e.g. HEAT PUMPS, IN GENERAL
- F24H2250/00—Electrical heat generating means
- F24H2250/02—Resistances
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Thermal Sciences (AREA)
- Chemical & Material Sciences (AREA)
- Mechanical Engineering (AREA)
- Physics & Mathematics (AREA)
- Combustion & Propulsion (AREA)
- Life Sciences & Earth Sciences (AREA)
- Sustainable Development (AREA)
- Sustainable Energy (AREA)
- Hydrology & Water Resources (AREA)
- Environmental & Geological Engineering (AREA)
- Water Supply & Treatment (AREA)
- Organic Chemistry (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 제한적 깊이정보값을 사용하여 움직임 정보를 유도하는 방법 및 장치에 관한 것으로, 본 발명은 깊이정보값을 사용하여 움직임 정보를 유도하는 할 때, 깊이정보값의 접근으로 인한 메모리 대역폭을 감소시키기 위하여 특정 깊이정보값을 여러 블록이 공유하여 사용하는 방법을 포함한다. 이를 통하여 본 발명은 비디오 부호화에서 부호화 및 복호화의 메모리 대역폭을 감소시킬 수 있다.
Description
본 발명은 제한적 깊이정보값을 사용하여 움직임 정보를 유도하는 방법 및 장치에 관한 것임.
3차원 비디오는 3차원 입체 디스플레이 장치를 통해 사용자에게 실세계에서 보고 느끼는 것과 같은 입체감을 생생하게 제공한다. 이와 관련된 연구로써 ISO/IEC의 MPEG(Moving Picture Experts Group)과 ITU-T의 VCEG(Video Coding Experts Group)의 공동 표준화 그룹인 JCT-3V(The Joint Collaborative Team on 3D Video Coding Extension Development)에서 3차원 비디오 표준이 진행 중이다. 3차원 비디오 표준은 실제 영상과 그것의 깊이정보 맵을 이용하여 스테레오스코픽 영상뿐만 아니라 오토스테레오스코픽 영상의 재생등을 지원할 수 있는 진보된 데이터 형식과 그에 관련된 기술에 대한 표준을 포함하고 있다.
도 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” 영상의 실제 영상과 깊이정보 맵 영상의 일 예: (a) 실제 영상, (b) 깊이정보 맵을 나타낸다.
실제 영상과 그것의 깊이정보 맵을 부호화하는 방법의 일예로, 현재까지 개발된 비디오 부호화 표준 중에서 최고의 부호화 효율을 가지는 비디오 부호화 방법인 H.264/AVC(MPEG-4 Part 10 Advanced Video Coding)를 이용하여 부호화를 수행할 수 있으며, H.264의 부호화 구조도의 일 예는 도 3과 같다.
도 3은 H.264 부호화 구조도의 일 예를 나타낸다.
도 3의 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)을 제거한 후, 참조 영상 버퍼에 저장한다.
H.264의 복호화 구조도의 일 예는 도 4와 같다
도 4의 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 비디오 인코더/디코더의 일 실시 예를 나타낸다.
일 실시 예로, 이미 부호화된/복호화된 깊이정보맵을 이용하여 실제 영상을 부호화/복호화할 수 있으며, 반대로 이미 부호화된/복호화된 실제 영상을 이용하여 깊이정보맵을 부호화/복호화할 수 있다.
실제 영상과 그것의 깊이정보맵은 카메라 하나뿐만아니라 여러 개의 카메라에서 획득한 영상일 수 있다. 일 실시 예로, 카메라 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은 현재 블록에 인접한 주변블록을 통해 움직임 정보를 유추하는 일 실시 예를 나타낸다.
일 실시 예로, 도 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)로 대치되어 사용된다.
본 발명에서는 (제한적) 깊이정보값을 사용하여 움직임 정보를 유도하는 할 때, 깊이정보값의 접근으로 인한 메모리 대역폭을 감소시키는 방법을 제안한다.
본 발명은 (제한적) 깊이정보값을 사용하여 움직임 정보를 유도하는 할 때, 깊이정보값의 접근으로 인한 메모리 대역폭을 감소시키기 위하여 특정 깊이정보값을 여러 블록이 공유하여 사용하는 방법을 포함한다.
본 발명은 비디오 부호화에서 부호화 및 복호화의 메모리 대역폭을 감소시킬 수 있다.
DMVP(Depth-based Motion Vector Prediction) 방법을 사용할때, 하나의 깊이정보값을 임의의 영역 안에서 여러 블록들이 공유하여 움직임 정보를 유도하는 방법을 사용하여 깊이정보맵 블록의 깊이정보 값에 접근(Access)하기 위한 횟수를 크게 감소시켜서 메모리 효율을 크게 증가시키고 복잡도를 감소시키는 효과가 있다.
도 1. 3차원 비디오 시스템의 기본 구조와 데이터 형식
도 2. “balloons” 영상의 실제 영상과 깊이정보 맵 영상의 일 예: (a) 실제 영상, (b) 깊이정보 맵
도 3. H.264의 부호화 구조도의 일 예
도 4. H.264의 복호화 구조도의 일 예
도 5. 3D 비디오 인코더(Video Encoder)/디코더(Decoder)의 실시 일예
도 6. 3D 비디오 코덱(Video Codec)의 예측 구조의 일 예
도 7. 현재 블록에 인접한 주변블록을 통해 움직임 정보를 유추하는 일 실시 예
도 8. 16x16 블록에서의 일 실시 예
도 9. 16x16블록이 8x8 블록들로 나누어진 일 실시예
도 10. 16x16블록이 4x4 블록들로 나누어진 일 실시예
도 11은 영상 데이터에 대한 메모리 효율을 향상시키는 방법의 일 실시 예를 나타낸다.
도 12. 깊이정보값을 사용하여 움직임정보를 도출하는 과정의 일 실시 예
도 13. 현재 블록(실제 영상에서의 블록)에 대응되는 깊이정보맵 블록에서 깊이정보값을 얻기 위한 위치의 일 실시예
도 14. 16x16블록이 4x4 블록들로 나누어진 일 실시예
도 15. 16x16블록이 4x4 블록들로 나누어진 일 실시예
도 16. 16x16블록이 여러 형태의 블록들로 나누어진 일 실시예
도 17. 16x16블록이 여러 형태의 블록들로 나누어진 다른 실시예
도 18. 현재 블록 X가 시점간 예측을 수행하는 실시 일 예
도 19. 픽쳐 단위의 대표 깊이정보값들의 일 예
도 20. 주어진 CU(혹은 TU) 깊이가 2인 경우, 본 발명의 방법들을 적용하는 범위 결정 방식의 예. (O: 해당 깊이에 적용, X: 해당 깊이에 적용하지 않음.)
도 2. “balloons” 영상의 실제 영상과 깊이정보 맵 영상의 일 예: (a) 실제 영상, (b) 깊이정보 맵
도 3. H.264의 부호화 구조도의 일 예
도 4. H.264의 복호화 구조도의 일 예
도 5. 3D 비디오 인코더(Video Encoder)/디코더(Decoder)의 실시 일예
도 6. 3D 비디오 코덱(Video Codec)의 예측 구조의 일 예
도 7. 현재 블록에 인접한 주변블록을 통해 움직임 정보를 유추하는 일 실시 예
도 8. 16x16 블록에서의 일 실시 예
도 9. 16x16블록이 8x8 블록들로 나누어진 일 실시예
도 10. 16x16블록이 4x4 블록들로 나누어진 일 실시예
도 11은 영상 데이터에 대한 메모리 효율을 향상시키는 방법의 일 실시 예를 나타낸다.
도 12. 깊이정보값을 사용하여 움직임정보를 도출하는 과정의 일 실시 예
도 13. 현재 블록(실제 영상에서의 블록)에 대응되는 깊이정보맵 블록에서 깊이정보값을 얻기 위한 위치의 일 실시예
도 14. 16x16블록이 4x4 블록들로 나누어진 일 실시예
도 15. 16x16블록이 4x4 블록들로 나누어진 일 실시예
도 16. 16x16블록이 여러 형태의 블록들로 나누어진 일 실시예
도 17. 16x16블록이 여러 형태의 블록들로 나누어진 다른 실시예
도 18. 현재 블록 X가 시점간 예측을 수행하는 실시 일 예
도 19. 픽쳐 단위의 대표 깊이정보값들의 일 예
도 20. 주어진 CU(혹은 TU) 깊이가 2인 경우, 본 발명의 방법들을 적용하는 범위 결정 방식의 예. (O: 해당 깊이에 적용, X: 해당 깊이에 적용하지 않음.)
DMVP(Depth-based Motion Vector Prediction) 방법을 사용하여 현재 블록에 인접한 주변 블록(A, B, C, D)들에 대응되는(일치하는) 깊이정보맵 블록의 깊이정보 값들에서 최대값(max disparity)을 얻기 위해서는 깊이정보맵 블록의 모든 깊이정보 값에 접근(Access)해야하며 각 깊이정보 맵 블록의 모든 깊이정보값들을 서로 비교하여야 한다. 이는 실제 영상을 부호화할 때 깊이정보맵이 요구되므로 실제 영상과 깊이정보맵 간의 의존성이 존재하게 된다.
도 8은 16×16 블록에서의 일 실시 예를 나타낸다.
실시 일예로, 도 8 (좌)와 같이 블록(실제 영상에서의 블록)의 크기가 16X16 블록일 경우, 깊이정보맵의 크기 또한 16×16 일수 있으므로, 총 256번의 깊이정보 값에 접근(Access)해야하고 또한 각 깊이정보값 간의 255번의 비교가 수행되어야한다. 이는 깊이정보맵의 모든 깊이정보값에 접근해야하므로 메모리 효율 및 복잡도 측면에서 비효율적이다. 이러한 문제를 해결하기 위한 방법으로 도 8 (우)와 같이 16x16 블록의 256개의 깊이정보 값들 중에서 블록의 구석 4개의 깊이정보값만을 사용하는 방법이 존재한다. 이는 깊이정보값을 접근(Access)하는 횟수를 기존 256에서 4개로 크게 감소시켜서 메모리 효율을 크게 증가시키며, 비교횟수 또한 255에서 3으로 크게 감소하여 복잡도를 감소시키는 효과가 있다.
하지만 16×16블록이 아닌 8x8 블록에서는 각각의 8x8 블록마다 4개의 깊이정보값을 사용해야하므로 도 9와 같이 4개가 아닌 16개의 깊이정보값에 접근하여야한다.
도 9는 16×16 블록이 8×8블록들로 나누어진 일 실시예를 나타내고, 도 10은 16×16 블록이 4×4블록들로 나누어진 일 실시예를 나타낸다.
또한, 4×4 블록에서는 각각의 4×4 블록마다 4개의 깊이정보값을 사용해야하므로 도 10과 같이 64개의 깊이정보값에 접근하여야한다. 예를 들어 영상이 매우 복잡한 형태이고 움직임 이 유동적인 영상의 경우, 하나의 16×16블록은 4×4 블록으로 나누어 부호화될 가능이 높다. 따라서, 최악의 경우(Worst case)에서는 16×16 블록당 64개의 깊이정보값을 접근(Access) 해야 하므로 4×4 블록의 경우에는 메모리 효율 측면에서 비효율적이다.
본 발명에서는 도 10의 4×4 블록과 같이, 최악의 경우(Worst case)에 대하여 메모리 효율을 향상시킬 수 있는 방법을 제안한다.
본 발명에서는 영상 데이터에 대한 메모리 접근 횟수를 감소시킴으로서 메모리 효율을 크게 증가시키고 복잡도를 감소시키는 방법을 제안한다.
도 11은 영상 데이터에 대한 메모리 효율을 향상시키는 방법의 일 실시 예를 나타낸다.
도 11의 “영상 읽기”에서 영상 메모리에 존재하는 블록 크기(혹은 임의 형태)의 데이터를 읽어 오기 위한 메모리 접근의 횟수를 감소시키기 위하여, 블록 크기 전체의 데이터를 읽어오지 않고 위치 정보 및 기타 정보를 활용하여 블록에서 일부분만을 읽어오거나 블록에서 하나의 픽셀값만(혹은 하나 이상의 픽셀값)을 읽어 올 수 있다.
또한, 도 11의 “영상 쓰기”에서 영상 메모리에 블록 크기의 데이터를 쓰기 위한 메모리 접근의 횟수를 감소시키기 위하여, 블록 크기 전체에 대한 데이터를 쓰지 않고 하나의 픽셀값만(혹은 하나 이상의 픽셀값)과 위치 정보 및 기타 정보를 활용하여 블록 크기 전체에 대한 데이터를 쓸 수 있다.
또한, 본 발명에서는 DMVP(Depth-based Motion Vector Prediction) 방법을 사용할때, 깊이정보맵 블록의 깊이정보 값에 접근(Access)하기 위한 횟수를 크게 감소시켜서, 메모리 효율을 크게 증가시키고 복잡도를 감소시키는 방법을 제안한다.
도 12는 깊이정보값을 사용하여 움직임정보를 도출하는 과정의 일 실시 예를 나타낸다.
도 12는 DMVP 방법을 사용할때, 깊이정보값을 사용하여 현재 블록에 인접한 주변 블록들(혹은 현재 블록)의 움직임정보를 도출하는 과정을 나타낸다.
도 12에서 깊이정보 값 유도 과정은 위치정 보와 기타 정보를 활용하여 깊이정보맵 영상이 저장된 메모리에서 깊이정보 값을 읽어오는 부분을 의미한다. 여기서 깊이정보값을 유도하는 방법은 다양하게 적용할 수 있다. 실시 일 예로, 현재 블록(실제 영상에서의 블록)의 픽쳐와 시점이 동일한 깊이정보맵에서 현재 블록에 인접한 주변 블록(A, B, C, D)들에 대응되는 깊이정보맵 블록 내의 깊이정보값을 이용할 수 있다. 또 다른 실시 일 예로, 현재 블록(실제 영상에서의 블록)의 픽쳐와 시점이 동일한 깊이정보맵에서 현재 블록(실제 영상에서의 블록)에 대응되는 깊이정보맵 블록 내의 깊이정보값을 이용할 수 있다.
또 다른 실시 일예로, 현재 블록(실제 영상에서의 블록)의 픽쳐와 시점이 다른(혹은 현재 시점과 인접한 시점) 깊이정보맵에서 현재 블록에 인접한 주변 블록(A, B, C, D)들에 대응되는 깊이정보맵 블록 내의 깊이정보값을 이용할 수 있으며, 이때 현재 블록에 인접한 주변 블록(A, B, C, D)들에 대응되는 깊이정보맵 블록을 찾기 위해 깊이정보 맵에서 시점 간의 거리만큼 이동한 위치의 깊이정보맵 블록을 사용할 수 있다. 또 다른 실시 일예로, 현재 블록(실제 영상에서의 블록)의 픽쳐와 시점이 다른(혹은 현재 시점과 인접한 시점) 깊이정보맵에서 현재 블록(실제 영상에서의 블록)에 대응되는 깊이정보맵 블록 내의 깊이정보값을 이용할 수 있으며, 이때 현재 블록(실제 영상에서의 블록)에 대응되는 깊이정보맵 블록을 찾기 위해 깊이정보 맵에서 시점 간의 거리만큼 이동한 위치의 깊이정보맵 블록을 사용할 수 있다.
또 다른 실시 일예로, 깊이정보값을 유도하기 위해 깊이정보맵을 사용하지 않고 실제 영상들간의 시점간의 차이나 혹은 움직임 정보의 차이등을 통해 깊이정보값과 유사한 값을 유도하여 그 값을 깊이정보값으로 대체하여 사용할 수 있다. 또한, 깊이정보값을 유도하지 않고 실제 영상들간의 시점간의 차이나 혹은 움직임 정보의 차이등을 통해 움직임 정보를 바로 유도할 수 있다.
도 13은 현재 블록(실제 영상에서의 블록)에 대응되는 깊이정보맵 블록에서 깊이정보값을 얻기 위한 위치의 일 실시예를 나타낸다.
우선 도 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’와 인접한 왼쪽, 오른쪽, 위쪽, 아래쪽, 왼쪽위, 오른쪽위, 왼쪽아래, 오른쪽 아래 블록들이 사용될 수 있다.
실시 일 예로, 도 13의 현재 블록에 인접한 주변 블록들(혹은 현재 블록) X에 대응되는 깊이정보맵 블록(X’)에서 여러 개의 깊이정보값들 중에서 하나만 사용하여 움직임 정보를 유도할 수 있다. 이는 현재 블록에 인접한 주변 블록들(혹은 현재 블록)의 각 블록 당 하나의 깊이정보 값만을 사용하여 움직임 정보를 유도한다. 이 경우, 도 14와 같이 4×4블록마다 각각 하나의 깊이정보 값만을 접근하므로 16×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 단위)에서 최하위 오른쪽 아래 위치한 깊이정보 값을 각 블록의 대표 깊이정보값으로 하여, 모든 블록이 해당 깊이정보 값을 공유하여 움직임 정보를 유도하는 데 사용할 수 있다.
현재 블록이 시점간 예측을 수행하고, 현재 블록에 인접한 주변 블록들이 모두 시간적 예측을 수행할 때(혹은 주변 블록이 유효하지 않거나 혹은 주변 블록이 화면 내 예측인 경우), 현재 블록에 인접한 주변 블록들은 모두 DMVP(Depth-based Motion Vector Prediction) 방법을 사용하여 움직임 정보를 유도하게 된다. 도 18은 현재 블록 X가 시점간 예측을 수행하는 실시 일 예를 나타낸다. 실시 일 예로 도 18에서 현재 블록 X가 시점간 예측을 수행하고 현재 블록 X의 주변 블록 A, B, C가 모두 시간적 예측을 수행할 경우(혹은 주변 블록이 유효하지 않거나 혹은 주변 블록이 화면 내 예측인 경우), 현재 블록 X의 주변 블록 A, B, C는 모두 DMVP(Depth-based Motion Vector Prediction) 방법을 사용하여 움직임 정보를 유도하게 된다. 이때 현재 블록 X의 주변 블록 A, B, C에서 오른쪽 아래에 있는 깊이정보값을 사용하여 움직임 정보를 유도한다.
또 다른 실시 일예로, 도 17과 같이 16x16 블록의 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에 대한 움직임 정보를 유도할 수 있다.
DMVP(Depth-based Motion Vector Prediction) 방법을 사용할때, 깊이정보맵 블록의 깊이정보 값에 접근(Access)해야하므로 실제 영상을 부호화할 때 깊이정보맵에 항상 접근해야한다. 따라서 실제 영상과 깊이정보맵 간에 의존성이 존재하며, 이러한 의존성은 부호화시 지연(delay)을 유발할 수 있으며, 하드웨어 구현 측면에서도 비효율적일 수 있다. 따라서 이러한 의존성을 제거하기 위한 방법으로 움직임 정보를 유도하는데 사용되는 깊이정보값 몇 개를 픽쳐 단위로 시그널링하는 방법을 사용할 수 있다. 상기 방법들의 경우, 특정 영역 내에서 하나의 깊이정보 값을 공유한다. 이러한 특정 영역은 16x16 크기가 될수 있고, 32x32 크기가 될 수 있고 그 이상의 크기가 될 수 있다. 이러한 특정 영역을 픽쳐(혹은 슬라이스 혹은 임의의 영역) 단위로 확장하여 사용할 수 있으며, 픽쳐(혹은 슬라이스 혹은 임의의 영역) 단위에서 하나의 깊이정보값이 아닌 여러 개의 깊이정보값을 사용하여 움직임 정보를 유도할 수 있다.
도 19는 픽쳐 단위의 대표 깊이정보값들의 일 예를 나타낸다.
실시 일예로, 도 19와 같이 픽쳐(혹은 슬라이스 혹은 임의의 영역) 단위에서 4개의 깊이정보값을 사용할 수 있다. 이 경우, 픽쳐(혹은 슬라이스 혹은 임의의 영역) 내의 모든 블록은 각 블록에서의 깊이정보 값을 사용하지 않고 도 19의 깊이정보값을 사용하여 움직임 정보를 유도할 수 있다. 이때 각 블록에서 사용할 깊이정보 값을 설정하기 위하여 블록마다 인덱스를 시그널링할 수 있으며, 혹은 임의 영역마다 인덱스를 시그널링할 수 있다. 여기서 인덱스 시그널링으로 인한 비트량 증가를 최소화 하기 위해서 픽쳐(혹은 슬라이스 혹은 임의의 영역) 마다 깊이정보값을 하나(혹은 하나 이상)만 사용할 수 있으며, 하나만 사용할 경우 블록마다 시그널링하지 않아도되므로 비트량 증가를 최소화할 수 있다.
또다른 실시 일예로, 각 블록마다 선택 되어진 깊이정보값을 인덱스 테이블로 만들어서 정보량을 더 줄일 수 있다. 또 다른 실시 일예로, 구성된 깊이정보 값 리스트에서 인덱스 번호가 낮은 순서에 있는 것(우선 순위가 높음)부터 차례대로 사용할 수 있으며, 이때 인덱스에 대한 시그널링을 하지 않을 수 있으며, 해당 깊이정보 값 리스트는 주변 블록의 정보(일예로, 부호화 모드, 움직임 정보 등)를 통해 블록 단위로 갱신되어 다음 블록에서 사용될 수 있다.
상술한 방법을 이용한 복호화 과정의 일예를 나타내면 아래와 같다.
J.8.3.1.7.1 Modification process for inter view motion vector in median luma motion vector prediction 이 프로세스의 입력은 아래와 같다. - 깊이정보맵 픽쳐; depthPic, - 현재 매크로 블록의 좌상단 위치; ( mbx1, mby1 ), - 현재 예측 블록의 좌상단 위치; ( dbx1, dby1 ), - 현재 예측 블록에 해당하는 픽쳐의 시점 ID; view_id, - 움직임 벡터; mv 이 프로세스의 출력은 다음과 같다. - 움직임 벡터; mv 깊이정보맵의 시점 ID를 refViewId 라고 하고, 아래 과정을 순서대로 수행한다. 1. 현재 블록의 너비(partWidth)와 높이(partHeight)를 곱한 값을 numSamples라고 하자. 2. 움직임 정보 유도를 위한 깊이정보 값(depthValue)을 아래와 같이 유도하자. offsetx, offsety는 아래와 같이 유도된다. 깊이정보맵이 실제 영상과 동일한 크기라면 offsetx = 16 - 1 (즉, 15 이며, 이는 임의의 값이 될 수 있다.) offsety = 16 - 1 (즉, 15 이며, 이는 임의의 값이 될 수 있다.) 그렇지 않고, 깊이정보맵이 실제 영상의 1/4크기라면 offsetx = 8 - 1 (즉, 7 이며, 이는 임의의 값이 될 수 있다.) offsety = 8 - 1 (즉, 7 이며, 이는 임의의 값이 될 수 있다.) depthValue = depthPic[ mbx1 + offsetx, mby1 + offsety ] 3. 움직임 벡터 mv 는 아래와 같이 유도된다. index = ViewIdTo3DVAcquisitionParamIndex( view_id ) refIndex = ViewIdTo3DVAcquisitionParamIndex( refViewId ) mv[ 0 ] = Disparity( NdrInverse[ depthValue ], ZNear[ frame_num, index ], ZFar[ frame_num, index ], FocalLengthX[ frame_num, index ], AbsTX[ index ] - AbsTX[ refIndex ] ) mv[ 1 ] = 0 여기서 ViewIdTo3DVAcquisitionParamIndex() 함수는 view_id_3dv 배열에서 view_id와 같은 값을 가지는 위치의 인덱스를 출력한다. Disparity() 함수는 depthValue값과 Zfar와 Znear와 FocalLengthX 등을 이용하여 움직임 벡터를 유도한다. Zfar와 Znear는 실 세계의 관측 공간에서 카메라와 가장 먼 부분(Zfar)과 가까운 부분(Znear)의 실제 위치를 나타낸다. |
상술한 방법을 이용한 복호화 과정의 다른 일예를 나타내면 아래와 같다.
J.8.3.1.7.1 Modification process for inter view motion vector in median luma motion vector prediction 이 프로세스의 입력은 아래와 같다. - 깊이정보맵 픽쳐; depthPic, - 현재 매크로 블록의 좌상단 위치; ( mbx1, mby1 ), - 현재 예측 블록의 좌상단 위치; ( dbx1, dby1 ), - 현재 예측 블록에 해당하는 픽쳐의 시점 ID; view_id, - 움직임 벡터; mv 이 프로세스의 출력은 다음과 같다. - 움직임 벡터; mv 깊이정보맵의 시점 ID를 refViewId 라고 하고, 아래 과정을 순서대로 수행한다. 1. 현재 블록의 너비(partWidth)와 높이(partHeight)를 곱한 값을 numSamples라고 하자. 2. 움직임 정보 유도를 위한 최대 깊이정보 값(maxDepth)을 아래와 같이 유도하자. offsetx, offsety는 아래와 같이 유도된다. 깊이정보맵이 실제 영상과 동일한 크기라면 offsetx = 16 - 1 (즉, 15) offsety = 16 - 1 (즉, 15) 그렇지 않고, 깊이정보맵이 실제 영상의 1/4크기라면 offsetx = 8 - 1 (즉, 7) offsety = 8 - 1 (즉, 7) maxDepth = 0 for( j = 0; j < offsety+1; j+= offsety ) for( i = 0; i < offsetx+1; i+= offsetx ) if( depthPic[ mbx1 + i, mby1 + j ] > maxDepth ) maxDepth = depthPic[ mbx1 + i, mby1 + j ] 3. 움직임 벡터 mv 는 아래와 같이 유도된다. index = ViewIdTo3DVAcquisitionParamIndex( view_id ) refIndex = ViewIdTo3DVAcquisitionParamIndex( refViewId ) mv[ 0 ] = Disparity( NdrInverse[ maxDepth ], ZNear[ frame_num, index ], ZFar[ frame_num, index ], FocalLengthX[ frame_num, index ], AbsTX[ index ] - AbsTX[ refIndex ] ) mv[ 1 ] = 0 여기서 ViewIdTo3DVAcquisitionParamIndex() 함수는는 view_id_3dv 배열에서 view_id와 같은 값을 가지는 위치의 인덱스를 출력한다. Disparity() 함수는 depthValue값과 Zfar와 Znear와 FocalLengthX 등을 이용하여 움직임 벡터를 유도한다. Zfar와 Znear는 실 세계의 관측 공간에서 카메라와 가장 먼 부분(Zfar)과 가까운 부분(Znear)의 실제 위치를 나타낸다. |
하나의 16×16 매크로블록이 4×4 블록으로 나누어 질 경우, 각각의 4×4 블록마다 4개의 깊이정보값을 사용해야하므로 메모리 접근 대역폭이 증가된다는 단점이 존재한다. 이러한 단점을 해결하기 위하여 DMVP(Depth-based Motion Vector Prediction) 방법을 특정 블록단위에서 사용하지 않게 할 수 있다. 실시 일예로, 4x4 블록에서 DMVP(Depth-based Motion Vector Prediction) 방법을 사용하지 않게 설정할 수 있다. 이 경우 해당 블록에 대한 움직임 벡터를 영 벡터(0,0)으로 설정하여 사용할 수 있다.
상술한 방법을 이용한 복호화 과정의 또 다른 일예를 나타내면 다음과 같다.
J.8.3.1.7.1 Modification process for inter view motion vector in median luma motion vector prediction 이 프로세스의 입력은 아래와 같다. - 깊이정보맵 픽쳐; depthPic, - 현재 매크로 블록의 좌상단 위치; ( mbx1, mby1 ), - 현재 예측 블록의 좌상단 위치; ( dbx1, dby1 ), - 현재 예측 블록에 해당하는 픽쳐의 시점 ID; view_id, - 움직임 벡터; mv 이 프로세스의 출력은 다음과 같다. - 움직임 벡터; mv 현재 블록의 너비(partWidth) 혹은 높이(partHeight)가 ‘4’와 같다면, 움직임 벡터 mv 는 (0,0)으로 설정하고 그렇지않다면, 움직임 벡터 mv 의 유도는 아래 과정에 따라 순서대로 수행한다. 우선, 깊이정보맵의 시점 ID를 refViewId 라고 한다. 1. 현재 블록의 너비(partWidth)와 높이(partHeight)를 곱한 값을 numSamples라고 하자. 2. 움직임 정보 유도를 위한 최대 깊이정보 값(maxDepth)을 아래와 같이 유도하자. offsetx, offsety는 아래와 같이 유도된다. 깊이정보맵이 실제 영상과 동일한 크기라면 offsetx = 16 - 1 (즉, 15) offsety = 16 - 1 (즉, 15) 그렇지 않고, 깊이정보맵이 실제 영상의 1/4크기라면 offsetx = 8 - 1 (즉, 7) offsety = 8 - 1 (즉, 7) maxDepth = 0 for( j = 0; j < offsety+1; j+= offsety ) for( i = 0; i < offsetx+1; i+= offsetx ) if( depthPic[ mbx1 + i, mby1 + j ] > maxDepth ) maxDepth = depthPic[ mbx1 + i, mby1 + j ] 3. 움직임 벡터 mv 는 아래와 같이 유도된다. index = ViewIdTo3DVAcquisitionParamIndex( view_id ) refIndex = ViewIdTo3DVAcquisitionParamIndex( refViewId ) mv[ 0 ] = Disparity( NdrInverse[ maxDepth ], ZNear[ frame_num, index ], ZFar[ frame_num, index ], FocalLengthX[ frame_num, index ], AbsTX[ index ] - AbsTX[ refIndex ] ) mv[ 1 ] = 0 여기서 ViewIdTo3DVAcquisitionParamIndex() 함수는는 view_id_3dv 배열에서 view_id와 같은 값을 가지는 위치의 인덱스를 출력한다. Disparity() 함수는 depthValue값과 Zfar와 Znear와 FocalLengthX 등을 이용하여 움직임 벡터를 유도한다. Zfar와 Znear는 실 세계의 관측 공간에서 카메라와 가장 먼 부분(Zfar)과 가까운 부분(Znear)의 실제 위치를 나타낸다. |
상술한 방법은 현재 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 깊이에 따라 적용 범위를 달리하는 할 때는 도 20에 예시한 바와 같이, 방식A) 주어진 깊이 이상의 깊이에만 적용하는 방식, 방식B) 주어진 깊이 이하에만 적용하는 방식, 방식C) 주어진 깊이에만 적용하는 방식이 있을 수 있다.
상술한 방법을 이용한 복호화 과정의 또 다른 일례를 나타내면 아래와 같다.
J.8.3.1.7.1 Modification process for inter view motion vector in median luma motion vector prediction 이 프로세스의 입력은 아래와 같다. - 깊이정보맵 픽쳐; depthPic, - 현재 매크로 블록의 좌상단 위치; ( mbx1, mby1 ), - 현재 예측 블록의 좌상단 위치; ( dbx1, dby1 ), - 현재 예측 블록에 해당하는 픽쳐의 시점 ID; view_id, - 움직임 벡터; mv 이 프로세스의 출력은 다음과 같다. - 움직임 벡터; mv 깊이정보맵의 시점 ID를 refViewId 라고 하고, 아래 과정을 순서대로 수행한다. 1. 현재 블록의 너비(partWidth)와 높이(partHeight)를 곱한 값을 numSamples라고 하자. 2. 움직임 정보 유도를 위한 최대 깊이정보 값(maxDepth)을 아래와 같이 유도하자. offsetx, offsety는 아래와 같이 유도된다. 깊이정보맵이 실제 영상과 동일한 크기라면 offsetx = 16 - 1 (즉, 15) offsety = 16 - 1 (즉, 15) 그렇지 않고, 깊이정보맵이 실제 영상의 1/4크기라면 offsetx = 8 - 1 (즉, 7) offsety = 8 - 1 (즉, 7) 만일 현재 블록의 너비(partWidth) 혹은 높이(partHeight)가 ‘4’와 같다면, 아래 과정을 수행한다. maxDepth = depthPic[ mbx1 + offsetx, mby1 + offsety ] 그렇지 않고 현재 블록의 너비(partWidth) 혹은 높이(partHeight)가 ‘4’와 같지 않다면, 아래 과정을 수행한다. maxDepth = 0 for( j = 0; j < offsety+1; j+= offsety ) for( i = 0; i < offsetx+1; i+= offsetx ) if( depthPic[ mbx1 + i, mby1 + j ] > maxDepth ) maxDepth = depthPic[ mbx1 + i, mby1 + j ] 3. 움직임 벡터 mv 는 아래와 같이 유도된다. index = ViewIdTo3DVAcquisitionParamIndex( view_id ) refIndex = ViewIdTo3DVAcquisitionParamIndex( refViewId ) mv[ 0 ] = Disparity( NdrInverse[ maxDepth ], ZNear[ frame_num, index ], ZFar[ frame_num, index ], FocalLengthX[ frame_num, index ], AbsTX[ index ] - AbsTX[ refIndex ] ) mv[ 1 ] = 0 여기서 ViewIdTo3DVAcquisitionParamIndex() 함수는는 view_id_3dv 배열에서 view_id와 같은 값을 가지는 위치의 인덱스를 출력한다. Disparity() 함수는 depthValue값과 Zfar와 Znear와 FocalLengthX 등을 이용하여 움직임 벡터를 유도한다. Zfar와 Znear는 실 세계의 관측 공간에서 카메라와 가장 먼 부분(Zfar)과 가까운 부분(Znear)의 실제 위치를 나타낸다. |
모든 깊이에 대하여 본 발명의 방법들을 적용하지 않는 경우는 임의의 지시자(flag)를 사용하여 나타낼 수도 있고, CU 깊이의 최대값보다 하나 더 큰 값을 적용범위를 나타내는 CU 깊이 값으로 시그널링 함으로써 표현할 수도 있다.
본 발명의 추가적인 특징으로, 상술한 방법의 적용 여부는 비트스트림에 포함할 수 있으며, SPS(Sequence Parameter Set), PPS(Picture Parameter Set), 슬라이스 헤더 신택스(Slice Header Syntax)에 아래와 같은 시맨틱스(Semantics)로 적용될 수 있다.
표 5는 SPS에 적용된 일 예, 표 6은 PPS에 적용된 일 예, 표 7은 슬라이스 헤더 신택스에 적용된 일 예, 표 8은 슬라이스 헤더 신택스에 적용된 다른 예를 나타낸다.
seq_parameter_set_rbsp( ) { | Descriptor |
profile_idc | u(8) |
reserved_zero_8bits /* equal to 0 */ | u(8) |
level_idc | u(8) |
… | ue(v) |
dmvp_enabled_flag | u(1) |
if(dmvp _enabled_flag) | |
dmvp_disabled_info | ue(v) |
… |
pic_parameter_set_rbsp( ) { | Descriptor |
pic_parameter_set_id | ue(v) |
seq_parameter_set_id | ue(v) |
entropy_coding_mode_flag | u(1) |
… | |
dmvp_enabled_flag | u(1) |
if(dmvp _enabled_flag) | |
dmvp_disabled_info | ue(v) |
… |
slice_header( ) { | Descriptor |
slice_type | ue(v) |
pic_parameter_set_id | ue(v) |
frame_num | u(v) |
… | |
dmvp_enabled_flag | u(1) |
if(dmvp _enabled_flag) | |
dmvp_disabled_info | ue(v) |
… |
slice_header( ) { | Descriptor |
lightweight_slice_flag | u(1) |
if( !lightweight_slice_flag ) { | |
slice_type | ue(v) |
pic_parameter_set_id | ue(v) |
frame_num | u(v) |
… | |
} | |
if( entropy_coding_mode_flag && slice_type != I) | |
cabac_init_idc | ue(v) |
first_slice_in_pic_flag | u(1) |
… | |
dmvp_enabled_flag | u(1) |
if(dmvp _enabled_flag) | |
dmvp_disabled_info | ue(v) |
… |
여기서 “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)의 사용 방법은 다양하게 적용할 수 있다.
위의 방법을 이용하여 픽쳐(혹은 프레임) 단위로 적용여부를 결정할 수 있다. 또한 P 픽쳐(혹은 프레임) 에만 본 명세서의 방법이 적용될 수 있으며, B 픽쳐(혹은 프레임) 에만 본 명세서의 방법이 적용될 수 있다.
Claims (14)
- 임의의 영역 안에서 여러 블록들이 하나(혹은 하나 이상)의 깊이정보값을 공유하여 현재 블록에 인접한 주변 블록들(혹은 현재 블록)에 대한 움직임 정보의 유도에 사용하는 방법.
- 깊이정보맵 블록에서 여러 개의 깊이정보값들 중에서 하나만(혹은 하나 이상) 사용하여 움직임 정보를 유도하는 방법으로 현재 블록에 인접한 주변 블록들(혹은 현재 블록)의 각 블록 당 하나(혹은 하나 이상)의 깊이정보 값만을 사용하여 움직임 정보를 유도하는 방법.
- DMVP(Depth-based Motion Vector Prediction) 방법을 사용할때, 실제 영상과 깊이정보맵 간에 의존성을 제거하기 위한 방법으로 움직임 정보를 유도하는데 사용되는 하나의(혹은 하나 이상의) 깊이정보값을 픽쳐(혹은 슬라이스 혹은 임의 영역) 단위로 시그널링하는 방법.
- 제 3항에 있어서,
슬라이스 및 픽쳐 단위에서 하나의 깊이정보값이 아닌 여러 개의 깊이정보값을 사용하여 움직임 정보를 유도하는 방법. - 깊이정보값을 유도하는 단계를 포함하되,
이와 관련하여, 현재 블록에 인접한 주변 블록들(혹은 현재 블록)의 픽쳐와 시점이 동일한(혹은 다른) 깊이정보맵에서 현재 블록에 인접한 주변 블록들(혹은 현재 블록)에 대응되는 깊이정보맵 블록 내의 깊이정보값을 사용하는 방법. - 현재 블록 X가 시점간 예측을 사용하여 부호화/복호화되고 현재 블록 X의 주변 블록 A, B, C 시간적 예측을 사용할 경우(혹은 주변 블록이 유효하지 않거나 혹은 주변 블록이 화면 내 예측인 경우), 현재 블록 X의 시점간 움직임 정보의 유도를 위해 주변 블록 A, B, C에 대응되는 깊이정보 값을 사용하지 않고 현재 블록 X에 대응되는 깊이정보 값을 사용하여 현재 블록 X에 대한 움직임 정보를 유도하는 방법.
- 제 2항에 있어서,
깊이정보맵 블록에서 여러 개의 깊이정보값들 중에서 하나 이상의 값들 중에서 최대값(혹은 최소값 혹은 임의의 값 혹은 임의의 계산에 의한 값)을 사용하여 움직임 정보를 유도하는 방법으로 현재 블록에 인접한 주변 블록들(혹은 현재 블록)의 모든 블록에 해당 값만(하나 이상의 값들 중에서 최대값(혹은 최소값 혹은 임의의 값 혹은 임의의 계산에 의한 값))을 사용하여 움직임 정보를 유도하는 방법. - 임의의 영역 안에서 여러 블록들이 하나(혹은 하나 이상)의 깊이정보값을 공유하여 현재 블록에 인접한 주변 블록들(혹은 현재 블록)에 대한 움직임 정보의 유도에 사용하는 장치.
- 깊이정보맵 블록에서 여러 개의 깊이정보값들 중에서 하나만(혹은 하나 이상) 사용하여 움직임 정보를 유도하는 방법으로 현재 블록에 인접한 주변 블록들(혹은 현재 블록)의 각 블록 당 하나(혹은 하나 이상)의 깊이정보 값만을 사용하여 움직임 정보를 유도하는 장치.
- DMVP(Depth-based Motion Vector Prediction) 방법을 사용할때, 실제 영상과 깊이정보맵 간에 의존성을 제거하기 위한 방법으로 움직임 정보를 유도하는데 사용되는 하나의(혹은 하나 이상의) 깊이정보값을 픽쳐(혹은 슬라이스 혹은 임의 영역) 단위로 시그널링하는 장치.
- 제 10항에 있어서, 슬라이스 및 픽쳐 단위에서 하나의 깊이정보값이 아닌 여러 개의 깊이정보값을 사용하여 움직임 정보를 유도하는 장치.
- 깊이정보값을 유도하고,
이와 관련하여, 현재 블록에 인접한 주변 블록들(혹은 현재 블록)의 픽쳐와 시점이 동일한(혹은 다른) 깊이정보맵에서 현재 블록에 인접한 주변 블록들(혹은 현재 블록)에 대응되는 깊이정보맵 블록 내의 깊이정보값을 사용하는 장치. - 현재 블록 X가 시점간 예측을 사용하여 부호화/복호화되고 현재 블록 X의 주변 블록 A, B, C 시간적 예측을 사용할 경우(혹은 주변 블록이 유효하지 않거나 혹은 주변 블록이 화면 내 예측인 경우), 현재 블록 X의 시점간 움직임 정보의 유도를 위해 주변 블록 A, B, C에 대응되는 깊이정보 값을 사용하지 않고 현재 블록 X에 대응되는 깊이정보 값을 사용하여 현재 블록 X에 대한 움직임 정보를 유도하는 장치.
- 제 9항에 있어서,
깊이정보맵 블록에서 여러 개의 깊이정보값들 중에서 하나 이상의 값들 중에서 최대값(혹은 최소값 혹은 임의의 값 혹은 임의의 계산에 의한 값)을 사용하여 움직임 정보를 유도하는 방법으로 현재 블록에 인접한 주변 블록들(혹은 현재 블록)의 모든 블록에 해당 값만(하나 이상의 값들 중에서 최대값(혹은 최소값 혹은 임의의 값 혹은 임의의 계산에 의한 값))을 사용하여 움직임 정보를 유도하는 장치.
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130120070A KR102185200B1 (ko) | 2012-10-09 | 2013-10-08 | 비디오 데이터 디코딩 방법 및 비디오 데이터 디코딩 장치 |
CN201380063393.4A CN104995916B (zh) | 2012-10-09 | 2013-10-08 | 视频数据解码方法和视频数据解码设备 |
EP13845666.0A EP2908529B1 (en) | 2012-10-09 | 2013-10-08 | Video data decoding method and video data decoding apparatus |
CN201811166578.9A CN109068143B (zh) | 2012-10-09 | 2013-10-08 | 视频数据解码方法和视频数据解码设备 |
PCT/KR2013/009000 WO2014058216A1 (ko) | 2012-10-09 | 2013-10-08 | 비디오 데이터 디코딩 방법 및 비디오 데이터 디코딩 장치 |
US14/434,321 US10034020B2 (en) | 2012-10-09 | 2013-10-08 | Video data decoding method and video data decoding apparatus |
JP2015536678A JP6106757B2 (ja) | 2012-10-09 | 2013-10-08 | ビデオデータデコーディング方法及びビデオデータデコーディング装置 |
JP2017041913A JP6446488B2 (ja) | 2012-10-09 | 2017-03-06 | ビデオデータデコーディング方法及びビデオデータデコーディング装置 |
US16/014,396 US10368100B2 (en) | 2012-10-09 | 2018-06-21 | Video data decoding method and video data decoding apparatus |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120112063 | 2012-10-09 | ||
KR20120112063 | 2012-10-09 | ||
KR20120114096 | 2012-10-15 | ||
KR1020120114096 | 2012-10-15 | ||
KR1020130006176 | 2013-01-18 | ||
KR1020130006176A KR20140048783A (ko) | 2012-10-09 | 2013-01-18 | 깊이정보값을 공유하여 움직임 정보를 유도하는 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20140048784A true KR20140048784A (ko) | 2014-04-24 |
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 (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130006176A KR20140048783A (ko) | 2012-10-09 | 2013-01-18 | 깊이정보값을 공유하여 움직임 정보를 유도하는 방법 및 장치 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130120070A KR102185200B1 (ko) | 2012-10-09 | 2013-10-08 | 비디오 데이터 디코딩 방법 및 비디오 데이터 디코딩 장치 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10034020B2 (ko) |
EP (1) | EP2908529B1 (ko) |
JP (2) | JP6106757B2 (ko) |
KR (3) | KR20140048783A (ko) |
CN (2) | CN104995916B (ko) |
WO (1) | WO2014058216A1 (ko) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150114356A (ko) | 2014-03-28 | 2015-10-12 | 경희대학교 산학협력단 | 깊이 정보를 이용한 비디오 부호화 방법 및 장치 |
KR20150114355A (ko) | 2014-03-28 | 2015-10-12 | 경희대학교 산학협력단 | 깊이 정보를 이용한 비디오 부호화 방법 및 장치 |
KR20150114357A (ko) | 2014-03-28 | 2015-10-12 | 경희대학교 산학협력단 | 깊이 정보를 이용한 비디오 부호화 장치 및 그 방법 |
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 |
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 |
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 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6937302B2 (ja) | 2015-11-23 | 2021-09-29 | エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュートElectronics And Telecommunications Research Institute | 多視点ビデオの符号化/復号化方法 |
EP3554082A1 (en) * | 2018-04-11 | 2019-10-16 | InterDigital VC Holdings, Inc. | A method and device for coding the geometry of a point cloud |
CN116781931A (zh) | 2018-08-13 | 2023-09-19 | Lg电子株式会社 | 图像编码/解码设备和图像数据发送设备 |
US10796443B2 (en) * | 2018-10-17 | 2020-10-06 | Kneron, Inc. | Image depth decoder and computing device |
KR20200095408A (ko) * | 2019-01-31 | 2020-08-10 | 한국전자통신연구원 | 이머시브 비디오 포맷팅 방법 및 장치 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070111947A (ko) | 2006-05-19 | 2007-11-22 | 엘지전자 주식회사 | 비디오 신호의 디코딩/인코딩 방법 및 장치 |
KR20080042652A (ko) | 2006-11-10 | 2008-05-15 | 엘지전자 주식회사 | 비디오 신호 디코딩 장치 및, 비디오 신호 디코딩 방법 |
US20100135388A1 (en) | 2007-06-28 | 2010-06-03 | Thomson Licensing A Corporation | SINGLE LOOP DECODING OF MULTI-VIEW CODED VIDEO ( amended |
WO2009091383A2 (en) | 2008-01-11 | 2009-07-23 | Thomson Licensing | Video and depth coding |
JP2011519227A (ja) * | 2008-04-25 | 2011-06-30 | トムソン ライセンシング | 奥行き信号の符号化 |
US9973739B2 (en) * | 2008-10-17 | 2018-05-15 | Nokia Technologies Oy | Sharing of motion vector in 3D video coding |
US8913657B2 (en) * | 2008-10-27 | 2014-12-16 | Lg Electronics Inc. | Virtual view image synthesis method and apparatus |
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 | 宁波大学 | 一种基于视觉感知的立体视频编码方法 |
-
2013
- 2013-01-18 KR KR1020130006176A patent/KR20140048783A/ko unknown
- 2013-01-21 KR KR1020130006727A patent/KR20140048784A/ko unknown
- 2013-10-08 EP EP13845666.0A patent/EP2908529B1/en active Active
- 2013-10-08 CN CN201380063393.4A patent/CN104995916B/zh active Active
- 2013-10-08 JP JP2015536678A patent/JP6106757B2/ja active Active
- 2013-10-08 KR KR1020130120070A patent/KR102185200B1/ko active IP Right Grant
- 2013-10-08 CN CN201811166578.9A patent/CN109068143B/zh active Active
- 2013-10-08 US US14/434,321 patent/US10034020B2/en active Active
- 2013-10-08 WO PCT/KR2013/009000 patent/WO2014058216A1/ko active Application Filing
-
2017
- 2017-03-06 JP JP2017041913A patent/JP6446488B2/ja active Active
-
2018
- 2018-06-21 US US16/014,396 patent/US10368100B2/en active Active
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150114356A (ko) | 2014-03-28 | 2015-10-12 | 경희대학교 산학협력단 | 깊이 정보를 이용한 비디오 부호화 방법 및 장치 |
KR20150114355A (ko) | 2014-03-28 | 2015-10-12 | 경희대학교 산학협력단 | 깊이 정보를 이용한 비디오 부호화 방법 및 장치 |
KR20150114357A (ko) | 2014-03-28 | 2015-10-12 | 경희대학교 산학협력단 | 깊이 정보를 이용한 비디오 부호화 장치 및 그 방법 |
KR20160030147A (ko) | 2014-03-28 | 2016-03-16 | 경희대학교 산학협력단 | 깊이 정보를 이용한 비디오 부호화 장치 및 그 방법 |
KR20160030146A (ko) | 2014-03-28 | 2016-03-16 | 경희대학교 산학협력단 | 깊이 정보를 이용한 비디오 부호화 방법 및 장치 |
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 |
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 |
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 |
US10021391B2 (en) | 2014-03-28 | 2018-07-10 | University-Industry Cooperation Group Of Kyung Hee University | Method and apparatus for encoding of video using depth information |
US10051287B2 (en) | 2014-03-28 | 2018-08-14 | University-Industry Cooperation Group Of Kyung Hee University | Method and apparatus for encoding of video using depth information |
US10674179B2 (en) | 2014-03-28 | 2020-06-02 | University-Industry Cooperation Group Of Kyung Hee University | Method and apparatus for encoding of video using depth information |
Also Published As
Publication number | Publication date |
---|---|
US10368100B2 (en) | 2019-07-30 |
CN109068143A (zh) | 2018-12-21 |
JP2017139780A (ja) | 2017-08-10 |
US10034020B2 (en) | 2018-07-24 |
CN104995916A (zh) | 2015-10-21 |
EP2908529A1 (en) | 2015-08-19 |
US20180332306A1 (en) | 2018-11-15 |
JP6106757B2 (ja) | 2017-04-05 |
KR20140046385A (ko) | 2014-04-18 |
EP2908529B1 (en) | 2020-12-09 |
KR102185200B1 (ko) | 2020-12-01 |
US20150264398A1 (en) | 2015-09-17 |
WO2014058216A1 (ko) | 2014-04-17 |
CN109068143B (zh) | 2022-09-09 |
JP6446488B2 (ja) | 2018-12-26 |
EP2908529A4 (en) | 2016-04-20 |
JP2015532558A (ja) | 2015-11-09 |
KR20140048783A (ko) | 2014-04-24 |
CN104995916B (zh) | 2018-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10659758B2 (en) | Image encoding method and image decoding method | |
JP6446488B2 (ja) | ビデオデータデコーディング方法及びビデオデータデコーディング装置 | |
JP6026534B2 (ja) | 深度範囲の変動を伴う動き深度マップのコーディング | |
JP5805871B2 (ja) | 3次元ビデオコーデックにおける深度マップのためのスライスヘッダ予測 | |
TWI539796B (zh) | 視差向量推導 | |
JP2023527920A (ja) | 映像符号化および映像復号のための方法、装置およびコンピュータプログラム製品 | |
US20130271565A1 (en) | View synthesis based on asymmetric texture and depth resolutions | |
TWI566589B (zh) | 三維視訊之視圖合成 | |
KR20160072102A (ko) | 멀티-뷰 비디오 코딩에 있어서, 뷰 합성 예측 방법 및 이를 이용한 머지 후보 리스트 구성 방법 | |
KR20150132505A (ko) | 스킵 및 직접 모드들에 대한 3d 비디오 코딩에서의 디스패리티 벡터 유도 | |
KR20080063323A (ko) | 스케일링가능한 비디오 코딩을 이용한 멀티-뷰 비디오 코딩 | |
KR101862498B1 (ko) | 비디오 코딩에서 뎁스 픽처 코딩 방법 및 장치 | |
KR102343817B1 (ko) | 멀티-뷰 비디오의 디코딩 방법 및 장치 | |
KR20160072105A (ko) | 멀티-뷰 비디오를 디코딩하는 비디오 디코딩 장치 및 방법 | |
KR20140124434A (ko) | 깊이 정보 맵 부호화/복호화 방법 및 장치 | |
WO2015141977A1 (ko) | 3d 비디오 부호화/복호화 방법 및 장치 | |
KR102234851B1 (ko) | 인트라 예측 모드 복호화 방법 및 장치 | |
KR20150010249A (ko) | 제한적인 움직임 정보 유도를 통한 메모리 효율성을 향상시키는 방법 및 장치 | |
KR20140124432A (ko) | 깊이 정보 맵 부호화/복호화 방법 및 장치 | |
KR20140124433A (ko) | 깊이 정보 맵 부호화/복호화 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant |