KR20210152186A - 인트라 예측을 이용한 포인트 클라우드 데이터 부호화/복호화 방법 및 장치 - Google Patents

인트라 예측을 이용한 포인트 클라우드 데이터 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
KR20210152186A
KR20210152186A KR1020200068950A KR20200068950A KR20210152186A KR 20210152186 A KR20210152186 A KR 20210152186A KR 1020200068950 A KR1020200068950 A KR 1020200068950A KR 20200068950 A KR20200068950 A KR 20200068950A KR 20210152186 A KR20210152186 A KR 20210152186A
Authority
KR
South Korea
Prior art keywords
block
data
replaceable
point cloud
unique
Prior art date
Application number
KR1020200068950A
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 한국전자통신연구원
Priority to KR1020200068950A priority Critical patent/KR20210152186A/ko
Publication of KR20210152186A publication Critical patent/KR20210152186A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/17Methods 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/176Methods 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 block, e.g. a macroblock
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

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

본 발명은 인트라 예측을 이용한 포인트 클라우드 데이터 부호화/복호화 방법 및 장치에 대한 것이다. 본 발명의 일 실시예로서, 인트라 예측을 이용한 포인트 클라우드 데이터 복호화 장치는, 비트스트림을 입력 받는 수신부, 상기 수신된 비트스트림을 분해(parsing)하고, 상기 분해된 비트스트림을 디코더로 복호화한 뒤, 포인트 클라우드 복원을 위한 후처리를 수행하는 프로세서를 포함할 수 있다.
본 발명에 의하면 포인트 클라우드 압축을 위하여 중복된 블록의 포인트를 제거함으로써 포인트들의 공간적 중복성을 제거하는 바 포인트 클라우드의 처리에 소요되는 시간이 줄어드는 효과가 있다.

Description

