KR20240013709A - 이머시브 영상 복호화 방법 및 이머시브 영상 부호화방법 - Google Patents
이머시브 영상 복호화 방법 및 이머시브 영상 부호화방법 Download PDFInfo
- Publication number
- KR20240013709A KR20240013709A KR1020230096249A KR20230096249A KR20240013709A KR 20240013709 A KR20240013709 A KR 20240013709A KR 1020230096249 A KR1020230096249 A KR 1020230096249A KR 20230096249 A KR20230096249 A KR 20230096249A KR 20240013709 A KR20240013709 A KR 20240013709A
- Authority
- KR
- South Korea
- Prior art keywords
- image
- depth
- viewpoint
- value
- atlas
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000013138 pruning Methods 0.000 description 44
- 238000012545 processing Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 14
- 230000033001 locomotion Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 238000005457 optimization Methods 0.000 description 7
- 238000012856 packing Methods 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 5
- 230000015654 memory Effects 0.000 description 5
- 238000013139 quantization Methods 0.000 description 5
- 238000003786 synthesis reaction Methods 0.000 description 5
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 102100037812 Medium-wave-sensitive opsin 1 Human genes 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- 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
- 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/156—Mixing image signals
-
- 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/172—Processing image signals image signals comprising non-image signal components, e.g. headers or format information
- H04N13/178—Metadata, e.g. disparity information
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Library & Information Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 개시에 따른 이머시브 영상 복호화 방법은, 시점에 대한 깊이 보조 정보가 존재하는지 여부를 결정하는 단계; 및 상기 시점에 대한, 깊이 보조 정보가 존재하는 것으로 결정된 경우, 상기 깊이 보조 정보의 타입을 결정하는 단계를 포함할 수 있다.
Description
본 개시는 회전 및 병진 움직임에 대한 운동 시차를 지원하는 이머시브 영상의 부/복호화 방법에 관한 것이다.
가상현실(virtual reality) 서비스는 전방위 영상을 실사 혹은 CG (Computer Graphics) 형태로 생성하여 HMD, 스마트폰 등에 재생함으로써 몰입감 및 현장감이 극대화된 서비스를 제공하는 방향으로 진화하고 있다. 현재 HMD를 통해 자연스럽고 몰입감 있는 전방위 영상을 재생하려면 6 자유도 (DoF: Degrees of Freedom)를 지원해야 하는 것으로 알려져 있다. 6DoF 영상은 (1) 좌우 회전, (2) 상하 회전, (3) 좌우 이동, (4) 상하 이동 등 여섯 방향에 대해 자유로운 영상을 HMD 화면을 통해 제공해야 한다. 하지만 현재 실사에 기반한 대부분의 전방위 영상은 회전운동만을 지원하고 있다. 이에, 6DoF 전방위 영상의 획득, 재현 기술 등의 분야에 대한 연구가 활발히 진행 중에 있다.
본 개시는 시점 별 깊이 보조 정보를 부/복호화하는 방법을 제공하는 것을 목적으로 한다.
구체적으로, 본 개시는, 시점 별 깊이 보조 정보의 타입에 대한 정보를 부/복호화하는 방법을 제안한다.
구체적으로, 본 개시는 블록 단위로 깊이 추정 정보를 부/복호화하는 방법을 제공하는 것을 목적으로 한다.
본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시에 따른 이머시브 영상 복호화 방법은, 시점에 대한 깊이 보조 정보가 존재하는지 여부를 결정하는 단계; 및 상기 시점에 대한, 깊이 보조 정보가 존재하는 것으로 결정된 경우, 상기 깊이 보조 정보의 타입을 결정하는 단계를 포함한다.
본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.
본 개시에 의하면, 시점 별 깊이 보조 정보를 부/복호화함으로써, 깊이 정보 부/복호화를 위한 비트레이트를 감소할 수 있다.
본 개시에 의하면, 시점 별 깊이 보조 정보의 타입을 지정하여, 컨텐트 타입에 적합한 깊이 보조 정보를 선택할 수 있는 효과가 있다.
본 개시에 의하면, 구면 조화 함수에 대한 정보가 부/복호화되는 위치를 선별하여, 부/복호화하여야 하는 데이터량을 줄일 수 있는 효과가 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 일 실시예에 따른 이머시브 영상 처리 장치의 블록도이다.
도 2는 본 개시의 일 실시예에 따른 이머시브 영상 출력 장치의 블록도이다.
도 3은 이머시브 영상 처리 방법의 흐름도이다.
도 4는 아틀라스 부호화 과정의 흐름도이다.
도 5는 이머시브 영상 출력 방법의 흐름도이다.
도 6은 하나의 시점이 복수의 블록들로 분할된 예를 나타낸다.
도 7은 블록의 재귀적 분할 정보에 따른, 블록의 분할 형태를 나타낸 것이다.
도 2는 본 개시의 일 실시예에 따른 이머시브 영상 출력 장치의 블록도이다.
도 3은 이머시브 영상 처리 방법의 흐름도이다.
도 4는 아틀라스 부호화 과정의 흐름도이다.
도 5는 이머시브 영상 출력 방법의 흐름도이다.
도 6은 하나의 시점이 복수의 블록들로 분할된 예를 나타낸다.
도 7은 블록의 재귀적 분할 정보에 따른, 블록의 분할 형태를 나타낸 것이다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 개시를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다. 후술하는 예시적 실시예들에 대한 상세한 설명은, 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 실시예를 실시할 수 있기에 충분하도록 상세히 설명된다. 다양한 실시예들은 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 개시의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 실시예의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 예시적 실시예들의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다.
본 개시에서 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 개시의 어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결 되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 개시의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 개시의 본질에서 벗어나지 않는 한 본 개시의 권리범위에 포함된다.
본 개시에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 개시를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 개시에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 즉, 본 개시에서 특정 구성을 "포함"한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 개시의 실시 또는 본 개시의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
본 개시의 일부의 구성 요소는 본 개시에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 개시는 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 개시의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 개시의 권리범위에 포함된다.
이하, 도면을 참조하여 본 개시의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략하고, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
이머시브 영상은, 사용자의 시청 위치가 변경될 경우, 뷰 포트도 동적으로 변경될 수 있는 영상을 의미한다. 이머시브 영상을 구현하기 위해, 복수개의 입력 영상들이 요구된다. 복수개의 입력 영상들 각각을 소스 영상 또는 시점 영상이라 호칭할 수 있다. 각각의 시점 영상들에는 상이한 뷰(view) 인덱스가 할당될 수 있다.
이머시브 영상은 3DoF (Degree of Freedom), 3DoF+, Windowed-6DoF 또는 6DoF 타입 등으로 분류될 수 있다. 3DoF 기반의 이머시브 영상은, 텍스처 영상만을 이용하여 구현될 수 있다. 반면, 3DoF+ 또는 6DoF 등 깊이 정보를 포함하는 이머시브 영상을 렌더링하기 위해서는, 텍스처 영상뿐만 아니라, 깊이 영상(또는, 깊이 맵)도 요구된다.
후술되는 실시예들은 3DoF+ 및/또는 6DoF 등 깊이 정보를 포함하는 이머시브 영상 처리를 위한 것으로 가정한다. 또한, 시점 영상은 텍스처 영상 및 깊이 영상으로 구성된 것으로 가정한다.
도 1은 본 개시의 일 실시예에 따른 이머시브 영상 처리 장치의 블록도이다.
도 1을 참조하면, 본 개시에 따른 이머시브 영상 처리 장치는 시점 최적화부(View Optimizer, 110), 아틀라스(Atlas) 생성부(120), 메타데이터 생성부(130), 영상 인코더부(140) 및 비트스트림 생성부(150)를 포함할 수 있다.
이머시브 영상 처리 장치는, 복수 쌍 영상, 카메라 내부 변수 및 카메라 외부 변수를 입력 값으로 받아, 이머시브 영상을 부호화한다. 여기서, 복수 쌍 영상은, 텍스처 영상(Attribute component) 및 깊이 영상(Geometry component)을 포함한다. 각 쌍은 상이한 시점(view)을 가질 수 있다. 이에 따라, 한 쌍의 입력 영상을 시점 영상이라 호칭할 수도 있다. 시점 영상들 각각이 인덱스에 의해 구분될 수 있다. 이때, 각 시점 영상들에 할당되는 인덱스를 시점(view) 또는 시점 인덱스(view index)라 호칭할 수 있다.
카메라 내부 변수는, 초점 거리 및 주점 위치 등을 포함하고, 카메라 외부 변수는 카메라 위치 및 방향 등을 포함한다. 카메라 내부 변수 및 카메라 외부 변수는, 카메라 파라미터 또는 시점 파라미터로 취급될 수 있다.
시점 최적화부(110)는 시점 영상들을 복수개의 그룹들로 분할한다. 시점 영상들이 복수개의 그룹들로 분할함으로써, 각 그룹별 독립적인 부호화 처리가 수행될 수 있다. 일 예로, 공간적으로 연속된 N 개의 카메라들에 의해 촬영된 시점 영상들을 하나의 그룹들로 분류할 수 있다. 이로써, 깊이 정보가 상대적으로 일관적인(coherent) 시점 영상들을 하나의 그룹으로 묶을 수 있고, 이에 따라, 렌더링 품질을 향상시킬 수 있다.
또한, 그룹 간 정보의 의존성을 제거함으로써, 사용자가 시청 중인 영역의 정보만을 선택적으로 가져와 렌더링을 수행하는 임의 공간 접근(spatial random access) 서비스를 가능하게 할 수 있다.
시점 영상들을 복수개의 그룹들로 분할할 것인지 여부는 선택적(optional)일 수 있다.
또한, 시점 최적화부(110)는 시점 영상들을 기본 영상 및 추가 영상으로 분류할 수 있다. 기본 영상은 프루닝 우선 순위가 가장 높은 시점 영상으로서 프루닝되지 않는 영상을 나타내고, 추가 영상은 기본 영상보다 프루닝 우선 순위가 낮은 시점 영상을 나타낸다.
시점 최적화부(110)는 시점 영상들 중 적어도 하나를 기본 영상으로 결정할 수 있다. 기본 영상으로 선택되지 않은 시점 영상은 추가 영상으로 분류될 수 있다.
시점 최적화부(110)는 시점 영상의 시점 위치를 고려하여, 기본 영상을 결정할 수 있다. 일 예로, 복수의 시점 영상들 중 시점 위치가 중심인 시점 영상이 기본 영상으로 선택될 수 있다.
또는, 시점 최적화부(110)는 카메라 파라미터에 기초하여, 기본 영상을 선택할 수 있다. 구체적으로, 시점 최적화부(110)는 카메라 인덱스, 카메라간 우선 순위, 카메라의 위치 또는 관심 영역 카메라인지 여부 중 적어도 하나에 기초하여 기본 영상을 선택할 수 있다.
일 예로, 카메라 인덱스가 가장 작은 시점 영상, 카메라 인덱스가 가장 큰 시점 영상, 기 정의된 값과 동일한 카메라 인덱스를 갖는 시점 영상, 우선순위가 가장 높은 카메라를 통해 촬영된 시점 영상, 우선 순위가 가장 낮은 카메라를 통해 촬영된 시점 영상, 기 정의된 위치(예컨대, 중심 위치)의 카메라를 통해 촬영된 시점 영상 또는 관심 영역 카메라를 통해 촬영된 시점 영상 중 적어도 하나가 기본 영상으로 결정될 수 있다.
또는, 시점 최적화부(110)는 시점 영상들의 품질에 기초하여, 기본 영상을 결정할 수 있다. 일 예로, 시점 영상들 중 품질이 가장 높은 시점 영상이 기본 영상으로 결정될 수 있다.
또는, 시점 최적화부(110)는 시점 영상들 간, 데이터 중복 정도를 검사한 뒤, 타 시점 영상들의 중복 데이터 비율을 고려하여, 기본 영상을 결정할 수 있다. 일 예로, 타 시점 영상들과의 중복 데이터 비율이 가장 높은 시점 영상 또는 타 시점 영상들과의 중복 데이터 비율이 가장 낮은 시점 영상을 기본 영상으로 결정할 수 있다.
복수개의 시점 영상들이 기본 영상으로 설정될 수도 있다.
아틀라스 생성부(120)는 프루닝을 수행하여 프루닝 마스크를 생성한다. 그리고, 프루닝 마스크를 이용하여 패치를 추출하고, 기본 영상 및/또는 추출된 패치를 결합하여 아틀라스를 생성한다. 시점 영상들을 복수의 그룹들로 분할된 경우, 각 그룹별 독립적으로 위 과정이 수행될 수 있다.
생성된 아틀라스는 텍스처 아틀라스 및 깊이 아틀라스로 구성될 수 있다. 텍스처 아틀라스는 기본 텍스처 영상 및/또는 텍스처 패치들이 결합된 영상을 나타내고, 깊이 아틀라스는 기본 깊이 영상 및/또는 깊이 패치들이 결합된 영상을 나타낸다.
아틀라스 생성부(120)는 프루닝부(Pruning unit, 122), 집합부(Aggregation Unit, 124) 및 패치 패킹부(Patch Packing Unit, 126)을 포함할 수 있다.
프루닝부(122)는 프루닝 우선 순위에 기초하여, 추가 영상에 대한 프루닝을 수행한다. 구체적으로, 추가 영상보다 프루닝 우선 순위가 높은 참조 영상을 이용하여 추가 영상에 대한 프루닝을 수행할 수 있다.
참조 영상은, 기본 영상을 포함한다. 아울러, 추가 영상의 프루닝 우선 순위에 따라, 참조 영상은 다른 추가 영상을 더 포함할 수도 있다.
추가 영상을 참조 영상으로 이용할 수 있는지 여부를 선택적으로 결정할 수도 있다. 일 예로, 추가 영상을 참조 영상으로 이용하지 않도록 설정된 경우, 기본 영상만이 참조 영상으로 설정될 수 있다.
반면, 추가 영상이 참조 영상으로 이용 가능하도록 설정된 경우, 기본 영상 및 추가 영상보다 프루닝 우선 순위가 높은 다른 추가 영상이 참조 영상으로 설정될 수 있다.
프루닝 과정을 통해, 추가 영상과 참조 영상간의 중복 데이터가 제거될 수 있다. 구체적으로, 깊이 영상에 기반한 워핑(warping) 과정을 통해, 추가 영상에서 참조 영상과 중복된 데이터를 제거할 수 있다. 일 예로, 추가 영상 및 참조 영상 사이 깊이 값을 비교하고, 그 차분이 문턱값 이하인 경우, 해당 픽셀이 중복 데이터인 것으로 판단할 수 있다.
프루닝 수행 결과, 추가 영상 내 각 픽셀이 유효한지 또는 무효한지 여부의 정보를 포함하는 프루닝 마스크가 생성될 수 있다. 프루닝 마스크는 추가 영상 내 각 픽셀이 유효인지 또는 무효인지 여부를 나타내는 바이너리 영상일 수 있다. 일 예로, 프루닝 마스크에서, 참조 영상과 중복 데이터로 판별된 픽셀은 0의 값을 갖고, 참조 영상과 중복 데이터가 아닌 것으로 판별된 픽셀은 1의 값을 가질 수 있다.
중복되지 않는 영역은 사각형이 아닌 형태를 가질 수 있음에 반해, 패치는 사각 형태로 제한된다. 이에 따라, 패치는 유효(Valid) 영역뿐만 아니라, 무효(Invaild) 영역도 포함할 수 있다. 여기서, 유효 영역은, 추가 영상과 참조 영상 간 중복되지 않은 픽셀들로 구성된 영역을 의미한다. 즉, 유효 영역은 추가 영상에는 포함되나 참조 영상에는 포함되지 않는 데이터를 포함하는 영역을 나타낸다. 무효 영역은, 추가 영상과 참조 영상 간 중복되는 픽셀들로 구성된 영역을 의미한다. 유효 영역이 포함하는 픽셀/데이터를 유효 픽셀/유효 데이터라 호칭할 수 있고, 무효 영역이 포함하는 픽셀/데이터를 무효 픽셀/무효 데이터라 호칭할 수 있다.
집합부(124)는 프레임 단위로 생성된 프루닝 마스크를 인트라 기간(intra-period) 단위로 결합한다.
또한, 집합부(124)는 클러스터링 과정을 통해, 결합된 프루닝 마스크 영상으로부터 패치를 추출할 수 있다. 구체적으로, 결합된 프루닝 마스크 영상 내 유효 데이터를 포함하는 사각 형태의 영역을 패치로서 추출할 수 있다. 유효 영역의 형태와 관계없이, 사각 형태로 패치가 추출되는 바, 비사각 형태의 유효 영역으로부터 추출된 패치는 유효 데이터뿐만 아니라 무효 데이터도 포함될 수 있다.
이때, 집합부(124)는 부호화 효율을 저감시키는 L 모양 또는 C 모양의 패치를 재분할할 수 있다. 여기서, L 모양 패치는, 유효 영역의 분포가 L자 형태인 것을 나타내고, C 모양 패치는, 유효 영역의 분포가 C자 형태인 것을 나타낸다.
유효 영역의 분포가, L자 또는 C자인 경우, 패치 내 비유효 영역이 점유하는 영역이 상대적으로 크다. 이에 따라, L 모양 또는 C 모양 패치를 복수개의 패치들로 분할하여, 부호화 효율 향상을 꾀할 수 있다.
프루닝되지 않은 시점 영상에 대해서는, 시점 영상 전체가 하나의 패치로 취급될 수 있다. 구체적으로, 프루닝되지 않은 시점 영상을 소정의 투사 포맷으로 전개한 2D 영상 전체를 하나의 패치로 취급할 수 있다. 투사 포맷은, 비등장방형(ERP, Equirectangular Projection Format), 큐브맵(Cube-map) 또는 퍼스텍티브 투사 포맷(Perspective Projection Format) 중 적어도 하나를 포함할 수 있다.
여기서, 프루닝되지 않은 시점 영상은, 프루닝 우선 순위가 가장 높은 기본 영상을 의미한다. 또는, 기본 영상 및 참조 영상과 중복 데이터가 존재하지 않은 추가 영상을 프루닝되지 않은 시점 영상으로 정의할 수도 있다. 또는, 참조 영상과의 중복 데이터가 존재하는지 여부와 무관하게, 임의로 프루닝 대상에서 제외된 추가 영상도 프루닝되지 않은 시점 영상이라 정의될 수 있다. 즉, 참조 영상과 중복되는 데이터가 존재하는 추가 영상이라 하더라도, 프루닝되지 않은 시점 영상이라 정의될 수 있다.
패킹부(126)는, 패치를 사각 형태의 영상에 패킹한다. 패치 패킹 시, 패치의 크기 변환, 회전 또는 플립 등의 변형이 수반될 수 있다. 패치들이 패킹된 영상을 아틀라스라 정의할 수 있다.
구체적으로, 패킹부(126)는, 기본 텍스처 영상 및/또는 텍스처 패치들을 패킹하여 텍스처 아틀라스를 생성할 수 있고, 기본 깊이 영상 및/또는 깊이 패치들을 패킹하여 깊이 아틀라스를 생성할 수 있다.
기본 영상은, 기본 영상 전체가 하나의 패치로서 취급될 수 있다. 즉, 기본 영상이 그대로 아틀라스에 패킹될 수 있다. 영상 전체가 하나의 패치로 취급될 경우, 해당 패치를 완전 영상(Complete View) 또는 완전 패치라 호칭할 수도 있다.
아틀라스 생성부(120)가 생성하는 아틀라스의 개수는 카메라 리그의 배치 구조, 깊이 맵의 정확도 또는 시점 영상의 개수 중 적어도 하나에 기초하여 결정될 수 있다.
메타데이터 생성부(130)는 영상 합성을 위한 메타데이터를 생성한다. 메타데이터는 카메라 관련 데이터, 프루닝 관련 데이터, 아틀라스 관련 데이터 또는 패치 관련 데이터 중 적어도 하나를 포함할 수 있다.
프루닝 관련 데이터는, 시점 영상들 간 프루닝 우선 순위를 결정하기 위한 정보들을 포함한다. 일 예로, 시점 영상이 루트 노드인지 여부를 나타내는 플래그
또는 시점 영상이 리프 노드인지 여부를 나타내는 플래그 중 적어도 하나가 부호화될 수 있다. 루트 노드는 프루닝 우선 순위가 가장 높은 시점 영상(즉, 기본 영상)을 나타내고, 리프 노드는 프루닝 우선 순위가 가장 낮은 시점 영상을 나타낸다.
시점 영상이 루트 노드가 아닌 경우, 부모 노드 인덱스가 추가 부호화될 수 있다. 부모 노드 인덱스는, 부모 노드인 시점 영상의 영상 인덱스를 나타낼 수 있다.
또는, 시점 영상이 리프 노드가 아닌 경우, 자식 노드 인덱스가 추가 부호화될 수 있다. 자식 노드 인덱스는, 자식 노드인 시점 영상의 영상 인덱스를 나타낼 수 있다.
아틀라스 관련 데이터는, 아틀라스의 크기 정보, 아틀라스의 개수 정보, 아틀라스들 간 우선 순위 정보, 또는 아틀라스가 완전한 영상을 포함하는지 여부를 나타내는 플래그 중 적어도 하나를 포함할 수 있다. 아틀라스의 크기는, 텍스처 아틀라스의 크기 정보 및 깊이 아틀라스의 크기 정보 중 적어도 하나를 포함할 수 있다. 이때, 깊이 아틀라스의 크기가 텍스처 아틀라스의 크기와 동일한지 여부를 나타내는 플래그가 추가적으로 부호화될 수 있다. 깊이 아틀라스의 크기가 텍스처 아틀라스의 크기와 상이한 경우, 깊이 아틀라스의 축소 비율 정보(예컨대, 스케일링 관련 정보)가 추가 부호화될 수 있다. 아틀라스 관련 정보는, 비트스트림 내 "View parameters list" 항목에 포함될 수 있다.
일 예로, 깊이 아틀라스를 축소하는 것이 허용되는지 여부를 나타내는 신택스 geometry_scale_enabled_flag가 부호화/복호화될 수 있다. 신택스 geometry_scale_enabled_flag의 값이 0인 것은, 깊이 아틀라스를 축소하는 것이 허용되지 않음을 나타낸다. 이 경우, 깊이 아틀라스는 텍스처 아틀라스와 동일한 크기를 갖는다.
신택스 geometry_scale_enabled_flag의 값이 1인 것은, 깊이 아틀라스를 축소하는 것이 허용됨을 나타낸다. 이 경우, 깊이 아틀라스의 축소 비율을 결정하기 위한 정보가 추가 부호화/복호화될 수 있다. 일 예로, 깊이 아틀라스의 가로 방향 축소 비율을 나타내는 신택스 geometry_scaling_factor_x 및 깊이 아틀라스의 세로 방향 축소 비율을 나타내는 신택스 geometry_scaling_factor_y가 추가 부호화/복호화될 수 있다.
이머시브 영상 출력 장치에서는, 깊이 아틀라스의 축소 비율에 대한 정보를 복호화한 뒤, 축소된 깊이 아틀라스를 원래 크기로 복원할 수 있다.
패치 관련 데이터는, 아틀라스 영상 내 패치의 위치 및/또는 크기, 패치가 속하는 시점 영상 및 시점 영상 내 패치의 위치 및/또는 크기를 특정하기 위한 정보들을 포함한다. 일 예로, 아틀라스 영상 내 패치의 위치를 나타내는 위치 정보 또는 아틀라스 영상 내 패치의 크기를 나타내는 크기 정보 중 적어도 하나가 부호화될 수 있다. 또한, 패치가 유래된 시점 영상을 식별하기 위한 소스 인덱스가 부호화될 수 있다. 소스 인덱스는, 패치의 원 출처인 시점 영상의 인덱스를 나타낸다. 또한, 시점 영상 내 패치에 대응되는 위치를 나타내는 위치 정보 또는 시점 영상 내 패치에 대응되는 크기를 나타내는 위치 정보가 부호화될 수 있다. 패치 관련 정보는, 비트스트림 내 "Atlas data" 항목에 포함될 수 있다.
영상 인코더부(140)는 아틀라스를 인코딩한다. 시점 영상들이 복수개의 그룹들로 분류된 경우, 그룹 별로 아틀라스가 생성될 수 있다. 이에 따라, 영상 인코딩은, 그룹별 독립적으로 수행될 수 있다.
영상 인코더부(140)는 텍스처 아틀라스를 인코딩하는 텍스처 영상 인코더부(142) 및 깊이 아틀라스를 인코딩하는 뎁스 영상 인코더부(144)를 포함할 수 있다.
비트스트림 생성부(150)는 인코딩된 영상 데이터 및 메타데이터를 기초로 비트스트림을 생성한다. 생성된 비트스트림은 이머시브 영상 출력 장치로 전송될 수 있다.
도 2는 본 개시의 일 실시예에 따른 이머시브 영상 출력 장치의 블록도이다.
도 2를 참조하면, 본 개시에 따른 이머시브 영상 출력 장치는 비트스트림 파싱부(210), 영상 디코더부(220), 메타데이터 처리부(230) 및 영상 합성부(240)를 포함할 수 있다.
비트스트림 파싱부(210)는 비트스트림으로부터 영상 데이터 및 메타데이터를 파싱한다. 영상 데이터는 부호화된 아틀라스의 데이터를 포함할 수 있다. 임의 공간 접근 서비스가 지원되는 경우, 사용자의 시청 위치를 포함하는 부분 비트스트림만을 수신할 수도 있다.
영상 디코더부(220)는 파싱된 영상 데이터를 복호화한다. 영상 디코더부(220)는 텍스처 아틀라스를 디코딩하기 위한 텍스처 영상 디코더부(222) 및 깊이 아틀라스를 디코딩하기 위한 뎁스 영상 디코더부(224)를 포함할 수 있다.
메타데이터 처리부(230)는 파싱된 메타데이터를 언포맷팅한다.
언포맷팅된 메타데이터는 특정 시점의 영상을 합성하는데 이용될 수 있다. 일 예로, 이머시브 영상 출력 장치로, 사용자의 움직임 정보가 입력되면, 메타데이터 처리부(230)는 사용자의 움직임에 따른 뷰포트 영상을 재현하기 위해, 영상 합성에 필요한 아틀라스 및 영상 합성에 필요한 패치들, 및/또는 아틀라스 내 상기 패치들의 위치/크기 등을 결정할 수 있다.
영상 합성부(240)는 사용자의 움직임에 따른 뷰포트 영상을 동적으로 합성할 수 있다. 구체적으로, 영상 합성부(240)는 사용자의 움직임에 따라 메타데이터 처리부(230)에서 결정된 정보를 이용하여, 아틀라스로부터 뷰포트 영상을 합성하는데 필요한 패치들을 추출할 수 있다. 구체적으로, 뷰포트 영상을 합성하는데 필요한 시점 영상의 정보를 포함하는 아틀라스 및 상기 아틀라스 내 상기 시점 영상으로부터 추출된 패치들을 추출하고, 추출된 패치들을 합성하여, 뷰포트 영상을 생성할 수 있다.
도 3 및 도 5는 각각 이머시브 영상 처리 방법 및 이머시브 영상 출력 방법의 흐름도를 도시한 것이다.
이하의 흐름도들 상에서, 이탤릭체 또는 밑줄을 그어 표기된 것은, 각 단계의 수행을 위한 입력 또는 출력 데이터를 나타낸다. 또한, 이하의 흐름도들 상에서, 화살표는, 각 단계들의 처리 순서를 나타낸다. 이때, 화살표가 이어지지 않는 단계들은, 해당 단계들간의 시간적 선후가 결정되어 있지 않음을 의미하거나, 해당 단계들이 병렬 처리 될수 있음을 나타낸다. 또한, 이하의 흐름도들에 도시된 것과 상이한 순서로 이머시브 영상을 처리 또는 출력하는 것 역시 가능하다.
이머시브 영상 처리 장치는, 복수의 입력 영상, 카메라 내부 변수 및 카메라 외부 변수 중 적어도 하나를 입력받고, 입력된 데이터를 통해, 깊이맵 품질을 평가할 수 있다(S301). 여기서, 입력 영상은, 한 쌍의 텍스처 영상(Attribute component) 및 깊이 영상(Geometry component)으로 구성될 수 있다.
이머시브 영상 처리 장치는 복수 카메라의 위치 근접성을 기초로, 입력 영상들을 복수 그룹들로 분류할 수 있다(S302). 입력 영상들을 복수의 그룹들로 분류함으로써, 깊이값이 상대적으로 일관된(coherent), 인접 카메라들간 독립적으로 프루닝 및 인코딩이 수행되도록 할 수 있다. 또한, 위 과정을 통해, 사용자가 시청 중인 영역의 정보만을 이용하여 렌더링이 수행되는 임의 공간 접근 (Spatial Random Access) 서비스가 가능하게 될 수 있다.
다만, 상술한 S301 및 S302 단계들은, 선택적인 절차일 뿐이고, 본 과정이 반드시 수행되어야 하는 것은 아니다.
입력 영상들이 복수개의 그룹들로 분류된 경우, 후술될 절차들이, 그룹마다 독립적으로 수행될 수 있다.
이머시브 영상 처리 장치는 시점 영상들의 프루닝 우선 순위를 결정할 수 있다(S303). 구체적으로, 시점 영상들을 기본 영상 및 추가 영상으로 분류하고, 추가 영상들 간 프루닝 우선 순위를 설정할 수 있다.
이후, 프루닝 우선 순위에 기초하여, 아틀라스를 생성하고, 생성된 아틀라스를 부호화할 수 있다(S304). 아틀라스들의 부호화 과정은 도 4에 상세히 도시되었다.
구체적으로, 프루닝 파라미터(예컨대, 프루닝 우선 순위 등)를 결정하고(S311), 결정된 프루닝 파라미터에 기초하여, 시점 영상들에 대해 프루닝을 수행할 수 있다(S312). 프루닝 수행 결과, 우선 순위가 가장 높은 기본 영상은 원본 그대로 유지된다. 반면, 추가 영상에 대한 프루닝을 통해, 추가 영상과 참조 영상 간 중복 데이터가 제거된다. 깊이 영상에 기반한 워핑 과정을 통해, 추가 영상과 참조 영상 간 중복 데이터가 제거될 수 있다.
프루닝 수행 결과로 프루닝 마스크가 생성될 수 있다. 프루닝 마스크가 생성되면, 인트라 기간 단위로, 프루닝 마스크를 결합한다(S313). 그리고, 결합된 프루닝 마스크를 이용하여, 텍스처 영상 및 깊이 영상으로부터 패치를 추출할 수 있다(S314). 구체적으로, 결합된 프루닝 마스크를 텍스처 영상들 및 깊이 영상들에 마스킹하여, 패치를 추출할 수 있다.
이때, 프루닝되지 않은 시점 영상(예컨대, 기본 영상)은, 시점 영상 전체가 하나의 패치로 취급될 수 있다.
이후, 추출된 패치들을 패킹하고(S315), 아틀라스를 생성할 수 있다(S316). 구체적으로, 텍스처 아틀라스 및 깊이 아틀라스를 생성할 수 있다.
또한, 이머시브 영상 처리 장치는, 깊이 아틀라스를 기반으로, 픽셀의 유무효를 판단하기 위한 문턱값을 결정할 수 있다(S317). 일 예로, 아틀라스 내 값이 문턱값보다 작은 픽셀은 무효 픽셀에 해당하고, 값이 문턱값 이상인 픽셀은 유효 픽셀에 해당할 수 있다. 문턱값은, 영상 단위로 결정될 수도 있고, 패치 단위로 결정될 수도 있다.
데이터량 저감을 위해, 깊이 아틀라스의 크기를 특정 비율만큼 축소할 수 있다(S318). 깊이 아틀라스의 크기가 축소된 경우, 깊이 아틀라스의 축소 비율에 관한 정보(예컨대, 스케일링 팩터(scaling factor))가 부호화될 수 있다. 이머시브 영상 출력 장치에서는, 텍스처 아틀라스의 크기 및 스케일링 팩터를 통해 축소된 깊이 아틀라스를 원래 크기로 복원할 수 있다.
아틀라스 부호화과정에서 생성된 메타데이터(예컨대, 파라미터 세트, 시점 파라미터 리스트 또는 아틀라스 데이터 등)와 SEI(Supplemental Enhancement Information)와 결합한다(S305). 또한, 텍스처 아틀라스 및 깊이 아틀라스 각각을 부호화하여, 서브 비트스트림을 생성할 수 있다(S306). 그리고, 부호화된 메타데이터 및 부호화된 아틀라스를 다중화하여, 단일의 비트스트림을 생성할 수 있다(S307).
이머시브 영상 출력 장치는 이머시브 영상 처리 장치로부터 수신한 비트스트림을 역 다중화한다(S501). 이 결과, 비디오 데이터, 즉, 아틀라스 데이터 및 메타데이터가 각각 추출될 수 있다(S502, S503).
이머시브 영상 출력 장치는 파싱된 비디오 데이터를 기초로, 아틀라스를 복원할 수 있다(S504). 이때, 깊이 아틀라스가 특정 비율 축소된 경우, 메타데이터로부터 관련 정보를 획득하여, 깊이 아틀라스를 원래 크기로 스케일링할 수 있다(S505).
사용자의 움직임이 발생하면, 메타데이터에 기초하여, 사용자의 움직임에 따른 뷰포트 영상 합성을 위해 요구되는 아틀라스를 결정하고, 상기 아틀라스에 포함된 패치들을 추출할 수 있다. 뷰포트 영상을 생성 및 렌더링할 수 있다(S506). 이때, 생성된 패치들을 합성하기 위해, 각 패치의 크기/위치 정보 및 카메라 파라미터 등이 이용될 수 있다.
카메라와 물체 사이의 거리(m)에 역수를 취하여 유도된 값을 정규화하고, 정규화된 시차값들을 깊이값과 매핑할 수 있다. 구체적으로, 상기 거리에 역수를 취한 것을, 미터법 단위(1/m)로 표현되는 시차로 정의할 수 있다. 정규화된 시차를 깊이 영상 내 픽셀이 표현할 수 있는 픽셀 범위 중 하나의 값(예컨대, 깊이값)으로 표현할 수 있다. 이때, 픽셀 범위 중 최대값에 매핑되는 정규화된 시차값을 정규화된 최대 시차값이라 정의할 수 있고, 픽셀 범위 중 최소값에 매핑되는 정규화된 시차값을 정규화된 최소 시차값이라 정의할 수 있다. 일 예로, N비트 영상 하에서, 픽셀 값 (2N-1)에 매핑되는 정규화된 시차값을 정규화된 최대 시차값으로 정의하고, 픽셀 값 0에 매핑되는 정규화된 시차값을 정규화된 최소 시차값으로 정의할 수 있다.
식 1은, 미터법(1/m) 단위의 정규화된 시차값을 이용하여 깊이 영상 내 각 픽셀 값으로 변환하는 예를 나타낸다.
수학식 1에서, SampleValue는, 깊이 맵 내 픽셀값(즉, 깊이값)을 나타내고, NormDisparity는 미터법 단위(1/m)의 정규화된 시차값을 나타낸다. NormDispMin는 정규화된 최소 시차값을 나타내고, NormDispMax는 정규화된 최대 시차값을 나타낸다. MaxSmapleValue는, 하나의 픽셀로 표현할 수 있는 최대 픽셀 범위를 나타낸다. 일 예로, N 비트 영상에 대해, MaxSampleValue는, (2N - 1)로 설정될 수 있다. 여기서, 깊이 맵은, 깊이 정보로 구성된 픽처(프레임)을 나타내는 것이고, 일 예로, 깊이 아틀라스를 나타낼 수 있다.
깊이 범위(Geometry Range)는, 깊이 맵 내 최소값 및 최대값 사이로 정의될 수 있다. 깊이 값을 양자화하여 부/복호화할 수도 있다. 이 경우, 깊이 범위는, 양자화된 깊이 값들 중 최소값 및 최대값 사이로 정의될 수 있다.
한편, 복호화측, 즉, 이머시브 영상 출력 장치에서 깊이 범위를 추정하기 위한 보조(Assitance) 정보가 메타데이터로 부호화되어 시그날링될 수 있다. 본 개시의 일 실시예로, 상기 깊이 추정을 위한 보조 정보는, SEI (Supplementary Enhanced Information) 메시지로 규정되어 부/복호화될 수 있다.
깊이 추정을 위한 보조 SEI 메시지는, 일반적인 깊이 보조 SEI (Geometry Assistance SEI, 이하, GA SEI라 함) 메시지 또는 확장된 깊이 보조 SEI (Extended Geometry Assitance SEI, 이하, EGA SEI라 함) 메시지 중 적어도 하나를 포함할 수 있다.
EGA SEI 메시지 및 GA SEI 메시지는 공통적으로, 깊이 보조 정보를 포함할 수 있다. 깊이 보조 정보에 대한 상세한 설명은 후술할 표 2를 통해 상세히 설명한다.
한편, EGA SEI 메시지는, GA SEI 메시지 대비 깊이 보조 타입에 관한 정보를 더 포함할 수 있다. 이에 대해서는, 표 1을 통해 상세히 살펴보기로 한다.
표 1은 본 개시의 일 실시예에 따른, EGA SEI 메시지에 포함되는 깊이 보조 타입에 관한 구문 구조를 나타낸 것이다.
extended_geometry_assistance( payloadSize ) { | Descriptor |
ega_num_of_available_asssistance_types_minus1 | u(4) |
for( v = 0; v <= mvp_num_views_minus1; v++ ) { | |
ega_assistance_present_flag[ v ] | u(1) |
if( ega_assistance_present_flag[ v ] == 1 ) { | |
for( t = 0; t <= ega_num_of_asssistance_types_minus1; t++ ) { | |
ega_assistance_type_present_flag[ v ][ t ] | u(1) |
} | |
if( ega_assistance_type_present_flag[ v ][ 0 ] == 1) { | |
block_based_geometry_features( v ) | |
} | |
if(ega_assistance_type_present_flag[ v ][ 1 ] == 1) { | |
//something else, up to 16 types | |
} | |
} | |
} | |
} |
EGA SEI 메시지에는, 이용 가능한 보조 타입의 개수 정보, 시점 별 깊이 보조 정보가 존재하는지 여부를 나타내는 정보 또는 시점 별 보조 타입을 나타내는 정보 중 적어도 하나를 포함할 수 있다.일 예로, 표 1에서, 신택스 ega_num_of_available_asssistance_types_minus1는 각 시점에 대해 이용 가능한 보조 타입의 개수를 나타낸다. 일 예로, 신택스 ega_num_of_available_asssistance_types_minus1이 가리키는 값에서, 1을 더한값이, 이용 가능한 보조 타입의 개수를 나타낼 수 있다. 보조 타입들의 개수는 최대 16개 까지 지정될 수 있다.
신택스 ega_assistance_present_flag[ v ]는, 인덱스가 v인 시점에 대해, 깊이 보조 정보가 존재하는지 여부를 나타낸다. 일 예로, 신택스 ega_assistance_present_flag[ v ]의 값이 1인 것은, 인덱스가 v인 시점에 대해, 깊이 보조 정보가 존재함을 나타낸다. 반면, 신택스 ega_assistance_present_flag[ v ]의 값이 0인 것은, 인덱스가 v인 시점에 대해, 깊이 보조 정보가 존재하지 않음을 나타낸다.
인덱스가 v인 시점에 대한 신택스 ega_assistance_present_flag[ v ]가 1인 경우, 신택스 ega_assistance_type_present_flag[ v ][ t ]가 추가 부/복호화될 수 있다. 신택스 ega_assistance_type_present_flag[ v ][ t ]는, 인덱스가 v인 시점에 대해, 인덱스 t에 대응되는 타입의 깊이 보조 정보가 존재하는지 여부를 나타낸다. 일 예로, 신택스 ega_assistance_type_present_flag[ v ][ t ]가 1인 것은, 인덱스가 v인 시점에 대해, 인덱스 t에 대응되는 타입의 깊이 보조 정보가 존재함을 나타낸다. 반면, 신택스 ega_assistance_type_present_flag[ v ][ t ]가 0인 것은, 인덱스가 v인 시점에 대해, 인덱스 t에 대응되는 타입의 깊이 보조 정보가 존재하지 않음을 나타낸다.
타입 별로, 신택스 ega_assistance_type_present_flag[ v ][ t ]가 부호화되어 시그날링될 수 있다. 신택스 ega_assistance_type_present_flag[ v ][ t ]가 1인 경우, 인덱스가 t보다 큰 타입에 대해서는, ega_assistance_type_present_flag[ v ][ t ]의 부/복호화가 생략될 수 있다.
또한, 마지막 타입에 대해서는, 신택스 ega_assistance_type_present_flag[ v ][ t ]의 부/복호화가 생략될 수 있다. 즉, 마지막 타입을 제외한 잔여 타입들에 대한 신택스 ega_assistance_type_present_flag[ v ][ t ]의 값이 0인 경우, 마지막 타입에 대한 신택스 ega_assistance_type_present_flag[ v ][ t ]의 값이 1로 추론(infer)될 수 있다.
타입 마다 신택스 ega_assistance_type_present_flag[ v ][ t ]를 부/복호화하는 대신, 복수의 타입들 중 하나를 지시하는 인덱스를 부/복호화할 수도 있다. 일 예로, 신택스 ega_assitance_type_idx[v]은, 인덱스가 v인 시점에 대응되는 깊이 보조 정보의 타입을 지시한다.
시점별로 깊이 보조 정보가 부/복호화될 수 있다. 이때, 깊이 보조 정보의 타입에 따라, 깊이 정보의 보조 단위가 상이하게 설정될 수 있다. 일 예로, 깊이 보조 정보의 타입에 따라, 깊이 정보의 보조 단위는, 블록 단위, 슬라이스 단위, 타일 단위, 픽처 단위 또는 GOP 단위로 결정될 수 있다.
표 2는 깊이 정보의 보조 단위가 블록 단위인 경우, 깊이 보조 정보에 대한 구문 구조를 예시한 것이다. 한편, 후술되는 실시예들에서, 현재 블록은, 기본 블록, 기본 블록을 분할함으로써 생성된 블록들 중 분할 구조의 결정 대상인 블록 또는 깊이 추정 정보의 부/복호화 대상인 블록을 나타낸다.
block_based_geometry_features( v ) { | Descriptor |
bbgf_qs [ v ] | ue(v) |
bbgf_log2_bw_minus2 [ v ] | ue(v) |
bbgf_max_number_of_splits [ v ] | ue(v) |
gasBw = 1 << ( bbgf_log2_bw_minus2 + 2 ) | |
bbgf_projection_plane_height_minus1[ v ] | ue(v) |
bbgf_projection_plane_width_minus1[ v ] | ue(v) |
for( l = 0; l < ( bbgf_projection_plane_height_minus1[ v ] + gasBW ) /gasBW; l++ ) { | |
for( c = 0; c < ( bbgf_projection_plane_width_minus1[ v ] + gasBW ) / gasBW; c++ ) { | |
recursiveSplitFunction( l, c, 0 ) | |
} | |
} | |
} | |
recursiveSplitFunction( sbl, sbc, lvl ) { | |
if ( lvl < bbgf_max_number_of_splits ) { | |
bbgf_split_flag | u(1) |
} | |
if( lvl < bbgf_max_number_of_splits && bbgf_split_flag ) { | |
bbgf_quad_split_flag | u(1) |
if( bbgf_quad_split_flag ) { | |
recursiveSplitFunction( sbl, sbc, lvl + 1 ) | |
recursiveSplitFunction( sbl, sbc + 1, lvl + 1 ) | |
recursiveSplitFunction( sbl + 1, sbc, lvl + 1 ) | |
recursiveSplitFunction( sbl + 1, sbc + 1, lvl + 1 ) | |
} else { | |
bbgf_split_orientation_flag | u(1) |
bbgf_split_symmetry_flag | u(1) |
if( !bbgf_split_symmetry_flag ) { | |
bbgf_split_first_block_bigger | u(1) |
} | |
if( bbgf_split_orientation_flag ) { | |
recursiveSplitFunction( sbl, sbc, lvl + 1) | |
recursiveSplitFunction( sbl, sbc + 1, lvl + 1) | |
} else { | |
recursiveSplitFunction( sbl, sbc, lvl + 1) | |
recursiveSplitFunction( sbl + 1, sbc, lvl + 1) | |
} | |
} | |
} else { | |
bbgf_skip_flag | u(1) |
if( !bbgf_skip_flag ) { | |
if ( sbl == 0 && sbc == 0 ) { /*None*/ | |
LTMinFlag = 2 | |
LTMaxFlag = 2 | |
} else if( sbl == 0 ) { /*Left*/ | |
LTMinFlag = 0 | |
LTMaxFlag = 0 | |
} else if( sbc == 0 ) { /*Top*/ | |
LTMinFlag = 1 | |
LTMaxFlag = 1 | |
} else { | |
bbgf_ltmin_flag | u(1) |
bbgf_ltmax_flag | u(1) |
LTMinFlag = bbgf_ltmin_flag | |
LTMaxFlag = bbgf_ltmax_flag | |
} | |
bbgf_zmin_delta | se(v) |
bbgf_zmax delta | se(v) |
} | |
} | |
} |
표 2에서, 신택스 bbgf_qs [ v ]는, 인덱스가 v인 시점에 대한 양자화 파라미터(또는, 양자화 단계(Quantiaztion Step))를 나타낸다. 양자화 파라미터는, 후술될 깊이 정보 차분값을 양자화하는데 이용된 것일 수 있다.블록 단위로 깊이 범위를 추정하기 위해, 하나의 시점(즉, 프레임)을 복수의 블록들로 분할할 수 있다.
도 6은 하나의 시점이 복수의 블록들로 분할된 예를 나타낸다.
하나의 시점을 복수의 블록들로 분할함에 있어서, 먼저, 하나의 시점은 복수의 기본 블록 중 첫번째 블록의 좌상단 코너는, 픽처의 좌상단 코너 위치와 일치할 수 있다.
기본 블록은, 부호화기 및 복호화기에서 기 정의된 크기를 갖는 정방형태의 블록일 수 있다. 또는, 기본 블록의 크기를 나타내는 정보가 명시적으로 부호화되어 시그날링될 수 있다. 일 예로, 기본 블록의 너비, 높이 또는 크기(예컨대, 너비 x 높이)에 Log_2 함수를 취한 값 또는 상기 Log_2 함수를 취한값에서 오프셋(예컨대, 1 또는 2)를 차분한 값을 나타내는 정보를 명시적으로 부호화하여 시그날링할 수 있다. 일 예로, 표 2에서, 신택스 bbgf_log2_bw_minus2 [ v ]는 인덱스가 v인 시점에 대한 기본 블록의 크기를 나타낸다. 일 예로, 기본 블록의 크기를 나타내는 변수 bbgfBW는 다음의 수학식 2와 같이 유도될 수 있다.
도 6에서는, 기본 블록이 너비 및 높이가 모두 bbgfBW인 정방 형태인 것으로 가정하였다.
한편, 하나의 시점을 균일한 크기의 기본 블록들로 분할하기 위해, 프레임의 크기와 관련된 정보를 부/복호화할 수 있다. 일 예로, 표 2에서, 신택스 bbgf_projection_plane_width_minus1[ v ] 및 신택스 bbgf_projection_plane_height_minus1[ v ]각각은 깊이 보조 정보가 시그날링되는 투사 평면 상의, 루마 샘플 단위의 수평 방향 해상도(Resolution) 및 수직 방향 해상도를 나타낸다. 이때, 위 두 신택스 각각은, 기본 블록 단위의 크기를 나타낼 수 있다. 즉, 프레임의 수평 방향 해상도(즉, 너비)는, 신택스 bbgf_projection_plane_width_minus1[v]에 1을 더한 값에서 기본 블록의 너비를 곱한 값으로 설정되고, 프레임의 수직 방향 해상도(즉, 높이)는, 신택스 bbgf_projection_plane_height_minus1[v]에 1을 더한 값에, 기본 블록의 높이를 곱한 값으로 설정될 수 있다.
각 기본 블록은, 더 작은 블록들로 재귀적 분할될 수 있다. 여기서, 기본 블록 내 리프 노드 블록은 정방 형태의 블록일 수도 있고, 비 정방 형태의 블록일 수도 있다. 여기서, 리프 노드 블록은, 더 이상 분할되지 않는 블록을 나타낸다.
이를 위해, 블록의 재귀적 분할 구조를 지원하기 위한 정보가 부/복호화될 수 있다. 일 예로, 표 2에서, 신택스 bbgf_split_flag는, 현재 블록이 분할되는지 여부를 나타낸다. 신택스 bbgf_split_flag의 값이 1인 것은, 현재 블록이 더 작은 서브 블록들로 분할됨을 나타내고, 신택스 bbgf_split_flag의 값이 0인 것은, 현재 블록이 더 이상 분할되지 않음을 나타낸다.
현재 블록을 분할하기로 결정된 경우, 신택스 bbgf_quad_split_flag가 추가 부/복호화될 수 있다. 신택스 bbgf_quad_split_flag는, 현재 블록이 4개의 서브 블록들로 분할되는지 또는 2개의 서브 블록들로 분할되는지 여부를 나타낸다. 일 예로, 신택스 bbgf_quad_split_flag의 값이 0인 것은, 현재 블록이 2개의 서브 블록들로 분할됨을 나타낸다. 반면, 신택스 bbgf_quad_split_flag의 값이 1인 것은, 현재 블록이 4개의 서브 블록들로 분할됨을 나타낸다. 한편, bbgf_quad_split_flag의 값이 1인 경우, 현재 블록은 크기가 동일한 4개의 서브 블록들로 분할될 수 있다.
현재 블록이 2개의 서브 블록들로 분할되는 경우, 현재 블록의 분할 형태를 결정하기 위한 신택스가 추가 부/복호화될 수 있다. 일 예로, 신택스 bbgf_split_orientation_flag는, 현재 블록의 분할 방향을 나타낸다. 신택스 bbgf_split_orientation_flag 가 0인 것은, 현재 블록이 수평 방향으로 분할됨을 나타낸다. 반면, 신택스 bbgf_split_orientation_flag 가 1인 것은, 현재 블록이 수직 방향으로 분할됨을 나타낸다.
신택스 bbgf_split_symmetry_flag는 현재 블록이 비대칭 형태로 분할되는지 또는 대칭 형태로 분할되는지 여부를 나타낸다. 일 예로, 신택스 bbgf_split_symmetry_flag가 0인 것은, 현재 블록이 비대칭 분할됨을 나타낸다. 현재 블록이 비대칭 분할되는 경우, 현재 블록을 분할하여 생성되는 2개의 서브 블록들 각각의 크기는 상이할 수 있다. 반면, bbgf_split_symmetry_flag 가 1인 것은, 현재 블록이 대칭 분할됨을 나타낸다.
현재 블록이 비대칭 분할되는 경우, 신택스 bbgf_split_first_block_bigger가 추가 부/복호화될 수 있다. 일 예로, 신택스 bbgf_split_first_block_bigger의 값이 1인 경우, 첫번째 서브 블록(즉, 현재 블록의 좌측 경계 또는 상단 경계에 접하는 서브 블록)의 크기가 두번째 서브 블록(즉, 현재 블록의 우측 경계 또는 하단 경계에 접하는 서브 블록)의 크기보다 크게 설정될 수 있다. 반면, 신택스 bbgf_split_first_block_bigger의 값이 0인 경우, 첫번째 서브 블록의 크기가 두번째 서브 블록의 크기보다 작게 설정될 수 있다.
도 7은 블록의 재귀적 분할 정보에 따른, 블록의 분할 형태를 나타낸 것이다.
한편, 표 2에서, 신택스 bbgf_max_number_of_splits[v]는, 인덱스가 v인 시점에서의 최대 분할 횟수(즉, 최대 분할 깊이)를 나타낸다. 분할된 블록의 분할 깊이가 신택스 bbgf_max_number_of_splits지 지시하는 최대 분할 깊이에 다다른 경우, 해당 블록에 대한 분할 구조에 대한 정보의 부/복호화가 생략되고, 해당 블록은 더 이상 분할되지 않을 수 있다.
리프 노드 블록에 대해, 깊이 추정 정보가 부/복화화될 수 있다. 깊이 추정 정보는, 블록에 대한 깊이 추정이 스킵되는지 여부를 나타내는 정보, 깊이 예측 정보 및 깊이 차분 정보 중 적어도 하나를 포함할 수 있다.
일 예로, 표 2의 신택스 bbgf_skip_flag는, 현재 블록에 대한 깊이 추정이 스킵되는지 여부를 나타낸다. 신택스 bbgf_skip_flag의 값이 0인 것은, 현재 블록에 대한 깊이 추정을 위한 정보가 명시적으로 부/복호화됨을 나타낸다. 구체적으로, 신택스 bbgf_skip_flag의 값이 1인 경우, 현재 블록에 대해 깊이 예측 정보 및 깊이 차분 정보 중 적어도 하나가 명시적으로 부/복호화될 수 있다. 반면, 신택스 bbgf_skip_flag의 값이 1인 것은, 현재 블록에 대한 깊이 추정이 생략됨을 나타낸다. 이 경우, 현재 블록에 대해 깊이 예측 정보 및 깊이 차분 정보의 부/복호화가 생략되고, 현재 블록의 깊이 범위는 이전 프레임 내 현재 블록의 동일 위치 블록의 깊이 범위와 동일하게 설정될 수 있다. 여기서, 이전 프레임은, 현재 블록을 포함하는 현재 프레임보다 출력 순서(즉, 디스플레이 순서)가 1만큼 작은 프레임을 의미한다.
한편, 깊이 범위 예측은, 현재 블록 주변의 인접 블록의 깊이 범위를 참고하여 유도될 수 있다. 구체적으로, 현재 블록 주변의 인접 블록의 깊이 범위를, 현재 블록의 깊이 범위 예측값으로 설정할 수 있다. 여기서, 인접 블록은, 현재 블록의 상단 이웃 블록, 좌측 이웃 블록, 좌상단 이웃 블록, 우상단 이웃 블록 또는 좌하단 이웃 블록 중 적어도 하나를 포함할 수 있다. 후술되는 실시예들에서는, 현재 블록의 좌측 이웃 블록 및 상단 이웃 블록 중 하나로부터, 현재 블록의 깊이 범위 예측값이 유도되는 것으로 가정한다.
이용 가능한 이웃 블록들의 개수가 복수개인 경우, 복수개의 이웃 블록들 중 하나를 지시하는 정보가 부호화되어 시그날링될 수 있다. 한편, 깊이 범위는, 최소값과 최대값으로 규정된다. 이에 따라, 깊이 예측 정보는, 깊이 범위 최소값에 대한 예측 정보 및 깊이 범위 최대값에 대한 예측 정보로 구성될 수 있다.
일 예로, 표 2에서 신택스 bbgf_ltmin_flag는, 상단 이웃 블록 또는 좌측 이웃 블록 중 깊이 범위 최소값의 예측값을 유도하는데 이용되는 블록을 특정한다. 구체적으로, 신택스 bbgf_ltmin_flag의 값이 0인 것은, 좌측 이웃 블록의 깊이 범위 최소값이 현재 블록의 깊이 범위 최소값의 예측값으로 설정됨을 나타낸다. 반면, 신택스 bbgf_ltmin_flag의 값이 1인 것은, 상단 이웃 블록의 깊이 범위 최소값이 현재 블록의 깊이 범위 최소값의 예측값으로 설정됨을 나타낸다.
표 2에서, 신택스 bbgf_ltmax_flag는, 상단 이웃 블록 또는 좌측 이웃 블록 중 깊이 범위 최대값의 예측값을 유도하는데 이용되는 블록을 특정한다. 구체적으로, 신택스 bbgf_ltmax_flag의 값이 0인 것은, 좌측 이웃 블록의 깊이 범위 최대값이 현재 블록의 깊이 범위 최대값의 예측값으로 설정됨을 나타낸다. 반면, 신택스 bbgf_ltmax_flag의 값이 1인 것은, 상단 이웃 블록의 깊이 범위 최대값이 현재 블록의 깊이 범위 최대값의 예측값으로 설정됨을 나타낸다.
마찬가지로, 깊이 차분 정보는, 깊이 범위 최소값에 대한 차분 정보 및 깊이 범위 최대값에 대한 차분 정보로 구성될 수 있다. 일 예로, 표 2에서, 신택스 bbgf_zmin_delta는 깊이 정보 최소값에 대한 차분값을 나타내고, 신택스 bbgf_zmax_delta는 깊이 정보 최대값에 대한 차분값을 나타낸다.
한편, 깊이 정보 차분값을 그대로 부/복호화는 대신, 양자화 파라미터에 의해 양자화된 차분값을 부/복호화하여 시그날링할 수도 있다. 이에 따라, 깊이 정보 차분값은, 양자화된 차분값(즉, 신택스 bbgf_zmin_detla 또는 신택스 bbgf_zmax_delta)에 양자화 파라미터(즉, 신택스 bbgf_qs)를 곱하여 유도될 수도 있다.
한편, 현재 블록 주변의 이웃 블록들 중 적어도 하나가 가용하지 않은 경우에는, 깊이 정보 예측값의 부/복호화가 생략될 수 있다.
일 예로, 표 2에서, 변수 LTMinFlag 및 LTMaxFlag는, 각각 깊이 범위 최소값의 예측값 및 깊이 범위 최대값의 예측값을 유도하는데 이용되는 이웃 블록을 특정하는 변수를 나타내고, 위 두 변수는, 좌측 이웃 블록 및 상단 이웃 블록의 가용성에 따라 유도될 수 있다. 일 예로, 이웃 블록이 픽처 경계, 슬라이스 경계 또는 타일 경계를 벗어나는 경우, 이웃 블록은 비가용한 것으로 결정될 수 있다.
구체적으로, 현재 블록의 좌측 이웃 블록 및 상단 이웃 블록이 모두 가용하지 않은 경우, 변수 LTMinFlag 및 LTMaxFlag의 값은 모두 2로 설정된다. 일 예로, 현재 블록이 현재 프레임 내 첫번째 블록인 경우, 상단 이웃 블록 및 좌측 이웃 블록은 모두 픽처 경계를 벗어나는 바, 변수 LTMinFlag 및 LTMaxFlag의 값이 모두 2로 설정될 수 있다. 이 경우, 현재 블록의 깊이 범위 최소값에 대한 예측값 및 깊이 범위 최대값에 대한 예측값은 디폴트값으로 설정될 수 있다. 여기서, 디폴트값은 0 또는, 16, 32, 64 등과 같이 2의 지수승으로 표현되는 정수일 수 있다. 깊이 범위 최소값 및 깊이 범위 최대값에 대해, 디폴트값은 동일할 수 있다. 또는, 깊이 범위 최소값에 대한 디폴트값과, 깊이 범위 최대값에 대한 디폴트값이 상이하게 설정될 수도 있다.
현재 블록의 상단 이웃 블록은 가용하지 않으나, 좌측 이웃 블록은 가용한 경우, 변수 LTMinFlag 및 LTMaxFlag의 값은 모두 0으로 설정된다. 일 예로, 현재 블록이 현재 프레임의 상단 경계에 접하는 경우, 변수 LTMinFlag 및 LTMaxFlag의 값은 모두 0으로 설정된다. 이 경우, 현재 블록의 깊이 범위 최소값에 대한 예측값 및 깊이 범위 최대값에 대한 예측값 각각은, 좌측 이웃 블록의 깊이 범위 최고값 및 깊이 범위 최대값으로 설정될 수 있다.
현재 블록의 좌측 이웃 블록은 가용하지 않으나, 상단 이웃 블록은 가용한 경우, 변수 LTMinFlag 및 LTMaxFlag의 값은 모두 1로 설정된다. 일 예로, 현재 블록이 현재 프레임의 좌측 경계에 접하는 경우, 변수 LTMinFlag 및 LTMaxFlag의 값은 모두 1로 설정된다. 이 경우, 현재 블록의 깊이 범위 최소값에 대한 예측값 및 깊이 범위 최대값에 대한 예측값 각각은, 상단 이웃 블록의 깊이 범위 최고값 및 깊이 범위 최대값으로 설정될 수 있다.
현재 블록의 상단 이웃 블록 및 좌측 이웃 블록이 모두 가용한 경우, 변수 LTMinFlag 및 LTMaxFlag는 각각 신택스 bbgf_ltmin_flag 및 신택스 bbgf_ltmax_flag와 동일하게 설정될 수 있다.
요약하면, 현재 블록의 깊이 범위 최소값 Zmin 및 깊이 범위 최대값 Zmax는 각각 다음의 수학식 3및 4 같이 유도될 수 있다.
상술한 실시예들에서 소개된 신택스 요소들의 명칭은, 본 개시에 따른 실시예들을 설명하기 위해 임시로 부여된 것에 불과하다. 본 개시에서 제안된 것과 상이한 이름으로 신택스 요소들을 명명할 수도 있다.
본 개시의 예시적 실시예들에서 설명된 구성요소는, 하드웨어 요소에 의해 구현될 수 있다. 예를 들어, 상기 하드웨어 요소는, 디지털 신호 프로세서(DSP), 프로세서, 컨트롤러, 주문형 집적 회로(ASIC), FPGA와 같은 프로그래머블 로직 요소, GPU, 기타 전자 장치, 또는 이들의 조합 중 적어도 하나를 포함할 수 있다. 본 개시의 예시적 실시예들에서 설명된 기능 또는 과정 중 적어도 일부는 소프트웨어로 구현될 수 있으며, 소프트웨어는 기록 매체에 기록될 수 있다. 예시적 실시예들에서 설명하는 구성요소, 기능 및 프로세스는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다.
본 개시의 일 실시예에 따른 방법은 컴퓨터에 의해 수행될 수 있는 프로그램으로 구현될 수 있으며, 상기 컴퓨터 프로그램은 자기 저장 매체, 광 판독 매체, 디지털 저장 매체 등과 같은 다양한 기록 매체에 기록될 수 있다.
본 개시에서 설명한 다양한 기술들은, 디지털 전자 회로 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있다. 상기 기술들은 컴퓨터 프로그램 제품, 즉, 정보 매체에 유형적으로 구현되는 컴퓨터 프로그램 또는 컴퓨터 프로그램(예를 들어, 기계 판독 가능 저장 장치(예: 컴퓨터 판독 가능 매체) 또는 데이터 처리 장치), 데이터 처리 장치에 의해 처리되거나 데이터 처리 장치(예를 들어, 프로그램 가능한 프로세서, 컴퓨터 또는 복수의 컴퓨터들)의 동작을 하기 위해 전파된 신호로 구현되는 컴퓨터 프로그램으로 구현될 수 있다.
컴퓨터 프로그램(들)은 컴파일된 언어나 해석된 언어를 포함한 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램 또는 모듈, 구성 요소, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하는 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터, 또는 한 사이트 또는 여러 사이트에 분산되어 있고 통신 네트워크로 상호 연결되어 있는 복수 컴퓨터들에 의해 수행될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서의 예로, 범용 및 특수 목적 마이크로프로세서, 및 디지털 컴퓨터의 하나 이상의 프로세서가 포함된다. 일반적으로 프로세서는 읽기 전용 메모리나 랜덤 액세스 메모리 또는 둘 모두에서 명령과 데이터를 수신한다. 컴퓨터의 구성 요소는 명령을 실행하기 위한 적어도 하나의 프로세서, 및 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 장치를 포함할 수 있다. 또한, 컴퓨터는 데이터 저장을 위한 하나 이상의 대용량 저장 장치, 예를 들어, 자기, 광자기 디스크 또는 광 디스크를 포함하거나, 상기 대용량 저장 장치에 연결되어 데이터를 수신 및/또는 전송을 수행할 수 있다. 컴퓨터 프로그램 명령 및 데이터를 구현하기에 적합한 정보 매체의 예로는, 반도체 메모리 장치(예를 들어, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체), 컴팩트 디스크 읽기 전용 메모리(CD- ROM), 디지털 비디오 디스크(DVD) 등과 같은 광학 매체, 플롭티컬 디스크와 같은 광자기 매체, 및 ROM(Read Only Memory), RAM(Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 및 기타 알려진 컴퓨터 판독 가능 매체가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
프로세서는 운영 체제(OS) 및 OS에서 실행되는 하나 이상의 소프트웨어 애플리케이션을 실행할 수 있다. 프로세서 장치는 또한 소프트웨어 실행에 응답하여 데이터를/에 액세스, 저장, 조작, 처리 및 생성할 수 있다. 단순화를 위해 프로세서 장치는 단수로 설명되었으나, 해당 기술 분야의 통상의 지식을 가진자는, 프로세서 장치가 복수의 처리 요소들 및/또는 다양한 타입의 처리 요소들을 포함할 수 있음을 이해할 수 있다. 예를 들어, 프로세서 장치는 복수 프로세서들 또는 프로세서(processor)와 제어부(controller)를 포함할 수 있다. 또한, 병렬 프로세서들과 같이 상이한 처리 구조를 구성할 수도 있다. 또한, 컴퓨터가 읽을 수 있는 매체는 컴퓨터가 접근할 수 있는 모든 매체를 의미하며, 컴퓨터 저장매체와 전송매체를 모두 포함할 수 있다.
본 개시는 다양한 상세 구현 예들의 세부 설명을 포함하나, 그 세부 사항이 본 개시에서 제안하는 발명 또는 청구 범위를 제한하는 것은 아니고, 특정한 예시적 실시예의 특징을 설명하는 것으로 이해되어야 한다.
본 개시에서 예시적 실시예들에서 개별적으로 설명된 특징들은 단일 예시적 실시예에 의해 구현될 수 있다. 반대로, 본 개시에서 단일 예시적 실시예에 대해 설명된 다양한 특징들은 복수의 예시적 실시예들의 조합 또는 적절한 하위 조합에 의해 구현될 수도 있다. 나아가, 본 개시에서, 상기 특징들은 특정 조합에 의해 동작할 수 있고, 최초 상기 조합이 청구된 것처럼 기술될 수 있으나, 경우에 따라, 하나 이상의 특징이 청구된 조합에서 제외되거나, 청구된 조합이 하위 조합 또는 하위 조합의 수정 형태로 변경될 수 있다.
마찬가지로, 도면에 특정 순서로 동작이 설명되어 있다 하더라도, 목표된 결과를 획득하기 위해, 동작들을 특정 순번 또는 순서로 실행하는 것이 필요하거나, 모든 동작들의 수행이 필요한 것으로 이해되어서는 안 된다. 특정한 경우에는 멀티태스킹과 병렬 처리가 유용할 수 있다. 또한, 모든 실시예들의 예시적 실시예들에서 다양한 장치 구성요소들이 반드시 분리되어야 하는 것으로 이해되어서는 안 되며, 전술한 프로그램 구성요소 및 장치는 단일 소프트웨어 제품 또는 여러 소프트웨어 제품에 패키징될 수 있다.
본 명세서에 개시된 예시적 실시예들은 단지 예시적인 것이며 본 개시의 범위를 제한하려는 것이 아니다. 해당 기술 분야의 통상의 지식을 가진자는, 청구범위 및 그 균등물의 사상 및 범위를 벗어나지 않으면서 예시적 실시예들에 대한 다양한 수정이 이루어질 수 있음을 인식할 수 있을 것이다.
따라서, 본 개시는 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
Claims (1)
- 시점에 대한 깊이 보조 정보가 존재하는지 여부를 결정하는 단계; 및
상기 시점에 대한, 깊이 보조 정보가 존재하는 것으로 결정된 경우, 상기 깊이 보조 정보의 타입을 결정하는 단계를 포함하는, 이머시브 영상 복호화 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220091329 | 2022-07-22 | ||
KR20220091329 | 2022-07-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240013709A true KR20240013709A (ko) | 2024-01-30 |
Family
ID=89714988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230096249A KR20240013709A (ko) | 2022-07-22 | 2023-07-24 | 이머시브 영상 복호화 방법 및 이머시브 영상 부호화방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240013709A (ko) |
-
2023
- 2023-07-24 KR KR1020230096249A patent/KR20240013709A/ko unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11699248B2 (en) | Image processing apparatus and method | |
JPWO2019142666A1 (ja) | 画像処理装置および方法 | |
US11616938B2 (en) | Method for processing immersive video and method for producing immersive video | |
JPWO2019198522A1 (ja) | 画像処理装置および方法 | |
US20200359000A1 (en) | Method for processing immersive video and method for producing immersive video | |
US20230232031A1 (en) | Method for decoding immersive video and method for encoding immersive video | |
US11818395B2 (en) | Immersive video decoding method and immersive video encoding method | |
KR102680366B1 (ko) | 이머시브 영상 처리 방법 및 이머시브 영상 합성 방법 | |
US11457199B2 (en) | Method for processing immersive video and method for producing immversive video | |
US20210383122A1 (en) | Method of processing immersive video and method of producing immersive video | |
KR20240013709A (ko) | 이머시브 영상 복호화 방법 및 이머시브 영상 부호화방법 | |
US11838485B2 (en) | Method for processing immersive video and method for producing immersive video | |
KR20240057350A (ko) | 이머시브 영상 복호화 방법 및 이머시브 영상 부호화 방법 | |
KR20210036834A (ko) | 이머시브 영상 처리 방법 및 이머시브 영상 합성 방법 | |
KR102591133B1 (ko) | 이머시브 영상 부호화 방법 및 이머시브 영상 복호화 방법 | |
US20240357135A1 (en) | Method for encoding/decoding video and recording medium storing the method for encoding video | |
KR20230109086A (ko) | 이머시브 영상 복호화 방법 및 이머시브 영상 부호화 방법 | |
US20230119281A1 (en) | Method for decoding immersive video and method for encoding immersive video | |
KR20240054910A (ko) | 이머시브 영상 복호화 방법 및 이머시브 영상 부호화 방법 | |
KR20230110178A (ko) | 이머시브 영상 복호화 방법 및 이머시브 영상 부호화 방법 | |
US20230222694A1 (en) | Method for decoding immersive video and method for encoding immersive video | |
US20230124419A1 (en) | Immersive video encoding method and immersive video decoding method | |
US20240348807A1 (en) | Method for decoding immersive video and method for encoding immersive video | |
KR20240156318A (ko) | 영상 부호화/복호화 방법 및 상기 영상 부호화 방법을 기록한 기록 매체 | |
KR20230053511A (ko) | 이머시브 영상 부호화 방법 및 이머시브 영상 복호화 방법 |