KR20220162691A - 비디오 디코딩 에러를 식별하기 위한 방법 및 장치 - Google Patents

비디오 디코딩 에러를 식별하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20220162691A
KR20220162691A KR1020227029998A KR20227029998A KR20220162691A KR 20220162691 A KR20220162691 A KR 20220162691A KR 1020227029998 A KR1020227029998 A KR 1020227029998A KR 20227029998 A KR20227029998 A KR 20227029998A KR 20220162691 A KR20220162691 A KR 20220162691A
Authority
KR
South Korea
Prior art keywords
atlas
data
hash
atlas data
bitstream
Prior art date
Application number
KR1020227029998A
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 KR20220162691A publication Critical patent/KR20220162691A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

비디오 디코딩 에러를 식별하는 방법들, 장치, 시스템들 및 제조 물품들이 개시된다. 예시적인 장치는 비디오의 입력 뷰들로부터 생성된 하나 이상의 아틀라스에 대한 아틀라스 데이터를 생성하는 아틀라스 생성기; 아틀라스 데이터에 대해 해시 연산을 수행하여 해시 값을 생성하고 해시 값을 메시지에 포함시키는 해시 생성기; 및 하나 이상의 아틀라스, 아틀라스 데이터에 대응하는 코딩된 아틀라스 데이터, 및 메시지를 조합하여 비디오 비트스트림을 생성하는 멀티플렉서를 포함한다.

Description

