KR20230054434A - 비디오 기반의 포인트 클라우드 코딩을 위한 픽처들의 그룹 기반 패치 팩킹 - Google Patents
비디오 기반의 포인트 클라우드 코딩을 위한 픽처들의 그룹 기반 패치 팩킹 Download PDFInfo
- Publication number
- KR20230054434A KR20230054434A KR1020237009551A KR20237009551A KR20230054434A KR 20230054434 A KR20230054434 A KR 20230054434A KR 1020237009551 A KR1020237009551 A KR 1020237009551A KR 20237009551 A KR20237009551 A KR 20237009551A KR 20230054434 A KR20230054434 A KR 20230054434A
- Authority
- KR
- South Korea
- Prior art keywords
- group
- frame
- frames
- video stream
- size
- Prior art date
Links
- 238000012856 packing Methods 0.000 title description 24
- 238000000034 method Methods 0.000 claims abstract description 60
- 238000012545 processing Methods 0.000 claims abstract description 37
- 230000008569 process Effects 0.000 claims description 25
- 230000001419 dependent effect Effects 0.000 claims 6
- 230000006835 compression Effects 0.000 description 16
- 238000007906 compression Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000009499 grossing Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 9
- 230000006837 decompression Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 1
- 101100207005 Caenorhabditis elegans tmc-2 gene Proteins 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000000137 annealing Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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 an image region, e.g. an object
- H04N19/172—Methods 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 an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/177—Methods 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 a group of pictures [GOP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
비디오 포인트 클라우드 코딩을 이용하여 인코딩된 비디오 스트림을 인코딩하는 방법들 및 장치들은 제1 프레임 및 나머지 프레임들을 포함하는 복수의 프레임들을 획득하는 단계 - 복수의 프레임들의 각각의 프레임은 대응하는 복수의 패치들로 팩킹됨-; 나머지 프레임들을 제1 그룹 및 제2 그룹으로 그룹화하는 단계 - 동일한 그룹으로 그룹화되는 프레임들은 시간적으로 이웃함-; 제1 프레임을 프로세싱하는 단계; 제1 프레임이 프로세싱된 후 제1 그룹 내 프레임들을 병렬 프로세싱하는 단계; 및 프로세싱된 제1 프레임 및 제1 그룹 내 프로세싱된 프레임들에 기초하여, 인코딩된 비디오 스트림을 발생시키는 단계를 포함하며, 제1 그룹의 적어도 하나의 프레임은 제1 프레임에 의존한다.
Description
관련 출원에 대한 상호-참조
본 출원은 2021년 7월 7일자에 출원된 미국 가출원 번호 제63/219,237호, 및 2021년 10월 8일자에 출원된 미국 출원번호 제17/497,326호에 대해 우선권을 주장하며, 이의 개시내용들이 본원에 전체적으로 참조로 포함된다.
분야
본 개시내용은 고급 비디오 코딩 기술들의 세트, 보다 구체적으로, 픽처들의 그룹(GoP) 기반 패치 팩킹을 포함한 비디오 기반 포인트 클라우드 압축에 관한 것이다.
세계의 진보된 3차원(3D) 표현들은 보다 몰입적인 형태들의 상호작용 및 통신을 가능하게 한다. 이들은 또한 머신들이 세계를 이해, 해석, 및 탐색 가능하게 한다. 포인트 클라우드들은 세계의 3D 표현으로서 널리 사용되었다. 예를 들어, 이들은 맵핑을 위한 지리적 정보 시스템들(GIS)에서, 그리고 문화 유산 오브젝트들 및 컬렉션들 등을 시각화하고 보관하기 위한 문화 유산에서, 오브젝트 검출 및 위치 파악을 위해 자율 주행 차량들에 사용될 수도 있다. 포인트 클라우드 데이터와 연관된 여러 사용 사례들이 식별되었으며, 포인트 클라우드 표현 및 압축에 대한 일부 대응하는 요구사항들이 개발되었다.
포인트 클라우드들은 3차원(3D)과 같은, 고차원 포인트들의 세트를 포함하며, 포인트들 각각은 3D 위치 정보 및 추가적인 속성들, 예컨대 칼라, 반사율, 등을 포함한다. 이들은 다수의 카메라들 및 심도 센서들, 또는 라이다를 이용하여 다양한 셋업들로 캡쳐될 수 있으며, 원래 장면들을 사실적으로 나타내기 위해 수천 내지 최대 수십억 개의 포인트들로 구성될 수도 있다.
더 빠른 송신 또는 저장의 감소를 위해 포인트 클라우드를 나타내는데 필요한 데이터의 양을 감소시키기 위해서는 압축 기술들이 필요하다. ISO/IEC MPEG (JTC 1/SC 29/WG 11)는 정적 또는 동적 클라우드에 대한 압축 기법들을 표준화하기 위해 임시 그룹(MPEG-PCC)을 만들었다.
실시형태들에서, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 방법으로서, 본 방법은 적어도 하나의 프로세서에 의해 수행되며, 본 방법은 제1 프레임 및 나머지 프레임들을 포함하는 복수의 프레임들을 획득하는 단계 - 복수의 프레임들의 각각의 프레임은 대응하는 복수의 패치들로 팩킹됨-; 나머지 프레임들을 제1 그룹 및 제2 그룹으로 그룹화하는 단계 - 동일한 그룹으로 그룹화되는 프레임들은 시간적으로 이웃함-; 제1 프레임을 프로세싱하는 단계; 제1 프레임이 프로세싱된 후 제1 그룹 내 프레임들을 병렬 프로세싱하는 단계; 및 프로세싱된 제1 프레임 및 제1 그룹 내 프로세싱된 프레임들에 기초하여, 인코딩된 비디오 스트림을 발생시키는 단계를 포함하며, 제1 그룹의 적어도 하나의 프레임은 제1 프레임에 의존한다.
실시형태들에서, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 장치는 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및 프로그램 코드를 판독하고 프로그램 코드에 의해 명령되는 대로 동작하도록 구성된 적어도 하나의 프로세서를 포함하며, 프로그램 코드는 적어도 하나의 프로세서로 하여금, 제1 프레임 및 나머지 프레임들을 포함하는 복수의 프레임들을 획득하게 하도록 구성된 획득 코드 - 복수의 프레임들의 각각의 프레임은 대응하는 복수의 패치들로 팩킹됨-; 적어도 하나의 프로세서로 하여금, 나머지 프레임들을 제1 그룹 및 제2 그룹으로 그룹화하게 하도록 구성된 그룹화 코드 - 동일한 그룹으로 그룹화되는 프레임들은 시간적으로 이웃함-; 적어도 하나의 프로세서로 하여금, 제1 프레임을 프로세싱하게 하도록 구성된 프로세싱 코드; 적어도 하나의 프로세서로 하여금, 제1 프레임이 프로세싱된 후 제1 그룹 내 프레임들을 병렬 프로세싱하게 하도록 구성된 제1 병렬 프로세싱 코드; 및 적어도 하나의 프로세서로 하여금, 프로세싱된 제1 프레임 및 제1 그룹 내 프로세싱된 프레임들에 기초하여, 인코딩된 비디오 스트림을 발생시키게 하도록 구성된 발생 코드를 포함하며, 제1 그룹의 적어도 하나의 프레임은 제1 프레임에 의존한다.
실시형태들에서, 비일시성 컴퓨터-판독가능 매체는 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 컴퓨터 명령들을 저장하며, 상기 명령들은, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금, 제1 프레임 및 나머지 프레임들을 포함하는 복수의 프레임들을 획득하게 하고 - 복수의 프레임들의 각각의 프레임은 대응하는 복수의 패치들로 팩킹됨-; 나머지 프레임들을 제1 그룹 및 제2 그룹으로 그룹화하게 하고 - 동일한 그룹으로 그룹화되는 프레임들은 시간적으로 이웃함-; 제1 프레임을 프로세싱하게 하고; 제1 프레임이 프로세싱된 후 제1 그룹 내 프레임들을 병렬 프로세싱하게 하고; 그리고 프로세싱된 제1 프레임, 제1 그룹 내 프로세싱된 프레임들에 기초하여, 인코딩된 비디오 스트림을 발생시키게 하며, 제1 그룹의 적어도 하나의 프레임은 제1 프레임에 의존한다.
개시된 기술요지의 추가적인 특징들, 성질, 및 다양한 이점들은 다음 상세한 설명 및 첨부 도면들로부터 더욱 명확히 알 수 있을 것이다.
도 1은 일 실시형태에 따른 통신 시스템의 간략화된 블록도의 개략도이다.
도 2는 일 실시형태에 따른 스트리밍 시스템의 간략화된 블록도의 개략도이다.
도 3은 일 실시형태에 따른 비디오 인코더의 간략화된 블록도의 개략도이다.
도 4는 일 실시형태에 따른 비디오 디코더의 간략화된 블록도의 개략도이다.
도 5a 내지 도 5b는 일 실시형태에 따른, 글로벌 패치 할당(GPA) 설계에서 프레임간 의존성의 예들을 예시한다.
도 6은 일 실시형태에 따른, 2개의 프레임들과 동일한 그룹 사이즈를 갖는 예시적인 GoP 기반 패치 팩킹을 예시한다.
도 7은 일 실시형태에 따른, 4개의 프레임들과 동일한 그룹 사이즈를 갖는 예시적인 GoP 기반 패치 팩킹을 예시한다.
도 8a 내지 도 8b는 일 실시형태에 따른, 가장 가까운 이웃하는 프레임들로의 예시적인 패치 상관 전파를 예시한다.
도 9는 일 실시형태에 의해 수행되는 프로세스를 예시하는 흐름도이다.
도 10은 일 실시형태에 따른 디바이스를 예시하는 다이어그램이다.
도 11은 실시형태들을 구현하는데 적합한 컴퓨터 시스템의 다이어그램이다.
도 1은 일 실시형태에 따른 통신 시스템의 간략화된 블록도의 개략도이다.
도 2는 일 실시형태에 따른 스트리밍 시스템의 간략화된 블록도의 개략도이다.
도 3은 일 실시형태에 따른 비디오 인코더의 간략화된 블록도의 개략도이다.
도 4는 일 실시형태에 따른 비디오 디코더의 간략화된 블록도의 개략도이다.
도 5a 내지 도 5b는 일 실시형태에 따른, 글로벌 패치 할당(GPA) 설계에서 프레임간 의존성의 예들을 예시한다.
도 6은 일 실시형태에 따른, 2개의 프레임들과 동일한 그룹 사이즈를 갖는 예시적인 GoP 기반 패치 팩킹을 예시한다.
도 7은 일 실시형태에 따른, 4개의 프레임들과 동일한 그룹 사이즈를 갖는 예시적인 GoP 기반 패치 팩킹을 예시한다.
도 8a 내지 도 8b는 일 실시형태에 따른, 가장 가까운 이웃하는 프레임들로의 예시적인 패치 상관 전파를 예시한다.
도 9는 일 실시형태에 의해 수행되는 프로세스를 예시하는 흐름도이다.
도 10은 일 실시형태에 따른 디바이스를 예시하는 다이어그램이다.
도 11은 실시형태들을 구현하는데 적합한 컴퓨터 시스템의 다이어그램이다.
비디오-기반 포인트 클라우드 압축(V-PCC) 이면의 고려사항은 기존 비디오 코덱들을 활용하여 동적 포인트 클라우드의 기하학적 구조, 점유, 및 텍스쳐를 3개의 별개의 비디오 시퀀스들로 압축하는 것이다. 3개의 비디오 시퀀스들을 해석하는데 필요한 여분의 메타데이터는 별도로 압축될 수도 있다. 전체 비트스트림의 작은 부분은 소프트웨어 구현을 이용하여 효율적으로 인코딩/디코딩될 수 있는 메타데이터이다. 대부분의 정보는 비디오 코덱에 의해 처리될 수도 있다.
본 개시내용의 실시형태들은 반복 평활화 프레임워크에서 과도-평활화를 피하기 위한 어닐링 반복 기하학적 구조 평활화에 관한 것이다. 본 개시내용의 실시형태들은 순수 중앙값을 사용하는 계산 복잡성을 감소시키는 것을 목표로 하는 참조 포인트들을 도출하기 위해 평균 및 중앙값 통계치들의 조합을 이용하는 것에 관한 것이다.
도 1 내지 도 4를 참조하면, 본 개시내용의 인코딩 및 디코딩 구조들을 구현하는 본 개시내용의 일 실시형태가 설명된다. 본 개시내용의 인코딩 및 디코딩 구조들은 위에서 설명된 V-PCC의 양태들을 구현할 수도 있다.
도 1은 본 개시내용의 일 실시형태에 따른 통신 시스템(100)의 단순화된 블록도를 예시한다. 시스템(100)은 네트워크(150)를 통해서 상호접속된 적어도 2개의 터미널들(110, 120)을 포함할 수도 있다. 데이터의 단방향 송신을 위해, 제1 터미널(110)은 네트워크(150)를 통한 다른 터미널(120)로의 송신을 위해 로컬 로케이션에서 비디오 데이터를 코딩할 수도 있다. 제2 터미널(120)은 네트워크(150)로부터 다른 터미널의 코딩된 비디오 데이터를 수신하고, 코딩된 데이터를 디코딩하고 복원된 비디오 데이터를 디스플레이할 수도 있다. 단방향의 데이터 송신은 미디어 서비스 애플리케이션들 및 기타 등등에서 일반적일 수도 있다.
도 1은 예를 들어, 화상회의 동안 발생할 수도 있는 코딩된 비디오의 양방향 송신을 지원하기 위해 제공되는 제2 터미널들 쌍(130, 140)을 예시한다. 데이터의 양방향 송신을 위해, 각각의 터미널(130, 140)은 네트워크(150)를 통한 다른 터미널로의 송신을 위해 로컬 로케이션에서 캡쳐된 비디오 데이터를 코딩할 수도 있다. 각각의 터미널(130, 140)은 또한 다른 터미널에 의해 송신된 코딩된 비디오 데이터를 수신할 수도 있으며, 코딩된 데이터를 디코딩할 수도 있으며, 복원된 비디오 데이터를 로컬 디스플레이 디바이스에서 디스플레이할 수도 있다.
도 1에서, 터미널들(110-140)은 예를 들어, 서버들, 개인용 컴퓨터들, 및 스마트폰들, 및/또는 임의의 다른 유형의 터미널일 수도 있다. 예를 들어, 터미널들(110-140)은 랩탑 컴퓨터들, 태블릿 컴퓨터들, 미디어 플레이어들 및/또는 전용 화상 회의 장비일 수도 있다. 네트워크(150)는 예를 들어, 유선 및/또는 무선 통신 네트워크들을 포함한, 코딩된 비디오 데이터를 터미널들(110-140) 간에 전달하는 임의 개수의 네트워크들을 나타낸다. 통신 네트워크(150)는 회선-교환 및/또는 패킷-스위칭 채널들에서 데이터를 교환할 수도 있다. 대표적인 네트워크들은 원격 통신 네트워크들, 근거리 네트워크들, 광역 네트워크들, 및/또는 인터넷을 포함한다. 본 설명의 목적들을 위해, 네트워크(150)의 아키텍처 및 토폴로지는 이하에서 설명되지 않는 한, 본 개시내용의 동작에 중요하지 않을 수도 있다.
도 2는 개시된 기술요지의 응용의 예로서, 스트리밍 환경에서 비디오 인코더 및 디코더의 배치를 예시한다. 개시된 기술요지는 예를 들어, CD, DVD, 메모리 스틱 및 기타 등등을 포함한 디지털 미디어 상의 압축된 비디오의 저장, 화상 회의, 디지털 TV 등을 포함하는 다른 비디오 지원(enabled) 애플리케이션들과 함께 이용될 수 있다.
도 2에 예시된 바와 같이, 스트리밍 시스템(200)은 비디오 소스(201) 및 인코더(203)를 포함하는 캡쳐 서브시스템(213)을 포함할 수도 있다. 스트리밍 시스템(200)은 적어도 하나의 스트리밍 서버(205) 및/또는 적어도 하나의 스트리밍 클라이언트(206)를 더 포함할 수도 있다.
비디오 소스(201)는 예를 들어, 3D 비디오에 대응하는 3D 포인트 클라우드를 포함하는 스트림(202)을 생성할 수 있다. 비디오 소스(201)는 예를 들어, 3D 센서들(예를 들어, 심도 센서들) 또는 3D 이미징 기술(예를 들어, 디지털 카메라(들)), 및 3D 센서들 또는 3D 이미징 기술로부터 수신된 데이터를 이용하여 3D 포인트 클라우드를 발생시키도록 구성된 컴퓨팅 디바이스를 포함할 수도 있다. 인코딩된 비디오 비트스트림들과 비교할 때 높은 데이터 볼륨을 가질 수도 있는 샘플 스트림(202)은 비디오 소스(201)에 커플링된 인코더(203)에 의해 프로세싱될 수 있다. 인코더(203)는 아래에 더 자세히 설명된 바와 같이 개시된 기술요지의 양태들을 가능하게 하거나 또는 구현하기 위해 하드웨어, 소프트웨어, 또는 이들의 조합을 포함할 수 있다. 인코더(203)는 또한 인코딩된 비디오 비트스트림(204)을 발생시킬 수도 있다. 비압축 스트림(202)과 비교할 때 더 낮은 데이터 볼륨을 가질 수도 있는, 인코딩된 비디오 비트스트림(204)은 미래 사용을 위해 스트리밍 서버(205) 상에 저장될 수 있다. 하나 이상의 스트리밍 클라이언트(206)는 스트리밍 서버(205)에 액세스하여 인코딩된 비디오 비트스트림(204)의 복사본들일 수도 있는 비디오 비트 스트림들(209)을 취출할 수 있다.
스트리밍 클라이언트들(206)은 비디오 디코더(210) 및 디스플레이(212)를 포함할 수 있다. 비디오 디코더(210)는 예를 들어, 인코딩된 비디오 비트스트림(204)의 유입하는 복사본인, 비디오 비트스트림(209)을 디코딩하고, 디스플레이(212) 또는 다른 렌더링 디바이스(미도시됨) 상에서 렌더링될 수 있는 나가는 비디오 샘플 스트림(211)을 생성할 수 있다. 일부 스트리밍 시스템들에서, 비디오 비트스트림들(204, 209)은 특정의 비디오 코딩/압축 표준들에 따라서 인코딩될 수 있다. 이러한 표준들의 예들은 ITU-T 권고안 H.265, 다용도 비디오 코딩(VVC), 및 MPEG/V-PCC를 포함하지만, 이에 제한되지 않는다.
도 3 내지 도 4를 참조하면, 본 개시내용의 실시형태들에 의해 수행될 수도 있는 V-PCC의 일부 양태들이 아래에 설명된다.
도 3은 본 개시내용의 일 실시형태에 따른 비디오 인코더(203)의 예시적인 기능 블록도를 예시한다.
도 3에 예시된 바와 같이, 비디오 인코더(203)는 포인트 클라우드 프레임(들)(350)을 수신하고, 포인트 클라우드 프레임(350)에 기초하여, 기하학적 구조 이미지(352), 텍스쳐 이미지(356), 및 점유 맵(334)을 발생시킬 수 있다. 비디오 인코더(203)는 기하학적 구조 이미지(352)를 압축된 기하학적 구조 이미지(362)로, 텍스쳐 이미지(356)를 압축된 텍스쳐 이미지(364)로, 그리고 점유 맵(334)을 압축된 점유 맵(372)으로 압축할 수도 있다. 비디오 인코더(203)의 멀티플렉서(328)는 압축된 기하학적 구조 이미지(362), 압축된 텍스쳐 이미지(364), 및 압축된 점유 맵(372)을 포함하는 압축된 비트스트림(374)을 형성할 수도 있다.
보다 구체적으로, 실시형태들에서, 비디오 인코더(203)는 포인트 클라우드 프레임(350)을 패치들로 세그먼트화하는 패치 발생 모듈(302)을 포함할 수도 있다. 패치들은 V-PCC의 유용한 엔터티들이다. 패치 발생 프로세스는 포인트 클라우드 프레임(350)을 매끄러운 경계들을 가진 최소 개수의 패치들로 분해하면서, 동시에 또한 복원 에러를 최소화하는 단계를 포함한다. 본 개시내용의 인코더들은 이러한 분해를 발생시키기 위해 다양한 방법들을 구현할 수 있다.
비디오 인코더(203)는 팩킹(packing) 프로세스를 수행하는 패치 팩킹 모듈(304)을 포함할 수도 있다. 팩킹 프로세스는 미사용 공간을 최소화하고 그리드의 모든 M×M(예를 들어, 16x16) 블록이 고유한 패치와 연관되도록 보장하면서, 추출된 패치들을 2D 그리드 상에 맵핑하는 단계를 포함한다. 효율적인 패치 팩킹은 미사용 공간을 최소화하거나 또는 시간 일관성을 보장함으로써 압축 효율에 직접 영향을 미친다. 패치 팩킹 모듈(304)은 점유 맵(334)을 발생시킬 수도 있다.
비디오 인코더(203)는 기하학적 구조 이미지 발생 모듈(306) 및 텍스쳐 이미지 발생 모듈(308)을 포함할 수도 있다. 다수의 포인트들이 동일한 샘플에 투영되는 경우를 더 잘 처리하기 위해, 각각의 패치는 레이어들로서 지칭되는, 2개의 이미지들 상으로 투영될 수도 있다. 예를 들어, 기하학적 구조 이미지 발생 모듈(306) 및 텍스쳐 이미지 발생 모듈(308)은 패치 팩킹 모듈(304)의 팩킹 프로세스 동안 계산된 3D 대 2D 맵핑을 이용하여, 포인트 클라우드의 기하학적 구조 및 텍스쳐를 이미지들(일명, 레이어들)로서 저장할 수도 있다. 발생된 이미지들/레이어들은 비디오 프레임(들)로서 저장되고, 파라미터들로서 제공되는 구성들에 따라서 비디오 코덱(예를 들어, HM 비디오 코덱)을 이용하여 압축될 수도 있다.
실시형태들에서, 기하학적 구조 이미지 발생 모듈(306)은 기하학적 구조 이미지(352)를 발생시키며, 텍스쳐 이미지 발생 모듈(308)은 입력 포인트 클라우드 프레임(350) 및 점유 맵(334)에 기초하여 텍스쳐 이미지(356)를 발생시킨다. 일 실시형태에서, 기하학적 구조 이미지(352)는 YUV420-8bit 포맷으로 WxH의 단색광의 프레임으로 표현될 수도 있다. 일 실시형태에서, 점유 맵(334) 이미지는 그리드의 각각의 셀에 대해 그리드의 각각의 셀이 공백 스페이스에 속하는지 또는 포인트 클라우드에 속하는지 여부를 표시하는 2진 맵으로 구성된다. 텍스쳐 이미지(356)를 발생시키기 위해, 텍스쳐 이미지 발생 모듈(308)은 재-샘플링된 포인트들과 연관될 칼라들을 계산하기 위해 복원/평활화된 기하학적 구조(358)를 이용할 수도 있다.
비디오 인코더(203)는 또한 기하학적 구조 이미지(352) 및 텍스쳐 이미지(356)을 각각 패딩하여, 패딩된 기하학적 구조 이미지(354) 및 패딩된 텍스쳐 이미지(360)를 형성하는, 이미지 패딩 모듈(314) 및 이미지 패딩 모듈(316)을 포함할 수도 있다. 이미지 패딩(일명 백그라운드 채우기)은 단순히 이미지들의 미사용 공간을 중복(여분의) 정보로 채운다. 우수한 백그라운드 채우기는 비트 레이트를 최소한으로 증가시키면서 패치 경계들 주변에 상당한 코딩 왜곡을 일으키지 않는 것이다. 이미지 패딩 모듈(314) 및 이미지 패딩 모듈(316)은 점유 맵(334)을 이용하여, 패딩된 기하학적 구조 이미지(354) 및 패딩된 텍스쳐 이미지(360)를 각각 형성할 수도 있다. 일 실시형태에서, 비디오 인코더(203)는 패딩된 텍스쳐 이미지(360)를 형성하기 위해 그룹 확장 모듈(320)을 포함할 수도 있다.
비디오 인코더(203)는 패딩된 기하학적 구조 이미지(354) 및 패딩된 텍스쳐 이미지(360)를 압축된 기하학적 구조 이미지(362) 및 압축된 텍스쳐 이미지(364)로 각각 압축하는, 비디오 압축 모듈(322) 및 비디오 압축 모듈(324)을 포함할 수도 있다.
비디오 인코더(203)는 점유 맵(334)의 무손실 인코딩(366)을 위한 엔트로피 압축 모듈(318), 및 점유 맵(334)의 손실 인코딩(368)을 위한 비디오 압축 모듈(326)을 포함할 수도 있다.
실시형태들에서, 비디오 인코더(203)는 비디오 압축 모듈(322)에 의해 제공되는, 복원된 기하학적 구조 이미지(365), 및 패치 정보(332)를 이용함으로써, 평활화된 기하학적 구조(358)를 발생시키는 평활화 모듈(310)을 포함할 수도 있다. 평활화 모듈(310)의 평활화 프로시저는 압축 아티팩트들로 인해 패치 경계들에서 발생할 수도 있는 잠재적인 불연속들을 경감하는 것을 목표로 할 수도 있다. 평활화된 기하학적 구조(358)는 텍스쳐 이미지(356)를 발생시키기 위해 텍스쳐 이미지 발생 모듈(308)에 의해 사용될 수도 있다.
비디오 인코더(203)는 또한 압축된 비트스트림(374)에 멀티플렉서(328)에 의해 제공되는 압축된 보조 패치 정보(370)를 형성하는 보조 패치 정보 압축 모듈(312)을 포함할 수도 있다.
도 4는 본 개시내용의 일 실시형태에 따른 비디오 디코더(210)의 예시적인 기능 블록도를 예시한다.
도 4에 예시된 바와 같이, 비디오 디코더(210)는 코딩된 비트스트림(374)을 비디오 인코더(203)로부터 수신하여, 압축된 텍스쳐 이미지(362), 압축된 기하학적 구조 이미지(364), 압축된 점유 맵(372), 및 압축된 보조 패치 정보(370)를 획득할 수도 있다. 비디오 디코더(210)는 압축된 텍스쳐 이미지(362), 압축된 기하학적 구조 이미지(364), 압축된 점유 맵(372), 및 압축된 보조 패치 정보(370)를 디코딩하여, 압축해제된 텍스쳐 이미지(460), 압축해제된 기하학적 구조 이미지(462), 압축해제된 점유 맵(464), 및 압축해제된 보조 패치 정보(466)를 각각 획득할 수도 있다. 다음, 비디오 디코더(210)는 압축해제된 텍스쳐 이미지(460), 압축해제된 기하학적 구조 이미지(462), 압축해제된 점유 맵(464), 및 압축해제된 보조 패치 정보(466)에 기초하여 복원된 포인트 클라우드(474)를 발생시킬 수도 있다.
실시형태들에서, 비디오 디코더(210)는 수신된 압축된 비트스트림(374)의 압축된 텍스쳐 이미지(362), 압축된 기하학적 구조 이미지(364), 압축된 점유 맵(372), 및 압축된 보조 패치 정보(370)를 분리하는 디멀티플렉서(402)를 포함할 수도 있다.
비디오 디코더(210)는 압축된 텍스쳐 이미지(362), 압축된 기하학적 구조 이미지(364), 압축된 점유 맵(372), 및 압축된 보조 패치 정보(370)를 각각 디코딩하는 비디오 압축해제 모듈(404), 비디오 압축해제 모듈(406), 점유 맵 압축해제 모듈(408), 및 보조 패치 정보 압축해제 모듈(410)을 포함할 수도 있다.
비디오 디코더(210)는 압축해제된 기하학적 구조 이미지(462), 압축해제된 점유 맵(464), 및 압축해제된 보조 패치 정보(466)에 기초하여 복원된(3차원) 기하학적 구조(468)를 획득하는 기하학적 구조 복원 모듈(412)을 포함할 수도 있다.
비디오 디코더(210)는 복원된 기하학적 구조(468)를 평활화하여 평활화된 기하학적 구조(470)를 획득하는 평활화 모듈(414)을 포함할 수도 있다. 평활화 프로시저는 압축 아티팩트들로 인해 패치 경계들에서 발생할 수도 있는 잠재적인 불연속들을 경감하는 것을 목표로 할 수도 있다.
비디오 디코더(210)는 압축해제된 텍스쳐 이미지(460) 및 평활화된 기하학적 구조(470)에 기초하여 복원된 텍스쳐(472)를 획득하는 텍스쳐 복원 모듈(416)을 포함할 수도 있다.
비디오 디코더(210)는 복원된 텍스쳐(472)의 칼라를 평활화하여, 복원된 포인트 클라우드(474)를 획득하는 칼라 평활화 모듈(418)을 포함할 수도 있다. 3D 공간에서 비-이웃하는 패치들은 종종 2D 비디오들에서 서로 옆에 팩킹된다. 이는 비-이웃하는 패치들로부터의 픽셀 값들이 블록-기반 비디오 코덱에 의해 혼합될 수도 있음을 암시한다. 칼라 평활화 모듈(418)의 칼라 평활화는 패치 경계들에서 나타나는 가시적 아티팩트들을 감소시키는 것을 목표로 할 수도 있다.
비디오-기반 포인트 클라우드 압축(V-PCC)에서의 패치 팩킹
V-PCC에 대응할 수도 있는, MPEG PCC 테스트 모델 카테고리 2(TMC2) 모델에서, 패치 팩킹 프로세스는 각각의 발생된 패치에 대응하는 기하학적 구조 또는 텍스쳐 데이터를 사이즈 WxH의 2D 그리드 상으로 효율적으로 배치함으로써, 기하학적 구조 및 텍스쳐 맵들을 발생시키려고 시도한다. 이러한 배치는 또한 이 2D 그리드 상에 배치된 별개의 패치들 사이의 최소 거리를 규정하는 사용자-정의된 최소 사이즈 블록 TxT를 고려할 수도 있다. 대응하는 값(T)이 인코딩되어 디코더로 전송될 수도 있다.
TMC 2에서의 팩킹 방법은 다음과 같이 완전 탐색 알고리즘을 이용할 수도 있다:
ㆍ
초기에, 패치들이 비-중첩하는 삽입을 보장하는 방식으로 2D 그리드 상에 배치된다. 패치에 속하는 샘플들(T의 배수인 값으로 반올림됨)은 점유된 블록들로서 간주된다.
ㆍ
게다가, 인접한 패치들 사이의 보호장치는 T의 배수인 적어도 하나의 블록의 거리로 강제된다.
ㆍ
패치들은 패치 인덱스 리스트에 기초하여, 순서대로 프로세싱된다. 리스트로부터의 각각의 패치는 그리드 상에 반복적으로 배치된다. 그리드 해상도는 원래 포인트 클라우드 사이즈에 의존하며, 그의 폭(W) 및 높이(H)가 디코더로 송신된다.
ㆍ
다음 패치에 이용 가능한 공백 스페이스가 없는 경우, 그리드의 높이 값이 초기에 2배가 되고 이 패치의 삽입이 다시 평가된다. 모든 패치들의 삽입이 성공적이면, 높이가 최소 필요 값으로 트림된다. 그러나, 이 값은 인코더에 원래 규정된 값보다 더 낮게 설정되도록 허용되지 않는다.
ㆍ
W 및 H에 대한 최종 값들은 적합한 비디오 코덱을 이용하여 텍스쳐 및 기하학적 구조 비디오 신호들을 인코딩하는데 이용되는 프레임 해상도에 대응한다.
비디오 압축에 친화적인 팩킹 결과를 생성하기 위해, 일시적인 일관된 패치 순서 조정 방법이 투영 단계 이후에 발생된 프레임에서 패치들을 재정렬하는데 이용될 수도 있다. 글로벌 패치 할당(GPA) 팩킹 방법이 프레임들의 그룹 내에서 시간적으로 일관된 팩킹을 향상시키기 위해 이용될 수도 있다.
그러나, GPA는 시간 상관이 가장 가까운 프레임들로부터 유래한다고 가정한다. 도 6은 예를 들어, 프레임 T에서의 패치들은 프레임 T-1 및/또는 프레임 T+1에서 이들의 매칭된 패치들을 찾는다. 도 5a 내지 도 5b는 일 실시형태에 따른, 글로벌 패치 할당(GPA) 설계에서 프레임간 의존성의 예들을 예시한다. 도 5a에 도시된 바와 같이, 현재의 프레임은 단지 그의 이전 프레임에만 의존할 수도 있거나, 또는 도 5b에 도시된 바와 같이, 현재의 프레임은 그의 이전 프레임 및 다음 프레임 둘 모두에 의존할 수도 있다. 따라서, 프레임 T는 프레임 T-1이 프로세싱되기 전에 프로세싱될 수 없다. 다시 말해서, 현재의 프레임은 그 이전 프레임을 대기해야 한다. 이 제한은 다수의 프레임들에 대한 병렬 프로세싱의 가능성을 방해한다.
실시형태들은 별도로 이용되거나 또는 임의의 순서로 결합될 수도 있다. 또, 방법들(또는, 실시형태들), 인코더, 및 디코더의 각각은 프로세싱 회로부(예컨대, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수도 있다. 일 예에서, 하나 이상의 프로세서는 비일시성 컴퓨터-판독가능 매체에 저장된 프로그램을 실행한다.
실시형태들은 다수의 프레임들에 대한 병렬 프로세싱을 가능하게 할 수도 있는 픽처들의 그룹(GoP) 기반 패치 팩킹 방법에 관한 것일 수도 있다.
예시적인 실시형태는 다음과 같이 진행할 수도 있다:
ㆍ
프레임들은 그룹들로 분할될 수 있으며, 시간적으로 이웃하는 프레임들은 동일한 그룹에 넣을 수 있다.
o
실시형태들에서, 각각의 그룹의 사이즈는 동일하게 설정될 수 있다. 사이즈는 인코더 및 디코더 둘 모두에 의해 가정될 수 있거나, 또는 사이즈는 비트스트림으로 시그널링될 수 있다.
o
실시형태들에서, 각각의 그룹의 사이즈는 상이할 수 있다. 예를 들어, 패치된 프레임들이 덜 변경될 때, 큰 사이즈가 사용될 수 있다. 다음 그룹의 사이즈를 표시하기 위해, GoP 레벨 시그널링이 사용될 수 있다. 예측 시그널링 방법이 단지 이전 사이즈 정보에 대한 delta 사이즈만을 시그널링하는데 이용될 수 있다.
ㆍ
동일한 그룹 내 프레임들은 그룹 내에 없고 이미 프로세싱된 프레임들에 의존할 수도 있다. 이 경우, 동일한 그룹 내 프레임들은 병렬로 프로세싱될 수도 있다.
ㆍ
실시형태들에서, GoP 기반 패치 팩킹의 사용은 가장 가까운 프레임들에서 패치들의 원래 상관을 깰 수도 있다. 그러나, (도 5a 내지 도 5b에 도시된 바와 같이) 가장 가까운 프레임들로부터의 단방향/양방향 상관은 특정의 전파 규칙들에 의해 복구될 수 있다.
실시형태들에서, 시퀀스의 제1 프레임을 제외한, 프레임들은 도 6에 도시된 바와 같이, 2개의 이웃하는 프레임들마다 그룹화될 수도 있다. F0는 먼저 독립적으로 프로세싱될 수 있다. F1 및 F2는 동일한 그룹에 있으며, 이들은 동일한 프레임 F0에 의존한다. 이 경우, F0는 그룹 밖에 있으며 이 그룹보다 먼저 이미 프로세싱되었다. 이와 유사하게, F3 및 F4는 동일한 그룹에 있으며, 이들은 동일한 프레임 F2에 의존한다. F2는 그룹 밖에 있으며 이 그룹보다 먼저 이미 프로세싱되었다. 따라서, F1 및 F2는 F0가 프로세싱된 후 병렬로 프로세싱될 수 있으며, F3 및 F4는 F2가 프로세싱된 후 병렬로 프로세싱될 수 있다.
실시형태들에서, 시퀀스의 제1 프레임을 제외한, 프레임들은 도 7에 도시된 바와 같이, 4개의 이웃하는 프레임들마다 그룹화될 수도 있다. F0는 먼저 독립적으로 프로세싱될 수 있다. F1 내지 F4의 프레임들은 동일한 그룹에 있으며, 이들은 동일한 프레임 F0에 의존한다. F0는 그룹 밖에 있으며 이 그룹보다 먼저 이미 프로세싱되었다. 이와 유사하게, F5 내지 F8의 프레임들은 동일한 그룹에 있으며, 이들은 동일한 프레임 F4에 의존한다. F4는 그룹 밖에 있으며 이 그룹보다 먼저 이미 프로세싱되었다. 따라서, F1 내지 F4의 프레임들은 F0가 프로세싱된 후 병렬로 프로세싱될 수 있으며, F5 내지 F8의 프레임들은 F4가 프로세싱된 후 병렬로 프로세싱될 수 있다.
GoP 기반 패치 팩킹의 실시형태들은 시간 상관이 도 5a 내지 도 5b에 도시된 바와 같이 가장 가까운 프레임들로부터 유래한다는 현재 GPA의 가정을 깨뜨릴 수도 있다. 따라서, 전파 방법이 제안된 GoP 기반 패치 팩킹에서의 유도된 패치 상관들에 기초하여 가장 가까운 이웃하는 프레임들 간 패치 상관들을 복구하기 위해 적용될 수 있다. 도 8a 내지 도 8b는 일 실시형태에 따른, 가장 가까운 이웃하는 프레임들로의 예시적인 패치 상관 전파를 예시한다. 특히, 도 8a는 패치 트래킹 전파가 수행되기 전의 패치 상관을 예시하며, 도 8b는 패치 트래킹 전파가 형성된 후의 패치 상관을 예시한다.
GoP 기반 패치 팩킹이 활성화되는 일 예가 도 8a에 도시된다. F1 및 F2는 동일한 그룹에 있으며, 이들은 둘 모두 F0에 의존한다. 각각의 프레임이 4개의 패치들, 즉, P0 내지 P3을 갖는다고 가정한다. GoP 기반 패치 팩킹에 의해 유도되는 패치 상관들이 도 8a에 도시될 수도 있으며, 여기서, F1에서의 패치들은 F0에서의 대응들을 찾고, F2에서의 패치들은 F0에서의 대응들을 또한 찾는다.
전파를 수행함으로써, 도 8b에 도시된 바와 같이, F1과 F2 사이의 패치 대응을 찾을 수 있다. 예를 들어, F2에서의 P0와 F1에서의 P0는 이들 둘 모두가 F0에서의 P0에 대응하기 때문에 관련된다. 다른 예에서, F2에서의 P1과 F1에서의 P2는 이들 둘 모두가 F0에서의 P1에 대응하기 때문에 관련된다. 제3 예에서, F2에서의 P2와 F1에서의 P1은 이들 둘 모두가 F0에서의 P2에 대응하기 때문에 관련된다. 제4 예에서, F2에서의 P3와 F1에서의 P3는 이들이 F0에서 동일한 대응을 찾을 수 없기 때문에 관련되지 않는다. 이러한 방법으로, 필요한 경우, GoP 기반 패치 팩킹에서 이웃하는 프레임들 사이의 패치 대응을 예측할 수 있다.
도 9는 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 방법(900)의 플로우차트이다. 일부 구현예들에서, 도 9의 하나 이상의 프로세스 블록은 인코더(203)에 의해 수행될 수도 있다. 일부 구현예들에서, 도 9의 하나 이상의 프로세스 블록은 디코더(210)와 같은, 인코더(203)와 분리되거나 또는 이를 포함하는 다른 디바이스 또는 디바이스들의 그룹에 의해 수행될 수도 있다.
도 9에 도시된 바와 같이, 동작 910에서, 방법(900)은 제1 프레임 및 나머지 프레임들을 포함하는 복수의 프레임들을 획득하는 단계를 포함할 수도 있으며, 복수의 프레임들의 각각의 프레임은 대응하는 복수의 패치들로 팩킹된다. 실시형태들에서, 제1 프레임은 위에서 설명된 F0에 대응할 수도 있다.
동작 920에서, 방법(900)은 나머지 프레임들을 제1 그룹 및 제2 그룹으로 그룹화하는 단계를 포함할 수도 있으며, 동일한 그룹으로 그룹화된 프레임들은 시간적으로 이웃할 수도 있다. 실시형태들에서, 제1 그룹은 위에서 설명된 그룹 0에 대응할 수도 있으며, 제2 그룹은 위에서 설명된 그룹 1에 대응할 수도 있다. 실시형태들에서, 나머지 프레임들은, 제1 그룹의 적어도 하나의 프레임이 제1 프레임에 의존할 수 있고 제2 그룹의 적어도 하나의 프레임이 제1 그룹의 프레임에 의존할 수 있고 제2 그룹의 프레임들이 제1 프레임에 의존할 수 없도록, 그룹화될 수도 있다.
동작 930에서, 방법(900)은 제1 프레임을 프로세싱하는 단계를 포함할 수도 있다.
동작 940에서, 방법(900)은 제1 프레임이 프로세싱된 후 제1 그룹 내 프레임들을 병렬 프로세싱하는 단계를 포함할 수도 있다. 실시형태들에서, 병렬 프로세싱은 서로 병렬로 제1 그룹의 하나 이상의 프레임을 프로세싱하는 단계를 포함할 수도 있다.
동작 950에서, 방법(900)은 프로세싱된 제1 프레임, 프로세싱된 제1 그룹, 및 프로세싱된 제2 그룹에 기초하여, 인코딩된 비디오 스트림을 발생시키는 단계를 포함할 수도 있다.
실시형태들에서, 방법(900)은 제1 그룹이 프로세싱된 후 제2 그룹 내 프레임들을 병렬 프로세싱하는 단계를 포함할 수도 있으며, 인코딩된 비디오 스트림은 제2 그룹 내 프로세싱된 프레임들에 기초하여 추가로 발생될 수도 있다. 실시형태들에서, 병렬 프로세싱은 서로 병렬로 제2 그룹의 하나 이상의 프레임을 프로세싱하는 단계를 포함할 수도 있다.
실시형태들에서, 제1 그룹의 사이즈 및 제2 그룹의 사이즈는 동일한 사이즈일 수도 있다.
실시형태들에서, 동일한 사이즈는 인코딩된 비디오 스트림으로 시그널링될 수도 있다.
실시형태들에서, 제1 그룹의 사이즈는 제2 그룹의 사이즈와는 상이할 수도 있다.
실시형태들에서, 제1 그룹의 사이즈는 인코딩된 비디오 스트림으로 시그널링될 수도 있으며, 제1 그룹의 사이즈와 제2 그룹의 사이즈 사이의 차이가 인코딩된 비디오 스트림으로 시그널링될 수도 있다.
실시형태들에서, 본 방법은 제1 그룹에 포함된 패치들 사이의 제1 패치 대응 및 제2 그룹에 포함된 패치들 사이의 제2 패치 대응 중 적어도 하나를 결정하는 단계를 더 포함할 수도 있으며, 인코딩된 비디오 스트림은 제1 패치 대응 및 제2 패치 대응 중 적어도 하나에 기초하여 발생될 수도 있다.
도 9는 방법(900)의 예시적인 블록들을 나타내지만, 일부 구현예들에서, 방법(900)은 도 9에 도시된 것들보다 추가적인 블록들, 더 적은 블록들, 상이한 블록들, 또는 상이하게 배열된 블록들을 포함할 수도 있으며, 추가적으로, 또는 대안적으로, 방법(900)의 블록들 중 2개 이상이 병렬로 수행될 수도 있다.
도 10은 실시형태들에 따른, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 장치(1000)의 다이어그램이다. 도 10에 도시된 바와 같이, 장치(800)는 획득 코드(1010), 그룹화 코드(1020), 프로세싱 코드(1030), 제1 병렬 프로세싱 코드(1040), 및 발생 코드(1050)를 포함한다.
획득 코드(1010)는 적어도 하나의 프로세서로 하여금, 제1 프레임 및 나머지 프레임들을 포함하는 복수의 프레임들을 획득하게 하도록 구성될 수도 있으며, 복수의 프레임들의 각각의 프레임은 대응하는 복수의 패치들로 팩킹된다. 실시형태들에서, 제1 프레임은 위에서 설명된 F0에 대응할 수도 있다.
그룹화 코드(1020)는 적어도 하나의 프로세서로 하여금, 나머지 프레임들을 제1 그룹 및 제2 그룹으로 그룹화하게 하도록 구성될 수도 있으며, 동일한 그룹으로 그룹화되는 프레임들은 시간적으로 이웃할 수도 있다. 실시형태들에서, 제1 그룹은 위에서 설명된 그룹 0에 대응할 수도 있으며, 제2 그룹은 위에서 설명된 그룹 1에 대응할 수도 있다. 실시형태들에서, 나머지 프레임들은, 제1 그룹의 적어도 하나의 프레임이 제1 프레임에 의존할 수 있고 제2 그룹의 적어도 하나의 프레임이 제1 그룹의 프레임에 의존할 수 있고 제2 그룹의 프레임들이 제1 프레임에 의존할 수 없도록, 그룹화될 수도 있다.
프로세싱 코드(1030)는 적어도 하나의 프로세서로 하여금, 제1 프레임을 프로세싱하게 하도록 구성될 수도 있다.
제1 병렬 프로세싱 코드(1040)는 적어도 하나의 프로세서로 하여금, 제1 프레임이 프로세싱된 후 제1 그룹을 병렬 프로세싱하게 하도록 구성될 수도 있다. 실시형태들에서, 병렬 프로세싱은 서로 병렬로 제1 그룹의 하나 이상의 프레임을 프로세싱하는 단계를 포함할 수도 있다.
발생 코드(1050)는 적어도 하나의 프로세서로 하여금, 프로세싱된 제1 프레임, 프로세싱된 제1 그룹, 및 프로세싱된 제2 그룹에 기초하여, 인코딩된 비디오 스트림을 발생시키게 하도록 구성될 수도 있다.
실시형태들에서, 디바이스(1000)는 적어도 하나의 프로세서로 하여금, 제1 그룹이 프로세싱된 후 제2 그룹을 병렬 프로세싱하게 하도록 구성된 코드를 더 포함할 수도 있으며, 인코딩된 비디오 스트림은 제2 그룹 내 프로세싱된 프레임들에 기초하여 발생될 수도 있다. 실시형태들에서, 병렬 프로세싱은 서로 병렬로 제2 그룹의 하나 이상의 프레임을 프로세싱하는 단계를 포함할 수도 있다.
위에서 설명된 기법들은 컴퓨터-판독가능 명령들을 이용하여 컴퓨터 소프트웨어로서 구현될 수 있으며, 하나 이상의 컴퓨터-판독가능 매체에 물리적으로 저장될 수 있다. 예를 들어, 도 11은 본 개시내용의 특정의 실시형태들을 구현하는데 적합한 컴퓨터 시스템(1100)을 나타낸다.
컴퓨터 소프트웨어는 컴퓨터 중앙 처리 유닛들(CPUs), 그래픽 프로세싱 유닛들(GPUs) 등에 의해, 직접, 또는 해석, 마이크로-코드 실행 등을 통해서, 실행될 수 있는 명령들을 포함하는 코드를 생성하기 위해 어셈블리, 편집, 링킹(linking), 또는 유사한 메커니즘들을 거칠 수도 있는, 임의의 적합한 기계 코드 또는 컴퓨터 언어를 이용하여 코딩될 수 있다.
명령들은 예를 들어, 개인용 컴퓨터들, 태블릿 컴퓨터들, 서버들, 스마트폰들, 게이밍 디바이스들, 사물 인터넷 디바이스들 등을 포함한, 다양한 유형들의 컴퓨터들 또는 이들의 컴포넌트들 상에서 실행될 수 있다.
컴퓨터 시스템(1100)에 대한 도 11에 나타낸 컴포넌트들은 예들이며, 본 개시내용의 실시형태들을 구현하는 컴퓨터 소프트웨어의 용도 또는 기능성의 범위에 대한 어떠한 제한도 제안하도록 의도되지 않는다. 컴포넌트들의 구성은 컴퓨터 시스템(1100)의 비제한적인 실시형태들에 예시된 컴포넌트들의 임의의 하나 또는 조합에 관한 임의의 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
컴퓨터 시스템(1100)은 특정의 인간 인터페이스 입력 디바이스들을 포함할 수도 있다. 이러한 인간 인터페이스 입력 디바이스는 예를 들어, 촉각 입력(예컨대: 키스트로크들, 스와이프들, 데이터 글러브 이동들), 오디오 입력(예컨대: 보이스, 박수), 시각적 입력(예컨대: 제스쳐들), 후각 입력(미도시됨)을 통해, 하나 이상의 인간 사용자에 의한 입력에 응답할 수도 있다. 인간 인터페이스 디바이스들은 또한 오디오(예컨대: 음성, 음악, 주변 사운드), 이미지들(예컨대: 스캔된 이미지들, 정지 화상 카메라로부터 획득된 사진 이미지들), 비디오(예컨대, 2차원 비디오, 입체 비디오를 포함하는 3차원 비디오)와 같은, 인간에 의한 의식적인 입력에 반드시 직접 관련되지는 않은 특정의 미디어를 캡쳐하는데 사용될 수 있다.
입력 인간 인터페이스 디바이스들은 키보드(1101), 마우스(1102), 트랙패드(1103), 터치 스크린(1110), 데이터-글러브, 조이스틱(1105), 마이크로폰(1106), 스캐너(1107), 카메라(1108) 중 하나 이상(각 도시된 것 중 하나만)을 포함할 수도 있다.
컴퓨터 시스템(1100)은 또한 특정의 인간 인터페이스 출력 디바이스들을 포함할 수도 있다. 이러한 인간 인터페이스 출력 디바이스들은 예를 들어, 촉각 출력, 사운드, 광, 및 냄새/미각을 통해, 하나 이상의 인간 사용자의 감각들을 자극할 수도 있다. 이러한 인간 인터페이스 출력 디바이스들은 촉각 출력 디바이스들(예를 들어, 터치-스크린(1110), 데이터 글러브, 또는 조이스틱(1105)에 의한 촉각 피드백이지만, 또한 입력 디바이스들로서 기능하지 않는 촉각 피드백 디바이스들일 수 있음)을 포함할 수도 있다. 예를 들어, 이러한 디바이스들은 오디오 출력 디바이스들(예컨대: 스피커들(1109), 헤드폰들(미도시됨)), 시각적 출력 디바이스들(예컨대, CRT 스크린들, LCD 스크린들, 플라즈마 스크린들, OLED 스크린들을 포함하되, 각각이 터치-스크린 입력 능력이 있거나 없고, 각각이 촉각 피드백 능력이 있거나 또는 없으며-이중 일부는 입체 출력; 가상-현실 안경(미도시됨), 홀로그램 디스플레이들 및 연기 탱크들(미도시됨)과 같은 수단을 통해 2차원 시각적 출력 또는 3차원 이상의 출력을 출력할 수도 있는, 스크린들(1110)), 및 프린터들(미도시됨)을 포함할 수도 있다.
컴퓨터 시스템(1100)은 또한 CD/DVD 또는 유사 매체들(1121)과 함께 CD/DVD ROM/RW(1120)를 포함하는 광학 매체들, 썸(thumb)-드라이브(1122), 착탈식 하드 드라이브 또는 솔리드 스테이트 드라이브(1123), 테이프 및 플로피 디스크(미도시됨)와 같은 레거시 자기 매체들, 보안 동글들(미도시됨)과 같은 특수 ROM/ASIC/PLD 기반의 디바이스들 등과 같은, 인간 액세스가능한 저장 디바이스들 및 이들의 연관된 매체들을 포함할 수 있다.
통상의 기술자들은 또한 용어 "컴퓨터 판독가능 매체들"이 현재 개시된 기술요지와 관련하여 사용될 때 송신 매체들, 반송파들, 또는 다른 일시성 신호들을 포함하지 않는 것으로 이해해야 한다.
컴퓨터 시스템(1100)은 또한 하나 이상의 통신 네트워크에 대한 인터페이스를 포함할 수 있다. 네트워크들은 예를 들어, 무선, 유선, 광일 수 있다. 네트워크들은 추가적으로 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연 허용 등일 수 있다. 네트워크들의 예들은 이더넷, 무선 LAN들과 같은 근거리 네트워크들, GSM, 3G, 4G, 5G, LTE 및 기타 등등을 포함하는 셀룰러 네트워크들, 케이블 TV, 위성 TV, 및 지상 브로드캐스트 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크들, CANBus을 포함하는 차량 및 산업 등을 포함한다. 특정의 네트워크들은 일반적으로 특정의 범용 데이터 포트들 또는 주변장치 버스들(1149)(예컨대, 예를 들어, 컴퓨터 시스템(1100)의 USB 포트들에 부착된 외부 네트워크 인터페이스 어댑터들을 필요로 하며; 다른 것들은 일반적으로 아래에서 설명되는 바와 같이 시스템 버스에의 부착에 의해 컴퓨터 시스템(1100)의 코어에 통합된다(예를 들어, PC 컴퓨터 시스템으로의 이더넷 인터페이스 또는 스마트폰 컴퓨터 시스템으로의 셀룰러 네트워크 인터페이스). 이들 네트워크들 중 임의의 것을 이용하여, 컴퓨터 시스템(1100)은 다른 엔터티들과 통신할 수 있다. 이러한 통신은 예를 들어, 로컬 또는 광역 디지털 네트워크들을 이용한 다른 컴퓨터 시스템들로의, 단방향 수신 전용(예를 들어, 브로드캐스트 TV), (예를 들어, CANbus에서 특정의 CANbus 디바이스들로) 단방향 전송 전용, 또는 양방향일 수 있다. 이러한 통신은 클라우드 컴퓨팅 환경(1155)에 대한 통신을 포함할 수 있다. 특정의 프로토콜들 및 프로토콜 스택들이 위에서 설명한 바와 같이 이들 네트워크들 및 네트워크 인터페이스들의 각각 상에서 사용될 수 있다.
전술한 인간 인터페이스 디바이스들, 인간-액세스가능한 저장 디바이스들, 및 네트워크 인터페이스들(1154)은 컴퓨터 시스템(1100)의 코어(1140)에 부착될 수 있다.
코어(1140)는 하나 이상 중앙 처리 유닛들(CPU)(1141), 그래픽 프로세싱 유닛들(GPU)(1142), 필드 프로그래밍가능 게이트 영역들(FPGA)(1143)의 형태의 특수 프로그래밍가능 프로세싱 유닛들, 특정의 태스크들을 위한 하드웨어 액셀러레이터들(1144) 등을 포함할 수 있다. 이들 디바이스들은, 판독-전용 메모리(ROM)(1145), 랜덤-액세스 메모리(1146), 내부 비-사용자 액세스가능한 하드 드라이브들, SSD들 등과 같은 내부 대용량 스토리지(1147)와 함께, 시스템 버스(1148)를 통해서 접속될 수도 있다. 일부 컴퓨터 시스템들에서, 시스템 버스(1148)는 추가적인 CPU들, GPU 등에 의한 확장들을 가능하게 하기 위해 하나 이상의 물리적인 플러그의 형태로 액세스가능할 수 있다. 주변장치 디바이스들은 코어의 시스템 버스(1148)에 직접, 또는 주변장치 버스(1149)를 통해서 부착될 수 있다. 주변장치 버스에 대한 아키텍쳐들은 PCI, USB 등을 포함한다. 그래픽 어댑터(1150)는 코어(1140)에 포함될 수도 있다.
CPU들(1141), GPU들(1142), FPGA들(1143), 및 액셀러레이터들(1144)은 조합하여, 전술한 컴퓨터 코드를 구성할 수 있는 특정의 명령들을 실행할 수 있다. 그 컴퓨터 코드는 ROM(1145) 또는 RAM(1146)에 저장될 수 있다. 전이 데이터는 또한 RAM(1146)에 저장될 수 있지만, 영구적인 데이터는 예를 들어, 내부 대용량 스토리지(1147)에 저장될 수 있다. 메모리 디바이스들 중 임의의 디바이스로의 빠른 저장 및 취출은 하나 이상의 CPU(1141), GPU(1142), 대용량 스토리지(1147), ROM(1145), RAM(1146) 등과 밀접하게 연관될 수 있는 캐시 메모리의 사용을 통해서 가능해질 수 있다.
컴퓨터 판독가능 매체들은 다양한 컴퓨터-구현되는 동작들을 수행하는 컴퓨터 코드를 가질 수 있다. 매체들 및 컴퓨터 코드는 본 개시내용의 목적들을 위해 특별히 설계되고 구성된 것일 수 있거나, 또는 이들은 컴퓨터 소프트웨어 분야의 통상의 기술자에게 널리 알려져 있고 이용 가능한 종류일 수 있다.
일 예로서 그리고 비제한적으로, 아키텍처(1100), 및 구체적으로 코어(1140)를 갖는 컴퓨터 시스템은 하나 이상의 유형의, 컴퓨터-판독가능 매체들에 구현된 소프트웨어를 실행하는 (CPU들, GPU들, FPGA, 액셀러레이터들 등을 포함한) 프로세서(들)의 결과로서 기능을 제공할 수 있다. 이러한 컴퓨터-판독가능 매체들은 위에서 소개된 바와 같은 사용자-액세스가능한 대용량 스토리지 뿐만 아니라, 코어-내부 대용량 스토리지(1147) 또는 ROM(1145)과 같은, 비일시성 성질인 코어(1140)의 특정의 스토리지와 연관된 매체들일 수 있다. 본 개시내용의 다양한 실시형태들을 구현하는 소프트웨어는 이러한 디바이스들에 저장되고 코어(1140)에 의해 실행될 수 있다. 컴퓨터-판독가능 매체는 특정의 요구들에 따라, 하나 이상의 메모리 디바이스 또는 칩을 포함할 수 있다. 소프트웨어는 코어(1140), 구체적으로는 (CPU, GPU, FPGA 등을 포함하는) 그 안의 프로세서들로 하여금, RAM(1146)에 저장된 데이터 구조들을 정의하고 소프트웨어에 의해 정의된 프로세스들에 따라서 이러한 데이터 구조들을 수정하는 것을 포함하여, 본원에서 설명되는 특정의 프로세스들 또는 특정의 프로세스들의 특정의 부분들을 실행하게 할 수 있다. 추가적으로 또는 대안적으로, 컴퓨터 시스템은 본원에서 설명되는 특정의 프로세스들 또는 특정의 프로세스들의 특정의 부분들을 실행하기 위해 소프트웨어 대신 또는 함께 동작할 수 있는 회로(예를 들어: 액셀러레이터(1144))에 하드와이어드되거나 또는 다른 방식으로 구현되는 로직의 결과로서 기능을 제공할 수 있다. 소프트웨어에 대한 참조는 로직을 포함할 수 있으며, 적절한 경우 반대의 경우도 마찬가지이다. 컴퓨터-판독가능 매체들에 대한 참조는 적절한 경우, 실행을 위한 소프트웨어를 저장한 회로(예컨대, 집적 회로(IC)), 실행을 위한 로직을 구현하는 회로, 또는 둘 모두를 포함할 수 있다. 본 개시내용은 임의의 적합한 하드웨어와 소프트웨어의 조합을 포함할 수 있다.
본 개시내용은 여러 비제한적인 실시형태들을 설명하였지만, 본 개시내용의 범위에 속하는 변형들, 치환들, 및 다양한 대체 균등물들이 있다. 따라서, 본원에서 명시적으로 도시되거나 또는 설명되지는 않았지만, 본 개시내용의 원리들을 구현하고 따라서 이의 사상 및 범위 내인 매우 많은 시스템들 및 방법들을 창안할 수 있음을 통상의 기술자들은 알 수 있을 것이다.
Claims (20)
- 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 방법으로서, 상기 방법은 적어도 하나의 프로세서에 의해 수행되며,
상기 방법은,
제1 프레임 및 나머지 프레임들을 포함하는 복수의 프레임들을 획득하는 단계 - 상기 복수의 프레임들의 각각의 프레임은 대응하는 복수의 패치들로 팩킹됨-;
상기 나머지 프레임들을 제1 그룹 및 제2 그룹으로 그룹화하는 단계 - 동일한 그룹으로 그룹화되는 프레임들은 시간적으로 이웃함-;
상기 제1 프레임을 프로세싱하는 단계;
상기 제1 프레임이 프로세싱된 후 상기 제1 그룹 내 프레임들을 병렬 프로세싱하는 단계; 및
프로세싱된 상기 제1 프레임 및 상기 제1 그룹 내 프로세싱된 프레임들에 기초하여, 인코딩된 비디오 스트림을 발생시키는 단계를 포함하며,
상기 제1 그룹의 적어도 하나의 프레임은 상기 제1 프레임에 의존하는, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 방법. - 제1항에 있어서,
상기 제1 그룹이 프로세싱된 후 상기 제2 그룹 내 프레임들을 병렬 프로세싱하는 단계를 더 포함하며,
상기 제2 그룹의 적어도 하나의 프레임은 상기 제1 그룹의 프레임에 의존하며,
상기 제2 그룹의 프레임들은 상기 제1 프레임에 의존하지 않으며,
상기 인코딩된 비디오 스트림은 상기 제2 그룹 내 프로세싱된 프레임들에 기초하여 발생되는, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 방법. - 제1항에 있어서,
상기 제1 그룹의 사이즈 및 상기 제2 그룹의 사이즈는 동일한 사이즈인, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 방법. - 제3항에 있어서,
상기 동일한 사이즈는 상기 인코딩된 비디오 스트림으로 시그널링되는, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 방법. - 제1항에 있어서,
상기 제1 그룹의 사이즈는 상기 제2 그룹의 사이즈와는 상이한, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 방법. - 제5항에 있어서,
상기 제1 그룹의 사이즈는 상기 인코딩된 비디오 스트림으로 시그널링되며,
상기 제1 그룹의 사이즈와 상기 제2 그룹의 사이즈 사이의 차이가 상기 인코딩된 비디오 스트림으로 시그널링되는, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 방법. - 제1항에 있어서,
상기 제1 그룹에 포함된 패치들 사이의 제1 패치 대응 및 상기 제2 그룹에 포함된 패치들 사이의 제2 패치 대응 중 적어도 하나를 결정하는 단계를 더 포함하며,
상기 인코딩된 비디오 스트림은 상기 제1 패치 대응 및 상기 제2 패치 대응 중 적어도 하나에 기초하여 발생되는, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 방법. - 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 장치로서,
프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및
상기 프로그램 코드를 판독하고 상기 프로그램 코드에 의해 명령되는 대로 동작하도록 구성된 적어도 하나의 프로세서를 포함하며,
상기 프로그램 코드는,
상기 적어도 하나의 프로세서로 하여금, 제1 프레임 및 나머지 프레임들을 포함하는 복수의 프레임들을 획득하게 하도록 구성된 획득 코드 - 상기 복수의 프레임들의 각각의 프레임은 대응하는 복수의 패치들로 팩킹됨-;
상기 적어도 하나의 프로세서로 하여금, 상기 나머지 프레임들을 제1 그룹 및 제2 그룹으로 그룹화하게 하도록 구성된 그룹화 코드 - 동일한 그룹으로 그룹화되는 프레임들은 시간적으로 이웃함-;
상기 적어도 하나의 프로세서로 하여금, 상기 제1 프레임을 프로세싱하게 하도록 구성된 프로세싱 코드;
상기 적어도 하나의 프로세서로 하여금, 상기 제1 프레임이 프로세싱된 후 상기 제1 그룹 내 프레임들을 병렬 프로세싱하게 하도록 구성된 제1 병렬 프로세싱 코드; 및
상기 적어도 하나의 프로세서로 하여금, 상기 프로세싱된 제1 프레임 및 상기 제1 그룹 내 프로세싱된 프레임들에 기초하여, 인코딩된 비디오 스트림을 발생시키게 하도록 구성된 발생 코드를 포함하며,
상기 제1 그룹의 적어도 하나의 프레임은 상기 제1 프레임에 의존하는, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 장치. - 제8항에 있어서,
상기 프로그램 코드는 상기 적어도 하나의 프로세서로 하여금, 상기 제1 그룹이 프로세싱된 후 상기 제2 그룹 내 프레임들을 병렬 프로세싱하게 하도록 구성된 제2 병렬 프로세싱 코드를 더 포함하며,
상기 제2 그룹의 적어도 하나의 프레임은 상기 제1 그룹의 프레임에 의존하며,
상기 제2 그룹의 프레임들은 상기 제1 프레임에 의존하지 않으며,
상기 인코딩된 비디오 스트림은 상기 제2 그룹 내 프로세싱된 프레임들에 기초하여 발생되는, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 장치. - 제8항에 있어서,
상기 제1 그룹의 사이즈 및 상기 제2 그룹의 사이즈는 동일한 사이즈인, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 장치. - 제10항에 있어서,
상기 동일한 사이즈는 상기 인코딩된 비디오 스트림으로 시그널링되는, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 장치. - 제8항에 있어서,
상기 제1 그룹의 사이즈는 상기 제2 그룹의 사이즈와는 상이한, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 장치. - 제12항에 있어서,
상기 제1 그룹의 사이즈는 상기 인코딩된 비디오 스트림으로 시그널링되며,
상기 제1 그룹의 사이즈와 상기 제2 그룹의 사이즈 사이의 차이가 상기 인코딩된 비디오 스트림으로 시그널링되는, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 장치. - 제8항에 있어서,
상기 프로그램 코드는 상기 적어도 하나의 프로세서로 하여금, 상기 제1 그룹에 포함된 패치들 사이의 제1 패치 대응 및 상기 제2 그룹에 포함된 패치들 사이의 제2 패치 대응 중 적어도 하나를 결정하게 하도록 구성된 결정을 더 포함하며,
상기 인코딩된 비디오 스트림은 상기 제1 패치 대응 및 상기 제2 패치 대응 중 적어도 하나에 기초하여 발생되는, 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 장치. - 비디오 포인트 클라우드 코딩을 이용하여 비디오 스트림을 인코딩하는 컴퓨터 명령들을 저장한 비일시성 컴퓨터-판독가능 매체로서,
상기 명령들은, 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
제1 프레임 및 나머지 프레임들을 포함하는 복수의 프레임들을 획득하게 하고 - 상기 복수의 프레임들의 각각의 프레임은 대응하는 복수의 패치들로 팩킹됨-;
상기 나머지 프레임들을 제1 그룹 및 제2 그룹으로 그룹화하게 하고 - 동일한 그룹으로 그룹화되는 프레임들은 시간적으로 이웃함-;
상기 제1 프레임을 프로세싱하게 하고;
상기 제1 프레임이 프로세싱된 후 상기 제1 그룹 내 프레임들을 병렬 프로세싱하게 하고; 그리고
상기 프로세싱된 제1 프레임, 상기 제1 그룹 내 프로세싱된 프레임들에 기초하여, 인코딩된 비디오 스트림을 발생시키게 하며,
상기 제1 그룹의 적어도 하나의 프레임은 상기 제1 프레임에 의존하는, 비일시성 컴퓨터-판독가능 매체. - 제15항에 있어서,
상기 명령들은 추가로, 상기 적어도 하나의 프로세서로 하여금, 상기 제1 그룹이 프로세싱된 후 상기 제2 그룹 내 프레임들을 병렬 프로세싱하게 하며,
상기 제2 그룹의 적어도 하나의 프레임은 상기 제1 그룹의 프레임에 의존하며,
상기 제2 그룹의 프레임들은 상기 제1 프레임에 의존하지 않으며,
상기 인코딩된 비디오 스트림은 상기 제2 그룹 내 프로세싱된 프레임들에 기초하여 발생되는, 비일시성 컴퓨터-판독가능 매체. - 제15항에 있어서,
상기 제1 그룹의 사이즈 및 상기 제2 그룹의 사이즈는 동일한 사이즈인, 비일시성 컴퓨터-판독가능 매체. - 제17항에 있어서,
상기 동일한 사이즈는 상기 인코딩된 비디오 스트림으로 시그널링되는, 비일시성 컴퓨터-판독가능 매체. - 제15항에 있어서,
상기 제1 그룹의 사이즈는 상기 제2 그룹의 사이즈와는 상이한, 비일시성 컴퓨터-판독가능 매체. - 제15항에 있어서,
상기 명령들은 추가로, 상기 적어도 하나의 프로세서로 하여금, 상기 제1 그룹에 포함된 패치들 사이의 제1 패치 대응 및 상기 제2 그룹에 포함된 패치들 사이의 제2 패치 대응 중 적어도 하나를 결정하게 하며,
상기 인코딩된 비디오 스트림은 상기 제1 패치 대응 및 상기 제2 패치 대응 중 적어도 하나에 기초하여 발생되는, 비일시성 컴퓨터-판독가능 매체.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163219237P | 2021-07-07 | 2021-07-07 | |
US63/219,237 | 2021-07-07 | ||
US17/497,326 | 2021-10-08 | ||
US17/497,326 US11683523B2 (en) | 2021-07-07 | 2021-10-08 | Group of pictures based patch packing for video based point cloud coding |
PCT/US2021/054553 WO2023282926A1 (en) | 2021-07-07 | 2021-10-12 | Group of pictures based patch packing for video based point cloud coding |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230054434A true KR20230054434A (ko) | 2023-04-24 |
Family
ID=84799072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237009551A KR20230054434A (ko) | 2021-07-07 | 2021-10-12 | 비디오 기반의 포인트 클라우드 코딩을 위한 픽처들의 그룹 기반 패치 팩킹 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11683523B2 (ko) |
EP (1) | EP4193591A4 (ko) |
JP (1) | JP7434667B2 (ko) |
KR (1) | KR20230054434A (ko) |
CN (1) | CN116648904A (ko) |
WO (1) | WO2023282926A1 (ko) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201603144D0 (en) * | 2016-02-23 | 2016-04-06 | Magic Pony Technology Ltd | Training end-to-end video processes |
US11297346B2 (en) * | 2016-05-28 | 2022-04-05 | Microsoft Technology Licensing, Llc | Motion-compensated compression of dynamic voxelized point clouds |
US10909725B2 (en) | 2017-09-18 | 2021-02-02 | Apple Inc. | Point cloud compression |
US10607373B2 (en) * | 2017-11-22 | 2020-03-31 | Apple Inc. | Point cloud compression with closed-loop color conversion |
EP3772853B1 (en) * | 2018-04-09 | 2024-06-19 | Huawei Technologies Co., Ltd. | Method and device for point cloud coding |
US11049266B2 (en) * | 2018-07-31 | 2021-06-29 | Intel Corporation | Point cloud viewpoint and scalable compression/decompression |
US20200045344A1 (en) * | 2018-07-31 | 2020-02-06 | Intel Corporation | Video processing mechanism |
WO2020061149A1 (en) | 2018-09-21 | 2020-03-26 | Futurewei Technologies, Inc. | Patch orientation derivation and prediction |
WO2020071703A1 (ko) * | 2018-10-01 | 2020-04-09 | 엘지전자 주식회사 | 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및/또는 포인트 클라우드 데이터 수신 방법 |
US10708627B2 (en) * | 2019-03-04 | 2020-07-07 | Intel Corporation | Volumetric video compression with motion history |
US11223836B2 (en) * | 2019-12-02 | 2022-01-11 | Tencent America LLC | Method and apparatus for point cloud coding |
-
2021
- 2021-10-08 US US17/497,326 patent/US11683523B2/en active Active
- 2021-10-12 KR KR1020237009551A patent/KR20230054434A/ko active Search and Examination
- 2021-10-12 CN CN202180086139.0A patent/CN116648904A/zh active Pending
- 2021-10-12 JP JP2023523277A patent/JP7434667B2/ja active Active
- 2021-10-12 WO PCT/US2021/054553 patent/WO2023282926A1/en active Application Filing
- 2021-10-12 EP EP21949509.0A patent/EP4193591A4/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP7434667B2 (ja) | 2024-02-20 |
JP2023546441A (ja) | 2023-11-02 |
CN116648904A (zh) | 2023-08-25 |
US20230011096A1 (en) | 2023-01-12 |
WO2023282926A1 (en) | 2023-01-12 |
EP4193591A4 (en) | 2024-01-24 |
EP4193591A1 (en) | 2023-06-14 |
US11683523B2 (en) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11451836B2 (en) | Techniques and apparatus for PCM patch creation using Morton codes | |
CN112188209B (zh) | 视频流解码方法、装置、计算机设备和存储介质 | |
US11587263B2 (en) | Method and apparatus for enhanced patch boundary identification for point cloud compression | |
CN113170154A (zh) | 用于退火迭代几何平滑的方法和装置 | |
US11250594B2 (en) | Method and apparatus for geometry smoothing by local geometry projection | |
US11683523B2 (en) | Group of pictures based patch packing for video based point cloud coding | |
US11606556B2 (en) | Fast patch generation for video based point cloud coding | |
US20220394294A1 (en) | Non-binary occupancy map for video based point cloud coding | |
US11979606B2 (en) | Conditional recolor for video based point cloud coding | |
US11956478B2 (en) | Method and apparatus for point cloud chunking for improved patch packing and coding efficiency | |
KR20230012558A (ko) | 비디오 기반 포인트 클라우드 코딩을 위한 고속 재채색 | |
WO2023086258A1 (en) | Grid-based patch generation for video-based point cloud coding | |
CN112188201A (zh) | 对视频流进行编码的方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |