KR20210155386A - 3DoF+/MIV 및 V-PCC에 대한 몰입형 비디오 코딩 기술 - Google Patents

3DoF+/MIV 및 V-PCC에 대한 몰입형 비디오 코딩 기술 Download PDF

Info

Publication number
KR20210155386A
KR20210155386A KR1020217032924A KR20217032924A KR20210155386A KR 20210155386 A KR20210155386 A KR 20210155386A KR 1020217032924 A KR1020217032924 A KR 1020217032924A KR 20217032924 A KR20217032924 A KR 20217032924A KR 20210155386 A KR20210155386 A KR 20210155386A
Authority
KR
South Korea
Prior art keywords
atlas
coded
camera
picture
parameter
Prior art date
Application number
KR1020217032924A
Other languages
English (en)
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 KR20210155386A publication Critical patent/KR20210155386A/ko

Links

Images

Classifications

    • 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/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • H04N13/117Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/172Processing image signals image signals comprising non-image signal components, e.g. headers or format information
    • H04N13/178Metadata, e.g. disparity information
    • 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/194Transmission of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

몰입형 비디오 코딩에 관한 기술이 논의되는데, 이 기술은 몰입형 비디오에 대한 랜덤 액세스를 위한 몰입형 비디오 시퀀스 및 출력 유닛, 카메라 파라미터 코딩에 대한 코딩 개선 및 아틀라스 파라미터에 대한 코딩 효율성 개선을 포함한다.

Description