비디오 디코딩 에러를 식별하기 위한 방법 및 장치
[관련 출원]
본 특허는 2020년 4월 3일에 출원된 미국 가출원 번호 제63/004,741호의 이익을 주장한다. 미국 가출원 번호 제63/004,741호는 그 전체가 참조에 의해 본 명세서에 이로써 포함된다. 미국 가출원 번호 제63/004, 741호에 대한 우선권이 이로써 주장된다.
[기술 분야]
본 개시내용은 일반적으로 비디오 처리에 관한 것으로서, 더 구체적으로는 비디오 디코딩 에러를 식별하기 위한 방법들 및 장치에 관한 것이다.
비디오 압축/압축해제(코덱) 시스템에서, 압축 효율 및 비디오 품질은 중요한 성능 기준이다. 예를 들어, 시각적 품질은 많은 비디오 응용들에서 사용자 경험의 중요한 양태이다. 압축 효율은 비디오 파일들을 저장하는데 필요한 메모리의 양 및/또는 비디오 콘텐츠를 송신 및/또는 스트리밍하는데 필요한 대역폭의 양에 영향을 미친다. 비디오 인코더는 전형적으로 비디오 정보를 압축하여 더 많은 정보가 주어진 대역폭을 통해 송신되거나 또는 주어진 메모리 공간 등에 저장될 수 있도록 한다. 그 후 압축된 신호 또는 데이터는 사용자에게 디스플레이하기 위해 신호 또는 데이터를 디코딩 또는 압축 해제하는 디코더에 의해 디코딩된다. 대부분의 예들에서, 더 큰 압축을 갖는 더 높은 시각적 품질이 바람직하다.
현재, V-PCC(Video-based Point Cloud Compression) 및 MIV(MPEG Immersive Video Coding)를 포함하는 몰입형 비디오 코딩 및 포인트 클라우드 코딩을 위한 표준들이 개발되고 있다. 이러한 표준들은 몰입형 비디오 및 포인트 클라우드 코딩의 맥락에서 압축 효율 및 재구성 품질을 확립하고 개선하려고 추구한다.
도 1은 본 명세서에 개시된 예들과 연계하여 비디오를 인코딩 및/또는 디코딩하기 위한 예시적인 환경이다.
도 2는 도 1의 예시적인 인코딩 시스템을 구현하기 위해 실행될 수 있는 머신 판독가능 명령어를 나타내는 흐름도이다.
도 3은 도 1의 예시적인 디코딩 시스템을 구현하기 위해 실행될 수 있는 머신 판독가능 명령어를 나타내는 흐름도이다.
도 4는 도 1의 인코딩 시스템을 구현하기 위해 도 3의 명령어들을 실행하도록 구조화된 예시적인 처리 플랫폼의 블록도이다.
도 5는 도 1의 디코딩 시스템을 구현하기 위해 도 3의 명령어들을 실행하도록 구조화된 예시적인 처리 플랫폼의 블록도이다.
도면들은 축척에 맞추어 그려진 것은 아니다. 그 대신에, 도면들에서 층 또는 영역의 두께가 확대되어 있을 수 있다. 일반적으로, 도면(들) 및 첨부되고 기재된 설명 전반에 걸쳐 동일하거나 유사한 부분들을 참조하기 위해 동일한 참조 번호들이 사용될 것이다. 본 특허에서 사용되는 바와 같이, 임의의 부분(예를 들어, 층, 막름, 지역, 영역, 또는 플레이트)이 임의의 방식으로 또 다른 부분 상에 있다(예를 들어, 또 다른 부분 상에 위치되거나, 또 다른 부분 상에 자리잡거나, 또 다른 부분 상에 배치되거나, 또 다른 부분 상에 형성된다 등)고 언급하는 것은 참조된 부분이 다른 부분과 접촉 상태에 있거나, 또는 참조된 부분이 다른 부분 위에 있고 그 사이에 하나 이상의 중간 부분(들)이 자리잡는 것을 나타낸다. 연결에 관한 설명(예를 들어, 부착된, 결합된, 연결된 및 접합된)은 광범위하게 해석되어야 하며 달리 명시되지 않는 한 요소들의 컬렉션 사이의 중간 부재들 및 요소들 사이의 상대적 이동을 포함할 수 있다. 그러하므로, 연결에 관한 설명은 반드시 두 요소가 직접 연결되어 있고 서로 고정된 관계에 있다고 추론하지는 않는다. 임의의 부분이 또 다른 부분과 "접촉" 상태에 있다고 언급하는 것은 2개의 부분 사이에 어떤 중간 부분도 없다는 것을 의미한다. 도면들이 선명한 선들 및 경계들을 갖는 층들 및 영역들을 보여주지만, 이러한 선들 및/또는 경계들의 일부 또는 전부가 이상화된 것일 수 있다. 실제로, 경계들 및/또는 선들은 관찰불가능하고, 혼합되고, 및/또는 불규칙할 수 있다.
개별적으로 지칭될 수 있는 다중의 요소 또는 컴포넌트를 식별할 때 서술어들(descriptors) "제1", "제2", "제3" 등이 본 명세서에서 사용된다. 그 사용 정황에 기초하여 달리 특정되거나 이해되지 않는 한, 이러한 서술어들은 우선순위, 리스트 내의 물리적 순서 또는 배열, 또는 시간상의 순서화라는 어떠한 의미도 부여하도록 의도되지 않으며, 다만 개시된 예들의 이해의 용이성을 위해 개별적으로 다중의 요소 또는 컴포넌트를 참조하기 위한 라벨들로서 사용되는 것일 뿐이다. 일부 예들에서, 서술어 "제1"은 상세한 설명 내의 요소를 지칭하기 위해 사용될 수 있는 한편, 동일한 요소가 "제2" 또는 "제3"과 같은 상이한 서술어로 청구항에서 지칭될 수 있다. 그러한 경우들에서, 그러한 서술어들은 다중의 요소 또는 컴포넌트를 참조할 때의 용이함을 위해 사용될 뿐이라는 것을 이해해야 한다.
몰입형 비디오 코딩 및 포인트 클라우드 코딩의 맥락에서, V3C(Visual Volumetric Video-based Coding) 및 V-PCC(Video-based Point Cloud Compression) 및 MIV(MPEG Immersive Video Coding)와 같은 비디오 표준들이 활용될 수 있다. 그러한 표준들에 대해, 디코더가 그러한 표준들을 준수하고 있는 것을 확인하기 위한 요구들이 있을 수 있다. 예를 들어, 디코더가 변경되지 않은 및/또는 손상되지 않은 비트스트림들을 획득하고 있다는, 및/또는, 디코더가 획득된 비트스트림들을 정확하게 디코딩하고 있다는 하나 이상의 요건이 있을 수 있다.
V3C/V-PCC에서, 동적 포인트 클라우드들은 컬러와 같은 텍스처를 위해 그리고 심도와 같은 지오메트리를 위해 평면들 상으로의 포인트 클라우드들의 다중의 투영을 이용하여 압축된다. 동적 포인트 클라우드가 압축된 후에, 압축된 동적 포인트 클라우드들은 투영 평면으로부터의 유사한 심도들의 패치들이라고 지칭되는 직사각형 영역들을 추출하기 위해 세그먼트화된다. 패치들은 점유 맵과 함께 아틀라스들 또는 아틀라스 타일들이 되도록 패킹된다. 점유 맵은 사용될 아틀라스들의 부분들(예를 들어, 아틀라스들 내에 패킹된 패치들 내에서의 점유된 영역들)을 표시한다. 추가적으로, 패치 정보 메타데이터가 패치들이 투영 계획들과 캔버스(예를 들어, 아틀라스 또는 아틀라스 타일들) 사이에서 어떻게 매핑되는지를 표시하기 위해 사용된다. HEVC(high efficiency video coding)와 같은 2차원(2-D) 비디오 코덱이 캔버스의 지오메트리 및 텍스처 컴포넌트들의 공간적 및 시간적 중복성을 활용하기 위해 사용된다. 원래 투영들에서의 그리고 아틀라스들 또는 아틀라스 타일들에서의 패치들의 크기들 및 위치들에 관한 정보가 코딩된 아틀라스 타일 데이터로서 시그널링된다. 점유 정보가 또한 시그널링된다. 아틀라스가 데이터의 비중첩 블록들의 그리드가 되도록 세분될 수 있고, 블록 크기가 비트스트림에 포함될 수 있다. 아틀라스 데이터는 블록 당 패치 값 표시(예를 들어, 데이터의 블록의 패치 식별 및/또는 인덱스)를 포함한다. 블록은 패치에 대응할 수 있거나 또는 패치의 부분집합일 수 있다. 일부 예들에서, 패치들은 다른 패치들과 중첩된다. 패치 데이터가 비트스트림에서 시그널링되는 순서(예를 들어, 이것은 패치 식별자에 대응함)가 특정 블록 로케이션에서 패치 우선순위를 결정하기 위해 사용되며, 예를 들어, 더 높은 패치 식별자 값의 패치가 우선순위를 가질 수 있다.
V3C/V-PCC 및 MIV 표준을 통한 코딩에서, 직사각형 패치들이 투영된 뷰들로부터 형성되고 아틀라스들이 되도록 배열된다. 패치들은 아틀라스 내에서 중첩될 수 있고, 마지막 시그널링된 패치는 중첩들을 해결하기 위한 우선순위를 갖는다. 표준들은 아틀라스 내의 각각의 패치에 대해, 그것의 대응하는 투영된 뷰 내의 패치의 크기 및 위치를 포함하는 정보를 포함하는 코딩된 아틀라스 데이터 및/또는 패치 식별자를 송신하기 위한 시그널링 메커니즘을 정의한다. 아틀라스 데이터는 각각의 아틀라스 내의 패치들에 대한 데이터의 블록들의 매핑이다. 일부 예들에서, 그러한 정보는 코딩된 아틀라스 타일 데이터 신택스 구조 내에 포함된다. 코딩된 아틀라스 데이터는 패치별 시그널링이다. 코딩된 아틀라스 데이터는 디코더에 의해 디코딩되어 아틀라스 데이터를 획득할 수 있다. 일부 예들에서, 코딩된 아틀라스 타일 데이터 신택스 구조는 각각의 프레임 시간 또는 인스턴스에서 시그널링된다. 일부 예들에서, 코딩된 아틀라스 타일 데이터 신택스 구조는 다중의 연속적인 프레임 시간 또는 인스턴스 동안 지속된다. 상이한 아틀라스들 또는 아틀라스 타일들에 대응하는 다중의 코딩된 아틀라스 타일 데이터 신택스 구조는 동일한 액세스 유닛(동일한 디코딩 순서 카운트(예를 들어, 특정 시간 인스턴스에 대응하는 V-PCC/MIV 비트스트림의 데이터)를 갖는 비트스트림의 컴포넌트들의 부분(예를 들어, 아틀라스 데이터, 텍스처 비디오, 지오메트리 비디오, 점유 비디오 등)) 내에서 시그널링될 수 있으며, 이들 모두는 동일한 프레임 시간, 인스턴스, 또는 POC(Picture Order Count) 값에 대응한다. 예를 들어, 표준은 대응하는 패치들에 대한 아틀라스 공간의 블록들의 매핑을 나타내는 아틀라스 데이터(예를 들어, 가변 2차원 어레이, BlockToPatchMap[ y ][ x ](DecoderToPatchMap[ y ][ x ]라고도 지칭됨))를 계산하기 위한 연산을 정의할 수 있으며, 여기서 x 및 y는 블록 크기 그래뉼래리티(granularity)에서의 블록의 좌표이다. 코딩된 아틀라스 데이터는 인코더로부터 디코더로의 비트스트림 내에 포함된다.
MIV 표준은 V3C/V-PCC가 그의 다중의 투영을 위해 사용하는 다중의 이미지 뷰를 코딩하기 위한 유사한 접근법을 사용한다. 예를 들어, MIV에 대해 다중의 아틀라스가 사용될 수 있다. MIV에서, 아틀라스들 내로의 패치들의 배열은 다중의 프레임 시간 동안 지속될 수 있다. 적합성 검사(conformance checking)가 다중의 아틀라스에 대해, 그리고 아틀라스들의 지속성에 대해 활용될 수 있다. 지속성은 데이터가 추가 데이터로 대체되기 전에 아틀라스들에 대응하는 데이터가 얼마나 오랫동안 지속될 수 있는지에 대응한다.
본 명세서에 개시된 예들에서, 아틀라스 데이터 해시를 포함하는 SEI(supplemental enhancement information) 메시지가 제공된다. 이러한 메시지는 MIV 표준, V3C/V-PCC 표준, 및/또는 비트스트림들 내에 포함된 메시지들을 생성하는 임의의 다른 표준에서 구현될 수 있다. 아틀라스 데이터 해시(해싱된 아틀라스 데이터라고도 지칭됨)는 아틀라스 데이터에 대해 수행되는 해시 연산의 결과이다. 본 명세서에 개시된 예들은 SEI 메시지 내에 아틀라스 데이터 해시를 포함하고, 코딩된 아틀라스 데이터를 갖는 비트스트림 내에 SEI 메시지를 포함한다. 디코더는 아래에 더 설명되는 바와 같이, 디코더가 송신 및/또는 디코딩 에러를 식별하는 것을 돕기 위해 SEI 메시지의 해시 아틀라스 값들을 사용한다.
위에서 설명된 바와 같이, 본 명세서에 개시된 예들은 해싱된 아틀라스 데이터(예를 들어, 해당 블록에 대한 또는 패치가 나타내는 뷰 또는 투영 방향의 우선순위를 갖는 패치의 블록 당 표시의 아틀라스 당 해시 값)를 대응하는 코딩된 아틀라스 데이터와 함께 비트스트림 내의 SEI(supplemental enhancement information) 메시지 내에 포함한다. 해싱된 아틀라스 데이터는 2차원 어레이 변수 BlockToPatchMap[ y ][ x ]에 대한 아틀라스 당 해시를 포함할 수 있다. 예를 들어, 해시 함수가 스캐닝된 (예를 들어, 래스터 스캐닝된) 아틀라스 데이터에 적용될 수 있어서 아틀라스 데이터가 특정 샘플이 대응하는 패치 식별자(예를 들어, 수) 또는 뷰 식별자를 나타내는 수치 값들의 2차원 데이터 구조가 되도록 한다. 일부 예들에서, 인코더는 그에 대해 패치 데이터가 코딩된 아틀라스 타일 데이터 내에서 시그널링되는 각각의 액세스 유닛에서 각각의 아틀라스에 대한 BlockToPatchMap[ y ][ x ]의 값들을 결정한다. 해시 함수는 하나 이상의 해시 연산으로서 구현될 수 있다. 일부 예들에서, 인코더는 전체 2차원 어레이에 대한 해시 값을 생성하고, SEI 메시지에서 아틀라스 데이터 해시 값을 시그널링한다.
본 명세서에 개시된 예들에서, 디코더가 코딩된 비트스트림을 수신할 때, 디코더는 비트스트림으로부터 SEI 메시지를 분리한다. 디코더는 SEI 메시지로부터 아틀라스 해시 값들을 결정한다. 추가적으로, 디코더는 각각의 액세스 유닛에서의 각각의 코딩된 아틀라스에 대해, 코딩된 아틀라스 데이터(예를 들어, BlockToPatchMap[ y ][ x ] 2차원 어레이의 값들)를 디코딩하여, 디코딩된 아틀라스 데이터를 생성한다. 디코더가 코딩된 아틀라스 데이터를 디코딩한 후, 디코더는 디코더 측 해시 값을 생성하기 위해 인코더에 의해 구현된 동일한 해싱 기법들을 사용하여 디코딩된 아틀라스 데이터에 대한 해시 값(예를 들어, BlockToPatchMap[ y ][ x ] 2차원 어레이)을 생성한다. 이러한 방식으로, 디코더는 디코더 측 해시 값을 SEI 메시지에서 시그널링된 해시 값과 비교한다. 값들이 일치하는 경우, 디코더는 비트스트림이 손상되지 않았음을 높은 신뢰도로 검증하고, 코딩된 아틀라스 타일 데이터를 디코딩하기 위한 디코더 동작은 사양을 준수한다(예를 들어, 디코더가 정확하게 디코딩하고 있음을 검증함). 값들이 일치하지 않는 경우, 디코더는 디코딩 에러가 발생했다고(예를 들어, 비트스트림이 손상되었고 및/또는 디코더 동작이 코딩된 아틀라스 타일 데이터를 디코딩하는 것에 대해 사양을 준수하지 않았다고) 결정할 수 있다.
본 명세서에 제공된 바와 같이, 디코딩된 아틀라스 데이터 해시 및 아틀라스 데이터 해시는 비디오 코딩에서의 사용을 위해 그리고 V3C/V-PCC 표준 및/또는 MIV 표준과 같은 표준화된 코덱에서의 사용을 위해 생성된다. SEI 메시지는 (예를 들어, 각각의 고유한 2차원 아틀라스 어레이에 대해) 아틀라스 데이터 인스턴스 당 해시 값을 시그널링할 수 있다.
도 1은 예시적인 인코딩 시스템(101) 및 예시적인 디코딩 시스템(110)의 예시적인 블록도를 포함하는 예시적인 환경(100)이다. 예시적인 인코딩 시스템(101)은 예시적인 아틀라스 생성기(102), 예시적인 볼류메트릭(volumetric) 비디오 인코더(104), 예시적인 해시 생성기(106), 및 예시적인 멀티플렉서(108)를 포함한다. 예시적인 디코딩 시스템(110)은 예시적인 디멀티플렉서(112), 예시적인 볼류메트릭 비디오 디코더(114), 예시적인 데이터 재구성기(116), 예시적인 해시 생성기(118), 및 예시적인 비교기(120)를 포함한다.
도 1의 예시적인 인코딩 시스템(101)(인코더, 인코딩 디바이스 등으로도 지칭됨) 및 예시적인 디코딩 시스템(110)은 서버 컴퓨터, 클라우드 컴퓨팅 환경, 개인용 컴퓨터, 랩톱 컴퓨터, 태블릿, 패블릿, 스마트폰, 게이밍 콘솔, 웨어러블 디바이스, 디스플레이 디바이스, 올인원 디바이스(all-in-one device), 투인원 디바이스(two-in-one device) 등을 포함하는 임의의 적절한 폼 팩터 디바이스 또는 이러한 디바이스들 중 하나 이상에서 구현될 수 있다. 도 1의 예시적인 인코딩 시스템(101) 및 예시적인 디코딩 시스템(110)이 상이한 컴퓨팅 디바이스들에서 구현되지만, 예시적인 인코딩 시스템(101) 및 디코딩 시스템(110)은 동일한 디바이스에서 구현될 수 있다.
도 1의 인코딩 시스템(101)의 아틀라스 생성기(102)는 인코딩할 입력 비디오의 다중의 뷰를 수신한다. 장면의 임의의 수의 뷰들이 있을 수 있고, 뷰들 각각은 대응하는 텍스처 픽처 또는 프레임(또는 텍스처 비디오) 및 대응하는 지오메트리 픽처 또는 프레임(또는 지오메트리 비디오)을 포함할 수 있다. 각각의 시간 인스턴스에 대해, 장면의 하나 이상의 뷰에 대한 비디오 데이터가 제공되어 다중의 텍스처 프레임 및 다중의 심도 또는 지오메트리 프레임들이 생성될 수 있도록 한다. 예를 들어, 각각의 텍스처 프레임은 휘도/컬러(YUV) 데이터, 적색 녹색 청색(RGB) 데이터, 또는 유사한 데이터와 같은 픽셀별 컬러 정보를 포함할 수 있으며, 각각의 지오메트리 또는 심도 프레임은 픽셀별 심도 데이터 또는 유사한 데이터를 포함할 수 있다. 텍스처 및 지오메트리 프레임들은 동일하거나 상이한 해상도들을 가질 수 있다. 예를 들어, 텍스처 프레임들은 비디오 그래픽 어레이(VGA), 고화질(HD), 풀-HD(예를 들어, 1080p), 4K 해상도 비디오, 8K 해상도 비디오, 또는 그와 유사한 것일 수 있다. 본 명세서에 개시된 예는 (상호교환가능하게 사용되는) 프레임들 및 픽처들에 대하여 설명된다.
도 1의 예시적인 아틀라스 생성기(102)는, 특정 프레임 인덱스 또는 인스턴스에 대해, 텍스처 아틀라스 및 지오메트리 또는 심도 아틀라스를 생성한다(예를 들어, 입력 뷰들로부터 변환한다). 예를 들어, 아틀라스 생성기(102)는 다중의 뷰 각각을 아틀라스를 형성하도록 배열되는 패치들(예를 들어, 직사각형 영역들)이 되도록 분해한다. 아틀라스 생성기(102)는 다중의 뷰 사이의 중복성을 감소시키도록 아틀라스를 포맷팅할 수 있다. 예시적인 아틀라스 생성기(102)는 텍스처 아틀라스(텍스처 정보를 포함함) 및 지오메트리 또는 심도 아틀라스(지오메트리 또는 심도 정보를 포함함)를 형성하고 데이터를 인코딩 시스템(101)의 볼류메트릭 비디오 인코더(104)에 제공한다.
도 1의 예시적인 아틀라스 생성기(102)는 또한, 특정 프레임 인덱스 또는 인스턴스에 대해, 텍스처 및 심도 아틀라스 내의 각각의 패치의 소스(예를 들어, 그 패치와 연관된 대응하는 뷰)를 나타내는 메타데이터를 포함하는 아틀라스 데이터를 결정한다. 일부 예들에서, 아틀라스 생성기(102)는 텍스처 및 심도 아틀라스들에 대한 아틀라스 데이터의 단일 인스턴스를 생성하여 심도 아틀라스의 패치들이 텍스처 아틀라스의 패치들을 따르거나 그와 매칭되고, 또한 그 반대가 되도록 한다. 아틀라스 데이터는 아틀라스들 내의 텍스처 및 심도 패치 데이터를 이용하여 다중의 뷰(또는 그의 부분들)의 재구성을 위한 메타데이터를 제공한다. 본 명세서에서 사용되는 바와 같이, 용어 아틀라스 데이터는 텍스처 및 심도 아틀라스들의 패치들의 소스들을 나타내는 임의의 데이터 구조, 예컨대 그러한 패치들의 소스를 나타내는 수치 값들의 2차원 어레이를 나타낸다. 일부 예들에서, 아틀라스 데이터는 픽셀이 패치에 대응하지 않는 경우 패치 식별자(또는 디폴트 값(예를 들어, 데이터 구조에서 가장 높은 이용가능한 값으로서))를 각각 대표하는 픽셀 단위 수치 값들의 2차원 어레이를 포함한다. 일부 예들에서, 아틀라스 생성기(102)는 픽셀의 소스 뷰(또는 픽셀이 소스 뷰에 대응하지 않는 경우 디폴트 값)를 각각 나타내는 픽셀 단위 수치 값들의 2차원 어레이를 포함하도록 아틀라스 데이터를 생성한다. 일부 예들에서, 아틀라스 생성기(102)는 픽셀의 소스 뷰 및 패치 번호(또는 픽셀이 소스 뷰에 대응하지 않는 경우 디폴트 값)를 각각 나타내는 픽셀 단위 수치 값들의 2차원 어레이를 포함하도록 아틀라스 데이터를 생성한다. 일부 예들에서, 데이터의 2차원 어레이는 래스터 스캔 동작에서 생성되는 바와 같이 (예를 들어, 2차원 어레이의 모든 데이터를 1차원 벡터가 되도록 리스팅함으로써) 1차원 포맷으로 표현될 수 있다. 일부 예들에서, 아틀라스 생성기(102)는 아래에 더 설명되는 바와 같이 DecoderToPatchMap[ y ][ x ] 신택스 요소를 사용하여 아틀라스 데이터를 생성한다.
일부 예들에서, 아틀라스 생성기(102)는 아래의 표 1에 제공된 의사 코드와 관련하여 도시된 바와 같이, 아틀라스 데이터 인스턴스를 생성한다. 표 1의 의사코드에서, 아틀라스 데이터는 DecoderToPatchMap[ y ][ x ](BlockToPatchMap[ y ][ x ]라고도 지칭됨)이다.
Figure pct00001
Figure pct00002
표 1의 상기 의사코드(1)에서, 코드의 제1 섹션은 코딩된 아틀라스 타일의 크기 및 블록 사이즈에 기초하여 BlockToPatch Map 2D 어레이의 폭 및 높이를 정의한다. 의사코드(1)의 제2 섹션은 블록이 점유되지 않았음을 표시하기 위해 블록들에 대한 초기 값(예를 들어, -1)을 설정한다. 의사코드(1)의 제3 섹션은, 코딩된 아틀라스 데이터에서의 패치들에 대해, 패치에 의해 커버되는 BlockToPatchMap 2D 어레이에서의 블록들에 대한 패치 인덱스 값을 설정하기 위해 블록의 x 및 y 위치들 및 패치 폭 및 패치 높이를 사용한다.
일부 예들에서, 아틀라스 생성기(102)는 표 2에 제공된 의사코드에 관하여 도시된 바와 같이 아틀라스 데이터 인스턴스(예를 들어, 블록 당 패치 인덱스)를 생성한다. 표 2의 의사코드에서, 아틀라스 데이터는 다시 DecoderToPatchMap[ y ][ x ]이다. 일부 예들에서, BlockToPatchMap에 대한 포맷은 16비트 무부호인 것으로 할당되고, 어떤 패치도 값을 덮어쓰기하지 않는 경우 유지되는 BlockToPatchMap[ y ][ x ]의 각각의 샘플의 디폴트 값은, 표 1의 의사코드에 대해, -1로부터 0xFFFF(또는 65535)로 변경된다.
Figure pct00003
Figure pct00004
표 2의 상기 의사코드(2)에서, 코드의 제1 섹션은 코딩된 아틀라스 타일의 크기 및 블록 크기에 기초하여 BlockToPatch Map 2D 어레이의 폭 및 높이를 정의한다. 의사코드(2)의 제2 섹션은 블록이 점유되지 않은 것을 표시하기 위해 블록들에 대한 초기 값(예를 들어, 0xFFFF)을 설정한다. 의사코드(2)의 제3 섹션은, 코딩된 아틀라스 데이터 내의 패치들에 대해, 패치에 의해 커버되는 BlockToPatchMap 2D 어레이 내의 블록들에 대한 패치 인덱스 값을 설정하기 위해 블록의 x 및 y 위치들 및 패치 폭 및 패치 높이를 사용한다.
예시적인 아틀라스 생성기(102)는 아틀라스 데이터를 인코딩 시스템(101)의 예시적인 볼류메트릭 비디오 인코더(104) 및 예시적인 해시 생성기(106)에 출력한다.
도 1의 인코딩 시스템(101)의 볼류메트릭 비디오 인코더(104)는 텍스처 및 심도 아틀라스들을 아틀라스들을 대표하는 코딩된 텍스처 및 심도 비트스트림이 되도록 인코딩하고, 인코딩된 데이터를 인코딩 시스템(101)의 예시적인 멀티플렉서(108)에 출력한다. 일부 예들에서, 볼류메트릭 비디오 인코더(104)는 HEVC와 같은 표준 준수 코딩에 기초하여 텍스처 및 심도 아틀라스들을 인코딩하여 표준 준수 비트스트림을 생성한다. 예시된 예에서, 볼류메트릭 비디오 인코더(104)는 아틀라스 데이터를 인코딩하여 인코딩된 아틀라스 데이터를 생성하고, 인코딩된 아틀라스 데이터를 아틀라스 데이터를 대표하는 코딩된 아틀라스 데이터 비트스트림 내에 포함시키고, 코딩된 아틀라스 데이터 비트스트림을 예시적인 멀티플렉서(108)에 출력한다. 일부 예들에서, 볼류메트릭 비디오 인코더(104)는 HEVC와 같은 표준 준수 코딩에 기초하여 아틀라스 데이터를 인코딩하여 표준 준수 비트스트림을 생성한다.
도 1의 인코딩 시스템(101)의 해시 생성기(106)는, 아틀라스 데이터를 이용하여, 16 바이트 메시지 다이제스트 알고리즘 5(MD5) 해시, CRC(cyclic redundancy check) 해시, 체크섬 해시 등과 같은 임의의 하나 이상의 적합한 해시 연산을 이용하여 해시 값을 생성한다. 해시 생성기(106)가 아틀라스 데이터를 해싱한 후에, 해시 생성기(106)는 해싱된 아틀라스 데이터를 하나 이상의 SEI 메시지 내에 시그널링(예를 들어, 포함 또는 임베딩)한다. 해시 생성기(106)는 해싱된 아틀라스 데이터를 포함하도록 SEI 메시지를 생성할 수 있거나, 또는 또 다른 컴포넌트로부터 생성된 SEI 메시지를 수신하고 이미 생성된 SEI 메시지 내에 해싱된 아틀라스 데이터를 포함시킬 수 있다. 예시적인 해시 생성기(106)는 해싱된 아틀라스 데이터를 포함하는 SEI 메시지를 인코딩 시스템(101)의 멀티플렉서(108)에 출력한다. 일부 예들에서, 해시 생성기(106)는 아틀라스 데이터 해시 SEI 메시지 내에 단일 아틀라스 데이터 인스턴스에 대한 단일 해시 값을 포함시킨다. 일부 예들에서, 해시 생성기(106)는 아틀라스 데이터 해시 SEI 메시지 내에 다중의 아틀라스 데이터 인스턴스에 대한 다중의 해시 값을 포함시킨다(예를 들어, 각자의 해시 값들은 특정 아틀라스 데이터 인스턴스들에 인덱싱됨). 일부 예들에서, 해시 생성기(106)는, 아래에 더 설명되는 바와 같이, SEI 메시지 내에 아틀라스 데이터 인스턴스들에 대응하는 지속성 데이터를 포함시킨다. 일부 예들에서, 해시 생성기(106)는 각각의 아틀라스 데이터 인스턴스에 대한 해시 값을 생성한다. 일부 예들에서, 해시 생성기(106)는 GOP(group of pictures) 내의 단일 인스턴스와 같은 일부 아틀라스 데이터 인스턴스들에 대한 해시 값들을 생성하여 해시 값 검증이 송신된 비트스트림에 대해 간헐적으로 제공되도록 한다.
도 1의 인코딩 시스템(101)의 멀티플렉서(108)는 코딩된 텍스처 및 심도 비트스트림, 코딩된 아틀라스 데이터 비트스트림, 및 아틀라스 데이터 해시 SEI 메시지들을 조합 또는 멀티플렉싱한다. 인코딩 시스템(101)은 결과적인 비트스트림을 디코딩 시스템(110)에 또는 디코딩 시스템(110)에 의한 최종 사용을 위한 메모리에 송신한다. 일부 예들에서, 멀티플렉서(108)는 인터페이스(예를 들어, 도 4의 인터페이스(420))를 사용하여 결과적인 비트스트림을 디코딩 시스템(110)에 송신한다. 이러한 예들에서, 인터페이스(420)는 결과적인 비트스트림을 유선 또는 무선 접속을 통해(예를 들어, 블루투스를 통해, 인터넷을 통해, 로컬 네트워크를 통해, Wi-Fi를 통해, 등) 디코딩 시스템(110)에 송신할 수 있다.
도 1의 디코딩 시스템(110)(디코더, 디코딩 디바이스 등으로도 지칭됨)은 디코딩 시스템(110)의 디멀티플렉서(112)를 통해 비트스트림을 획득한다. 일부 예들에서, 디멀티플렉서(112)는 인터페이스(예를 들어, 도 5의 인터페이스(520))를 통해 비트스트림을 획득한다. 디코딩 시스템(110)은 클라이언트 시스템을 통해 구현될 수 있고, 인코딩 시스템(101)은 서버 또는 소스 시스템을 통해 구현될 수 있다. 디코딩 시스템(110)의 디멀티플렉서(112)는 수신된 비트스트림을 디멀티플렉싱 또는 파싱하여 (a) 텍스처 및 심도 비디오의 코딩된 표현을 포함하고 인코딩 시스템(101)에 대해 기술된 코딩된 텍스처 및 심도 비트스트림과 매칭될 것으로 예상되는 코딩된 텍스처 및 심도 비트스트림, (b) 인코딩 시스템(101)에 의해 생성된 아틀라스 데이터와 매칭될 것으로 예상되는 코딩된 아틀라스 데이터 비트스트림, 및 (c) 획득된 비트스트림 데이터로부터의 하나 이상의 아틀라스 데이터 해시 SEI 메시지를 생성(예를 들어, 추출)한다. 코딩된 텍스처 및 심도 비트스트림, 코딩된 아틀라스 데이터 비트스트림, 및 아틀라스 데이터 해시 SEI 메시지들은 디코더 측 코딩된 텍스처 및 심도 비트스트림, 코딩된 아틀라스 데이터 비트스트림, 및 아틀라스 데이터 해시 SEI 메시지들로서 특징지어질 수 있다. 코딩된 텍스처 및 심도 비트스트림, 코딩된 아틀라스 데이터 비트스트림, 및 아틀라스 데이터 해시 SEI 메시지들은 비트스트림의 디코딩 및/또는 송신에 대응하는 어떤 비트스트림 에러들도 없을 때 인코더 시스템(101)에서의 그들의 대응물들을 복제한다. 그러나, 비트스트림 손상, 송신 실패, 및/또는 다른 이유들로 인해, 불일치가 발생할 수 있다.
도 1의 디코딩 시스템(110)의 예시적인 볼류메트릭 비디오 디코더(114)는 (예를 들어, 디코딩된 텍스처 아틀라스들, 심도 아틀라스들, 및/또는 대응하는 아틀라스 데이터 인스턴스들을 생성하기 위해) 코딩된 텍스처, 심도 비트스트림, 코딩된 아틀라스 데이터 비트스트림을 수신(예를 들어, 획득) 및 디코딩한다. 볼류메트릭 비디오 디코더(114)는 디코딩된 데이터를 디코딩 시스템(110)의 데이터 재구성기(116)에 송신한다. 볼류메트릭 비디오 디코더(114)는 볼류메트릭 비디오 인코더(104)에 의해 사용되는 인코딩 기술에 기초하여, 코딩된 텍스처를 디코딩하여 디코딩된 텍스처 값들을 생성하고, 코딩된 심도를 디코딩하여 디코딩된 심도 값들을 생성하고, 코딩된 아틀라스 데이터 비트스트림을 디코딩하여 디코딩된 아틀라스 데이터 비트스트림을 생성하고, 심도 아틀라스들, 및/또는 대응하는 아틀라스 데이터 인스턴스들에 대해서도 그렇게 한다.
도 1의 데이터 재구성기(116)는 디코딩된 텍스처 아틀라스들, 디코딩된 심도 아틀라스들, 및 디코딩된 아틀라스 데이터를 사용하여 인코딩 시스템(101)에 제공된 입력 뷰들의 디코딩된 버전을 재구성한다. 예를 들어, 디코딩 시스템(110)의 데이터 재구성기(116)는 인코딩 시스템(101)의 아틀라스 생성기(102)의 역 동작들을 수행하여 재구성된 뷰들을 생성할 수 있고, 재구성된 뷰들은 사용자를 위한 뷰포트 뷰를 생성하는 데 이용될 수 있다.
도 1의 예시적인 해시 생성기(118)는 볼류메트릭 비디오 디코더(114)로부터 디코딩된 아틀라스 데이터를 획득한다. 디코딩 시스템(110)은 인코딩 시스템(101)에서 생성된 아틀라스 데이터를 복제하려고 시도하는데, 이것은 디코딩 시스템(110)에서 디코딩될 수 있어서 (예를 들어, 어떤 디코딩 에러들도 없는 경우) 인코더 측 해싱된 아틀라스 데이터와 디코더 측 해싱된 아틀라스 데이터가 매칭되도록 한다. 그러나, 위에서 설명된 바와 같이, 디코딩 시스템(110)의 비트스트림 손상 및/또는 송신 실패, 및/또는 볼류메트릭 비디오 디코더(114)의 실패는 인코더 측 아틀라스 데이터와 디코더 측 아틀라스 데이터 사이의 불일치를 야기할 수 있다. 아래에 더 설명되는 바와 같이, 비교기(120)가 인코더 측 해시 값들을 디코더 측 해시 값들과 비교하여 임의의 불일치를 결정할 수 있다.
도 1의 해시 생성기(118)는, 아틀라스 데이터 인스턴스에 대해, 동일한 아틀라스 데이터(예를 들어, 이것은 디코딩/송신 에러가 없을 때 일치되거나 또는 디코딩/송신 에러가 있을 때 일치되지 않음)에 인코딩 시스템(101)의 해시 생성기와 동일한 해시 연산(들)을 적용함으로써 해시 값을 생성한다. 적용가능한 해시 연산들(들)은 코딩 표준에 대응하는 디폴트 해시 연산(들), 아틀라스 데이터 해시 SEI 메시지에서 시그널링되는 적용가능한 해시 연산(들), 또는 그와 유사한 것일 수 있다. 디코딩 시스템(110)의 해시 생성기에 의해 생성된 각각의 해시 값에 대해, 디코더 측 해시 값(예를 들어, 디코더에서 생성된 해시 값)과 인코더 측 해시 값(예를 들어, 해시 SEI 메시지에서 수신된 해시 값) 사이의 비교가 (비교기(120)에 의해) 행해진다.
도 1의 예시적인 비교기(120)는 (예컨대, 해시 생성기(118)로부터의) 디코더 측 해시를 (예컨대, 디멀티플렉서(112)로부터의) 인코더 측 해시와 비교한다. 비교기(120)가 2개의 해시 값이 일치한다고 결정하는 경우, 디코딩 시스템(110)(예를 들어, 클라이언트 시스템)은 수신된 비트스트림이 손상되지 않았고 그리고 아틀라스 데이터(예를 들어, 메타데이터)에 대한 볼류메트릭 비디오 디코더(114)의 동작이 비트스트림 및/또는 V3C/V-PCC 또는 MIV와 같은 적용가능한 비디오 코딩 표준에 부합하였다고 높은 확실성으로 결정한다. 비교기(120)가 임의의 2개의 해시 값이 일치하지 않는다고 결정하는 경우, 비교기(120)는 손상된 비트스트림 또는 비 부합 디코더 동작을 표시하는 에러 플래그를 출력한다. 일부 예들에서, 비교기(120)는 아틀라스 데이터 인스턴스 당 에러 플래그를 출력한다. 아틀라스 데이터 인스턴스 당 에러 플래그는 해시 값들 사이의 일치 또는 불일치를 식별하는 값이다(예를 들어, 일치에 대해 '1' 또는 불일치에 대해 '0' 또는 그 반대로). 일부 예들에서, 비교기(120)는 불일치가 검출될 때 (그리고 그렇지 않고 일치가 추정될 때) 아틀라스 데이터 인스턴스 실패 당 에러 플래그를 출력한다.
아틀라스 데이터 해시 값 기반 검증을 구현하기 위한 예시적인 신택스 및 시맨틱스가 아래에 있다. 일부 예들에서, 아틀라스들의 수를 시그널링하는 신택스 요소(예를 들어, 아틀라스 데이터 인스턴스들)가 SEI 메시지 내에 포함된다. 일부 예들에서, 각각의 아틀라스에 대해, 해시 값이 시그널링된다. 예시적인 해시 생성기들(106, 118) 각각은 16 바이트 MD5 합, CRC, 체크섬을 사용하는 해시 값, 또는 또 다른 타입의 해시 값을 생성한다. 해시 값 결정은 아래에 더 설명되며, 여기서 일부 예들에서, 16 비트 무부호 BlockToPatchMap[ y ][ x ] 값의 2 바이트 각각이 해시 계산에 대한 순차적인 입력이 된다. 패치들의 수가 2^16으로 제한될 때(예를 들어, 16 비트 또는 2 바이트가 패치 식별자를 표현하기에 충분할 때), 2 바이트가 패치 식별자를 표현하는데 이용될 수 있다. 그러한 예들에서, 해시 계산은 바이트들에 대해 수행될 수 있다.
일부 예들에서, MIV 및 VPCC에 대한 비트스트림들이 VPCC 유닛들을 포함한다. VPCC 유닛들은 헤더 및 페이로드 정보를 포함한다. 헤더는 페이로드가 적용되는 아틀라스 ID를 표시하는 vuh_atlas_id 신택스 요소를 포함한다. MIV 표준은 모든 아틀라스들에 적용될 수 있는 데이터를 포함하는 "공통 아틀라스"를 지원한다. 일부 예들에서, SEI 메시지가 "공통 아틀라스"에 존재하는 경우, 그것은 다중의 아틀라스에 대한 해시 데이터를 포함할 수 있다. 일부 예들에서, 별개의 SEI 메시지가 각각의 아틀라스에 대해 사용될 수 있는데, 이것은 연관된 아틀라스와 동일한 값의 vuh_atlas_id를 갖는다. 해시 데이터가 하나보다 많은 아틀라스에 대해 시그널링될 때, 그에 대해 각각의 해시가 적용되는 atlas_id 값이 명시적으로 시그널링된다.
일부 예들에서, 아틀라스 데이터는 다중의 액세스 유닛에 걸쳐 일관되고, 제안된 SEI 해시 데이터는 취소될 때까지 지속될 수 있다. 지속성은 다중의 아틀라스에 대한 데이터를 포함할 수 있는 전체 SEI 메시지에 대해 또는 아틀라스 당 개별적으로 시그널링될 수 있다. 일부 예들에서, 지속성 플래그 값이 1(또는 일부 다른 값)에 설정되는 경우, 해시 값은 취소 플래그 값이 1(또는 일부 다른 값)에 설정될 때까지 또는 IRAP(instantaneous random access point) 아틀라스가 비트스트림에 존재할 때까지(예를 들어, 랜덤 액세스 디코딩이 IRAP 아틀라스에 있을 수 있기 때문에) 비트스트림 내의 미래 액세스 유닛들에 대해 지속된다. 앞서 설명한 바와 같이, 액세스 유닛은 동일한 디코딩 순서 카운트(예를 들어, 특정 시간 인스턴스에 대응하는 V-PCC/MIV 비트스트림의 데이터)를 갖는 비트스트림의 컴포넌트들(예를 들어, 아틀라스 데이터, 텍스처 비디오, 지오메트리 비디오, 점유 비디오 등)의 일부분이다. 일부 예들에서, 전체 지속성 플래그 및 전체 취소 플래그가 SEI 메시지 내에 포함되고, 이는 모든 아틀라스들에 적용된다. 일부 예들에서, 하나보다 많은 아틀라스가 표시되는 경우, 아틀라스 당 별개의 지속성 및 취소 플래그들이 제공된다. 따라서, 비교기(120)(또는 또 다른 디바이스)가 비트스트림 내의 제1 액세스 유닛에 대응하는 플래그를 생성하는 경우, 비교기는 비트스트림에 대응하는 메시지가 지속성을 나타낼 때 비트스트림 내의 제2(예를 들어, 후속) 액세스 유닛에 대한 추가 플래그들을 생성할 수 있다.
아래의 표 3은 예시적인 해시 생성기들(106, 118)이 아틀라스 데이터 해시 값들 및 아틀라스 표시자들 및 지속성 플래그들과 같은 관련 데이터를 시그널링하기 위해 사용할 수 있는 예시적인 신택스를 예시한다.
Figure pct00005
표 3에 제공된 예시적인 신택스 및 시맨틱스는 디코딩된 아틀라스 데이터 블록에 대한 아틀라스 데이터 해시 값을 시그널링하여 하나 이상의 아틀라스에 대한 맵을 패치(patch)한다.
신택스 요소 dadh_cancel_flag는 SEI 메시지가 현재 계층에 적용되는 코딩 순서로 임의의 이전에 디코딩된 아틀라스 데이터 해시 SEI 메시지의 지속성을 취소하는 것을 나타내기 위해 1과 동일하게 설정된다. 신택스 요소 dadh_cancel_flag는 디코딩된 아틀라스 데이터 해시 정보가 뒤따르는 것을 나타내기 위해 0과 동일하게 설정된다. 신택스 요소 dadh_persistence_flag는 SEI 메시지가 디코딩된 아틀라스 데이터 해시 SEI 메시지의 지속성을 특정하는 것을 나타내기 위해 1과 동일하게 설정된다. 신택스 요소 dadh_persistence_flag는 디코딩된 아틀라스 데이터 해시 SEI 메시지가 현재 디코딩된 액세스 유닛에만 적용되는 것을 특정하기 위해 0과 동일하게 설정된다.
일부 예들에서, auA를 현재 액세스 유닛이라고 하면, dadh_persistence_flag가 1과 동일한 것은, 다음의 조건들: (1) 현재 계층의 새로운 CVS(coded video sequence)가 시작되는 것, (2) 비트스트림이 종료되는 것, 또는 (3) 디코딩된 아틀라스 데이터 해시 SEI 메시지를 포함하는 액세스 유닛에서의 현재 계층에서의 액세스 유닛 auB가 출력되고 (예를 들어, 더 높은 카운트가 비디오 시퀀스에서의 더 늦은 시간에 대응하기 때문에 어느 액세스 유닛이 더 늦은 비디오 시퀀스에 대응하는지를 결정하기 위해) 그에 대한 FrameOrderCnt( auB )가 FrameOrderCnt( auA )보다 더 큰 것 중 임의의 것이 참일 때까지, 디코딩된 아틀라스 데이터 해시 SEI 메시지가 출력 순서로 지속되는 것을 특정하는데, 여기서 FrameOrderCnt( auB ) 및 FrameOrderCnt( auA )는, auB에 대한 픽처 순서 카운트에 대한 디코딩 프로세스의 기동 직후에, 제각기 auB 및 auA의 FrameOrderCntVal 값들이다. FrameOrderCnt는 프레임들이 코딩되고 및/또는 디스플레이되도록 의도되는 순서이다. FrameOrderCnt가 사용되는 이유는 프레임들이 코딩되고 및/또는 디스플레이되도록 의도되는 순서가 프레임들이 비트스트림에 존재하는 순서와 상이할 수 있기 때문이다(예컨대, 인코딩 시스템(101)이 프레임들을 비순차적으로 코딩하기로 선택할 수 있기 때문임). 해시 값은 아틀라스가 나중의 프레임들에 대해 명시적으로 시그널링되지 않을 때 추가적인 프레임들에 대해 지속될 수 있다. 신택스 요소 dadh_num_atlases_minus1 플러스 1은 그에 대해 해시 값들이 존재하는 아틀라스들 또는 아틀라스 타일들의 수를 특정한다.
신택스 요소 dadh_atlas_id[ a ]는 i번째 시그널링된 해시 데이터의 아틀라스 ID를 특정한다. 일부 예들에서, 존재하지 않을 때, dadh_atlas_id[ a ]의 값은 vuh_atlas_id와 동일한 것으로 추론된다.
1과 동일한 신택스 요소 dadh_atlas_cancel_flag[dadh_atlas_id[ a ]]는 SEI 메시지가 dadh_atlas_id[ a ]번째 아틀라스에 적용되는 코딩 순서에서 임의의 이전의 디코딩된 아틀라스 데이터 해시의 지속성을 취소하는 것을 나타낸다. 0과 동일한 신택스 요소 dadh_atlas_cancel_flag[dadh_atlas_id[ a ]]는 dadh_atlas_id[ a ]번째 아틀라스에 대해 디코딩된 아틀라스 데이터 해시 정보가 뒤따르는 것을 나타낸다. 일부 예들에서, 존재하지 않을 때, dadh_atlas_cancel_flag[dadh_atlas_id[ a ]]의 값은 0인 것으로 추론된다.
신택스 요소 dadh_atlas_persistence_flag[dadh_atlas_id[ a ]]는 dadh_atlas_id[ a ]번째 아틀라스를 가진 아틀라스에 대해 디코딩된 아틀라스 데이터 해시 SEI 메시지의 지속성을 특정한다. 0과 동일한 신택스 요소 dadh_atlas_persistence_flag[dadh_atlas_id[ a ]]는 디코딩된 아틀라스 데이터가 현재 액세스 유닛의 [dadh_atlas_id[ a ]]번째 아틀라스에만 적용되는 것을 특정한다.
일부 예들에서, auA를 현재 픽처라고 하면, 1과 동일한 dadh_atlas_persistence_flag[dadh_atlas_id[ a ]]는, 다음의 조건들: (1) 새로운 CLVS가 시작되는 것, (2) 비트스트림이 종료되는 것, 또는 dadh_atlasI-d[ a ]번째 아틀라스에 적용가능한 디코딩된 아틀라스 데이터 해시 SEI 메시지를 포함하는 액세스 유닛에서의 아틀라스 데이터 유닛 B가 출력되고 그에 대한 FrameOrderCnt( auB )가 FrameOrderCnt( auA )보다 더 큰 것 중 임의의 것이 참일 때까지 디코딩된 아틀라스 데이터 해시 SEI 메시지가 코딩 순서로 [dadh_atlas_id[ a ]]번째 아틀라스에 대해 지속되는 것을 특정하는데, 여기서 FrameOrderCnt( auB ) 및 FrameOrderCnt( auA )는, auB에 대한 아틀라스 프레임 순서 카운트에 대한 아틀라스 데이터 디코딩 프로세스의 기동 직후에, 제각기 auB 및 auA의 FrameOrderCntVal 값들이다.
일부 예들에서, 해시 값을 계산하기 전에, 해시 생성기(106, 118)는 의사코드 (3)에서 다음과 같이 아틀라스 블록 패치 맵 데이터를 길이 dataLen의 btpmData라고 불리는 바이트들의 스트링이 되도록 배열한다:
Figure pct00006
신택스 요소 dadh_patch_map_md5[ i ]는 dadh_atlas_id와 동일한 vuh_atlas_id의 값을 갖는 현재 액세스 유닛에서의 아틀라스에 대한 BlockToPatchMap[ ][ ] 변수의 16 바이트 MD5 해시이다. dadh_patch_map_md5[ i ]의 값은 IETF RFC 1321에 정의된 MD5 함수들을 이용하여 의사코드 (4)에서 다음과 같이 획득된 digestVal의 값과 동일할 것이다.
Figure pct00007
16 바이트 MD5 해시에 대하여 예시되어 있지만, 임의의 적절한 해시 연산(들) 및 값들(예를 들어, 순환 중복 검사 및 체크섬과 같은 것)이 구현될 수 있다. 동작 시에, 인코딩 시스템(101)에서, 아틀라스 생성기(102)는 다중의 입력 뷰에 기초하여 아틀라스 데이터(예를 들어, 아틀라스 데이터 인스턴스, 파일, 또는 매핑)를 생성할 수 있어서, 아틀라스 데이터가 대응하는 텍스처 아틀라스 및/또는 심도 아틀라스의 패치들에 대한 패치 소스 데이터를 나타내도록 한다. 예를 들어, 아틀라스 생성기(102)는 픽셀에 대한 소스 패치, 소스 뷰, 및/또는 소스 로케이션을 나타내는 텍스처 아틀라스 및 심도 아틀라스의 각각의 픽셀에 대한 표시자를 포함하는 아틀라스 데이터를 생성할 수 있어서, 소스 패치, 소스 뷰, 및 소스 로케이션이 다중 뷰의 소스 뷰에 대한 것이도록 한다. 해시 생성기(106)는 하나 이상의 대응하는 해시 연산(들)을 사용하여 아틀라스 데이터에 기초하여 해시 값을 생성할 수 있다. 예를 들어, 아틀라스 데이터는 2D 어레이로부터 1D 어레이로 스캐닝될 수 있고 해시 생성기(106)는 하나 이상의 해시 연산(들)을 스캐닝된 1D 어레이에 적용할 수 있다. 해시 생성기(106)는 해시 값, 및 선택적으로, 다른 아틀라스 데이터에 대한 추가적인 해시 값들을, 디코딩 시스템(110)으로의 송신을 위해 아틀라스 데이터 해시 SEI 메시지와 같은 해시 값 메시지가 되도록 코딩할 수 있다. 일부 예들에서, 멀티플렉서(108)는 아틀라스 데이터 해시 SEI 메시지를, 코딩된 텍스처 아틀라스, 코딩된 심도 아틀라스, 및 아틀라스 데이터의 코딩된 버전에 대응하는 비트스트림 부분들을 또한 포함하는 비트스트림 내에 포함(예를 들어, 조합)시킨다. 코딩된 텍스처 아틀라스, 코딩된 심도 아틀라스, 및 코딩된 아틀라스 데이터는 볼류메트릭 비디오 인코더(104)에 의해 코딩될 수 있다. 코딩된 텍스처 아틀라스, 코딩된 심도 아틀라스, 및 코딩된 아틀라스 데이터는 볼류메트릭 비디오 인코더(104)에 의해 코딩되어 다중의 입력 뷰를 재구성하기 위한 구조를 제공할 수 있다. 일부 예들에서, 해시 생성기(106)는, 아틀라스 데이터 해시 SEI 메시지 내에, 해시 값을 생성하기 위해 사용되는 하나 이상의 해시 연산을 나타내는 해시 연산 표시자를 포함시킨다. 일부 예들에서, 해시 생성기는 이전 아틀라스 데이터의 지속성을 취소하거나 또는 아틀라스 데이터 해시 SEI 메시지에서 현재 아틀라스 데이터의 지속성을 개시하기 위한 표시자를 포함한다. 일부 예들에서, 해시 생성기(106)는 제공된 아틀라스들 및 해시 값들의 수의 표시자 및 아틀라스 데이터 해시 SEI 메시지에서 해시 값들 및 아틀라스들을 인덱싱하기 위한 하나 이상의 인덱스를 포함한다.
디코딩 시스템(110)에서, 디코딩 시스템(110)의 인터페이스는 코딩된 텍스처 아틀라스, 코딩된 심도 아틀라스, 및 코딩된 아틀라스 데이터를 나타내는 비트스트림 부분들 및 인코더에 대응하는 임의의 데이터를 포함할 수 있는 아틀라스 데이터 해시 SEI 메시지와 같은 아틀라스 데이터 해시 값 메시지를 포함하는 비트스트림을 획득한다. 볼류메트릭 비디오 디코더(114)는 디코딩된 텍스처 아틀라스, 디코딩된 심도 아틀라스, 및 디코딩된 아틀라스 데이터(예를 들어, 아틀라스 데이터 인스턴스, 파일, 또는 매핑)를 생성하기 위해 비트스트림 부분들을 디코딩한다. 볼류메트릭 비디오 디코더(114)는 디코딩된 아틀라스 데이터에 (예를 들어, 아틀라스 데이터 해시 SEI 메시지에서 시그널링된 해시 연산 표시자에 기초하여 선택된) 인코더와 동일한 해시 연산(들)을 적용하여 디코더 측 해시 값을 생성한다. 비교기(120)는 아틀라스 데이터 해시 SEI 메시지에서 획득된 인코더 측 해시 값을 디코더 측 해시 값과 비교한다. 비교기(120)가 인코더 측 해시 값이 (해시 생성기(118)에서 생성된) 디코더 측 해시 값과 일치한다고 결정할 때, 비교기(120)는 디코딩된 텍스처 아틀라스, 디코딩된 심도 아틀라스, 및 디코딩된 아틀라스 데이터를 사용하여 사용자에게 제시하기 위한 뷰(예를 들어, 재구성된 멀티뷰에서의 뷰포트를 나타냄)를 생성하는데 있어서 사용하기 위해 디코딩된 아틀라스 데이터를 릴리즈(release)하는 표시자를 데이터 재구성기(116)에 출력할 수 있다. 비교기(120)가 인코더 측 해시 값이 디코더 측 해시 값과 일치하지 않는다고 결정할 때, 비교기(120)는 불일치를 나타내는 표시자(예를 들어, 에러 플래그)를 출력하고, 디코더는 뷰의 제시를 방지하고, 관련 비트스트림의 새로운 사본을 요청하고, 수신된 비트스트림의 수정된 디코딩을 시도하고, 획득된 데이터를 폐기하고, 표시를 사용자에게 송신하는 것 등을 할 수 있다.
도 1의 인코딩 시스템(101) 및/또는 디코딩 시스템(110)을 구현하는 예시적인 방식이 도 1에 예시되어 있지만, 도 1에 예시된 요소들, 프로세스들, 및/또는 디바이스들 중 하나 이상이 임의의 다른 방식으로 조합, 분할, 재배열, 생략, 제거 및/또는 구현될 수 있다. 또한, 도 1의 예시적인 아틀라스 생성기(102), 예시적인 볼류메트릭 비디오 인코더(104), 예시적인 해시 생성기(106), 예시적인 멀티플렉서(108), 및/또는 보다 일반적으로, 예시적인 인코딩 시스템(101) 및/또는 도 1의 예시적인 디멀티플렉서(112), 예시적인 볼류메트릭 비디오 디코더(114), 예시적인 해시 생성기(118), 예시적인 데이터 재구성기(116), 예시적인 비교기(120), 및/또는 보다 일반적으로, 예시적인 디코딩 시스템(110)은 하드웨어, 소프트웨어, 펌웨어 및/또는 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 조합에 의해 구현될 수 있다. 따라서, 예를 들어, 도 1의 예시적인 아틀라스 생성기(102), 예시적인 볼류메트릭 비디오 인코더(104), 예시적인 해시 생성기(106), 예시적인 멀티플렉서(108), 및/또는 보다 일반적으로, 예시적인 인코딩 시스템(101) 및/또는 도 1의 예시적인 디멀티플렉서(112), 예시적인 볼류메트릭 비디오 디코더(114), 예시적인 해시 생성기(118), 예시적인 데이터 재구성기(116), 예시적인 비교기(120), 및/또는 보다 일반적으로, 예시적인 디코딩 시스템(110) 중 임의의 것은 하나 이상의 아날로그 또는 디지털 회로(들), 로직 회로들, 프로그래머블 프로세서(들), 프로그래머블 제어기(들), 그래픽 처리 유닛(들)(GPU(들)), 디지털 신호 프로세서(들)(DSP(들)), 주문형 집적 회로(들)(ASIC(들)), 프로그래머블 로직 디바이스(들)(PLD(들)) 및/또는 필드 프로그래머블 로직 디바이스(들)(FPLD(들))에 의해 구현될 수 있다. 순전히 소프트웨어 및/또는 펌웨어 구현을 커버하기 위해 본 특허의 장치 또는 시스템 청구항들 중 임의의 것을 읽을 때, 도 1의 예시적인 아틀라스 생성기(102), 예시적인 볼류메트릭 비디오 인코더(104), 예시적인 해시 생성기(106), 예시적인 멀티플렉서(108), 및/또는 보다 일반적으로, 예시적인 인코딩 시스템(101) 및/또는 도 1의 예시적인 디멀티플렉서(112), 예시적인 볼류메트릭 비디오 디코더(114), 예시적인 해시 생성기(118), 예시적인 데이터 재구성기(116), 예시적인 비교기(120), 및/또는 보다 일반적으로, 예시적인 디코딩 시스템(110) 중 적어도 하나는 이로써 소프트웨어 및/또는 펌웨어를 포함하는, 메모리, DVD(digital versatile disk), CD(compact disk), 블루레이 디스크 등과 같은 비일시적 컴퓨터 판독가능 저장 디바이스 또는 저장 디스크를 포함하도록 명시적으로 정의된다. 또한, 예시적인 인코딩 시스템(101) 및/또는 예시적인 디코딩 시스템(110)은 도 1에 예시된 것들에 더하여 또는 그 대신에 하나 이상의 요소, 프로세스 및/또는 디바이스를 포함할 수 있고, 및/또는, 예시된 요소들, 프로세스들 및 디바이스들 중 임의의 것 또는 전부 중 하나보다 많은 것을 포함할 수 있다. 본 명세서에서 사용되는 바와 같이, "통신 상태에 있는(in communication)"이라는 문구는, 그의 변형들을 포함하여, 직접 통신 및/또는 하나 이상의 중간 컴포넌트를 통한 간접 통신을 포괄하며, 직접적인 물리적 (예컨대, 유선) 통신 및/또는 상시 통신(constant communication)을 요구하지는 않고, 오히려 주기적인 간격, 스케줄링된 간격, 비주기적인 간격으로, 및/또는 일회성 이벤트에서 선택적인 통신을 추가적으로 포함한다.
도 1의 인코딩 시스템(101) 및/또는 디코딩 시스템(110)을 구현하기 위한 예시적인 하드웨어 로직, 머신 판독가능 명령어들, 하드웨어 구현 상태 머신들, 및/또는 이들의 임의 조합을 나타내는 흐름도들이 도 2 및 3에 도시되어 있다. 머신 판독가능 명령어들은 도 4 및 도 5와 연계하여 이하에서 논의되는 예시적인 프로세서 플랫폼(400, 500)에 도시된 프로세서(412, 512)와 같은 컴퓨터 프로세서에 의한 실행을 위한 하나 이상의 실행가능 프로그램 또는 실행가능 프로그램의 부분(들)일 수 있다. 프로그램은 CD-ROM, 플로피 디스크, 하드 드라이브, DVD, 블루레이 디스크, 또는 프로세서(412, 512)와 연관된 메모리와 같은 비일시적 컴퓨터 판독가능 저장 매체 상에 저장된 소프트웨어로 구체화될 수 있지만, 전체 프로그램 및/또는 그 부분들은 대안적으로 프로세서(412, 512) 이외의 디바이스에 의해 실행될 수 있고 및/또는 펌웨어 또는 전용 하드웨어로 구체화될 수 있다. 또한, 예시적인 프로그램이 도 4 및 도 5에 예시된 흐름도를 참조하여 설명되지만, 예시적인 인코딩 시스템(101) 및/또는 디코딩 시스템(110)을 구현하는 많은 다른 방법들이 대안적으로 사용될 수 있다. 예를 들어, 블록들의 실행 순서는 변경될 수 있고, 및/또는, 설명된 블록들 중 일부는 변경, 제거, 또는 조합될 수 있다. 추가적으로 또는 대안적으로, 블록들 중 임의의 것 또는 전부는 소프트웨어 또는 펌웨어를 실행하지 않고 대응하는 동작을 수행하도록 구조화되는 하나 이상의 하드웨어 회로(예를 들어, 이산 및/또는 통합 아날로그 및/또는 디지털 회로, FPGA, ASIC, 비교기, 연산 증폭기(op-amp), 로직 회로 등)에 의해 구현될 수 있다.
본 명세서에 설명된 머신 판독가능 명령어들은 압축된 포맷, 암호화된 포맷, 파편화된 포맷(fragmented format), 컴파일링된 포맷, 실행가능 포맷, 패키징된 포맷 등 중 하나 이상으로 저장될 수 있다. 본 명세서에 설명된 바와 같은 머신 판독가능 명령어들은 머신 실행가능 명령어들을 생성, 제조, 및/또는 생산하기 위해 활용될 수 있는 데이터(예를 들어, 명령어들의 부분들, 코드, 코드의 표현들(representations of code) 등)로서 저장될 수 있다. 예를 들어, 머신 판독가능 명령어들은 파편화되어 하나 이상의 저장 디바이스 및/또는 컴퓨팅 디바이스(예를 들어, 서버들) 상에 저장될 수 있다. 머신 판독가능 명령어들은 그것들을 컴퓨팅 디바이스 및/또는 다른 머신에 의해 직접 판독가능, 해석가능, 및/또는 실행가능하게 하기 위해 설치, 수정, 적응, 업데이트, 조합, 보충, 구성, 암호해독, 압축해제, 패킹해제(unpacking), 분배, 재할당, 컴파일 등 중 하나 이상을 필요로 할 수 있다. 예를 들어, 머신 판독가능 명령어들은 개별 컴퓨팅 디바이스들 상에서 개별적으로 압축되고, 암호화되고, 저장되는 다중 부분에 저장될 수 있고, 여기서, 부분들은, 암호해독되고, 압축해제되고, 조합될 때, 본 명세서에 설명된 것과 같은 프로그램을 구현하는 실행가능 명령어들의 세트를 형성한다.
또 다른 예에서, 머신 판독가능 명령어들은 그것들이 컴퓨터에 의해 판독될 수 있는 상태로 저장될 수 있지만, 특정 컴퓨팅 디바이스 또는 다른 디바이스 상에서 명령어들을 실행하기 위해서 라이브러리(예를 들어, DLL(dynamic link library), SDK(software development kit), API(application programming interface)) 등의 추가를 요구할 수 있다. 또 다른 예에서, 머신 판독가능 명령어들은 머신 판독가능 명령어들 및/또는 대응하는 프로그램(들)이 전체적으로 또는 부분적으로 실행될 수 있기 전에 구성될(예를 들어, 설정이 저장되고, 데이터가 입력되고, 네트워크 어드레스들이 기록되는 등) 필요가 있을 수 있다. 따라서, 개시된 머신 판독가능 명령어들 및/또는 대응하는 프로그램(들)은, 저장되거나 또는 다른 방식으로 정지 중(at rest) 또는 수송 중(in transit)일 때 머신 판독가능 명령어들 및/또는 프로그램(들)의 특정 포맷 또는 상태에 관계없이 이러한 머신 판독가능 명령어들 및/또는 프로그램(들)을 포괄하도록 의도된다.
본 명세서에서 설명된 머신 판독가능 명령어들은 임의의 과거, 현재, 또는 미래의 명령어 언어, 스크립팅 언어, 프로그래밍 언어 등에 의해 표현될 수 있다. 예를 들어, 머신 판독가능 명령어들은 다음의 언어들 중 임의의 것을 이용하여 표현될 수 있다: C, C++, Java, C#, Perl, Python, JavaScript, HTML(HyperText Markup Language), SQL(Structured Query Language), Swift 등.
위에서 언급한 바와 같이, 도 2 및 도 3의 예시적인 프로세스들은, 하드 디스크 드라이브, 플래시 메모리, 판독 전용 메모리, 컴팩트 디스크, 디지털 다목적 디스크, 캐시, 랜덤 액세스 메모리 및/또는 임의의 지속기간 동안(예를 들어, 연장된 시간 기간 동안, 영구적으로, 짧은 인스턴스 동안, 일시적으로 버퍼링하는 동안, 및/또는 정보의 캐싱 동안) 정보가 저장되는 임의의 다른 저장 디바이스 또는 저장 디스크와 같은 비일시적 컴퓨터 및/또는 머신 판독가능 매체 상에 저장되는 실행가능 명령어들(예를 들어, 컴퓨터 및/또는 머신 판독가능 명령어들)을 사용하여 구현될 수 있다. 본 명세서에서 사용될 때, 비일시적 컴퓨터 판독가능한 매체라는 용어는 임의 유형의 컴퓨터 판독가능 저장 디바이스 및/또는 저장 디스크를 포함하고 전파 신호(propagating signal)를 배제하고 송신 매체를 배제하는 것으로 명시적으로 정의된다.
"포함하는(including)" 및 "포함하는(comprising)"(및 그의 모든 형태 및 시제)은 본 명세서에서 개방형 용어(open ended term)인 것으로 사용된다. 따라서, 청구항이 전제부로서 또는 임의의 종류의 청구항 기재 내에서 "포함(include)" 또는 "포함(comprise)"의 임의의 형태(예컨대, 포함한다, 포함한다, 포함하는, 포함하는, 갖는 등)를 채택할 때마다, 이는 추가적인 요소들, 용어들 등이 대응하는 청구항 또는 기재의 범위 바깥에 속하지 않으면서 존재할 수 있다는 것이 이해될 것이다. 본 명세서에 사용되는 바로는, "적어도" 라는 문구가 예를 들어, 청구항의 전제부에서 전환 용어로서 사용되는 경우, 그것은 "포함하는(comprising)" 및 "포함하는(including)"이라는 용어가 개방형 종결되는 것과 동일한 방식으로 개방형 종결된다. "및/또는"이라는 용어는, 예를 들어, A, B, 및/또는 C와 같은 형태로 사용될 때, (1) A 단독, (2) B 단독, (3) C 단독, (4) A와 B, (5) A와 C, (6) B와 C, 및 (7) A와 B와 C와 같은 A, B, C의 임의의 조합 또는 부분집합을 지칭한다. 구조들, 컴포넌트들, 아이템들, 객체들 및/또는 사물들을 설명하는 맥락에서 본 명세서에 사용되는 바로는, "A 및 B 중 적어도 하나"라는 문구는 (1) 적어도 하나의 A, (2) 적어도 하나의 B 및 (3) 적어도 하나의 A 및 적어도 하나의 B 중 임의의 것을 포함하는 구현들을 지칭하도록 의도된다. 유사하게, 구조들, 컴포넌트들, 아이템들, 객체들 및/또는 사물들을 설명하는 맥락에서 본 명세서에서 사용되는 바로는, "A 또는 B 중 적어도 하나"라는 문구는 (1) 적어도 하나의 A, (2) 적어도 하나의 B, 및 (3) 적어도 하나의 A 및 적어도 하나의 B 중 임의의 것을 포함하는 구현들을 지칭하도록 의도된다. 프로세스들, 명령어들, 액션들, 활동들 및/또는 단계들의 수행 또는 실행을 설명하는 맥락에서 본 명세서에 사용되는 바로는, "A 및 B 중 적어도 하나(at least one of A and B)"라는 문구는 (1) 적어도 하나의 A, (2) 적어도 하나의 B, 및 (3) 적어도 하나의 A 및 적어도 하나의 B 중 임의의 것을 포함하는 구현들을 지칭하도록 의도된다. 유사하게, 프로세스들, 명령어들, 액션들, 활동들 및/또는 단계들의 수행 또는 실행을 설명하는 맥락에서 본 명세서에 사용되는 바로는, "A 또는 B 중 적어도 하나"라는 문구는 (1) 적어도 하나의 A, (2) 적어도 하나의 B, 및 (3) 적어도 하나의 A 및 적어도 하나의 B 중 임의의 것을 포함하는 구현들을 지칭하도록 의도된다.
본 명세서에서 사용되는 바로는, 단수 참조들(예를 들어, "a", " an", " first", " second" 등)은 복수를 배제하지 않는다. 본 명세서에서 사용된, 단수("a" 또는 "an") 엔티티인 용어는 해당 엔티티 중 하나 이상을 지칭한다. 용어 "한(a 또는 an)", "하나 이상", 및 "적어도 하나"는 본 명세서에서 상호교환적으로 사용될 수 있다. 더욱이, 개별적으로 열거되지만, 복수의 수단, 요소 또는 방법 액션은, 예를 들어, 단일 유닛 또는 프로세서에 의해 구현될 수 있다. 추가적으로, 개별 특징들이 상이한 예들 또는 청구항들에 포함될 수 있지만, 이들은 가능하게는 조합될 수 있고, 상이한 예들 또는 청구항들에 포함되었다고 해서 특징들의 조합이 실현가능하지 않고 및/또는 유리하지 않다는 것을 암시하지는 않는다.
도 2는 인코딩 시스템(101)이 적절히 디코딩되는 것을 보장하기 위해 인코딩 시스템(101)에 의해 사용될 수 있는 해싱된 아틀라스 데이터를 포함하는 SEI 메시지를 갖는 비트스트림을 생성하도록 예시적인 인코딩 시스템(101)을 구현하기 위해 실행될 수 있는 예시적인 머신 판독가능 명령어들(200)을 대표하는 흐름도이다. 명령어들(200)이 도 2의 예시적인 인코딩 시스템(101)과 연계하여 기술되어 있지만, 명령어들(200)은 임의 유형의 인코딩 시스템과 연계하여 기술될 수 있다.
블록(202)에서, 아틀라스 생성기(102)가 입력 데이터가 수신되거나 획득되는지를 결정한다. 입력 데이터는 비디오의 일부로서 디스플레이될 이미지의 하나 이상의 뷰에 대응하는 비디오 이미지 데이터이다. 입력 데이터는 프로세서, 저장소, 센서, 비디오 생성 디바이스 등으로부터 획득될 수 있다. 예시적인 아틀라스 생성기(102)가 입력 데이터가 수신되지 않았다고 결정하는 경우(블록 202, 아니오), 제어는 입력 데이터가 수신(예를 들어, 획득)될 때까지 블록(202)으로 복귀한다. 예시적인 아틀라스 생성기(102)가 입력 데이터가 수신되었다고 결정하는 경우(블록 202: 예), 예시적인 아틀라스 생성기(102)는 수신된 입력 데이터에 기초하여 (예를 들어, V3C 또는 MIV 인코더를 이용하여) 아틀라스 데이터, 텍스처 아틀라스 데이터, 심도 아틀라스 데이터 등을 생성한다(블록 204). 예를 들어, 아틀라스 생성기(102)는 2차원 어레이 변수(예를 들어, 위에 정의된 BlockToPatchMap[ y ][ x ])를 사용하여 아틀라스 데이터를 생성할 수 있다.
블록(206)에서, 예시적인 해시 생성기(106)가 아틀라스 데이터를 해싱하고 해싱된 아틀라스 데이터를 SEI 메시지 내에 포함시킨다. 일부 예들에서, 해시 생성기(106)는 또한 SEI 메시지 내에 해시 프로토콜을 포함시킨다(예를 들어, 따라서 디코딩 시스템(110)은 동일한 해시 프로토콜을 사용하여 비트스트림을 해싱할 수 있다). 위에서 설명된 바와 같이, 해시 생성기(106)는 SEI 메시지를 생성할 수 있고 및/또는 또 다른 컴포넌트로부터 SEI 메시지를 획득할 수 있고, 해싱된 아틀라스 데이터를 SEI 메시지 내에 포함(예를 들어, 임베딩)시킬 수 있다. 해시 생성기(106)는 16 바이트 MD5 해시, CRC(cyclic redundancy check) 해시, 체크섬 해시, 및/또는 임의의 다른 유형의 해시 프로토콜을 사용하여 아틀라스 데이터의 해시를 생성할 수 있다. 블록(208)에서, 예시적인 볼류메트릭 비디오 인코더(104)가 아틀라스 데이터, 텍스처 아틀라스 데이터, 및/또는 심도 아틀라스 데이터를 인코딩 및/또는 압축함으로써 아틀라스 데이터, 텍스처 아틀라스 데이터, 및/또는 심도 아틀라스 데이터에 기초하여 인코딩된 비트스트림들(예를 들어, 인코딩된 비트스트림 데이터)을 생성한다. 볼류메트릭 비디오 인코더(104)는 임의 유형의 아틀라스 인코딩, 비디오 인코딩 기법, 아틀라스 압축, 및/또는 비디오 압축 기법을 사용할 수 있다.
블록(210)에서, 예시적인 멀티플렉서(108)가 예시적인 볼류메트릭 비디오 인코더(104)의 인코딩된 비트스트림들과 예시적인 해시 생성기(106)로부터의 해싱된 아틀라스 데이터를 포함하는 SEI 메시지를 조합함으로써 비트스트림 데이터를 생성한다. 예시적인 멀티플렉서(108)는 임의의 유형의 멀티플렉싱 프로토콜을 사용하여 2개의 신호를 조합할 수 있다. 블록(212)에서, 예시적인 멀티플렉서(108)는 비트스트림 데이터를 디코딩 시스템(110)에 송신한다. 예를 들어, 멀티플렉서(108)는 비트스트림 데이터 신호를 인터페이스(예를 들어, 도 4의 예시적인 인터페이스(420))에 출력하여 유선 또는 무선 접속을 통해 디코딩 시스템(110)에 출력할 수 있다.
도 3은 디코딩 시스템(110)이 적절하게 디코딩하고 있는 것 및/또는 비트스트림이 임의의 에러들을 포함하지 않는 것을 보장하기 위해 디코딩 시스템(110)에 의해 사용될 수 있는 해싱된 아틀라스 데이터를 포함하는 SEI 메시지를 갖는 비트스트림을 생성하도록 예시적인 디코딩 시스템(110)을 구현하기 위해 실행될 수 있는 예시적인 머신 판독가능 명령어들(300)을 대표하는 흐름도이다. 명령어들(300)이 도 1의 예시적인 디코딩 시스템(110)과 연계하여 기술되지만, 명령어들(300)은 임의 유형의 디코딩 시스템과 연계하여 기술될 수 있다.
블록(302)에서, 디멀티플렉서(112)가 비트스트림 데이터가 인코딩 시스템(101)으로부터 수신되거나 획득되는지를 결정한다. 전술한 바와 같이, 비트스트림 데이터는 인코딩된 비디오 데이터 및 대응하는 SEI 메시지들을 포함했다. 디멀티플렉서(112)는 유선 또는 무선 접속을 통해 비트스트림을 수신하는 인터페이스(예를 들어, 도 5의 인터페이스(520))로부터 비트스트림 데이터를 획득할 수 있다. 예시적인 디멀티플렉서(112)가 비트스트림 데이터가 수신되지 않았다고 결정하는 경우(블록 302, 아니오), 제어는 비트스트림 데이터가 수신될(예를 들어, 획득될) 때까지 블록(302)으로 복귀한다. 예시적인 디멀티플렉서(112)가 비트스트림 데이터가 수신되었다고 결정하는 경우(블록 302: 예), 예시적인 디멀티플렉서(112)는 비트스트림 데이터를 디멀티플렉싱(예를 들어, 분리 및/또는 파싱)하여 비트스트림 데이터로부터 데이터 비트스트림들 및 SEI 메시지를 분리한다(블록 304).
블록(306)에서, 예시적인 볼류메트릭 비디오 디코더(114)가 비트스트림 데이터를 디코딩하여 비트스트림 데이터를 사용하여(예를 들어, V3C 또는 MIV 디코더를 사용하여) 디코딩된 아틀라스 데이터, 디코딩된 텍스처 아틀라스 데이터, 디코딩된 심도 아틀라스 데이터 등을 생성한다. 예시적인 볼류메트릭 비디오 디코더(114)는 데이터를 인코딩하기 위해 사용된 기법(예를 들어, 볼류메트릭 비디오 인코더(104)에 의해 사용된 기법)에 대응하는 디코딩 기법을 사용하여 데이터를 디코딩한다. 블록(308)에서, 예시적인 해시 생성기(118)가 디코딩된 아틀라스 데이터를 해싱하여 디코더 측 아틀라스 해시 값을 생성한다. 예시적인 해시 생성기(118)는 인코딩 시스템(101)에서 아틀라스 데이터를 해싱하기 위해 사용된 동일한 기법을 사용하여 디코딩된 아틀라스 데이터를 해싱한다. 이러한 방식으로, 디코더 측 해시 값이 (예를 들어, 획득된 SEI 메시지로부터의) 인코더 측 해시 값과 일치하는 경우, 디코딩 시스템(110)은 디코딩 에러가 발생했다고 결정한다. 일부 예들에서, 해시 생성기(118)는 SEI 메시지로부터 해시 프로토콜을 추출한다.
블록(310)에서, 예시적인 비교기(120)는 SEI 메시지로부터 인코더 측 아틀라스 해시 값을 추출하거나 다른 방식으로 획득한다. 전술한 바와 같이, 인코딩 시스템(101)은 인코딩 프로세스 동안 아틀라스 데이터에 대해 하나 이상의 해시 연산을 수행하고 인코더 측 해싱된 아틀라스를 SEI 메시지의 일부로서 송신한다. 블록(312)에서, 예시적인 비교기(120)는 (예를 들어, 인코딩 시스템(101)에서 결정되고 SEI 메시지로부터 추출된) 인코더 측 아틀라스 해시 값을 디코더 측 아틀라스 해시 값(예를 들어, 디코딩 시스템(110)에서 해시 생성기(118)에 의해 생성된 해시 값)과 비교한다. 전술한 바와 같이, 예시적인 비교기(120)는 인코더 측 아틀라스 해시 값을 디코더 측 아틀라스 값과 비교하여 정확한 비트스트림의 전송 및/또는 비트스트림의 디코딩이 수행되었는지를 결정한다.
블록(314)에서, 예시적인 비교기(120)는 인코더 측 아틀라스 해시 값이 디코더 측 아틀라스 해시 값과 상이한지를 결정한다. 인코더 측 아틀라스 해시 값 및 디코더 측 아틀라스 해시 값이 동일한 해싱 프로토콜을 사용하여 해싱되고 아틀라스 데이터가 동일한 것으로 가정되기 때문에, 인코더 측 해시 값 및 디코더 측 해시 값들은 송신 에러 또는 디코딩 에러가 존재하지 않는 한 동일할 것이다. 따라서, 예시적인 비교기(120)가 인코더 측 아틀라스 해시 값이 디코더 측 아틀라스 해시 값과 상이하다고 결정한 경우(블록 314: 예), 예시적인 비교기(120)는 불일치를 플래깅하고(예를 들어, 불일치를 나타내는 값을 출력하고) 및/또는 불일치에 기초하여 명령어를 실행하는데(블록 316), 그 이유는 디코딩 시스템(110)이 2개의 해싱된 아틀라스 값이 상이할 때 송신 및/또는 디코딩 에러가 있었다는 것을 결정하기 때문이다. 예를 들어, 비교기(120)의 출력은 불일치가 사용자 인터페이스에서 반영되게 야기하여 사용자에게 디코딩 에러를 알릴 수 있다. 에러 플래그는 불일치에 대응하는 액션을 수행하기 위해 또 다른 프로세서 또는 컴포넌트에 송신될 수 있다. 일부 예들에서, 에러 플래그는 대응하는 데이터가 폐기되게 야기하기 위해 데이터 재구성기(116) 및/또는 또 다른 디바이스에 출력될 수 있다. 일부 예들에서, 비교기(120), 데이터 재구성기(115), 및/또는 또 다른 디바이스는 획득된 비트스트림 데이터 및/또는 SEI 메시지가 지속성을 나타내는 값을 포함하는지를 결정할 수 있다. 비교기(120), 데이터 재구성기(115), 및/또는 또 다른 디바이스가 획득된 비트스트림 데이터가 지속성을 나타내는 값을 포함하는 것을 결정하는 경우, 비교기(120) 디바이스는 비트스트림에 대응하는 대응하는 액세스 유닛들이 에러들을 갖는 것으로서 플래깅한다.
예시적인 비교기(120)가 인코더 측 아틀라스 해시 값이 디코더 측 아틀라스 해시 값과 상이하지 않다고 결정하는 경우(블록 314: 아니오), 디코딩 시스템(110)이 비트스트림이 정확하게 디코딩되었다고 결정하기 때문에 제어가 종료된다. 일부 예들에서, 비교기(120)의 출력은 데이터 재구성기(116)에 송신된다. 이러한 방식으로, 데이터 재구성기(116)는 비교기(120)의 결과(예를 들어, 일치 또는 불일치를 개시함)에 기초하여 디코딩된 아틀라스 데이터를 폐기할지 및/또는 디코딩된 아틀라스 데이터를 재구성된 뷰들이 되도록 재구성할지를 결정할 수 있다.
도 4는 도 1의 인코딩 시스템(101)을 구현하기 위해 도 2의 명령어들을 실행하도록 구조화된 예시적인 프로세서 플랫폼(400)의 블록도이다. 프로세서 플랫폼(400)은, 예를 들어, 서버, 개인용 컴퓨터, 워크스테이션, 자체 학습 머신(예를 들어, 신경망), 모바일 디바이스(예를 들어, 셀 폰, 스마트 폰, iPadTM와 같은 태블릿), PDA(personal digital assistant), 인터넷 어플라이언스, DVD 플레이어, CD 플레이어, 디지털 비디오 레코더, 블루레이 플레이어, 게이밍 콘솔, 개인용 비디오 레코더, 셋톱 박스, 헤드셋 또는 다른 웨어러블 디바이스, 또는 임의의 다른 유형의 컴퓨팅 디바이스일 수 있다.
도시된 예의 프로세서 플랫폼(400)은 프로세서(412)를 포함한다. 도시된 예의 프로세서(412)는 하드웨어이다. 예를 들어, 프로세서(412)는 임의의 원하는 제품군 또는 제조업체의 하나 이상의 집적 회로, 로직 회로, 마이크로프로세서, GPU, DSP 또는 제어기에 의해 구현될 수 있다. 하드웨어 프로세서는 반도체 기반(예를 들어, 실리콘 기반) 디바이스일 수 있다. 이 예에서, 프로세서는 도 1의 아틀라스 생성기(102), 볼류메트릭 비디오 인코더(104), 해시 생성기(106), 및 멀티플렉서(108)를 구현한다.
도시된 예의 프로세서(412)는 로컬 메모리(413)(예를 들어, 캐시)를 포함한다. 도시된 예의 프로세서(412)는, 버스(418)를 통해, 휘발성 메모리(414) 및 비휘발성 메모리(416)를 포함하는 메인 메모리와 통신 상태에 있다. 휘발성 메모리(414)는 SDRAM(Synchronous Dynamic Random Access Memory), DRAM(Dynamic Random Access Memory), RDRAM®(RAMBUS® Dynamic Random Access Memory) 및/또는 임의의 다른 유형의 랜덤 액세스 메모리 디바이스에 의해 구현될 수 있다. 비휘발성 메모리(416)는 플래시 메모리 및/또는 임의의 다른 원하는 유형의 메모리 디바이스에 의해 구현될 수 있다. 메인 메모리(414, 416)에 대한 액세스는 메모리 제어기에 의해 제어된다.
도시된 예의 프로세서 플랫폼(400)은 인터페이스 회로(420)를 또한 포함한다. 인터페이스 회로(420)는 이더넷 인터페이스, USB(universal serial bus), Bluetooth® 인터페이스, NFC(near field communication) 인터페이스, 및/또는 PCI 익스프레스 인터페이스와 같은 임의 유형의 인터페이스 표준에 의해 구현될 수 있다.
도시된 예에서, 하나 이상의 입력 디바이스(422)가 인터페이스 회로(420)에 접속된다. 입력 디바이스(들)(422)는 사용자가 데이터 및/또는 명령들을 프로세서(412)에 입력하는 것을 허용한다. 입력 디바이스(들)는 예를 들어, 오디오 센서, 마이크로폰, 카메라(스틸 또는 비디오), 키보드, 버튼, 마우스, 터치 스크린, 트랙 패드, 트랙볼, 아이소포인트(isopoint) 및/또는 음성 인식 시스템에 의해 구현될 수 있다.
하나 이상의 출력 디바이스(424)가 도시된 예의 인터페이스 회로(420)에 또한 접속된다. 출력 디바이스들(424)은 예를 들어, 디스플레이 디바이스들(예를 들어, LED(light emitting diode), OLED(organic light emitting diode), LCD(liquid crystal display), CRT(cathode ray tube display), IPS(in-place switching) 디스플레이, 터치 스크린 등), 촉각 출력 디바이스, 프린터 및/또는 스피커에 의해 구현될 수 있다. 따라서, 예시된 예의 인터페이스 회로(420)는 통상적으로 그래픽 드라이버 카드, 그래픽 드라이버 칩 및/또는 그래픽 드라이버 프로세서를 포함한다.
도시된 예의 인터페이스 회로(420)는 또한 송신기, 수신기, 송수신기, 모뎀, 주거용 게이트웨이(residential gateway), 무선 액세스 포인트, 및/또는 네트워크(426)를 통해 외부 머신들(예를 들어, 임의의 종류의 컴퓨팅 디바이스들)과의 데이터 교환을 용이하게 하는 네트워크 인터페이스와 같은 통신 디바이스를 포함한다. 통신은, 예를 들어, 이더넷 접속, DSL(digital subscriber line) 접속, 전화선 접속, 동축 케이블 시스템, 위성 시스템, 현장 무선 시스템(line-of-site wireless system), 셀룰러 전화 시스템 등을 통해 이루어질 수 있다.
도시된 예의 프로세서 플랫폼(400)은 또한 소프트웨어 및/또는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스(428)를 포함한다. 이러한 대용량 저장 디바이스(428)의 예들은 플로피 디스크 드라이브들, 하드 드라이브 디스크들, 컴팩트 디스크 드라이브들, 블루레이 디스크 드라이브들, RAID(redundant array of independent disks) 시스템들, 및 DVD(digital versatile disk) 드라이브들을 포함한다.
도 2의 머신 실행가능 명령어들(432)은 대용량 저장 디바이스(428)에, 휘발성 메모리(414)에, 비휘발성 메모리(416)에, 및/또는 CD 또는 DVD와 같은 이동식 비일시적 컴퓨터 판독가능 저장 매체 상에 저장될 수 있다.
도 5는 도 1의 디코딩 시스템(110)을 구현하기 위해 도 3의 명령어들을 실행하도록 구조화된 예시적인 프로세서 플랫폼(500)의 블록도이다. 프로세서 플랫폼(500)은, 예를 들어, 서버, 개인용 컴퓨터, 워크스테이션, 자체 학습 머신(예를 들어, 신경망), 모바일 디바이스(예를 들어, 셀 폰, 스마트 폰, iPadTM와 같은 태블릿), PDA(personal digital assistant), 인터넷 어플라이언스, DVD 플레이어, CD 플레이어, 디지털 비디오 레코더, 블루레이 플레이어, 게이밍 콘솔, 개인용 비디오 레코더, 셋톱 박스, 헤드셋 또는 다른 웨어러블 디바이스, 또는 임의의 다른 유형의 컴퓨팅 디바이스일 수 있다.
도시된 예의 프로세서 플랫폼(500)은 프로세서(512)를 포함한다. 도시된 예의 프로세서(512)는 하드웨어이다. 예를 들어, 프로세서(512)는 임의의 원하는 제품군 또는 제조업체의 하나 이상의 집적 회로, 로직 회로, 마이크로프로세서, GPU, DSP 또는 제어기에 의해 구현될 수 있다. 하드웨어 프로세서는 반도체 기반(예를 들어, 실리콘 기반) 디바이스일 수 있다. 이 예에서, 프로세서는 도 1의 예시적인 디멀티플렉서(112), 예시적인 볼류메트릭 비디오 디코더(114), 예시적인 데이터 재구성기(116), 예시적인 해시 생성기(118), 및 예시적인 비교기(120)를 구현한다.
도시된 예의 프로세서(512)는 로컬 메모리(513)(예컨대, 캐시)를 포함한다. 도시된 예의 프로세서(512)는 버스(518)를 통해 휘발성 메모리(514) 및 비휘발성 메모리(516)를 포함하는 메인 메모리와 통신 상태에 있다. 휘발성 메모리(514)는 SDRAM(Synchronous Dynamic Random Access Memory), DRAM(Dynamic Random Access Memory), RDRAM®(RAMBUS® Dynamic Random Access Memory) 및/또는 임의의 다른 유형의 랜덤 액세스 메모리 디바이스에 의해 구현될 수 있다. 비휘발성 메모리(516)는 플래시 메모리 및/또는 임의의 다른 원하는 유형의 메모리 디바이스에 의해 구현될 수 있다. 메인 메모리(514, 516)에 대한 액세스는 메모리 제어기에 의해 제어된다.
도시된 예의 프로세서 플랫폼(500)은 인터페이스 회로(520)를 또한 포함한다. 인터페이스 회로(520)는 이더넷 인터페이스, USB(universal serial bus), Bluetooth® 인터페이스, NFC(near field communication) 인터페이스, 및/또는 PCI 익스프레스 인터페이스와 같은 임의 유형의 인터페이스 표준에 의해 구현될 수 있다.
도시된 예에서, 하나 이상의 입력 디바이스(522)가 인터페이스 회로(520)에 접속된다. 입력 디바이스(들)(522)는 사용자가 데이터 및/또는 명령들을 프로세서(512)에 입력하는 것을 허용한다. 입력 디바이스(들)는 예를 들어, 오디오 센서, 마이크로폰, 카메라(스틸 또는 비디오), 키보드, 버튼, 마우스, 터치 스크린, 트랙 패드, 트랙볼, 아이소포인트(isopoint) 및/또는 음성 인식 시스템에 의해 구현될 수 있다.
하나 이상의 출력 디바이스(524)가 도시된 예의 인터페이스 회로(520)에 또한 접속된다. 출력 디바이스들(524)은 예를 들어, 디스플레이 디바이스들(예를 들어, LED(light emitting diode), OLED(organic light emitting diode), LCD(liquid crystal display), CRT(cathode ray tube display), IPS(in-place switching) 디스플레이, 터치 스크린 등), 촉각 출력 디바이스, 프린터 및/또는 스피커에 의해 구현될 수 있다. 따라서, 도시된 예의 인터페이스 회로(520)는 통상적으로 그래픽 드라이버 카드, 그래픽 드라이버 칩 및/또는 그래픽 드라이버 프로세서를 포함한다.
도시된 예의 인터페이스 회로(520)는 또한 송신기, 수신기, 송수신기, 모뎀, 주거용 게이트웨이(residential gateway), 무선 액세스 포인트, 및/또는 네트워크(526)를 통해 외부 머신들(예를 들어, 임의의 종류의 컴퓨팅 디바이스들)과의 데이터 교환을 용이하게 하는 네트워크 인터페이스와 같은 통신 디바이스를 포함한다. 통신은, 예를 들어, 이더넷 접속, DSL(digital subscriber line) 접속, 전화선 접속, 동축 케이블 시스템, 위성 시스템, 현장 무선 시스템(line-of-site wireless system), 셀룰러 전화 시스템 등을 통해 이루어질 수 있다.
도시된 예의 프로세서 플랫폼(500)은 또한 소프트웨어 및/또는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스(528)를 포함한다. 이러한 대용량 저장 디바이스(528)의 예들은 플로피 디스크 드라이브들, 하드 드라이브 디스크들, 컴팩트 디스크 드라이브들, 블루레이 디스크 드라이브들, RAID(redundant array of independent disks) 시스템들, 및 DVD(digital versatile disk) 드라이브들을 포함한다.
도 3의 머신 실행가능 명령어들(532)은 대용량 저장 디바이스(528)에, 휘발성 메모리(514)에, 비휘발성 메모리(516)에, 및/또는 CD 또는 DVD와 같은 이동식 비일시적 컴퓨터 판독가능 저장 매체 상에 저장될 수 있다.
비디오 디코딩 에러를 식별하기 위한 예시적인 방법들, 장치, 시스템들, 및 제조 물품들이 본 명세서에 개시된다. 추가의 예들 및 이들의 조합들은 다음을 포함한다: 예 1은 비디오의 입력 뷰들로부터 생성된 하나 이상의 아틀라스에 대한 아틀라스 데이터를 생성하는 아틀라스 생성기, 아틀라스 데이터에 대해 해시 연산을 수행하여 해시 값을 생성하고, 해시 값을 메시지에 포함시키는 해시 생성기, 및 하나 이상의 아틀라스, 아틀라스 데이터에 대응하는 코딩된 아틀라스 데이터, 및 메시지를 조합하여 비디오 비트스트림을 생성하는 멀티플렉서를 포함하는 비디오 인코딩 장치를 포함한다.
예 2는 예 1의 장치를 포함하며, 비트스트림 데이터를 디코딩 디바이스에 송신하는 인터페이스를 더 포함한다.
예 3은 예 1의 장치를 포함하고, 여기서 아틀라스 데이터는 입력 뷰들의 블록 투 패치 맵(block to patch map)에 대응하는 가변 2차원 어레이를 포함한다.
예 4는 예 1의 장치를 포함하고, 여기서 아틀라스 데이터는 블록들의 대응하는 패치들로의 매핑에 대응한다.
예 5는 예 1의 장치를 포함하고, 여기서 아틀라스 생성기는 비디오의 입력 뷰들을 텍스처 아틀라스 또는 심도 아틀라스 중 적어도 하나가 되도록 변환하고, 텍스처 아틀라스, 심도 아틀라스, 또는 아틀라스 데이터 중 적어도 하나를 인코딩하여 인코딩된 비트스트림 데이터를 생성한다.
예 6은 예 1의 장치를 포함하며, 여기서 해시 생성기는 메시지를 생성하는 것 또는 또 다른 디바이스로부터 메시지를 획득하는 것 중 적어도 하나를 한다.
예 7은 예 1의 장치를 포함하고, 여기서 해시 생성기는 16 바이트 MD5(message digest algorithm 5) 합을 이용하여 아틀라스 데이터를 해싱한다.
예 8은, 실행될 때, 하나 이상의 프로세서로 하여금 적어도, 비디오의 입력 뷰들로부터 생성된 하나 이상의 아틀라스에 대한 아틀라스 데이터를 생성하고, 아틀라스 데이터에 대해 해시 연산을 수행하여 해시 값을 생성하고, 해시 값을 메시지에 포함시키고, 및 하나 이상의 아틀라스, 아틀라스 데이터에 대응하는 코딩된 아틀라스 데이터, 및 메시지를 조합하여 비디오 비트스트림을 생성하게 야기하는 명령어들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다.
예 9는 예 8의 컴퓨터 판독가능 저장 매체를 포함하고, 여기서 명령어들은 하나 이상의 프로세서로 하여금 비트스트림 데이터를 디코딩 디바이스에 송신하게 야기한다.
예 10은 예 8의 컴퓨터 판독가능 저장 매체를 포함하고, 여기서 아틀라스 데이터는 입력 뷰들의 블록 투 패치 맵에 대응하는 가변 2차원 어레이이다.
예 11은 예 8의 컴퓨터 판독가능 저장 매체를 포함하고, 여기서 아틀라스 데이터는 아틀라스 공간 내의 블록들의 대응하는 패치들로의 매핑에 대응한다.
예 12는 예 8의 컴퓨터 판독가능 저장 매체를 포함하고, 여기서 명령어들은 하나 이상의 프로세서로 하여금 비디오의 입력 뷰들을 텍스처 아틀라스 또는 심도 아틀라스 중 적어도 하나가 되도록 변환하고, 및 텍스처 아틀라스, 심도 아틀라스, 또는 아틀라스 데이터 중 적어도 하나를 인코딩하여 인코딩된 비트스트림 데이터를 생성하게 야기한다.
예 13은 예 8의 컴퓨터 판독가능 저장 매체를 포함하고, 여기서 명령어들은 하나 이상의 프로세서로 하여금 메시지를 생성하는 것 또는 또 다른 디바이스로부터 메시지를 획득하는 것 중 적어도 하나를 하게 야기한다.
예 14는 예 8의 컴퓨터 판독가능 저장 매체를 포함하고, 여기서 명령어들은 하나 이상의 프로세서로 하여금 16 바이트 MD5(message digest algorithm 5) 합을 이용하여 아틀라스 데이터를 해싱하게 야기한다.
예 15는 비디오 인코딩 방법을 포함하는데, 이 방법은 프로세서로 명령어들을 실행함으로써 비디오의 입력 뷰들로부터 생성된 하나 이상의 아틀라스에 대한 아틀라스 데이터를 생성하는 단계, 프로세서로 명령어들을 실행함으로써 아틀라스 데이터에 대해 해시 연산을 수행하여 해시 값을 생성하는 단계, 프로세서로 명령어들을 실행함으로써 해시 값을 메시지에 포함시키는 단계, 및 프로세서로 명령어들을 실행함으로써 하나 이상의 아틀라스, 아틀라스 데이터에 대응하는 코딩된 아틀라스 데이터, 및 메시지를 조합하여 비디오 비트스트림을 생성하는 단계를 포함한다.
예 16은 예 15의 방법을 포함하며, 비트스트림 데이터를 디코딩 디바이스에 송신하는 단계를 더 포함한다.
예 17은 예 15의 방법을 포함하고, 여기서 아틀라스 데이터는 입력 뷰들의 블록 투 패치 맵(block to patch map)에 대응하는 가변 2차원 어레이를 포함한다.
예 18은 예 15의 방법을 포함하고, 여기서 아틀라스 데이터는 블록들의 대응하는 패치들로의 매핑에 대응한다.
예 19는 예 15의 방법을 포함하고, 비디오의 입력 뷰들을 텍스처 아틀라스 또는 심도 아틀라스 중 적어도 하나가 되도록 변환하고, 텍스처 아틀라스, 심도 아틀라스, 또는 아틀라스 데이터 중 적어도 하나를 인코딩하여 인코딩된 비트스트림 데이터를 생성하는 단계를 더 포함한다.
예 20은 예 15의 방법을 포함하며, 메시지를 생성하는 것 또는 또 다른 디바이스로부터 메시지를 획득하는 것 중 적어도 하나를 하는 단계를 더 포함한다.
예 21은 예 15의 방법을 포함하고, 16 바이트 MD5(message digest algorithm 5) 합을 이용하여 아틀라스 데이터를 해싱하는 단계를 더 포함한다.
예 22는 아틀라스 데이터에 대해 해시 연산을 수행하여 아틀라스 데이터의 제1 해시 값을 결정하는 해시 생성기 - 아틀라스 데이터는 볼류메트릭 비디오 비트스트림으로부터 디코딩됨 -, 및 제1 해시 값을 아틀라스 데이터의 제2 해시 값과 비교하고 - 제2 해시 값은 비디오 비트스트림에 포함됨 -, 제1 해시 값이 제2 해시 값과 일치하지 않을 때 에러 플래그를 생성하는 비교기를 포함하는 비디오 디코딩 장치를 포함한다.
예 23은 예 22의 장치를 포함하고, 비디오 비트스트림을 획득하고, 비트스트림으로부터 아틀라스 데이터 및 메시지를 분리하는 디멀티플렉서를 더 포함한다.
예 24는 예 23의 장치를 포함하며, 여기서 메시지는 제2 해시 값을 포함한다.
예 25는 예 22의 장치를 포함하며, 여기서 해시 생성기는 제2 해시 값을 생성하기 위해 사용된 것과 동일한 해시 연산을 사용하여 제1 해시 값을 생성한다.
예 26은 예 22의 장치를 포함하고, 여기서 디멀티플렉서는 네트워크 인터페이스를 통해 인코더로부터 비트스트림을 획득한다.
예 27은 예 22의 장치를 포함하며, 여기서 에러 플래그는 비디오 비트스트림의 송신 또는 비트스트림의 디코딩 중 적어도 하나에서 에러가 발생했음을 식별한다.
예 28은 예 22의 장치를 포함하고, 여기서 에러 플래그는 제1 액세스 유닛에 대응하는 제1 에러 플래그이고, 비교기는 메시지가 지속성을 표시할 때 비트스트림에서 제2 액세스 유닛에 대한 제2 에러 플래그를 생성한다.
예 29는 예 22의 장치를 포함하며, 여기서 에러 플래그는 에러가 사용자 인터페이스 상에 디스플레이되는 것, 비디오 비트스트림이 폐기되는 것, 또는 비디오 비트스트림의 새로운 사본이 요청되는 것 중 적어도 하나를 야기한다.
예 30은 예 22의 장치를 포함하며, 여기서 아틀라스 데이터는 데이터 블록에 대한 패치 인덱스를 포함한다.
예 31은 명령어들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 명령어들은, 실행될 때, 하나 이상의 프로세서로 하여금 적어도 아틀라스 데이터에 대해 해시 연산을 수행하여 아틀라스 데이터의 제1 해시 값을 결정하고 - 아틀라스 데이터는 비디오 비트스트림으로부터 디코딩됨 -, 제1 해시 값을 아틀라스 데이터의 제2 해시 값과 비교하고 - 제2 해시 값은 비디오 비트스트림에 포함됨 -, 및 제1 해시 값이 상기 제2 해시 값과 일치하지 않을 때 에러 플래그를 생성하게 야기한다.
예 32는 예 31의 컴퓨터 판독가능 저장 매체를 포함하고, 여기서 명령어는 하나 이상의 프로세서로 하여금 적어도 비디오 비트스트림을 획득하고, 비트스트림으로부터 아틀라스 데이터 및 메시지를 분리하게 야기한다.
예 33은 예 32의 컴퓨터 판독가능 저장 매체를 포함하고, 여기서 메시지는 제2 해시 값을 포함한다.
예 34는 예 31의 컴퓨터 판독가능 저장 매체를 포함하고, 여기서 명령어는 하나 이상의 프로세서로 하여금 적어도 제2 해시 값을 생성하기 위해 사용된 것과 동일한 해시 연산을 사용하여 제1 해시 값을 생성하게 야기한다.
예 35는 예 31의 컴퓨터 판독가능 저장 매체를 포함하고, 여기서 명령어는 하나 이상의 프로세서로 하여금 적어도 네트워크 인터페이스를 통해 인코더로부터 비트스트림을 획득하게 야기한다.
예 36은 예 31의 컴퓨터 판독가능 저장 매체를 포함하고, 여기서 에러 플래그는 비디오 비트스트림의 송신 또는 비트스트림의 디코딩 중 적어도 하나에서 에러가 발생했음을 식별한다.
예 37은 예 31의 컴퓨터 판독가능 저장 매체를 포함하고, 여기서 에러 플래그는 제1 액세스 유닛에 대응하는 제1 에러 플래그이고, 명령어들은 하나 이상의 프로세서로 하여금 메시지가 지속성을 표시할 때 비트스트림에서 제2 액세스 유닛에 대한 제2 에러 플래그를 생성하게 야기한다.
예 38은 예 31의 컴퓨터 판독가능 저장 매체를 포함하고, 여기서 에러 플래그는 에러가 사용자 인터페이스 상에 디스플레이되는 것, 비디오 비트스트림이 폐기되는 것, 또는 비디오 비트스트림의 새로운 사본이 요청되는 것 중 적어도 하나를 야기한다.
예 39는 예 31의 컴퓨터 판독가능 저장 매체를 포함하고, 여기서 아틀라스 데이터는 데이터 블록에 대한 패치 인덱스를 포함한다.
예 40은 비디오 디코딩 방법을 포함하며, 이 방법은 프로세서로 명령어를 실행함으로써 아틀라스 데이터에 대해 해시 연산을 수행하여 아틀라스 데이터의 제1 해시 값을 결정하는 단계 - 아틀라스 데이터는 비디오 비트스트림으로부터 디코딩됨 -, 프로세서로 명령어를 실행함으로써 제1 해시 값을 아틀라스 데이터의 제2 해시 값과 비교하는 단계 - 제2 해시 값은 비디오 비트스트림에 포함됨 -, 및 프로세서로 명령어를 실행함으로써 제1 해시 값이 제2 해시 값과 일치하지 않을 때 에러 플래그를 생성하는 단계를 포함한다.
예 41은 예 40의 방법을 포함하고, 비디오 비트스트림을 획득하는 단계, 및 비트스트림으로부터 아틀라스 데이터 및 메시지를 분리하는 단계를 더 포함한다.
예 42는 예 41의 방법을 포함하며, 여기서 메시지는 제2 해시 값을 포함한다.
예 43은 예 40의 방법을 포함하며, 제2 해시 값을 생성하기 위해 사용된 것과 동일한 해시 연산을 사용하여 제1 해시 값을 생성하는 단계를 더 포함한다.
예 44는 예 40의 방법을 포함하며, 네트워크 인터페이스를 통해 인코더로부터 비트스트림을 획득하는 단계를 더 포함한다.
예 45는 예 40의 방법을 포함하고, 여기서 에러 플래그는 비디오 비트스트림의 송신 또는 비트스트림의 디코딩 중 적어도 하나에서 에러가 발생했음을 식별한다.
예 46은 예 40의 방법을 포함하고, 여기서 에러 플래그는 제1 액세스 유닛에 대응하는 제1 에러 플래그이고, 메시지가 지속성을 표시할 때 비트스트림에서 제2 액세스 유닛에 대한 제2 에러 플래그를 생성하는 단계를 더 포함한다.
예 47은 예 40의 방법을 포함하며, 여기서 에러 플래그는 에러가 사용자 인터페이스 상에 디스플레이되는 것, 비디오 비트스트림이 폐기되는 것, 또는 비디오 비트스트림의 새로운 사본이 요청되는 것 중 적어도 하나를 야기한다.
예 48은 예 40의 방법을 포함하고, 여기서 아틀라스 데이터는 데이터 블록에 대한 패치 인덱스를 포함한다.
전술한 것으로부터, 비디오 디코딩 에러를 식별하는 예시적인 방법, 장치 및 제조 물품이 개시되었다는 것을 알 것이다. 개시된 방법, 장치 및 제조 물품은 비디오 비트스트림 데이터의 송신 및/또는 디코딩에 대응하는 송신 및/또는 디코딩 에러들을 식별함으로써 컴퓨팅 디바이스를 사용하는 효율을 개선한다. 이러한 방식으로, 에러들은 사용자의 선호도들에 기초하여 다뤄질 수 있다. 따라서, 개시된 방법들, 장치 및 제조 물품들은 컴퓨터의 기능성에서 하나 이상의 개선(들)에 관한 것이다.
특정의 예시적인 방법, 장치 및 제조 물품이 본 명세서에 개시되었지만, 본 특허의 커버리지 범위는 이에 제한되지는 않는다. 오히려, 본 특허는 본 특허의 특허청구범위 안에 공정하게 드는 모든 방법들, 장치 및 제조 물품들을 커버한다.