인트라 예측을 이용한 포인트 클라우드 데이터 부호화/복호화 방법 및 장치{Method and Apparatus for Point Cloud Data Encoding and Decoding By Intra Prediction}
본 발명은 인트라 예측을 이용한 포인트 클라우드 데이터 부호화/복호화 방법 및 장치에 대한 것이다.
인터넷은 인간이 정보를 생성하고 소비하는 인간 중심의 연결 망에서, 사물 등 분산된 구성 요소들 간에 정보를 주고받아 처리하는 사물인터넷(Internet of Things, IoT) 망으로 진화하고 있다. IoE(Internet of Everything) 기술은 클라우드 서버 등과의 연결을 통한 빅데이터 (Big data) 처리 기술 등이 IoT 기술에 결합된 하나의 예가 될 수 있다.
IoT를 구현하기 위해서, 센싱 기술, 유무선 통신 및 네트워크 인프라, 서비스 인터페이스 기술, 및 보안 기술 등과 같은 기술 요소 들이 요구되어, 최근에는 사물 간의 연결을 위한 센서 네트워크(sensor network), 사물 통신(Machine to Machine, M2M), MTC (Machine Type Communication) 등의 기술이 연구되고 있다.
IoT 환경에서는 연결된 사물들에서 생성된 데이터를 수집, 분석하여 인간의 삶에 새로운 가치를 창출하는 지능형 IT(Internet Technology) 서비스가 제공될 수 있다. IoT는 기존의 IT 기술과 다양한 산업 간의 융합 및 복합을 통하여 스마트홈, 스마트 빌딩, 스마트 시티, 스마트 카 혹은 커넥티드(Connected) 카, 스마트 그리드, 헬스 케어, 스마트 가전, 첨단의료서비스 등의 분야에 응용될 수 있다.
한편, 멀티미디어 관련 국제 표준화 기구인 MPEG(Moving Picture Experts Group)은 1988년 MPEG-1을 시작으로 현재까지, MPEG-2, MPEG-4, MPEG-7, MPEG-21의 표준화 작업이 완료된 바 있으며, MPEG-I의 표준화 작업이 진행되고 있다.
한편, 대용량의 3차원 데이터는 포인트 클라우드(point cloud)로 표현되며, 포인트 클라우드는 방대한 양의 포인트의 집합을 의미한다. 포인트 클라우드는 2D 영상과는 비교되는 값으로, 3차원 상의 한 점을 표현하는 방법이고, 위치 좌표와 색상을 동시에 가지는 벡터 형태이다. 예를 들어, 포인트 클라우드는 (x, y, z, R, G, B)와 같이 표현될 수 있다.
3차원 데이터를 표현하는 포인트 클라우드는 데이터 량이 방대하여 상당량의 메모리 리소스를 차지하기 때문에, 데이터 처리 시간이 상당히 길어질 수 있어서 효율적인 포인트 클라우드 압축방법 뿐 아니라 포인트 클라우드의 효율적인 압축을 위한 기술이 필요한 실정이다.
상술한 종래 기술의 문제점을 해결하기 위해, 본 발명의 목적은 인트라 예측을 이용한 포인트 클라우드 데이터 부호화/복호화 방법 및 장치를 제공하는 데 있다.
또한, 본 발명의 목적은 포인트 클라우드 압축 전 품질 저하 문제를 발생시키지 않으면서 포인트 클라우드 데이터 중에서 화면 내에 중복된 데이터를 대체 혹은 제거하는 포인트 클라우드 데이터 부호화/복호화 방법 및 장치를 제안하는 데 있다.
또한, 본 발명의 목적은 포인트 클라우드 데이터의 공간적 중복성을 감소시키고 압축 시 계산 복잡도를 감소시켜 포인트 클라우드 데이터 압축의 효율성을 향상시키는데 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한, 본 발명의 일 실시예에 따른 인트라 예측을 이용한 포인트 클라우드 데이터 복호화 장치는, 비트스트림을 입력 받는 수신부, 상기 수신된 비트스트림을 분해(parsing)하고, 상기 분해된 비트스트림을 디코더로 복호화한 뒤, 포인트 클라우드 복원을 위한 후처리를 수행하는 프로세서를 포함할 수 있다.
한편, 상기 비트스트림은, 고유 블록에 대한 정보, 블록이 대체 가능한 블록인지 여부를 나타내는 플래그 정보, 대체 가능한 블록에 대한 인덱스 정보를 포함할 수 있다.
한편, 상기 프로세서는, 상기 디코더를 이용하여 복호화할 때 상기 비트스트림에 포함된 상기 고유 블록에 대한 정보를 복호화하여 고유 블록을 도출할 수 있다.
한편, 상기 포인트 클라우드 복원을 위한 후처리는, 상기 복호화된 고유 블록과 상기 대체 가능한 블록에 대한 인덱스 정보를 이용하여 포인트를 복원하는 것을 포함할 수 있다.
한편, 상기 고유 블록은 현재 블록과 참조 블록의 왜곡이 기 설정된 한계값보다 큰 경우에 해당하고, 상기 대체 가능한 블록은 현재 블록과 참조 블록의 왜곡이 기 설정된 한계값보다 작거나 같은 경우에 해당하는 것을 특징으로 할 수 있다.
상기 목적을 달성하기 위한, 본 발명의 일 실시예에 따른 인트라 예측을 이용한 데이터 부호화 방법은, 상기 포인트 클라우드 데이터에 전처리를 수행하여 고유 블록과 대체 가능한 블록을 결정하는 단계, 상기 전처리를 통해 결정된 고유 블록을 인코더로 부호화하는 단계, 상기 부호화된 고유 블록에 대한 정보와 대체 가능한 블록에 대한 정보를 기반으로 비트스트림을 생성하는 단계를 포함할 수 있다.
한편, 상기 비트스트림은, 상기 고유 블록에 대한 정보, 현재 블록이 대체 가능한 블록인지 여부를 나타내는 플래그 정보, 상기 대체 가능한 블록에 대한 인덱스 정보를 포함할 수 있다.
한편, 상기 포인트 클라우드 데이터에 수행되는 전처리는, 상기 포인트 클라우드 데이터에 바운딩 박스를 생성하는 단계, 상기 바운딩 박스를 복수의 블록으로 나누는 단계, 상기 복수의 블록을 현재 블록과 참조 블록으로 구분하는 단계, 상기 현재 블록과 상기 참조 블록의 왜곡을 도출하는 단계, 상기 왜곡에 따라 고유 블록을 결정하고 대체 가능한 블록에 대한 정보를 도출하는 단계를 포함할 수 있다.
한편, 상기 고유 블록을 결정하고 대체 가능한 블록에 대한 정보를 도출하는 단계는, 상기 현재 블록과 상기 참조 블록 간에 도출된 왜곡이 기 설정된 한계값보다 큰 경우, 현재 블록을 고유 블록으로 결정하고, 상기 도출된 왜곡이 기 설정된 한계값보다 작거나 같은 경우에는, 상기 현재 블록을 대체 가능한 블록으로 결정할 수 있다.
한편, 상기 바운딩 박스는, 상기 포인트 클라우드 데이터의 프레임 별로 각각 생성되는 것을 특징으로 할 수 있다.
한편, 상기 블록은 8x8x8 크기로 나누어져 옥트리 구조를 갖는 것을 특징으로 할 수 있다.
한편, 상기 왜곡은 상기 현재 블록 및 참조 블록에 포함된 포인트들의 기하 데이터, 색상 데이터, 반사율 데이터 중 적어도 하나를 기반으로 도출되는 것을 특징으로 할 수 있다.
한편, 상기 왜곡은 평균 제곱 오차, 평균 제곱근 오차, 하우스도르프 거리 중 적어도 하나를 이용하여 도출되는 것을 특징으로 할 수 있다.
한편, 상기 인코더는 MPEG G-PCC 기반인 것을 특징으로 할 수 있다.
상기 목적을 달성하기 위한, 본 발명의 일 실시예에 따른 인트라 예측을 이용한 포인트 클라우드 데이터 복호화 방법은, 비트스트림(bitstream)을 입력으로써 수신하는 단계, 상기 수신된 비트스트림을 분해(parsing)하여 고유 블록에 대한 정보와 대체 가능한 블록에 대한 인덱스 정보를 구분하는 단계, 상기 고유 블록에 대한 정보를 디코더로 복호화하여 고유 블록을 도출하는 단계, 상기 도출된 고유 블록과 상기 대체 가능한 블록에 대한 인덱스 정보를 기반으로 포인트 클라우드 복원을 위한 후처리를 수행하는 단계를 포함할 수 있다.
한편, 상기 비트스트림은, 고유 블록에 대한 정보, 블록이 대체 가능한 블록인지를 알려주는 플래그 정보, 대체 가능한 블록에 대한 인덱스 정보를 포함할 수 있다.
한편, 상기 포인트 클라우드 복원을 위한 후처리를 수행하는 단계는, 상기 복호화된 고유 블록과 상기 대체 가능한 블록에 대한 인덱스 정보를 이용하여 포인트를 복원하는 단계를 포함할 수 있다.
한편, 상기 고유 블록은, 현재 블록과 참조 블록의 왜곡이 기 설정된 한계값보다 큰 경우에 해당하고, 상기 대체 가능한 블록은 현재 블록과 참조 블록의 왜곡이 기 설정된 한계값보다 작거나 같은 경우에 해당하는 것을 특징으로 할 수 있다.
한편, 상기 디코더는 MPEG G-PCC 기반인 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 따르면, 인트라 예측을 이용한 포인트 클라우드 데이터의 부호화/복호화 방법 및 장치를 제공할 수 있다.
본 발명의 일 실시예에 따르면, 포인트 클라우드 데이터의 공간적 중복성을 감소시켜 포인트 클라우드 데이터의 압축에 소요되는 시간을 줄이고, 효율성을 향상시킬 수 있다.
본 발명의 일 실시예에 따르면, 포인트 클라우드 데이터 압축의 계산 복잡도를 감소시키는 효과가 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1a 및 도 1b는 본 발명의 일 실시예에 따른 인트라 예측을 이용한 포인트 클라우드 부호화 기술에 대한 도면이다.
도 2는 본 발명의 일 실시예에 따른 부호화 출력인 비트스트림에 대한 도면이다.
도 3a 및 도 3b는 본 발명의 일 실시예에 따른 인트라 예측을 이용한 포인트 클라우드 복호화 기술에 대한 도면이다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 인트라 예측을 이용한 포인트 클라우드 전처리 및 후처리 기술의 흐름도 도면이다.
도 5a 및 도 5b는 본 발명의 일 실시예에 따른 인트라 예측을 이용한 포인트 클라우드 전처리 및 후처리 기술의 블록도 도면이다.
도 6은 본 발명의 일 실시예에 따른 인트라 예측을 이용한 포인트 클라우드 부/복호화 장치에 대한 도면이다.
도 7은 본 발명의 일 실시예에 따른 바운딩 박스(bounding box) 생성 방법에 대한 도면이다.
도 8은 본 발명에 적용될 수 있는 옥트리(octree) 구조에 대한 도면이다.
이하에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
본 발명의 실시 예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 발명에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 발명에 있어서, 서로 구별되는 구성요소들은 각각의 특징을 명확하게 설명하기 위함이며, 구성요소들이 반드시 분리되는 것을 의미하지는 않는다. 즉, 복수의 구성요소가 통합되어 하나의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있고, 하나의 구성요소가 분산되어 복수의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있다. 따라서, 별도로 언급하지 않더라도 이와 같이 통합된 또는 분산된 실시 예도 본 발명의 범위에 포함된다.
본 발명에 있어서, 다양한 실시 예에서 설명하는 구성요소들이 반드시 필수적인 구성요소들을 의미하는 것은 아니며, 일부는 선택적인 구성요소일 수 있다. 따라서, 일 실시 예에서 설명하는 구성요소들의 부분집합으로 구성되는 실시 예도 본 발명의 범위에 포함된다. 또한, 다양한 실시 예에서 설명하는 구성요소들에 추가적으로 다른 구성요소를 포함하는 실시 예도 본 발명의 범위에 포함된다.
본 발명에 있어서, 제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 특별히 언급되지 않는 한 구성요소들 간의 순서 또는 중요도 등을 한정하지 않는다. 따라서, 본 개시의 범위 내에서 일 실시 예에서의 제1 구성요소는 다른 실시 예에서 제2 구성요소라고 칭할 수도 있고, 마찬가지로 일 실시예에서의 제2 구성요소를 다른 실시예에서 제1 구성요소라고 칭할 수도 있다.
본 발명의 어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 “직접 연결되어” 있다거나, “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다.
또한, 본 발명에서는 왜곡의 정도를 거리로 표현할 수 있다.
또한, 본 발명을 설명함에 있어서 도 1은 도 1a, 1b를 포함하는 의미로, 도 3은 도 3a, 3b를 포함하는 의미로, 도 4는 도 4a, 4b를 포함하는 의미로, 도 5는 도 5a, 5b를 포함하는 의미로 기재될 수 있다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예들에 대해서 설명할 것이다.
본 발명은 인트라 예측 방법을 이용한 포인트 클라우드 데이터 부호화 및 복호화 기술에 대한 발명이다. 따라서, 본 발명에서 제안하는 전처리 기술을 통해, 포인트 클라우드 데이터를 부호화하고 복호화함에 있어서는 어떠한 MPEG PCC 기술이든 적용될 수 있으므로 MPEG PCC의 Category 3 dataset(dynamically acquired point clouds)를 위한 G-PCC(Geometry-based Point Cloud Compression)의 전처리 기술로서도 응용될 수 있음은 자명하다.
따라서 하기에서는 설명의 용이함 및 명료함을 위하여 포인트 클라우드 데이터의 부호화 및 복호화에 MPEG PCC의 G-PCC 기술이 적용된다는 가정 하에 설명할 것이나, 포인트 클라우드 압축 기술이 G-PCC 기술일 때에만 본 발명이 적용될 수 있는 것은 아니므로, 이에 한정되는 것은 아니다.
도 1은 본 발명의 일 실시예에 따른 인트라 예측을 이용한 포인트 클라우드 데이터 부호화 기술을 설명하기 위한 도면이다.
보다 상세하게는, 도 1a는 포인트 클라우드 데이터를 옥트리 구조를 갖도록 변환한 뒤 인코더를 이용하여 부호화하는, 인트라 예측 방법을 이용한 포인트 클라우드 부호화 기술을 설명하기 위한 블록도이고, 도 1b는 상기 부호화 기술을 설명하기 위한 흐름도이다.
보다 상세하게는, 먼저, 포인트 클라우드 데이터(101)를 입력 받을 수 있다. 입력된 포인트 클라우드 데이터(101)에는 다수의 포인트들이 포함될 수 있고, 상기 포인트들은 각각, x, y, z 좌표 값 등을 포함할 수 있는 기하학 데이터와 R, G, B로 표현될 수 있는 색상 데이터, 반사율(reflectance) 데이터 등을 포함하는 속성 데이터를 지닐 수 있다.
일 실시예로서, 입력 포인트 클라우드 데이터(101)는 포인트 클라우드의 전처리(102)를 거칠 수 있다. 이는 도 1b의 입력된 포인트 클라우드 데이터를 전처리하는 단계(S111)에 해당할 수 있다. 상기 전처리(102)는 본 발명의 일 실시예에 따른, 인트라 예측을 이용한 전처리 기술을 포함할 수 있다. 이에 대하여는 도 4 내지 8에서 더욱 상세하게 설명할 것이다.
일 실시예로서, 상기 전처리(102)는 입력 포인트 클라우드 데이터(101)를 옥트리(octree) 구조로 변환한 뒤 적용되는 것일 수 있는데, 다른 실시예로는, 상기 전처리 (102)에 입력 포인트 클라우드 데이터(101)를 옥트리 구조로 변환하는 과정이 포함될 수 있다.
옥트리(octree)란, 8개의 자식 노드(셀, cell)를 갖는 트리 데이터 구조로, 점진적 알고리즘에서 많이 사용되는 자료구조이다. 정확도를 위해 주어진 레벨까지 하나 이상의 포인트를 포함하고 있는 단말 셀은 계속 분할 될 수 있다. 이에 대해서는 도 8에서 더욱 상세하게 설명할 것이다.
다만, 본 발명에는 옥트리 구조만을 적용할 수 있는 것은 아니며, 3차원 R-트리 구조, 바이너리(이진) 트리 구조, 쿼드(4진) 트리 구조와 같은 다른 트리 구조를 적용하는 것도 가능하다고 할 것이다. 다만, 하기에서는 설명의 명료함을 위하여 포인트 클라우드 데이터를 옥트리 구조로 변환하였음을 기반으로 본 발명의 실시예들을 설명한다.
일 실시예로서, 상기 전처리(102) 과정을 거치고 나면, 고유 블록(103)이 결정될 수 있다. 고유 블록이란, 대체 불가능한 블록으로서 다른 블록을 대체할 수 있는 블록일 수 있는데, 현재 블록과 참조 블록을 구분하고, 현재 블록과 참조 블록 간의 왜곡을 도출하는 과정을 통해 고유 블록과 대체 가능한 블록이 결정될 수 있다. 상기 고유 블록과 대체 가능한 블록을 구분하는 기준에 대해서는 도 4 내지 도 5에서 더욱 상세하게 설명할 것이다.
또한, 상기 전처리(102) 과정을 거치고 나면, 고유 블록으로 대체 가능한 블록들에 대한 인덱스 정보(104)가 획득될 수 있다. 상기 대체 가능한 블록들에 대한 인덱스 정보(104)는 고유 블록으로의 대체 가능 여부와 대체 가능 시 이를 대체할 고유 블록이 어느 좌표에 있는지에 대한 정보를 포함할 수 있으며, 이후 비트스트림 생성(106) 및 부호화에 따른 복호화를 거칠 때 이용될 수 있다. 대체 가능한 블록들에 대한 인덱스 정보(104)에 대하여는 도 2에서, 복호화 기술에 대하여는 도 3에서 더욱 상세하게 설명할 것이다.
상기 고유 블록(103)은 일 실시예로서, 인코더를 통해 부호화(105)될 수 있다. 이는 상기 전처리를 통해 결정된 고유 블록을 부호화 하는 단계(S112)에 해당할 수 있다. 예를 들어, 상기 인코더는 MPEG G-PCC 기반 인코더일 수 있다. MPEG G-PCC 기반 인코더를 이용한 상기 부호화(105) 과정 크게 기하 정보를 재구성하는 과정과 색상 등 부가적인 속성 정보를 재구성하는 과정을 포함할 수 있으며, 재구성된 기하 정보를 기반으로 색상 등 부가적인 속성 정보를 재구성하는 것도 가능하다. 따라서, 고유 블록(103) 내에 있는 포인트들도 기하 정보를 기반으로 재구성되는 과정을 거칠 수 있다.
이후, 일 실시예로서, 상기 부호화(105) 과정을 거친 고유 블록에 대한 정보와 상기 전처리(102) 과정의 다른 출력값인 대체 가능한 블록에 대한 인덱스 정보(104)를 기반으로 비트스트림을 생성(106)하는 과정을 거칠 수 있다. 상기 생성(106) 과정은 도 1b의 비트스트림을 생성하는 단계(S113)과 동일할 수 있다.
상기 비트스트림을 생성(106)하는 과정은 고유 블록에 대한 정보와, 고유 블록 부호화 시 빈 블록으로 부호화된 블록들 중 고유 블록으로 대체 가능한 블록이 있는지에 대한 정보와, 대체 가능 시 이를 대체할 고유 블록의 좌표를 나타내는 인덱스 정보를 포함하는 비트스트림(bitstream)을 생성, 출력하는 과정을 포함할 수 있다. 상기 비트스트림에 대하여는 하기 도 2에서 더욱 상세하게 설명할 것이다.
상기에서는 G-PCC 기술을 기반으로 포인트 클라우드 압축을 위한 부호화 기술을 설명하여, 입력 포인트 클라우드 데이터가 옥트리(octree) 구조로 변환된 바 있었으나, 다른 포인트 클라우드 압축 기술에 의하면 상이한 트리 구조로 변환되는 것도 가능할 것이다. 상기의 기재가 트리 구조나 포인트 클라우드 압축 기술에 한정을 두는 것은 아니다.
도 2는 본 발명의 일 실시예에 따른 비트스트림의 구조를 나타낸 도면이다.
보다 상세하게는, 부호화 기술의 출력값으로서, 부호화된 고유 블록에 대한 정보와 포인트 클라우드 전처리 과정을 거쳐 출력된 대체 가능한 블록에 대한 인덱스 정보를 모두 포함하는 비트스트림일 수 있다.
일 실시예로서, 비트스트림에는 부호화된 고유 블록에 대한 정보(201), 블록이 대체 가능한 블록인지 여부를 나타내는 플래그(202), 대체 가능 시 이를 대체할 고유 블록이 어느 좌표에 있는지를 지시하기 위한 인덱스(203) 정보가 배열 형태로 포함되어 있을 수 있다.
예를 들어, 일 실시예로서, 부호화된 고유 블록에 대한 정보(201)는 부호화 기술을 통해 재구성된 고유 블록의 기하 정보와 동일한 과정을 통해 재구성된 색상, 반사율 데이터 등 부가적인 포인트 속성 정보를 포함할 수 있으며, 이에 한정되는 것은 아니다. 참고로, 이 때 부호화되는 포인트 클라우드는 고유 블록만을 포함하므로 원래부터 빈 블록과 대체 가능한 블록이라 결정된 블록은 비어 있게 된다.
예를 들어, 상기 플래그(202) 값의 비트 수는 고유 블록만을 포함하는 포인트 클라우드 데이터에서 빈 블록 개수와 같을 수 있으며, 블록이 대체 가능한 블록이면 플래그(202) 값은 1로 표시될 수 있으며 원래부터 비어 있는 블록이면, 대체 불가능한 블록으로서, 0으로 표시될 수 있다. 상기 플래그 값이 1인 블록은 부호화/복호화시 해당 인덱스 값(203)을 가진 고유 블록으로 대체될 수 있다.
예를 들어, 상기 대체 가능한 블록이 어느 좌표에 있는지를 지시하기 위한 인덱스 값(203)은 포인트 클라우드 부호화 기술에 포함된 전처리 과정을 통해 적절하게 기 설정된 것일 수 있다.
도 3a 및 도 3b는, 본 발명의 일 실시예에 따른 포인트 클라우드 압축 이후 복호화 기술에 대한 도면이다. 일 실시예로서, 도 1a, 1b에서 설명한 부호화 기술을 기반으로 복호화하는 과정을 설명하기 위한 도면이다. 보다 상세하게는, 도 3a는 인트라 예측을 이용한 포인트 클라우드 복호화 방법을 블록도로 나타낸 것이고, 도 3b는 상기 복호화 방법을 흐름도로 나타낸 것이다.
보다 상세하게는, 일 실시예로서, 본 발명에서 제안한 포인트 클라우드 전처리 과정을 거쳐, MPEG G-PCC 인코더를 이용하여 부호화 기술을 수행한 이후 출력된 비트스트림을 MPEG G-PCC 디코더를 이용하여 복호화하는 과정을 통해 포인트 클라우드 데이터를 복원하는 과정을 설명하기 위한 도면이다. 다만, 전술한 바와 같이 설명의 용이함 및 명료함을 위하여 MPEG G-PCC 기반의 복호화 기술을 설명하는 것이고, 본 발명이 상기 기술에 한정되는 것은 아니다.
먼저, 상기 복호화 기술을 위하여는 상기 부호화 기술에 따라 출력된 비트스트림(301)을 입력으로서 수신할 수 있다. 일 실시예로서, 비트스트림(301)은 상기 도 1 및 도 2에서 설명한 비트스트림을 포함할 수 있으므로, 하기에서는 설명의 명료함을 위하여 상기 도 1 및 2에서 설명한 비트스트림을 기반으로 설명한다.
일 실시예로서, 해당 비트스트림(301)을 수신한 뒤 일정한 정보 별로 분해(parsing)(302)할 수 있다. 이는 도 3b의 입력된 비트스트림을 분해(parsing)하는 단계(S311)에 해당할 수 있다.
상기 비트스트림에는 고유 블록에 대한 정보, 현재 블록이 대체 가능한 블록인지를 나타내는 플래그 정보 및 대체 가능한 블록의 인덱스 정보(305) 등이 포함되어 있으므로, 이를 각 정보별로 분해하는 과정을 포함할 수 있다.
이후, 일 실시예로서, G-PCC 디코더(decoder)를 이용하여 상기 비트스트림을 복호화(303)하는데, 상기 비트스트림에서 분해된 고유 블록에 대한 정보를 이용하면 G-PCC 디코더(303)를 통해 압축되었던 고유 블록(304)을 출력할 수 있다. 이는 고유 블록에 대한 정보를 복호화하는 단계(S312)에 해당할 수 있다.
이에 따라, 획득된 고유 블록(304)과 대체 가능한 블록들에 대한 인덱스 정보(305)를 이용하면, 포인트 클라우드 데이터(307)가 복원될 수 있다. 상기 복원을 위한 후처리(306)하는 과정은, 플래그 값이 1인 블록에 대해 좌표 값을 나타내는 대체 가능한 블록들의 인덱스 정보(305)를 이용하여, 해당 좌표 값이 지시하는 고유 블록으로 대체하여 빈 블록을 채워 넣는 과정을 포함할 수 있다. 이는, 포인트 클라우드 데이터를 복원하기 위해 후처리하는 단계(S313)에 해당할 수 있다.
도 4a는 본 발명의 일 실시예에 따른 인트라 예측을 이용한 포인트 클라우드 부호화 기술에 포함되는 전처리 기술의 흐름도이며, 도 5a는 본 발명의 일 실시예에 따른 도 4a의 전처리 기술의 블록도이다. 일 실시예로서, 상기 부호화 기술은 도 1에서 도시한 부호화 기술과 동일할 수 있다.
일 실시예로서, 먼저 인트라 예측을 이용한 포인트 클라우드 데이터의 전처리 기술은 포인트 클라우드 데이터에 바운딩 박스(bounding box)를 생성(S401)하는 과정을 포함할 수 있다. 또한, 바운딩 박스(bounding box)는 상기 바운딩 박스 내에 존재하는 포인트 클라우드 데이터를 포함하는 더 작은 단위인 블록(block) 단위로 나누어 질 수 있다(S402).
먼저, 상기 바운딩 박스를 생성(S401)함에 있어서는, 예를 들어, 포인트 클라우드 데이터의 Geometry Precision 비트 수에 따른 3차원 공간 전체를 포함하는 단 하나로서 생성되는 것도 가능하다. 다른 예로는, 포인트 클라우드 데이터로서 나타내고자 하는 객체를 중심으로 생성되는 것도 가능하다.
일 실시예로서, 생성된 바운딩 박스 내에 존재하는 포인트 클라우드 데이터를 다시 블록 단위로 나눌 수 있다(S402). 이 때 블록 단위로 나누는 기준에 대하여는 제한이 없으나, 일반적으로 가로, 세로, 높이의 순서로 8x8x8 크기의 블록 혹은 16x16x16 크기의 블록으로 나눌 수 있다.
또한 상기 복수의 블록으로 나누는 단계(S402)는, 블록 내의 포인트들을 트리 구조 기반으로 변환하는 단계를 포함할 수 있다. 이 경우 3차원 R-트리 구조 등 다양한 트리 구조를 적용할 수 있다.
일 실시예로서, 전술한 바와 같이, 설명의 명료함을 위해 포인트들이 옥트리 구조를 갖도록 변환되었음을 기반으로 본 발명의 실시예를 설명할 것이므로, 하기에서는 그에 따라 포인트들이 옥트리 구조 기반으로 변환하였고 블록의 크기가 모두 8x8x8로 분할 되었다고 가정한다.
따라서, 일 실시예로서, 도 5의 입력값(501)은 옥트리(octree) 구조 기반으로 변환한 8x8x8 크기의 블록 안에 있는 포인트들이 될 수 있다. 옥트리 구조에 대해서는 도 8에서 더욱 상세하게 설명할 것이다.
해당 점들이 들어있는 블록은 현재 블록(503)과 현재 블록에 대한 참조 블록(502)으로 나눌 수 있다. 참조 블록이 현재 블록을 대체할 수 있는지를 판단하기 위하여, 참조 블록과 현재 블록이 서로 얼마나 거리가 가까운지를 파악하는 과정을 거쳐야 한다.
그 전에, 상기 복수의 블록은 현재 블록(current block)(503)과 현재 블록에 대한 참조 블록(reference block)(502)으로 구분(S403)되기 위해, 먼저 복수의 블록을 포함하는 적절한 프레임(frame)을 설정하는 과정을 포함할 수 있다. 일 실시예로서, 일 프레임은 일 바운딩 박스와 동일하게 설정될 수도 있다.
상기에서 프레임이 설정되고 나면, 프레임에 포함된 블록은 현재 블록(503)과 참조 블록(502)으로 구분(S403)될 수 있으며, 모든 프레임에 상기 구분하는 과정이 반복 수행될 수 있다.
일 실시예로서, 참조 블록(502)은 현재 프레임 내에 존재하는 블록 중 현재 블록(503)을 제외한 모든 블록을 의미할 수 있다. 즉, 참조 블록은 복수 개일 수 있다. 현재 블록과 참조 블록이 얼마나 가까운 지를 판단하기 위해, 모든 현재 블록과 참조 블록 안에 있는 포인트들 간의 기하 왜곡 정도, 색상 왜곡 정도, 반사율 왜곡 정도 등을 도출할 수 있다.
일 실시예로서, 상기 현재 블록과 상기 참조 블록의 왜곡을 도출(504, S404)하는 과정은 각각의 블록 내에 포함된 포인트들 간의 왜곡 정도를 도출하는 과정을 포함할 수 있다. 이 경우, 일 실시예로서 기하 데이터와 색상 데이터, 반사율 데이터 등의 값이 왜곡을 구하는데 사용될 수 있으며 상기 여러 예시 데이터 중 하나의 데이터 만을 이용하여 왜곡을 구할 수도 있고, 기하 데이터 및 속성 데이터를 모두 고려하여 왜곡을 구하는 것도 가능한 바 왜곡을 도출하는 과정에 고려할 수 있는 데이터의 종류나 개수에는 제한이 없다고 할 것이다.
일 실시예로서, 포인트들 간의 왜곡의 정도는 평균 제곱 오차(Mean Squared Error) 값, 평균 제곱근 오차 (Root Mean Squared Error)값 및 하우스도르프(Hausdorff) 거리 등을 포함하는 방식을 적용하여 현재 블록과 참조 블록에 포함된 포인트 각각의 일 대 일 왜곡 도출 과정을 통해 구해질 수 있다. 이 때, 어느 방식에 의하는 지에 대하여는 제한이 없으나, 어느 방식을 적용하더라도, 도출된 왜곡의 정도가 가장 작은 참조 블록이 현재 블록을 대체 가능한 것으로 판단될 수 있다. 즉, 도출된 오차 값이 0이 되면 해당 블록에 포함된 포인트들은 참조 블록의 포인트로 대체될 수 있으므로 해당 블록은 압축될 필요 없이 제거될 수 있다.
일 실시예로서, 모든 참조 블록과 현재 블록 간의 기하 데이터를 비교하여 거리를 측정하기 위해 현재 MPEG에서 사용하는 소프트웨어인 PC_ERROR를 통해 일 대 일 왜곡 도출 과정을 수행한다고 가정한다. 보다 상세히 설명하면, 예를 들어, 현재 블록에 5개의 포인트가 존재하고, 참조 블록에 10개의 포인트가 존재한다고 가정하였을 때, 현재 블록의 5개의 포인트 각각에 대해 참조 블록의 10개의 포인트 간에 거리를 측정하여 각 포인트 별로 가장 가까운 거리에 있는 점을 대응점으로 선택할 수 있다.
이 때, 참조 블록의 포인트는 현재 블록의 서로 다른 포인트에 의해 여러 번 참조 될 수도 있다. 즉, 현재 블록의 첫번째 포인트가 참조 블록의 세번째 포인트와 가장 가깝다고 선택될 수 있고, 현재 블록의 두번째 포인트도 참조 블록의 세번째 포인트와 가장 가깝다고 선택될 수 있다. 이렇게 현재 블록 내의 5개 포인트에 대해 참조 블록 내의 가장 근접한 포인트를 선택하고 이들 값의 제곱 오차를 구하여 더한 후 평균 값을 구하는 방식을 적용할 수 있다.
즉, 왜곡 도출(504) 과정에서는 현재 블록과 참조 블록 안에 있는 포인트들 간의 오차 값이 0이거나 왜곡의 정도가 제일 작은 값을 찾을 수 있다. 평균 오차 값이 0인 경우는 두 블록 안의 포인트들의 값이 동일하다는 의미이므로 해당 블록의 포인트들은 참조 블록을 통해 복원 가능하므로 제거될 수 있다. 현재 블록에 대해 모든 참조 블록에 대해 왜곡을 구한 후 가장 작은 왜곡의 정도를 제공하는 참조 블록을 구할 수 있다.
일 실시예로서, 왜곡 비교는 현재 블록과 모든 참조 블록 간의 평균 제곱 오차 값, 평균 제곱근 오차 값 및 하우스도르프 거리 등을 이용할 수 있다.
예를 들어, 포인트들 간의 거리를 평균 제곱 오차(Mean Squared Error, MSE)에 의해 구하고자 하는 경우 하기와 같은 식에 의할 수 있다.
[식 1]
Figure pat00001
위 식에서 현재 블록에 포함된 포인트는
Figure pat00002
이며, 참조 블록에 포함된 포인트는
Figure pat00003
이다. n은 현재 블록에 포함된 포인트의 수이고, m은 참조 블록에 포함된 포인트의 수일 수 있다. i 및 j는 블록 내에 존재하는 포인트에 붙인 임의의 인덱스, 즉 포인트의 순서일 수 있다.
일 실시예로서, 포인트 간의 왜곡 정도를 도출하는 데 있어서 기하 데이터만을 이용한다고 가정한다. 이 경우 현재 블록 내에 포함된 포인트 데이터는
Figure pat00004
로 나타낼 수 있다.
Figure pat00005
는 참조 블록에 포함된, 각 현재 블록 내의 포인트와 유사하다고 판단된 대응 포인트를 나타낼 수 있다. 예를 들어,
Figure pat00006
Figure pat00007
과,
Figure pat00008
Figure pat00009
과,
Figure pat00010
Figure pat00011
와,
Figure pat00012
Figure pat00013
과,
Figure pat00014
Figure pat00015
과 가장 유사하다고 판단되었을 수 있다.
즉, 왜곡 도출(504) 과정에서는 현재 블록 내의 모든 포인트들에 대해 참조 블록 내의 포인트들 중 오차 값이 0이거나 거리가 제일 가까운 값을 찾아 이를 대응점으로 선택한 후 이들 간의 제곱 오차를 구한 후 평균 값을 계산한다. 평균 오차 값이 0인 경우는 두 블록 안의 포인트들의 값이 동일하다는 의미이므로 해당 현재 블록의 포인트들은 참조 블록의 포인트를 복사함으로써 복원 가능하므로 제거가 가능하다. 참고로, 도출된 오차 값이 0이더라도 현재 블록에 포함된 포인트 개수와 참조 블록에 포함된 포인트 개수가 서로 다를 경우 추후 복원 과정에서 포인트의 증가 또는 감소가 발생할 수 있음은 자명하다 할 것이다. 현재 블록에 대해 모든 참조 블록에 대해 거리를 구한 후 가장 작은 거리를 제공하는 참조 블록을 구할 수 있다. 이 때, 도출된 최소 오차 값을 갖는 참조 블록의 개수가 여러 개일 경우 현재 블록에 포함된 포인트 개수와 가장 유사한 포인트 개수를 갖는 참조 블록을 최종적으로 선택할 수 있을 것이다. 거리 비교는 최종적으로 모든 현재 블록과 참조 블록 간의 평균 제곱 오차 값을 구함에 따라 이루어질 수 있다.
상기의 실시예에서는 현재 블록과 참조 블록의 포인트에 대해 기하 데이터에 값을 그대로 사용하는 것으로 설명하였지만, 현재 블록 및 참조 블록 내 포인트 간의 동적 범위가 일치하도록 변환을 먼저 수행할 수 있다.
상기의 실시예에서는 기하 데이터에 대해 유사도를 측정하는 것으로 설명하였지만, 전술한 바와 같이 속성 정보 중 색상 데이터와 반사율 데이터에도 적용 가능하다.
예를 들어, 하우스도르프 거리(Hausdorff distance)는 한 포인트에서 다른 포인트까지의 최대 편차를 나타내는 데 사용되므로, 하우스도르프 거리가 0에 가까울수록 두 포인트가 서로 유사함을 나타낼 수 있다. 하우스도르프 거리가 0에 가까운 경우 현재 블록이 참조 블록으로 대체되어 제거될 수 있다.
상기 방식으로 거리가 0인 대체 가능한 중복 블록들을 제거하면 압축하고자 하는 포인트 클라우드의 총 포인트 개수가 줄어 들게 되어 압축을 수행하는데 소요되는 시간도 감소되는 효과를 기대할 수 있다.
상기 현재 블록과 참조 블록 간의 거리를 구하고 나면, 고유 블록을 결정(S405, 505)할 수 있다. 일 실시예로서, 고유 블록을 결정(505)하는 과정은, 도출된 현재 블록과 가장 가까운 참조 블록간의 거리 값이 기 설정된 한계값보다 큰 경우에는, 현재 블록을 대체 불가능한 고유 블록으로 지정하고 상기 한계값과 같거나 그보다 작은 경우에는 현재 블록을 대체 가능한 블록으로 지정하는 과정을 포함할 수 있다. 본 과정(S405, 505)이 수행되고 나면 출력 값으로는 고유 블록과 고유 블록으로 대체 가능한 블록들에 대한 인덱스 정보가 출력될 수 있다.
상기 과정이 끝나면 부호화를 수행할 수 있는데, 상기 부호화는 일 실시예로서 도 1의 부호화(도 1, 105) 및 비트스트림 생성(도 1, 106)과 동일 한 것일 수 있으나, 이에 한정되는 것은 아니다.
상기 부호화가 완료되고 나면, 데이터 복호화 장치를 이용하여 복호화를 수행할 수 있는데, 도 4b는 복호화 기술에 포함되는 후처리 기술의 흐름도를 나타낸 도면이며, 도 5b는 도 4b의 후처리 기술을 블록도로 나타낸 도면이다.
일 실시예로서, 상기 복호화 기술은 도 3에서 도시한 복호화 기술에 한정되는 것은 아니지만, 설명의 명료함을 위해 여기서는 도 3의 복호화 기술과 동일하다고 가정한다. 따라서, 상기 후처리 이전에 비트스트림이 분해(parsing) 되어 고유 블록에 대한 정보와 대체 가능한 블록의 인덱스 정보를 획득하였으며, 상기 고유 블록에 대한 정보를 복호화 하여 고유 블록을 도출하였다고 가정한다.
먼저, 일 실시예로서, 상기 후처리 기술은 분해(parsing)된 비트스트림(511)으로부터 도출된 고유 블록(512)을 구분하고, 대체 가능한 블록의 인덱스 정보를 이용하여 대체 가능한 블록(513)을 구분하는 단계(S411)을 포함할 수 있다.
이후, 일 실시예로서, 상기 고유 블록 내의 포인트를 이용하여 대체 가능한 블록 내의 포인트를 복원하는 단계(S412)가 수행될 수 있다. 이는 도 5b의 포인트 복원(514)에 해당할 수 있다. 대체 가능하지 않은 블록의 경우 계속 빈 상태로 두고, 대체 가능한 블록 내의 포인트는 해당 고유 블록의 인덱스를 통해 고유 블록의 포인트를 복사함으로써 복원될 수 있으며, 이는 옥트리 기반 구조로 변환되어 있던 블록 내의 포인트를 복원하는 것일 수 있다. 이 때, 대체 가능한 블록의 동적 범위를 고려하여 고유 블록 내 포인트에 대한 동적 범위를 이에 맞게 조정하는 과정을 먼저 수행할 수 있다. 상기 대체 가능한 블록 내의 포인트를 상기 해당 고유 블록의 포인트를 이용하여 모두 복원하고 나면, 전체 포인트 클라우드 데이터가 복원(515)될 수 있다.
도 6는 본 발명의 일 실시예에 따른 인트라 예측을 이용한 포인트 클라우드 데이터 부/복호화 장치에 대한 도면이다. 보다 상세하게는, 상기 장치(602)는 수신부(604) 및 프로세서(605)를 포함할 수 있다.
먼저, 일 실시예로서, 상기 장치(602)가 부호화 장치로서 구성되는 경우, 수신부(604)는 입력 포인트 클라우드 데이터(601)를 상기 장치(602) 외부로부터 수신하여 프로세서(605)에 전달하는 역할을 수행할 수 있다. 또한, 일 실시예로서, 도 1에서 설명한 부호화 기술을 수행할 수 있다.
일 실시예로서, 프로세서(605)는, 상기 입력 포인트 클라우드 데이터를 수신부(604)로부터 전달받아, 이를 전처리 하고, 부호화 한뒤, 병합하여 비트스트림을 출력할 수 있다. 상기 전처리는 도 4, 5에서 설명한 바와 동일할 수 있으며, 상기 비트스트림은 도 2에서 설명한 것과 동일할 수 있다.
상기 전처리에 있어서는, 전술한 바와 같이 바운딩 박스를 생성할 수 있다. 바운딩 박스를 생성하는 기준은 상기 도 4, 5에서 설명한 내용과 하기 도 7을 참조하여 설명할 내용과 동일할 수 있다.
또한, 전술한 바와 같이 상기 바운딩 박스를 복수의 블록으로 나눌 수 있으며, 상기 복수의 블록을 현재 블록과 참조 블록으로 구분할 수 있다. 이 경우, 참조 블록은 현재 블록을 제외한 모든 주변의 블록일 수 있으며 상기 현재 블록과 참조 블록의 왜곡을, 기하 데이터, 색상 데이터, 반사율 데이터 등을 기반으로, 평균 제곱 오차, 평균 제곱근 오차 및 하우스도르프 거리 등을 이용하여 도출할 수 있다.
또한, 상기 프로세서는 상기 복수의 블록들 사이에서 기 설정된 한계 값에 따라 고유 블록과 대체 가능한 블록을 결정할 수 있으며, 인코더를 이용하여 부호화할 수 있다. 이 경우, 인코더는 프로세서에 포함될 수 있으며 MPEG G-PCC 기반의 인코더를 포함할 수 있다.
한편, 다른 실시예로서, 상기 장치(602)가 복호화 장치로서 구성되는 경우, 상기 복호화 장치는 도 3에서 설명한 복호화 기술을 수행할 수 있다.
일 실시예로서, 수신부는 외부로부터 비트스트림(601)을 수신할 수 있으며, 프로세서에게 전달할 수 있다. 상기 비트스트림은 도 2에서 설명한 바와 동일할 수 있다.
상기 프로세서는 상기 비트스트림을 분해(parsing) 하여, 대체 가능한 블록에 대한 인덱스 정보를 도출하고, 상기 비트스트림의 분해로부터 획득한 고유 블록에 대한 정보를 복호화하여 고유 블록을 도출할 수 있다. 이에 포인트 클라우드 복원을 위한 후처리 기술을 적용하여, 대체 가능한 블록에 대해 해당 고유 블록에 포함된 포인트를 복사하여 대체 가능한 블록을 복원하는 과정을 반복적으로 수행함으로써 포인트 클라우드 데이터를 복원할 수 있다. 이는 도 3, 4 및 도 5로서 도시된 바와 동일할 수 있다.
도 7은 본 발명에 적용될 수 있는 바운딩 박스(Bounding box) 생성 방법에 대한 도면이다. 보다 상세하게는, 본 발명의 일 실시예에 따른 포인트 클라우드 부호화 기술에 포함되는 전처리 기술에서 이용되는 바운딩 박스의 생성 방법에 대한 도면이다. 상기 부호화 기술은 도 1에서 설명한 바와 동일할 수 있으며, 상기 전처리 기술은 도 4 및 도 5에서 설명한 바와 동일할 수 있다.
일 실시예로서, 포인트 클라우드 데이터의 Geometry Precision 비트 수에 따른 3차원 공간 전체를 하나의 바운딩 박스에 포함되게 하고, 상기 바운딩 박스를 복수의 블록으로 나눈 일 실시예를 도시한 것이다. 복수의 블록들은 8x8x8(가로x세로x높이) 혹은 16x16x16 형태를 가질 수 있다.
일 실시예로서, 도 1에서 설명한 바와 같이 입력된 포인트 클라우드 데이터에 대해 바운딩 박스(701)를 생성한 뒤, 이를 복수의 8x8x8 크기의 블록(702)으로 나누었다고 가정한다. 예를 들어, 하나의 바운딩 박스(701)에 있는 포인트 클라우드 데이터를 오름차순으로 정렬 후, 바운딩 박스(bounding box)의 크기를 8x8x8 크기의 여러 블록 단위로 나눈다. 8x8x8 크기의 블록은 포인트가 최소한 1개 이상 들어있는 비어 있지 않은 블록(non-empty block)과 포인트가 하나도 들어있지 않은 빈 블록(empty block)으로 나눌 수 있다. 이 때, 반복하여 여러 블록 단위로 나눌 때, 빈 블록은 더 이상 블록으로 나누지 않을 수 있다.
본 발명에서는 최소한 1개 이상의 포인트가 들어 있는 비어 있지 않은 블록을 사용할 수 있다. 바운딩 박스를 8x8x8 크기로 나눔으로써 블록 안의 포인트들은 옥트리 구조를 가지게 될 수 있다. 따라서, 옥트리 구조로 변환된 포인트들은 전술한 바와 같이 도 5a에서 입력 값으로 받을 수 있게 된다.
도 8은 본 발명에 적용될 수 있는 옥트리(Octree) 구조에 대한 도면이다. 옥트리는 계층적 트리 구조의 일종으로서 상위 계층인 부모 노드가 8개의 자식 노드(셀)를 갖는 트리 데이터 구조로, 점진적 알고리즘에서 많이 사용되는 자료구조이다. 트리의 최상부 계층에 속하는 노드는 헤드 노드라 칭하고 가장 하부 계층에 속하는 노드는 리프 노드라 칭할 수 있다.
일 실시예로서, 3차원 포인트 클라우드를 색인화하기 위한 옥트리 생성 과정은 하기와 같을 수 있다.
먼저, 포인트 클라우드 전체의 최소 경계 입방체(Minimum Bounding Hexahedral, MBH)에 해당하는 공간을 헤드 노드에 부여하고 포인트를 헤드 노드에 입력할 수 있다.
부모 노드는 처음 수행시 헤드노드가 될 수 있는데, 부모 노드에 포인트가 입력되면 노드의 공간을 x, y, z 방향으로 각각 양분하여 생성된 8개의 하위 공간을 자식 노드에 부여할 수 있다.
입력된 포인트의 3차원 좌표 값을 이용하여 포인트가 8개의 자식 노드 중 어느 것에 포함되는지 확인한 후, 해당 자식 노드에 포함되는 것으로 입력할 수 있다.
상기 8개의 하위 공간으로 양분하는 과정 및 자식 노드에 포인트를 포함시키는 과정은 재귀적으로 반복될 수 있으며, 자식 노드의 단계가 기 설정된 목표 단계에 이를 경우, 리프 노드에는 입력된 포인트의 3차원 좌표 또는 포인트가 실제로 저장된 주소, 즉 포인터를 저장할 수 있다.
전술한 바와 같이 본 발명에는 다양한 트리 구조가 적용될 수 있으나, 바람직하게는 옥트리 구조가 적용될 수 있다.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다. 예를 들어, 종단 혹은 에지에서 사용될 수 있는 비 일시적 컴퓨터 판독가능한 매체에 저장된 프로그램의 형식이나, 에지 혹은 클라우드에서 사용될 수 있는 비 일시적 컴퓨터 판독 가능한 매체에 저장된 프로그램의 형식으로도 구현될 수 있음은 자명하다. 또한, 다양한 하드웨어 및 소프트웨어의 결합으로도 구현될 수 있다.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행 가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.
본 발명의 일 실시예에 따른 인트라 예측을 이용한 포인트 클라우드 데이터 부호화 프로그램은, 컴퓨터에서 상기 포인트 클라우드 데이터에 전처리를 수행하여 고유 블록과 대체 가능한 블록을 결정하는 단계, 상기 전처리를 통해 결정된 고유 블록을 인코더로 부호화하는 단계, 상기 부호화된 고유 블록에 대한 정보와 대체 가능한 블록에 대한 정보를 기반으로 비트스트림을 생성하는 단계를 실행시키는, 비-일시적 컴퓨터 판독가능한 매체에 저장된 컴퓨터 프로그램일 수 있다.
본 발명의 다른 실시예에 따른 인트라 예측을 이용한 포인트 클라우드 데이터 복호화 프로그램은, 컴퓨터에서 비트스트림(bitstream)을 입력으로써 수신하는 단계, 상기 수신된 비트스트림을 분해(parsing)하여 고유 블록에 대한 정보와 대체 가능한 블록에 대한 인덱스 정보를 구분하는 단계, 상기 고유 블록에 대한 정보를 디코더로 복호화하여 고유 블록을 도출하는 단계, 상기 도출된 고유 블록과 상기 대체 가능한 블록에 대한 인덱스 정보를 기반으로 포인트 클라우드 복원을 위한 후처리를 수행하는 단계를 실행시키는, 비-일시적 컴퓨터 판독가능한 매체에 저장된 컴퓨터 프로그램일 수 있다.
또한, 상기 포인트 클라우드 데이터 부호화 프로그램 및 복호화 프로그램은, 각 프로그램에 포함된 각 단계를 나누어 수행하는 하나 이상의 프로그램의 조합으로 구현될 수도 있다.
또한, 상기 단계가 서버나 단말에서 분리되어 수행되는 것도 가능하다. 즉, 전 단계가 서버에서 이루어진 후 단말에서는 결과 값으로서 부호화된 비트스트림만을 획득할 수도 있으며, 복호화 된 포인트 클라우드 데이터 만을 획득하는 것도 가능하다. 또한, 일부 단계는 서버에서, 일부 단계는 단말에서 수행되는 형태로 구현되는 것도 가능할 것이다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로, 본 발명의 범위는 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
601: 입력 포인트 클라우드 데이터
602: 포인트 클라우드 부/복호화 장치
604: 수신부
605: 프로세서