3DoF+/MIV 및 V-PCC에 대한 몰입형 비디오 코딩 기술
본 출원은 2019년 5월 14일에 출원되고 "A COMMON SPECIFICATION FOR THREE DEGREE OF FREEDOM PLUS/METADATA FOR IMMERSIVE VIDEO (3DoF+/MIV) AND VIDEO-POINT CLOUD CODING (V-PCC)"라는 제목의 미국 특허 가출원 제62/847,779호에 대한 우선권을 주장하며, 그 전체가 참조로 포함된다.
압축/압축 해제(codec) 시스템에서, 압축 효율과 비디오 품질은 중요한 성능 기준이다. 예를 들어, 시각적 품질은 많은 비디오 애플리케이션에서 사용자 경험의 중요한 측면이고, 압축 효율은 비디오 파일을 저장하는 데 필요한 메모리 스토리지의 양 및/또는 비디오 컨텐츠를 전송 및/또는 스트리밍하는 데 필요한 대역폭의 양에 영향을 미친다. 더 많은 정보가 주어진 대역폭을 통해 전송 또는 주어진 메모리 공간에 저장 등이 될 수 있도록 비디오 인코더는 비디오 정보를 압축한다. 그 후 압축된 신호 또는 데이터는, 사용자에게 표시하기 위해 신호 또는 데이터를 디코딩 또는 압축 해제하는 디코더에 의해 디코딩된다. 대부분의 구현에서, 더 높은 압축률과 함께 더 높은 시각적 품질이 바람직하다.
현재, 3DoF+/MIV(3 Degree of Freedom Plus/Metadata for Immersive Video) 프로젝트와 V-PCC(Video-Point Cloud Coding) 프로젝트를 위해, 2개의 별도의 표준 사양이 MPEG(Moving Pictures Experts Group)에 의해 정의된다. 2개의 상이한 표준의 구현은 제품 통합을 위해 추가적인 설계 복잡성이 필요할 것이고, 생태계에서 표준을 채택할 가능성이 낮아진다. 또한, 기존 표준은 높은 복잡성 및/또는 비효율적인 비디오 압축 효율성의 영역을 갖는다. 이러한 고려 사항 및 다른 고려 사항과 관련하여 본 개선이 필요하다. 몰입형 및 3D 비디오를 인코딩하고 디코딩하려는 요구가 더 널리 퍼짐에 따라 이러한 개선이 중요해질 수 있다.
본 명세서에서 설명되는 소재는 첨부된 도면에서 제한이 아니고 예시로서 도시된다. 도시의 단순성과 명확성을 위해, 도면에 도시된 요소는 반드시 축척에 맞게 그려진 것은 아니다. 예를 들어, 일부 요소의 치수는 명확성을 위해 다른 요소에 비해 과장될 수 있다. 또한, 적절하다고 판단되는 경우, 해당하거나 또는 유사한 요소를 나타내기 위해 도면 간에 참조 레이블이 반복되었다.
도 1은 비트스트림을 생성하기 위해 몰입형 비디오의 입력 뷰를 코딩하기 위한 예시적인 인코더 시스템의 개략도이다.
도 2는 예시적인 텍스처 아틀라스(atlas), 심도 아틀라스, 점유 맵(occupancy map) 아틀라스 및 재구성된 뷰 표현을 도시한다.
도 3은 몰입형 비디오에 대응하는 뷰포트(viewport)를 생성하기 위해 비트스트림을 디코딩하기 위한 예시적인 디코더 시스템의 개략도이다.
도 4는 인트라 랜덤 액세스 포인트(intra random access point)를 포함하는 몰입형 비디오 코딩을 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 5는 카메라 파라미터의 코딩을 포함하는 몰입형 비디오 코딩을 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 6은 예시적인 카메라 어레이와 몰입형 비디오 코딩에 관한 대응하는 카메라 파라미터를 도시한다.
도 7은 패치(patch)의 예시적인 90° 회전을 도시한다.
도 8은 아틀라스 파라미터의 코딩을 포함하는 몰입형 비디오 코딩을 위한 예시적인 프로세스(800)를 도시하는 흐름도이다.
도 9는 예시적인 시스템의 개략도이다.
도 10은 본 개시의 적어도 일부 구현에 따라 모두 구성된 예시적인 디바이스를 도시한다.
이제 하나 이상의 실시예 또는 구현이 첨부된 도면을 참조하여 설명된다. 특정 구성과 배열이 논의되지만, 이는 단지 예시적인 목적으로 행해지는 것을 이해하여야 한다. 관련 기술분야의 통상의 기술자는 명세서의 사상과 범위를 벗어나지 않고 다른 구성과 배열이 채용될 수 있음을 인식할 것이다. 관련 기술분야의 통상의 기술자에게 본 명세서에서 설명되는 기술 및/또는 구성은 본 명세서에서 설명된 것 이외에도 다양한 다른 시스템 및 애플리케이션에도 채용될 수 있다는 것은 명백할 것이다.
다음 설명은 예를 들어 SoC(system-on-a-chip) 아키텍처와 같은 아키텍처에서 나타날 수 있는 다양한 구현을 설명하지만, 본 명세서에서 설명되는 기술 및/또는 구성의 구현은 특정 아키텍처 및/또는 컴퓨팅 시스템으로 제한되지 않고, 유사한 목적을 위해 임의의 아키텍처 및/또는 컴퓨팅 시스템에 의해 구현될 수 있다. 예를 들어, 다중 집적 회로(IC) 칩 및/또는 패키지, 및/또는 셋톱 박스, 스마트폰 등과 같은 다양한 컴퓨팅 디바이스 및/또는 소비자 가전(CE) 장치를 사용하는 다양한 아키텍처는 본 명세서에서 설명되는 기술 및/또는 구성을 구현할 수 있다. 또한, 다음 설명은 로직 구현, 시스템 구성요소의 유형 및 상호 관계, 논리 분할/통합 선택 등과 같은 많은 특정 세부 사항을 설명할 수 있지만, 청구된 주제는 이러한 특정 세부 사항 없이 실행될 수 있다. 다른 경우, 예를 들어 제어 구조 및 전체 소프트웨어 명령어 시퀀스 등과 같은 일부 소재는 본 명세서에서 개시되는 소재를 모호하게 하지 않기 위해 자세하게 도시되지 않을 수 있다.
본 명세서에서 개시되는 소재는 하드웨어, 펌웨어, 소프트웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 본 명세서에서 개시되는 소재는 또한, 하나 이상의 프로세서에 의해 판독되고 실행될 수 있는, 머신 판독 가능 매체에 저장된 명령어로 구현될 수 있다. 머신 판독 가능 매체는 머신(예컨대, 컴퓨팅 디바이스)에 의해 판독 가능한 형태로 정보를 저장 또는 전송하기 위한 임의의 매체 및/또는 메커니즘을 포함할 수 있다. 예를 들어, 머신 판독 가능 매체는 ROM(read only memory), RAM(random access memory), 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 디바이스, 전기, 광학, 음향 또는 다른 형태의 전파 신호(예컨대, 반송파, 적외선 신호, 디지털 신호 등) 및 기타를 포함할 수 있다.
명세서에서 "하나의 구현", "일 구현", "일 예시적 구현" 등에 대한 참조는 설명된 구현이 특정 기능, 구조 또는 특징을 포함할 수 있으나, 모든 실시예가 그 특정 기능, 구조 또는 특징을 반드시 포함하지 않을 수 있음을 나타낸다. 더욱이, 그러한 문구는 반드시 동일한 구현을 지칭하는 것은 아니다. 또한, 특정 기능, 구조 또는 특징이 일 실시예와 관련하여 설명되는 경우, 본 명세서에서 명시적으로 설명되었는지 여부와 관계없이, 다른 구현과 관련하여 그러한 기능, 구조 또는 특징을 실행하는 것은 통상의 기술자의 지식 범위 내에 있다는 것으로 이뤄진다.
"실질적으로", "거의", "대체로", "대략" 및 "약"이라는 용어는 일반적으로 목표 값의 +/- 10% 내에 있음을 지칭한다. 예를 들어, 명시적인 맥락에서 달리 특정되지 않는 한, "실질적으로 동일", "대략 동일" 및 "대체로 동일"은 그렇게 설명된 것들 사이에 중요하지 않은 차이 밖에 없음을 의미한다. 해당 기술분야에서, 이러한 변동은 일반적으로 사전 결정된 목표 값의 +/- 10%보다 크지 않다. 다르게 특정되지 않는 한, "제 1", "제 2" 및 "제 3" 등 순서 형용사의 사용은 단지 유사한 대상의 다른 인스턴스가 지칭되고 있다는 것을 나타내고, 그렇게 설명된 대상이 시간적으로, 공간적으로, 순위대로 또는 임의의 다른 방식으로 주어진 순서대로 있어야 한다는 것을 암시하려는 것은 아니다.
방법, 디바이스, 장치, 컴퓨팅 플랫폼 및 물건이 3DoF+/MIV(3 Degree of Freedom Plus/Metadata for Immersive Video) 및 V-PCC(Video-Point Cloud Coding)에 관하여 설명된다.
본 명세서에서 논의되는 기술은 3DoF+/MIV 및 V-PCC를 위한 결합된 몰입형 비디오(IV) 사양을 제공한다. 개시된 기술은 몰입형 비디오 시퀀스 및 몰입형 비디오 출력 유닛의 정의, 아틀라스(atlas), 점유(occupancy) 맵 및 추가적인 속성에 대한 HEVC(High Efficiency Video Coding) ScalabilityId 유형의 할당, IV 유닛의 운반에 사용될 수 있거나 사용되지 않는 HEVC NAL(Network Abstraction Layer) 유닛 유형 값의 할당, 무손실 모드에서 점유 맵의 비트 패킹, 카메라 파라미터 목록 및 아틀라스 파라미터 목록의 코딩 효율 개선, 디코더 적합성 요구 사항으로 포인트 클라우드(point cloud) 렌더링 및 기타를 포함한다.
개시된 기술은 구현 및 검증할 2개의 개별 사양을 갖는 대신 구현 복잡성을 줄이기 위해 단일 결합 사양(예컨대, 결합 IV 사양이 개별 그래픽 구성요소에서 구현될 수 있도록)을 포함하는 다양한 이점을 제공한다. 또한, 결합 사양은 적합성에 대한 더 간결한 정의를 가져, 상호 운용성을 단순화한다.
본 명세서에서 논의되는 기술은, 비록 상이한 테스트 모델/참조 소프트웨어를 사용하더라도 공통 사양에 의해 MIV 및 V-PCC가 모두 지원되도록 제공한다. 앞서 언급한 2개의 기존 개별적인 사양은 MIV WD1 및 V-PCC SCD이다. 본 명세서에서 논의되는 공통 MIV/V-PCC 사양은 여기서 IV, 몰입형 비디오에 관하여 지칭된다. 제안되는 구문은 전체 V-PCC 기능 세트를 통합하는 수정을 제공한다. MIV 사용 사례를 지원하는 프로파일이 제공되며, 기본 포인트 클라우드 지원 또한 제공할 수 있다. 정확한 재구성을 가능하게 하는 V-PCC 사용 사례를 지원하는 프로파일 또한 본 명세서에서 제공된다. MIV 요구사항은 HEVC가 사용될 것이라고 서술한다. MIV "몰입형 메인 10(Immersive Main 10)" 프로파일이 본 명세서에서 제공되며, HEVC로 제한되고, HEVC 부록 F 확장을 사용하여 텍스처와 아틀라스 심도 구성요소 및 관련 점유 맵을 수반한다. 다중 독립 계층을 포함하는 비트스트림에 대한 HEVC 적합성을 정의하기 위해, 새로운 HEVC "독립 계층 메인 10(Independent Layers Main 10)" 프로파일 또한 제공되며, IV에 제한되지 않고 광범위한 사용 사례에 적용할 수 있다. V-PCC는 상이한 비디오 코덱(codec)의 사용을 허용하고, HEVC 및 AVC를 언급한다. AVC를 사용하는 V-PCC를 지원하기 위해, IV 사양 내에서 일반 다중 계층 설계를 정의하는 대신, HEVC의 부록 F와 유사한 AVC에 대해 하이 레벨 구분 확장이 제공된다. 예를 들어, VVC(Versatile Video Coding)는 논의된 HEVC 기술과 유사한 방식으로 사용될 수 있는 다중 계층 설계를 지원한다. V-PCC "포인트 클라우드 HEVC 메인 10(Point Cloud HEVC Main 10)" 프로파일이 본 명세서에서 제공된다. 첨부된 사양 초안(Draft Specification for Immersive Video(IV))이 IV 사양을 제공한다. V-PCC의 일부 측면에 대해 지원이 추가되었지만, V-PCC 기능성을 완전히 지원하기 위해 추가적인 수정이 필요할 것이다.
도 1은 본 개시의 적어도 일부 구현에 따라 구성된, 비트스트림(107)을 생성하는 몰입형 비디오의 입력 뷰(101)를 코딩하기 위한 예시적인 인코더 시스템(100)의 개략도이다. 도 1에 도시된 바와 같이, 인코더 시스템(100)은 아틀라스 생성기(111), 카메라 파라미터 인코더(112), 텍스처 비디오 인코더(113), 심도 비디오 인코더(114), 점유 비디오 인코더(115), 아틀라스 파라미터 인코더(116) 및 다중화기(117)를 포함한다.
인코더 시스템(100)은 비디오 압축을 제공하며, 인코더 시스템(100)은 컴퓨터 또는 컴퓨팅 시스템 등과 같은 컴퓨팅 디바이스를 통하여 구현되는 비디오 인코딩 시스템의 일부일 수 있다. 예를 들어, 인코더 시스템(100)은 입력 뷰(101)를 수신하고 비트스트림(107)을 생성하는데, 이는 디코더에 의해 디코딩되어 적어도 입력 뷰(101)의 압축 해제된 버전을 생성한다. 비트스트림(107)은, 예를 들어 MIV 또는 V-PCC와 같은 비디오 압축-압축 해제(코덱) 표준과 호환될 수 있다. 인코더 시스템(100)은 표현의 명확성을 위해 도시되지 않은 다른 모듈 또는 서브 모듈을 포함할 수 있다. 예를 들어, 인코더 시스템(100)은 다운샘플러(downsampler), 인코딩 제어기, 변환 모듈, 양자화 모듈, 인트라 예측 모듈, 인터 예측 모듈, 엔트로피 인코더 등을 포함할 수 있다. 이러한 모듈은 통상의 기술자에게 알려져 있고, 표현의 명확성을 위해 본 명세서에서 더 논의되지 않는다. 인코더 시스템(100)은, 예를 들어 서버, 개인용 컴퓨터, 랩톱 컴퓨터, 태블릿, 패블릿, 스마트 폰, 디지털 카메라, 게이밍 콘솔, 웨어러블 디바이스, 디스플레이 디바이스, 올인원 디바이스, 투인원 디바이스 등과 같은 임의의 적합한 디바이스를 통하여 구현될 수 있다. 예를 들어, 본 명세서에서 사용되는 바와 같이, 시스템, 디바이스, 컴퓨터 또는 컴퓨팅 디바이스는 임의의 이러한 디바이스 또는 플랫폼을 포함할 수 있다.
아틀라스 생성기(111)는 인코딩을 위한 입력 뷰(101)(입력 비디오의 복수의 뷰)를 수신한다. 예를 들어, 한 장면에는 임의의 수의 뷰들이 있고, 이들 뷰는 텍스처 픽처 또는 프레임(또는 텍스처 비디오) 및 지오메트리(geometry) 픽처 또는 프레임(또는 지오메트리 비디오)을 포함할 수 있다. 특히, 각 시간 인스턴스에 대하여, 복수의 텍스처 프레임 및 복수의 심도 또는 지오메트리 프레임이 구현될 수 있도록, 장면의 하나 이상의 뷰에 대한 비디오 데이터가 제공된다. 예를 들어, 각 텍스처 프레임은 YUV 데이터, RGB 데이터 또는 유사한 데이터와 같은 픽셀 당 색상 정보를 포함할 수 있고, 각 지오메트리 또는 심도 프레임은 픽셀 당 데이터 또는 유사한 데이터를 포함할 수 있다. 텍스처 및 지오메트리 프레임은 동일하거나 다른 해상도를 가질 수 있다. 예를 들어, 텍스처 프레임은 VGA(video graphics array), HD(high definition), Full-HD(예컨대, 1080p), 4K 해상도 비디오, 8K 해상도 비디오 등일 수 있다. 본 명세서에서 논의되는 기술은 프레임과 픽처(상호 교환 가능하게 사용됨)에 관하여 논의된다.
아틀라스 생성기(111)는 텍스처 아틀라스(103), 지오메트리 또는 심도 아틀라스(104), 점유 아틀라스(105) 및 입력 뷰(101)의 하나 이상의 시간 인스턴스에 대한 대응하는 아틀라스 파라미터를 생성한다. 예를 들어, 입력 뷰(101)의 복수의 뷰의 각각은, 아틀라스를 형성하도록 배열된 패치(patch)(예컨대, 직사각형 영역)로 분할될 수 있다. 아틀라스의 형성은 복수의 뷰 간의 중복성을 줄이기 위해 시도한다. 도시된 바와 같이, 텍스처 아틀라스(103)(텍스처 정보를 포함함), 지오메트리 또는 심도 아틀라스(104)(지오메트리 또는 심도 정보를 포함함), 점유 아틀라스(105)(점유 정보를 포함함) 및 아틀라스 파라미터(106)가 형성되고, 텍스처 아틀라스(103), 지오메트리 또는 심도 아틀라스(104), 점유 아틀라스(105) 및 아틀라스 파라미터(106)를 인코딩하는 대응하는 인코더(113, 114, 115, 116)에 제공되어, 인코딩 시스템(101)의 다중화기(117)에 제공된다. 또한, 카메라 파라미터 인코더(112)는 카메라 파라미터(102)를 수신하고, 이를 비트스트림(107)에 포함시키기 위해 다중화기(117)에 의해서도 수신되는 비트스트림으로 인코딩한다. 카메라 파라미터(102)는 입력 뷰(101)에 대응하는 카메라(입력 뷰(101)를 획득하는 데 사용되는 카메라)의 각각에 대한 외부 및 내부 파라미터를 포함하며, 아래에서 추가로 논의된다.
본 명세서 논의되는 실시예에 따르면, 다양한 용어와 파라미터가 정의된다. 다음은 본 기술의 실시예에 따른 정의를 제공한다. 3D 장면이라는 용어는 글로벌 기준 좌표계의 시각적 컨텐츠를 나타낸다. 액세스 유닛이라는 용어는 특정된 분류 규칙에 따라 서로 연관되고, 디코딩 순서가 연속적이며, nuh_layer_id의 임의의 특정 값을 갖는 최대 하나의 코딩된 픽처를 포함하는 NAL 유닛의 세트를 나타낸다. 아틀라스라는 용어는, 패킹(packing) 프로세스 이후 하나 이상의 뷰 표현으로부터 텍스처 구성요소 픽처, 대응하는 심도 구성요소 픽처 및 대응하는 점유 맵 픽처를 포함하는 픽처 그룹으로의 패치의 병합을 나타낸다. 아틀라스 구성요소라는 용어는 아틀라스의 텍스처, 심도 또는 점유 맵 구성요소를 나타낸다. 아틀라스 계층 그룹이라는 용어는, 비트스트림 내 아틀라스를 나타내는 텍스처 계층, 대응하는 심도 계층 및 대응하는 점유 맵 계층을 나타낸다. 아틀라스 목록이라는 용어는 동일한 iv 출력 유닛 내 존재할 수 있는 하나 이상의 아틀라스의 목록을 나타낸다. 아틀라스 패치 점유 맵이라는 용어는, 샘플이 대응하는 패치 또는 샘플이 유효하지 않은 경우 아틀라스의 각 샘플 위치에 대한 값을 나타내는 아틀라스에 대응하는 2D 어레이를 나타낸다. 아틀라스 시퀀스라는 용어는 각 iv 출력 유닛에 대해 최대 하나의 아틀라스를 포함하는 하나 이상의 아틀라스의 시퀀스를 나타낸다. 카메라 파라미터라는 용어는 내부 및 외부 파라미터를 포함하여, 3D 장면으로부터 뷰 표현을 생성하는 데 사용되는 투영을 정의한다. 카메라 파라미터 목록이라는 용어는 하나 이상의 카메라 파라미터의 목록을 나타낸다. 구성요소라는 용어는 심도 또는 텍스처 또는 점유 맵을 나타낸다. 심도 계층이라는 용어는 아틀라스 심도 구성요소를 나타내는 계층을 나타낸다. 시야(field of view)라는 용어는 캡처된/녹화된 컨텐츠 또는 물리적인 디스플레이 디바이스 내 관찰 가능한 세계의 범위를 나타낸다. 글로벌 좌표 축이라는 용어는 동일한 획득 위치를 나타내는 오디오, 비디오 및 이미지와 연관되고 함께 렌더링되는 좌표 축을 나타낸다. 글로벌 기준 좌표계라는 용어는 글로벌 좌표 축을 사용하는, 미터 단위의 3D 데카르트 좌표계를 나타낸다. 가상(hypothetical) 기준 렌더러라는 용어는 뷰포트(viewport)를 출력하는 가상 렌더러 모델을 나타낸다. 가상 3D 장면 재구성기라는 용어는 3D 비디오 시퀀스를 출력하는 가상 3D 장면 재구성 모델을 나타낸다. 몰입형 비디오 시퀀스(IVS)라는 용어는 하나 이상의 몰입형 비디오 출력 유닛의 시퀀스를 나타낸다. 계층이라는 용어는 모두 nuh_layer_id의 특정 값 및 연관된 non-VCL NAL 유닛을 갖는 VCL NAL 유닛의 세트 또는 계층적(hierarchical) 관계를 갖는 구문 구조의 세트 중 하나를 나타낸다. 점유 맵이라는 용어는 대응하는 텍스처 픽처의 샘플의 점유를 나타내는 2D 어레이를 나타낸다. 전방향성(omnidirectional) 매체라는 용어는, 헤드마운트 디바이스와 함께 소비되는 경우 또는 사용자가 원하는 뷰포트에 따라, 마치 매체가 캡처된 장소와 시간에 사용자가 있는 것처럼, 사용자의 관찰 방향에 따라 렌더링할 수 있는 이미지 또는 비디오 및 이와 연관된 오디오와 같은 매체를 나타낸다. 전방향성 투영이라는 용어는 투영된 픽처의 샘플이 단위 구의 방위각 및 고도 좌표 세트에 의해 식별되는 위치의 세트에 매핑되는 프로세스의 역(inverse)을 나타낸다. 투영 예시는 ERP, cubemap(cubic map) 또는 원근법이다. 출력 유닛이라는 용어는 특정된 분류 규칙에 따라 서로 연관되고, 디코딩 순서가 연속적이며, 정확히 하나의 출력 표현을 포함하는 NAL 유닛 세트를 나타낸다. 패치라는 용어는 뷰 표현 내 직사각형 영역에 대응하는 아틀라스 내 직사각형 영역을 나타낸다. 패치 디스크립터(descriptor)라는 용어는, 패치의 크기, 아틀라스, 아틀라스 내 회전 및 뷰 내 위치를 포함하는, 패치의 설명을 나타낸다. 픽처 그룹이라는 용어는, 동일한 액세스 유닛으로부터 텍스처 픽처, 대응하는 심도 픽처 및 점유 맵 픽처를 나타낸다. 포인트라는 용어는 양자화된 3D 글로벌 기준 좌표계에서 3D 위치를 나타낸다. 포인트 클라우드 시퀀스라는 용어는 하나 이상의 포인트 클라우드의 시퀀스를 나타낸다. 포인트 클라우드라는 용어는 특정 시간 인스턴스에서, 양자화된 3D 글로벌 기준 좌표계의 3D 포인트 세트 및 선택적으로 대응하는 속성의 세트를 나타낸다. 투영이라는 용어는 뷰 표현의 투영된 텍스처 구성요소 픽처의 샘플 값이, 대응하는 심도 샘플 값과 카메라 파라미터 목록에 따라 글로벌 기준 좌표계로 나타낸 3D 장면의 위치 세트에 매핑되는 프로세스의 역을 나타낸다. 기준 포인트 클라우드 렌더러라는 용어는 디코딩 프로세스의 출력으로부터 디코딩된 포인트 클라우드 시퀀스를 유도하는 프로세스의 실시예를 나타낸다. 렌더러라는 용어는 관찰 방향 및 관찰 위치에 대응하는 3D 장면 표현으로부터 뷰포트를 생성하는 프로세스의 실시예를 나타낸다. 소스라는 용어는 인코딩되기 전 비디오 자료 또는 비디오 자료의 특성의 일부를 설명하는 데 사용되는 용어이다. 소스 뷰 표현이라는 용어는 뷰 표현의 형식에 대응하는 인코딩 이전의 소스 비디오 자료를 설명하는 데 사용되는 용어를 나타내는데, 이는 실제 카메라에 의한 3D 장면의 캡처에 의해 또는 가상 카메라에 의해 카메라 파라미터를 이용하여 표면으로의 투영 또는 포인트 클라우드를 표면으로의 투영에 의해 획득될 수 있다. 텍스처 계층이라는 용어는 아틀라스 텍스처 구성요소를 나타내는 계층을 나타낸다. 관찰 방향이라는 용어는, 사용자가 시청각 컨텐츠를 소비하는 방향을 특징짓는, 이미지 또는 비디오의 경우 뷰포트의 방향을 특징짓는, 방위각, 고도 및 기술임 각도의 3배를 나타낸다. 관찰 위치라는 용어는 시청각 컨텐츠를 소비하고 있는 사용자의 글로벌 기준 좌표계 내 위치를 특징짓는, 이미지 또는 비디오의 경우 뷰포트의 위치를 특징짓는 x, y, z 3개 세트를 나타낸다. 뷰 표현이라는 용어는, 카메라 파라미터를 이용하여 표면으로의 3D 장면 투영을 나타내는 텍스처 구성요소와 대응하는 심도 구성요소의 2D 샘플 어레이를 나타낸다. 뷰포트라는 용어는, 표시 및 특정 관찰 방향과 관찰 위치로 사용자에 의해 관찰하기에 적합한 전방향성 또는 3D 이미지 또는 비디오의 시야의 평면 표면으로의 텍스처 투영을 나타낸다.
또한, 2D(Two-Dimensional), CMP(CubeMap Projection), CVS(Coded Video Sequence), ERP(EquiRectangular Projection), FOV(Field Of View), HEVC(High Efficiency Video Coding), HMD(Head-Mounted Display), IRAP(Intra Random Access Point), OMAF(Omnidirectional MediA Format), URN(Uniform Resource Name) 및 VR(Virtual Reality)이라는 약어가 본 명세서에서 사용된다. 수학 연산자, 논리 연산자, 관계 연산자, 비트 단위(bit-wise) 연산자, 할당 연산자, 범위 표기법, 수학 함수, 연산 우선 순위, 변수, 구문 요소 및 표, 논리 연산자의 설명 및 프로세스가 해당 분야의 일반적인 사용법에 따라 본 명세서에서 사용된다.
일부 실시예에서, 비트스트림(107)은 카메라 파라미터 목록을 포함하는 IV 시퀀스 파라미터, 아틀라스 파라미터 목록을 포함하는 IV 출력 유닛 파라미터 및 하나 이상의 아틀라스 계층 그룹을 포함하는 다중 계층 비디오 코덱 비트스트림을 포함한다. 일부 실시예에서, 비트스트림(107)으로 표현되는 몰입형 비디오 소스는 텍스처 및 심도 픽처의 하나 이상의 시퀀스이다. 각각의 텍스처 및 비디오 픽처는 3D 장면의 뷰의 특정 시간 인스턴스를 나타내고, 실제 카메라에 캡처되었거나 또는 가상 카메라에 의해 생성되었거나, 또는 복수의 표면으로 포인트 클라우드를 투영함으로써 생성되었을 수 있다. 일부 실시예에서, 출력은 카메라 파라미터 목록이고, 하나 이상의 텍스처 구성요소, 심도 구성요소 및 점유 맵 구성요소를 갖는 디코딩된 픽처 그룹의 시퀀스, 추가적인 속성에 대한 디코딩된 픽처의 선택적인 시퀀스, 아틀라스 파라미터의 시퀀스 및 아틀라스 패치 점유 맵의 시퀀스 아틀라스의 각각에 대한 것이다. 일부 실시예에서, 가상 기준 렌더러는 출력으로부터 특정된 관찰 위치 및 관찰 방향에서 뷰포트를 재구성할 수 있다. 예를 들어, 가상 3D 장면 재구성기는 출력으로부터 3D 비디오 시퀀스를 재구성할 수 있다. 일부 실시예에서, 특정된 기준 포인트 클라우드 렌더러는 디코딩 프로세스의 출력으로부터, 선택적인 추가적 속성과 함께, 포인트 클라우드 시퀀스를 재구성할 수 있다.
논의는 이제 비트스트림(107)의 하이 레벨 비트스트림 구조로 넘어간다. 특히, 본 명세서에서 논의되는 결합된 MIV/V-PCC 설계의 기본적인 측면은 비트스트림의 전체 구조이다. 2개의 개별 사양에 대한 일부 하이 레벨 배경이 제공되고, 그 후 논의는 본 개시의 IV 하이 레벨 비트스트림 구조로 넘어간다.
MIV WD [N18464]는 각각 텍스처 및 심도 구성요소가 있는 하나 이상의 아틀라스의 사용을 정의한다. 아틀라스 텍스처 구성요소 및 아틀라스 심도 구성요소는 각각 HEVC를 이용하여 코딩되며, 각 구성요소는 다중 계층 비트스트림의 개별 계층에 전달된다. 아틀라스는 하나 이상의 패치를 포함하는데, 각 패치는 특정 뷰 표현에서 대응하는 위치를 갖는 직사각형 영역이다. MIV WD1에서, 코딩된 픽처 순서는, 예컨대 아틀라스의 각 구성요소에 대하여, 모든 계층에 대해 동일하여야 한다. 이는 다중 계층 비트스트림의 각 액세스 유닛이 텍스처 코딩된 픽처와 심도 코딩된 픽처를 모두 포함한다는 것을 의미한다. 카메라 파라미터 목록 구문 구조는 하나 이상의 카메라의 목록을 시그널링하고, 각 카메라에 대해, 외부 및 내부 파라미터를 시그널링한다. 카메라 파라미터 목록은 각 IRAP(Intra Random Access Picture)에 대해 시그널링된다. 시그널링된 파라미터는, 표면으로의 3D 비디오 장면 투영으로부터 각 뷰 표현을 생성하는 데 사용되는 위치 및 방향을 포함한다. 비디오 투영 표면은 평면(원근법 투영의 경우) 또는 구(전방향성 투영의 경우)일 수 있다. 아틀라스 파라미터는 각 IRAP 픽처에 대해 시그널링될 수 있거나, 픽처마다 시그널링될 수 있다. 아틀라스 파라미터의 인터 프레임 예측은 수행되지 않는다. 테스트 MIV 소프트웨어에서, 아틀라스 파라미터는, 각 픽처가 아닌, 각 IRAP에 대해 시그널링되고, 새로운 IRAP가 발생할 때까지 코딩된 비디오 시퀀스를 통해 값이 유지된다. 아틀라스 파라미터 목록 구문 구조는 하나 이상의 아틀라스 목록을 시그널링한다. 각 아틀라스에 대해, 다음 정보, 패치의 (폭, 높이), 아틀라스에서 패치의 (x, y) 위치, 뷰에서 패치의 (x, y) 위치, 뷰에 대한 아틀라스에서 패치의 회전을 포함하는 각 패치 설명과 함께 패치의 목록이 설명된다. 점유 맵 데이터는, 점유된 샘플 위치를 나타내기 위해 임계값 미만의 값을 사용하여, 심도에 포함된다. 심도의 코딩된 픽터 크기는 대응하는 텍스처의 코딩된 픽처 크기와 동일하여야 한다. 디코딩 프로세스의 출력은 아틀라스를 나타내는 하나 이상의 디코딩된 픽처 시퀀스 그룹을 포함하고, 각 그룹은 아틀라스 텍스처 구성요소를 나타내는 텍스처 픽처 시퀀스 및 아틀라스 심도 구성요소를 나타내는 심도 픽처 시퀀스, 하나 이상의 아틀라스 패치 점유 맵 시퀀스 및 아틀라스 패치 파라미터를 포함한다. 아틀라스 패치 지도는 텍스처 및 심도 픽처와 동일한 사이즈의 2D 어레이이고, 각 샘플 위치에 대한 값으로 패치 id를 포함한다. 가상 뷰포트 렌더러는 이러한 출력을 사용할 수 있다고 언급되었지만, 설명되거나 특정되지 않는다.
V-PCC에서, 아틀라스와 유사한 개념이 사용되지만, 아틀라스라는 용어는 사용되지 않는다. 심도는 지오메트리로 지칭된다. 포인트 클라우드 시퀀스는 텍스처와 지오메트리 비디오를 형성하는 평면으로의 텍스처와 지오메트리(심도) 투영으로 표현된다. 경계가 있는 직사각형 솔리드를 나타내는 6개의 투영 평면 또는 8개의 투영 평면이 사용된다. 투영 평면은 포인트 클라우드를 둘러싸며, 외부에서 내부를 들여다본다. 패치 데이터는 픽처마다 시그널링될 수 있고, 인터 프레임 예측을 사용할 수 있다. 점유 맵 데이터는 비디오 픽처로 코딩되고, 손실 또는 무손실 비디오 코딩을 사용할 수 있다. 법선 및 반사율과 같은 포인트 클라우드의 추가적인 속성은, 또한 평면 표면으로 투영을 이용하여, 비디오 픽처로 코딩될 수 있다. 텍스처, 심도, 점유 맵 및 추가적인 속성 픽처가 동일한 코딩된 픽처 순서를 따를 필요는 없다. V-PCC SCD는 이러한 개별 비디오 코덱 비트스트림 간의 정렬을 명확하게 설명하지 않지만, 무작위 액세스를 가능하게 하기 위해 아마 일부 유형의 정렬이 정의될 필요가 있다. 디코딩 프로세스의 출력은 디코딩된 비디오 스트림이며, 텍스처, 지오메트리, 점유 맵 및 임의의 속성, 포인트 클라우드에 대한 정보뿐만 아니라 디코딩된 패치 데이터 정보에 대응한다. 이러한 출력은 3D 포인트 클라우드 재구성 프로세스를 수행하는 데 사용될 수 있는데, 이는 특정되지만 적합성을 위해 항상 필요한 것은 아니다.
다음은 일부 실시예에 따른 비트스트림(107)의 하이 레벨 비트스트림 구조를 제공한다. 일부 실시예에서, 비트스트림(107)은 하나 이상의 IVS의 시퀀스를 포함한다. 각 IVS는 출력 유닛의 시퀀스를 포함한다. 각 IVS는 하나 이상의 아틀라스 계층 그룹을 포함하며, 각 아틀라스 계층 그룹은 텍스처 계층, 심도 계층 및 점유 맵 계층을 갖는다. 각 계층은 고유한 독립 비디오 코덱 계층에 연속적인 CVS를 포함하며, 각 CVS는 코딩된 픽처의 시퀀스를 포함한다. IVS는 각 계층에 대한 CVS로 시작한다. 각 아틀라스 계층 그룹은 아틀라스의 시퀀스를 나타낸다. 아틀라스는 텍스처 구성요소 픽처, 심도 구성요소 픽처 및 점유 맵 픽처와 함께 각 출력 유닛의 디코딩된 픽처 그룹에 의해 표현된다. 아틀라스의 크기는 아틀라스를 나타내는 텍스처 계층의 디코딩된 픽처의 크기와 동일하다. 일부 실시예에서, 심도 디코딩된 픽처 크기는 동일한 아틀라스 계층 그룹의 대응하는 텍스처 계층의 디코딩된 픽처 크기와 동일하다. 점유 맵은 동일한 크기를 나타내지만, 실제 코딩된 점유 맵 픽처 크기는 스케일링 및/또는 패킹으로 인해 다를 수 있다. 디코딩된 픽처 크기는 동일한 비트스트림으로 표현된 다른 아틀라스에 대해 다를 수 있다.
도 2는 본 개시의 적어도 일부 구현에 따라 구성된 예시적인 텍스처 아틀라스, 심도 아틀라스, 점유 맵 아틀라스 및 재구성된 뷰 표현을 도시한다. 도 2에 도시된 바와 같이, 본 명세서에서 논의되는 기술을 이용하여 아틀라스가 생성, 인코딩 및 디코딩된다. 도 2는 텍스처 아틀라스(201), 심도 아틀라스(202), 텍스처 아틀라스(203), 심도 아틀라스(204) 및 대응하는 아틀라스 패치 점유 맵(221, 222)을 포함하는 디코딩된 아틀라스 쌍(211)을 도시한다. 예를 들어, 픽셀 또는 블록에 대한 점유 값이 이러한 픽셀 또는 블록 각각의 중요성을 나타내는 반면, 아틀라스 패치 점유 맵(221, 222)이 텍스처, 심도 및 점유 아틀라스 내에서 각 픽셀 또는 블록이 속하는 패치를 나타내도록, 점유 맵 아틀라스는 텍스처 및 심도 아틀라스의 패치 각각에 대한 점유 정보를 포함한다. 특히, 텍스처, 심도 및 점유 아틀라스는 픽처로 인코딩되는 반면(예컨대, HEVC 등을 이용하여), 아틀라스 패치 점유 맵(221, 222)은 각 패치에 대한 정보(패치의 위치, 크기, 우선 순위)에 기초하여 코딩되고 재구성된다.
본 명세서에서 논의되는 바와 같이, 텍스처 아틀라스(201, 203), 심도 아틀라스(202, 204) 및 점유 맵 아틀라스(221, 222)가 대응하는 텍스처 아틀라스, 심도 아틀라스 및 점유 맵 아틀라스로부터 재구성되며, 비트스트림(107)으로 인코딩된다. 도시된 예시에서, 텍스처 아틀라스(201), 심도 아틀라스(202) 및 점유 맵 아틀라스(221)는 예시적인 패치(212)(패치 2, 5, 8)를 포함하고, 텍스처 아틀라스(203), 심도 아틀라스(204) 및 점유 맵 아틀라스(222)는 예시적인 패치(213)(패치 3 및 7)를 포함한다. 이러한 패치는 재구성된 텍스처 및 심도의 관련된 선택된 뷰(231, 232, 233)(예컨대, 뷰0, 뷰1, 뷰2) 내 디코딩된 패치(2, 3, 5, 7, 8)를 제공하기 위해, 도시된 예시에서 패치(234)(패치 5)가 뷰(231)에 있고, 패치(235)(패치 8)가 뷰(232)에 있으며, 패치(236)(패치 3, 7)가 뷰(233)에 있도록, 도시된 바와 같이 아틀라스 패치 점유 맵(221, 222)을 이용하여 뷰에(또는 아틀라스 블록에서 패치 지도로) 매칭된다. 이에 따라, 선택된 뷰의 적어도 일부가 뷰 포트 생성 및 다른 동작에서 사용을 위해 디코더 시스템(300)에서 재구성된다.
논의된 바와 같이, 패치는 아틀라스와 뷰 표현 모두에서 표현되는 직사각형 영역이다. 일부 실시예에서, 특정 패치의 크기는 아틀라스 표현과 뷰 표현 모두에서 동일하다. 아틀라스는 대응하는 텍스처 구성요소, 심도 구성요소 및 점유 맵 구성요소와 함께, 하나 이상의 뷰 표현으로부터 하나 이상의 패치의 병합을 포함한다. 아틀라스 패치 점유 맵 생성기 프로세스는 아틀라스 패치 점유 맵을 출력한다. 아틀라스 패치 점유 맵은 아틀라스와 동일한 크기의 2D 어레이이며, 각 값은 아틀라스에 함께 배치된 샘플이 대응하는(있는 경우) 패치의 인덱스를 나타내고, 아닌 경우 샘플 위치가 유효하지 않은 값을 갖는 것을 나타낸다. 뷰 표현은 텍스처 및 깊이 구성 요소에 대한 특정 카메라 파라미터에 대한 3D 장면의 시야를 나타낸다. 뷰 표현은 무지향 또는 원근법일 수 있고, OMAF에 정의된 정방형 투영 또는 큐브 맵 투영과 같은 상이한 투영 형식을 사용할 수 있다. 일부 실시예에서, 뷰 표현의 텍스처 및 심도 구성요소는 동일한 투영 형식을 사용하고 동일한 크기를 갖는다. 도 2는, 3개의 뷰 표현으로 매핑되는, 2개의 아틀라스가 5개의 패치를 갖는 도시적인 예시를 제공한다.
도 3은 본 개시의 적어도 일부 구현에 따라 구성된 몰입형 비디오에 대응하는 뷰포트(302)를 생성하기 위해 비트스트림(107)을 디코딩하기 위한 예시적인 디코더 시스템(300)의 개략도이다. 도 3에 도시된 바와 같이, 디코더 시스템(300)은 텍스처 비디오 디코더(311), 심도 비디오 디코더(312), 점유 비디오 디코더(313), IV 출력 유닛 파라미터 디코더(321), IV 출력 유닛 파라미터 디코더(322), 아틀라스 패치 점유 맵 생성기(331) 및 기준 렌더러(341)를 포함한다. 디코더 시스템(300)은, 예를 들어 서버, 개인용 컴퓨터, 랩톱 컴퓨터, 태블릿, 패블릿, 스마트폰, 디지털 카메라, 게이밍 콘솔, 웨어러블 디바이스, 디스플레이 디바이스, 올인원 디바이스, 투인원 디바이스 등과 같은 임의의 적합한 디바이스를 통해 구현될 수 있다. 예를 들어, 본 명세서에서 사용되는, 시스템, 디바이스, 컴퓨터 또는 컴퓨팅 디바이스는 임의의 이러한 디바이스 또는 플랫폼을 포함할 수 있다.
도시된 바와 같이, 비트스트림(107)이 디코더 시스템(300)에 의해 수신된다. 일부 실시예에서, 비트스트림(107)은 아틀라스 계층 그룹의 각 텍스처, 심도 및 점유 맵 계층 구성요소에 대한 CVS를 포함하는 IVS 비트스트림이다. 디코더 시스템(300)은 디코딩된 텍스처 아틀라스(305)(텍스처 아틀라스(103)의 재구성된 버전), 디코딩된 심도 아틀라스(306)(심도 아틀라스(104)의 재구성된 버전), 디코딩된 점유 아틀라스(307)(점유 아틀라스(105)의 재구성된 버전)의 시퀀스를 출력한다. 예를 들어, 디코더 시스템(300)은 동기화된 디코딩된 텍스처 픽처(A), 디코딩된 심도 픽처(B)의 디코딩된 픽처 그룹을 출력한다. 각 디코딩된 픽처 그룹은 아틀라스(D)를 나타낸다. 또한, 메타데이터는 IV 출력 유닛 파라미터 디코더(321)와 IV 출력 유닛 파라미터 디코더(321)(예컨대, 집합적으로, 메타데이터 파서(parser))에 대한 입력이고, 이는 카메라 파라미터(308)(예컨대, 재구성된 버전 카메라 파라미터(102))와 아틀라스 파라미터(309)(예컨대, 재구성된 버전 카메라 파라미터(106))를 출력한다. 예를 들어, IV 출력 유닛 파라미터 디코더(321)와 IV 출력 유닛 파라미터 디코더(321)는 아틀라스 파라미터 목록(E)과 카메라 파라미터 목록(F)을 생성한다.
또한, 아틀라스 패치 점유 맵 생성기(331)는 입력으로서 심도 디코딩된 픽처(B)(디코딩된 심도 아틀라스(306))와 아틀라스 파라미터 목록(D)(아틀라스 파라미터(309))을 수신하고 아틀라스 패치 점유 맵(310)(G)을 출력한다. 일부 실시예에서, 기준 렌더러(341)는 입력으로서 하나 이상의 디코딩된 아틀라스(C)(점유 아틀라스(307)), 아틀라스 파라미터 목록(D), 카메라 파라미터 목록(E)(카메라 파라미터(308)), 아틀라스 패치 점유 맵 시퀀스(F)(아틀라스 파라미터(309)) 및 뷰어 (viewer) 위치 및 방향(303)(예컨대, 디스플레이 디바이스로부터 수신된)을 수신하고, 뷰포트(302)(장면 내 임의의 가상 카메라로부터의 뷰를 나타냄)를 출력한다. 일부 실시예에서, 디코더 시스템(300)은 기준 렌더러(341)를 포함하지 않는다. 일부 실시예에서, 논의된 디코더 시스템(300)의 출력은 기준 포인트 클라우드 렌더러에 제공되고, 각 출력 유닛에 대해 포인트 클라우드 시퀀스를 생성한다.
논의는 이제 구문과 시맨틱(semantic)으로 넘어간다. 다음에서, 구문 테이블은 허용된 비트스트림의 구문의 슈퍼세트(superset)를 지정한다. 일부 실시예에서, 구문에 추가적인 제약이 지정될 수 있다. 다음 테이블은 예시적인 구문을 나열한다. 일부 실시예에서 syntax_element가 나타나는 경우, 그것은 구문 요소가 비트스트림으로부터 파싱되고 비트스트림 포인터가 비트스트림 파싱 프로세스에서 신택스 요소를 넘어 다음 위치로 전진된다는 것을 지정한다. byte_aligned()라는 용어는, 비트스트림에서 현재 위치가 바이트 경계에 있는 경우(즉, 비트스트림에서 다음 비트가 바이트 내에서 첫 번째 비트임), byte_aligned()의 반환 값은 TRUE이고, 아닌 경우 byte_aligned()의 반환 값은 FALSE인 것으로 지정된다. b(8)이라는 용어는 임의의 패턴의 비트 문자열(8비트)을 갖는 바이트를 나타내며, 이 디스크립터에 대한 파싱 프로세스는 함수 read_bits(8)의 반환 값에 의해 지정된다. f(n)이라는 용어는 왼쪽 비트가 먼저 기록된(왼쪽에서 오른쪽으로) n비트를 사용하는 고정 패턴 비트 문자열을 나타내며, 이 디스크립터에 대한 파싱 프로세스는 함수 read_bits(n)의 반환 값에 의해 지정된다. se(v)라는 용어는 왼쪽 비트가 먼저인, 부호 있는 정수 0차 Exp-Golomb 코딩 구문 요소를 나타낸다. i(n)이라는 용어는 n비트를 사용하는 부호 있는 정수를 나타내며, n이 구문 테이블에서 "v"인 경우, 비트의 수는 다른 구문 요소의 값에 따라 달라지는 방식으로 변하고, 이 디스크립터에 대한 파싱 프로세스는, 최상위 비트가 먼저 기록되는 2의 보수 정수 표현으로 해석되는 함수 read_bits(n)의 반환 값에 의해 지정된다. u(n)이라는 용어는 n비트를 사용하는 부호 없는 정수를 나타내며, n이 구문 테이블에서 "v"인 경우, 비트의 수는 다른 구문 요소의 값에 따라 달라지는 방식으로 변하고, 이 디스크립터에 대한 파싱 프로세스는, 최상위 비트가 먼저 기록되는 부호 없는 정수의 2진수 표현으로 해석되는 함수 read_bits(n)의 반환 값에 의해 지정된다. ue(v)라는 용어는 왼쪽 비트가 먼저인 부호 없는 정수 0차 Exp-Golomb 코딩 구문 요소를 나타낸다.
비트스트림(107)을 더 참조하면, 일부 실시예에서, 임의의 계층에서 IRAP 픽처를 포함하는 액세스 유닛은 코딩된 픽처를 포함하는 모든 계층에서 IRAP 픽처를 포함해야 한다. 예를 들어, 일부 실시예에 따른 결합 IV 사양에서, IRAP 정렬은 아틀라스의 구성요소를 나타내는 모든 비디오 코덱 계층에 요구된다. IV 시퀀스(IVS)는 모든 비디오 코덱 계층에서 IRAP로 시작한다. 일부 실시예에서, 비디오 코덱 계층에 포함되지 않은 데이터를 전달하기 위해 IVS_unit_rbsp() 구문 구조가 정의된다. IVS는 ivs_params() 구문 구조로 시작되며, 이는 카메라 파라미터 목록을 포함하여 IVS 별로 시그널링된 구문 요소를 전달한다.
디코딩 프로세스는 각 IVS에 대한 출력을 지정하며, 카메라 파라미터를 포함한다. 일부 실시예에서, 비디오 코덱 계층에 걸쳐 IRAP 정렬을 갖는 요건과는 별도로, 상이한 비디오 코덱 계층이 상이한 픽처 코딩 순서를 가질 수 있게 하는 IV 출력 유닛이 정의된다. 특히, HEVC에서, 액세스 유닛은 픽처 코딩 순서와 정렬되며, 이는 IV에 필요하지 않다. 일부 실시예에서, IV 출력 유닛은, 하나 이상의 아틀라스를 설명하는, 유형 출력 유닛 파라미터의 IV NAL 유닛, 출력 유닛 파라미터 구문 구조, 0 또는 1개의 아틀라스 파라미터 목록, 각 아틀라스에 대하여, 0 또는 1개의 텍스처 코딩된 픽처, 0 또는 1개의 점유 맵 코딩된 픽처, 0 또는 1개의 심도 코딩된 픽처, 여러 추가적인 속성 각각에 대한 0 또는 1개의 코딩된 픽처 및 0 또는 1개의 출력 유닛 구분자(delimiter)를 포함한다. 논의된 바와 같이, 일부 실시예에서, 준수하는(conforming) 비트스트림은 하나 이상의 IVS를 포함하고, 각 IVS는 하나 이상의 IV 출력 유닛을 포함한다. 일부 실시예에서, 각 IVS는 유형 시퀀스 파라미터의 IV NAL 유닛, 하나 이상의 IRAP 정렬된 다중 계층 비디오 코덱 CVS 및 하나 이상의 유형 출력 유닛 파라미터의 IV NAL 유닛을 포함한다.
일부 실시예에서, IRAP 정렬 다중 계층 비디오 코덱 CVS는 하나 이상의 계층 그룹을 포함하고, 각 계층 그룹은 3개 이상의 비디오 코덱 CVS를 포함하는 아틀라스를 나타내며, 각 CVS는 각각 별개의 계층에 포함된 아틀라스의 개별 구성요소를 나타낸다. 일부 실시예에서, IRAP 정렬 다중 계층 비디오 코덱 CVS는 하나 이상의 비디오 코덱 액세스 유닛을 포함하고, 각 비디오 코덱 액세스 유닛은 하나 이상의 코딩된 픽처를 포함하며, IRAP 픽처가 계층 그룹의 임의의 계층에 대해 액세스 유닛에 존재하는 경우, IRAP 픽처는 그 액세스 유닛의 계층 그룹의 모든 계층에 존재한다.
일부 실시예에서, 디코딩 프로세스는 각 출력 유닛에 대한 출력을 지정하며, 뷰포트를 생성하거나 또는 포인트 클라우드를 렌더링하기 위해 프로세스에 입력하는 데 필요한 모든 데이터를 포함한다. 일부 실시예에서, 디코딩 프로세스는 각 출력 유닛에 대하여 다음 출력, 하나 이상의 아틀라스의 각각에 대한, 아틀라스 텍스처 구성요소를 나타내는 텍스처 디코딩된 픽처, 아틀라스 심도 구성요소를 나타내는 심도 디코딩된 픽처, 점유 맵 구성요소를 나타내는 점유 맵 디코딩된 픽처, 선택적으로, 추가적인 속성, 아틀라스 패치 점유 맵 및 아틀라스(패치) 파라미터 목록을 나타내는 하나 이상의 디코딩된 픽처를 지정한다. 본 명세서에서 사용되는 바와 같이, 아틀라스 패치 점유 맵이라는 용어는, 논의된 바와 같이, 값이 샘플이 대응하거나 샘플이 유효하지 않은 경우의 아틀라스 내 각 샘플 위치를 나타내는 아틀라스에 대응하는 2D 어레이를 나타내고, 아틀라스 패치 점유 맵과 BlockToPatchMap은 실질적으로 상호 교환적으로 사용될 수 있다.
MIV의 경우, 출력 유닛이 비디오 코덱 액세스 유닛과 정렬되므로, 모든 계층의 비디오 디코딩된 픽처는 비디오 코덱 출력 순서와 정렬된다. 일부 실시예에서, 이 제한은 아래에서 설명되는 바와 같이, 몰입형 메인 10 프로파일에 부과된다. V-PCC의 경우, 코딩 순서가 아틀라스의 상이한 구성요소마다 다를 수 있으므로, IV 디코딩 프로세스는 각 출력 유닛에 대한 출력 시간에 모든 아틀라스의 모든 구성요소를 나타내는 대응하는 픽처를 출력하는 역할을 한다.
도 4는 본 개시의 적어도 일부 구현에 따라 구성된 인트라 랜덤 액세스 포인트를 포함하는 몰입형 비디오 코딩에 대한 예시적인 프로세스를 도시하는 흐름도이다. 프로세스(400)는 도 4에 도시된 바와 같은 하나 이상의 동작(401 내지 406)을 포함할 수 있다. 프로세스(400)는 본 명세서에서 논의된 시스템의 임의의 디바이스에 의해 수행될 수 있다.
프로세싱은 동작(401)에서 시작되는데, 여기서 몰입형 비디오를 나타내는 심도 아틀라스 픽처의 시퀀스, 텍스처 아틀라스 픽처의 대응하는 시퀀스 및 점유 맵 아틀라스 픽처의 대응하는 시퀀스가 처리를 위해 수신된다. 예를 들어, 심도 아틀라스 픽처, 텍스처 아틀라스 픽처 및 점유 맵 아틀라스 픽처는 장면을 비추는 다수의 카메라로부터 획득된 비디오의 입력 뷰에 기초하여 생성된다. 아틀라스 픽처(예컨대, 픽처 아틀라스로 배열된 패치)는, 예를 들어 인코딩 시스템(100)에 의해 뷰를 인코딩하기 위해 수신된다. 일부 실시예에서, 동작(401 내지 403)은 인코더에 의해 수행되고, 동작(404 내지 406)은 디코더에 의해 수행된다. 심도 아틀라스 픽처, 텍스처 아틀라스 픽처 및 점유 맵 아틀라스 픽처는, 예를 들어, 텍스처 아틀라스(103), 심도 아틀라스(104), 점유 아틀라스(105)의 시퀀스일 수 있다.
시퀀스는 몰입형 비디오의 어떤 시간 지점에서 뷰가 표시되어야 하는지, 관련되는지 등을 나타내는 대응하는 출력 시간 또는 표시 시간을 갖는다. 이러한 출력 시간 또는 표시 시간은 타임 스탬프와 같은 임의의 적합한 데이터 구조를 이용하여 표시될 수 있고/있거나 시작 시간, 프레임 레이트 등에 기초하여 유도될 수 있다. 본 명세서에서 사용되는 바와 같이, 출력 시간 또는 표시 시간이라는 용어는 실질적으로 상호 교환 가능하게 사용되고, 텍스처, 심도 및 점유 아틀라스의 그룹이 대응하거나 또는 관련이 있는 시간 지점을 나타낸다.
프로세싱은 동작(402)에서 계속되는데, 여기서 심도 아틀라스 픽처의 시퀀스, 텍스처 아틀라스 픽처의 시퀀스 및 점유 맵 아틀라스 픽처의 시퀀스가 인코딩되어 코딩된 몰입형 비디오 데이터를 제공한다. 이러한 아틀라스 픽처는 HEVC 준수 인코더 등과 같은 임의의 적합한 기술 또는 기술들을 이용하여 코딩될 수 있다. 특히, 코딩된 몰입형 비디오 데이터는 심도 아틀라스 픽처의 시퀀스, 텍스처 아틀라스 픽처의 시퀀스 및 점유 맵 아틀라스 픽처의 시퀀스의 개별 픽처에 각각 대응하는 출력 시간을 포함하거나 또는 이에 대응한다. 즉, 코딩된 몰입형 비디오 데이터(예컨대, 비트스트림)는 각각 픽처가 사용자에게 제공될 때와 관련된 대응하는 출력 시간을 갖는 이러한 아틀라스 픽처를 나타낸다. 일부 실시예에서, 출력 시간의 서브세트 각각에 대해, 코딩된 몰입형 비디오 데이터는 코딩된 심도 아틀라스 픽처, 대응하는 코딩된 텍스처 아틀라스 픽처 및 대응하는 코딩된 점유 맵 아틀라스 픽처 각각에 대한 인트라 코딩된 픽처의 표현을 포함한다. 특히, 몰입형 비디오 데이터에 대한 인트라 랜덤 액세스 포인트가 필요하도록, 비트스트림은 특정 출력 시간에 대해, 코딩된 심도 아틀라스 픽처, 대응하는 코딩된 심도 아틀라스 픽처 및 대응하는 코딩된 점유 맵 아틀라스 픽처 각각에 대한 인트라 코딩된 픽처를 포함하는 것을 준수해야 할 수 있다.
출력 시간 또는 표시 시간은, 특정 간격(예컨대, 매 1초, 매 2초, 매 5초 등)의 시간 또는 특정 프레임 레이트(예컨대, 매 60번째 프레임, 매 120번째 프레임 등)의 시간과 같은 임의의 적합한 서브세트일 수 있다. 일부 실시예에서, 출력 시간의 서브세트는 출력 시간 내 규칙적인 간격으로 제공되는 몰입형 비디오에 액세스하는 랜덤 액세스 포인트를 제공한다. 일부 실시예에서, 출력 시간의 서브세트의 각각은 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처를 포함하는 출력 유닛에 대응할 수 있다.
논의된 바와 같이, 일부 실시예에서, 출력 또는 표시 시간의 이러한 서브세트에서, 코딩된 심도 아틀라스 픽처, 대응하는 코딩된 텍스처 아틀라스 픽처 및 대응하는 코딩된 점유 맵 아틀라스 픽처의 각각에 대한 인트라 코딩된 픽처가 요구된다. 일부 실시예에서, 코딩된 몰입형 비디오 데이터는 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 심도 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처에 대응하는 인트라 코딩된 추가적인 속성 아틀라스 픽처를 더 포함한다. 예를 들어, 추가적인 속성 아틀라스 픽처는 3D 컨텐츠의 표면 법선 벡터, 반사율 등을 포함하는 뷰의 다른 속성에 대응하는 데이터를 포함할 수 있다. 본 명세서에서 논의되는 바와 같이, 일부 실시예에서, 코딩된 몰입형 비디오 데이터는 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처에 대응하는 아틀라스 파라미터 목록을 더 포함한다.
프로세싱은 동작(403)에서 계속되는데, 여기서 코딩된 몰입형 데이터는 디코더 또는 메모리 스토리지 디바이스와 같은 다른 디바이스로 전송된다. 예를 들어, 코딩된 몰입형 데이터는 비트스트림에 포함 및/또는 패킷화되고, 압축된 표현으로 디코더 또는 메모리 스토리지 디바이스(추후 디코더에 의한 사용을 위해)로 제공될 수 있다.
프로세싱은 동작(404)에서 계속되는데, 여기서 코딩된 몰입형 데이터가 수신된다. 예를 들어, 코딩된 몰입형 데이터는 디코더 시스템(300)에 의해 수신될 수 있다. 도시된 바와 같이, 코딩된 몰입형 데이터는, 몰입형 비디오를 나타내는 심도 아틀라스 픽처의 시퀀스, 텍스처 아틀라스 픽처의 시퀀스 및 점유 맵 아틀라스 픽처의 시퀀스의 개별 픽처에 각각 대응하는 출력 시간 또는 표시 시간을 포함 또는 갖는다. 예를 들어, 출력 시간 또는 표시 시간은 몰입형 비디오의 시퀀스의 특정 프레임 또는 픽처에 각각 대응할 수 있다.
프로세싱은 동작(405)에서 계속되는데, 여기서 코딩된 몰입형 데이터가 디코딩되어 코딩된 몰입형 데이터(예컨대, 비트스트림)에 의해 표현되는 심도 아틀라스 픽처의 시퀀스, 텍스처 아틀라스 픽처의 시퀀스 및 점유 맵 아틀라스 픽처의 시퀀스를 생성한다. 예를 들어, 심도 아틀라스 픽처의 시퀀스, 텍스처 아틀라스 픽처의 시퀀스 및 점유 맵 아틀라스 픽처의 시퀀스는, 동작(401 내지 403)과 관련하여 논의된 바와 같이 코딩된 심도 아틀라스 픽처의 시퀀스, 텍스처 아틀라스 픽처의 시퀀스 및 점유 맵 아틀라스 픽처의 시퀀스의 재구성된 버전이다. 일부 실시예에서, 출력 시간의 서브세트 각각에 대해, 디코딩된 시퀀스는 코딩된 심도 아틀라스 픽처, 대응하는 코딩된 텍스처 아틀라스 픽처 및 대응하는 코딩된 점유 맵 아틀라스 픽처의 각각에 대한 인트라 코딩된 픽처를 포함한다. 예를 들어, 출력 또는 표시 시간의 서브세트에 대해, 각각은 몰입형 비디오에 대한 랜덤 액세스가 제공되도록, 아틀라스 픽처를 갖도록 요구되거나 또는 의무화된다.
일부 실시예에서, 출력 시간의 서브세트는, 출력 시간 내 규칙적인 간격으로 제공되는 몰입형 비디오에 대한 랜덤 액세스 포인트를 포함한다. 앞서 논의된 바와 같이, 서브세트는 시간 또는 프레임 등의 규칙적인 간격으로 필요할 수 있다. 일부 실시예에서, 출력 시간의 서브세트의 각각은 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처를 포함하는 출력 유닛에 대응한다. 일부 실시예에서, 코딩된 몰입형 비디오 데이터는, 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처에 대응하는 인트라 코딩된 추가적인 속성 픽처를 더 포함한다. 이러한 인트라 코딩된 추가적인 속성 픽처는 표면 법선 벡터, 반사율 등과 같은 몰입형 비디오와 관련된 임의의 적합한 속성을 가질 수 있다. 일부 실시예에서, 코딩된 몰입형 비디오 데이터는, 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처의 패치가 본 명세서에서 논의된 바와 같이 몰입형 비디오의 관련 뷰에 할당될 수 있도록, 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처에 대응하는 아틀라스 파라미터 목록을 더 포함한다.
프로세싱은 동작(406)에서 계속되는데, 여기서 뷰어를 위한 표시를 준비하는 데 사용하기 위해 디코딩된 시퀀스가 전송된다. 예를 들어, 디코딩된 시퀀스는 몰입형 비디오의 뷰의 적어도 일부를 재구성하는 데 사용될 수 있고, 이러한 재구성된 뷰는 뷰포트를 생성하는 데 사용(3D 공간 내 사용자 및/또는 디스플레이 위치 및 방향에 기초하여)될 수 있다.
논의는 이제 아틀라스 파라미터(106) 및/또는 아틀라스의 패치가 대응하는 위치 및 특정 뷰를 나타내는 데 사용되는 데이터의 인코딩 및 디코딩을 포함하는 점유 맵 시그널링으로 넘어간다. 특히, V-PCC와 MIV는 모두 점유 맵 시그널링을 사용하지만, 상이한 방법이 사용된다. 본 명세서에서 논의되는 기술은 이전 V-PCC 및 MIV 기술과 관련하여 향상된 효율을 위해 점유 맵 코딩에 대한 더 낮은 샘플 레이트를 허용한다. MIV WD1에서, 각 샘플에 대해 샘플이 유효한 패치 데이터를 포함하는지 여부를 나타내는 점유 맵이 심도 구성요소에 포함된다. DepthOccupancyMapThreshold(현재 64)보다 낮은 심도 값은 점유되지 않은 샘플 위치를 나타낸다. 또한, MIV WD1에서, 방법은 아틀라스 패치 점유 맵을 생성하도록 설명된다. 아틀라스 패치 점유 맵은 각 아틀라스에 대한 2D 어레이로, 각각의 샘플은 샘플의 PatchId를 나타내는 16비트 값을 포함한다. 샘플이 유효한 패치 샘플을 나타내지 않는 경우, 아틀라스 패치 점유 맵은 0xFFFF 값으로 할당된다. MIV WD1에서, 심도의 코딩된 픽처 크기는 대응하는 텍스처의 코딩된 픽처 크기와 동일하여야 한다. V-PCC에서, 점유 맵은 비디오로 코딩된다. 명시적으로 시그널링된 임계값과 함께, 8(또는 10비트 이상) 값으로부터 0 또는 1 값을 도출하는 데 손실 코딩이 사용될 수 있다. 무손실 코딩 또한 사용될 수 있다. 인코딩 전에 점유 맵 픽처에 페더링(feathering)이 적용될 수 있다. 점유 맵 코딩된 픽처는 대응하는 텍스처 또는 심도 픽처보다 더 낮은 해상도일 수 있지만, 업스케일링 방법은 명시적으로 특정되지 않는다.
다음은 일부 실시예에 따른 점유 맵 시그널링을 제공한다. 일부 실시예에서, MIV 점유 맵은 비디오 인코딩을 이용하여 명시적으로 시그널링된다. MIV WD1 설계에서, DepthOccupancyMapThreshold보다 낮은 값을 유지하여야 하기 때문에, 비디오 인코딩 전 점유되지 않은 심도 샘플에 패딩을 적용하는 것이 허용되지 않는다. 본 명세서에서 논의되는 기술에 따라 심도 점유 맵을 명시적으로 코딩하는 것은 점유되지 않는 샘플의 패딩이 심도 픽처에 사용될 수 있게 한다. 패딩은 코딩의 주관적이고 객관적인 품질을 향상시킬 수 있다.
일부 실시예에서, 스케일링이 점유 맵에 적용될 수 있다. 일부 실시예에서, 스케일링 방법은 아틀라스 패치 점유 맵의 생성을 위해 샘플 복제를 사용한다. 샘플 복제의 사용은 패치의 점유가 스케일링 팩터와 블록 정렬될 때 손실을 일으키지 않는다.
일부 실시예에서, 오직 0 또는 1의 이진 값이 무손실 코딩으로 점유 맵을 코딩하는 데 사용된다. 점유 맵 정확도의 손실 없이 점유 맵 코딩을 위해 사용되는 픽셀 레이트를 8x로 줄이기 위해, 8 수평 공간 이웃을 이용하여, 8 점유 맵 이진 샘플이 루마 샘플 바이트로 패킹된다.
일부 비디오 인코더는 트랜스퀀트(transquant) 우회 도구의 사용을 지원하지 않으므로 점유 맵의 비트 패킹은 선택적일 수 있다. 일부 실시예에서, 점유 맵의 비트 패킹은 공통 테스트 조건에서 사용된다. 예를 들어, 트랜스퀀트 우회 도구가 사용될 수 있도록, 공통 테스트 조건은 HEVC를 사용할 수 있다.
일부 실시예에서, 구문 요소, occupancy_map_threshold, occupancy_map_scaling 및 occupancy_map_packing_flag 는 점유 맵 코딩에 관한 IVS 파라미터 구문 구조에 포함된다.
일부 실시예에서, 몰입형 메인 10 프로파일에서, 점유 맵의 픽처 크기는, 스케일링 및 패킹에 대한 조정 후(있는 경우), 대응하는 텍스처와 심도 구성요소의 코딩된 픽처 크기와 동일하도록 제한된다.
논의는 이제 일부 실시예에 따른 IV 네트워크 추상 계층(NAL) 유형 값 및 NAL 유닛 데이터로 넘어간다. 일부 실시예에 따른 MIV 몰입형 메인 10 프로파일의 경우, HEVC VPS(Video Parameter Set) 확장은 아틀라스 구성요소가 HEVC 계층에 할당되는 방법을 설명한다. 일부 실시예에서, 아틀라스 구성요소 샘플 값은 HEVC 계층에서 코딩된 픽처로 표현된다.
일부 실시예에서, HEVC NAL 유닛 유형(NUT) 값이 IV에 대해 할당되어 HEVC VPS 확장 또는 HEVC 코딩된 픽처에 포함되지 않은 추가적인 정보를 시그널링한다. 일부 실시예에서, "IV 유닛" NUT 값의 할당은 준수하는 비트스트림에 대한 요건으로서 포함된다. NUT 값을 사용하는 NAL 유닛 구문 구조의 컨텐츠는 본 명세서에서 더 설명된다.
일부 실시예에서, 비록 HEVC 디코더는 이 유형의 NAL 유닛을 무시할 수 있지만, IV NAL 유닛의 IV 데이터는 HEVC NAL 유닛에 포함된다. 시스템 계층은 이러한 방식으로 HEVC 비트스트림 내에 IV 데이터를 포함하도록, 또는 대안적으로 IV NAL 유닛에 대해 HEVC NAL 유닛을 사용하지 않고 IV 데이터를 별도로 전달하도록 선택할 수 있다.
IV NAL 유닛이 HEVC NAL 유닛에 포함되는 경우, 각 IV NAL 유닛은 HEVC nal_unit_header()로 시작할 수 있다.
일부 실시예에 따른 IV 유닛 구문이 다음 표 1에 나타나는데, ivs_unit_type 구문 요소로 시작하여, 그 후 ivs_unit_type 값에 기초한 구문 구조를 포함한다.
ivs_unit( ) { Descriptor
ivs_unit_type u(5)
if ( ivs_unit_type = = 0 )
ivs_sequence_params( )
else if ( ivs_unit_type = = 1 )
iv_output_unit_params( )
else if ( ivs_unit_type = = 2 )
iv_output_unit_delimiter( )
rbsp_trailing_bits( )
}
표 1에서 다음 구문이 사용된다. 요소 ivs_unit은 IVS 유닛을 나타내고, 요소 ivs_unit_type은 IVS 유닛 유형을 나타내며, 이는 아래의 표 2에 제공된다. 즉, 일부 실시예에 따른 ivs_unit_type의 값이 아래의 표 2에 나열된다. 일부 실시예에서, 예를 들어, V-PCC에 대해 추가적인 값이 추가될 수 있다. 일부 실시예에서, ivs_unit_type은 표 2에 나타난 IV 유닛의 유형을 지정한다.
ivs_unit_type Identifier Syntax structure
0 IVS_SP ivs_params( )
1 IVS_OUP iv_output_unit_params( )
2 IVS_OUD iv_output_unit_delimiter( )
3...31 IVS_RSVD Reserved
여기서, 다음과 같이 일부 실시예에 따른 구문 요소의 일부가 정의된다. 구문 요소 ivs_all_codec_layers_au_aligned_flag가 1인 것은, 다중 계층 CVS의 각 활성 계층에 대해, 각 액세스 유닛이 활성 계층 id와 동일한 nuh_layer_id를 갖는 하나의 픽처를 포함해야 함을 나타낸다. 구문 요소 occupancy_map_threshold는 샘플 위치가 점유되었는지를 결정하기 위해 점유 맵 디코딩된 샘플의 값이 비교되는 아래의 임계값을 지정한다. 구문 요소 occupancy_map_scaling이 0인 것은 점유 맵 코딩된 픽처의 폭과 높이가 각각 대응하는 텍스처 코딩된 지도 픽처의 폭과 높이와 동일하다는 것을 나타낸다. 0보다 큰 occupancy_map_scaling은 점유 맵 코딩된 픽처의 폭과 높이가, 점유 맵 패킹의 고려 이전, 각각 대응하는 텍스처 코딩된 지도 픽처의 폭 << occupancy_map_scaling과 높이 << occupancy_map_scaling와 동일함을 나타낸다. 구문 요소 occupancy_map_packing_flag가 0인 것은 점유 맵 디코딩된 픽처에 비트 패킹이 적용되지 않는다는 것을 나타낸다. occupancy_map_packing_flag가 0인 것은, 아틀라스 패치 점유 맵 생성기 프로세스에서 설명된 바와 같은, 점유 맵 디코딩된 픽처에 비트 패킹이 적용된다는 것을 나타낸다. 구문 요소 iv_output_unit_count_bits_minus4 + 4는 iv_output_unit_count 구문 요소를 나타내는 데 사용되는 비트의 수를 지정한다. 존재하지 않는 경우, iv_output_unit_count_bits_minus4의 값은 0인 것으로 추정된다. 구문 요소 ivs_points_info_present_flag가 1인 것은 points_info() 구문 구조가 존재함을 나타낸다. ivs_points_info_present_flag가 0인 것은 points_info() 구문 구조가 존재하지 않음을 나타낸다. 구문 요소 ivs_sp_vui_present_flag가 1인 것은 IV SPS VUI 파라미터가 존재함을 나타낸다. ivs_sp_vui_present_flag가 0인 것은 IV SPS VUI 파라미터가 존재하지 않음을 나타낸다. 구문 요소 ivs_volume_range_present_flag가 1인 것은 ivs_bounding_rectangular_solid_flag 구문 요소가 존재함을 나타낸다. ivs_volume_range_present_flag가 0인 것은 ivs_bounding_rectangular_solid_flag 구문 요소가 존재함을 나타낸다. 구문 요소 ivs_bounding_rectangular_solid_flag가 1인 것은 비트스트림에 의해 나타나는 3D 볼륨 범위가 카메라 파라미터 목록으로부터 유도된 치수를 갖는 직사각형 솔리드로 표현될 수 있다는 것을 나타낸다. 구문 요소 ivs_sp_avg_frame_rate_present_flag가 1인 것은 ivs_sp_avg_frame_rate 구문 요소가 존재함을 나타낸다. ivs_sp_avg_frame_rate_present_flag가 0인 것은 ivs_sp_avg_frame_rate 구문 요소가 존재하지 않음을 나타낸다. 구문 요소 ivs_sp_extension_present_flag가 0인 것은 ivs_sp_extension_data_flag 구문 요소가 구문 구조에 존재하지 않음을 나타낸다. ivs_sp_extension_present_flag가 1인 것은 구문 구조에 ivs_sp_extension_data_flag 구문 요소가 존재함을 나타낸다. 디코더는 ivs_sp_extension_present_flag에 대해 값 1을 따르는 모든 데이터를 무시할 수 있다. 구문 요소 ivs_sp_extension_data_flag는 임의의 값을 가질 수 있다. 그것의 존재와 값은 디코더 적합성에 영향을 미치지 않는다. 프로파일을 준수하는 디코더는 모든 ivs_sp_extension_data_flag 구문 요소를 무시할 수 있다. 또한, IV 프로파일, 티어(tier) 및 레벨 시맨틱은 다음과 같이 제공될 수 있다. 구문 요소 ivs_tier_flag는 ivs_level_idc의 해석을 위한 티어 컨텍스트를 지정한다. 구문 요소 ivs_profile_idc는 IVS가 준수하는 프로파일을 나타낸다. 비트스트림은 지정된 것 이외의 ivs_profile_idc 값을 포함하지 않아야 한다. ivs_profile_idc의 다른 값은 ISO/IEC에 의한 향후 사용을 위해 남겨진다. 구문 요소 ivs_level_idc는 IVS가 준수하는 레벨을 나타낸다. 비트스트림은 지정된 것 이외의 ivs_level_idc의 값을 포함하지 않아야 한다. ivs_level_idc의 다른 값은 ISO/IEC에 의한 향후 사용을 위해 남겨진다. 구문 요소 ivs_max_codec_layers_minus1은 다중 계층 비디오 코덱에 존재하는 계층의 수의 최대값을 지정한다. 구문 요소 ivs_layer_max_level_idc는 각 비디오 코덱 계층에 대해 레벨 표시자(indicator)의 최대값을 지정한다. 구문 요소 ivs_points_rendering_idc가 0인 것은, 포인트 클라우드 렌더링이 비트스트림에 대한 디코딩 프로세스의 출력에 적용되도록 권장되는지 여부를 나타내지 않는다. ivs_rendering_type_idc가 1인 것은 포인트 클라우드 렌더링 프로세스가 디코딩 프로세스의 출력에 적용되도록 권장된다는 것을 나타낸다. ivs_rendering_type_idc가 2인 것은 포인트 클라우드 렌더링 프로세스가 디코딩 프로세스의 출력에 적용되도록 권장되고, 비트스트림이 포인트 클라우드 렌더링 프로세스가 기준 포인트 클라우드 렌더러에 의해 생성되는 포인트 클라우드 시퀀스에 정확하게 일치하는 포인트 클라우드 시퀀스를 생성할 수 있게 한다는 것을 나타낸다. 3 내지 5 범위의 ivs_points_rendering_idc의 값은 ISO/IEC에 의한 향후 사용을 위해 남겨진다. ivs_rendering_idc가 2인 경우, ivs_oup_num_points_present_flag는 1이어야 한다. 구문 요소 ivs_points_level_idc는 IVS가 준수하는 포인트 클라우드 렌더링 레벨을 나타낸다. 구문 요소 ivs_ptl_reserved_8bits는 임의의 값을 가질 수 있다. 구문 요소 ivs_ptl_reserved_4bits는 임의의 값을 가질 수 있다. 논의는 이제 일부 실시예에 따른 IV 시퀀스와 출력 유닛 파라미터로 넘어간다. 일부 실시예에서, IV 상위 계층 구문은 IV 시퀀스 파라미터와 IV 출력 유닛 파라미터 구문으로 분리되며, IV 시퀀스 파라미터는 각 IVS에 대해 시그널링되고, IV 출력 유닛 파라미터는 각 IV 출력 유닛에 대해 시그널링된다.
일부 실시예에서, IVS 파라미터는 각 IV 시퀀스(IVS)에 대해 시그널링된다. 일부 실시예에서, IV 프로파일, 티어 및 레벨 구문 구조는 IVS 파라미터 구문 구조에 포함된다.
일부 실시예에서, IVS 파라미터의 ivs_codec_id 구문 요소에 의해 시그널링되어, IV 비트스트림의 모든 비디오 코딩 계층에 대해 동일한 비디오 코덱 표준이 사용되도록 요구함으로써 유연성이 제한된다. 예를 들어, 각 비디오 코딩 계층/구성요소 유형에 대해 개별적인 코덱을 허용하는 것은 명확하게 입증된 이점 없이 하이 레벨 구문 설계를 불리하게 복잡하게 만든다.
일부 실시예에서, IVS 파라미터의 구문 플래그, ivs_all_codec_layers_au_aligned_flag는 모든 비디오 코덱 계층이 액세스 유닛 정렬을 갖는지 여부를 나타내도록 제공된다. 이 플래그가 설정되지 않는 경우, 출력 유닛과 비디오 코덱 액세스 유닛은 픽처 코딩 순서가 정렬되지 않으므로, 출력 유닛 카운트 구문 요소가 IV 출력 파라미터에 포함된다.
일부 실시예에서, 섹션 8에서 설명되는, 카메라 파라미터 목록이 포함된다. 일부 실시예에서, 섹션 3에서 설명되는, 점유 맵 코딩에 관한 구문 요소 또한 포함된다.
일부 실시예에서, V-PCC에 대한 포인트에 관한 추가적인 구문 요소가 포함될 수 있다.
일부 실시예에 따른 구문이 아래 표 3에 제공된다.
ivs_params( ) { Descriptor
ivs_profile_tier_level( )
ivs_codec_id u(4)
ivs_all_codec_layers_au_aligned_flag u(1)
camera_params_list( )
occupancy_map_threshold u(10)
occupancy_map_scaling u(2)
occupancy_map_packing_flag u(1)
if( !ivs_all_codec_layers_au_aligned_flag) {
iv_output_unit_count_bits_minus4 u(12)
ivs_points_info_present_flag u(1)
if( ivs_points_info_present_flag ) {
points_info( ) [Ed. (JB): V-PCC seqeunce level points related syntax elements]
}
ivs_sp_vui_present_flag u(1)
if( ivs_sp_vui_present_flag )
ivs_volume_range_present_flag  u(1)
if( ivs_volume_range_present_flag ) {
ivs_bounding_rectangular_solid_flag u(1)
if ( !ivs_bounding_rectangular_solid_flag ) u(1)
volume_info( ) [Ed. (JB): description of volume represented, in terms of range of view positions and orientations, and if infinite depth is represented.]
}
ivs_sp_avg_frame_rate_present_flag  u(1)
if( ivs_sp_avg_frame_rate_present_flag )
ivs_sp_avg_frame_rate u(16)
}
ivs_sp_extension_present_flag u(1)
if( ivs_sp_extension_present_flag ) {
while( more_rbsp_data( ) )
ivs_sp_extension_data_flag u(1)
rbsp_trailing_bits( )
}
표 4는 일부 실시예에 따른 ivs_codec_id 유형을 제공한다.
ivs_codec_id Identifier Reference specification
0 HEVC [XX]
1 AVC [XX]
2 VVC [XX]
3...15 Reserved
일부 실시예에서, IV 시퀀스 파라미터를 이용한 디코딩은 다음과 같이 수행된다. 하나 이상의 아틀라스 계층 그룹, IV 시퀀스 파라미터(비디오 코덱 유형, 카메라 파라미터 목록, 점유 맵 파라미터를 포함함) 및 IV 출력 유닛 파라미터(아틀라스 파라미터 목록의 시퀀스를 포함함)를 포함하는 비디오 코덱 비트스트림의 입력이 주어지면, 디코딩의 출력은 각각 아틀라스, 각 그룹(아틀라스 텍스처 구성요소를 나타내는 텍스처 픽처 시퀀스, 아틀라스 심도 구성요소를 나타내는 심도 픽처 시퀀스 및 점유 맵 구성요소를 나타내는 점유 맵 시퀀스를 포함함) 및 하나 이상의 아틀라스 패치 점유 맵 시퀀스를 나타내는 하나 이상의 디코딩된 픽처 시퀀스 그룹이다. 특히, 호출(invoke)될 비디오 디코더는 ivs_codec_id에 의해 결정되고, 디코딩 및 출력 프로세스는 ivs_all_codec_layers_au_aligned_flag 구문 요소의 값에 기초하여 달라진다. 일부 실시예에서, 비디오 코덱 비트스트림의 각 IVS는, IV 시퀀스 파라미터가 파싱되고 (ivs_all_codec_layers_au_aligned_flag)인 경우, IVS의 각 출력 유닛에 대해, IV 출력 유닛 파라미터가 파싱되고, 출력 유닛의 각 아틀라스에 대해, 비디오 디코딩 프로세스가 텍스처 디코딩된 픽처를 출력으로 텍스처 계층의 코딩된 픽처에 대해 호출되고, 비디오 디코딩 프로세스가 심도 디코딩된 픽처를 출력으로 심도 계층의 코딩된 픽처에 대해 호출되며, 비디오 디코딩 프로세스가 디코딩된 점유 맵 픽처를 출력으로 점유 맵 계층의 코딩된 픽처에 대해 호출되고, 아틀라스 패치 점유 맵 생성기가 점유 맵 디코딩된 픽처와 아틀라스 파라미터를 입력으로, 아틀라스 패치 점유 맵을 출력으로 호출된다. 그렇지 않은 경우(ivs_all_codec_layers_au_aligned_flag가 0임), IVS의 각 출력 유닛에 대해, IV 출력 유닛 파라미터가 파싱되고, 출력 유닛의 각 아틀라스에 대해, 비디오 디코딩 프로세스가 텍스처 계층의 코딩된 픽처에 대해 호출되고, 있는 경우, 현재 출력 유닛을 대상으로 하는 디코딩된 텍스처 픽처가 출력이며, 비디오 디코딩 프로세스가 심도 계층의 코딩된 픽처에 대해 호출되고, 있는 경우, 현재 출력 유닛을 대상으로 하는 디코딩된 심도 픽처가 출력이며, 비디오 디코딩 프로세스가 점유 맵 계층의 코딩된 픽처에 대해 호출되고, 있는 경우, 현재 출력 유닛을 대상으로 하는 디코딩된 점유 맵 픽처가 출력이며, 아틀라스 패치 점유 맵 생성기가 출력 점유 맵 픽처와 아틀라스 파라미터를 입력으로 아틀라스 점유 맵을 출력으로 호출된다. 논의는 이제 일부 실시예에 따른 IV 프로파일 티어 레벨로 넘어간다. 일부 실시예에서, 프로파일, 티어, 레벨 구문 구조에서, 전체 프로파일, 티어 및 레벨에 추가적으로, 비트스트림에 존재할 수 있는 비디오 코덱 계층의 최대 수, 각 계층의 최대 비디오 코덱 레벨을 나타내는 구문 요소가 포함된다. 일부 실시예에서, ivs_ptl_level_idc 구분 요소는 비트스트림에 존재할 수 있는 비디오 코덱 계층의 최대 수 및 각 계층의 최대 비디오 코덱 레벨 각각에 제한을 부과한다. 이러한 추가적인 구문 요소를 제공하는 것은 추가적인 정보를 제공한다.
일부 실시예에서, 구문 요소는 포인트 클라우드 재구성이 비트스트림에 대해 권장되는지 여부를 나타내고, 완벽한 포인트 클라우드 재구성이 비트스트림에 대해 가능한지 여부를 나타내도록 포함되고, 이는 디코더/렌더러 클라이언트가 비트스트림에 디코딩 프로세스를 작동하고 기준 디코더와 기준 포인트 클라우드 렌더링 프로세스에 정확히 일치하는 포인트 클라우드 시퀀스를 얻을 수 있다는 것을 의미한다. 클라이언트 디코더가 정확한 포인트 클라우드 재구성을 지원하도록 선택하는지 여부는 비트스트림 특성이 아니라 디코더 적합성 특성이다.
일부 실시예에 따른 구문 구조가 표 5에 제공된다.
ivs_profile_tier_level( ) { Descriptor
ivs_tier_flag u(1)
ivs_profile_idc u(7)
ivs_level_idc u(8)
ivs_max_codec_layers_minus1 u(8)
ivs_layer_max_level_idc u(8)
ivs_points_rendering_idc u(4)
if (ivs_points_rendering_idc > 0 )
ivs_points_level_idc u(8)
else
ivs_ptl_reserved_8bits u(4)
ivs_ptl_reserved_4bits u(4)
}
논의는 이제 일부 실시예에 따른 IV 출력 유닛 파라미터로 넘어간다. 일부 실시예에서, IV 출력 유닛 파라미터 구문 구조가 제공되며, 각 아틀라스의 패치를 설명하는 아틀라스 파라미터 목록을 포함하여, IV 디코딩된 출력의 생성과 관련된 파라미터를 포함한다. 일부 실시예에서, 모든 비디오 코덱 계층이 동일한 픽처 코딩 순서를 따르고, 출력 유닛이 액세스 유닛과 정렬되는 것이 요구된다. 일부 실시예에서, 이 제한은 몰입형 메인 10 Profile에 부과된다. 일부 실시예에서, 상이한 속성 유형에 대해 상이한 픽처 코딩 순서를 허용하는 V-PCC를 가능하게 하기 위해, 이러한 유연성에 반하는 일반적인 제한은 없다. 하지만, 일부 실시예에서, IV 출력 유닛 파라미터 NAL 유닛의 코딩 순서는, 비디오 디코더가 대응하는 텍스처 및 심도 픽처를 출력할 동일한 IV 출력 유닛에 포함되도록 제한된다. 일부 실시예에서, iv_output_unit_count 구문 요소는 계층이 정렬되지 않을 때, 비디오 코딩 계층에 걸친 정렬에 사용되도록 포함된다.
일부 실시예에 따른 파라미터와 구문이 표 6에 제공된다.
iv_output_unit_params( ) { Descriptor
atlas_params_present_flag u(1)
if( ! atlas_params_present_flag ) {
atlas_params_list( )
if( !ivs_all_codec_layers_au_aligned_flag) {
iv_output_unit_count u(v)
ivs_oup_vui_present_flag u(1)
if( ivs_oup_vui_present_flag ) {
ivs_oup_num_points_present_flag u(1)
if( ivs_oup_num_points_present_flag )
ivs_oup_num_points u(32)
}
ivs_oup_extension_present_flag u(1)
if( ivs_oup_extension_present_flag ) {
while( more_rbsp_data( ) )
ivs_oup_extension_data_flag u(1)
rbsp_trailing_bits( )
}
논의는 이제 일부 실시예에 따른 IV 출력 유닛 구분자로 넘어간다. 일부 실시예에서 IV 출력 유닛 구분자는 IV 출력 유닛 사이의 경계 검출을 단순화하는 역할을 한다.일 실시예에서, IV 출력 유닛 구분자는 페이로드(payload)를 포함하지 않는다. 일 예시 구문이 표 7에 제공된다.
iv_output_unit_delimiter_rbsp( ) { Descriptor
}
논의는 이제 일부 실시예에 따른 IV NUT 값 할당을 위한 HEVC에 대한 수정으로 넘어간다. 일부 실시예에서, HEVC NUT 값은 표 8에 표시된 바와 같이 예비적인 비-VCL 값으로부터 할당된다.
nal_unit_type Name of nal_unit_type Content of NAL unit and RBSP syntax structure NAL unit
type class
0
1
TRAIL_N
TRAIL_R
Coded slice segment of a non-TSA, non-STSA trailing picture
slice_segment_layer_rbsp( )
VCL
2
3
TSA_N
TSA_R
Coded slice segment of a TSA picture
slice_segment_layer_rbsp( )
VCL
4
5
STSA_N
STSA_R
Coded slice segment of an STSA picture
slice_segment_layer_rbsp( )
VCL
6
7
RADL_N
RADL_R
Coded slice segment of a RADL picture
slice_segment_layer_rbsp( )
VCL
8
9
RASL_N
RASL_R
Coded slice segment of a RASL picture
slice_segment_layer_rbsp( )
VCL
10
12
14
RSV_VCL_N10
RSV_VCL_N12
RSV_VCL_N14
Reserved non-IRAP SLNR VCL NAL unit types VCL
11
13
15
RSV_VCL_R11
RSV_VCL_R13
RSV_VCL_R15
Reserved non-IRAP sub-layer reference VCL NAL unit types VCL
16
17
18
BLA_W_LP
BLA_W_RADL
BLA_N_LP
Coded slice segment of a BLA picture
slice_segment_layer_rbsp( )
VCL
19
20
IDR_W_RADL
IDR_N_LP
Coded slice segment of an IDR picture
slice_segment_layer_rbsp( )
VCL
21 CRA_NUT Coded slice segment of a CRA picture
slice_segment_layer_rbsp( )
VCL
22
23
RSV_IRAP_VCL22
RSV_IRAP_VCL23
Reserved IRAP VCL NAL unit types VCL
24..31 RSV_VCL24..
RSV_VCL31
Reserved non-IRAP VCL NAL unit types VCL
32 VPS_NUT Video parameter set
video_parameter_set_rbsp( )
non-VCL
33 SPS_NUT Sequence parameter set
seq_parameter_set_rbsp( )
non-VCL
34 PPS_NUT Picture parameter set
pic_parameter_set_rbsp( )
non-VCL
35 AUD_NUT Access unit delimiter
access_unit_delimiter_rbsp( )
non-VCL
36 EOS_NUT End of sequence
end_of_seq_rbsp( )
non-VCL
37 EOB_NUT End of bitstream
end_of_bitstream_rbsp( )
non-VCL
38 FD_NUT Filler data
filler_data_rbsp( )
non-VCL
39
40
PREFIX_SEI_NUT
SUFFIX_SEI_NUT
Supplemental enhancement information
sei_rbsp( )
non-VCL
41 IVS_NUT Defined in ISO/IEC 23090-X non-VCL
42..47 RSV_NVCL42..
RSV_NVCL47
Reserved non-VCL
48..63 UNSPEC48..
UNSPEC63
Unspecified non-VCL
논의는 이제 일부 실시예에 따른 IV 프로파일에 대해 HEVC 부록 F를 사용하는 VPS 및 NAL 유닛 헤더 다중 계층 설계로 넘어간다. 일부 실시예에서, MIV 프로파일에 대해 HEVC 부록 F VPS 확장의 사용이 제공된다. 다음에서, 부록 F의 기존 HEVC 다중 계층 설계의 일부 주요 개념이 먼저 설명된다. 특히, HEVC 부록 F와 관련하여, HEVC는 2바이트 NAL 유닛 헤더를 사용하며, 그 구문은 표 9에 제공된다. 이는 nuh_layer_id에 할당된 6비트를 포함한다.
nal_unit_header( ) { Descriptor
forbidden_zero_bit f(1)
nal_unit_type u(6)
nuh_layer_id u(6)
nuh_temporal_id_plus1 u(3)
}
HEVC는 섹션 7에서 VPS(Video Parameter Set)를 정의하고, 부록 F에서 VPS 확장을 정의한다. 부록 F는, 독립적으로 코딩된 계층이 0이 아닌 nuh_layer_id 값을 가질 수 있는, INBLD(Independent Non-Base Layer Decoding) 기능을 설명한다. 기본 VPS는 vps_max_layers_minus1 구문 요소를 포함한다. VPS 확장은 구문 요소, splitting_flag, scalability_mask_flag[ i ], dimension_id_len_minus1[ j ], and dimension_id[ i ] [ j ] 및 direct_dependency_flag[ i ][ j ]를 포함한다. 이러한 구문 요소는 ScalabilityId 변수의 파생 및 계층 간 종속 관계를 포함하여, 각 계층의 특성을 나타내는 데 사용된다. ScalabilityId 변수는 표 10에 나타나 바와 같이 확장성 차원에 매핑된다.
Scalability mask index Scalability dimension ScalabilityId mapping
0 Texture or depth DepthLayerFlag
1 Multiview ViewOrderIdx
2 Spatial/quality scalability DependencyId
3 Auxiliary AuxId
4-15 Reserved
부록 G는 강화 계층이 기본 계층으로부터 계층 간 예측되는 복수의 뷰 기본 프로파일을 정의하고, 카메라 파라미터와 심도의 운반에 관한 여러 SEI 메시지를 정의한다. 부록 I는 3D 기본 프로파일을 정의한다. 또한, MIV WD1에서, 하나 이상의 아틀라스가 각각 텍스처와 심도 구성요소와 코딩된다. 각 아틀라스 구성요소는 각각 다른 nuh_layer_id 값을 갖도록 동일한 비트스트림에서 개별 계층으로, 코딩될 수 있다. 아틀라스 텍스처 구성요소와 대응하는 아틀라스 심도 구성요소를 포함하는 계층은 계층 쌍으로 지칭된다. 계층 쌍에서, 아틀라스 심도 구성요소 계층은 독립적이고, 아틀라스 텍스처 구성요소 계층으로부터 계층 간 예측을 허용하지 않는다. 일부 실시예에서, HEVC 부록 F VPS 확장 사용이 제공된다. 일부 실시예에서, 점유 맵의 명시적인 비디오 코딩으로, 점유 맵 구성요소 또한 개별 계층에서 각 아틀라스에 대해 HEVC 코딩될 것이다. 일부 실시예에서, 명세서에서 논의된 IV 사양은, 텍스처, 심도 및 점유 맵에 대한 (및 선택적으로 V-PCC에 대한 추가적인 속성에 대한) 구성요소를 갖는 아틀라스 계층 그룹을 포함한다.
일부 실시예에서, 표 11에 나타난 바와 같이, HEVC 부록 F Scalability 마스크 표의 3개의 새로운 항목의 할당이 제공되며, 12개의 예비적인 값 중 3개, AtlasId, OccupancyFlag 및 AttributeId를 활용하며, 9개의 예비적인 값이 남는다.
일부 실시예에서 AtlasId는 계층의 아틀라스 Id 값을 나타내는 데 사용된다. 일부 실시예에서, 기존 DepthLayerFlag는 아틀라스 심도 구성요소 계층 대 텍스처 구성요소 계층을 표시하는 데 사용된다. 이러한 값은 ScalabilityId 값을 사용하여 VPS 확장 파라미터에 따라 nuh_layer_id로부터 파생될 수 있다.
일부 실시예에서, Material ID, Transparency, Reflectance 및 Normals를 포함하는 다른 속성은 AttributeId를 사용하여 나타낼 수 있다.
Scalability mask index Scalability dimension ScalabilityId mapping
0 Texture or depth DepthLayerFlag
1 Multiview ViewOrderIdx
2 Spatial/quality scalability DependencyId
3 Auxiliary AuxId
4 Atlas of patches AtlasId
5 Occupancy map OccupancyFlag
6 Attribute type AttributeId
7-15 Reserved
일부 실시예에서, 섹션 6에 설명된 바와 같이 MIV 몰입형 메인 10 Profile은 계층에 대한 nuh_layer_id의 값에 추가적인 요구사항을 부과하지 않으며, 기존 HEVC 부록 F VPS 확장 설계는 ScalabilityId 변수의 적절한 값을 도출하기 위해 구문 요소를 시그널링 하는 방법에 유연성을 제공한다. 논의는 이제 일부 실시예에 따른 구문 사용으로 넘어간다. 일부 실시예에서, VPS를 사용하여 MIV 몰입형 메인 10 Profile에 대한 ScalabilityId 값을 적절하게 설정하는 단순하고 효율적인 방법이 본 명세서에서 제공된다. 일부 실시예에서, 본 명세서에서 논의되는 IV 사양은 본 권장된 구문의 사용을 특별히 요구하지 않는다. 그러나, 일부 실시예에서, 구문은 테스트 모델에서 사용된다. 표 12는 일부 실시예에 따른, 기존 HEVC 부록 F 설계의 일부 설명에 추가하여, splitting_flag, scalability_mask[i], nuh_layer_id 및 추가적인 구문 요소가 사용될 수 있는 방법의 설명을 제공한다. 일부 실시예에서, splitting_flag는 1로 설정되어 nuh_layer_id의 비트를 다중 계층 특성으로 단순 매핑하는 것을 나타낸다. 일부 실시예에서, scalability_mask_flag[i]는 1000110000000000로 설정(각 비트는 이진 어레이 값을 나타냄)되어 사용될 계층 차원이 0(DepthLayerFlag의 경우), 4(AtlasId의 경우) 및 5(OccupancyFlag)임을 나타낸다. 일부 실시예에서, dimension_id_len_minus1[1]은 log2(NumAtlases)로 설정되어 AtlasId를 나타내는 데 필요한 비트의 수를 나타낸다. 일부 실시예에서, dimension_id_len_minus1[2]는 1로 설정되어 OccupancyFlag를 나타내는 데 1비트가 필요하다는 것을 나타낸다.
scalability_mask bit position, i 0 1 2 3 4 5 6-15
ID variable name DepthLayerFlag ViewId DependencyId AuxId AtlasId OccupancyFlag Reserved
ID variable value
meaning
texture (0) vs. depth (1) index of MV-HEVC style multi-view layer index of spatial/SNR scalability layer index of
auxiliary picture layer
altlas index not occupancy map (0) vs. occupancy map (1) -
bits allocated in nuh_layer_id when splitting flag used and scalability_mask[i] value equals 1 1 log2(max num MV-HEVC style multi view layers) log2(max numspatial or SNR scalability layers) log2(max num auxiliary picture layers + 1) log2(Num Atlases) 1 -
Proposed MIV/V-PCC value of scalability_
mask[ i]
1 0
(not used)
0
(not used)
0
(not used)
0 (when NumAtlases = 1) or 1 ( when NumAtlases > 1) 1 0
표 13은 일부 실시예에 따른, 다양한 수의 아틀라스에 대해, scalability_mask[i] 비트 위치에서 i의 각 값에 대해 dimension_id_len_minus1[j]에서 시그널링될 권장 비트 수를 나타낸다.
i,
in
scalability_mask[ i ]
0 1 2 3 4 5 6-15
j, in dimension_id_len_minus1[ j ] 0 - - - 1 2 -
ID variable name DepthLayer
Flag
ViewId DependencyId AuxId AtlasId OccupancyFlag Reserved
num atlases 1 atlas 1 - - - 0 1 0
2 atlases 1 - - - 1 1 0
4 atlases 1 - - - 2 1 0
표 14는 하나의 아틀라스가 있는 예시를 나타낸다. nuh_layer_id가 0이면 아틀라스 심도 구성요소 계층에 사용되고, nuh_layer_id가 1이면 아틀라스 심도 구성요소 계층에 사용되며, nuh_layer_id가 2이면 아틀라스 점유 맵 구성요소 계층에 사용된다.
nuh_layer_id DepthLayerFlag AtlasId OccupancyFlag ScalabilityId
(in binary)
num bits allocated - 1 0 1 2
Atlas texture component 0 0 - 0 00
Atlas depth component 1 1 - 0 10
Atlas occupancy map component 2 0 - 1 01
표 15 및 16은 2개 또는 4개의 아틀라스에 대한 유사한 예시를 나타낸다.
nuh_layer_id DepthLayerFlag AtlasId OccupancyFlag ScalabilityId
(in binary)
num bits allocated - 1 1 1 3
Atlas A texture component 0 0 0 0 000
Atlas A depth component 1 1 0 0 100
Atlas A occupancy map component 2 0 0 1 001
Atlas B texture component 3 0 1 0 010
Atlas B depth component 4 1 1 0 110
Atlas B occupancy map component 5 0 1 1 011
nuh_layer_id DepthLayerFlag AtlasId
(in binary)
OccupancyId ScalabilityId
(in binary)
num bits allocated - 1 2 1 4
Atlas A texture component 0 0 00 0 0000
Atlas A depth component 1 1 00 0 1000
Atlas A occupancy map component 2 0 00 1 0001
Atlas B texture component 3 0 01 0 0010
Atlas B depth component 4 1 01 0 1010
Atlas B occupancy map component 5 0 01 1 0011
Atlas C texture component 6 0 10 0 0100
Atlas C depth component 7 1 10 0 1100
Atlas C occupancy map component 8 0 10 1 0101
Atlas D texture component 6 0 10 0 0110
Atlas D depth component 7 1 10 0 1110
Atlas D occupancy map component 8 0 10 1 0111
논의는 이제 일부 실시예에 따른 카메라 파라미터 시그널링으로 넘어간다. 예를 들어, MIV WD1은 camera_params_list() 구문 구조에 카메라 파라미터의 시그널링을 포함한다. 내부 파라미터와 외부 파라미터 모두가 포함된다. 외부 파라미터는 특정 뷰와 관련된 각 카메라의 (x, y, z) 위치 및 (요, 피치, 롤) 방향을 나타낸다.일부 실시예에서, 카메라의 효율적인 시그널링이 고정 격자(grid) 패턴으로 제공되며, 이는 V-PCC에서 사용되는 6 카메라 및 8 카메라 구성에 적용 가능하다. 일부 실시예에서, 차원 당 32비트로 각 카메라의 (x, y, z) 방향을 명시적으로 시그널링하는 대신에, 입도(granularity)가 각 차원에 대해 32비트로 시그널링된다. 그 후 입도에 기초하여 개별 카메라 위치가 시그널링된다. 예를 들어, V-PCC 6 카메라 구성의 경우, 각 카메라 위치는 경계 직사각형 솔리드 면의 투영 평면의 중심으로 표현된다. 일부 실시예에서, 각 차원의 입도는 경계 상자 치수의 길이 값의 절반이다. 일부 실시예에서, yaw_pitch_roll_idc 구문 요소는, 병렬 카메라가 있는 카메라 어레이와 V-PCC 6 카메라 및 8 카메라 구성을 포함하는 특별한 경우에 요, 피치 및 롤 파라미터를 명시적으로 시그널링하지 않는다. 도 5는 본 개시의 일부 구현에 따라 구성된 카메라 파라미터의 코딩을 포함하는 몰입형 비디오 코딩을 위한 예시적인 프로세스(500)를 도시하는 흐름도이다. 프로세스(500)는 도 5에 도시된 하나 이상의 동작(501 내지 510)을 포함할 수 있다. 프로세스(500)는 본 명세서에서 논의된 시스템의 임의의 디바이스에 의해 수행될 수 있다. 일부 실시예에서, 동작(501 내지 506)은 인코더에 의해 수행되고, 동작(507 내지 510)은 디코더에 의해 수행된다.
프로세싱은 동작(501)에서 시작되는데, 여기서 특정 몰입형 비디오에 대해, 카메라 위치, 카메라 방향 및 내부 파라미터가 수신된다. 예를 들어, 카메라 위치, 카메라 방향 및 내부 파라미터는 특정 몰입형 비디오를 획득하는 데 사용되는 카메라(실제 또는 가상)의 수를 설명한다. 일부 실시예에서, 카메라 파라미터는 복수의 카메라의 내부(이미징) 파라미터와 카메라의 외부 파라미터(위치 및 방향) 시그널링하기 위한 것이다.
도 6은 본 개시의 적어도 일부 구현에 따라 구성된 몰입형 비디오 코딩에 관한 카메라 어레이(610)와 대응하는 카메라 파라미터(600)를 도시한다. 예를 들어, 카메라 어레이(610)는 장면의 입력 뷰(101)를 획득하는 데 사용될 수 있다. 즉, 카메라 어레이(610)는 몰입형 비디오 생성 또는 캡처를 위해 사용될 수 있다. 도 6의 예시에서, 카메라 어레이(610)는, 카메라(C1 내지 C3)가 제 1 열에 있고, 카메라(C4 내지 C6)가 제 2 열에 있도록, 격자 패턴으로 6개의 카메라(C1 내지 C6)를 포함한다. 그러나, 카메라 어레이(610)는 임의의 간격 레이아웃으로 임의의 카메라의 수를 가질 수 있다. 또한, 카메라 어레이(610)는, 카메라(C1 내지 C6)가 x-y 평면에 모두 정렬되도록 도시된다. 그러나, 카메라 어레이(610)의 카메라는 임의의 방식으로 위치될 수 있다.
각각의 카메라(C1 내지 C6)는 카메라 파라미터(611, 612, 613, 614, 615, 616) 각각에 대응한다. 도시된 바와 같이, 카메라 파라미터(611)는 카메라(C1)의 위치, 카메라(C1)의 방향 및 카메라(C1)에 대한 이미징 파라미터를 포함할 수 있다. 도시된 바와 같이, 위치 파라미터는 카메라(C1)의 좌표(x1, y1, z1)를 포함한다. 방향 파라미터는 카메라(C1)의 방향을 정의하는 롤, 피치 및 요 값 (r1, p1, yaw1) 또는 쿼터니언(quaternion) 파라미터를 포함한다. 카메라(C1)와 관련하여 도시된 바와 같이, 각각의 카메라(C1 내지 C6)는 6-DOF 모션(635)으로 특징지어지는 위치와 방향으로 3D 공간을 통해 배치되고 배향될 수 있으며, 이는 각각의 카메라(C1 내지 C6)가, 전/후(예컨대, z 방향으로), 상/하(예컨대, y 방향으로), 좌/우(예컨대, x 방향으로) 병진하고 요(예컨대, y 축 주위의 각도로), 롤(예컨대, x 축 주위의 각도로) 및 피치(예컨대, z 축 주위의 각도로) 회전하여 이동할 수 있음을 나타낸다. 내부 또는 이미징 파라미터는 투영 방법 또는 모드(PM1), 초점 거리(FL1), 시야(FOV1), Znear 값(ZN1), Zfar 값(ZF1), 심도 양자화 파라미터(미도시) 및 본 명세서에서 논의된 다른 것 중 하나 이상을 포함한다. 예를 들어, 투영 모드는 카메라에 대해 전방향성 컨텐츠, 일반 원근 컨텐츠 또는 직교 컨텐츠 중 하나를 나타낼 수 있다. 즉, 투영 모드는 전방향성 투영 모드, 일반 원근 투영 모드 또는 직교 투영 모드 중 하나를 나타낼 수 있다.
유사하게, 카메라 파라미터(612, 613, 614, 615, 616)는 각각의카메라(C2 내지 C6)에 대한 유사한 위치, 방향 및 이미징 파라미터를 각각 포함한다. 특히, 카메라 파라미터(102)로 표현되는 이러한 카메라 파라미터(611, 612, 613, 614, 615, 616) 또는 이들의 일부는 비트스트림(107)으로 인코딩되고, 뷰 합성과 다른 애플리케이션에서의 사용을 위해 디코더 시스템(300)에 의해 디코딩된다. 본 명세서에서 논의되는 기술은 카메라 어레이(610)의 카메라 파라미터(612, 613, 614, 615, 616)의 효율적인 코딩을 위해 제공된다.
도 5로 돌아오면, 프로세싱은 동작(502)에서 계속되는데, 여기서 3D 공간의 카메라의 위치를 나타내는 각각의 3D 축에 대해 하나 이상의 카메라 위치 입도 값이 생성된다. 일부 실시예에서, 단일 카메라 위치 입도 값이 사용된다. 예를 들어, 입도 값은 3D 공간 내 축을 따른 특정 거리를 나타낼 수 있다. 일부 실시예에서, 입도 값은 특정 차원에서 임의의 카메라(C1 내지 C6) 사이의 최소 거리로 설정된다. 일부 실시예에서, 입도 값은 특정 차원에서 임의의 카메라(C1 내지 C6) 사이의 최소 거리의 분수로 설정된다(예컨대, 임의의 카메라의 최소 거리의 1/2, 1/4 또는 1/8). 일부 실시예에서, 입도 값은 특정 차원에서 임의의 카메라(C1 내지 C6) 사이의 임의의 거리 사이의 최소 증분(delta)으로 설정된다. 예를 들어, 카메라(C1 내지 C6) 사이의 각 거리가 결정(각 차원에서)되고 임의의 거리 사이의 최소 증분이 입도 값으로 사용될 수 있다.
프로세싱은 동작(503)에서 계속되는데, 여기서 각 카메라 위치에 대해 하나 이상의 카메라 위치 입도 값에 기초하여 카메라의 각 축에 대해 카메라 위치 유닛 값이 결정된다. 예를 들어, 카메라(C5)는 x 차원에서 원점으로부터 M의 카메라 위치 입도 값의 수일 수 있고, 원점으로부터 N의 카메라 위치 입도 값일 수 있다. 일부 실시예에서, 카메라 위치 유닛 값은 글로벌 기준 좌표계의 원점에 기초한다. 다른 실시예에서, 카메라 위치 유닛 값은 어레이 내 다른 카메라에 상대적이다. 예를 들어, C5에 대한 카메라 위치 유닛 값은 카메라(C4)의 x 위치로부터 x 축의 M의 카메라 위치 입도 값일 수 있고, 카메라(C4)의 y 위치로부터 y 축의 0의 카메라 위치 입도 값일 수 있다. 즉, 카메라 위치 유닛 값은 원점, 다른 카메라 또는 글로벌 기준 좌표계 내 임의의 다른 점으로부터의 위치에 기초할 수 있다.
프로세싱은 동작(504)에서 계속되는데, 여기서 내부 파라미터가 카메라에 대해 분석되고, 특정 유형의 내부 파라미터가 모든 카메라에 대해 일치하는 경우, 카메라 파라미터 등가 플래그가 설정되며 특정 파라미터와 플래그는 카메라 세트에 대해 인코딩된다. 즉, 특정 유형의 모든 내부 파라미터가 모든 카메라에 대해 일치하는 경우, 파라미터는 한번 코딩되고, 파라미터 등가 플래그가 설정되어 디코더가 모든 카메라에 파라미터를 적용할 수 있다. 일부 실시예에서, 특정 카메라에 대해 플래그가 오프로 설정되고 새로운 파라미터가 그 카메라와 모든 후속 카메라에 대해 전송될 때까지, 일부 카메라에 대해 파라미터가 반복되도록 플래그가 설정될 수 있다.
프로세싱은 동작(505)에서 계속되는데, 여기서 카메라가 디폴트(default) 방향을 가지는 경우 카메라에 대한 방향 정보가 폐기된다. 일부 실시예에서, 각각의 카메라에 대한 요, 피치 및 롤이 0 또는 다른 디폴트 파라미터로 설정되고, 각각의 카메라에 대한 요, 피치 및 롤은 폐기될 수 있다. 대신에, 디폴트 값을 나타내는 값이나 플래그는 카메라에 대해 코딩되지 않아, 상당한 대역폭을 절약할 수 있다. 대안적으로, 단일 요, 피치 및 롤 값이 코딩될 수 있고, 방향 파라미터 등가 플래그가 설정될 수 있으며(카메라 파라미터 등가 플래그와 유사하게), 요, 피치 및 롤 값이 모든 카메라에 대해 적용될 수 있다. 또 다른 실시예에서, 단일 요, 피치 및 롤 베이스라인(baseline) 값이 전송될 수 있고, 각 카메라에 대한 증분 값(대부분이 0일 것으로 예상되는, 요, 피치 및 롤 베이스라인 값에 상대적임)이 전송될 수 있다.
프로세싱은 동작(506)에서 계속되는데, 여기서 카메라 파라미터가 코딩되고 디코더 또는 메모리 스토리지 디바이스와 같은 디바이스로 전송된다. 예를 들어, 코딩된 카메라 파라미터는 비트스트림에 포함 및/또는 패킷화되고, 압축된 표현으로 디코더 또는 메모리 스토리지 디바이스(디코더에 의한 추후 사용을 위해)로 제공될 수 있다.
프로세싱은 동작(507)에서 계속되는데, 여기서 코딩된 카메라 파라미터가 수신된다. 예를 들어, 코딩된 카메라 파라미터는 디코더 시스템(300)에 의해 수신될 수 있다. 도시된 바와 같이, 코딩된 카메라 파라미터는 카메라 어레이를 재구성하고, 재구성된 몰입형 비디오의 뷰포트를 생성하는 데 추후 사용하기 위해 디코딩되고 적용될 수 있다. 일부 실시예에서, 프로세스(500)는, 몰입형 비디오에 대응하는 다수의 카메라에 대해, 카메라의 내부 파라미터와 카메라의 외부 파라미터를 시그널링하기 위해 카메라 파라미터를 수신하는 것을 포함한다. 일부 실시예에서, 카메라 파라미터는 복수의 카메라 중 일부에 대한 하나 이상의 제 1 내부 파라미터(예컨대, 제 1 유형의)가 없고, 복수의 카메라 중 임의의 것에 대한 하나 이상의 제 1 외부 파라미터가 없다. 예를 들어, 내부 카메라 파라미터가 오직 카메라 중 하나 또는 카메라 중 대표하는 하나에 대해서만 제공되도록 카메라 파라미터 등가 플래그가 사용될 수 있다. 또한, 외부 파라미터(예컨대, 요, 피치 및 롤)의 적어도 일부에 대해 파라미터가 비트스트림에 전혀 포함되지 않도록, 디폴트 외부 파라미터가 사용될 수 있다.
또한, 코딩된 카메라 파라미터는, 동작(502)과 관련하여 논의된 바와 같이, 카메라 위치 입도 값이 몰입형 비디오에 대응하는 글로벌 기준 좌표계 내 카메라 위치의 시그널링 정밀도를 나타내도록, 글로벌 기준 좌표계의 각 축에 대해 카메라의 변위를 나타내는 카메라 위치 입도 값과, 각 카메라 위치 유닛 값이 카메라 위치 입도 값에 기초하여 글로벌 기준 좌표계 내 카메라의 위치를 나타내도록, 카메라 중 제 1 카메라의 x 축, y 축 및 z 축 중 하나에 대한 카메라 위치 유닛 값을 포함할 수 있다.
프로세싱은 동작(508)에서 계속되는데, 여기서 카메라 위치 입도 값과 카메라 위치 유닛 값을 이용하여 글로벌 기준 좌표계 내 카메라의 위치가 결정된다. 글로벌 기준 좌표계 내 카메라의 위치는 임의의 적합한 기술 또는 기술들을 이용하여 결정될 수 있다. 일부 실시예에서, 글로벌 기준 좌표계 내 제 1 카메라의 위치를 결정하는 것은, 카메라 위치 입도 값에 제 1 카메라에 대한 각 카메라 위치 유닛 값을 곱하여 글로벌 기준 좌표계 내 제 1 카메라의 위치를 결정하는 것을 포함한다. 일부 실시예에서, 글로벌 기준 좌표계 내 제 1 카메라의 위치를 결정하는 것은, 카메라 위치 입도 값에 제 1 카메라에 대한 각 카메라 위치 유닛 값을 곱하고, 각 결과인 곱에 0(원점에 기초하는 경우) 또는 제 1 카메라가 기초한 기준 위치에 대응하는 다른 값(어레이의 다른 카메라와 같은)과 같은 값을 더하는 것을 포함한다. 일부 실시예에서, x 축 카메라 위치 유닛 값은 x 축 카메라 위치 입도 값이 곱해지고, 그 곱이 기준 x 축 위치에 더해져 카메라의 x 축 위치를 결정하며, y 축 카메라 위치 유닛 값은 y 축 카메라 위치 입도 값이 곱해지고, 그 곱이 기준 y 축 위치에 더해져 카메라의 y 축 위치를 결정하고, z 축 카메라 위치 유닛 값은 z 축 카메라 위치 입도 값이 곱해지고, 그 곱이 기준 z 축 위치에 더해져 카메라의 z 축 위치를 결정한다. 일부 실시예에서, z 축 위치는 시그널링되지 않고(예컨대, z 축 카메라 위치 유닛 값이 제공되지 않음), z 축 위치는 0과 같은 디폴트 값이다. 일부 실시예에서, 카메라 위치 입도 값은 고정 점이다.
프로세싱은 동작(509)에서 계속되는데, 여기서 제 1(또는 기준) 카메라에 대한 내부 파라미터가 카메라 파라미터 등가 플래그에 기초하여 모든 다른 카메라에 적용된다. 일부 실시예에서, 복수의 카메라 파라미터로부터 카메라 중 제 1 카메라에 대한 제 1 디코딩된 내부 파라미터를 디코딩하고, 제 1 디코딩된 내부 파라미터를 앞서 논의된 수신된 카메라 파라미터 등가 플래그에 기초하여 복수의 카메라 각각에 적용함으로써, 디코딩된 내부 카메라 파라미터가 복수의 카메라 각각에 대해 결정된다. 즉, 특정 내부 파라미터 유형(예컨대, FOV, FL, MP 등)에 대해 단일 파라미터가 수신되고, 그 후 특정 내부 파라미터 유형에 대한 카메라 파라미터 등가 플래그에 기초하여 모든 카메라에 대해 사용된다. 일부 실시예에서, 카메라 파라미터 등가 플래그는, 모든 유형의 내부 파라미터가 모든 카메라에 대해 동일하다는 것을 나타낼 수 있다는 것을 유의한다. 일부 실시예에서, 디코딩된 내부 파라미터는 투영 방법, 투영 평면 폭, 경도(longitudinal) 범위, 시야 또는 초점 거리 중 하나를 포함할 수 있다. 일부 실시예에서, 프로세스(500)는 제 1 카메라에 대한 심도 양자화 파라미터와 복수의 카메라에 대한 심도 양자화 파라미터를 수신하는 것과, 심도 양자화 파라미터 등가 플래그에 대응하여 심도 양자화 파라미터를 복수의 카메라 각각에 할당하는 것을 포함한다.
프로세싱은 동작(510)에서 계속되는데, 여기서 방향 정보가 비트스트림으로 수신(예컨대, 수신된 카메라 파라미터)되면 디폴트 방향이 모든 카메라에 적용된다. 논의된 바와 같이, 일부 실시예에서, 카메라 어레이에 대해 요, 피치 및 롤 중 하나 또는 모두에 대한 정보가 인코더로부터 제공되지 않는다. 일부 실시예에서, 디코딩된 외부 파라미터가 제 1 외부 파라미터가 없는 것에 기초하여 디폴트 파라미터로 각각의 카메라에 적용된다. 일부 실시예에서, 외부 파라미터는 요이고, 적용된 디폴트 파라미터는 제로(zero) 요이다. 일부 실시예에서, 외부 파라미터는 피치이고, 적용된 디폴트 파라미터는 제로 피치이다. 일부 실시예에서, 외부 파라미터는 롤이고, 적용된 디폴트 파라미터는 제로 롤이다. 논의된 바와 같이, 다른 실시예에서, 하나 이상의 요, 피치, 롤 및 방향 등가 플래그 각각에 대해 단일 값이 수신될 수 있고, 방향 등가 플래그에 대응하여 단일 값이 모든 카메라에 대해 적용될 수 있다. 또 다른 실시예에서, 특정 카메라에 대한 요 값이 기준 요에 특정 카메라에 대한 차이 값 요를 더한 것이고, 특정 카메라에 대한 피치 값이 기준 피치에 특정 카메라에 대한 차이 값 피치를 더한 것이고, 특정 카메라에 대한 롤 값이 기준 롤에 특정 카메라에 대한 차이 값 롤을 더한 것이 되도록, 요, 피치 및 롤에 대한 기준 값과 차이 값이 각 카메라에 대해 디코딩될 수 있다.
논의는 이제 일부 실시예에 따른 카메라 파라미터 목록 구문으로 넘어간다. MIV WD1은 표 17에 나타난 바와 같이 카메라 파라미터 목록 구문을 제공한다.
camera_params_list( ) { Descriptor
num_cameras_minus1 u(16)
for ( i= 0; i <= num_cameras_minus1; i++) {
cam_pos_x[ i ] u(32)
cam_pos_y[ i ] u(32)
cam_pos_z[ i ] u(32)
cam_yaw[i ] u(32)
cam_pitch[ i ] u(32)
cam_roll[ i ] u(32)
}
intrinsic_params_equal_flag u(1)
for ( i = 0; i <= intrinsic_params_equal_flag ? 0 : num_ cameras_minus1; i++ )
camera_intrinsics( [ i ] )
depth_quantization_params_equal_flag u(1)
for ( i = 0; i <= depth_quantization_equal_flag ? 0 :
num_cameras_minus1; i++ )
depth_quantization( [ i ] )
}
일부 실시예에서, 표 18 및 19에 나타난 바와 같이, 카메라 파라미터 목록 구문이 사용된다.
camera_params_list( ) { Descriptor
num_cameras_minus1 u(16)
cam_pos_x_granularity u(32)
cam_pos_y_granularity u(32)
cam_pos_z_granularity u(32)
yaw_pitch_roll_idc u(2)
for ( i= 0; i <= num_cameras_minus1; i++) {
cam_pos_x[ i ] se(v)
cam_pos_y[ i ] se(v)
cam_pos_z[ i ] se(v)
if (yaw_pitch_roll_idc = = 1) {
cam_yaw[i ] u(16)
cam_pitch[ i ] u(16)
cam_roll[ i ] u(16)
}
}
intrinsic_params_equal_flag u(1)
for ( i = 0; i <= intrinsic_params_equal_flag ? 0 : num_ cameras_minus1; i++ )
camera_intrinsics( [ i ] )
depth_quantization_params_equal_flag u(1)
for ( i = 0; i <= depth_quantization_equal_flag ? 0 :
num_cameras_minus1; i++ )
depth_quantization( [ i ] )
}
yaw_pitch_roll_idc Description
0 yaw, pitch, roll not signaled, all values equal to 0
1 yaw, pitch, roll explicitly signaled per camera
2 yaw, pitch, roll not signaled, values derived for 6 cameras in rectangular bounding box
3 yaw, pitch, roll not signaled, values derived for 8 cameras
여기서, 일부 실시예에 따른 구문 요소가 다음과 같이 정의된다. 구문 요소 camera_params_list()는 3D 장면을 나타내는 카메라의 목록을 지정한다. 구문 요소 num_cameras_minus1 + 1은 카메라 목록 내 카메라의 수를 나타낸다. num_cameras_minus1은 0 내지 65534의 범위에 있어야 한다. 65535의 값은 ISO/IEC에 의해 미래에 지정될 수 있다. 변수 NumViews는 num_cameras_minus1 + 1과 동일하게 설정된다. 구문 요소 cam_pos_x_granularity, cam_pos_y_granularity 및 cam_pos_z_granularity는 글로벌 기준 좌표계의 미터 단위의, 각각 cam_pos_x[i], cam_pos_y[i] 및 cam_pos_z[i] 구문 요소의 시그널링 정확성을 나타내는, 부호가 없는 고정 소수점 16.16 값이다. 구문 요소 yaw_pitch_roll_idc는 표 14에 설명된 바와 같이 cam_yaw[i], cam_pitch[i] 및 cam_roll[i] 구문 요소에 대한 시그널링 메커니즘을 나타낸다. 구문 요소 cam_id_present_flag는 cam_view_id[i] 구문 요소가 존재함을 나타낸다. 구문 요소 cam_view_id[i]는 i번째 카메라의 뷰 식별자를 지정한다. 존재하지 않는 경우, cam_view_id[i]의 값은 i와 동일한 것으로 추정된다. 구문 요소 cam_pos_x[i]는 글로벌 기준 좌표계에서 i번째 카메라의 위치의 X(뒤에서 앞으로) 좌표를 cam_pos_x_granularity 미터 단위로 지정한다. cam_pos_x[i]는 -256 내지 256의 범위에 있어야 한다. 구문 요소 cam_pos_y[i]는 글로벌 기준 좌표계에서 i번째 카메라의 위치의 Y(측방향, 좌에서 우로) 좌표를 cam_pos_y_granularity 미터 단위로 지정한다. cam_pos_y[i]는 -256 내지 256의 범위에 있어야 한다. 구문 요소 cam_pos_z[i]는 글로벌 기준 좌표계에서 i 번째 카메라의 위치의 Z(아래에서 위로) 좌표를 cam_pos_z_granularity 미터 단위로 지정한다. cam_pos_z[i]는 -256 내지 256의 범위에 있어야 한다. 구문 요소 cam_yaw[i], cam_pitch[i] 및 cam_roll[i]는, 글로벌 기준 좌표계에서, 2-16도의 단위로, 각각 글로벌 좌표 축을 i번째 카메라의 로컬 좌표 축으로 변환하는 데 적용되는 회전의 요, 피치 및 롤 각도를 지정한다. 구문 요소 intrinsic_params_equal_flag가 1인 것은 0번째 카메라의 내부 파라미터 virtual_camera_intrinsics()가 카메라 파라미터 목록의 모든 카메라에 적용되도록 지정한다. intrinsic_params_equal_flag가 0인 것은, 카메라 파라미터 목록의 모든 카메라에 적용되는 0번째 카메라의 dep()의 각 카메라에 대해 내부 파라미터 virtual_camera_intrinsics()가 존재함을 지정한다. intrinsic_params_equal_flag가 0인 것은 내부 파라미터 virtual_camera_intrinsics()가 카메라 파라미터 목록의 각 카메라에 대해 존재함을 지정한다. 구문 요소 depth_quantization_params_equal_flag가 1인 것은 0번째 카메라의 depth_quantization() 구문 구조 내 심도 양자화 파라미터가 카메라 파라미터 목록의 모든 카메라에 적용되도록 지정한다. depth_quantization_params_equal_flag가 0인 것은 depth_quantization() 구문 구조 내 심도 양자화 파라미터가 카메라 파라미터 목록의 각 카메라에 대해 존재함을 지정한다. 구문 요소 cam_type[v]는 v번째 카메라의 투영 방법을 나타낸다. cam_type[v]가 0인 것은 ERP 투영을 지정한다. cam_type[v]가 1인 것은 CMP 투영을 지정한다. cam_type[v]가 2인 것은 원근 투영을 지정한다. 3 내지 255 범위의 cam_type 값은 ISO/IEC에서 향후 사용을 위해 남겨진다. 구문 요소 projection_plane_width[v]와 projection_plane_height[v]는 각각 코딩된 루마 샘플로 표현되는, 카메라 투영 평면의 수평 및 수직 해상도를 지정한다. 구문 요소 erp_phi_min[v]와 erp_phi_max[v]는, 2-16도 단위로, ERP 투영의 경도 범위(최소 및 최대 값)를 지정한다. erp_phi_min[v]와 erp_phi_max[v]는, 글로벌 기준 좌표계에서, -180 * 216 내지 180 * 216 - 1 범위에 있어야 한다. 구문 요소 erp_theta_min및 erp_theta_max는, 2-16도 단위로, ERP 투영의 위도 범위(최소 및 최대 값)를 지정한다. erp_theta_min과 erp_theta_max는, 글로벌 기준 좌표계에서, -90 * 216 내지 90 * 216 - 1 범위에 있어야 한다. 구문 요소 cubic_map_type은 CMP 투영의 유형을 나타낸다. cubic_map_type이 0인 것은 전체 투영(6개의 패킹된 면을 가짐)을 지정한다. 0보다 큰 cubic_map_type의 값은 ISO/IEC에서 향후 사용을 위해 남겨진다. 구문 요소 perspective_focal_hor와 perspective_focal_ver는 각각 루마 샘플에서 원근 투영 초점의 수평 및 수직 구성요소를 지정하는 고정 소수점 16.16 값이다. 구문 요소 perspective_center_hor와 perspective_center_ver는 각각 루마 샘플에서 원근 투영의 주점(principal point)의 수평 및 수직 좌표를 지정하는 고정 소수점 16.16 값이다. perspective_center_hor와 perspective_center_ver의 값은 각각 0 내지 projection_plane_width - 1 및 0 내지 projection_plane_height - 1의 범위에 있어야 한다. 구문 요소 quantization_law[v]는 v번째 카메라의 심도 양자화 방법의 유형을 나타낸다. quantization_law[v]가 0인 것은 심도 값의 역의 균일 양자화를 지정한다. 0보다 큰 값의 quantization_law[v]는 ISO/IEC에서 향후 사용을 위해 남겨진다. 구문 요소 depth_near[v]와 depth_far[v]는 각각 미터 단위로 v번째 카메라에 의해 캡처된 3D 장면의 최소 및 최대 심도 값을 지정하는 고정 소수점 16.16 값이다. 일부 실시예에서, 구문 요소 CamYaw[i], CamPitch[i] 및 CamRoll[i](밑줄 생략됨)는 다음 의사코드, if (yaw_pitch_roll_idc == 0): [for (i = 0; i = num_cameras_minus1; i++): CamYaw[i] = 0. CamPitch[i] = 0, CamRoll[i] = cam_roll[i ]]; else if (yaw_pitch_roll_idc == 1): [for (i = 0; i = num_cameras_minus1; i++): CamYaw[i] = cam_yaw[i ], CamPitch[i] = cam_pitch[i ], CamRoll[i] = cam_roll[i ]]; else if (yaw_pitch_roll_idc == 2): [CamYaw[0] = 0, CamPitch[0] = 0, CamYaw[1] = //90 degrees, CamPitch[1] = 0, CamYaw[2] = //180 degrees, CamPitch[2] = 0, CamYaw[3] = //270 degrees, CamPitch[3] = 0, CamYaw[4] = 0, CamPitch[4] = //90 degrees, CamYaw[4] = 0, CamPitch[4] = //-90 degrees, for (i = 0; i = num_cameras_minus1; i++): CamRoll[i] = 0]; else if (yaw_pitch_roll_idc == 3) . . .에 따라 유도된다.
논의는 이제 일부 실시예에 따른 아틀라스 파라미터 시그널링으로 넘어간다. MIV WD1은 atlas_params() 구문 구조에 각 아틀라스에 의해 표현되는 패치를 설명하는 간단한 방법을 사용한다. 아틀라스의 각 패치에 대해, 다음 정보, 패치의 (폭, 높이) 크기, 아틀라스 내 패치 (x, y) 위치, 뷰에서 패치의 (x, y) 위치 및 아틀라스와 뷰 사이의 패치의 90°회전이 시그널링된다. V-PCC SCD는 패치 데이터 유닛의 패치를 시그널링하기 위한 더 복잡한 방법을 가지며, 이는 패치 특성의 인터 프레임 패치 참조와 3차원 공간에서 패치 회전을 포함한다.
도 7은 본 개시의 적어도 일부 구현에 따른, 패치의 예시적인 90° 회전(700)을 도시한다. 도 7에 도시된 바와 같이, 일부 실시예에서, 패치는 아틀라스 픽처와 뷰 표현 사이에서 회전될 수 있다. 특히, 파라미터 patch_rotation(본 명세서 아래에서 추가로 정의됨)이 1인 경우, 도 7에 도시된 바와 같이, 아틀라스에서 뷰로 매핑할 때 시계 방향 회전이 적용된다.
아틀라스 파라미터 시그널링에 대한 논의로 돌아가면, 일부 실시예에서, atlas_params() 구문 요소가 코딩 효율을 향상시키기 위해 수정된 IV 코딩에 사용된다. 일부 실시예에서, ue(v) 엔트로피 코딩이 일부 구문 요소에 대해 사용되고, u(v) 코딩이 다른 구문 요소에 대해 사용된다. V-PCC 패치 코딩의 더 복잡한 기능은 IV 사양에서 다루지 않는다. 인터 프레임 패치 참조와 같은 더 복잡한 기능의 일부는 MIV 프로파일에서 지원되지 않을 것으로 예상된다. 인터 프레임 패치 참조를 통해 얻을 수 있는 이득의 양을 결정하는 추가적인 연구는 V-PCC 설계와의 더 큰 공통성이 달성되는지 또는 별도의 구문 구조가 사용되는지를 결정하는 것을 추구하는 것이 바람직하다.
일부 실시예에 따른 아틀라스 파라미터 시그널링에 대한 구문이 아래 표 22 및 23에 제공되며, 시맨틱은 본 명세서 아래에 따른다. 그러나 먼저 표 20 및 21은 MIV WD1 아틀라스 파라미터 구문을 제공한다.
atlas_params_list( ) {
num_atlases_minus1 u(8)
for ( i = 0; i <= num_atlases_minus1; i++ ) {
atlas_id[ i ]; u(8)
atlas_params( atlas_id[ i ] )
}
}
atlas_params( a ) { Descriptor
num_patches_minus1[ a ] u(16)
for ( i = 0; i <= num_patches_minus1; i++ ) {
view_id[ a ][ i ] u(8)
patch_width_in_view[ a ][ i ] u(16)
patch_height_in_view[ a ][ i ] u(16)
patch_pos_in_atlas_x[ a ][ i ] u(16)
patch_pos_in_atlas_y[ a ][ i ] u(16)
patch_pos_in_view_x[ a ][ i ] u(16)
patch_pos_in_view_y[ a ][ i ] u(16)
patch_rotation[ a ][ i ] u(8)
}
}
논의는 이제 일부 실시예에 따른 아틀라스 파라미터 목록 구문으로 넘어간다. 일부 실시예에서, 표 22 및 23에 나타난 바와 같이 아틀라스 파라미터 시그널링을 위한 구문이 제공된다.
atlas_params_list( ) {
num_atlases_minus1 ue(v)
for ( i = 0; i <= num_atlases_minus1; i++ ) {
atlas_id[ i ]; ue(v)
atlas_params( atlas_id[ i ] )
}
}
atlas_params( a ) { Descriptor
num_patches_minus1[ a ] u(16)
atlas_width[ a ] u(16)
atlas_height[ a ] u(16)
for ( i = 0; i <= num_patches_minus1; i++ ) {
cam_id[ a ][ i ] u(v)
patch_width_in_view[ a ][ i ] u(v)
patch_height_in_view[ a ][ i ] u(v)
patch_pos_in_atlas_x[ a ][ i ] u(v)
patch_pos_in_atlas_y[ a ][ i ] u(v)
patch_pos_in_view_x[ a ][ i ] u(v)
patch_pos_in_view_y[ a ][ i ] u(v)
patch_rotation[ a ][ i ] u(2)
}
}
특히, 일부 실시예에 따른 아틀라스 파라미터 구문에서, 구문 요소 num_atlases_minus1과 atlas_id는 ue(v) 엔트로피 코딩(Exp-Golomb 코딩)으로 코딩되고, 구문 요소 cam_id, patch_width_in_view, patch_height_in_view, patch_pos_in_atlas_x, patch_pos_in_atlas_y, patch_pos_in_view_x 및 patch_pos_in_view_y는 u(v) 코딩(정수 비트 코딩)으로 코딩되는데, 여기서 할당된 사이즈는 본 명세서에서 추가로 논의되는 바와 같이 다른 요소(v로 표시됨)에 기초한다. 여기서, 일부 실시예에 따른, 구문 요소의 일부가 다음과 같이 정의된다. 구문 요소 atlas_params_present_flag가 1인 것은 atlas_params_list() 구문 구조가 존재함을 나타낸다. atlas_params_present_flag가 0인 것은 atlas_params_list() 구문 요소가 존재하지 않음을 나타낸다. 구문 요소는 현재 IV 출력 유닛의 출력 유닛 카운트를 나타낸다. iv_output_unit_count를 나타내는 데 사용되는 비트의 수는 iv_output_unit_count_bits_minus4 + 4이다. 구문 요소 ivs_oup_vui_present_flag가 1인 것은 출력 유닛 VUI 파라미터가 구문 구조에 존재함을 나타낸다. ivs_oup_vui_present_flag가 0인 것은 출력 유닛 VUI 파라미터가 존재하지 않음을 나타낸다. 구문 요소 ivs_oup_num_points_present_flag가 1인 것은 ivs_oup_num_points 구문 요소가 존재함을 나타낸다. 구문 요소 ivs_oup_num_points_present_flag가 0인 것은 ivs_oup_num_points 구문 요소가 존재함을 나타낸다. 구문 요소 ivs_oup_num_points는 기준 포인트 클라우드 렌더러로부터 현재 출력 유닛에 대해 생성될 포인트 클라우드의 포인트의 수를 나타낸다. 구문 요소 ivs_oup_extension_present_flag가 0인 것은 ivs_oup_extension_data_flag 구문 요소가 구문 구조에 존재하지 않음을 지정한다. ivs_oup_extension_present_flag가 1인 것은 ivs_oup_extension_data_flag 구문 요소가 구문 구조에 존재함을 나타낸다. 준수하는 디코더는 ivs_oup_extension_present_flag에 대해 값 1을 따르는 모든 데이터를 무시해야 한다. 구문 요소 ivs_oup_extension_data_flag는 임의의 값을 가질 수 있다. 이것의 존재와 값은 프로파일에 대한 디코더 적합성에 영향을 미치지 않는다. 프로파일을 준수하는 디코더는 모든 ivs_oup_extension_data_flag 구문 요소를 무시해야 한다. 구문 요소 num_atlases_minus1 + 1은 아틀라스 목록의 아틀라스의 수를 나타낸다. 구문 요소 atlas_id[i]는 i번째 아틀라스의 인덱스를 나타낸다. 구문 요소 num_patches_minus1[a] + 1은 a번째 아틀라스의 패치의 수를 나타낸다. 구문 요소 atlas_width[a]는 a 번째 아틀라스의 폭을 나타낸다. a번째 아틀라스의 텍스처 아틀라스 구성요소 계층에 대한 활성 SPS에서 atlas_width[a]가 pic_width_in_luma_samples와 같은 것은 비트스트림 적합성 요구사항이다. 구문 요소 atlas_height[a]는 a번째 아틀라스의 높이를 나타낸다. a번째 아틀라스의 텍스처 아틀라스 구성요소 계층에 대한 활성 SPS에서 atlas_height[a]가 pic_height_in_luma_samples와 같은 것은 비트스트림 적합성 요구사항이다. 구문 요소 cam_id[a][i]는 a 번째 아틀라스의 i 번째 패치와 관련된 카메라 인덱스를 나타낸다. 변수 ViewId[a][i]는 cam_view_id[cam_id[a][i]]와 동일하게 설정된다. 구문 요소 patch_width_in_view[a][i]와 patch_height_in_view[a][i]는 각각 ViewId[a][i]번째 뷰 내 a번째 아틀라스의 i번째 패치의 폭과 높이를 루마 샘플로 지정한다. patch_width_in_view[a][i]와 patch_height_in_view[a][i]의 표현에 사용되는 비트의 수는 각각 Ceil(Log2(projection_plane_width[ViewId[a][i]])) 및 Ceil(Log2(projection_plane_height[ViewID[a][i]]))비트이다. 구문 요소 patch_pos_in_atlas_x[a][i]와 patch_pos_in_atlas_y[a][i]는 각각 a번째 아틀라스의 i번째 패치의 좌상단 모서리의 수평 및 수직 좌표를 루마 샘플로 지정한다. patch_pos_in_atlas_x[a][i]와 patch_pos_in_atlas_y[a][i]의 표현에 사용되는 비트의 수는 각각 Ceil(Log2(atlas_width[a])) 및 Ceil(Log2(atlas_height[a]))비트이다. 구문 요소 patch_pos_in_view_x[a][i]와 patch_pos_in_view_y[a][i]는 각각 ViewId[a][i]번째 뷰에서 i번째 패치의 좌상단 모서리의 수평 및 수직 좌표를 루마 샘플로 지정한다. patch_pos_in_view_x[a][i]와 patch_pos_in_view_y[a][i]의 표현에 사용되는 비트의 수는 각각 Ceil(Log2(projection_plane_width[ViewId[a][i]])) 및 Ceil(Log2(projection_plane_height[ViewID[a][i]]))비트이다. 구문 요소 patch_rotation[a][i]는 ViewId[a][i]번째 뷰에서 패치의 방향에 대한 a번째 아틀라스에서 i번째 패치의 회전을 나타낸다. patch_rotation[a][i]가 0인 것은 회전이 없음을 지정한다. patch_rotation[a][i]가 1인 것은, 도 3에 도시된 바와 같이, 아틀라스로부터 뷰로 매핑할 때 시계 방향으로 90도 회전이 적용되도록 지정한다. patch_rotation[a][i]가 2인 것은, 아틀라스로부터 뷰로 매핑할 때 시계 방향으로 180도 회전이 적용되도록 지정한다. patch_rotation[a][i]가 3인 것은, 아틀라스로부터 뷰로 매핑할 때 시계 방향으로 270도 회전이 적용되도록 지정한다. 도 8은 본 개시의 적어도 일부 구현에 따라 구성된 아틀라스 파라미터의 코딩을 포함하는 몰입형 비디오 코딩을 위한 예시적인 프로세스(800)를 도시하는 흐름도이다. 프로세스(800)는 도 8에 도시된 하나 이상의 동작(801 내지 808)을 포함할 수 있다. 프로세스(800)는 본 명세서에서 논의된 임의의 디바이스 또는 시스템에 의해 수행될 수 있다. 일부 실시예에서, 동작(801 내지 804)은 인코더에 의해서 수행되고, 동작(805 내지 808)은 디코더에 의해서 수행된다.
프로세싱은 동작(801)에서 시작되는데, 여기서 몰입형 비디오에 대응하는 복수의 아틀라스에 대해, 아틀라스의 개수 - 1, 아틀라스 인덱스 식별자, 패치당 카메라 인덱스(예컨대, 제 1 아틀라스의 제 1 패치와 관련된 카메라 인덱스, 제 1 아틀라스의 제 2 패치와 관련된 카메라 인덱스, 제 2 아틀라스의 제 1 패치와 관련된 카메라 인덱스 등), 패치 크기 및 패치 위치를 포함하는 아틀라스 파라미터가 수신된다. 일부 실시예에서, 아틀라스 파라미터(예컨대, 아틀라스 파라미터(106))는 본 명세서에서 논의된 바와 같이 패치 크기, 위치, 대응하는 뷰 및 아틀라스 픽처에 대한 패치 점유를 정의한다.
프로세싱은 동작(802)에서 계속되는데, 여기서 아틀라스의 개수 - 1 파라미터(num_atlases_minus1)와 아틀라스 인덱스 식별자(atlas_id)가 본 명세서에서 논의된 바와 같이 ue(v) 코딩을 이용하여 인코딩되도록, 일부 아틀라스 파라미터가 인코딩된다. 예를 들어, ue(v) 코딩은 본 명세서에서 논의된 바와 같이 코딩이 다른 구문 요소의 크기(v)에 기초하는 Exp-Golomb 엔트로피 코딩을 제공한다. 프로세싱은 동작(803)에서 계속되는데, 여기서 패치당 카메라 인덱스(cam_id), 패치 크기(patch_width_in_view, patch_height_in_view) 및 패치 위치(patch_pos_in_atlas_x, patch_pos_in_atlas_y, patch_pos_in_view_x, patch_pos_in_view_y)가 본 명세서에서 논의된 바와 같이 u(v) 코딩을 이용하여 코딩되도록, 다른 아틀라스 파라미터가 인코딩된다. 예를 들어, u(v) 코딩은 본 명세서에서 논의된 바와 같이 코딩이 다른 구문 요소의 크기(v)에 기초하는 정수 비트 코딩을 제공한다. 추가적인 아틀라스 파라미터는 본 명세서에서 설명된 바와 같이 코딩될 수 있다. 또한, 이러한 (v)에 대한 코딩 의존성은 구문 요소와 관련하여 본 명세서에서 설명된 바와 같이 수행된다. 일부 실시예에서, 패치당 카메라 인덱스는 카메라의 개수 - 1 파라미터(예컨대, 몰입형 비디오에 대한 카메라 어레이 내 카메라의 개수 - 1, num_cameras_minus1) 또는 카메라의 수(예컨대, 어레이 내 카메라의 수)에 기초하여 정수 크기(v)를 이용하여 코딩된다. 일부 실시예에서, 패치당 카메라 인덱스는 밑이 2인 로그 카메라의 개수 - 1 파라미터와 동일한 정수 크기(v)를 이용하여 코딩된다. 일부 실시예에서, 패치당 카메라 인덱스(cam_id[a][i]의 표현을 위해 사용된 비트의 수)는 Ceil(Log2(num_cameras_minus1))이다. 일부 실시예에서, 패치당 카메라 인덱스(cam_id[a][i]의 표현을 위해 사용된 비트의 수)는 Ceil(Log2(num_cameras_minus1 + 1))이다. 이러한 정수 크기는 또한 아래에서 논의되는 디코딩에서도 사용된다.
프로세싱은 동작(804)에서 계속되는데, 여기서 코딩된 몰입형 데이터가 디코더 또는 메모리 스토리지 디바이스와 같은 다른 디바이스로 전송된다. 예를 들어, 코딩된 몰입형 데이터는 비트스트림에 포함 및/또는 패킷화되고, 압축된 표현으로, 디코더 또는 메모리 스토리지 디바이스(디코더에 의한 추후 사용을 위해)에 제공될 수 있다.
프로세싱은 동작(805)에서 계속되는데, 여기서, 몰입형 비디오에 대응하는 다수의 아틀라스에 대해, 아틀라스의 개수 - 1 파라미터와 복수의 아틀라스 중 제 1 아틀라스의 제 1 패치와 관련된 카메라 인덱스(예컨대, 아틀라스 인덱스 식별자)의 코딩된 표현을 포함하는 코딩된 아틀라스 파라미터를 포함하는 비트스트림 부분이 수신된다. 또한, 비트스트림 부분은 추가적인 아틀라스 인덱스 식별자, 패치당 카메라 인덱스, 패치 크기 및 패치 위치의 코딩된 표현을 포함할 수 있다.
프로세싱은 동작(806)에서 계속되는데, 여기서 아틀라스의 개수 - 1 파라미터의 코딩된 표현이 본 명세서에서 논의된 바와 같이 Exp-Golomb 엔트로피 디코딩(ue(v))을 이용하여 디코딩된다. 동작(806)은 Exp-Golomb 엔트로피 디코딩(ue(v))을 이용하여 아틀라스 인덱스 식별자의 코딩된 표현을 디코딩하는 것을 더 포함할 수 있다. 프로세싱은 동작(807)에서 계속되는데, 여기서 복수의 아틀라스 중 제 1 아틀라스의 제 1 패치와 관련된 카메라 인덱스가 정수 비트 디코딩(u(v))을 이용하여 디코딩되며, 정수 비트 디코딩은 인코딩과 관련하여 논의된 카메라의 개수 - 1 파라미터의 수에 기초한 정수 길이를 포함한다. 동작(807)은 정수 비트 디코딩을 이용하여 제 1 패치의 패치 크기를 디코딩하는 것을 더 포함할 수 있다. 일부 실시예에서, 정수 비트 디코딩은 카메라의 수(카메라의 개수 - 1 파라미터)에 기초한다. 일부 실시예에서 투영 평면 크기에 기초한 정수 비트 디코딩은, 밑이 2인 로그 카메라의 개수 - 1 파라미터와 동일한 정수 크기에서, 패치 크기의 정수 비트 디코딩을 포함한다. 일부 실시예에서, 정수 비트 디코딩은 본 명세서에서 설명된 바와 같이 투영 평면 크기에 기초한다. 일부 실시예에서, 투영 평면 사이즈에 기초한 정수 비트 디코딩은 밑이 2인 로그 투영 평면 크기와 동일한 정수 크기에서, 패치 크기의 정수 비트 디코딩을 포함한다. 일부 실시예에서, 투영 평면 크기는 카메라 투영 평면의 수평 해상도이다. 일부 실시예에서, 디코딩된 패치 사이즈는 루마 샘플에서 제 1 아틀라스의 제 1 패치의 패치 폭이다.
프로세싱은 동작(808)에서 계속되는데, 여기서 하나 이상의 뷰 픽처 또는 표현이 디코딩된 아틀라스 파라미터에 기초하여 생성된다. 예를 들어, 디코딩된 아틀라스 픽처는 디코딩된 아틀라스 파라미터에 기초하여 액세스되어 뷰포트 생성에서 사용하기 위한 하나 이상의 뷰 픽처를 채울(populate) 수 있다.
논의는 이제 일부 실시예에 따른 HEVC "독립 계층 메인 10" 프로파일로 넘어간다. 일부 실시예에서, "독립 계층 메인 10" HEVC 프로파일이 HEVC의 새로운 버전에 제공되고, HEVC 비트스트림의 VPS 확장에서 시그널링된다. 이 새로운 프로파일은 준수하는 HEVC 비트스트림이 2개 이상의 독립 계층을 포함할 수 있게 한다. 일부 실시예에서, 독립 계층 메인 10 프로파일에 대한 시맨틱은 멀티뷰 메인 프로파일(Multiview Main Profile)에 대한 시맨틱에 기초할 수 있다. 일 실시예에서, 이 프로파일에서, direct_dependency_flag[i][j]는 비트스트림에 존재하는 i와 j의 모든 값에 대해 0과 같도록 요구될 수 있다. 이 제한에 대한 구체적인 표현은 아래의 프로파일 설명에서 제공된다.
일부 실시예에서, 독립 계층 메인 10 프로파일은 다음과 같이 제공된다. 비트스트림의 OLS와 연관된 출력 동작 점(operation point)의 계층에 대해, 계층은 독립 계층 메인 10 프로파일을 준수하며, olsIdx를 OLS의 OLS 인덱스라고 하면, 서브 비트스트림(subBitstream) 및 기초 계층 서브 비트스트림(baseBitstream)이 파생되는 것이 적용된다. vps_base_layer_internal_flag가 1인 경우, 기초 계층 서브 비트스트림(baseBitstream)은, 베이스 계층 서브 비트스트림(baseBitstream)이 메인 또는 메인 10 프로파일을 준수하도록 표시되어야 한다는 제약을 준수하여야 한다. 서브 비트스트림(subBitstream)은, 모든 활성 VPS가 0 내지 15 범위의 vps_num_rep_formats_minus1을 가져야 한다는 제약을 준수하여야 한다. subBitstream의 계층에 대한 모든 활성 SPS는 오직 1과 동일한 chroma_format_idc를 가져야 한다. subBitstream의 계층에 대한 모든 활성 SPS는, 존재하는 경우 오직 0과 동일한 transform_skip_rotation_enabled_flag, transform_skip_context_enabled_flag, implicit_rdpcm_enabled_flag, explicit_rdpcm_enabled_flag, extended_precision_processing_flag, intra_smoothing_disabled_flag, high_precision_offsets_enabled_flag, persistent_rice_adaptation_enabled_flag 및 cabac_bypass_alignment_enabled_flag를 가져야 한다. subBitstream의 계층에 대한 모든 활성 SPS로부터 파생된 CtbLog2SizeY는 4 내지 6의 범위에 있어야 한다. subBitstream의 계층에 대한 모든 활성 PPS는, 존재하는 경우 오직 0과 동일한 log2_max_transform_skip_block_size_minus2와 chroma_qp_offset_list_enabled_flag를 가져야 한다. 모든 활성 VPS는 0과 동일한 alt_output_layer_flag[olsIdx]를 가져야 한다. subBitstream을 유도하는 데 사용된 layerIdListTarget에 포함된 임의의 값과 동일한 nuh_layer_id(iNuhLId)를 갖는 계층의 경우, direct_dependency_flag[iNuhLId][j]는 j의 임의의 값에 대해 0과 동일해야 한다. subBitstream의 계층에 대한 모든 활성 SPS는 오직 0과 동일한 sps_range_extension_flag와 sps_scc_extension_flag를 가져야 한다. subBitstream의 계층에 대한 모든 활성 PPS는 오직 0과 동일한 pps_range_extension_flag와 pps_scc_extension_flag를 가져야 한다. subBitstream의 계층에 대한 모든 활성 SPS는 오직 0과 동일한 bit_depth_luma_minus8을 가져야 한다. subBitstream의 계층에 대한 모든 활성 SPS는 오직 0과 동일한 bit_depth_chroma_minus8을 가져야 한다. subBitstream의 계층에 대한 모든 활성 PPS는 오직 0과 동일한 colour_mapping_enabled_flag를 가져야 한다. subBitstream의 임의의 계층에 대한 활성 PPS가 1과 동일한 tiles_enabled_flag를 갖는 경우, 0과 동일한 entropy_coding_sync_enabled_flag를 가져야 한다. subBitstream의 임의의 계층에 대한 활성 PPS가 1과 동일한 tiles_enabled_flag를 갖는 경우, ColumnWidthInLumaSamples[i]는, 0 내지 num_tile_columns_minus1의 범위에 있는 모든 값의 i에 대해, 256보다 크거나 같아야 하며, RowHeightInLumaSamples[j]는, 0 내지 num_tile_rows_minus1의 범위에 있는 모든 값의 j에 대해 64보다 크거나 같아야 한다. 임의의 CTU에 대한 coding_tree_unit()을 파싱할 때 read_bits(1)이 호출되는 횟수는 5 * RawCtuBits / 3보다 작거나 같아야 한다. General_level_idc와 subBitstream의 임의의 계층에 대한 활성 SPS의 모든 값의 i에 대한 sub_layer_level_idc[i]는 255(레벨 8.5를 나타냄)와 동일하지 않아야 한다. 독립 계층 메인 10 프로파일에 대해 지정된 티어 및 레벨 제약이 충족되어야 한다. 일부 실시예에서, profile_tier_level() 구문 구조 내 모든 구문 요소는 계층과 연관된 profile_tier_level() 구문 구조의 것을 참조한다.
독립 계층 메인 10 프로파일의 OLS와 연관된 출력 동작 점의 계층의 적합성은 다음과 같이 표시된다. 출력 동작 점의 OpTid vps_max_sub_layer_minus1와 동일한 경우, 적합성은 general_profile_idc being이 6과 동일 또는 general_profile_compatibility_flag[ 6 ]이 1과 동일 및 general_max_12bit_constraint_flag가 1과 동일, general_max_10bit_constraint_flag가 1과 동일, general_max_8bit_constraint_flag가 1과 동일, general_max_422chroma_constraint_flag가 1과 동일, general_max_420chroma_constraint_flag가 1과 동일, general_max_monochrome_constraint_flag가 0과 동일, general_intra_constraint_flag가 0과 동일, 및 general_one_picture_only_constraint_flag가 0과 동일 및 general_lower_bit_rate_constraint_flag가 1과 동일하다는 것에 의해 표시된다. 아니라면(출력 동작 점의 OpTid가 vps_max_sub_layer_minu1보다 작음), 적합성은 sub_layer_profile_idc[ OpTid ]가 6과 동일 또는 sub_layer_profile_compatibility_flag[ OpTid ][ 6 ]가 1과 동일 및 sub_layer_max_12bit_constraint_flag[ OpTid ]가 1과 동일, sub_layer_max_10bit_constraint_flag[ OpTid ]가 1과 동일, sub_layer_max_8bit_constraint_flag[ OpTid ]가 1과 동일, sub_layer_max_422chroma_constraint_flag[ OpTid ]가 1과 동일, sub_layer_max_420chroma_constraint_flag[ OpTid ]가 1과 동일, sub_layer_max_monochrome_constraint_flag[ OpTid ]가 0과 동일, sub_layer_intra_constraint_flag[ OpTid ]가 0과 동일, 및 sub_layer_one_picture_only_constraint_flag[ OpTid ]가 0과 동일 및 sub_layer_lower_bit_rate_constraint_flag[ OpTid ]가 1과 동일하다는 것에 의해 표시된다.
논의는 이제 일부 실시예에 따른 MIV "몰입형 메인 10" 프로파일로 넘어간다. 일부 실시예에서, MIV "몰입형 메인 10" 프로파일은 profile_tier_level() 구문 구조에서 시그널링될 IV에 포함된다. 일부 실시예에서, 이 프로파일은 HEVC가 비디오 코딩 계층에 사용되는 것과 HEVC 비트스트림의 모든 OLS가 HEVC 독립 계층 메인 10 프로파일을 준수하는 것을 요구한다. 일부 실시예에서, 비트스트림의 비디오 코덱 계층의 수는 ivs_max_codec_layers_minus1 이하로 제한된다. 일부 실시예에서, 이 프로파일은 계층 간의 픽처 코딩 순서 정렬을 요구한다. 일부 실시예에서, 이 프로파일은, 각 아틀라스에 대해, 텍스처 구성요소 계층, 심도 구성요소 계층 및 점유 맵 구성요소 계층을 포함하여, 계층 그룹이 각 아틀라스에 대해 존재할 것을 요구한다. 일부 실시예에서, 각 액세스 유닛에 대해, 픽처가 텍스처 계층에 존재하는 경우, 픽처 또한 심도 계층과 점유 맵 계층에 존재할 것이 요구된다. 일부 실시예에서, 텍스처 및 심도 계층은 동일한 코딩된 픽처 해상도를 갖도록 요구된다. 일부 실시예에서, 점유 맵 픽처 해상도는, 스케일링 및 패킹을 적용(있는 경우)한 후, 대응하는 텍스처 및 심도 구성요소에 대응하는 코딩된 픽처 사이즈와 동일하도록 제한된다. 일부 실시예에서, 비트스트림의 ivs_points_rendering_idc의 값에 대한 제한은 없지만, 렌더링을 구현하기 위한 디코더 클라이언트에 대한 요구사항은 없다.
논의는 이제 일부 실시예에 따른 몰입형 메인 10 프로파일로 넘어간다. 일부 실시예에서, 몰입형 메인 10 프로파일을 준수하는 비트스트림은, IVS 파라미터는 HEVC와 동일한 ivs_codec_id을 가져야 하고, IVS 파라미터는 1과 동일한 ivs_all_codec_layers_au_aligned_flag를 가져야 하며, 비트스트림의 비디오 코덱 계층에 대한 모든 활성 SPS는 메인 또는 메인 10과 동일한 general_profile_idc를 가져야 하고, 비트스트림의 비디오 코덱 계층의 모든 활성 SPS는 ivs_tier_flag보다 작거나 같은 general_tier_flag를 가져야 하며, 비트스트림의 비디오 코덱 계층의 모든 활성 SPS는 ivs_ptl_max_layer_level_idc보다 작거나 같은 general_level_idc를 가져야 한다는 제약을 따라야 하고, 비트스트림의 비디오 코덱 계층의 모든 활성 VPS는, 모든 OLS는 독립 계층 메인 10 프로파일을 준수해야 하고, 임의의 텍스처 계층에 대해 임의의 값의 a에 대해 a와 동일한 AtlasId, 0과 동일한 DepthFlag, 0과 동일한 OccupancyFlag 및 임의의 값의 PicWidth와 PicHeight에 대해 PicWidth와 동일한 pic_width_in_luma_samples와 PicHeight와 동일한 pic_height_in_luma_samples를 갖는 활성 SPS에 의해 표시되는, vps_max_layers_minus1은 ivs_max_codec_layers_minus1보다 작거나 같아야 하며, 비트스트림에는, a와 동일한 AtlasId, 1과 동일한 DepthFlag, 0과 동일한 OccupancyFlag 및 PicWidth << occupancy_map_scaling 와 동일한 pic_width_in_luma_samples와 PicHeight << occupancy_map_scaling 와 동일한 pic_height_in_luma_samples를 갖는 활성 SPS를 갖는 활성 심도 계층과, a와 동일한 AtlasId, 0과 동일한 DepthFlag, 1과 동일한 OccupancyFlag 및 occupancy_map_packing_flag? (PicWidth << occupancy_map_scaling + 7) / 8 : PicWidth << occupancy_map_scaling과 동일한 pic_width_in_luma_samples과 PicHeight << occupancy_map_scaling과 동일한 pic_height_in luma_samples를 갖는 활성 점유 맵 계층이 존재하여야 한다는 제약을 따라야 한다.
일부 실시예에서, 비트스트림의 몰입형 메인 10 프로파일에 대한 준수는, 0과 동일한 ivs_profile_idc에 의해 표시된다. 일부 실시예에서 특정 티어(ivs_tier_flag의 특정 값에 의해 식별됨)의 특정 레벨(ivs_level_idc의 특정 값에 의해 식별됨)에서 몰입형 메인 10 프로파일을 준수하는 디코더는, 비트스트림이 몰입형 메인 10 프로파일을 준수하는 것으로 표시되고, 비트스트림이 레벨 8.5가 아니고 지정된 레벨보다 낮거나 같은 레벨을 준수하는 것으로 표시되며, 비트스트림은 지정된 티어보다 낮거나 같은 티어를 준수하는 것으로 표시되는 조건이 적용되는 모든 비트스트림 및 하위 계층 표현을 디코딩할 수 있어야 한다.
논의는 이제 일부 실시예에 따른 V-PCC "포인트 클라우드 HEVC 메인 10" 프로파일로 넘어간다. 일부 실시예에서, V-PCC "포인트 클라우드 HEVC 메인 10" 프로파일은 IV에 포함된다. 일부 실시예에서, 이 프로파일은 HEVC가 비디오 코딩 계층에 사용되는 것과, HEVC 비트스트림의 모든 OLS가 HEVC 독립 계층 메인 10 프로파일을 준수하는 것을 요구한다. 일부 실시예에서, 비트스트림의 비디오 코덱 계층의 수는 ivs_max_codec_layer_minus1보다 작도록 제한된다. 몰입형 메인 10 프로파일과 달리, 일부 실시예에서, 계층 사이의 픽처 코딩 순서 정렬이 필요하지 않다. 일부 실시예에서, 이 프로파일은 비트스트림이 렌더러가 렌더링 프로세스를 통해, 기준 포인트 클라우드 렌더러에 의해 생성되는 포인트 클라우드 시퀀스와 정확히 일치하는 포인트 클라우드 시퀀스를 생성하게 하는 것이 가능할 것을 요구한다.
일부 실시예에서, 포인트 클라우드 HEVC 메인 10 프로파일을 준수하는 비트스트림은, IVS 파라미터가 HEVC와 동일한 ivs_codec_id를 가지고, IVS 파라미터가 1과 동일한 ivs_rendering_idc를 가지며, 비트스트림의 비디오 코덱 계층에 대한 모든 활성 SPS가 ivs_tier_flag보다 작거나 같은 general_tier_idc를 가지고, 비트스트림의 비디오 코덱 계층에 대한 모든 활성 SPS가 ivs_ptl_max_layer_level_idc보다 작거나 같은 general_level_idc를 가지며, 비트스트림의 비디오 코덱 계층에 대한 모든 활성 SPS가 ivs_ptl_max_layer_level_idc보다 작거나 같은 general_level_idc를 가질 것이라는 제약을 따라야 하고, 비트스트림의 VPS는, 모든 OLS는 독립 계층 메인 10 프로파일을 준수해야 하고, 임의의 활성 텍스처 계층에 대하여, 임의의 값의 a에 대해 a와 동일한 AtlasId, 0과 동일한 DepthFlag, 0과 동일한 OccupancyFlag 및 임의의 PicWidth와 PicHeight에 대해 PicWidth와 동일한 pic_width_in_luma_samples와 PicWidth와 동일한 pic_height_in_luma_samples를 갖는 활성 SPS에 의해 표시되는, vps_max_layers_minus1은 ivs_max_codec_layers_minus1보다 작거나 같아야 하며, 비트스트림에는 a와 동일한 AtlasId, 1과 동일한 DepthFlag 및 0과 동일한 OccupancyFlag를 갖는 활성 심도 계층과 a와 동일한 AtlasId, 0과 동일한 DepthFlag 및 1과 동일한 OccupancyFlag를 갖는 활성 점유 맵 계층이 존재하여야 한다는 제약을 따라야 한다.
일부 실시예에서, 비트스트림의 포인트 클라우드 HEVC 메인 10 프로파일에 대한 준수는 ivs_profile_idc가 1과 동일한 것에 의해 표시된다. 일부 실시예에서, 특정 티어(ivs_tier_flag의 특정 값에 의해 식별됨)의 특정 레벨(ivs_level_idc의 특정 값에 의해 식별됨)에서 포인트 클라우드 HEVC 메인 10 프로파일을 준수하는 디코더는 비트스트림이 포인트 클라우드 HEVC 메인 10 프로파일을 준수하는 것으로 표시되고, 비트스트림이 레벨 8.5가 아니고 지정된 레벨보다 낮거나 같은 레벨을 준수하는 것으로 표시되며, 비트스트림은 지정된 티어보다 낮거나 같은 티어를 준수하는 것으로 표시되는 조건이 적용되는 모든 비트스트림 및 하위 계층 표현을 디코딩할 수 있어야 한다.
일부 실시예에서, 특정 렌더링 티어(메인 또는 축소(reduced))의 특정 렌더링 레벨(ivs_points_level_idc의 특정 값에 의해 식별됨)에서 포인트 클라우드 HEVC 메인 10 프로파일을 준수하는 렌더러는, 비트스트림은 ivs_points_level_idc를 준수하는 것으로 표시되고, ivs_points_rendering_idc가 2와 동일하고 렌더러가 메인 렌더링 티어를 준수할 때, 각 출력 유닛에 대해, 렌더러는 기준 렌더러에 의해 생성된 포인트 클라우드와 정확한 일치를 갖는 포인트 클라우드를 생성하여야 하고, ivs_points_rendering_idc가 1 또는 2이고 렌더러가 축소 렌더링을 준수할 때, 각 출력 유닛에 대해, 렌더러는 기준 렌더러에 의해 생성된 포인트의 수의 적어도 50%를 포함하는 포인트 클라우드를 생성하여야 한다는 조건이 적용되는 모든 비트스트림 표현을 디코딩하는 디코더 출력으로부터 포인트 클라우드를 생성할 수 있어야 한다.
일부 실시예에서, IV는 MIV에 대한 NUT 값의 할당, VPS Extension ScalabilityId 유형의 할당 및 독립 계층 메인 10 프로파일의 정의와 같은 HEVC의 일부 수정을 요구한다. 첨부된 실시예와 MIV WD1 사이의 주목할만한 차이는, 심도에 포함되기 보다는 명시적으로 코딩된 점유 맵, 무손실 모드에서 샘플 레이트를 줄이기 위한 점유 맵 비트의 선택적 패킹, 손실 모드에서 임계값의 명시적 시그널링, 몰입형 메인 10 프로파일의 정의, 계층에 대한 VPS 확장의 특정 사용, 카메라 파라미터 목록을 IVS 파라미터로 이동(migration) 및 마이너 구문 수정, 아틀라스 파라미터 목록을 MIV 출력 유닛 파라미터 구문 구조로 이동 및 마이너 구문 수정을 포함한다. 첨부된 실시예와 V-PCC 사이의 주목할만한 차이는, 모든 비디오 코덱 계층에 대한 다중 계층 지원이 있는 하나의 비디오 코덱 표준 사용 제한, 다중 계층 IRAP 정렬 요구사항이 있는 IVS의 정의, 각 출력 유닛에 대해 필요한 출력을 갖는 IV 출력 유닛의 정의, 아틀라스 패치 점유 맵 포함, 시그널링 통합 또는 분리를 위한 V-PCC SCD 패치 파라미터 데이터에 대한 추가 연구와 함께 초기 사양의 MIV WD1로부터의 아틀라스 파라미터 목록, V-PCC SCD로부터 일부 하이 레벨 구문 제거, 대신 다중 계층 비디오 코덱 하이 레벨 구문에 의존, IVS 파라미터와 IV 출력 유닛 파라미터 구문 구조 정의, 점유 맵 변화(아틀라스 패치 점유 맵 생성을 위한 스케일링 방법 및 무손실 모드의 점유 맵 선택적 패킹의 정의), 프로파일 정의(비트스트림 적합성이 아닌 디코더/렌더러 클라이언트 적합성으로 포인트 클라우드 렌더링 요구, 포인트 클라우드 HEVC 메인 10 프로파일의 정의, V-PCC SCD로부터 유연성 제한과 함께 V-PCC 사용 사례에 사용될 수 있는 몰입형 메인 10 프로파일의 정의) 및 통합될 수 있는 다른 V-PCC SCD 특징을 포함한다.
개시된 실시예는 임의의 인코더 및/또는 디코더를 통해 구현될 수 있으며, 이는 차례로 임의의 적합한 시스템 구조 또는 플랫폼을 통해 그리고 서버 컴퓨터, 클라우드 컴퓨팅 환경, 개인용 컴퓨터, 랩톱 컴퓨터, 태블릿, 패블릿, 스마트 폰, 게이밍 콘솔, 웨어러블 디바이스, 디스플레이 디바이스, 올인원 디바이스, 투인원 디바이스 등과 같은 임의의 적합한 폼 팩터 디바이스로 구현될 수 있다.
도 9는 본 개시의 적어도 일부 구현에 따라 구성된 예시적인 시스템(900)의 개략도이다. 다양한 구현에서, 시스템(900)은 모바일 디바이스 시스템일 수 있지만, 시스템(900)은 이러한 맥락으로 제한되지 않는다. 예를 들어, 시스템(900)은 개인용 컴퓨터(PC), 랩톱 컴퓨터, 울트라 랩톱 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드(handheld) 컴퓨터, 팜탑 컴퓨터, PDA(personal digital assistant), 셀룰러 전화, 셀룰러 전화/PDA 결합, 텔레비전, 스마트 디바이스(예컨대, 스마트폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(MID), 메시징 디바이스, 데이터 통신 디바이스, 카메라(예컨대, 포인트 앤 슛(point-and-shoot) 카메라, 슈퍼 줌 카메라, DSLR(digital single-lens reflex) 카메라), 감시 카메라, 카메라를 포함하는 감시 시스템 등에 통합될 수 있다.
다양한 구현에서, 시스템(900)은 디스플레이(920)에 연결된 플랫폼(902)을 포함한다. 플랫폼(902)은 컨텐츠 서비스 디바이스(들)(930) 또는 컨텐츠 전달 디바이스(들)(940)와 같은 컨텐츠 디바이스 또는 이미지 센서(919)와 같은 다른 컨텐츠 소스로부터 컨텐츠를 수신할 수 있다. 예를 들어, 플랫폼(902)은 이미지 센서(919) 또는 임의의 다른 컨텐츠 소스로부터 본 명세서에서 논의된 바와 같은 이미지 데이터를 수신할 수 있다. 하나 이상의 탐색 피처를 포함하는 탐색 컨트롤러(950)는, 예를 들어, 플랫폼(902) 및/또는 디스플레이(920)와 상호작용하는 데 사용될 수 있다. 각각의 이러한 구성요소는 아래에서 더 상세히 설명된다.
다양한 구현에서, 플랫폼(902)은 칩셋(905), 프로세서(910), 메모리(912), 안테나(913), 스토리지(914), 그래픽 서브시스템(915), 애플리케이션(916), 이미지 신호 프로세서(917) 및/또는 라디오(918)를 포함할 수 있다. 칩셋(905)은 프로세서(910), 메모리(912), 스토리지(914), 그래픽 서브시스템(915), 애플리케이션(916), 이미지 신호 프로세서(917) 및/또는 라디오(918) 간의 상호통신을 제공할 수 있다. 예를 들어, 칩셋(905)은 스토리지(914)와의 상호작용을 제공할 수 있는 스토리지 어댑터(미도시)를 포함할 수 있다.
프로세서(910)는 CISC(Complex Instruction Set Computer) 또는 RISC(Reduced Instruction Set Computer) 프로세서, x86 명령어 세트 호환 프로세서, 멀티 코어 또는 임의의 다른 마이크로프로세서 또는 중앙처리유닛(CPU)으로 구현될 수 있다. 다양한 실시예에서, 프로세서(910)는 듀얼 코어 프로세서(들), 듀얼 코어 모바일 프로세서(들) 등일 수 있다.
메모리(912)는 RAM(Random Access Memory), DRAM(Dynamic Random Access Memory) 또는 SRAM(Static RAM)과 같은 휘발성 메모리 디바이스로 구현될 수 있으나 이에 제한되지는 않는다.
스토리지(914)는 자기 디스크 드라이브, 광학 디스크 드라이브, 테이프 드라이브, 내부 스토리지 디바이스, 부착 스토리지 디바이스, 플래시 메모리, 배터리 백업 SDRAM(synchronous DRAM) 및/또는 네트워크 액세스 가능한 스토리지 디바이스와 같은 비휘발성 스토리지 디바이스로 구현될 수 있으나, 이에 제한되지는 않는다. 다양한 구현에서, 스토리지(914)는 다수의 하드 드라이브가 포함되는 경우 가치 있는 디지털 미디어에 대한 보호 강화된 스토리지 성능을 증가시키는 기술을 포함할 수 있다.
이미지 신호 프로세서(917)는 이미지 처리를 위한 특수 디지털 신호 프로세서 등으로 구현될 수 있다. 일부 예시에서, 이미지 신호 프로세서(917)는 단일 명령어 다중 데이터 또는 다중 명령어 다중 데이터 아키텍처 등에 기초하여 구현될 수 있다. 일부 예시에서, 이미지 신호 프로세서(917)는 미디어 프로세서로 특징지어질 수 있다. 본 명세서에서 논의된 바와 같이, 이미지 신호 프로세서(917)는 SoC(system on a chip) 아키텍처에 기초하여 및/또는 멀티 코어 아키텍처에 기초하여 구현될 수 있다.
그래픽 서브시스템(915)은 디스플레이를 위한 스틸 또는 비디오와 같은 이미지의 처리를 수행할 수 있다. 그래픽 서브시스템(915)은, 예를 들어 GPU(graphics processing unit) 또는 VPU(visual processing unit)일 수 있다. 아날로그 또는 디지털 인터페이스는 그래픽 서브시스템(915)과 디스플레이(920)를 통신 가능하게 연결하는 데 사용될 수 있다. 예를 들어, 인터 페이스는 HDMI(High-Definition Multimedia Interface, DisplayPort, 무선 HDMI 및/또는 무선 HD 호환 기술 중 임의의 것일 수 있다. 그래픽 서브시스템(915)은 프로세서(910) 또는 칩셋(905)으로 통합될 수 있다. 일부 구현에서, 그래픽 서브시스템(915)은 칩셋(905)에 통신 가능하게 연결된 독립형 디바이스일 수 있다.
본 명세서에서 설명된 그래픽 및/또는 비디오 처리 기술은 다양한 하드웨어 아키텍처로 구현될 수 있다. 예를 들어, 그래픽 및/또는 비디오 기능성은 칩셋에 통합될 수 있다. 대안적으로, 개별 그래픽 및/또는 비디오 프로세서가 사용될 수 있다. 또 다른 구현으로, 그래픽 및/또는 비디오 기능은, 멀티 코어 프로세서를 포함하는 범용 프로세서에 의해 제공될 수 있다. 추가적인 실시예에서, 기능은 소비자 가전 디바이스에서 구현될 수 있다.
라디오(918)는 다양한 적합한 무선 통신 기술을 이용하여 신호를 전송 및 수신할 수 있는 하나 이상의 라디오를 포함할 수 있다. 이러한 기술은 하나 이상의 무선 네트워크를 통한 통신을 포함할 수 있다. 예시적인 무선 네트워크는 WLAN(wireless local area network), WPAN(wireless personal area network), WMAN(wireless metropolitan area network), 셀룰러 네트워크 및 위성 네트워크를 포함(허나, 이에 제한되지는 않음)한다. 이러한 네트워크를 통한 통신에서, 라디오(918)는 임의의 버전에서 하나 이상의 적용 가능한 표준에 따라 동작할 수 있다.
다양한 구현에서, 디스플레이(920)는 임의의 텔레비전 유형 모니터 또는 디스플레이를 포함할 수 있다. 디스플레이(920)는, 예를 들어, 컴퓨터 디스플레이 스크린, 터치 스크린 디스플레이, 비디오 모니터, 텔레비전형 디바이스 및/또는 텔레비전을 포함할 수 있다. 디스플레이(920)는 디지털 및/또는 아날로그일 수 있다. 다양한 구현에서, 디스플레이(920)는 홀로그램 디스플레이일 수 있다. 또한, 디스플레이(920)는 시각적 투영을 수신할 수 있는 투명 표면일 수 있다. 이러한 투영은 다양한 형태의 정보, 이미지 및/또는 객체를 전달할 수 있다. 예를 들어, 이러한 투영은 모바일 증강 현실(MAR) 애플리케이션에 대한 시각적 오버레이(overlay)일 수 있다. 하나 이상의 소프트웨어 애플리케이션(916)의 제어 하에, 플랫폼(902)은 사용자 인터페이스(922)를 디스플레이(920)에 표시할 수 있다.
다양한 구현에서, 컨텐츠 서비스 디바이스(들)(930)는 임의의 국내, 국제 및/또는 독립 서비스에 의해 호스팅될 수 있고, 따라서 예를 들어 인터넷을 통해 플랫폼(902)에 액세스할 수 있다. 컨텐츠 서비스 디바이스(들)(930)는 플랫폼(902)에 및/또는 디스플레이(920)에 연결될 수 있다. 플랫폼(902) 및/또는 컨텐츠 서비스 디바이스(들)(930)는 네트워크(960)에 연결되어 네트워크(960)로 및 네트워크(960)로부터 미디어 정보를 통신(예컨대, 전송 및/또는 수신)할 수 있다. 컨텐츠 전달 디바이스(들)(940) 또한 플랫폼(902)에 및/또는 디스플레이(920)에 연결될 수 있다.
이미지 센서(919)는 장면에 기초하여 이미지 데이터를 제공할 수 있는 임의의 적합한 이미지 센서를 포함할 수 있다. 예를 들어, 이미지 센서(919)는 반도체 CCD(charge coupled device) 기반 센서, CMOS(complementary metal-oxide-semiconductor) 기반 센서, NMOS(N-type metal-oxide-semiconductor) 기반 센서 등을 포함할 수 있다. 예를 들어, 이미지 센서(919)는 장면의 정보를 검출하여 이미지 데이터를 생성할 수 있는 임의의 디바이스를 포함할 수 있다.
다양한 구현에서, 컨텐츠 서비스 디바이스(들)(930)는 케이블 텔레비전 박스, 개인용 컴퓨터, 네트워크, 전화, 인터넷 가능 디바이스 또는 디지털 정보 및/또는 컨텐츠를 전달 가능한 기기 및 네트워크(960)를 통하여 또는 직접, 컨텐츠 제공자와 플랫폼(902) 및/또는 디스플레이(920) 사이에서 컨텐츠를 단방향으로 또는 양방향으로 통신할 수 있는 임의의 다른 유사한 디바이스를 포함할 수 있다. 컨텐츠는 네트워크(960)를 통해 시스템(900) 내 구성요소 중 어느 하나로 또는 어느 하나로부터, 단방향으로 및/또는 양방향으로 통신될 수 있다는 것을 이해할 것이다. 컨텐츠의 예시는, 예를 들어 비디오, 음악, 의료 및 게임 정보 등을 포함하는 임의의 미디어 정보를 포함할 수 있다.
컨텐츠 서비스 디바이스(들)(930)는 미디어 정보, 디지털 정보 및/또는 다른 컨텐츠를 포함하는 케이블 텔레비전 프로그래밍과 같은 컨텐츠를 수신할 수 있다. 컨텐츠 제공자의 예시는 임의의 케이블 또는 위성 텔레비전, 또는 라디오 또는 인터넷 컨텐츠 제공자를 포함할 수 있다. 제공된 예시는 어떤 식으로든 본 개시에 따른 구현을 제한하는 것을 의미하지 않는다.
다양한 구현에서, 플랫폼(902)은 하나 이상의 탐색 피처를 갖는 탐색 컨트롤러(950)로부터 제어 신호를 수신할 수 있다. 탐색 컨트롤러(950)의 탐색 피처는, 예를 들어 사용자 인터페이스(922)와 상호작용하는 데 사용될 수 있다. 다양한 실시예에서, 탐색 컨트롤러(950)는 사용자가 공간적(예컨대, 연속적이고 다차원의) 데이터를 컴퓨터에 입력할 수 있도록 하는 컴퓨터 하드웨어 구성요소(구체적으로, HID(human interface device))일 수 있는 포인팅 디바이스일 수 있다. 그래픽 사용자 인터페이스(GUI)와 같은 많은 시스템 및 텔레비전과 모니터는, 사용자가 물리적 제스처를 이용하여 컴퓨터 또는 텔레비전에 데이터를 제어하고 제공할 수 있게 한다.
탐색 컨트롤러(950)의 탐색 피처의 움직임은, 포인터, 커서, 포커스 링 또는 디스플레이에 표시되는 다른 시각적 표시자에 의해 디스플레이(예컨대, 디스플레이(920))에 복제될 수 있다. 예를 들어, 소프트웨어 애플리케이션(916)의 제어 하에, 탐색 컨트롤러(950)에 위치한 탐색 피처는, 예를 들어 사용자 인터페이스(922)에 표시되는 가상 탐색 피처에 매핑될 수 있다. 다양한 실시예에서, 탐색 컨트롤러(950)는 분리된 구성요소가 아니고 플랫폼(902) 및/또는 디스플레이(920)에 통합될 수 있다. 그러나, 본 개시는 본 명세서에 도시 또는 설명된 요소 또는 맥락으로 제한되지 않는다.
다양한 구현에서, 드라이버(미도시)는, 예를 들어, 활성화되는 경우 최초 부팅 후 버튼의 터치로 사용자가 텔레비전과 같은 플랫폼(902)을 즉시 켜고 끌 수 있게 하는 기술을 포함할 수 있다. 프로그램 로직은, 플랫폼이 "꺼진" 경우에도 플랫폼(902)이 미디어 어댑터 또는 다른 컨텐츠 서비스 디바이스(들)(930) 또는 컨텐츠 전달 디바이스(들)(940)에 컨텐츠를 스트리밍하는 것을 허용할 수 있다. 추가적으로, 칩셋(905)은, 예를 들어 5.1 서라운드 사운드 오디오 및/또는 HD 7.1 서라운드 사운드 오디오를 위한 하드웨어 및/또는 소프트웨어 지원을 포함할 수 있다. 드라이버는 통합된 그래픽 플랫폼을 위한 그래픽 드라이버를 포함할 수 있다. 다양한 실시예에서, 그래픽 드라이버는 PCI(peripheral component interconnect) Express 그래픽 카드를 포함할 수 있다.
다양한 구현에서, 시스템(900)에 도시된 하나 이상의 구성요소는 통합될 수 있다. 예를 들어, 플랫폼(902)과 컨텐츠 서비스 디바이스(들)(930)가 통합될 수 있거나 또는 플랫폼(902)과 컨텐츠 전달 디바이스(들)(940)가 통합될 수 있거나 또는, 예를 들어, 플랫폼(902), 컨텐츠 서비스 디바이스(들)(930) 및 컨텐츠 전달 디바이스(들)(940)가 통합될 수 있다. 다양한 실시예에서, 플랫폼(902)과 디스플레이(920)가 통합된 유닛일 수 있다. 예를 들어, 디스플레이(920)와 컨텐츠 서비스 디바이스(들)(930)가 통합될 수 있거나 또는 디스플레이(920)와 컨텐츠 전달 디바이스(들)(940)가 통합될 수 있다. 이러한 예시는 본 개시를 제한하려는 것이 아니다.
다양한 실시예에서, 시스템(900)은 무선 시스템, 유선 시스템 또는 이 둘의 조합으로 구현될 수 있다. 무선 시스템으로 구현되면, 시스템(900)은, 하나 이상의 안테나, 송신기, 수신기, 송수신기(transceiver), 증폭기, 필터, 제어 로직 등과 같이, 무선 공유 매체를 통해 통신하기에 적합한 구성요소 및 인터페이스를 포함할 수 있다. 무선 공유 매체의 예시는 RF 스펙트럼 등과 같은 무선 스펙트럼의 부분을 포함할 수 있다. 유선 시스템으로 구현되면, 시스템(900)은, 입/출력(I/O) 어댑터, I/O 어댑터를 대응하는 유선 통신 매체와 연결하는 물리적 커넥터, 네트워크 인터페이스 카드(NIC), 디스크 컨트롤러, 비디오 컨트롤러, 오디오 컨트롤러 등과 같이, 유선 통신 매체를 통해 통신하기에 적합한 구성요소 및 인터페이스를 포함할 수 있다. 유선 통신의 예시는 와이어, 케이블, 금속 리드, PCB(printed circuit board), 백플레인(backplane), 스위치 패브릭(switch fabric), 반도체 재료, 연선(twisted-pair wire), 동축 케이블, 광섬유 등을 포함할 수 있다.
플랫폼(902)은 하나 이상의 로직 또는 물리 채널을 설정하여 정보를 통신할 수 있다. 정보는 미디어 정보와 제어 정보를 포함할 수 있다. 미디어 정보는 사용자를 위한 컨텐츠를 나타내는 임의의 데이터를 지칭할 수 있다. 컨텐츠의 예시는, 예를 들어, 음성 대화, 화상 회의, 비디오 스트리밍, 전자 메일("이메일") 메시지, 음성 메일 메시지, 영숫자(alphanumeric) 기호, 그래픽, 이미지, 비디오, 텍스트 등으로부터의 데이터를 포함할 수 있다. 음성 대화로부터의 데이터는, 예를 들어, 음성 정보, 묵음 기간, 배경 소음, 안락 소음, 톤 등일 수 있다. 제어 정보는 자동화 시스템을 위한 명령, 명령어 또는 제어 단어를 나타내는 임의의 데이터를 지칭할 수 있다. 예를 들어, 제어 정보는 시스템을 통해 미디어 정보를 라우팅하거나 또는 사전 결정된 방식으로 미디어 정보를 처리하도록 노드에 지시하는 데 사용될 수 있다. 그러나, 실시예는 도 9에 나타나거나 설명된 요소 또는 맥락으로 제한되지 않는다.
앞서 설명된 바와 같이, 시스템(900)은 다양한 물리적 스타일 또는 폼 팩터로 구현될 수 있다. 도 10은 본 개시의 적어도 일부 구현에 따라 구성된 예시적인 작은 폼 팩터 디바이스(1000)를 도시한다. 일부 예시에서, 시스템(900)은 디바이스(1000)를 통해 구현될 수 있다. 다른 예시에서, 본 명세서에서 논의된 다른 시스템, 구성요소 또는 모듈, 또는 이들의 부분은 디바이스(1000)를 통해 구현될 수 있다. 다양한 실시예에서, 예를 들어, 디바이스(1000)는 무선 기능을 갖는 모바일 컴퓨팅 디바이스로 구현될 수 있다. 모바일 컴퓨팅 디바이스는 처리 시스템 및, 예를 들어, 하나 이상의 배터리와 같은 모바일 전원 또는 공급 장치를 갖는 임의의 디바이스를 지칭할 수 있다.
모바일 컴퓨팅 디바이스의 예시는 개인용 컴퓨터(PC), 랩톱 컴퓨터, 울트라 랩톱 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, PDA(personal digital assistant), 셀룰러 전화, 셀룰러 전화/PDA 결합, 스마트 디바이스(예컨대, 스마트폰, 스마트 태블릿 또는 스마트 모바일 텔레비전), MID(mobile internet device), 메시징 디바이스, 데이터 통신 디바이스, 카메라(예컨대, 포인트 앤 슛 카메라, 수퍼 줌 카메라, DSLR 카메라) 등을 포함할 수 있다.
모바일 컴퓨팅 디바이스의 예시는 또한, 자동차 또는 로봇에 의해서, 손목 컴퓨터, 손가락 컴퓨터, 반지 컴퓨터, 안경 컴퓨터, 벨트 클립(belt-clip) 컴퓨터, 암밴드(arm-band) 컴퓨터, 신발 컴퓨터, 의류 컴퓨터 및 다른 웨어러블 컴퓨터와 같이, 인체가 착용함으로써 구현되도록 구성된 컴퓨터를 포함할 수 있다. 다양한 실시예에서, 예를 들어, 모바일 컴퓨팅 디바이스는 음성 통신 및/또는 데이터 통신뿐만 아니라 컴퓨터 애플리케이션을 실행할 수 있는 스마트폰으로 구현될 수 있다. 일부 실시예는 예로서 스마트폰으로 구현된 모바일 컴퓨팅 디바이스로 설명될 수 있지만, 다른 실시예는 다른 무선 모바일 컴퓨팅 디바이스를 사용하여 구현될 수 있다는 것을 이해할 수 있다. 다른 실시예는 이러한 맥락에서 제한되지 않는다.
도 10에 도시된 바와 같이, 디바이스(1000)는 전면(1001)과 후면(1002)을 갖는 하우징을 포함할 수 있다. 디바이스(1000)는 디스플레이(1004), 입/출력(I/O) 디바이스(1006), 컬러 카메라(1021), 컬러 카메라(1022) 및 통합 안테나(1008)를 포함한다. 일부 실시예에서, 컬러 카메라(1021)와 컬러 카메라(1022)는 본 명세서에서 논의된 평면 이미지를 획득한다. 일부 실시예에서, 디바이스(1000)는 컬러 카메라(1021 및 1022)를 포함하지 않고, 다른 디바이스로부터 입력 이미지 데이터(예컨대, 본 명세서에서 논의된 임의의 입력 이미지 데이터)를 획득한다. 디바이스(1000)는 또한 탐색 피처(1012)를 포함할 수 있다. I/O 디바이스(1006)는 모바일 컴퓨팅 디바이스로 정보를 입력하기 위한 임의의 적합한 I/O 디바이스를 포함할 수 있다. I/O 디바이스(1006)에 대한 예시는 영숫자 키보드, 숫자 키패드, 터치 패드, 입력 키, 버튼, 스위치, 마이크로폰, 스피커, 음성 인식 디바이스 및 소프트웨어 등을 포함할 수 있다. 정보는 또한 마이크로폰(미도시)을 통해 디바이스(1000)에 입력될 수 있거나 또는 음성 인식 디바이스에 의해 디지털화될 수 있다. 도시된 바와 같이, 디바이스(1000)는 디바이스(1000)의 후면(1002)(또는 다른 곳)에 통합된 컬러 카메라(1021, 1022)와 플래시(1010)를 포함할 수 있다. 다른 예시에서, 컬러 카메라(1021, 1022)와 플래시(1010)는 디바이스(1000)의 전면(1001)에 통합될 수 있거나, 또는 전면 및 후면 카메라 세트 모두가 제공될 수 있다. 컬러 카메라(1021, 1022) 및 플래시(1010)는, 예를 들어 디스플레이(1004)로 출력되거나 안테나(1008)를 통해 디바이스(1000)로부터 원격으로 통신되는 이미지 또는 스트리밍 비디오로 처리될 수 있는, IR 텍스처 보정으로 컬러 이미지를 생성하는 카메라 모듈의 구성요소일 수 있다.
다양한 실시예는 하드웨어 요소, 소프트웨어 요소 또는 둘 모두의 조합을 이용하여 구현될 수 있다. 하드웨어 요소의 예시는 프로세서, 마이크로프로세서, 회로, 회로 소자(예컨대, 트랜지스터, 저항, 커패시터, 인덕터 등), 집적 회로, ASIC(application specific integrated circuits), PLD(programmable logic devices), DSP(digital signal processor), FPGA(field programmable gate array), 로직 게이트, 레지스터, 반도체 디바이스, 칩, 마이크로칩, 칩셋 등을 포함할 수 있다. 소프트웨어의 예시는 소프트웨어 구성요소, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 머신 프로그램, 운영체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 방법, 절차, 소프트웨어 인터페이스, API(application program interface), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 단어, 값, 기호 또는 이들의 조합을 포함할 수 있다. 실시예가 하드웨어 요소 및/또는 소프트웨어 요소를 이용하여 구현되는지 여부는, 원하는 계산 레이트, 전력 수준, 열 내성, 처리 주기 예산, 입력 데이터 레이트, 출력 데이터 레이트, 메모리 리소스, 데이터 버스 속도 및 다른 설계 또는 성능 제약과 같은 임의의 수의 요인에 따라 달라질 수 있다.
적어도 하나의 실시예의 하나 이상의 양태는 프로세서 내 다양한 로직을 나타내는 머신 판독 가능 매체에 저장된 대표적인 명령어에 의해 구현될 수 있으며, 이는 머신에 의해 판독되는 경우 머신으로 하여금 로직을 조작하여 본 명세서에서 논의된 기술을 수행하도록 한다. IP 코어로 알려진 이러한 표현은 유형의(tangible) 머신 판독 가능 매체에 저장되고, 다양한 고객 또는 제조 시설에 공급되어 실제로 로직 또는 프로세서를 만드는 제조 머신에 로드될 수 있다.
본 명세서에서 설명된 특정 특징이 다양한 구현을 참조하여 설명되었지만, 이 설명은 제한적인 의미로 해석되는 것은 아니다. 따라서, 본 개시가 속하는 기술분야의 통상의 기술자에게 자명한 본 명세서에서 설명된 구현의 수정뿐만 아니라 다른 구현은, 본 개시의 사상 및 범위 내에 속한 것으로 간주된다.
하나 이상의 제 1 실시예에서, 몰입형 비디오 코딩을 위한 방법은, 몰입형 비디오를 나타내는 심도 아틀라스 픽처의 시퀀스, 텍스처 아틀라스 픽처의 시퀀스 및 점유 맵 아틀라스 픽처의 시퀀스 중 하나 이상을 수신하는 단계, 하나 이상의 심도 아틀라스 픽처, 텍스처 아틀라스 픽처 및 점유 맵 아틀라스 픽처의 시퀀스 중 하나 이상을 비디오 인코더로 코딩하여, 하나 이상의 시퀀스의 각각의 픽처에 각각 대응하는 복수의 출력 시간을 포함하는 코딩된 몰입형 비디오 데이터를 제공하는 단계(출력 시간의 서브세트 각각에 대하여, 코딩된 몰입형 비디오 데이터는 코딩된 심도 아틀라스 픽처, 코딩된 텍스처 아틀라스 픽처 및 코딩된 점유 맵 아틀라스 픽처 중 하나 이상에 대한 인트라 코딩된 픽처를 포함함) 및 코딩된 몰입형 비디오 데이터를 전송하는 단계를 포함한다.
하나 이상의 제 2 실시예에서, 제 1 실시예에 더하여, 출력 시간의 서브세트는, 출력 시간 내 간격을 두고 제공되는 몰입형 비디오에 액세스하기 위한 랜덤 액세스 포인트를 포함하고, 코딩된 심도 아틀라스 픽처, 코딩된 텍스처 아틀라스 픽처 및 코딩된 점유 맵 아틀라스 픽처 중 하나 이상에 대한 인트라 코딩된 픽처는, 코딩된 심도 아틀라스 픽처, 코딩된 텍스처 아틀라스 픽처 및 코딩된 점유 맵 아틀라스 픽처 각각에 대한 인트라 코딩된 픽처를 포함한다.
하나 이상의 제 3 실시예에서, 제 1 또는 제 2 실시예에 더하여, 출력 시간의 서브세트 각각은, 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처 중 하나 이상을 포함하는 출력 유닛에 대응한다.
하나 이상의 제 4 실시예에서, 제 1 내지 제 3 실시예 중 임의의 것에 더하여, 코딩된 몰입형 비디오 데이터는, 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처에 대응하는, 인트라 코딩된 추가적인 속성 아틀라스 픽처를 더 포함한다.
하나 이상의 제 5 실시예에서, 제 1 내지 제 4 실시예 중 임의의 것에 더하여, 코딩된 몰입형 비디오 데이터는, 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처에 대응하는 아틀라스 파라미터 목록을 더 포함한다.
하나 이상의 제 6 실시예에서, 몰입형 비디오 코딩을 위한 방법은, 몰입형 비디오를 나타내는 심도 아틀라스 픽처의 시퀀스, 텍스처 아틀라스 픽처의 시퀀스 및 점유 맵 아틀라스 픽처의 시퀀스 중 하나 이상의 픽처 각각에 각각 대응하는 복수의 출력시간을 포함하는 코딩된 몰입형 비디오 데이터를 수신하는 단계, 코딩된 몰입형 비디오 데이터를 디코딩하여 심도 아틀라스의 시퀀스, 텍스처 아틀라스 픽처의 시퀀스 및 점유 맵 아틀라스 픽처의 시퀀스를 생성하는 단계(출력 시간의 서브세트 각각에 대하여, 디코딩된 시퀀스는 코딩된 심도 아틀라스 픽처, 대응하는 코딩된 텍스처 아틀라스 픽처 및 대응하는 코딩된 점유 맵 아틀라스 픽처 각각에 대한 인트라 코딩된 픽처를 포함함) 및 디코딩된 시퀀스를 이용하여 뷰어를 위한 프리젠테이션을 준비하는 단계를 포함한다.
하나 이상의 제 7 실시예에서, 제 6 실시예에 더하여, 출력 시간의 서브세트는, 출력 시간 내 간격을 두고 제공되는 몰입형 비디오에 액세스하기 위한 랜덤 액세스 포인트를 포함하고, 방법은, 제 1 랜덤 액세스 포인트에 대한 코딩된 몰입형 비디오 데이터를 모니터링하는 단계를 더 포함하되, 디코딩하는 단계는 제 1 랜덤 액세스 포인트에 응답한다.
하나 이상의 제 8 실시예에서, 제 6 또는 제 7 실시예에 더하여, 출력 시간의 서브세트 각각은, 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처를 포함하는 출력 유닛에 대응한다.
하나 이상의 제 9 실시예에서, 제 6 내지 제 8 실시예 중 임의의 것에 더하여, 코딩된 몰입형 비디오 데이터는, 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처에 대응하는, 인트라 코딩된 추가적인 속성 픽처를 더 포함한다.
하나 이상의 제 10 실시예에서, 제 6 내지 제 9 실시예 중 임의의 것에 더하여, 코딩된 몰입형 비디오 데이터는, 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처에 대응하는 아틀라스 파라미터 목록을 더 포함한다.
하나 이상의 제 11 실시예에서, 몰입형 비디오 코딩을 위한 방법은, 몰입형 비디오에 대응하는 복수의 카메라에 대해, 복수의 카메라 파라미터를 수신하여 복수의 카메라의 내부 파라미터 및 외부 파라미터를 시그널링하는 단계(카메라 파라미터는 복수의 카메라 중 적어도 일부에 대한 하나 이상의 제 1 내부 파라미터가 없음), 복수의 카메라 파라미터를 이용하여, 복수의 카메라 파라미터 중에서 복수의 카메라 중 제 1 카메라에 대한 제 1 디코딩된 내부 파라미터를 디코딩하고, 제 1 디코딩된 내부 파라미터를 복수의 카메라 각각에 적용함으로써, 복수의 카메라 각각에 대한 디코딩된 내부 및 외부 카메라 파라미터를 결정하는 단계 및 디코딩된 내부 및 외부 카메라 파라미터를 이용하여 뷰어를 위한 프리젠테이션을 준비하는 단계를 포함한다.
하나 이상의 제 12 실시예에서, 제 11 실시예에 더하여, 카메라 파라미터는, 복수의 카메라 중 임의의 것에 대한 하나 이상의 방향 파라미터가 없고, 방법은, 상기 제 1 외부 파라미터가 없는 것에 기초하여, 제 1 방향 파라미터를 복수의 카메라 각각에 디폴트(default) 파라미터로서 적용하는 단계를 더 포함한다.
하나 이상의 제 13 실시예에서, 제 11 또는 제 12 실시예에 더하여, 제 1 디코딩된 내부 파라미터는, 투영 방법, 투영 평면 폭, 경도(longitudinal) 범위, 시야 또는 초점 거리 중 하나를 포함한다.
하나 이상의 제 14 실시예에서, 제 11 내지 제 13 실시예 중 임의의 것에 더하여, 방법은 복수의 카메라에 대하여, 글로벌 기준 좌표계 내 각 축에 대한 카메라의 변위를 나타내는 카메라 위치 입도(granularity) 값을 수신하는 단계(카메라 위치 입도 값은 몰입형 비디오에 대응하는 글로벌 기준 좌표계 내 카메라 위치의 시그널링 정밀도를 나타냄), 복수의 카메라 중 제 1 카메라에 대해 각 축에 대한 카메라 위치 유닛 값을 수신하는 단계(각 카메라 위치 유닛 값은, 카메라 위치 입도 값에 기초하여 글로벌 기준 좌표계 내 카메라의 위치를 나타냄), 카메라 위치 입도 값 및 카메라 위치 유닛 값에 기초하여, 글로벌 기준 시스템 내 제 1 카메라의 위치를 결정하는 단계를 더 포함한다.
하나 이상의 제 15 실시예에서, 제 11 내지 제 14 실시예 중 임의의 것에 더하여, 카메라 위치 입도 값은 고정 점(fixed point) 값이고, 글로벌 기준 시스템 내 제 1 카메라의 위치를 결정하는 단계는, 제 1 카메라에 대해 각 카메라 위치 입도 값에 각 카메라 위치 유닛 값을 곱하여 글로벌 기준 좌표계 내 제 1 카메라의 위치를 결정하는 단계를 포함한다.
하나 이상의 제 16 실시예에서, 제 11 내지 제 15 실시예 중 임의의 것에 더하여, 복수의 카메라 파라미터는, 복수의 카메라에 대한 내부 카메라 파라미터 등가 플래그를 포함하되, 제 1 디코딩된 내부 파라미터를 복수의 카메라 각각에 적용하는 단계는, 내부 카메라 파라미터 등가 플래그에 응답한다.
하나 이상의 제 17 실시예에서, 제 11 내지 제 16 실시예 중 임의의 것에 더하여, 방법은 제 1 카메라에 대한 심도 양자화 파라미터 및 복수의 카메라에 대한 심도 양자화 파라미터 등가 플래그를 수신하는 단계와, 심도 양자화 파라미터 등가 플래그에 응답하여 심도 양자화 파라미터를 복수의 카메라 각각에 할당하는 단계를 더 포함한다.
하나 이상의 제 18 실시예에서, 몰입형 비디오 코딩을 위한 방법은, 몰입형 비디오에 대응하는 복수의 아틀라스에 대해, 복수의 아틀라스 중 제 1 아틀라스의 제 1 패치와 관련된 카메라 인덱스 및 적어도 아틀라스의 개수 - 1 파라미터의 코딩된 표현을 포함하는 코딩된 아틀라스 파라미터를 포함하는 비트스트림 부분을 수신하는 단계, 아틀라스의 개수 - 1 파라미터의 코딩된 표현을 디코딩하는 단계, 정수 비트 디코딩(정수 비트 디코딩은 카메라의 개수 - 1 파라미터에 기초한 정수 길이를 포함함)을 사용하여 복수의 아틀라스 중 제 1 아틀라스의 제 1 패치와 관련된 카메라 인덱스의 코딩된 표현을 디코딩하는 단계 및 복수의 아틀라스, 디코딩된 아틀라스의 개수 - 1 파라미터 및 복수의 아틀라스 중 제 1 아틀라스의 제 1 패치와 관련된 카메라 인덱스에 기초하여, 적어도 하나의 뷰 픽처를 생성하는 단계를 포함한다.
하나 이상의 제 19 실시예에서, 제 18 실시예에 더하여, 코딩된 표현은, 제 1 패치에 대한 패치 크기를 더 포함하고, 방법은, 정수 비트 디코딩을 사용하여 제 1 패치에 대한 패치 사이즈의 코딩된 표현을 디코딩하는 단계를 더 포함하되, 정수 비트 코딩은, 카메라의 개수 - 1 파라미터에 기초한다.
하나 이상의 제 20 실시예에서, 제 18 또는 제 19 실시예에 더하여, 카메라의 개수 - 1 파라미터에 기초한 정수 비트 디코딩은, log2(상기 카메라의 개수 - 1 파라미터)와 동일한 정수 크기에서 패치 크기의 정수 비트 디코딩을 포함한다.
하나 이상의 제 21 실시예에서, 디바이스 또는 시스템은 메모리와 전술한 실시예 중 어느 하나에 따른 방법을 수행하는 프로세서를 포함한다.
하나 이상의 제 22 실시예에서, 적어도 하나의 머신 판독 가능 매체는 컴퓨팅 디바이스에서 실행되면 컴퓨팅 디바이스로 하여금 전술한 실시예 중 어느 하나에 따른 방법을 수행하게 하는 복수의 명령어를 포함한다.
하나 이상의 제 23 실시예에서, 장치는 전술한 실시예 중 어느 하나에 따른 방법을 수행하기 위한 수단을 포함한다.
실시예는 설명된 실시예로 제한되지 않고, 첨부된 청구범위의 범위를 벗어나지 않고 수정 및 변경으로 실시될 수 있음을 인식할 것이다. 예를 들어, 위의 실시예는 특징의 특정 조합을 포함할 수 있다. 그러나, 위의 실시예는 이와 관련하여 제한되지 않으며, 다양한 구현에서, 위의 실시예는 그러한 특징의 서브세트만을 수행하는 것, 그러한 특징의 다른 순서로 수행하는 것, 그러한 특징의 다른 조합으로 수행하는 것 및/또는 명시적으로 나열된 그러한 특징에 추가적인 특징을 수행하는 것을 포함할 수 있다. 실시예의 범위는, 따라서, 첨부된 청구범위를 참조하여, 이러한 청구범위가 부여되는 균등물의 범위 전체와 함께, 결정되어야 한다.

Claims (23)

  1. 몰입형 비디오 코딩을 위한 방법으로서,
    몰입형 비디오를 나타내는 심도 아틀라스(atlas) 픽처의 시퀀스, 텍스처 아틀라스 픽처의 시퀀스 및 점유(occupancy) 맵 아틀라스 픽처의 시퀀스 중 하나 이상을 수신하는 단계,
    상기 심도 아틀라스 픽처, 텍스처 아틀라스 픽처 및 점유 맵 아틀라스 픽처의 시퀀스 중 상기 하나 이상을 비디오 인코더로 코딩하여, 상기 하나 이상의 시퀀스의 각각의 픽처에 각각 대응하는 복수의 출력 시간을 포함하는 코딩된 몰입형 비디오 데이터를 제공하는 단계 - 상기 출력 시간의 서브세트 각각에 대하여, 상기 코딩된 몰입형 비디오 데이터는 코딩된 심도 아틀라스 픽처, 코딩된 텍스처 아틀라스 픽처 및 코딩된 점유 맵 아틀라스 픽처 중 하나 이상에 대한 인트라 코딩된 픽처를 포함함 -, 및
    상기 코딩된 몰입형 비디오 데이터를 전송하는 단계를 포함하는,
    방법.
  2. 제 1 항에 있어서,
    상기 출력 시간의 서브세트는, 상기 출력 시간 내 간격을 두고 제공되는 상기 몰입형 비디오에 액세스하기 위한 랜덤 액세스 포인트를 포함하고,
    상기 코딩된 심도 아틀라스 픽처, 상기 코딩된 텍스처 아틀라스 픽처 및 상기 코딩된 점유 맵 아틀라스 픽처 중 하나 이상에 대한 상기 인트라 코딩된 픽처는, 상기 코딩된 심도 아틀라스 픽처, 상기 코딩된 텍스처 아틀라스 픽처 및 상기 코딩된 점유 맵 아틀라스 픽처 각각에 대한 상기 인트라 코딩된 픽처를 포함하는,
    방법.
  3. 제 1 항에 있어서,
    상기 출력 시간의 상기 서브세트 각각은, 상기 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처 중 하나 이상을 포함하는 출력 유닛에 대응하는,
    방법.
  4. 제 1 항에 있어서,
    상기 코딩된 몰입형 비디오 데이터는, 상기 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처에 대응하는, 인트라 코딩된 추가적인 속성 아틀라스 픽처를 더 포함하는,
    방법.
  5. 제 1 항에 있어서,
    상기 코딩된 몰입형 비디오 데이터는, 상기 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처에 대응하는 아틀라스 파라미터 목록을 더 포함하는,
    방법.
  6. 몰입형 비디오 코딩을 위한 방법으로서,
    몰입형 비디오를 나타내는 심도 아틀라스 픽처의 시퀀스, 텍스처 아틀라스 픽처의 시퀀스 및 점유 맵 아틀라스 픽처의 시퀀스 중 하나 이상의 픽처 각각에 각각 대응하는 복수의 출력시간을 포함하는 코딩된 몰입형 비디오 데이터를 수신하는 단계,
    상기 코딩된 몰입형 비디오 데이터를 디코딩하여 상기 심도 아틀라스의 시퀀스, 상기 텍스처 아틀라스 픽처의 시퀀스 및 상기 점유 맵 아틀라스 픽처의 시퀀스를 생성하는 단계 - 상기 출력 시간의 서브세트 각각에 대하여, 상기 디코딩된 시퀀스는 코딩된 심도 아틀라스 픽처, 대응하는 코딩된 텍스처 아틀라스 픽처 및 대응하는 코딩된 점유 맵 아틀라스 픽처 각각에 대한 인트라 코딩된 픽처를 포함함 -, 및
    상기 디코딩된 시퀀스를 이용하여 뷰어(viewer)를 위한 프리젠테이션을 준비하는 단계를 포함하는,
    방법.
  7. 제 6 항에 있어서,
    상기 출력 시간의 상기 서브세트는, 상기 출력 시간 내에서 간격을 두고 제공되는 상기 몰입형 비디오에 액세스하기 위한 랜덤 액세스 포인트를 포함하고,
    상기 방법은, 제 1 랜덤 액세스 포인트에 대한 상기 코딩된 몰입형 비디오 데이터를 모니터링하는 단계를 더 포함하되,
    상기 디코딩하는 단계는 제 1 랜덤 액세스 포인트에 응답하는 것인,
    방법.
  8. 제 6 항에 있어서,
    상기 출력 시간의 상기 서브세트 각각은, 상기 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처를 포함하는 출력 유닛에 대응하는,
    방법.
  9. 제 6 항에 있어서,
    상기 코딩된 몰입형 비디오 데이터는, 상기 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처에 대응하는, 인트라 코딩된 추가적인 속성 픽처를 더 포함하는,
    방법.
  10. 제 6 항에 있어서,
    상기 코딩된 몰입형 비디오 데이터는, 상기 인트라 코딩된 심도 아틀라스 픽처, 인트라 코딩된 텍스처 아틀라스 픽처 및 인트라 코딩된 점유 맵 아틀라스 픽처에 대응하는 아틀라스 파라미터 목록을 더 포함하는,
    방법.
  11. 몰입형 비디오 코딩을 위한 방법으로서,
    몰입형 비디오에 대응하는 복수의 카메라에 대해, 복수의 카메라 파라미터를 수신하여 상기 복수의 카메라의 내부 (intrinsic) 파라미터 및 외부 (extrinsic) 파라미터를 시그널링하는 단계 - 상기 카메라 파라미터는 상기 복수의 카메라 중 적어도 일부에 대한 하나 이상의 제 1 내부 파라미터가 없음 -,
    상기 복수의 카메라 파라미터를 이용하여, 상기 복수의 카메라 파라미터 중에서 상기 복수의 카메라 중 제 1 카메라에 대한 제 1 디코딩된 내부 파라미터를 디코딩하고, 상기 제 1 디코딩된 내부 파라미터를 상기 복수의 카메라 각각에 적용함으로써, 상기 복수의 카메라 각각에 대한 디코딩된 내부 및 외부 카메라 파라미터를 결정하는 단계, 및
    상기 디코딩된 내부 및 외부 카메라 파라미터를 이용하여 뷰어를 위한 프리젠테이션을 준비하는 단계를 포함하는,
    방법.
  12. 제 11 항에 있어서,
    상기 카메라 파라미터는, 상기 복수의 카메라 중 임의의 것에 대한 하나 이상의 방향 파라미터가 없고,
    상기 방법은, 제 1 외부 파라미터가 없는 것에 기초하여, 제 1 방향 파라미터를 상기 복수의 카메라 각각에 디폴트(default) 파라미터로서 적용하는 단계를 더 포함하는,
    방법.
  13. 제 11 항에 있어서,
    상기 제 1 디코딩된 내부 파라미터는, 투영 방법, 투영 평면 폭, 경도(longitudinal) 범위, 시야 또는 초점 거리 중 하나를 포함하는,
    방법.
  14. 제 11 항에 있어서,
    상기 복수의 카메라에 대하여, 글로벌 기준 좌표계 내 각 축에 대한 상기 카메라의 변위를 나타내는 카메라 위치 입도(granularity) 값을 수신하는 단계 - 상기 카메라 위치 입도 값은 상기 몰입형 비디오에 대응하는 상기 글로벌 기준 좌표계 내 카메라 위치의 시그널링 정밀도를 나타냄 -,
    상기 복수의 카메라 중 제 1 카메라에 대해 각 축에 대한 카메라 위치 유닛 값을 수신하는 단계 - 각 카메라 위치 유닛 값은, 상기 카메라 위치 입도 값에 기초하여 상기 글로벌 기준 좌표계 내 상기 카메라의 위치를 나타냄 -, 및
    상기 카메라 위치 입도 값 및 상기 카메라 위치 유닛 값에 기초하여, 상기 글로벌 기준 시스템 내 상기 제 1 카메라의 위치를 결정하는 단계를 더 포함하는,
    방법.
  15. 제 14 항에 있어서,
    상기 카메라 위치 입도 값은 고정 점(fixed point) 값이고,
    상기 글로벌 기준 시스템 내 상기 제 1 카메라의 상기 위치를 결정하는 단계는, 상기 제 1 카메라에 대해 각 카메라 위치 입도 값에 각 카메라 위치 유닛 값을 곱하여 상기 글로벌 기준 좌표계 내 상기 제 1 카메라의 상기 위치를 결정하는 단계를 포함하는,
    방법.
  16. 제 11 항에 있어서,
    상기 복수의 카메라 파라미터는, 상기 복수의 카메라에 대한 내부 카메라 파라미터 등가 플래그(equal flag)를 포함하되,
    상기 제 1 디코딩된 내부 파라미터를 상기 복수의 카메라 각각에 적용하는 단계는, 상기 내부 카메라 파라미터 등가 플래그에 응답하는 것인,
    방법.
  17. 제 16 항에 있어서,
    상기 제 1 카메라에 대한 심도 양자화 파라미터 및 상기 복수의 카메라에 대한 심도 양자화 파라미터 등가 플래그를 수신하는 단계와,
    상기 심도 양자화 파라미터 등가 플래그에 응답하여 상기 심도 양자화 파라미터를 상기 복수의 카메라 각각에 할당하는 단계를 더 포함하는,
    방법.
  18. 몰입형 비디오 코딩을 위한 방법으로서,
    몰입형 비디오에 대응하는 복수의 아틀라스에 대해, 상기 복수의 아틀라스 중 제 1 아틀라스의 제 1 패치와 관련된 카메라 인덱스 및 적어도 아틀라스의 개수 - 1 파라미터 (a number of atlases minus one parameter)의 코딩된 표현을 포함하는 코딩된 아틀라스 파라미터를 포함하는 비트스트림 부분을 수신하는 단계,
    상기 아틀라스의 개수 - 1 파라미터의 상기 코딩된 표현을 디코딩하는 단계,
    정수 비트 디코딩 - 상기 정수 비트 디코딩은 카메라의 개수 - 1 파라미터(a number of cameras minus one parameter)에 기초한 정수 길이를 포함함 - 을 사용하여 상기 복수의 아틀라스 중 상기 제 1 아틀라스의 상기 제 1 패치와 관련된 상기 카메라 인덱스의 상기 코딩된 표현을 디코딩하는 단계, 및
    상기 복수의 아틀라스, 상기 디코딩된 아틀라스의 개수 - 1 파라미터 및 상기 복수의 아틀라스 중 상기 제 1 아틀라스의 상기 제 1 패치와 관련된 상기 카메라 인덱스에 기초하여, 적어도 하나의 뷰 픽처를 생성하는 단계를 포함하는
    방법.
  19. 제 18 항에 있어서,
    상기 코딩된 표현은, 상기 제 1 패치에 대한 패치 크기를 더 포함하고,
    상기 방법은, 정수 비트 디코딩을 사용하여 상기 제 1 패치에 대한 상기 패치 사이즈의 상기 코딩된 표현을 디코딩하는 단계를 더 포함하되,
    상기 정수 비트 코딩은, 상기 카메라의 개수 - 1 파라미터에 기초하는,
    방법.
  20. 제 18 항에 있어서,
    상기 카메라의 개수 - 1 파라미터에 기초한 상기 정수 비트 디코딩은, log2(상기 카메라의 개수 - 1 파라미터)(log base 2 of the number of cameras minus one parameter)와 동일한 정수 크기에서의 상기 패치 크기의 정수 비트 디코딩을 포함하는,
    방법.
  21. 디바이스로서,
    메모리와,
    상기 메모리에 연결된 하나 이상의 프로세서를 포함하되,
    상기 프로세서는 제 1 항 내지 제 20 항 중 어느 한 항의 방법을 수행하는,
    디바이스.
  22. 복수의 명령어를 포함하는 적어도 하나의 머신 판독 가능 매체로서,
    상기 복수의 명령어는, 컴퓨팅 디바이스에서 실행되면, 상기 컴퓨팅 디바이스로 하여금 제 1 항 내지 제 20 항 중 어느 한 항의 방법을 수행하게 하는,
    머신 판독 가능 매체.
  23. 시스템으로서,
    제 1 항 내지 제 20 항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는,
    시스템.
KR1020217032924A 2019-05-14 2020-05-14 3DoF+/MIV 및 V-PCC에 대한 몰입형 비디오 코딩 기술 KR20210155386A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962847779P 2019-05-14 2019-05-14
US62/847,779 2019-05-14
PCT/US2020/032953 WO2020232281A1 (en) 2019-05-14 2020-05-14 IMMERSIVE VIDEO CODING TECHNIQUES FOR THREE DEGREE OF FREEDOM PLUS/METADATA FOR IMMERSIVE VIDEO (3DoF+/MIV) AND VIDEO-POINT CLOUD CODING (V-PCC)

Publications (1)

Publication Number Publication Date
KR20210155386A true KR20210155386A (ko) 2021-12-22

Family

ID=73289301

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217032924A KR20210155386A (ko) 2019-05-14 2020-05-14 3DoF+/MIV 및 V-PCC에 대한 몰입형 비디오 코딩 기술

Country Status (7)

Country Link
US (1) US20220159298A1 (ko)
EP (1) EP3970361A4 (ko)
JP (1) JP2022532302A (ko)
KR (1) KR20210155386A (ko)
CN (1) CN113728625A (ko)
BR (1) BR112021020654A2 (ko)
WO (1) WO2020232281A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023219278A1 (ko) * 2022-05-09 2023-11-16 현대자동차주식회사 Mpeg 몰입형 비디오를 위한 카메라 파라미터 그룹핑 및 업데이트를 위한 방법
WO2024014826A1 (ko) * 2022-07-11 2024-01-18 엘지전자 주식회사 포인트 클라우드 데이터의 전송 장치와 이 전송 장치에서 수행되는 방법 및, 포인트 클라우드 데이터의 수신 장치와 이 수신 장치에서 수행되는 방법

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11013734B2 (en) 2018-05-16 2021-05-25 Forma Therapeutics, Inc. Treating patients harboring an isocitrate dehydrogenase-1 (IDH-1) mutation
EP4078530A4 (en) 2020-01-06 2023-04-05 Huawei Technologies Co., Ltd. PARAMETER REPORTING IN SPOT CLOUD CODING
US11838485B2 (en) * 2020-04-16 2023-12-05 Electronics And Telecommunications Research Institute Method for processing immersive video and method for producing immersive video
FR3109685A1 (fr) * 2020-04-22 2021-10-29 Orange Procédés et dispositifs de codage et de décodage d'une séquence vidéo multi-vues
CN117121059A (zh) * 2021-04-07 2023-11-24 交互数字Ce专利控股有限公司 支持光效果的体积视频
CN115412717B (zh) * 2021-05-26 2024-05-17 荣耀终端有限公司 一种点云方位角信息的预测编解码方法及装置
US11979606B2 (en) 2021-06-04 2024-05-07 Tencent America LLC Conditional recolor for video based point cloud coding
EP4199362A1 (en) * 2021-12-20 2023-06-21 Beijing Xiaomi Mobile Software Co., Ltd. Method and apparatus of encoding/decoding sensed point cloud geometry data
WO2024006436A1 (en) * 2022-07-01 2024-01-04 Innopeak Technology, Inc. Bitstream encoding and decoding for geometry point cloud coding
WO2024077637A1 (zh) * 2022-10-14 2024-04-18 浙江大学 一种编解码方法、装置、编码器、解码器及存储介质
CN116704472B (zh) * 2023-05-15 2024-04-02 小米汽车科技有限公司 图像处理方法、装置、设备、介质及程序产品

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9813692B2 (en) * 2015-09-25 2017-11-07 Intel Corporation Online compensation of thermal distortions in a stereo depth camera
WO2017082078A1 (ja) * 2015-11-11 2017-05-18 ソニー株式会社 画像処理装置および画像処理方法
US9721393B1 (en) * 2016-04-29 2017-08-01 Immersive Enterprises, LLC Method for processing and delivering virtual reality content to a user
EP3349182A1 (en) * 2017-01-13 2018-07-18 Thomson Licensing Method, apparatus and stream for immersive video format
KR101760639B1 (ko) * 2017-03-31 2017-07-24 한국과학기술원 입력영상의 주변뷰 영상을 생성하는 몰입형 디스플레이 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023219278A1 (ko) * 2022-05-09 2023-11-16 현대자동차주식회사 Mpeg 몰입형 비디오를 위한 카메라 파라미터 그룹핑 및 업데이트를 위한 방법
WO2024014826A1 (ko) * 2022-07-11 2024-01-18 엘지전자 주식회사 포인트 클라우드 데이터의 전송 장치와 이 전송 장치에서 수행되는 방법 및, 포인트 클라우드 데이터의 수신 장치와 이 수신 장치에서 수행되는 방법

Also Published As

Publication number Publication date
CN113728625A (zh) 2021-11-30
EP3970361A4 (en) 2023-03-22
EP3970361A1 (en) 2022-03-23
JP2022532302A (ja) 2022-07-14
BR112021020654A2 (pt) 2022-01-25
WO2020232281A1 (en) 2020-11-19
US20220159298A1 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
US20220159298A1 (en) IMMERSIVE VIDEO CODING TECHNIQUES FOR THREE DEGREE OF FREEDOM PLUS/METADATA FOR IMMERSIVE VIDEO (3DoF+/MIV) AND VIDEO-POINT CLOUD CODING (V-PCC)
KR102292195B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
KR102334629B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
KR102406846B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
KR102381162B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN112868184A (zh) 网络抽象层单元头中的网络抽象单元层类型类
JP2022518367A (ja) 映像の符号化および復号のための装置、方法、およびコンピュータプログラム
KR102344072B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
KR102336990B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN113228633A (zh) 用于全向媒体编解码的环绕填充方法
US11418564B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN113785593A (zh) 用于概括的trisoup几何编码的技术和装置
KR102518819B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN113574873A (zh) 图块和子图像分割
US11601634B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
KR102373833B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US20200413095A1 (en) View-position and angle dependent processing of point cloud data
EP4171035A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN115514972A (zh) 视频编解码的方法、装置、电子设备及存储介质
US11991376B2 (en) Switchable scalable and multiple description immersive video codec
US11908168B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
KR20210130148A (ko) 몰입형 비디오 코딩을 위한 고 수준 구문
US20230362409A1 (en) A method and apparatus for signaling depth of multi-plane images-based volumetric video