Claims (25)

  1. 비디오 인코딩 장치로서:
    비디오의 입력 뷰들로부터 생성된 하나 이상의 아틀라스에 대한 아틀라스 데이터를 생성하는 아틀라스 생성기;
    해시 생성기 - 상기 해시 생성기는:
    상기 아틀라스 데이터에 대해 해시 연산을 수행하여 해시 값을 생성하고; 및
    상기 해시 값을 메시지에 포함시킴 -; 및
    상기 하나 이상의 아틀라스, 상기 아틀라스 데이터에 대응하는 코딩된 아틀라스 데이터, 및 상기 메시지를 조합하여 비디오 비트스트림을 생성하는 멀티플렉서를 포함하는 장치.
  2. 제1항에 있어서, 상기 비트스트림 데이터를 디코딩 디바이스에 송신하는 인터페이스를 추가로 포함하는 장치.
  3. 제1항에 있어서, 상기 아틀라스 데이터는 상기 입력 뷰들의 블록 투 패치 맵에 대응하는 가변 2차원 어레이를 포함하는 장치.
  4. 제1항에 있어서, 상기 아틀라스 데이터는 블록들의 대응하는 패치들로의 매핑에 대응하는 장치.
  5. 제1항에 있어서, 상기 아틀라스 생성기는:
    상기 비디오의 입력 뷰들을 텍스처 아틀라스 또는 심도 아틀라스 중 적어도 하나가 되도록 변환하고; 및
    상기 텍스처 아틀라스, 상기 심도 아틀라스, 또는 상기 아틀라스 데이터 중 적어도 하나를 인코딩하여 인코딩된 비트스트림 데이터를 생성하는 장치.
  6. 제1항에 있어서, 상기 해시 생성기는 상기 메시지를 생성하는 것 또는 또 다른 디바이스로부터 상기 메시지를 획득하는 것 중 적어도 하나를 하는 장치.
  7. 제1항에 있어서, 상기 해시 생성기는 16 바이트 MD5(message digest algorithm 5) 합을 이용하여 상기 아틀라스 데이터를 해싱하는 장치.
  8. 명령어들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 명령어들은 실행될 때, 하나 이상의 프로세서로 하여금 적어도:
    비디오의 입력 뷰들로부터 생성된 하나 이상의 아틀라스에 대한 아틀라스 데이터를 생성하고;
    상기 아틀라스 데이터에 대해 해시 연산을 수행하여 해시 값을 생성하고;
    상기 해시 값을 메시지에 포함시키고; 및
    상기 하나 이상의 아틀라스, 상기 아틀라스 데이터에 대응하는 코딩된 아틀라스 데이터, 및 상기 메시지를 조합하여 비디오 비트스트림을 생성하게 야기하는 컴퓨터 판독가능 저장 매체.
  9. 제8항에 있어서, 상기 명령어들은 상기 하나 이상의 프로세서로 하여금 상기 비트스트림 데이터를 디코딩 디바이스에 송신하게 야기하는 컴퓨터 판독가능 저장 매체.
  10. 제8항에 있어서, 상기 아틀라스 데이터는 상기 입력 뷰들의 블록 투 패치 맵에 대응하는 가변 2차원 어레이인 컴퓨터 판독가능 저장 매체.
  11. 제8항에 있어서, 상기 아틀라스 데이터는 아틀라스 공간 내의 블록들의 대응하는 패치들로의 매핑에 대응하는 컴퓨터 판독가능 저장 매체.
  12. 제8항에 있어서, 상기 명령어들은 상기 하나 이상의 프로세서로 하여금:
    상기 비디오의 입력 뷰들을 텍스처 아틀라스 또는 심도 아틀라스 중 적어도 하나가 되도록 변환하고; 및
    상기 텍스처 아틀라스, 상기 심도 아틀라스, 또는 상기 아틀라스 데이터 중 적어도 하나를 인코딩하여 인코딩된 비트스트림 데이터를 생성하게 야기하는 컴퓨터 판독가능 저장 매체.
  13. 제8항에 있어서, 상기 명령어들은 상기 하나 이상의 프로세서로 하여금 상기 메시지를 생성하는 것 또는 또 다른 디바이스로부터 상기 메시지를 획득하는 것 중 적어도 하나를 하게 야기하는 컴퓨터 판독가능 저장 매체.
  14. 제8항에 있어서, 상기 명령어들은 상기 하나 이상의 프로세서로 하여금 16 바이트 MD5(message digest algorithm 5) 합을 이용하여 상기 아틀라스 데이터를 해싱하게 야기하는 컴퓨터 판독가능 저장 매체.
  15. 비디오 인코딩 방법으로서:
    프로세서로 명령어들을 실행함으로써, 비디오의 입력 뷰들로부터 생성된 하나 이상의 아틀라스에 대한 아틀라스 데이터를 생성하는 단계;
    상기 프로세서로 명령어들을 실행함으로써, 상기 아틀라스 데이터에 대해 해시 연산을 수행하여 해시 값을 생성하는 단계;
    상기 프로세서로 명령어들을 실행함으로써, 상기 해시 값을 메시지에 포함시키는 단계; 및
    상기 프로세서로 명령어들을 실행함으로써, 상기 하나 이상의 아틀라스, 상기 아틀라스 데이터에 대응하는 코딩된 아틀라스 데이터, 및 상기 메시지를 조합하여 비디오 비트스트림을 생성하는 단계를 포함하는 방법.
  16. 제15항에 있어서, 상기 비트스트림 데이터를 디코딩 디바이스에 송신하는 단계를 추가로 포함하는 방법.
  17. 제15항에 있어서, 상기 아틀라스 데이터는 상기 입력 뷰들의 블록 투 패치 맵에 대응하는 가변 2차원 어레이인 방법.
  18. 제15항에 있어서, 상기 아틀라스 데이터는 블록들의 대응하는 패치들로의 매핑에 대응하는 방법.
  19. 제15항에 있어서,
    상기 비디오의 입력 뷰들을 텍스처 아틀라스 또는 심도 아틀라스 중 적어도 하나가 되도록 변환하는 단계; 및
    상기 텍스처 아틀라스, 상기 심도 아틀라스, 또는 상기 아틀라스 데이터 중 적어도 하나를 인코딩하여 인코딩된 비트스트림 데이터를 생성하는 단계를 추가로 포함하는 방법.
  20. 제15항에 있어서, 상기 메시지를 생성하는 것 또는 또 다른 디바이스로부터 상기 메시지를 획득하는 것 중 적어도 하나를 하는 단계를 추가로 포함하는 방법.
  21. 제15항에 있어서, 16 바이트 MD5(message digest algorithm 5) 합을 이용하여 상기 아틀라스 데이터를 해싱하는 단계를 추가로 포함하는 방법.
  22. 비디오 디코딩 장치로서,
    아틀라스 데이터에 대해 해시 연산을 수행하여 상기 아틀라스 데이터의 제1 해시 값을 결정하는 해시 생성기 - 상기 아틀라스 데이터는 볼류메트릭 비디오 비트스트림으로부터 디코딩됨 -, 및
    비교기
    를 포함하고,
    상기 비교기는,
    상기 제1 해시 값을 상기 아틀라스 데이터의 제2 해시 값과 비교하고 - 상기 제2 해시 값은 상기 비디오 비트스트림에 포함됨 -,
    상기 제1 해시 값이 상기 제2 해시 값과 일치하지 않을 때 에러 플래그를 생성하는 장치.
  23. 제22항에 있어서, 상기 비디오 비트스트림을 획득하고, 상기 비트스트림으로부터 상기 아틀라스 데이터 및 메시지를 분리하는 디멀티플렉서를 더 포함하는 장치.
  24. 제23항에 있어서, 상기 메시지는 상기 제2 해시 값을 포함하는 장치.
  25. 제22항에 있어서, 상기 해시 생성기는 상기 제2 해시 값을 생성하기 위해 사용된 것과 동일한 해시 연산을 사용하여 상기 제1 해시 값을 생성하는 장치.
