KR20150135495A - 깊이 정보의 코딩 방법과 디코딩 방법, 깊이 정보의 코딩 장치와 디코딩 장치 및 비디오 처리 재생 장치 - Google Patents

깊이 정보의 코딩 방법과 디코딩 방법, 깊이 정보의 코딩 장치와 디코딩 장치 및 비디오 처리 재생 장치 Download PDF

Info

Publication number
KR20150135495A
KR20150135495A KR1020157030831A KR20157030831A KR20150135495A KR 20150135495 A KR20150135495 A KR 20150135495A KR 1020157030831 A KR1020157030831 A KR 1020157030831A KR 20157030831 A KR20157030831 A KR 20157030831A KR 20150135495 A KR20150135495 A KR 20150135495A
Authority
KR
South Korea
Prior art keywords
value
depth
dlt
coding
difference value
Prior art date
Application number
KR1020157030831A
Other languages
English (en)
Other versions
KR101700752B1 (ko
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 KR20150135495A publication Critical patent/KR20150135495A/ko
Application granted granted Critical
Publication of KR101700752B1 publication Critical patent/KR101700752B1/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/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
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

본 발명의 실시예는 깊이 정보의 코딩 방법과 디코딩 방법, 및 깊이 정보의 코딩 장치와 디코딩 장치를 개시하며, 3D 비디오 압축 코딩 기술에 관한 것이다. 상기 코딩 방법은, 깊이 매핑 룩업 테이블 중의 모든 요소를 값 크기의 오름차순 방식으로 배치하는 단계, 여기서 상기 깊이 매핑 룩업 테이블은 인덱스 번호로 깊이 수치를 표시하는 데이터 구조이며; 상기 깊이 매핑 룩업 테이블 중의 첫번째 요소의 값을 코딩하고 비트 스트림에 쓰기하는 단계; 상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 각각 코딩하고 비트 스트림에 쓰기하는 단계를 포함하여 구성된다. 본 발명의 실시예는 또한 깊이 정보의 디코딩 방법 및 깊이 정보의 코딩 장치와 디코딩 장치를 개시한다. 본 출원의 기술방안은 깊이 정보 코딩/디코딩의 효율을 향상하고 깊이 정보 코딩시 자원 점용율을 절감한다.

Description

깊이 정보의 코딩 방법과 디코딩 방법, 깊이 정보의 코딩 장치와 디코딩 장치 및 비디오 처리 재생 장치{METHODS AND DEVICES FOR CODING AND DECODING DEPTH INFORMATION, AND VIDEO PROCESSING AND PLAYING DEVICE}
본 발명의 실시예는 3D 비디오 압축 코딩 기술에 관한 것으로서, 특히 깊이 정보의 코딩 방법과 디코딩 방법, 깊이 정보의 코딩 장치와 디코딩 장치 및 비디오 처리 재생 장치에 관한 것이다.
현재 제정중인 고효율 비디오 코딩(High Efficiency Video Coding, HEVC) 표준과 호환성이 있는 3D 비디오(Three-Dimensional Video, 3DV) 코딩 표준 3D-HEVC (HEVC Three-Dimensional extension framework)에서, 간소화된 깊이 코딩(Simplified Depth Coding, SDC)은 깊이 정보의 코딩 효율을 효과적으로 향상할 수 있으며 계산 복잡도가 비교적 낮다. SDC 모듈에서, 또한 깊이 매핑 룩업 테이블(Depth Look-up Table, DLT)을 사용하여 엔코더 입력의 깊이 샘플링을 깊이값 인덱스 번호로 매핑함으로써 깊이 샘플링 정보의 비트 깊이(bit depth)를 낮추어 압축 효율을 더 향상하는 목적을 이룰수 있다. 동시에, 엔코더는 DLT를 비트 스트림에 쓰기하여야 한다.
3D-HEVC표준에서은 직접 코딩하는 방법을 사용하여 DLT정보를 비트 스트림에 쓰기하며 그 디코딩 과정은 아래와 같다.
디코딩 과정: 깊이 컴포넌트(Depth Component)의 경우, 디코더는 우선 입력된 비트 스트림에서 dlt_flag의 값을 해석한다. dlt_flag의 값이 1과 같으면(즉 DLT를 사용), 디코더는 num_depth_values_in_dlt의 값을 더 해석한 후, 디코더는 num_depth_values_in_dlt개 DLT요소의 값(dlt_depth_value[i][j])을 해석한다.
디코딩 과정에 대응하여, 그 코딩 과정은 아래와 같다.
코딩 과정: 깊이 컴포넌트를 코딩할 때, 엔코더는 우선 dlt_flag를 비트 스트림에 쓰기하며, dlt_flag의 값이 1과 같으면(즉 DLT를 사용), 엔코더는 DLT에 포함된 깊이 수치의 수량을 비트 스트림에 쓰기한 후, 엔코더는 DLT 중의 각 요소(dlt_depth_value[i][j])의 값을 직접 순번으로 비트 스트림에 쓰기한다.
DLT 정보의 압축 코딩 효율을 향상하기 위하여, 제안 문서 JCT3V-C0142에는 값 범위가 제한된 식별 비트 맵(Range Constrained Bit Map, RCBM) 방법이 제공되었다. 상기 방법은 우선 비트 스트림에 DLT 중의 최소치 및 최대치(최대치와 최소치 간의 차이값으로 표시)를 코딩한 후, 하나의 1차원 플래그 비트 벡터로 구성된 식별 비트 맵으로 최소치와 최대치 간의 각 깊이 값이 DLT 중에 있는지를 식별한다.
RCBM 방법의 DLT 디코딩 과정은 아래와 같다.
디코딩 과정: 깊이 컴포넌트의 경우, 디코더는 입력된 비트 스트림에서 dlt_flag의 값을 해석하며, dlt_flag의 값이 1과 같으면(즉 DLT를 사용), 디코더는 code_full_bit_depth_map_flag의 값을 해석하며, code_full_bit_depth_map_flag의 값이 0이면 DLT 중의 최소 깊이 값을 0으로 설정하고 DLT 중의 최대 깊이 값을 허용하는 최대값(예를 들면, 깊이 샘플링 값의 비트 깊이가 8일 때, 해당 값은 255)으로 설정하며, 반대로 code_full_bit_depth_map_flag의 값이 1이면 디코더는 입력된 비트 스트림에서 DLT 중 깊이 샘플링 값의 최소치, 최대치와 최소치 간의 차이값을 해석하고 최대치와 최소치를 설정한다. 최소치와 최대치에 의해 한정된 DLT 값 범위에서, 디코더는 값 범위 내 각 값이 DLT 중의 플래그 비트에 포함되었는지를 해석하여 플래그 비트 값이 "1"인 깊이 샘플링 값을 DLT에 추가한다.
디코딩 과정에 대응하여, RCBM 방법의 코딩 과정은 아래와 같다.
코딩 과정: 깊이 컴포넌트를 코딩할 때, 엔코더는 우선 dlt_flag를 비트 스트림에 쓰기하며, dlt_flag의 값이 1과 같으면(즉 DLT를 사용), 엔코더는 code_full_bit_depth_map_flag를 비트 스트림에 쓰기하며, code_full_bit_depth_map_flag의 값이 0이면 DLT 중의 최소 깊이 값을 0으로 설정하고 DLT 중의 최대 깊이 값을 허용하는 최대값(예를 들면, 깊이 샘플링 값의 비트 깊이가 8일 때, 해당 값은 255)으로 설정하며, 반대로 code_full_bit_depth_map_flag의 값이 1이면 엔코더는 DLT 중 깊이 샘플링 값의 최소치, 및 최대치와 최소치 간의 차이값을 비트 스트림에 쓰기하며, 최대치와 최소치 범위 내의 각 깊이 샘플링 값(최대치와 최소치를 포함하지 않음)에 대해, 엔코더는 해당 깊이 샘플링 값이 DLT 중의 플래그 정보("0"은 DLT에 포함되지 않고, "1"은 DLT에 포함됨)에 포함되었는지를 비트 스트림에 쓰기한다.
상기 두가지 DLT 코딩 및 디코딩 방법의 주요한 국한성은 아래와 같다.
3D-HEVC 중 기존 방법의 주요한 단점은 DLT 중 각 요소 값을 직접 비트 스트림에 쓰기하고, DLT 중 각 데이터 요소 간에 존재하는 관련성을 이용하여 데이터 간에 존재하는 중복을 제거하지 않는 것이다. 이는 DLT 코딩 비트 오버헤드를 너무 크게 한다. 3D-HEVC의 참조 소프트웨어 HTM5.1에서, DLT 정보는 서열 파라미터 세트(Sequence Parameter Set, SPS)에 위치한다. 테스트 결과 DLT정보가 SPS 총 오버헤드에서 차지하는 비율이 65%인 높은 비율에 달한다.
RCBM 방법은 DLT 정보의 코딩 오버헤드를 효과적으로 절감할 수 있지만 해당 방법이 최소치와 최대치 간의 각 깊이 샘플링 값을 위해 플래그 비트를 코딩하여 해당 깊이 값이 DLT 에 포함되었는지를 표시하여야 하므로, 최소치와 최대치 간에 비 DLT 수치가 비교적 많이 존재하면 RCMB는 비교적 많은 추가 비트 오버헤드를 사용한다.
본 발명의 실시예가 해결하려는 기술적 과제는 깊이 정보의 코딩 효율을 향상하도록 깊이 정보의 코딩 방법과 디코딩 방법 및 코딩 장치와 디코딩 장치를 제공하는 것이다.
상기 기술문제를 해결하기 위하여, 본 발명의 실시예는,
깊이 매핑 룩업 테이블 중의 모든 요소를 값 크기의 오름차순 방식으로 배치하는 단계, 여기서 상기 깊이 매핑 룩업 테이블은 인덱스 번호로 깊이 수치를 표시하는 데이터 구조이며;
상기 깊이 매핑 룩업 테이블 중의 첫번째 요소의 값을 코딩하고 비트 스트림에 쓰기하는 단계;
상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 각각 코딩하고 비트 스트림에 쓰기하는 단계를 포함하여 구성되는 깊이 정보의 코딩 방법을 개시한다.
바람직하게, 상기 방법에서, 상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 각각 코딩하는 단계는,
상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 확정하여, 상기 차이값이 설정된 임계값보다 작거나 같으면, 설정된 제1엔트로피 코딩 방법을 선택하여 해당 차이값을 코딩하며, 상기 차이값이 설정된 임계값보다 크면, 설정된 제2엔트로피 코딩 방법을 선택하여 해당 차이값을 코딩하는 단계를 포함한다.
바람직하게, 상기 방법에서, 상기 설정된 임계값은 사전에 설정된 고정 값 또는 코딩 과정에서 동적으로 조절하는 수치이다.
바람직하게, 상기 방법에서, 상기 설정된 임계값은 전체 깊이 매핑 룩업 테이블을 위해 설정한 것 또는 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 요소를 위해 각각 설정한 것이다.
바람직하게, 상기 방법은,
상기 깊이 매핑 룩업 테이블 정보를 비트 스트림에 쓰기하는 단계를 더 포함하며, 여기서, 상기 깊이 매핑 룩업 테이블 정보에는 요소 수량 정보가 포함되어 있다.
바람직하게, 상기 방법은,
차이값을 코딩할 때, 코딩 보조 정보도 함께 비트 스트림에 쓰기하는 단계를 더 포함하며, 여기서, 상기 보조 정보는 상기 차이값을 코딩하는데 사용되는 엔트로피 코딩 방법을 식별하기 위한 것이다.
본 발명의 실시예는,
비트 스트림 중 깊이 매핑 룩업 테이블의 첫번째 요소와 대응하는 비트 필드를 디코딩하여 첫번째 요소의 값을 획득하는 단계, 여기서 상기 깊이 매핑 룩업 테이블은 인덱스 번호로 깊이 수치를 표시하는 데이터 구조이며;
깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소와 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값에 대응하는 비트 필드를 디코딩하여 상기 차이값을 획득하는 단계;
획득한 차이값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 상기 차이값에 대응하는 요소 인덱스 번호의 이미 디코딩된 요소의 값을 합산하여, 합산 값을 깊이 매핑 룩업 테이블 중 상기 차이값에 대응하는 인덱스 번호 요소의 값으로 하는 단계를 포함하여 구성되는 깊이 정보의 디코딩 방법을 더 개시한다.
바람직하게, 상기 방법은,
깊이 매핑 룩업 테이블을 디코딩하기 전에, 깊이 매핑 룩업 테이블에 포함된 요소 수량 정보를 포함하는 상기 깊이 매핑 룩업 테이블 정보를 디코딩하는 단계를 더 포함한다.
바람직하게, 상기 방법은,
상기 차이값에 대응하는 비트 필드를 디코딩하기 전에, 차이값을 코딩하는 보조 정보에 대응하는 비트 필드를 디코딩하여 해당 차이값이 사용하는 엔트로피 코딩 방법을 획득하고, 해당 차이값이 사용하는 엔트로피 코딩 방법에 대응하는 엔트로피 디코딩 방법에 따라 상기 차이값을 디코딩하는 단계를 더 포함한다.
본 발명의 실시예는,
깊이 매핑 룩업 테이블 중의 모든 요소를 값 크기의 오름차순 방식으로 배치하도록 구성되는 처리 유닛;
깊이 매핑 룩업 테이블 중의 첫번째 요소의 값을 코딩하고 비트 스트림에 쓰기하도록 구성되는 제1코딩 유닛;
상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 각각 코딩하고 비트 스트림에 쓰기하도록 구성되는 제2코딩 유닛을 포함하여 구성되되,
여기서, 상기 깊이 매핑 룩업 테이블은 인덱스 번호로 깊이 수치를 표시하는 데이터 구조인 깊이 정보의 코딩 장치를 더 개시한다.
바람직하게, 상기 장치에서, 상기 제2코딩 유닛은 상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 확정하여, 상기 차이값이 설정된 임계값보다 작거나 같으면, 설정된 제1엔트로피 코딩 방법을 선택하여 해당 차이값을 코딩하며, 상기 차이값이 설정된 임계값보다 크면, 설정된 제2엔트로피 코딩 방법을 선택하여 해당 차이값을 코딩하도록 구성된다.
바람직하게, 상기 장치에서, 상기 설정된 임계값은 사전에 설정된 고정 값 또는 코딩 과정에서 동적으로 조절하는 수치이다.
바람직하게, 상기 장치에서, 상기 설정된 임계값은 전체 깊이 매핑 룩업 테이블을 위해 설정한 것 또는 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 요소를 위해 각각 설정한 것이다.
바람직하게, 상기 장치에서, 상기 제1코딩 유닛은 또한 상기 깊이 매핑 룩업 테이블 정보를 비트 스트림에 쓰기하도록 구성되며, 여기서, 상기 깊이 매핑 룩업 테이블 정보에는 요소 수량 정보가 포함되어 있다.
바람직하게, 상기 장치에서, 상기 제2코딩 유닛은 또한 차이값을 코딩할 때, 코딩 보조 정보도 함께 비트 스트림에 쓰기하도록 구성되며, 여기서, 상기 보조 정보는 상기 차이값을 코딩하는데 사용되는 엔트로피 코딩 방법을 식별하기 위한 것이다.
본 발명의 실시예는,
수신된 비트 스트림 중 깊이 매핑 룩업 테이블의 첫번째 요소에 대응하는 비트 필드를 디코딩하여 첫번째 요소의 값을 획득하도록 구성되는 제1디코딩 유닛;
깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값에 대응하는 비트 필드를 디코딩하여 상기 차이값을 획득하도록 구성되는 제2디코딩 유닛;
획득한 차이값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 상기 차이값에 대응하는 요소 인덱스 번호의 이미 디코딩된 요소의 값을 합산하여, 합산 값을 깊이 매핑 룩업 테이블 중 상기 차이값에 대응하는 인덱스 번호 요소의 값으로 하도록 구성되는 처리 유닛을 포함하여 구성되되,
여기서 상기 깊이 매핑 룩업 테이블은 인덱스 번호로 깊이 수치를 표시하는 데이터 구조인 깊이 정보의 디코딩 장치를 더 개시한다.
바람직하게, 상기 장치 중, 상기 제1디코딩 유닛은 깊이 매핑 룩업 테이블을 디코딩하기 전에, 깊이 매핑 룩업 테이블에 포함된 요소 수량 정보를 포함하는 상기 깊이 매핑 룩업 테이블 정보를 디코딩하도록 구성된다.
바람직하게, 상기 장치에서, 상기 제2디코딩 유닛은 상기 차이값에 대응하는 비트 필드를 디코딩하기 전에, 차이값을 코딩하는 보조 정보에 대응하는 비트 필드를 디코딩하여 해당 차이값이 사용하는 엔트로피 코딩 방법을 획득하고, 해당 차이값이 사용하는 엔트로피 코딩 방법에 대응하는 엔트로피 디코딩 방법에 따라 상기 차이값을 디코딩하도록 구성된다.
본 발명의 실시예는,
코딩하고자 하는 데이터를 완충하도록 구성되는 버퍼;
완충된 데이터 중 깊이 매핑 룩업 테이블 중의 모든 요소를 값 크기의 오름차순 방식으로 배치하고, 깊이 매핑 룩업 테이블 중의 첫번째 요소의 값을 코딩하고 비트 스트림에 쓰기하며, 상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 각각 코딩하고 비트 스트림에 쓰기하도록 구성되는 엔코더를 포함하여 구성되는 비디오 처리 장치를 더 개시한다.
바람직하게 상기 엔코더는 상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호의 요소의 값 간의 차이값을 확정하여, 상기 차이값이 설정된 임계값보다 작거나 같으면, 설정된 제1엔트로피 코딩 방법을 선택하여 해당 차이값을 코딩하며, 상기 차이값이 설정된 임계값보다 크면, 설정된 제2엔트로피 코딩 방법을 선택하여 해당 차이값을 코딩하도록 구성된다.
바람직하게, 상기 엔코더가 참조하는 상기 설정된 임계값은 사전에 설정된 고정 값 또는 코딩 과정에서 동적으로 조절하는 수치이다.
바람직하게, 상기 엔코더가 참조하는 상기 설정된 임계값은 전체 깊이 매핑 룩업 테이블을 위해 설정한 것 또는 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 요소를 위해 각각 설정한 것이다.
바람직하게, 상기 엔코더는, 차이값을 코딩할 때, 코딩 보조 정보도 함께 비트 스트림에 쓰기하도록 구성되며, 여기서, 상기 보조 정보는 상기 차이값을 코딩하는데 사용되는 엔트로피 코딩 방법을 식별하기 위한 것이다.
본 발명의 실시예는,
수신된 비트 스트림 중 깊이 매핑 룩업 테이블의 첫번째 요소에 대응하는 비트 필드를 디코딩하여 첫번째 요소의 값을 획득하고, 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소와 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값에 대응하는 비트 필드를 디코딩하여 상기 차이값을 획득하며, 획득한 차이값과, 깊이 매핑 룩업 테이블 중 인덱스 번호가 상기 차이값에 대응하는 요소 인덱스 번호보다 작은 이미 디코딩된 요소의 값에 대해 합산하여, 합산 값을 깊이 매핑 룩업 테이블 중 상기 차이값에 대응하는 인덱스 번호 요소의 값으로 하도록 구성되는 디코더;
상기 디코더가 디코딩한 후의 데이터를 표시하도록 구성되는 표시 장치를 포함하여 구성되는 비디오 재생 장치를 더 개시한다.
바람직하게, 상기 디코더는 상기 차이값에 대응하는 비트 필드를 디코딩하기 전에, 차이값을 코딩하는 보조 정보에 대응하는 비트 필드를 디코딩하여 해당 차이값이 사용하는 엔트로피 코딩 방법을 획득하고, 해당 차이값이 사용하는 엔트로피 코딩 방법에 대응하는 엔트로피 디코딩 방법에 따라 상기 차이값을 디코딩하도록 구성된다.
본 발명의 실시예는 상술한 방법을 실행하기 위한 컴퓨터 실행 가능한 명령이 저장된 컴퓨터 저장 매체를 더 개시한다.
본 출원의 기술방안은 깊이 정보의 코딩 및 디코딩의 효율을 향상시키고 깊이 정보 코딩 시의 자원 점용율을 절감시킨다.
도1은 본 실시예 중 코딩 방법 논리 흐름도이다.
도2는 본 실시예 중 디코딩 방법 논리 흐름도이다.
도3은 본 실시예 3의 디코딩 흐름도이다.
도4는 본 실시예 3의 코딩 흐름도이다.
도5는 본 실시예 4의 디코딩 흐름도이다.
도6은 본 실시예 4의 코딩 흐름도이다.
도7은 본 실시예 5의 디코딩 흐름도이다.
도8은 본 실시예 5의 코딩 흐름도이다.
도9는 본 실시예 6의 디코딩 흐름도이다.
도10은 본 실시예 6의 코딩 흐름도이다.
본 발명의 목적, 기술방안 및 장점을 더욱 명확하게 하기 위하여, 이하 첨부도면을 결합하여 본 발명의 기술방안에 대해 더 상세히 설명한다. 설명할 것은, 충돌하지 않는 경우, 본 출원의 실시예 및 실시예 중의 특징은 임의로 서로 조합될 수 있다.
이하 각 실시예에서 설명한 엔코더의 구현방법은 단지 해당 실시예에서 엔코더의 가능한 구현방법 중 하나이며, 해당 실시예의 디코딩 과정에서의 요구를 만족시키는 비트 스트림을 생성할 수 있는 모든 엔코더는 모두 해당 실시예의 엔코더 구현방법에 속한다.
실시예1
본 실시예는 깊이 정보의 코딩 방법을 설명하는바, 도1에 도시된 바와 같이, 아래와 같은 101단계 내지 103단계를 포함한다.
101단계에서, 깊이 매핑 룩업 테이블 중의 모든 요소를 값 크기의 오름차순 방식으로 배치한다.
실제 응용에서, 깊이 매핑 룩업 테이블 중의 모든 요소를 값 크기의 오름차순 방식으로 배치하는 것은, DLT에 요소를 배치할 때 그에 대응하는 오름차순 위치에 직접 배치할 수 있다. 또는, 기존의 DLT에서, 그중의 요소를 오름차순으로 재배열하여도 된다.
102단계에서, 상기 깊이 매핑 룩업 테이블 중의 첫번째 요소의 값을 코딩하고 비트 스트림에 쓰기한다.
103단계에서, 상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 각각 코딩하고 비트 스트림에 쓰기한다.
상기 방법의 기초하에, 임계값을 설정하여 상이한 엔트로피 코딩 방법을 선택하여 상기 차이값을 코딩하는 바람직한 방안을 제출한다. 즉, 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 확정한 후, 차이값이 설정된 임계값보다 작거나 같으면, 설정된 제1엔트로피 코딩 방법(예를 들면, 엔트로피 코딩 방법 E1)을 선택하여 해당 차이값을 코딩하며, 상기 차이값이 설정된 임계값보다 크면, 설정된 제2엔트로피 코딩 방법(예를 들면, 엔트로피 코딩 방법 E2)을 선택하여 해당 차이값을 코딩한다. 여기서, 설정된 임계값은 사전에 설정된 하나의 고정 값일 수도 있고 코딩 과정에서 동적으로 조절하는 하나의 변수일 수도 있다. 설정된 임계값은 전체 깊이 매핑 룩업 테이블을 위해 설정된 것일 수 있는바, 즉 하나의 깊이 매핑 룩업 테이블에 대응하여 하나의 설정된 임계값이 있을 수 있다. 물론, 설정된 임계값은 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 요소를 위해 각각 설정된 것일 수 있는바, 즉 하나의 N개 요소가 포함된 깊이 매핑 룩업 테이블에 대응하여 N-1개 설정된 한계값이 있을 수 있다.
더 설명할 것은, 상기 코딩 과정에서, 깊이 매핑 룩업 테이블 정보를 비트 스트림에 쓰기할 수도 있으며, 여기서, 깊이 매핑 룩업 테이블 정보에는 요소 수량 정보가 포함되어 있다.
또한, 차이값을 코딩할 때에도 보조 정보를 코딩하고 비트 스트림에 쓰기할 수 있으며, 해당 보조 정보는 차이값을 코딩하는데 사용되는 엔트로피 코딩 방법을 식별하기 위한 것이며, 이리 하여, 디코딩 시, 이 보조 정보에 따라 어떤 엔트로피 디코딩 방법을 이용하여 차이값에 대해 디코딩 조작을 진행할 것인지를 확정할 수 있다.
실시예2
본 실시예는 깊이 정보의 디코딩 방법을 설명하는바, 해당 방법은 상기 실시예1에서 코딩한 비트 스트림을 디코딩할 수 있으며, 해당 디코딩 과정은 도2에 도시된 바와 같이, 아래와 같은 201단계 내지 203단계를 포함한다.
201단계에서, 수신된 비트 스트림 중 깊이 매핑 룩업 테이블의 첫번째 요소에 대응하는 비트 필드를 디코딩하여 첫번째 요소의 값을 획득한다.
202단계에서, 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값과 대응하는 비트 필드를 디코딩하여 상기 차이값을 획득한다.
203단계에서, 획득한 차이값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 상기 차이값에 대응하는 요소 인덱스 번호보다 작은 이미 디코딩된 요소의 값을 합산하여, 합산 값을 깊이 매핑 룩업 테이블 중 상기 차이값에 대응하는 인덱스 번호 요소의 값으로 한다.
설명할 것은, 깊이 매핑 룩업 테이블을 디코딩하기 전에, 깊이 매핑 룩업 테이블에 포함된 요소 수량을 디코딩하는 정보를 포함하는 깊이 매핑 룩업 테이블 정보를 수신할 수도 있다.
또한, 수신된 비트 스트림에는 깊이 매핑 룩업 테이블에 차이값을 코딩하는 보조정보가 포함될 수도 있으며, 이리 하여, 차이값에 대응하는 비트 필드를 디코딩하기 전에, 먼저 차이값을 코딩하는 보조 정보에 대응하는 비트 필드를 디코딩하여 해당 차이값이 사용하는 엔트로피 코딩 방법을 획득하고, 다음 해당 차이값이 사용하는 엔트로피 코딩 방법에 대응하는 엔트로피 디코딩 방법에 따라 차이값을 디코딩하면 된다.
실시예3
본 실시예는 구체적인 응용 시나리오에 관해 상기 실시예1 및 실시예2의 코딩 방법과 디코딩 방법에 따라 깊이 정보의 코딩과 디코딩을 진행하는 구체적인 과정을 설명한다.
본 실시예의 DLT 비트 스트림 조직 방법은 표1에 나타낸 바와 같다. 해당 DLT 비트 스트림 조직 방법은 파라미터 세트(Parameter Set), 슬라이스 헤더 정보(Slice Header) 또는 슬라이스 세그먼트 헤더 정보(Slice Segment Header) 등 비트 스트림 조직 구성에서 DLT 정보 비트 스트림을 코딩 및 전송하는데 적용된다.
표1에 나타낸 바와 같이, 비트 스트림에서 깊이 정보를 표시하는 방법은, DLT 중 요소 수량 정보를 표시하고, DLT 중 첫번째 요소의 값을 표시하며, DLT 중 첫번째 요소를 제외한 기타 요소 값과 DLT 중 인덱스 번호가 상기 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 표시하고, 상기 차이값에 대응하는 비트 필드를 디코딩하는데 사용되는 엔트로피 디코딩 방법의 보조 정보를 표시한다.
대응하는 비트 스트림에는 아래와 같은 비트 필드가 포함된다: DLT 중 요소 수량 정보의 비트 필드, DLT 중 첫번째 요소 값의 비트 필드, DLT 중 첫번째 요소를 제외한 기타 요소 값과 DLT 중 인덱스 번호가 상기 요소 인덱스 번호보다 작은 요소의 값 간의 차이값의 비트 필드, 상기 차이값의 비트 필드를 디코딩하는데 사용되는 엔트로피 디코딩 방법의 보조 정보를 표시하는 비트 필드. 해당 비트 스트림은 파라미터 세트(parameter set) 및/또는 슬라이스 헤더(slice header) 정보 및/또는 슬라이스 세그먼트 헤더(slice segment header) 정보에 DLT 데이터를 코딩하는데 사용될 수 있다. 본 실시예 중 DLT 비트 스트림 조직 방법은 표1에 나타낸 바와 같다.
…… Descriptor
if ( DepthFlag ) {
dlt_flag u(1)
if (dlt_flag) {
num_depth_values_in_dlt ue(v)
dlt_depth_value[0] ue(v)
for ( i = 0; i < num_depth_values_in_dlt ; i++ ) {
dlt_depth_diff_minus1[ i ] ue(v)
}
}
}
……
표1 중 각 필드의 의미(대응하는 디코딩 조작)는 아래와 같다. 여기서, DepthFlag는 현재 처리 컴포넌트가 깊이 컴포넌트인지를 식별하는 플래그 비트이다.
dlt_flag 값이 1과 같으면 디코더가 디코딩 과정에서 DLT를 사용하여야 함을 나타내고, 반대로 값이 0과 같으면 디코더가 디코딩 과정에서 DLT를 사용하지 않음을 나타낸다. 해당 요소의 코딩 및 디코딩 방법은 u(1)에 대응하는 코딩 및 디코딩 방법을 사용한다.
num_depth_values_in_dlt는 DLT에 포함된 깊이 샘플링 포인트 수치의 수량을 나타낸다. 그 코딩 및 디코딩 방법은 ue(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있고 u(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있다. u(v)에 대응하는 코딩 및 디코딩 방법을 사용하면, 비트 스트림에서, num_depth_values_in_dlt에 대응하는 비트 갯수는 깊이 컴포넌트의 비트 깊이와 같다.
dlt_depth_value[0]는 DLT 중 첫번째 요소의 값이며, 그 코딩 및 디코딩 방법은 ue(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있고 u(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있다. u(v)에 대응하는 코딩 및 디코딩 방법을 사용하면, 비트 스트림에서, dlt_depth_value[0]에 대응하는 비트 갯수는 깊이 컴포넌트의 비트 깊이와 같다.
dlt_depth_diff_minus1[ i ]는 DLT 중 제i번째 요소와 제i-1번째 요소 간의 차이값을 나타내며, 그 값은 반드시 음이 아닌 정수(Non-negative integer)이다. DLT 중 첫번째 요소를 제외한, 기타 요소의 값은 dlt_depth_value[i] = dlt_depth_diff_minus1[i] + 1 + dlt_depth_value[i - 1]이며, 여기서, i의 값은 1, 2, …, num_depth_values_in_dlt - 1이다. 해당 요소의 코딩 및 디코딩 방법은 ue(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있고 u(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있다. u(v)에 대응하는 코딩 및 디코딩 방법을 사용하면, 비트 스트림에에서, dlt_depth_diff_minus1[i]에 대응하는 비트 갯수는 깊이 컴포넌트의 비트 깊이와 같다.
상기 표1의 비트 스트림 조직 방식을 사용하는 비트 스트림을 디코딩하는 과정은 도3에 도시된 바와 같으며 아래와 같은 301단계 내지 309단계를 포함한다.
301단계에서, 디코더는 비트 스트림에서 dlt_flag의 값을 해석한다.
디코더는 u(1)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_flag에 대응하는 비트 필드를 해석하여 dlt_flag의 값을 획득한다.
302단계에서, 디코더는 dlt_flag의 값이 1인지를 판단한다. 값이 1이면, 303단계를 수행하고, 값이 1이 아니면 309단계를 수행한다.
303단계에서, 디코더는 num_depth_values_in_dlt의 값을 해석한다.
디코더는 ue(v)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 num_depth_values_in_dlt에 대응하는 비트 필드를 해석하여 num_depth_values_in_dlt의 값을 획득한다.
또는, 디코더는 u(v)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 num_depth_values_in_dlt에 대응하는 비트 필드를 해석하여 num_depth_values_in_dlt의 값을 획득한다.
304단계에서, 디코더는 dlt_depth_value[0]의 값을 해석한다.
디코더는 ue(v)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_value[0]에 대응하는 비트 필드를 해석하여 dlt_depth_value[0]의 값을 획득한다.
또는, 디코더는 u(v)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_value[0]에 대응하는 비트 필드를 해석하여 dlt_depth_value[0]의 값을 획득한다.
305단계에서, 디코더는 순환처리에 대해 초기화한다: i = 1.
306단계에서, 디코더는 i < num_depth_values_in_dlt가 성립되는지를 판단한다. 성립되면, 307단계를 수행하고, 성립되지 않으면 309단계를 수행한다.
307단계에서, 디코더는 dlt_depth_diff_minus1[i]의 값을 해석한다.
디코더는 ue(v)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_minus1[i]에 대응하는 비트 필드를 해석하여 dlt_depth_diff_minus1[i]의 값을 획득한다.
또는, 디코더는 u(v)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_minus1[i]에 대응하는 비트 필드를 해석하여 dlt_depth_diff_minus1[i]의 값을 획득한다.
308단계에서, 디코더는 아래와 같은 조작을 수행한다: dlt_depth_value[i] = dlt_depth_diff_minus1[i] + 1 + dlt_depth_value[i - 1] 및 i ++. 306단계로 돌아간다.
309단계에서, 디코딩하여 비트 스트림에서 DLT 데이터를 획득하는 과정이 종료되고 DLT 데이터는 배열 dlt_depth_value에 저장된다.
상기 표1의 비트 스트림 조직 방식을 사용하는 코딩 과정은 도4에 도시된 바와 같으며 아래와 같은 401단계 내지 408단계를 포함한다.
401단계에서, 엔코더는 u(1)에 대응하는 코딩 방법을 사용하여 dlt_flag의 값을 비트 스트림에 쓰기한다.
엔코더는 기존의 엔코더 최적화 기술을 사용하여 코딩 과정에 DLT를 사용하여야 하는지를 확정한다. DLT를 사용하면, dlt_flag의 값을 1로 설정하고, 사용하지 않으면, dlt_flag의 값을 0으로 설정한다.
402단계에서, 엔코더는 dlt_flag의 값이 1인지를 판단한다. 값이 1이면, 403단계를 수행하고, 값이 1이 아니면 408단계를 수행한다.
403단계에서, 엔코더는 DLT 중 요소 수량을 포함하는 값을 획득하여 이를 비트 스트림에 쓰기한다.
엔코더는 기존 방법을 사용하여 DLT의 원본 데이터를 획득하고 배열에 저장하며 해당 배열에 포함되는 유효 요소 수량을 계산하여 이를 DLT 중 요소 수량을 포함하는 값으로 한다.
404단계에서, 엔코더는 DLT 중의 데이터를 오름차순으로 배열하여 DLT 중 첫번째 데이터를 비트 스트림에 쓰기한다.
엔코더는 DLT 중 데이터를 오름차순으로 배열하거나, 엔코더는 DLT 원본 데이터를 획득할 때, 원본 데이터의 오름차순 방식으로 데이터를 DLT를 저장하는 배열에 배열한다.
엔코더는 ue(v)에 대응하는 코딩 방법을 사용하여 DLT 중 첫번째 데어터 값을 비트 스트림에 쓰기한다. 또는, 엔코더는 u(v)에 대응하는 코딩 방법을 사용하여 DLT 중 첫번째 데어터 값을 비트 스트림에 쓰기한다.
405단계에서, 엔코더는 순환처리에 대해 초기화한다: i = 1.
406단계에서, 엔코더는 i < num_depth_values_in_dlt가 성립되는지를 판단한다. 성립되면, 407단계를 수행하고, 성립되지 않으면 408단계를 수행한다.
407단계에서, 엔코더는 하기 조작을 수행한다: 엔코더는 dlt[i] - dlt[i - 1] -1의 값을 비트 스트림에 쓰기한다; 엔코더는 카운터를 업데이트한다: i ++. 406단계로 돌아간다.
엔코더는 ue(v)에 대응하는 코딩 방법을 사용하여 dlt[i] - dlt[i - 1] -1의 값을 비트 스트림에 쓰기한다. 또는, 엔코더는 u(v)에 대응하는 코딩 방법을 사용하여 dlt[i] - dlt[i - 1] -1의 값을 비트 스트림에 쓰기한다.
408단계, 엔코더는 DLT 정보를 코딩하는 과정을 종료한다.
실시예4
본 실시예는 구체적인 응용 시나리오에 관해 상기 실시예1 및 실시예2의 코딩 및 디코딩 방법에 따라 깊이 정보 코딩 및 디코딩을 진행하는 구체적인 과정을 설명한다.
본 실시예에서 사용하는 DLT 비트 스트림 조직 방법은 표2에 나타낸 바와 같다. 해당 DLT 비트 스트림 조직 방법은 파라미터 세트(Parameter Set), 슬라이스 헤더 정보(Slice Header) 또는 슬라이스 세그먼트 헤더 정보(Slice Segment Header) 등 비트 스트림 조직 구성에서 DLT 정보 비트 스트림을 코딩 및 전송하는데 적용된다.
표2에 나타낸 바와 같이, 비트 스트림에서 깊이 정보를 표시하는 방법은, DLT 중 요소 수량 정보를 표시하고, DLT 중 첫번째 요소의 값을 표시하며, DLT 중 첫번째 요소를 제외한 기타 요소 값과 DLT 중 인덱스 번호가 상기 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 표시하고, 상기 차이값에 대응하는 비트 필드를 디코딩하는데 사용되는 엔트로피 디코딩 방법의 보조 정보를 표시한다.
대응하는 비트 스트림에는 아래와 같은 비트 필드가 포함된다: DLT 중 요소 수량 정보의 비트 필드, DLT 중 첫번째 요소 값의 비트 필드, DLT 중 첫번째 요소를 제외한 기타 요소 값과 DLT 중 인덱스 번호가 상기 요소 인덱스 번호보다 작은 요소의 값 간의 차이값의 비트 필드, 상기 차이값의 비트 필드를 디코딩하는데 사용되는 엔트로피 디코딩 방법의 보조 정보를 표시하는 비트 필드. 해당 비트 스트림은 파라미터 세트 및/또는 슬라이스 헤더 정보 및/또는 슬라이스 세그먼트 헤더 정보에 DLT 데이터를 코딩하는데 사용될 수 있다. 실시예4의 DLT 비트 스트림 조직 방법은 표2에 나타낸 바와 같다.
…… Descriptor
if ( DepthFlag ) {
dlt_flag u(1)
if (dlt_flag) {
num_depth_values_in_dlt u(v)
dlt_depth_value[0] u(v)
for ( i = 0; i < num_depth_values_in_dlt ; i++ ) {
dlt_depth_diff_minus1_less_than_4_flag[ i ] u(1)
if (dlt_depth_diff_minus1_less_than_4_flag[ i ])
dlt_depth_diff_minus1[ i ] u(2)
else
dlt_depth_diff_minus1_minus4[ i ] ue(v)
}
}
}
……
표2 중 각 필드의 의미(대응하는 디코더 조작)는 아래와 같다. 여기서, DepthFlag는 현재 처리 컴포넌트가 깊이 컴포넌트인지를 식별하는 플래그 비트이다.
dlt_flag 값이 1과 같으면 디코더가 디코딩 과정에서 DLT를 사용하여야 함을 나타내고, 반대로 값이 0과 같으면 디코더가 디코딩 과정에서 DLT를 사용하지 않음을 나타낸다. 해당 요소의 코딩 및 디코딩 방법은 u(1)에 대응하는 코딩 및 디코딩 방법을 사용한다.
num_depth_values_in_dlt는 DLT에 포함된 깊이 샘플링 포인트 수치의 수량을 나타낸다. 그 코딩 및 디코딩 방법은 u(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있고 ue(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있다. u(v)에 대응하는 코딩 및 디코딩 방법을 사용하면, 비트 스트림에서, num_depth_values_in_dlt에 대응하는 비트 갯수는 깊이 컴포넌트의 비트 깊이와 같다.
dlt_depth_value[0]는 DLT 중 첫번째 요소의 값이며, 그 코딩 및 디코딩 방법은 u(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있고 ue(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있다. u(v)에 대응하는 코딩 및 디코딩 방법을 사용하면, 비트 스트림에서, dlt_depth_value[0]에 대응하는 비트 갯수는 깊이 컴포넌트의 비트 깊이와 같다.
dlt_depth_diff_minus1_less_than_4_flag[ i ] 값이 1과 같으면, DLT 중 제i번째 요소와 제i-1번째 요소 간의 차이값에서 1을 뺄셈한 후의 값이 4보다 작은 것을 나타내고, 반대로 값이 0과 같으면 DLT 중 제i번째 요소와 제i-1번째 요소 간의 차이값에서 1을 뺄셈한 후의 값이 4보다 큰 것을 나타낸다. 해당 요소의 코딩 및 디코딩 방법은 u(1)에 대응하는 코딩 및 디코딩 방법을 사용한다.
dlt_depth_diff_minus1[ i ]는 DLT 중 제i번째 요소와 제i-1번째 요소 간의 차이값을 나타내며, 그 값은 반드시 음이 아닌 정수이다. DLT 중 첫번째 요소를 제외한, 기타 요소의 값은 dlt_depth_value[i] = dlt_depth_diff_minus1[i] + 1 + dlt_depth_value[i - 1]이며, 여기서, i의 값은 1, 2, …, num_depth_values_in_dlt - 1이다. 해당 요소의 코딩 및 디코딩 방법은 u(2)에 대응하는 코딩 및 디코딩 방법을 사용한다.
dlt_depth_diff_minus1_minus4[ i ]는 DLT 중 제i번째 요소와 제i-1번째 요소 간의 차이값을 나타내며, 그 값은 반드시 음이 아닌 정수이다. DLT 중 첫번째 요소를 제외한, 기타 요소의 값은 dlt_depth_value[i] = dlt_depth_diff_minus1_minus4[i] + 1 + 4 + dlt_depth_value[i - 1]이며, 여기서, i의 값은 1, 2, …, num_depth_values_in_dlt - 1이다. 해당 요소의 코딩 및 디코딩 방법은 ue(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있고 u(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있다. u(v)에 대응하는 코딩 및 디코딩 방법을 사용하면, dlt_depth_diff_minus1_minus4[i]가 비트 스트림에서 대응하는 비트 갯수는 깊이 컴포넌트의 비트 깊이와 같다.
표2에 나타낸 비트 스트림 조직 방식을 사용하는 디코딩 과정은 도5에 도시된 바와 같으며 501단계 내지 511단계를 포함한다.
501단계에서, 301단계와 완전히 동일하다.
502단계에서, 디코더는 dlt_flag의 값이 1인지를 판단한다. 값이 1이면, 503단계를 수행하고, 값이 1이 아니면 511단계를 수행한다.
503단계에서, 303단계와 완전히 동일하다.
504단계에서, 304단계와 완전히 동일하다.
505단계에서, 305단계와 완전히 동일하다.
506단계에서, 디코더는 i < num_depth_values_in_dlt가 성립되는지를 판단한다. 성립되면, 507단계를 수행하고, 성립되지 않으면 511단계를 수행한다.
507단계에서, 디코더는 dlt_depth_diff_minus1_less_than_4_flag[ i ]의 값을 해석한다.
디코더는 u(1)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_minus1_less_than_4_flag[ i ]에 대응하는 비트 필드를 해석하여 dlt_depth_diff_minus1_less_than_4_flag[ i ]의 값을 획득한다.
508단계에서, 디코더는 dlt_depth_diff_minus1_less_than_4_flag[ i ]의 값이 1과 같은지를 해석한다. 1과 같으면, 509단계를 수행하고, 1과 같지 않으면 510단계를 수행한다.
509단계에서, 디코더는 하기 조작을 수행한다: dlt_depth_diff_minus1[ i ]의 값을 해석한다; dlt_depth_value[i] = dlt_depth_diff_minus1[i] + 1 + dlt_depth_value[i - 1]; 디코더는 i ++를 업데이트한다. 506단계로 돌아간다.
디코더는 u(2)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_minus1[i]에 대응하는 비트 필드를 해석하여 dlt_depth_diff_minus1[i]의 값을 획득한다.
510단계에서, 디코더는 하기 조작을 수행한다: dlt_depth_diff_minus1_minus4[ i ]의 값을 해석한다; dlt_depth_value[i] = dlt_depth_diff_minus1_minus4[i] + 1 + 4 + dlt_depth_value[i - 1]; 디코더는 i ++를 업데이트한다. 406단계를 수행한다.
디코더는 ue(v)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_minus1_minus4[ i ]에 대응하는 비트 필드를 해석하여 dlt_depth_diff_minus1_minus4[ i ]의 값을 획득한다.
그 대신에, 디코더는 u(v)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_minus1_minus4[ i ]에 대응하는 비트 필드를 해석하여 dlt_depth_diff_minus1_minus4[ i ]의 값을 획득할 수 있다.
511단계에서, 디코딩하여 비트 스트림에서 DLT 데이터를 획득하는 과정이 종료되고 DLT 데이터는 배열 dlt_depth_value에 저장된다.
표2에 나타낸 비트 스트림 조직 방법을 사용하는 코딩 과정은 도6에 도시된 바와 같으며 601단계 내지 610단계를 포함한다.
601단계에서, 401단계와 완전히 동일하다.
602단계에서, 엔코더는 dlt_flag의 값이 1인지를 판단한다. 값이 1이면, 603단계를 수행하고, 값이 1이 아니면 610단계를 수행한다.
603단계에서, 403단계와 완전히 동일하다.
604단계에서, 404단계와 완전히 동일하다.
605단계, 405단계와 완전히 동일하다.
606단계에서, 엔코더는 i < num_depth_values_in_dlt가 성립되는지를 판단한다. 성립되면, 607단계를 수행하고, 성립되지 않으면 610단계를 수행한다.
607단계에서, 엔코더는 dlt[i] - dlt[i-1] - 1 < 4가 성립되는지를 판단한다. 성립되면, 608단계를 수행하고, 성립되지 않으면 609단계를 수행한다.
608단계에서, 엔코더는 하기 조작을 수행한다: 수치"1"를 비트 스트림에 쓰기한다; dlt[i] - dlt[i - 1]- 1의 값을 비트 스트림에 쓰기한다; 카운터를 업데이트한다: i ++. 606단계를 수행한다.
609단계에서, 엔코더는 하기 조작을 수행한다: 수치"0"를 비트 스트림에 쓰기한다; dlt[i] - dlt[i - 1]- 1-4의 값을 비트 스트림에 쓰기한다; 카운터를 업데이트한다: i ++. 606단계를 수행한다.
610단계에서, 엔코더는 DLT 정보를 코딩하는 과정을 종료한다.
실시예5
본 실시예는 구체적인 응용 시나리오에 관해 상기 실시예1 및 실시예2의 코딩 및 디코딩 방법에 따라 깊이 정보의 코딩 및 디코딩을 진행하는 구체적인 과정을 설명한다.
본 실시예에서 사용하는 DLT 비트 스트림 조직 방법은 표3에 나타낸 바와 같다. 해당 DLT 비트 스트림 조직 방법은 파라미터 세트(Parameter Set), 슬라이스 헤더 정보(Slice Header) 또는 슬라이스 세그먼트 헤더 정보(Slice Segment Header) 등 비트 스트림 조직 구성에서 DLT 정보 비트 스트림을 코딩 및 전송하는데 적용된다.
표3에 나타낸 바와 같이, 비트 스트림에서 깊이 정보를 표시하는 방법은, DLT 중 요소 수량 정보를 표시하고, DLT 중 첫번째 요소의 값을 표시하며, DLT 중 첫번째 요소를 제외한 기타 요소 값과 DLT 중 인덱스 번호가 상기 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 표시하고, 상기 차이값에 대응하는 비트 필드를 디코딩하는데 사용되는 엔트로피 디코딩 방법의 보조 정보를 표시한다.
대응하는 비트 스트림에는 아래와 같은 비트 필드가 포함된다: DLT 중 요소 수량 정보의 비트 필드, DLT 중 첫번째 요소 값의 비트 필드, DLT 중 첫번째 요소를 제외한 기타 요소 값과 DLT 중 인덱스 번호가 상기 요소 인덱스 번호보다 작은 요소의 값 간의 차이값의 비트 필드, 상기 차이값의 비트 필드를 디코딩하는데 사용되는 엔트로피 디코딩 방법의 보조 정보를 표시하는 비트 필드. 해당 비트 스트림은 파라미터 세트 및/또는 슬라이스 헤더 정보 및/또는 슬라이스 세그먼트 헤더 정보에 DLT 데이터를 코딩하는데 사용될 수 있다. 실시예5의 DLT 비트 스트림 조직 방법은 표3에 나타낸 바와 같다.
…… Descriptor
if ( DepthFlag ) {
dlt_flag u(1)
if (dlt_flag) {
num_depth_values_in_dlt u(v)
dlt_depth_value[0] u(v)
dlt_depth_diff_threshold u(3)
for ( i = 0; i < num_depth_values_in_dlt ; i++ ) {
if ( dlt_depth_diff_threshold ) {
dlt_depth_diff_minus1_less_than_threshold_flag[ i ] u(1)
if (dlt_depth_diff_minus1_less_than_threshold_flag[ i ])
dlt_depth_diff_minus1[ i ] u(v)
else
dlt_depth_diff_minus1_minus4[ i ] ue(v)
}
else
dlt_depth_diff_minus1[ i ] ue(v)
}
}
}
……
표3 중 각 필드의 의미(대응하는 디코더 조작)는 아래와 같다. 여기서, DepthFlag는 현재 처리 컴포넌트가 깊이 컴포넌트인지를 식별하는 플래그 비트이다.
dlt_flag 값이 1과 같으면 디코더가 디코딩 과정에서 DLT를 사용하여야 함을 나타내고, 반대로 값이 0과 같으면 디코더가 디코딩 과정에서 DLT를 사용하지 않음을 나타낸다. 해당 요소의 코딩 및 디코딩 방법은 u(1)에 대응하는 코딩 및 디코딩 방법을 사용한다.
num_depth_values_in_dlt는 DLT에 포함된 깊이 샘플링 포인트 수치의 수량을 나타낸다. 그 코딩 및 디코딩 방법은 u(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있고 ue(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있다. u(v)에 대응하는 코딩 및 디코딩 방법을 사용하면, num_depth_values_in_dlt가 비트 스트림에서 대응하는 비트 갯수는 깊이 컴포넌트의 비트 깊이와 같다.
dlt_depth_value[0]는 DLT 중 첫번째 요소의 값이며, 그 코딩 및 디코딩 방법은 u(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있고 ue(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있다. u(v)에 대응하는 코딩 및 디코딩 방법을 사용하면, 비트 스트림에서, dlt_depth_value[0]에 대응하는 비트 갯수는 깊이 컴포넌트의 비트 깊이와 같다.
dlt_depth_diff_threshold는 DLT 엔트로피 코딩 방법을 전환하는 임계값을 나타내며, 그 코딩 및 디코딩 방법은 u(3)에 대응하는 코딩 및 디코딩 방법을 사용한다. 해당 요소 값이 대응하는 디코딩 조작은 아래와 같다. 여기서, 표4 중 연산자 "a << b"는 a의 2진 표시치를 오른쪽으로 b비트 이동하는 것을 나타낸다. 실시예5 중 dlt_depth_diff_threshold 값의 대응하는 조작표는 표4에 나타낸 바와 같다.
요소의 2진 값 대응하는 조작(Corresponding operation)
000 ue(v)에 대응하는 디코딩 방법을 사용하여 DLT 요소를 해석한다
001 임계값은 2(1 << 1)와 같으며, 디코더는 플래그 비트 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값에 따라 u(1)와 ue(v)에 대응하는 디코딩 방법을 사용하여 DLT 요소를 해석할 것을 선택한다.
010 임계값은 4(1 << 2)와 같으며, 디코더는 플래그 비트 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값에 따라 u(1)와 ue(v)에 대응하는 디코딩 방법을 사용하여 DLT 요소를 해석할 것을 선택한다.
011 임계값은 8(1 << 3)와 같으며, 디코더는 플래그 비트 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값에 따라 u(1)와 ue(v)에 대응하는 디코딩 방법을 사용하여 DLT 요소를 해석할 것을 선택한다.
100 임계값은 16(1 << 4)와 같으며, 디코더는 플래그 비트 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값에 따라 u(1)와 ue(v)에 대응하는 디코딩 방법을 사용하여 DLT 요소를 해석할 것을 선택한다.
101 임계값은 32(1 << 5)와 같으며, 디코더는 플래그 비트 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값에 따라 u(1)와 ue(v)에 대응하는 디코딩 방법을 사용하여 DLT 요소를 해석할 것을 선택한다.
110 임계값은 64(1 << 6)와 같으며, 디코더는 플래그 비트 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값에 따라 u(1)와 ue(v)에 대응하는 디코딩 방법을 사용하여 DLT 요소를 해석할 것을 선택한다.
111 임계값은 128(1 << 7)와 같으며, 디코더는 플래그 비트 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값에 따라 u(1)와 ue(v)에 대응하는 디코딩 방법을 사용하여 DLT 요소를 해석할 것을 선택한다.
dlt_depth_diff_minus1_less_than_threshold_flag[ i ] 값이 1과 같으면, DLT 중 제i번째 요소와 제i-1번째 요소 간의 차이값에서 1을 뺄셈한 후의 값이 임계값보다 작은 것을 나타내고, 반대로 값이 0과 같으면 DLT 중 제i번째 요소와 제i-1번째 요소 간의 차이값에서 1을 뺄셈한 후의 값이 임계값보다 큰 것을 나타낸다. 여기서, 임계값은 dlt_depth_diff_threshold의 값에 따라 확정된다. 해당 요소의 코딩 및 디코딩 방법은 u(1)에 대응하는 코딩 및 디코딩 방법을 사용한다.
dlt_depth_diff_minus1[ i ]는 DLT 중 제i번째 요소와 제i-1번째 요소 간의 차이값을 나타내며, 그 값은 반드시 음이 아닌 정수이다. DLT 중 첫번째 요소를 제외한, 기타 요소의 값은 dlt_depth_value[i] = dlt_depth_diff_minus1[i] + 1 + dlt_depth_value[i - 1]이며, 여기서, i의 값은 1, 2, …, num_depth_values_in_dlt - 1이다. 해당 요소의 코딩 및 디코딩 방법은 u(v)와 ue(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수 있다. 해당 요소의 코딩/디코팅 방법이 u(v)에 대응하는 코딩 및 디코딩 방법을 사용하면, 이가 비트 스트림에서 대응하는 비트 갯수는 dlt_depth_diff_threshold의 값과 같다.
dlt_depth_diff_minus1_minus4[ i ]는 DLT 중 제i번째 요소와 제i-1번째 요소 간의 차이값을 나타내며, 그 값은 반드시 음이 아닌 정수이다. DLT 중 첫번째 요소를 제외한, 기타 요소의 값은 dlt_depth_value[i] = dlt_depth_diff_minus1_minus4[i] + 1 + 4 + dlt_depth_value[i - 1]이며, 여기서, i의 값은 1, 2, …, num_depth_values_in_dlt - 1이다. 해당 요소의 코딩 및 디코딩 방법은 ue(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있고 u(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있다.
상기 표3의 비트 스트림 조직 방법을 사용하는 디코딩 과정은 도7에 도시된 바와 같으며 701단계 내지 707단계를 포함한다.
701단계에서, 501단계와 완전히 동일하다.
702단계에서, 디코더는 dlt_flag의 값이 1인지를 판단한다. 값이 1이면, 703단계를 수행하고, 값이 1이 아니면 707단계를 수행한다.
703단계에서, 503단계와 완전히 동일하다.
704단계에서, 504단계와 완전히 동일하다.
705단계에서, 디코더는 비트 스트림에서 dlt_depth_diff_threshold의 값을 해석한다.
디코더는 u(3)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_threshold에 대응하는 비트 필드를 해석하여 dlt_depth_diff_threshold의 값을 획득한다.
706단계에서, 디코더는 dlt_depth_diff_threshold의 값에 따라 DLT를 해석한다.
dlt_depth_diff_threshold의 값이 0과 같으면, 디코더는 ue(v)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_minus1[i]에 대응하는 비트 필드를 해석하여 dlt_depth_diff_minus1[i]의 값을 획득하고 조작 dlt_depth_value[i] = dlt_depth_diff_minus1[i] + 1 + dlt_depth_value[i - 1]을 수행한다.
반대로, dlt_depth_diff_threshold의 값이 1과 같으면, 디코더는 u(1)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]에 대응하는 비트 필드를 해석하여 플래그 비트 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값을 획득한다. dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값이 1과 같으면, 디코더는 u(v)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_minus1[i]에 대응하는 비트 필드(해당 필드의 비트수는 dlt_depth_diff_threshold개)를 해석하여 dlt_depth_diff_minus1[i]의 값을 획득하고 dlt_depth_value[i] = dlt_depth_diff_minus1[i] + 1 + dlt_depth_value[i - 1]을 수행한다.
반대로, dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값이 0과 같으면, 디코더는 ue(v)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_minus1_minus4[ i ]에 대응하는 비트 필드를 해석하여 dlt_depth_diff_minus1_minus4[ i ]의 값을 획득하고 dlt_depth_value[i] = dlt_depth_diff_minus1_minus4[i] + 1 + 4 + dlt_depth_value[i - 1]을 수행한다.
707단계에서, 디코딩하여 비트 스트림에서 DLT 데이터를 획득하는 과정이 종료되고 DLT 데이터는 배열 dlt_depth_value에 저장된다.
표3의 비트 스트림 조직 방법을 사용하는 코딩 과정은 도8에 도시된 바와 같으며 801단계 내지 806단계를 포함한다.
801단계에서, 601단계와 완전히 동일하다.
802단계에서, 엔코더는 dlt_flag의 값이 1인지를 판단한다. 값이 1이면, 803단계를 수행하고, 값이 1이 아니면 806단계를 수행한다.
803단계에서, 603단계와 완전히 동일하다.
804단계에서, 604단계와 완전히 동일하다.
805단계에서, 엔코더는 깊이 데이터 특성에 따라 dlt_depth_diff_threshold의 값을 설정하며 해당 값에 따라 DLT 관련 데이터를 비트 스트림에 쓰기한다.
엔코더는 상이한 dlt_depth_diff_threshold 허용치에서 코딩 효율 및 점용 자원(예를 들어, 계산 복잡도, 저장 공간 수요 등)에 대한 영향을 각각 평가하여 설정된 평가 룰(예를 들어, 일반적으로 사용되는 비트율-왜곡 룰(rate-distortion rule))에 따라 최소 대가(minimum cost)의 dlt_depth_diff_threshold 값을 선택할 수 있다.
엔코더는 u(3)에 대응하는 코딩 방법을 사용하여 선택한 dlt_depth_diff_threshold 값을 비트 스트림에 쓰기한다.
dlt_depth_diff_threshold 값이 0과 같으면, 엔코더는 ue(v)에 대응하는 코딩 방법을 사용하여 dlt[i] - dlt[i-1] - 1의 값을 비트 스트림에 쓰기한다.
반대로, dlt_depth_diff_threshold 값이 0과 같지 않으면, 엔코더의 수행과정은 아래와 같다.
엔코더는 dlt_depth_diff_threshold의 값에 따라, 표4에 따라 임계값을 설정한다.
엔코더가 dlt[i] - dlt[i-1] - 1의 값이 임계값보다 작은 것으로 판단하면, 엔코더는 u(1)에 대응하는 코딩방법을 사용하여 수치"1"을 비트 스트림에 쓰기한 후, u(v)에 대응하는 코딩방법을 사용하여 dlt[i] - dlt[i-1] - 1의 수치를 비트 스트림에 쓰기하며, 사용하는 비트 갯수는 dlt_depth_diff_threshold과 같다. 반대로, 엔코더가 dlt[i] - dlt[i-1] - 1의 값이 임계값보다 큰 것으로 판단하면, 엔코더는 u(1)에 대응하는 코딩방법을 사용하여 수치"0"을 비트 스트림에 쓰기한 후, ue(v)에 대응하는 코딩 방법을 사용하여 dlt[i] - dlt[i-1] - 1- 4의 수치를 비트 스트림에 쓰기한다.
엔코더가 DLT 중 모든 요소의 처리 과정을 완성한 후, 해당 단계는 종료되며, 806단계를 수행한다.
806단계에서, 엔코더는 DLT 정보를 코딩하는 과정을 종료한다.
실시예6
본 실시예는 구체적인 응용 시나리오에 관해 상기 실시예1 및 실시예2의 코딩 및 디코딩 방법에 따라 깊이 정보의 코딩 및 디코딩을 진행하는 구체적인 과정을 설명한다.
본 실시예에서 사용하는 DLT 비트 스트림 조직 방법은 표4에 나타낸 바와 같다. 해당 DLT 비트 스트림 조직 방법은 파라미터 세트(Parameter Set), 슬라이스 헤더 정보(Slice Header) 또는 슬라이스 세그먼트 헤더 정보(Slice Segment Header) 등 비트 스트림 조직 구성에서 DLT 정보 비트 스트림을 코딩 및 전송하는데 적용된다.
표5에 나타낸 바와 같이, 비트 스트림에서 깊이 정보를 표시하는 방법은, DLT 중 요소 수량 정보를 표시하고, DLT 중 첫번째 요소의 값을 표시하며, DLT 중 첫번째 요소를 제외한 기타 요소 값과 DLT 중 인덱스 번호가 상기 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 표시하고, 상기 차이값에 대응하는 비트 필드를 디코딩하는데 사용되는 엔트로피 디코딩 방법의 보조 정보를 표시한다.
대응하는 비트 스트림에는 아래와 같은 비트 필드가 포함된다: DLT 중 요소 수량 정보의 비트 필드, DLT 중 첫번째 요소 값의 비트 필드, DLT 중 첫번째 요소를 제외한 기타 요소 값과 DLT 중 인덱스 번호가 상기 요소 인덱스 번호보다 작은 요소의 값 간의 차이값의 비트 필드, 상기 차이값의 비트 필드를 디코딩하는데 사용되는 엔트로피 디코딩 방법의 보조 정보를 표시하는 비트 필드. 해당 비트 스트림은 파라미터 세트 및/또는 슬라이스 헤더 정보 및/또는 슬라이스 세그먼트 헤더 정보에 DLT 데이터를 코딩하는데 사용될 수 있다. 실시예6의 DLT 비트 스트림 조직 방법은 표5에 나타낸 바와 같다.
…… Descriptor
if ( DepthFlag ) {
dlt_flag u(1)
if (dlt_flag) {
num_depth_values_in_dlt u(v)
dlt_depth_value[0] u(v)
dlt_depth_element_threshold_flag u(1)
if ( ! dlt_depth_element_threshold_flag )
dlt_depth_diff_threshold u(3)
for ( i = 0; i < num_depth_values_in_dlt ; i++ ) {
if ( dlt_depth_element_threshold_flag )
dlt_depth_diff_threshold_array[ i ] u(3)
if ( (dlt_depth_diff_threshold + dlt_depth_diff_threshold_array[ i ]) ) {
dlt_depth_diff_minus1_less_than_threshold_flag[ i ] u(1)
if (dlt_depth_diff_minus1_less_than_threshold_flag[ i ])
dlt_depth_diff_minus1[ i ] u(v)
else
dlt_depth_diff_minus1_minus4[ i ] ue(v)
}
else
dlt_depth_diff_minus1[ i ] ue(v)
}
}
}
……
표5 중 각 필드의 의미(대응하는 디코더 조작)는 아래와 같다. 여기서, DepthFlag는 현재 처리 컴포넌트가 깊이 컴포넌트인지를 표시하는 플래그 비트이다.
dlt_flag 값이 1과 같으면 디코더가 디코딩 과정에서 DLT를 사용하여야 함을 나타내고, 반대로 값이 0과 같으면 디코더가 디코딩 과정에서 DLT를 사용하지 않음을 나타낸다. 해당 요소의 코딩 및 디코딩 방법은 u(1)에 대응하는 코딩 및 디코딩 방법을 사용한다.
num_depth_values_in_dlt는 DLT에 포함된 깊이 샘플링 포인트 수치의 수량을 나타낸다. 그 코딩 및 디코딩 방법은 u(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있고 ue(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있다. u(v)에 대응하는 코딩 및 디코딩 방법을 사용하면, num_depth_values_in_dlt가 비트 스트림에서 대응하는 비트 갯수는 깊이 컴포넌트의 비트 깊이와 같다.
dlt_depth_value[0]는 DLT 중 첫번째 요소의 값이며, 그 코딩 및 디코딩 방법은 u(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있고 ue(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수도 있다. u(v)에 대응하는 코딩 및 디코딩 방법을 사용하면, dlt_depth_value[0]가 비트 스트림에서 대응하는 비트 갯수는 깊이 컴포넌트의 비트 깊이와 같다.
dlt_depth_element_threshold_flag 값이 1과 같으면 DLT 중 각 요소가 자체의 임계값을 사용하여 엔트로피 코딩 방법을 전환하는 것을 나타낸다. 반대로, 값이 0과 같으면, DLT 중 각 요소가 동일한 임계값을 사용하여 엔트로피 코딩 방법을 전환하는 것을 나타낸다.
dlt_depth_diff_threshold는 DLT 엔트로피 코딩 방법을 전환하는 임계값을 나타내며, 그 코딩 및 디코딩 방법은 u(3)에 대응하는 코딩 및 디코딩 방법을 사용한다. 해당 요소 값에 대응하는 디코딩 조작은 아래와 같다. 여기서, 표6 중 연산자 "a << b"는 a의 2진 표시치를 오른쪽으로 b비트 이동하는 것을 나타낸다. 실시예6 중 dlt_depth_diff_threshold 값의 대응하는 조작표는 표6에 나타낸 바와 같다.
요소의 2진 값 대응하는 조작
000 ue(v)에 대응하는 디코딩 방법을 사용하여 DLT 요소를 해석한다
001 임계값은 2(1 << 1)와 같으며, 디코더는 플래그 비트 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값에 따라 u(1)와 ue(v)에 대응하는 디코딩 방법을 사용하여 DLT 요소를 해석할 것을 선택한다.
010 임계값은 4(1 << 2)와 같으며, 디코더는 플래그 비트 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값에 따라 u(1)와 ue(v)에 대응하는 디코딩 방법을 사용하여 DLT 요소를 해석할 것을 선택한다.
011 임계값은 8(1 << 3)와 같으며, 디코더는 플래그 비트 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값에 따라 u(1)와 ue(v)에 대응하는 디코딩 방법을 사용하여 DLT 요소를 해석할 것을 선택한다.
100 임계값은 16(1 << 4)와 같으며, 디코더는 플래그 비트 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값에 따라 u(1)와 ue(v)에 대응하는 디코딩 방법을 사용하여 DLT 요소를 해석할 것을 선택한다.
101 임계값은 32(1 << 5)와 같으며, 디코더는 플래그 비트 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값에 따라 u(1)와 ue(v)에 대응하는 디코딩 방법을 사용하여 DLT 요소를 해석할 것을 선택한다.
110 임계값은 64(1 << 6)와 같으며, 디코더는 플래그 비트 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값에 따라 u(1)와 ue(v)에 대응하는 디코딩 방법을 사용하여 DLT 요소를 해석할 것을 선택한다.
111 임계값은 128(1 << 7)와 같으며, 디코더는 플래그 비트 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값에 따라 u(1)와 ue(v)에 대응하는 디코딩 방법을 사용하여 DLT 요소를 해석할 것을 선택한다.
dlt_depth_diff_threshold_array[ i ]는 DLT 중 제i번째 요소의 DLT 엔트로피 코딩 방법을 전환하는 임계값을 나타내며, 그 코딩 및 디코딩 방법은 u(3)에 대응하는 코딩 및 디코딩 방법을 사용한다. 해당 요소 값에 대응하는 디코딩 조작은 dlt_depth_diff_threshold와 동일하며 표6에 나타낸 바와 같다.
dlt_depth_diff_minus1_less_than_threshold_flag[ i ] 값이 1과 같으면, DLT 중 제i번째 요소와 제i-1번째 요소 간의 차이값에서 1을 뺄셈한 후의 값이 임계값보다 작은 것을 나타내고, 반대로 값이 0과 같으면 DLT 중 제i번째 요소와 제i-1번째 요소 간의 차이값에서 1을 뺄셈한 후의 값이 임계값보다 큰 것을 나타낸다. 여기서, 임계값은 dlt_depth_diff_threshold의 값에 따라 확정된다. 해당 요소의 코딩 및 디코딩 방법은 u(1)에 대응하는 코딩 및 디코딩 방법을 사용한다.
dlt_depth_diff_minus1[ i ]는 DLT 중 제i번째 요소와 제i-1번째 요소 간의 차이값을 나타내며, 그 값은 반드시 음이 아닌 정수이다. DLT 중 첫번째 요소를 제외한, 기타 요소의 값은 dlt_depth_value[i] = dlt_depth_diff_minus1[i] + 1 + dlt_depth_value[i - 1]이며, 여기서, i의 값은 1, 2, …, num_depth_values_in_dlt - 1이다. 해당 요소의 코딩 및 디코딩 방법은 ue(v)와 u(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수 있다. 해당 요소의 코딩 및 디코팅 방법이 u(v)에 대응하는 코딩 및 디코딩 방법을 사용하면, dlt_depth_element_threshold_flag의 값이 1과 같으면, 이가 비트 스트림에서 대응하는 비트 갯수는 dlt_depth_diff_threshold_array[i]의 값과 같고, 반대로 dlt_depth_element_threshold_flag의 값이 0과 같으면, 이가 비트 스트림에서 대응하는 비트 갯수는 dlt_depth_diff_threshold의 값과 같다.
dlt_depth_diff_minus1_minus4[ i ]는 DLT 중 제i번째 요소와 제i-1번째 요소 간의 차이값을 나타내며, 그 값은 반드시 음이 아닌 정수이다. DLT 중 첫번째 요소를 제외한, 기타 요소의 값은 dlt_depth_value[i] = dlt_depth_diff_minus1_minus4[i] + 1 + 4 + dlt_depth_value[i - 1]이며, 여기서, i의 값은 1, 2, …, num_depth_values_in_dlt - 1이다. 해당 요소의 코딩 및 디코딩 방법은 ue(v)에 대응하는 코딩 및 디코딩 방법을 사용할 수 있다.
상기 표5의 비트 스트림 조직 방법을 사용하는 디코딩 과정은 도9에 도시된 바와 같으며 901단계 내지 907단계를 포함한다.
901단계에서, 701단계와 완전히 동일하다.
902단계에서, 디코더는 dlt_flag의 값이 1인지를 판단한다. 값이 1이면, 903단계를 수행하고, 값이 1이 아니면 907단계를 수행한다.
903단계에서, 703단계와 완전히 동일하다.
904단계에서, 704단계와 완전히 동일하다.
905단계에서, 디코더는 dlt_depth_diff_element_threshold_flag와 dlt_depth_diff_threshold의 값을 해석한다.
디코더는 u(1)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_element_threshold_flag에 대응하는 비트 필드를 해석하여 dlt_depth_diff_element_threshold_flag의 값을 획득한다.
디코더가 dlt_depth_diff_element_threshold_flag의 값이 1과 같은 것으로 판단하면, 디코더는 dlt_depth_diff_threshold의 값을 0으로 설정한다.
반대로, 디코더가 dlt_depth_diff_element_threshold_flag의 값이 0과 같은 것으로 판단하면, 디코더는 u(3)에 대응하는 디코딩 방법을 사용하여 dlt_depth_diff_threshold에 대응하는 비트 필드를 해석하여 dlt_depth_diff_threshold의 값을 획득한다.
906단계에서, 디코더는 dlt_depth_diff_element_threshold_flag와 dlt_depth_diff_threshold의 값에 따라 DLT를 해석한다.
디코더가 dlt_depth_diff_element_threshold_flag의 값이 1과 같은 것으로 판단하면, 디코더는 u(3)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_threshold_array[ i ]에 대응하는 비트 필드를 해석하여 dlt_depth_diff_threshold_array[ i ]의 값을 획득하며, 반대로 디코더가 dlt_depth_diff_element_threshold_flag의 값이 0과 같은 것으로 판단하면, 디코더는 dlt_depth_diff_threshold_array[ i ]의 값을 0으로 설정한다.
디코더가 dlt_depth_diff_threshold + dlt_depth_diff_threshold_array[ i ]의 값이 0과 같은 것으로 판단하면, 디코더는 ue(v)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_minus1[i]에 대응하는 비트 필드를 해석하여 dlt_depth_diff_minus1[i]의 값을 획득하고 dlt_depth_value[i] = dlt_depth_diff_minus1[i] + 1 + dlt_depth_value[i - 1]을 수행한다.
반대로, 디코더는 dlt_depth_diff_threshold + dlt_depth_diff_threshold_array[ i ]의 값이 0보다 큰 것으로 판단하면, 디코더는 아래와 같은 상기 과정에 따라 DLT를 해석한다.
디코더는 u(1)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]에 대응하는 비트 필드를 해석하여 플래그 비트 dlt_depth_diff_minus1_less_than_threshold_flag[ i ]의 값을 획득한다. dlt_depth_diff_minus1_less_than_threshold_flag[ i ] 값이 1과 같으면, 디코더는 u(v)에 대응하는 코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_minus1[ i ]에 대응하는 비트 필드(해당 필드 비트수는 dlt_depth_diff_threshold_array[ i ]개)를 해석하여 dlt_depth_diff_minus1[ i ]의 값을 획득하고 dlt_depth_value[i] = dlt_depth_diff_minus1[i] + 1 + dlt_depth_value[i - 1]을 수행한다. 반대로, dlt_depth_diff_minus1_less_than_threshold_flag[ i ] 값이 0과 같으면, 디코더는 ue(v)에 대응하는 디코딩 방법을 사용하여 비트 스트림에서 dlt_depth_diff_minus1_minus4[ i ]에 대응하는 비트 필드를 해석하여 dlt_depth_diff_minus1_minus4[ i ]의 값을 획득하고 dlt_depth_value[i] = dlt_depth_diff_minus1_minus4[i] + 1 + 4 + dlt_depth_value[i - 1]을 수행한다.
907단계에서, 디코딩하여 비트 스트림에서 DLT 데이터를 획득하는 과정이 종료되고 DLT 데이터는 배열 dlt_depth_value에 저장된다.
표5의 비트 스트림 조직 방법을 사용하는 코딩 과정은 도10에 도시된 바와 같으며 1001단계 내지 1006단계를 포함한다.
1001단계에서, 801단계와 완전히 동일하다.
1002단계에서, 엔코더는 dlt_flag의 값이 1인지를 판단한다. 값이 1이면, 1003단계를 수행하고, 값이 1이 아니면 1006단계를 수행한다.
1003단계에서, 803단계와 완전히 동일하다.
1004단계에서, 804단계와 완전히 동일하다.
1005단계에서, 엔코더는 깊이 데이터 특성에 따라 dlt_depth_diff_element_threshold_flag와 dlt_depth_diff_threshold의 값을 설정하며 해당 값에 따라 DLT 관련 데이터를 비트 스트림에 쓰기한다.
엔코더는 상이한 dlt_depth_diff_element_threshold_flag 값이 0과 1로 설정되었을 때의 코딩 효율 및 점용 자원(예를 들어, 계산 복잡도, 저장 공간 수요 등)에 대한 영향을 각각 평가하여 설정된 평가 룰(예를 들어, 일반적으로 사용되는 비트율-왜곡 룰(rate-distortion rule))에 따라 최소 대가(minimum cost)의 dlt_depth_diff_element_threshold_flag 값을 선택할 수 있으며, 구체적인 과정은 아래와 같다.
엔코더는 dlt_depth_diff_element_threshold_flag의 값을 0으로 설정할 때, 엔코더는 dlt_depth_diff_threshold 허용치에서 코딩 효율 및 점용 자원(예를 들어, 계산 복잡도, 저장 공간 수요 등)에 대한 영향을 각각 평가하여 설정된 평가 룰(예를 들어, 일반적으로 사용되는 비트율-왜곡 룰(rate-distortion rule))에 따라 최소 대가(minimum cost)의 dlt_depth_diff_threshold 값을 선택할 수 있다. 엔코더는 해당 대가 값을 dlt_depth_diff_threshold_flag의 값을 0으로 설정할 때 대응하는 대가 값으로 하고 dlt_depth_diff_threshold의 값을 기록한다.
엔코더는 dlt_depth_diff_element_threshold_flag의 값을 0으로 설정할 때, 엔코더는 dlt_depth_diff_threshold 허용치에서 코딩 효율 및 점용 자원(예를 들어, 계산 복잡도, 저장 공간 수요 등)에 대한 영향을 각각 평가하여 DLT 테이블 중 첫번째 요소를 제외한 기타 요소를 위하여 설정된 평가 룰(예를 들어, 일반적으로 사용되는 비트율-왜곡 룰(rate-distortion rule))에 따라 최소 대가(minimum cost)의 dlt_depth_diff_threshold_array[i]값을 선택할 수 있다. 엔코더는 해당 대가 값을 dlt_depth_diff_threshold_flag의 값을 1로 설정할 때 대응하는 대가 값으로 하고 첫번째 요소를 제외한 기타 요소의 dlt_depth_diff_threshold_array[i] 값을 기록한다.
엔코더는 u(1)에 대응하는 코딩 방법을 사용하여 dlt_depth_diff_element_threshold_flag의 값을 비트 스트림에 쓰기한다. dlt_depth_diff_element_threshold_flag의 값이 0과 같으면, 엔코더는 u(3)에 대응하는 코딩 방법을 사용하여 dlt_depth_diff_threshold의 값을 비트 스트림에 쓰기한다.
DLT 중 첫번째 요소를 제외한 기타 요소(예를 들어, 제i번째 요소)에 대해, 엔코더는 아래와 같은 조작을 수행한다.
엔코더가 dlt_depth_diff_element_threshold_flag의 값이 1과 같은 것으로 판단하면, 엔코더는 u(3)에 대응하는 코딩 방법을 사용하여 이미 확정한 dlt_depth_diff_threshold_array[i] 값을 비트 스트림에 쓰기하며, 엔코더는 dlt_depth_diff_threshold_array[i] 설정 임계값에 따라, 엔코더는 코딩 비트 길이의 값을 dlt_depth_diff_threshold_array[i]의 값과 같도록 설정한다. 반대로, 엔코더가 dlt_depth_diff_element_threshold_flag의 값이 0과 같은 것으로 판단하면, 엔코더는 코딩 비트 길이의 값을 dlt_depth_diff_threshold의 값과 같도록 설정한다.
엔코더가 dlt_depth_diff_threshold + dlt_depth_diff_threshold_array[ i ]의 값이 0과 같은 것으로 판단하면, 엔코더는 ue(v)에 대응하는 코딩 방법을 사용하여 dlt[i] - dlt[i-1] - 1의 수치를 비트 스트림에 쓰기한다. 반대로, 엔코더는 dlt_depth_diff_threshold + dlt_depth_diff_threshold_array[ i ]의 값이 0보다 큰 것으로 판단하면, 엔코더는 하기 조작을 수행한다.
엔코더가 dlt[i] - dlt[i-1] - 1의 값이 이미 확정한 임계값보다 작은 것으로 판단하면, 엔코더는 u(1)에 대응하는 코딩방법을 사용하여 수치"1"을 비트 스트림에 쓰기한 후, u(v)에 대응하는 코딩방법을 사용하여 dlt[i] - dlt[i-1] - 1의 수치를 비트 스트림에 쓰기하며, 사용하는 비트 갯수는 이미 확정한 코딩 비트 길이 값과 같다. 반대로, 엔코더가 dlt[i] - dlt[i-1] - 1의 값이 임계값보다 큰 것으로 판단하면, 엔코더는 u(1)에 대응하는 코딩방법을 사용하여 수치"0"을 비트 스트림에 쓰기한 후, ue(v)에 대응하는 코딩 방법을 사용하여 dlt[i] - dlt[i-1] - 1- 4의 수치를 비트 스트림에 쓰기한다.
엔코더가 DLT 중 모든 요소의 처리 과정을 완성한 후, 해당 단계는 종료되며, 1006단계를 수행한다.
1006단계에서, 엔코더는 DLT 정보를 코딩하는 과정을 종료한다.
실시예7
본 실시예는 상기 각 실시예 중의 코딩 조작을 구현할 수 있는 깊이 정보의 코딩 장치를 설명하며 해당 장치는 적어도,
깊이 매핑 룩업 테이블 중의 모든 요소를 값 크기의 오름차순 방식으로 배치하도록 구성되는 처리 유닛;
깊이 매핑 룩업 테이블 중의 첫번째 요소의 값을 코딩하고 비트 스트림에 쓰기하도록 구성되는 제1코딩 유닛;
상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 각각 코딩하고 비트 스트림에 쓰기하도록 구성되는 제2코딩 유닛을 포함한다.
구체적으로, 상기 제2코딩 유닛은 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 확정하여, 상기 차이값이 설정된 임계값보다 작거나 같으면, 설정된 제1엔트로피 코딩 방법을 선택하여 해당 차이값을 코딩하며, 상기 차이값이 설정된 임계값보다 크면, 설정된 제2엔트로피 코딩 방법을 선택하여 해당 차이값을 코딩하도록 구성된다.
여기서, 설정된 임계값은 사전에 설정된 고정 값 또는 코딩 과정에서 동적으로 조절하는 수치이다. 설정된 임계값은 전체 깊이 매핑 룩업 테이블을 위해 설정한 것일 수도 있고 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 요소를 위해 각각 설정한 것일 수도 있다.
또한, 제1코딩 유닛은 깊이 매핑 룩업 테이블 정보를 비트 스트림에 쓰기하도록 구성될 수도 있으며, 여기서, 깊이 매핑 룩업 테이블 정보에는 요소 수량 정보가 포함되어 있다.
제2코딩 유닛은 차이값을 코딩할 때, 코딩 보조 정보도 함께 비트 스트림에 쓸 수 있도록 구성되며, 여기서, 보조 정보는 상기 차이값을 코딩하는데 사용되는 엔트로피 코딩 방법을 식별하기 위한 것이다.
설명할 것은, 본 실시예에서 제공한 코딩 장치는 독립된 코딩 장치일 수도 있고 각종 비디오 처리 장치(3D 비디오 처리 장치를 포함)에 내장된 엔코더일 수도 있다. 이때, 비디오 처리 장치는 버퍼와 엔코더를 포함한다.
버퍼는 코딩하고자 하는 데이터를 완충한다.
엔코더는 완충된 데이터 중 깊이 매핑 룩업 테이블 중의 모든 요소를 값 크기의 오름차순 방식으로 배치하고, 깊이 매핑 룩업 테이블 중의 첫번째 요소의 값을 코딩하고 비트 스트림에 쓰기하며, 상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 각각 코딩하고 비트 스트림에 쓰기한다.
구체적으로, 엔코더는 상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 확정하여, 상기 차이값이 설정된 임계값보다 작거나 같으면, 설정된 제1엔트로피 코딩 방법을 선택하여 해당 차이값을 코딩하며, 상기 차이값이 설정된 임계값보다 크면, 설정된 제2엔트로피 코딩 방법을 선택하여 해당 차이값을 코딩한다.
여기서, 상기 설정된 임계값은 사전에 설정된 고정 값 또는
코딩 과정에서 동적으로 조절하는 수치이다.
상기 설정된 임계값은 전체 깊이 매핑 룩업 테이블을 위해 설정한 것 또는
깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 요소를 위해 각각 설정한 것이다.
또한, 엔코더는 차이값을 코딩할 때, 코딩 보조 정보를 함께 비트 스트림에 쓰기할 수도 있으며, 여기서, 상기 보조 정보는 상기 차이값을 코딩하는데 사용되는 엔트로피 코딩 방법을 식별하기 위한 것이다.
실시예8
본 실시예는 상기 각 실시예 중의 디코딩 조작을 구현할 수 있는 깊이 정보의 디코딩 장치를 제공하며 해당 장치는 적어도, 하기의 유닛이 포함된다.
제1디코딩 유닛은, 수신된 비트 스트림 중 깊이 매핑 룩업 테이블의 첫번째 요소에 대응하는 비트 필드를 디코딩하여 첫번째 요소의 값을 획득하도록 구성되며;
일부 기술방안에서, 제1디코딩 유닛은, 깊이 매핑 룩업 테이블을 디코딩하기 전에, 깊이 매핑 룩업 테이블에 포함된 요소 수량을 디코딩하는 정보를 포함하는 깊이 매핑 룩업 테이블 정보를 수신할 수도 있도록 구성된다.
제2디코딩 유닛은, 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값에 대응하는 비트 필드를 디코딩하여 상기 차이값을 획득하도록 구성되며;
바람직하게, 제2디코딩 유닛은 상기 차이값에 대응하는 비트 필드를 디코딩하기 전에, 차이값을 코딩하는 보조 정보에 대응하는 비트 필드를 디코딩하여 해당 차이값이 사용하는 엔트로피 코딩 방법을 획득하고 해당 차이값이 사용하는 엔트로피 코딩 방법에 대응하는 엔트로피 디코딩 방법에 따라 상기 차이값을 디코딩하도록 구성된다.
처리 유닛은, 획득한 차이값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 상기 차이값에 대응하는 요소 인덱스 번호보다 작은 이미 디코딩된 요소의 값을 합산하여, 합산 값을 깊이 매핑 룩업 테이블 중 상기 차이값에 대응하는 인덱스 번호 요소의 값으로 하도록 구성된다.
특별히 지적할 것은, 본 실시예에서 제공한 디코딩 장치는 독립된 디코딩 장치일 수도 있고 임의의 비디오 재생 장치(3D 비디오 처리 장치를 포함)에 내장된 디코더일 수도 있다.
즉, 비디오 재생 장치 중의 디코더는 수신된 비트 스트림 중 깊이 매핑 룩업 테이블의 첫번째 요소에 대응하는 비트 필드를 디코딩하여 첫번째 요소의 값을 획득하고, 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값에 대응하는 비트 필드를 디코딩하여 상기 차이값을 획득하며, 획득한 차이값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 상기 차이값에 대응하는 요소 인덱스 번호보다 작은 이미 디코딩된 요소의 값에 대해 합산하여, 합산 값을 깊이 매핑 룩업 테이블 중 상기 차이값에 대응하는 인덱스 번호 요소의 값으로 한다.
비디오 재생 장치 중의 표시 장치는 상기 디코더가 디코딩한 후의 데이터를 표시하면 된다.
여기서, 디코더는 상기 차이값에 대응하는 비트 필드를 디코딩하기 전에, 차이값을 코딩하는 보조 정보에 대응하는 비트 필드를 디코딩하여 해당 차이값이 사용하는 엔트로피 코딩 방법을 획득하고 해당 차이값이 사용하는 엔트로피 코딩 방법에 대응하는 엔트로피 디코딩 방법에 따라 상기 차이값을 디코딩할 수도 있다.
본 분야의 기술자는 본 발명의 실시예가 방법, 시스템 및 컴퓨터 프로그램 제품으로 제공될 수 있음을 이해하여야 한다. 따라서, 본 발명은 하드웨어 실시예, 소프트웨어 실시예 또는 소프트웨어와 하드웨어를 결합하는 측면의 실시예의 형식을 적용할 수 있다. 그리고, 본 발명은 하나 또는 복수개의 컴퓨터가 사용가능한 프로그램 코드가 포함된 컴퓨터 사용가능한 저장매체(자기 디스크 기억장치 및 광 메모리 등을 포함하나 이에 한정되지 않음)에서 실시되는 컴퓨터 프로그램 제품의 형식을 적용할 수 있다.
본 발명은 본 발명의 실시예에 따른 방법, 장치(시스템) 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블럭도를 참조하여 설명하였다. 이해할 것은, 컴퓨터 프로그램 명령에 의해 흐름도 및/또는 블럭도 중의 각 흐름 및/또는 블럭, 그리고 흐름도 및/또는 블럭도 중의 흐름 및/또는 블럭의 결합을 구현할 수 있다. 이러한 컴퓨터 프로그램 명령을 범용 컴퓨터, 전용 컴퓨터, 임베디드 프로세서 또는 기타 프로그래머블 데이터 처리 장비의 프로세서에 제공하여 하나의 기기를 생성하여 컴퓨터 또는 기타 프로그래머블 데이터 처리 장비의 프로세서를 통해 수행되는 명령이 흐름도의 하나의 흐름 또는 다수개 흐름 및/또는 블럭도의 한 블럭 또는 다수개 블럭 중에 지정된 기능을 구현하기 위한 장치를 생성하도록 할 수 있다.
이러한 컴퓨터 프로그램 명령은 또한 컴퓨터 또는 기타 프로그래머블 데이터 처리 장비를 특정의 방식으로 작동하도록 가이드할 수 있는 컴퓨터 판독가능한 메모리에 저장되어 상기 컴퓨터 판독 가능한 메모리에 저장된 명령이 명령장치를 포함하는 제품을 생성하도록 할 수도 있으며, 상기 명령장치는 흐름도의 한 흐름 또는 다수개 흐름 및/또는 블럭도의 한 블럭 또는 다수개 블럭 중에 지정된 기능을 구현한다.
이러한 컴퓨터 프로그램 명령은 또한 컴퓨터 또는 기타 프로그래머블 데이터 처리 장비에 로딩되어 컴퓨터 또는 기타 프로그래머블 장비에서 일련의 조작단계를 수행하여 컴퓨터가 구현하는 처리를 생성함으로써 컴퓨터 또는 기타 프로그래머블 장비에서 수행되는 명령은 흐름도의 한 흐름 또는 다수개 흐름 및/또는 블럭도의 한 블럭 또는 다수개 블럭에서 지정한 기능을 구현하기 위한 단계를 제공한다.
상술한 내용은 본 발명의 바람직한 실예일 뿐, 본 발명의 보호 범위를 한정하기 위한 것이 아니다. 본 발명의 사상과 원칙 내에서 진행한 어떠한 수정, 동등교체, 개진 등은 모두 본 발명의 보호범위 내에 포함되어야 할 것이다.

Claims (26)

  1. 깊이 정보의 코딩 방법에 있어서,
    상기 방법은,
    깊이 매핑 룩업 테이블 중의 모든 요소를 값 크기의 오름차순 방식으로 배치하는 단계, 여기서 상기 깊이 매핑 룩업 테이블은 인덱스 번호로 깊이 수치를 표시하는 데이터 구조이며;
    상기 깊이 매핑 룩업 테이블 중의 첫번째 요소의 값을 코딩하고 비트 스트림에 쓰기하는 단계;
    상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 각각 코딩하고 비트 스트림에 쓰기하는 단계를 포함하여 구성되는 것을 특징으로 하는 깊이 정보의 코딩 방법.
  2. 청구항 1에 있어서,
    상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 각각 코딩하는 단계는,
    상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 확정하여, 상기 차이값이 설정된 임계값보다 작거나 같으면, 설정된 제1엔트로피 코딩 방법을 선택하여 해당 차이값을 코딩하며, 상기 차이값이 설정된 임계값보다 크면, 설정된 제2엔트로피 코딩 방법을 선택하여 해당 차이값을 코딩하는 단계를 포함하는 것을 특징으로 하는 깊이 정보의 코딩 방법.
  3. 청구항 2에 있어서,
    상기 설정된 임계값은 사전에 설정된 고정 값 또는 코딩 과정에서 동적으로 조절하는 수치인 것을 특징으로 하는 깊이 정보의 코딩 방법.
  4. 청구항 2 또는 청구항 3에 있어서,
    상기 설정된 임계값은 전체 깊이 매핑 룩업 테이블을 위해 설정한 것 또는 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 요소를 위해 각각 설정한 것인 것을 특징으로 하는 깊이 정보의 코딩 방법.
  5. 청구항 1내지 청구항 3 중 어느 한 항에 있어서,
    상기 방법은,
    상기 깊이 매핑 룩업 테이블 정보를 비트 스트림에 쓰기하는 단계를 더 포함하며, 여기서, 상기 깊이 매핑 룩업 테이블 정보에는 요소 수량 정보가 포함되어 있는 것을 특징으로 하는 깊이 정보의 코딩 방법.
  6. 청구항 1에 있어서,
    상기 방법은,
    차이값을 코딩할 때, 코딩 보조 정보도 함께 비트 스트림에 쓰기하는 단계를 더 포함하며, 여기서, 상기 보조 정보는 상기 차이값을 코딩하는데 사용되는 엔트로피 코딩 방법을 식별하기 위한 것인 것을 특징으로 하는 깊이 정보의 코딩 방법.
  7. 깊이 정보의 디코딩 방법에 있어서,
    상기 방법은,
    비트 스트림 중 깊이 매핑 룩업 테이블의 첫번째 요소와 대응하는 비트 필드를 디코딩하여 첫번째 요소의 값을 획득하는 단계, 여기서 상기 깊이 매핑 룩업 테이블은 인덱스 번호로 깊이 수치를 표시하는 데이터 구조이며;
    깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값에 대응하는 비트 필드를 디코딩하여 상기 차이값을 획득하는 단계;
    획득한 차이값과, 깊이 매핑 룩업 테이블 중 인덱스 번호가 상기 차이값에 대응하는 요소 인덱스 번호의 이미 디코딩된 요소의 값을 합산하여, 합산 값을 깊이 매핑 룩업 테이블 중 상기 차이값에 대응하는 인덱스 번호 요소의 값으로 하는 단계를 포함하여 구성되는 것을 특징으로 하는 깊이 정보의 디코딩 방법.
  8. 청구항 7에 있어서,
    상기 방법은,
    깊이 매핑 룩업 테이블을 디코딩하기 전에, 깊이 매핑 룩업 테이블에 포함된 요소 수량 정보를 포함하는 상기 깊이 매핑 룩업 테이블 정보를 디코딩하는 단계를 더 포함하는 것을 특징으로 하는 깊이 정보의 디코딩 방법.
  9. 청구항 7또는 청구항 8에 있어서,
    상기 방법은,
    상기 차이값에 대응하는 비트 필드를 디코딩하기 전에, 차이값을 코딩하는 보조 정보에 대응하는 비트 필드를 디코딩하여 해당 차이값이 사용하는 엔트로피 코딩 방법을 획득하고, 해당 차이값이 사용하는 엔트로피 코딩 방법에 대응하는 엔트로피 디코딩 방법에 따라 상기 차이값을 디코딩하는 단계를 더 포함하는 것을 특징으로 하는 깊이 정보의 디코딩 방법.
  10. 깊이 정보의 코딩 장치에 있어서,
    상기 장치는,
    깊이 매핑 룩업 테이블 중의 모든 요소를 값 크기의 오름차순 방식으로 배치하도록 구성되는 처리 유닛;
    깊이 매핑 룩업 테이블 중의 첫번째 요소의 값을 코딩하고 비트 스트림에 쓰기하도록 구성되는 제1코딩 유닛;
    상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 각각 코딩하고 비트 스트림에 쓰기하도록 구성되는 제2코딩 유닛을 포함하여 구성되되,
    여기서, 상기 깊이 매핑 룩업 테이블은 인덱스 번호로 깊이 수치를 표시하는 데이터 구조인 것을 특징으로 하는 깊이 정보의 코딩 장치.
  11. 청구항 10에 있어서,
    상기 제2코딩 유닛은 상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 확정하여, 상기 차이값이 설정된 임계값보다 작거나 같으면, 설정된 제1엔트로피 코딩 방법을 선택하여 해당 차이값을 코딩하며, 상기 차이값이 설정된 임계값보다 크면, 설정된 제2엔트로피 코딩 방법을 선택하여 해당 차이값을 코딩하도록 구성되는 것을 특징으로 하는 깊이 정보의 코딩 장치.
  12. 청구항 11에 있어서,
    제2코딩 유닛이 참조하는 상기 설정된 임계값은 사전에 설정된 고정 값 또는 코딩 과정에서 동적으로 조절하는 수치인 것을 특징으로 하는 깊이 정보의 코딩 장치.
  13. 청구항 11 또는 청구항 12에 있어서,
    제2코딩 유닛이 참조하는 상기 설정된 임계값은 전체 깊이 매핑 룩업 테이블을 위해 설정한 것 또는 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 요소를 위해 각각 설정한 것인 것을 특징으로 하는 깊이 정보의 코딩 장치.
  14. 청구항 10 내지 청구항 13 중 어느 한 항에 있어서,
    상기 제1코딩 유닛은 또한 상기 깊이 매핑 룩업 테이블 정보를 비트 스트림에 쓰기하도록 구성되며, 여기서, 상기 깊이 매핑 룩업 테이블 정보에는 요소 수량 정보가 포함되어 있는 것을 특징으로 하는 깊이 정보의 코딩 장치.
  15. 청구항 14에 있어서,
    상기 제2코딩 유닛은 차이값을 코딩할 때, 코딩 보조 정보도 함께 비트 스트림에 쓰기하도록 구성되며, 여기서, 상기 보조 정보는 상기 차이값을 코딩하는데 사용되는 엔트로피 코딩 방법을 식별하기 위한 것인 것을 특징으로 하는 깊이 정보의 코딩 장치.
  16. 깊이 정보의 디코딩 장치에 있어서,
    수신된 비트 스트림 중 깊이 매핑 룩업 테이블의 첫번째 요소에 대응하는 비트 필드를 디코딩하여 첫번째 요소의 값을 획득하도록 구성되는 제1디코딩 유닛;
    깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소와 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값에 대응하는 비트 필드를 디코딩하여 상기 차이값을 획득하도록 구성되는 제2디코딩 유닛;
    획득한 차이값과, 깊이 매핑 룩업 테이블 중 인덱스 번호가 상기 차이값에 대응하는 요소 인덱스 번호의 이미 디코딩된 요소의 값을 합산하여, 합산 값을 깊이 매핑 룩업 테이블 중 상기 차이값에 대응하는 인덱스 번호 요소의 값으로 하도록 구성되는 처리 유닛을 포함하여 구성되되,
    여기서, 상기 깊이 매핑 룩업 테이블은 인덱스 번호로 깊이 수치를 표시하는 데이터 구조인 것을 특징으로 하는 깊이 정보의 디코딩 장치.
  17. 청구항 16에 있어서,
    상기 제1디코딩 유닛은 깊이 매핑 룩업 테이블을 디코딩하기 전에, 깊이 매핑 룩업 테이블에 포함된 요소 수량 정보를 포함하는 깊이 매핑 룩업 테이블 정보를 디코딩하도록 구성되는 것을 특징으로 하는 깊이 정보의 디코딩 장치.
  18. 청구항 16 또는 청구항 17에 있어서,
    상기 제2디코딩 유닛은 상기 차이값에 대응하는 비트 필드를 디코딩하기 전에, 차이값을 코딩하는 보조 정보에 대응하는 비트 필드를 디코딩하여 해당 차이값이 사용하는 엔트로피 코딩 방법을 획득하고, 해당 차이값이 사용하는 엔트로피 코딩 방법에 대응하는 엔트로피 디코딩 방법에 따라 상기 차이값을 디코딩하도록 구성되는 것을 특징으로 하는 깊이 정보의 디코딩 장치.
  19. 비디오 처리 장치에 있어서,
    상기 장치는,
    코딩하고자 하는 데이터를 완충하도록 구성되는 버퍼;
    완충된 데이터 중 깊이 매핑 룩업 테이블 중의 모든 요소를 값 크기의 오름차순 방식으로 배치하고, 깊이 매핑 룩업 테이블 중의 첫번째 요소의 값을 코딩하고 비트 스트림에 쓰기하며, 상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값을 각각 코딩하고 비트 스트림에 쓰기하도록 구성되는 엔코더를 포함하여 구성되는 것을 특징으로 하는 비디오 처리 장치.
  20. 청구항 19에 있어서,
    상기 엔코더는 상기 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호의 요소의 값 간의 차이값을 확정하여, 상기 차이값이 설정된 임계값보다 작거나 같으면, 설정된 제1엔트로피 코딩 방법을 선택하여 해당 차이값을 코딩하며, 상기 차이값이 설정된 임계값보다 크면, 설정된 제2엔트로피 코딩 방법을 선택하여 해당 차이값을 코딩하도록 구성되는 것을 특징으로 하는 비디오 처리 장치.
  21. 청구항 20에 있어서,
    상기 엔코더가 참조하는 상기 설정된 임계값은 사전에 설정된 고정 값 또는 코딩 과정에서 동적으로 조절하는 수치인 것을 특징으로 하는 비디오 처리 장치.
  22. 청구항 20 또는 청구항 21에 있어서,
    상기 엔코더가 참조하는 상기 설정된 임계값은 전체 깊이 매핑 룩업 테이블을 위해 설정한 것 또는 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 요소를 위해 각각 설정한 것인 것을 특징으로 하는 비디오 처리 장치.
  23. 청구항 22에 있어서,
    상기 엔코더는, 차이값을 코딩할 때, 코딩 보조 정보도 함께 비트 스트림에 쓰기하도록 구성되며, 여기서, 상기 보조 정보는 상기 차이값을 코딩하는데 사용되는 엔트로피 코딩 방법을 식별하기 위한 것인 것을 특징으로 하는 비디오 처리 장치.
  24. 비디오 재생 장치에 있어서,
    수신된 비트 스트림 중 깊이 매핑 룩업 테이블의 첫번째 요소에 대응하는 비트 필드를 디코딩하여 첫번째 요소의 값을 획득하고, 깊이 매핑 룩업 테이블 중 첫번째 요소를 제외한 기타 각 요소의 값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 해당 요소 인덱스 번호보다 작은 요소의 값 간의 차이값에 대응하는 비트 필드를 디코딩하여 상기 차이값을 획득하며, 획득한 차이값과 깊이 매핑 룩업 테이블 중 인덱스 번호가 상기 차이값에 대응하는 요소 인덱스 번호보다 작은 이미 디코딩된 요소의 값에 대해 합산하여, 합산 값을 깊이 매핑 룩업 테이블 중 상기 차이값에 대응하는 인덱스 번호 요소의 값으로 하도록 구성되는 디코더;
    상기 디코더가 디코딩한 후의 데이터를 표시하도록 구성되는 표시 장치를 포함하여 구성되는 것을 특징으로 하는 비디오 재생 장치.
  25. 청구항 24에 있어서,
    상기 디코더는, 상기 차이값에 대응하는 비트 필드를 디코딩하기 전에, 차이값을 코딩하는 보조 정보에 대응하는 비트 필드를 디코딩하여 해당 차이값이 사용하는 엔트로피 코딩 방법을 획득하고, 해당 차이값이 사용하는 엔트로피 코딩 방법에 대응하는 엔트로피 디코딩 방법에 따라 상기 차이값을 디코딩하도록 구성되는 것을 특징으로 하는 비디오 재생 장치.
  26. 상기 청구항 1 내지 청구항 6, 청구항 7 내지 청구항 9 중 어느 한 항의 방법을 실행하기 위한 컴퓨터 실행 가능한 명령이 저장된 것을 특징으로 하는 컴퓨터 저장 매체.
KR1020157030831A 2013-03-27 2014-02-25 깊이 정보의 코딩 방법과 디코딩 방법, 깊이 정보의 코딩 장치와 디코딩 장치 및 비디오 처리 재생 장치 KR101700752B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310102168.9 2013-03-27
CN201310102168.9A CN104079941B (zh) 2013-03-27 2013-03-27 一种深度信息编解码方法、装置及视频处理播放设备
PCT/CN2014/072490 WO2014154074A1 (zh) 2013-03-27 2014-02-25 一种深度信息编解码方法、装置及视频处理播放设备

Publications (2)

Publication Number Publication Date
KR20150135495A true KR20150135495A (ko) 2015-12-02
KR101700752B1 KR101700752B1 (ko) 2017-01-31

Family

ID=51600949

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157030831A KR101700752B1 (ko) 2013-03-27 2014-02-25 깊이 정보의 코딩 방법과 디코딩 방법, 깊이 정보의 코딩 장치와 디코딩 장치 및 비디오 처리 재생 장치

Country Status (6)

Country Link
US (1) US10477245B2 (ko)
EP (1) EP2981081B1 (ko)
JP (1) JP6371373B2 (ko)
KR (1) KR101700752B1 (ko)
CN (1) CN104079941B (ko)
WO (1) WO2014154074A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015139203A1 (en) * 2014-03-18 2015-09-24 Mediatek Singapore Pte. Ltd. Dlt signaling in 3d video coding
CN105915917A (zh) * 2015-07-24 2016-08-31 乐视云计算有限公司 深度信息编码方法、解码方法及装置
FR3047379A1 (fr) * 2016-01-29 2017-08-04 Orange Procede de codage et decodage de donnees, dispositif de codage et decodage de donnees et programmes d'ordinateur correspondants

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751897A (zh) * 2008-12-10 2010-06-23 扬智科技股份有限公司 压缩及解压缩查找表的方法及其相关装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1117971A (ja) 1997-06-24 1999-01-22 Canon Inc 画像処理装置およびその方法、データ処理方法、並びに、記録媒体
JP2002044662A (ja) * 2000-07-24 2002-02-08 Sony Corp データ符号化装置及び符号化方法並びにデータ復号化装置及び復号化方法
WO2007038330A2 (en) * 2005-09-22 2007-04-05 3M Innovative Properties Company Artifact mitigation in three-dimensional imaging
WO2008049446A1 (en) * 2006-10-25 2008-05-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Quality scalable coding
KR101367282B1 (ko) 2007-12-21 2014-03-12 삼성전자주식회사 깊이 정보에 대한 적응적 정보 표현 방법 및 그 장치
KR20100002032A (ko) * 2008-06-24 2010-01-06 삼성전자주식회사 영상 생성 방법, 영상 처리 방법, 및 그 장치
WO2011013192A1 (ja) * 2009-07-27 2011-02-03 株式会社東芝 画像符号化方法および画像復号方法
JP2011217347A (ja) * 2010-03-16 2011-10-27 Sony Corp 画像符号化装置とその方法、画像復号化装置とその方法、およびプログラム
RS57809B1 (sr) * 2010-07-09 2018-12-31 Samsung Electronics Co Ltd Metod za dekodiranje video zapisa korišćenjem objedinjavanja blokova
SG188255A1 (en) 2010-09-30 2013-04-30 Panasonic Corp Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit
EP2636222A1 (en) 2010-11-04 2013-09-11 Koninklijke Philips Electronics N.V. Generation of depth indication maps
US8553998B1 (en) * 2011-08-16 2013-10-08 Google Inc. Depthmap compression using a primitive
CN102970548B (zh) 2012-11-27 2015-01-21 西安交通大学 一种图像深度感知装置
KR102216585B1 (ko) * 2013-01-04 2021-02-17 삼성전자주식회사 깊이 영상의 부호화 장치 및 복호화 장치, 부호화 방법 및 복호화 방법
CN105409215B (zh) * 2013-01-11 2018-10-09 华为技术有限公司 深度预测模式选择方法及装置
EP2944080B1 (en) * 2013-01-11 2018-09-12 HFI Innovation Inc. Method and apparatus for efficient coding of depth lookup table
US10271034B2 (en) * 2013-03-05 2019-04-23 Qualcomm Incorporated Simplified depth coding
KR101806949B1 (ko) * 2013-03-13 2017-12-08 후아웨이 테크놀러지 컴퍼니 리미티드 깊이 룩업 테이블을 코딩하는 방법
WO2014139567A1 (en) * 2013-03-13 2014-09-18 Huawei Technologies Co., Ltd. Method for sub-range based coding a depth lookup table
ES2698515T3 (es) * 2013-03-15 2019-02-05 Qualcomm Inc Predictor para la intra-codificación de mapas de profundidad
KR101702802B1 (ko) * 2013-04-10 2017-02-03 지티이 코포레이션 깊이 정보 인코딩 및 디코딩 방법, 시스템, 및 장치
US20150063464A1 (en) * 2013-08-30 2015-03-05 Qualcomm Incorporated Lookup table coding
US9497473B2 (en) * 2013-10-03 2016-11-15 Qualcomm Incorporated High precision explicit weighted prediction for video coding
WO2015053593A1 (ko) * 2013-10-12 2015-04-16 삼성전자 주식회사 부가 영상을 부호화하기 위한 스케일러블 비디오 부호화 방법 및 장치, 부가 영상을 복호화하기 위한 스케일러블 비디오 복호화 방법 및 장치
US20160255371A1 (en) * 2013-10-18 2016-09-01 Lg Electronics Inc. Method and apparatus for coding/decoding 3d video

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751897A (zh) * 2008-12-10 2010-06-23 扬智科技股份有限公司 压缩及解压缩查找表的方法及其相关装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"3D-CE6.h Results on Simplified Depth Coding with an optional Depth Lookup Table", 102 MPEG MEETING, ISO/IEC JTC1/SC29/WG11, JCT3V-B0036(2012.10.16.)* *

Also Published As

Publication number Publication date
WO2014154074A1 (zh) 2014-10-02
US10477245B2 (en) 2019-11-12
US20160057452A1 (en) 2016-02-25
JP2016517230A (ja) 2016-06-09
EP2981081A4 (en) 2016-03-30
EP2981081A1 (en) 2016-02-03
KR101700752B1 (ko) 2017-01-31
EP2981081B1 (en) 2018-11-14
JP6371373B2 (ja) 2018-08-08
CN104079941A (zh) 2014-10-01
CN104079941B (zh) 2017-08-25

Similar Documents

Publication Publication Date Title
US11922957B2 (en) Method for decoding and encoding a downmix matrix, method for presenting audio content, encoder and decoder for a downmix matrix, audio encoder and audio decoder
US11750809B2 (en) Encoding and decoding methods and apparatuses with multiple image block division manners
US20230056351A1 (en) Coded-block-flag coding and derivation
KR101600056B1 (ko) 슬라이스 파라미터 세트 인코딩 및 디코딩 방법과 장치
KR101737221B1 (ko) 비디오 코딩을 위한 펄스-코드 변조 및 팔레트 코딩 방법
US10820016B2 (en) Encoding and decoding method and device for data compression
JP5475855B2 (ja) マルチビュー・ビデオ符号化のための仮想参照デコーダ
CN111837397A (zh) 基于子图像码流的视角相关视频编码中的错误消除的码流指示
US20160037185A1 (en) Methods and apparatuses for coding and decoding depth map
EP3185557A1 (en) Predictive coding/decoding method, corresponding coder/decoder, and electronic device
RU2016105691A (ru) Устройство и способ для эффективного кодирования метаданных объектов
CA2908115A1 (en) Method of simplified cabac coding in 3d video coding
JP6396452B2 (ja) オーディオ・エンコーダおよびデコーダ
KR101700752B1 (ko) 깊이 정보의 코딩 방법과 디코딩 방법, 깊이 정보의 코딩 장치와 디코딩 장치 및 비디오 처리 재생 장치
US9571859B2 (en) Intraframe coding method, device and encoder for depth images
KR102412244B1 (ko) 모드 정보를 코딩 및 디코딩하기 위한 방법 및 장치, 그리고 전자 디바이스
JP2016519511A (ja) 奥行情報の符号化および復号化方法、システムおよび装置
KR101467159B1 (ko) 멀티 스테이지 구조 기반의 uhd 다채널 오디오 변환 방법 및 시스템
KR20200004348A (ko) 타겟 영역 수정을 통해 비디오 신호를 처리하는 방법 및 장치
JP2018121319A (ja) 符号化装置、復号装置及びプログラム
JP2021090221A (ja) 符号化装置、復号装置及びプログラム
CN105516702A (zh) 一种色彩空间的映射方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191226

Year of fee payment: 4