Claims (19)

  1. 데이터 복호화 장치를 이용한 포인트 클라우드 데이터 복호화 방법에 있어서,
    비트스트림(bitstream)을 입력으로써 수신하는 단계;
    상기 수신된 비트스트림을 분해(parsing)하여 고유 블록에 대한 정보와 대체 가능한 블록에 대한 인덱스 정보를 구분하는 단계;
    상기 고유 블록에 대한 정보를 디코더로 복호화하여 고유 블록을 도출하는 단계;
    상기 도출된 고유 블록과 상기 대체 가능한 블록에 대한 인덱스 정보를 기반으로 데이터 후처리를 수행하는 단계를 포함하는 데이터 복호화 방법.
  2. 제1 항에 있어서,
    상기 비트스트림은,
    고유 블록에 대한 정보, 블록이 대체 가능한 블록인지를 알려주는 플래그 정보, 대체 가능한 블록에 대한 인덱스 정보를 포함하는 데이터 복호화 방법.
  3. 제1 항에 있어서,
    상기 데이터 후처리를 수행하는 단계는,
    상기 복호화된 고유 블록과 상기 대체 가능한 블록에 대한 인덱스 정보를 이용하여 포인트 클라우드를 복원하는 단계를 포함하는 데이터 복호화 방법.
  4. 제1 항에 있어서,
    상기 고유 블록은,
    현재 블록과 참조 블록의 왜곡이 기 설정된 한계값보다 큰 경우에 해당하고,
    상기 대체 가능한 블록은
    현재 블록과 참조 블록의 왜곡이 기 설정된 한계값보다 작거나 같은 경우에 해당하는 것을 특징으로 하는 데이터 복호화 방법.
  5. 제1 항에 있어서,
    상기 디코더는 MPEG G-PCC 기반인 것을 특징으로 하는 데이터 복호화 방법.
  6. 데이터 부호화 장치를 이용한 포인트 클라우드 데이터 부호화 방법에 있어서,
    상기 포인트 클라우드 데이터에 전처리를 수행하여 고유 블록과 대체 가능한 블록을 결정하는 단계;
    상기 전처리를 통해 결정된 고유 블록을 인코더로 부호화하는 단계;
    상기 부호화된 고유 블록에 대한 정보와 대체 가능한 블록에 대한 정보를 기반으로 비트스트림을 생성하는 단계를 포함하는 데이터 부호화 방법.
  7. 제6 항에 있어서,
    상기 비트스트림은,
    상기 고유 블록에 대한 정보, 현재 블록이 대체 가능한 블록인지 여부를 나타내는 플래그 정보, 상기 대체 가능한 블록에 대한 인덱스 정보를 포함하는 데이터 부호화 방법.
  8. 제6 항에 있어서,
    상기 포인트 클라우드 데이터에 수행되는 전처리는,
    상기 포인트 클라우드 데이터에 바운딩 박스를 생성하는 단계;
    상기 바운딩 박스를 복수의 블록으로 나누는 단계;
    상기 복수의 블록을 현재 블록과 참조 블록으로 구분하는 단계;
    상기 현재 블록과 상기 참조 블록의 왜곡을 도출하는 단계;
    상기 왜곡에 따라 고유 블록을 결정하고 대체 가능한 블록에 대한 정보를 도출하는 단계를 포함하는 포인트 클라우드 데이터 부호화 방법.
  9. 제8 항에 있어서,
    상기 고유 블록을 결정하고 대체 가능한 블록에 대한 정보를 도출하는 단계는,
    상기 현재 블록과 상기 참조 블록 간에 도출된 왜곡이 기 설정된 한계값보다 큰 경우,
    현재 블록을 고유 블록으로 결정하고,
    상기 도출된 왜곡이 기 설정된 한계값보다 작거나 같은 경우에는,
    상기 현재 블록을 대체 가능한 블록으로 결정하는 데이터 부호화 방법.
  10. 제8 항에 있어서,
    상기 바운딩 박스는,
    상기 포인트 클라우드 데이터의 프레임 별로 각각 생성되는 것을 특징으로 하는 데이터 부호화 방법.
  11. 제8 항에 있어서,
    상기 블록은 8x8x8 크기로 나누어져 옥트리 구조를 갖는 것을 특징으로 하는 데이터 부호화 방법.
  12. 제8 항에 있어서,
    상기 왜곡은 상기 현재 블록 및 참조 블록에 포함된 포인트들의 기하 데이터, 색상 데이터, 반사율 데이터 중 적어도 하나를 기반으로 도출되는 것을 특징으로 하는 데이터 부호화 방법.
  13. 제8 항에 있어서,
    상기 왜곡은 평균 제곱 오차, 평균 제곱근 오차, 하우스도르프 거리 중 적어도 하나를 이용하여 도출되는 것을 특징으로 하는 데이터 부호화 방법.
  14. 제6 항에 있어서,
    상기 인코더는 MPEG G-PCC 기반인 것을 특징으로 하는 데이터 부호화 방법.
  15. 인트라 예측 방법을 이용한 포인트 클라우드 데이터 복호화 장치에 있어서,
    비트스트림을 입력 받는 수신부;
    상기 수신된 비트스트림을 고유 블록에 대한 정보와 대체 가능한 블록에 대한 인덱스 정보로 분해(parsing)하고, 상기 고유 블록에 대한 정보를 디코더로 복호화하여 고유 블록을 도출하고, 상기 도출된 고유 블록과 상기 대체 가능한 블록에 대한 인덱스 정보를 기반으로 데이터 후처리를 수행하는 프로세서를 포함하는 데이터 복호화 장치.
  16. 제15 항에 있어서,
    상기 비트스트림은,
    고유 블록에 대한 정보, 블록이 대체 가능한 블록인지 여부를 나타내는 플래그 정보, 대체 가능한 블록에 대한 인덱스 정보를 포함하는 데이터 복호화 장치.
  17. 제15 항에 있어서,
    상기 데이터 후처리는,
    상기 복호화된 고유 블록과 상기 대체 가능한 블록에 대한 인덱스 정보를 이용하여 포인트 클라우드를 복원하는 것을 포함하는 데이터 복호화 장치.
  18. 제15 항에 있어서,
    상기 고유 블록은
    현재 블록과 참조 블록의 왜곡이 기 설정된 한계값보다 큰 경우에 해당하고,
    상기 대체 가능한 블록은
    현재 블록과 참조 블록의 왜곡이 기 설정된 한계값보다 작거나 같은 경우에 해당하는 것을 특징으로 하는 데이터 복호화 장치.
  19. 제15 항에 있어서,
    상기 디코더는 MPEG G-PCC 기반인 것을 특징으로 하는 데이터 복호화 장치.