KR1020227029998A 2020-04-03 2020-12-11 비디오 디코딩 에러를 식별하기 위한 방법 및 장치 KR20220162691A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063004741P 2020-04-03 2020-04-03
US63/004,741 2020-04-03
PCT/US2020/064438 WO2021201928A1 (en) 2020-04-03 2020-12-11 Methods and apparatus to identify a video decoding error

Publications (1)

Publication Number Publication Date
KR20220162691A true KR20220162691A (ko) 2022-12-08

Family

ID=77930100

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227029998A KR20220162691A (ko) 2020-04-03 2020-12-11 비디오 디코딩 에러를 식별하기 위한 방법 및 장치

Country Status (7)

Country Link
US (1) US20230239508A1 (ko)
EP (1) EP4128783A4 (ko)
JP (1) JP2023519512A (ko)
KR (1) KR20220162691A (ko)
CN (1) CN115244931A (ko)
BR (1) BR112022017804A2 (ko)
WO (1) WO2021201928A1 (ko)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7827467B2 (en) * 2006-01-04 2010-11-02 Nokia Corporation Method for checking of video encoder and decoder state integrity
KR20110064487A (ko) * 2009-12-08 2011-06-15 한국전자통신연구원 미디어 데이터의 무결성 검증 방법 및 장치
US10694210B2 (en) * 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
EP3349182A1 (en) * 2017-01-13 2018-07-18 Thomson Licensing Method, apparatus and stream for immersive video format
US11514613B2 (en) * 2017-03-16 2022-11-29 Samsung Electronics Co., Ltd. Point cloud and mesh compression using image/video codecs
US11010928B2 (en) * 2018-04-10 2021-05-18 Apple Inc. Adaptive distance based point cloud compression
EP3595319A1 (en) * 2018-07-12 2020-01-15 InterDigital VC Holdings, Inc. Methods and apparatus for volumetric video transport
EP3900363A1 (en) * 2018-12-21 2021-10-27 Koninklijke KPN N.V. Streaming volumetric and non-volumetric video
US11711544B2 (en) * 2019-07-02 2023-07-25 Apple Inc. Point cloud compression with supplemental information messages
US11627314B2 (en) * 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
WO2021176133A1 (en) * 2020-03-04 2021-09-10 Nokia Technologies Oy An apparatus, a method and a computer program for volumetric video

Also Published As

Publication number Publication date
BR112022017804A2 (pt) 2022-10-25
US20230239508A1 (en) 2023-07-27
JP2023519512A (ja) 2023-05-11
CN115244931A (zh) 2022-10-25
EP4128783A1 (en) 2023-02-08
WO2021201928A1 (en) 2021-10-07
EP4128783A4 (en) 2024-01-10

Similar Documents

Publication Publication Date Title
KR102292195B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
KR102334629B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN112019857A (zh) 用于压缩点云的存储和信号发送的方法和装置
CN115668938A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN109889844B (zh) 用于对高动态范围图像进行编码、解码和表示的技术
CN113557729B (zh) 视频码流解码方法、系统、装置和电子设备
CN112188209B (zh) 视频流解码方法、装置、计算机设备和存储介质
GB2579389A (en) Method, device and computer program for encapsulating media data into a media file
US20150264099A1 (en) Systems and methods for constraining a bitstream
US12003742B2 (en) Methods, apparatuses, computer programs and computer-readable media for scalable image coding
KR20230028234A (ko) 멀티-플레인 이미지 압축
KR20230006016A (ko) V3c/v-pcc를 위한 디코딩된 타일 해시 sei 메시지
JP7453992B2 (ja) 点群符号化方法及び装置、点群復号方法及び装置、並びに記憶媒体
CN114600083A (zh) 信令通知云工作流中的输入数据的超时和完整
JP2023521287A (ja) テクスチャベースの没入型ビデオコーディング
US20230156229A1 (en) Methods and apparatus to signal enabled views per atlas in immersive video
KR20220162691A (ko) 비디오 디코딩 에러를 식별하기 위한 방법 및 장치
US20210409735A1 (en) Methods, apparatuses, computer programs and computer-readable media for scalable video coding and transmission
JP2022527882A (ja) ポイントクラウドの処理
US20240129537A1 (en) Method and apparatus for signaling cmaf switching sets in isobmff
CN116648904B (zh) 视频编码的方法、视频解码的方法、装置及存储介质
CN112188201B (zh) 对视频流进行编码的方法、装置、电子设备及存储介质
JP2023550940A (ja) クライアントデバイス上でビデオストリームを復号化すること
KR20240093609A (ko) 포인트 클라우드 데이터의 전송 장치와 이 전송 장치에서 수행되는 방법 및, 포인트 클라우드 데이터의 수신 장치와 이 수신 장치에서 수행되는 방법
KR20240125608A (ko) 포인트 클라우드 데이터의 전송 장치와 이 전송 장치에서 수행되는 방법 및, 포인트 클라우드 데이터의 수신 장치와 이 수신 장치에서 수행되는 방법

Legal Events

Date Code Title Description
A201 Request for examination