KR1020200068950A 2020-06-08 2020-06-08 인트라 예측을 이용한 포인트 클라우드 데이터 부호화/복호화 방법 및 장치 KR20210152186A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200068950A KR20210152186A (ko) 2020-06-08 2020-06-08 인트라 예측을 이용한 포인트 클라우드 데이터 부호화/복호화 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200068950A KR20210152186A (ko) 2020-06-08 2020-06-08 인트라 예측을 이용한 포인트 클라우드 데이터 부호화/복호화 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210152186A true KR20210152186A (ko) 2021-12-15

Family

ID=78865828

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200068950A KR20210152186A (ko) 2020-06-08 2020-06-08 인트라 예측을 이용한 포인트 클라우드 데이터 부호화/복호화 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20210152186A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023136627A1 (ko) * 2022-01-12 2023-07-20 엘지전자 주식회사 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023136627A1 (ko) * 2022-01-12 2023-07-20 엘지전자 주식회사 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치

Similar Documents

Publication Publication Date Title
JP6676193B2 (ja) シーンを表す点群を符号化する方法、符号化器システム、及びプログラムを記憶した非一時的コンピューター可読記録媒体
JP7268598B2 (ja) 情報処理装置および方法
KR20230056750A (ko) 메시 압축을 위한 패치 지퍼링
KR20220063254A (ko) 세계 시그널링 정보에 대한 비디오 기반 포인트 클라우드 압축 모델
US20220180567A1 (en) Method and apparatus for point cloud coding
KR20230060534A (ko) 2차원 정규화 평면 투사에 기초한 포인트 클라우드 인코딩 및 디코딩 방법과 장치
KR20210152186A (ko) 인트라 예측을 이용한 포인트 클라우드 데이터 부호화/복호화 방법 및 장치
CN116940965A (zh) 用于网格压缩的片时间对齐解码
KR20230119690A (ko) 대규모 포인트 클라우드-지향형 2 차원 정규화된 평면투영, 및 인코딩 및 디코딩 방법
Li et al. Hierarchical Prior-based Super Resolution for Point Cloud Geometry Compression
US11606556B2 (en) Fast patch generation for video based point cloud coding
Kim et al. Real-Time Video-based Point Cloud Encoding System on a Distributed Platform
WO2023197122A1 (en) Method for encoding and decoding for trisoup vertex positions
US20230156222A1 (en) Grid-based patch generation for video-based point cloud coding
WO2023179705A1 (zh) 编码、解码方法、装置及设备
US20240087176A1 (en) Point cloud decoding method and apparatus, point cloud encoding method and apparatus, computer device, computer-readable storage medium
WO2023197990A1 (zh) 编码方法、解码方法及终端
US20240062466A1 (en) Point cloud optimization using instance segmentation
WO2024113325A1 (en) Method for encoding and decoding a 3d point cloud, encoder, decoder
KR20230012558A (ko) 비디오 기반 포인트 클라우드 코딩을 위한 고속 재채색
KR20230158622A (ko) 메시 압축을 위한 지오메트리 필터링
CN116868572A (zh) 用于编码及解码3d点云的方法、编码器及解码器
KR20230173700A (ko) 시간적으로 상관된 uv 아틀라스를 사용한 메시 파라미터화
KR20240066268A (ko) 일반적인 토폴로지의 차트를 사용한 atlas 샘플링 기반 메시 압축
KR20230135646A (ko) 메시 압축을 위한 패치 시간적 정렬의 인코딩