KR101906740B1 - 개선된 팔레트 테이블 및 인덱스 맵 코딩 방법들을 이용한 진보된 스크린 콘텐츠 코딩 - Google Patents

개선된 팔레트 테이블 및 인덱스 맵 코딩 방법들을 이용한 진보된 스크린 콘텐츠 코딩 Download PDF

Info

Publication number
KR101906740B1
KR101906740B1 KR1020177000671A KR20177000671A KR101906740B1 KR 101906740 B1 KR101906740 B1 KR 101906740B1 KR 1020177000671 A KR1020177000671 A KR 1020177000671A KR 20177000671 A KR20177000671 A KR 20177000671A KR 101906740 B1 KR101906740 B1 KR 101906740B1
Authority
KR
South Korea
Prior art keywords
index map
color
color index
delete delete
coding
Prior art date
Application number
KR1020177000671A
Other languages
English (en)
Other versions
KR20170016958A (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 KR20170016958A publication Critical patent/KR20170016958A/ko
Application granted granted Critical
Publication of KR101906740B1 publication Critical patent/KR101906740B1/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/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/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/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • 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/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/93Run-length 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)

Abstract

장치(100)는 스크린 콘텐츠 코딩을 위한 방법(1700)을 수행하도록 구성된다. 방법은 현재 코딩 단위(CU)(101, 213, 401, 501)에 기초하여 컬러 인덱스 맵(311, 601, 1301, 1600)을 도출하는 단계(1701)를 포함한다. 방법은 컬러 인덱스 맵을 인코딩하는 단계(1703)를 또한 포함하고, 컬러 인덱스 맵의 적어도 일부는 제1 코딩 기법을 이용하여 인코딩되고, 제1 표시자가 제1 코딩 기법의 유의미 거리를 나타낸다. 방법은 수신기(200)로의 전송을 위해 인코딩된 컬러 인덱스 맵과 제1 표시자를 결합하는 단계(1705)를 추가로 포함한다.

Description

개선된 팔레트 테이블 및 인덱스 맵 코딩 방법들을 이용한 진보된 스크린 콘텐츠 코딩{ADVANCED SCREEN CONTENT CODING WITH IMPROVED PALETTE TABLE AND INDEX MAP CODING METHODS}
본 개시는 일반적으로 스크린 콘텐츠 코딩에 관한 것으로, 보다 상세하게는, 개선된 컬러(팔레트) 테이블 및 인덱스 맵 코딩을 이용한 진보된 스크린 콘텐츠 코딩에 관한 것이다.
스크린 콘텐츠 코딩은 종래의 비디오 신호와 비교하여 그의 별개의 신호 특성들 때문에 비디오 압축에 대한 새로운 도전을 야기한다. 예를 들어, 의사 문자열 매칭, 컬러 팔레트 코딩, 및 인트라 모션 보상 또는 인트라 블록 복사와 같은, 진보된 스크린 콘텐츠 코딩을 위한 다수의 기존 기법들이 존재한다. 이러한 기법들 중, 의사 문자열 매칭은 무손실 코딩에서는 가장 높은 이득을 나타내지만, 손실 코딩 모드에서는 상당한 복잡도 오버헤드와 어려움이 있다. 카메라로 캡처된 것이 아닌 콘텐츠(예를 들어, 컴퓨터로 생성된 콘텐츠)는, 다수의 비디오 시퀀스에서 발견되는 연속적인 또는 거의 연속적인 컬러 톤들보다는, 전형적으로 제한된 수의 별개의 컬러들을 포함한다는 가정하에 스크린 콘텐츠에 대해 컬러 팔레트 코딩이 개발되어 있다. 비록 의사 문자열 매칭 및 컬러 팔레트 코딩 방법들이 큰 잠재력을 보여주었지만, 인트라 모션 보상 또는 인트라 블록 복사가 스크린 콘텐츠 코딩을 위해 진행중인 고효율 비디오 코딩(HEVC) 범위 확장의 참조 소프트웨어 및 작업 초안(working draft, WD) 버전 4에 채택되었다. 그러나, 인트라 블록 복사의 코딩 성능은 그의 고정된 블록 분해로 인해 제한된다. (인트라 픽처에서의 모션 추정과 유사하게) 블록 매칭을 수행하는 것도 컴퓨팅과 메모리 액세스 모두에서 인코더 복잡도를 상당히 증가시킨다.
일 실시예에 따르면, 스크린 콘텐츠 인코딩 방법이 제공된다. 상기 방법은 현재 코딩 단위(CU)에 기초하여 컬러 인덱스 맵을 도출하는 단계를 포함한다. 상기 방법은 또한 상기 컬러 인덱스 맵을 인코딩하는 단계를 포함하고, 상기 컬러 인덱스 맵의 적어도 일부는 제1 코딩 기법을 이용하여 인코딩되고, 제1 표시자가 상기 제1 코딩 기법의 유의미 거리(significant distance)를 나타낸다. 상기 방법은 수신기로의 전송을 위해 상기 인코딩된 컬러 인덱스 맵과 상기 제1 표시자를 결합하는 단계를 더 포함한다.
또 다른 실시예에 따르면, 스크린 콘텐츠 디코딩을 위한 방법이 제공된다. 상기 방법은 컬러 인덱스 맵을 포함하는 비디오 비트스트림을 수신하는 단계를 포함한다. 상기 방법은 또한 제1 표시자를 수신하는 단계를 포함한다. 상기 방법은 제1 디코딩 기법을 이용하여 상기 컬러 인덱스 맵의 적어도 일부를 디코딩하는 단계를 더 포함하며, 상기 제1 표시자는 상기 제1 디코딩 기법의 유의미 거리를 나타낸다. 또한, 상기 방법은 상기 컬러 인덱스 맵에 기초하여 현재 코딩 단위(CU)과 관련된 픽셀들을 재구성하는 단계를 포함한다.
다른 실시예들은 이들 방법을 수행하도록 구성된 장치들을 포함한다.
본 개시, 및 그 이점들을 더 완전히 이해하기 위해, 이하에서는 첨부된 도면들과 관련하여 취해진 다음의 설명들이 참조되며, 도면들에서 유사한 참조 부호들은 유사한 대상들을 나타낸다.
도 1은 본 개시에 따른 스크린 콘텐츠 코딩 프로세스를 수행하는 예시적인 송신기의 기능 블록도를 도시한다.
도 2는 본 개시에 따른 스크린 콘텐츠 디코딩 프로세스를 수행하는 예시적인 수신기의 기능적 블록도를 도시한다.
도 3은 본 개시에 따른, 팔레트 테이블 및 인덱스 맵을 사용하는 다양한 모듈들 및 처리 흐름의 예를 도시한다.
도 4는 개별적으로 도시되고 패킹된 컬러 성분들을 갖는 예시적인 코딩 단위(CU)을 도시한다.
도 5a는 스크린 콘텐츠 코딩 프로세스에서 사용하기 위한 참조 팔레트 테이블 및 현재 팔레트 테이블을 도시한다.
도 5b는 이웃 재구성 블록들을 사용하는 팔레트 테이블 예측의 예를 도시한다.
도 6은 수평 또는 수직 스캐닝이 사용될 수 있는 64×64 CU에 대한 예시적인 컬러 인덱스 맵을 도시한다.
도 7은 수평 스캐닝을 사용하는 1D 탐색 이후의 1차원(1D) 컬러 인덱스 벡터의 일부를 도시한다.
도 8은 U_PIXEL 모듈이라고 불리는 기본 픽셀 처리 유닛의 예를 도시한다.
도 9는 U_ROW 모듈의 예를 도시한다.
도 10은 U_CMP 모듈의 예를 도시한다.
도 11은 U_COL 모듈의 예를 도시한다.
도 12는 예시적인 U_2D_BLOCK 모듈을 도시한다.
도 13은 인덱스 맵 처리를 위한 수평 및 수직 스캐닝의 예들을 도시한다.
도 14a 및 도 14b는 4:2:0 및 4:4:4 크로마 샘플링 포맷들의 예들을 도시한다.
도 15는 4:4:4에서 4:2:0으로 그리고 그 반대로의 보간 프로세스의 예를 도시한다.
도 16은 상부 인덱스 라인 버퍼 또는 좌측 인덱스 라인 버퍼를 사용하는 컬러 인덱스 맵 처리의 예를 도시한다.
도 17은 이 개시에 따른 스크린 콘텐츠 코딩을 위한 방법을 도시한다.
도 18은 이 개시에 따른 스크린 콘텐츠 디코딩을 위한 방법을 도시한다.
이하에 논의되는 도 1 내지 도 18, 및 이 특허 문헌에서 본 발명의 원리들을 설명하기 위해 사용된 다양한 실시예들은 단지 설명을 위한 것이며 어떤 식으로든 본 발명의 범위를 제한하는 것으로 해석되어서는 안 된다. 본 기술분야의 기술자들은 본 발명의 원리들이 임의의 유형의 적절히 배열된 디바이스 또는 시스템에서 구현될 수 있다는 것을 이해할 것이다.
다음의 문헌들 및 표준 설명들은 이로써 본 명세서에 완전히 개시된 것처럼 본 개시에 포함된다:
T. Lin, S. Wang, P. Zhang, K. Zhou, "AHG7: Full-chroma(YUV444) dictionary+hybrid dual-coder extension of HEVC", JCT-VC Document, JCTVC-K0133, Shanghai, China, October 2012(이하 "REF1");
W. Zhu, J. Xu, W. Ding, "RCE3 Test 2: Multi-stage Base Color and Index Map", JCT-VC Document, JCTVC-N0287, Vienna, Austria, July 2013(이하 "REF2");
L. Guo, M. Karczewicz, J. Sole, "RCE3: Results of Test 3.1 on Palette Mode for Screen Content Coding", JCT-VC Document, JCTVC-N0247, Vienna, Austria, July 2013(이하 "REF3");
L. Guo, M. Karczewicz, J. Sole, R. Joshi, "Non-RCE3: Modified Palette Mode for Screen Content Coding", JCT-VC Document, JCTVC-N0249, Vienna, Austria, July 2013(이하 "REF4");
D.-K. Kwon, M. Budagavi, "RCE3: Results of test 3.3 on Intra motion compensation, JCT-VC Document, JCTVC-N0205, Vienna, Austria, July 2013(이하 "REF5");
C. Pang, J. Sole, L. Guo, M. Karczewicz, R. Joshi, "Non-RCE3: Intra Motion Compensation with 2-D MVs", JCT-VC Document, JCTVC-N0256, Vienna, Austria, July 2013(이하 "REF6");
C. Pang, J. Sole, L. Guo, M. Karczewicz, R. Joshi, "Non-RCE3: Pipeline Friendly Intra Motion Compensation", JCT-VC Document, JCTVC-N0254, Vienna, Austria, July 2013 (이하 "REF7");
D. Flynn, J. Soel 및 T. Suzuki, "Range Extension Draft 4", JCTVC-L1005, August 2013(이하 "REF8"); 및
H. Yu, K. McCann, R. Cohen, 및 P. Amon, "Draft call for proposals for coding of screen content and medical visual content", ISO/IEC JTC1/SC29/WG11 N13829, July 2013(이하 "REF9").
본 개시의 실시예는 개선된 팔레트 테이블 및 인덱스 맵 코딩을 이용한 진보된 스크린 콘텐츠 코딩 프로세스를 제공한다. 개시된 실시예들은 고효율 비디오 코딩의 현재 버전(HEVC 버전 2)보다 현저히 뛰어나다. 개시된 실시예들은 특히 스크린 콘텐츠를 코딩하기 위한 다수의 알고리즘을 포함한다. 이러한 알고리즘들에는 팔레트 테이블(또는 동등하게, 컬러 테이블)을 사용하는 픽셀 표현, 팔레트 테이블 압축, 컬러 인덱스 맵 압축, 문자열 매칭 및 잔차 압축이 포함된다. 본 명세서에 개시된 실시예들은 효율적인 스크린 콘텐츠 코딩을 지원하기 위한 장래의 HEVC 확장으로서 HEVC 범위 확장(RExt)으로 개발, 조화 및 통합된다. 그러나, 이들 실시예는 추가적으로 또는 대안적으로 기존의 비디오 표준 또는 임의의 다른 적합한 비디오 표준으로 구현될 수 있다. 설명의 편의상, 본 명세서에서는 HEVC RExt가 다양한 실시예를 설명하기 위한 예로서 사용된다. 유사하게, 압축 효율을 보여주는 다양한 실시예를 구현하기 위해 HEVC RExt 소프트웨어가 사용된다.
도 1은 본 개시에 따른 스크린 콘텐츠 코딩 프로세스를 수행하는 예시적인 송신기의 기능 블록도를 도시한다. 도 2는 본 개시에 따른 스크린 콘텐츠 디코딩 프로세스를 수행하는 예시적인 수신기의 기능적 블록도를 도시한다. 송신기(100) 및 수신기(200)의 실시예들은 단지 설명을 위한 것이다. 송신기(100) 및 수신기(200)의 다른 실시예들이 본 개시의 범위를 벗어나지 않고 사용될 수 있다.
송신기(100)는 비트스트림 내의 각각의 코딩 단위(CU) 또는 코딩 트리 단위(CTU)에 대해 수행될 수 있는 고효율 컬러 팔레트 압축(CPC) 프로세스를 수행하도록 구성된다. 도 1에 도시된 바와 같이, 송신기(100)는 비트스트림 내의 CU(101)로 시작한다. CU는 HEVC 및 HEVC RExt의 기본 동작 단위이며, 3개의 컬러 성분(예를 들어, 본 기술분야에 공지된 RGB, YUV, XYZ, 또는 다른 유사한 것)을 포함하는 픽셀들의 사각형 블록이다. 예시적인 CU(101)가 도 3에 도시되어 있다. CU(101)는 각각의 픽셀에 대한 명시적인 컬러 값(예를 들어, 47, 48, 49 등)을 포함하는 8 픽셀 × 8 픽셀 CU이다. 다른 실시예들에서, CU(101)의 크기는 8×8 픽셀(예를 들어, 16×16 픽셀, 32×32 픽셀 등) 이외일 수 있다. 일부 실시예들에서, 송신기(100)는 CU(101) 대신 CTU(101)로 시작할 수 있다. 설명의 편의상, 송신기(100)는 CU(101)로 설명될 것이다. 본 기술분야의 통상의 기술자들은 송신기(100)가 CTU(101)로 실질적으로 동일한 프로세스를 수행할 수 있다는 것을 이해할 것이다.
팔레트 테이블 생성 블록(103)은 CU(101)를 사용하여 팔레트 테이블(때로는 컬러 테이블이라고 함)을 도출하거나 생성한다. 예시적인 팔레트 테이블(303)이 도 3에 도시되어 있다. 팔레트 테이블(303)을 도출하기 위해, 팔레트 테이블 생성 블록(103)은 하나 이상의 순서화 규칙에 따라 컬러 값들을 정렬한다. 팔레트 테이블(303)은 후속하는 인코딩 동작들의 효율을 증가시키기 위해, 각각의 컬러 값의 발생 빈도, CU(101)의 각각의 픽셀의 실제 컬러 강도, 또는 임의의 다른 적절한 순서화 메트릭(들)에 따라 정렬될 수 있다.
도출된 팔레트 테이블(303)에 기초하여, 컬러 분류기 블록(105)은 CU(101)를 사용하여 컬러 인덱스 맵(311) 및 하나 이상의 예측 잔차 맵(313)에 CU(101)의 컬러 또는 픽셀 값들을 할당한다. 테이블 인코딩 블록(107)은 팔레트 테이블(303)을 수신하고 팔레트 테이블(303) 내의 항목들을 인코딩한다. 인덱스 맵 인코딩 블록(109)은 컬러 분류기 블록(105)에 의해 생성된 컬러 인덱스 맵(311)을 인코딩한다. 이 동작들은 아래에 더 상세히 설명된다.
잔차 인코딩 블록(111)은 컬러 분류기 블록(105)에 의해 생성된 각각의 예측 잔차 맵(313)을 인코딩한다. 일부 실시예들에서, 잔차 인코딩 블록(111)은 도 3의 321에 표시된 바와 같이, 적응 고정 길이 또는 가변 길이 잔차 이진화를 수행한다. 멀티플렉싱(MUX) 블록(113)은 문자열/블록 매칭들(319) 및 인코딩된 예측 잔차들(321)을 사용하여 압축된 비트스트림을 생성한다. 일부 실시예들에서, 도 3에 도시된 바와 같이, 컨텍스트 적응 이진 산술 코딩(CABAC) 방법(323)을 사용하여 문자열/블록 매칭들(319) 및 인코딩된 예측 잔차들(321)을 결합할 수 있다.
도 2를 참조하면, 수신기(200)는 전술한 바와 같이 송신기(100)에서 수행된 스크린 콘텐츠 인코딩 프로세스와 유사한 스크린 콘텐츠 디코딩 프로세스를 수행하도록 구성된다. 수신기(200)는 압축된 비디오 비트스트림을 수신한 다음, 디멀티플렉서(201)를 사용하여 비트스트림을 인코딩된 팔레트 테이블, 컬러 인덱스 맵 및 인코딩된 예측 잔차들로 분석한다. 테이블 디코딩 블록(203) 및 팔레트 테이블 생성 블록(209)은 테이블 인코딩 블록(107) 및 팔레트 테이블 생성 블록(103)과는 반대의 프로세스들을 수행하여, 각각의 CU에 대해 완전한 팔레트 테이블을 구성한다. 마찬가지로, 인덱스 맵 디코딩 블록(205) 및 잔차 디코딩 블록(207)은 인덱스 맵 인코딩 블록(109) 및 잔차 인코딩 블록(111)과는 반대의 프로세스들을 수행하여 컬러 인덱스 맵을 재구성한다. 컬러 역분류기(color de-classifier) 블록(211)은 컬러 인덱스 맵과 팔레트 테이블을 결합하여 각각의 위치에서 픽셀 값을 도출함으로써, CTU 또는 CU(213)를 재구성한다.
도 1 및 도 2는 스크린 콘텐츠 인코딩 및 디코딩을 수행하기 위한 송신기(100) 및 수신기(200)의 예를 도시하지만, 도 1 및 도 2에 다양한 변경이 가해질 수 있다. 예를 들어, 도 1 및 도 2의 다양한 구성 요소들은 조합되거나, 추가로 세분되거나, 생략될 수 있으며 특정 요구에 따라 추가 구성 요소들이 추가될 수 있다. 특정 예로서, 다양한 구성 요소들이 하나의 하우징 내에 또는 하나의 회로 보드상에 함께 배열되거나, 단일 프로세서 또는 처리 유닛에 의해 수행될 수 있다.
도출된 팔레트 테이블(303)에 기초하여, 원본 CU(101) 내의 각각의 픽셀은 팔레트 테이블(303) 내의 그것의 컬러 인덱스로 변환될 수 있다. 이 개시의 실시예들은 각각의 CU(101)에 대해 팔레트 테이블(303) 및 컬러 인덱스 맵(311)을 스트림으로 효율적으로 압축하는 방법들을 제공한다(이하에서 설명됨). 수신기 측에서는, 압축된 비트스트림을 분석하여, 각각의 CU(101)에 대해, 완전한 팔레트 테이블(303) 및 컬러 인덱스 맵(311)을 재구성하고, 컬러 인덱스 및 팔레트 테이블을 결합함으로써 각각의 위치에서 픽셀 값을 더 도출할 수 있다.
도 4는 개별적으로 도시되고 패킹된 컬러 성분들을 갖는 CU(401)의 또 다른 예를 도시한다. CU(401)는 CU(101)를 나타낼 수 있다. 도 4에 도시된 바와 같이, CU(401)는 8 픽셀×8 픽셀 CU이다. 물론, CU(401)는 HEVC와의 호환성을 위해 N×N 픽셀들(여기서, N = 8, 16, 32, 64)일 수 있다. CU(401)의 각각의 픽셀은 상이한 샘플링 비율들(예를 들어, 4:4:4, 4:2:2, 4:2:0)로 3개의 컬러 성분을 포함한다. 즉, CU(401)는 개별적인 적색(R) 컬러 성분들(402), 녹색(G) 컬러 성분들(403) 및 청색(B) 컬러 성분들(404)을 포함한다. 다른 실시예들에서, 컬러 성분들은 Y, Cb, Cr 또는 X, Y, Z 또는 또 다른 적절한 성분들의 조합을 포함할 수 있다.
간략화를 위해, 본 개시에서는 4:4:4의 시퀀스들이 사용된다. 4:2:2 및 4:2:0 비디오의 경우, 크로마 업샘플링을 적용하여 4:4:4 시퀀스들을 획득할 수 있거나, 각각의 크로마 성분(402-404)을 독립적으로 처리할 수 있다. 4:0:0 모노크롬 비디오들의 경우, 이들은 다른 2개의 평면이 없는 4:4:4의 개별 평면으로 취급될 수 있다. 4:4:4에 대한 모든 방법들을 직접 적용할 수 있다.
컬러 성분들(402-404)은 패킹 프로세스에서 함께 인터리빙될 수 있고, 그 결과 패킹된 CU(401)가 생성된다. 일 실시예에서, CU(101)가 팩형 모드(packed mode)를 사용하여 처리되는지(따라서 CU(401)가 생성됨) 종래의 평면 모드를 사용하여 처리되는지(즉, G, B, R 또는 Y, U, V 성분들(402-404)이 독립적으로 처리됨)를 지시하기 위해 각각의 CU(101)에 대해 enable_packed_component_flag라 불리는 플래그가 정의된다.
팩형 모드와 평면 모드 양쪽 모두는 장단점을 가질 수 있다. 예를 들어 평면 모드는 G/B/R 또는 Y/U/V에 대한 병렬 컬러 성분 처리를 지원한다. 그러나, 평면 모드는 코딩 효율이 낮을 수 있다. 팩형 모드는 상이한 컬러 성분들 사이에 CU(101)에 대한 헤더 정보(예를 들어 팔레트 테이블(303) 및 컬러 인덱스 맵(311) 등)를 공유할 수 있다. 그러나, 팩형 모드는 다수의 컬러 성분이 동시에 또는 병렬 방식으로 처리되지 못하게 할 수 있다. 현재 CU(101)가 팩형 모드에서 인코딩되어야 하는지를 결정하는 한 가지 간단한 방법은 레이트 왜곡(R-D) 비용을 측정하는 것이다.
enable_packed_component_flag는 인코딩 모드를 디코더에 명시적으로 시그널링하기 위해 사용된다. 하위 레벨 처리를 위해 CU 레벨에서 enable_packed_component_flag를 정의하는 것 외에도, 이 플래그는 특정 응용 요건에 따라서는, 슬라이스 레벨 또는 시퀀스 레벨 처리를 허용하기 위해 슬라이스 헤더 또는 심지어 시퀀스 레벨(예를 들어, 시퀀스 파라미터 세트 또는 픽처 파라미터 세트)에서 복제할 수 있다.
팔레트 테이블 및 인덱스 맵 도출
다음은 도 1의 팔레트 테이블 생성 블록(103) 및 테이블 인코딩 블록(107)에서의 동작들을 설명한다. 각각의 CU(101)에 대해, 픽셀 위치들이 횡단되고 후속 처리를 위한 팔레트 테이블(303) 및 컬러 인덱스 맵(311)이 도출된다. 후속하는 인코딩 프로세스의 효율을 증가시키기 위해, 각각의 별개의 컬러는 그 히스토그램(즉, 발생 빈도), 또는 그의 강도, 또는 어떤 임의의 방법에 따라, 팔레트 테이블(303)에서 정렬된다. 예를 들어, 인코딩 프로세스가 인접한 픽셀들 간의 차이를 코딩하기 위해 DPCM(differential pulse code modulation) 방법을 사용한다면, 인접한 픽셀들에 팔레트 테이블(303)의 인접한 컬러 인덱스가 할당될 경우 최적의 코딩 결과가 얻어질 수 있다.
이제 주요 컬러들을 효율적으로 결정하고 에러를 감소시키는 데 사용될 수 있는 새로운 해시 기반 팔레트 테이블 도출에 대해 설명한다. 각각의 CU(101)에 대해, 팔레트 테이블 생성 블록(103)은 CU(101)의 각각의 픽셀의 컬러 값을 검사하고 내림차순으로 각각의 컬러의 발생 빈도에 따라 3개의 컬러 성분을 함께, 즉, 패킹된 G, B, R 또는 패킹된 Y, Cb, Cr을 이용하여 컬러 히스토그램을 생성한다. 각각의 24 비트 컬러를 표현하기 위해, G 및 B 컬러 성분들(또는 Y 및 Cb 컬러 성분들)은 그에 따라 비트 시프트될 수 있다. 즉, 각각의 패킹된 컬러는 (G<<16)+(B<<8)+(R) 또는 (Y<<16)+(Cb<<8)+(Cr)의 값에 따라 표현될 수 있으며, 여기서 <<x는 좌측 비트 시프트 연산이다. 히스토그램은 내림차순으로 컬러 발생 빈도에 따라 정렬된다.
손실 코딩에 대해, 팔레트 테이블 생성 블록(103)은 그 후 더 콤팩트한 팔레트 테이블 표현을 얻기 위해 히스토그램-정렬된 컬러 데이터에 대해 해시-기반 이웃 컬러 그룹화 프로세스를 적용한다. 각각의 컬러 성분에 대해, (양자화 파라미터(QP)에 따라) 최하위 X개 비트가 클리어되고 해시 함수 (G>>X<<(16+X))|(B>>X<<(8+X))|(R>>X<<X) 또는 (Y>>X<<(16+X))|(Cb>>X<<(8+X))|(Cr>>X<<X)를 이용하여 대응하는 해시 표현이 생성되고, 여기서 >>x는 우측 비트 시프트 연산이고, X는 QP에 기초하여 결정된다. 동일한 해시 값을 갖는 컬러들을 빠르게 탐색하기 위해 해시 테이블 또는 대안적으로 이진 탐색 트리(BST) 데이터 구조가 이용된다. 임의의 2개의 해시 값에 대해, 그들의 거리는 대응하는 컬러 성분들의 최대 절대 차이로서 정의된다.
이웃 컬러 그룹화 동안, 팔레트 테이블 생성 블록(103)은, N개의 컬러가 처리될 때까지, 발생 빈도의 내림차순으로 패킹된 컬러들을 처리한다. 현재 CU의 컬러 수가 N보다 작으면, 현재 CU의 모든 컬러가 처리된다. N은 미리 결정된 최대 컬러 수(max_num_of_colors)에 의해 제한된다. 일부 실시예들에서, max_num_of_colors = 128, 즉 N <= 128이다. 해시 기반 컬러 그룹화 후에, N개의 선택된 컬러들(또는 현재 CU의 컬러 수가 N보다 작은 경우에 모든 컬러)이 그 후 각각의 패킹된 컬러의 값에 기초하여 오름차순으로 컬러들을 정렬하는 것에 의해 재정렬된다. 결과는 도 3에 도시된 팔레트 테이블(303)과 같은 팔레트 테이블이다. 팔레트 테이블(303)은 4개의 컬러(즉, N = 4)의 크기를 갖는다. 많은 실시예들에서, N > 4이다. 그러나, 설명의 편의상, N은 도 3에서 4로서 선택된다.
CU(101)에서 표현된 컬러 수가 팔레트 테이블(303)의 컬러 수 N보다 클 때, 덜 빈번하게 발생하는 컬러들은 팔레트 테이블(303) 외부의 나머지들로서 배열된다. 예를 들어, 컬러 값들 49, 53, 50 및 51은 팔레트 테이블(303)의 일부인 반면, 컬러 값들 48, 52, 47, 54, 55 및 56은 팔레트 테이블(303) 외부의 나머지 컬러들(305)이다.
팔레트 테이블 생성 블록(103)에 의해 수행되는 팔레트 테이블(303)의 도출은 다음의 의사 코드에 의해 기술될 수 있다.
(의사 코드):
Figure 112017002800226-pct00001
Figure 112017002800226-pct00002
상기 의사 코드에서, ComputeHash(C, QP)는 해시 값을 생성하기 위해 해시 함수 (G>>X<<(16+X))|(B>>X<<(8+X))|(R>>X<<X) 또는 (Y>>X<<(16+X))|(Cb>>X<<(8+X))|(Cr>>X<<X)를 적용하고, 여기서 X는 QP에 의존한다. Dist(hash1, hash2)는 hash1과 hash2에서 대응하는 컬러 성분들의 최대 절대 차이를 획득한다. 여기서, 그 해시 값들에 기초하여 특정 조건을 만족시키는 컬러들을 신속하게 찾기 위해 해시 테이블 데이터 및 이진 탐색 트리 구조들이 이용된다.
상기한 바와 같이, 도출된 팔레트 테이블(303)에 기초하여, 컬러 분류기 블록(105)은 CU(101)를 사용하여 컬러 인덱스 맵(311) 및 하나 이상의 예측 잔차 맵(313)에 CU(101)의 컬러들 또는 픽셀 값들을 할당한다. 즉, 컬러 분류기 블록(105)은 팔레트 테이블(303) 내의 각각의 컬러를 팔레트 테이블(303) 내의 컬러 인덱스에 할당한다. 예를 들어, 도 3의 307에 나타낸 바와 같이, 컬러 49에는 컬러 인덱스 0(ColorIdx = 0)이 할당되고, 컬러 53에는 컬러 인덱스 1이 할당되고, 컬러 50에는 컬러 인덱스 2가 할당되고, 컬러 51에는 컬러 인덱스 3(ColorIdx = 3)이 할당된다. 일단 팔레트 테이블(303) 내의 컬러들에 인덱스가 할당되면, 각각의 컬러의 인덱스들을 사용하여 CU(101)로부터 컬러 인덱스 맵(311)이 생성될 수 있다. 컬러 인덱스 맵(311)의 처리는 이하에서 더 상세하게 설명된다. 마찬가지로, 309에 나타낸 바와 같이, 팔레트 테이블(303) 외부의 각각의 나머지 컬러(305)에 예측 잔차 값이 할당된다. 나머지 컬러들(305)에 예측 잔차 값이 할당되면, CU(101)로부터 예측 잔차 맵(313)이 생성될 수 있다.
평면 CU의 경우, 각각의 컬러 성분은 colorTable_Y, colorTable_U, colorTable_V 또는 colorTable_R, colorTable_G, colorTable_B와 같은 그 자신의 개별 팔레트 테이블을 가질 수 있다. 일부 실시예들에서, YUV의 Y 또는 GBR의 G와 같은 주성분에 대한 팔레트 테이블이 도출될 수 있으며, 이 테이블은 모든 성분에 대해 공유될 수 있다. 일반적으로, 공유 Y 또는 G 팔레트 테이블을 사용함으로써, Y 또는 G 이외의 컬러 성분들은 공유 팔레트 테이블에 있는 것들로부터 원래 픽셀 컬러들에 대해 약간의 미스매칭을 가질 것이다. 그러면 이러한 미스매칭된 잔차들을 인코딩하기 위해 잔차 엔진(예를 들어 HEVC 계수 코딩 방법)이 적용될 수 있다. 다른 실시예들에서, 패킹된 CU에 대해, 단일의 팔레트 테이블이 모든 성분들 사이에 공유될 수 있다.
다음의 의사 코드는 팔레트 테이블 및 인덱스 맵 도출을 예시한다.
(의사 코드):
Figure 112017002800226-pct00003
Figure 112017002800226-pct00004
팔레트 테이블 처리
각각의 CU(101)에 대해, 송신기(100)는 현재 CU(101)로부터 팔레트 테이블(303)을 도출할 수 있거나(명시적 팔레트 테이블 캐리지라고 함), 송신기(100)는 현재 CU(101)의 좌측 또는 상부 이웃으로부터 팔레트 테이블(303)을 도출할 수 있다(암시적 팔레트 테이블 캐리지라고 함). 테이블 인코딩 블록(107)은 팔레트 테이블(303)을 수신하고 팔레트 테이블(303) 내의 항목들을 인코딩한다.
팔레트 테이블 처리는 팔레트 테이블(303)의 크기(즉, 별개의 컬러들의 총수) 및 각각의 컬러 자체의 인코딩을 수반한다. 비트들의 대부분은 팔레트 테이블(303) 내의 각각의 컬러의 인코딩에 의해 소비된다. 따라서, 컬러 인코딩(즉, 팔레트 테이블(303)의 각각의 항목의 인코딩)에 집중할 것이다.
팔레트 테이블의 컬러들을 인코딩하는 가장 간단한 방법은 각각의 컬러가 독립적으로 코딩되는 펄스 코드 변조(PCM) 스타일 알고리즘을 사용하는 것이다. 대안적으로, 연속 컬러에 대한 가장 가까운 예측이 적용될 수 있고, 그 후 디폴트 컬러 강도보다는 예측 델타가 인코딩될 수 있는데, 이는 소위 DPCM(차분 PCM) 스타일이다. 두 방법 모두는 나중에 복잡도 비용과 코딩 효율 간의 절충(trade-off)에 따라, 균등 확률 모델 또는 적응 컨텍스트 모델을 이용하여 엔트로피 인코딩될 수 있다.
본 개시의 실시예들은 현재 CU(예를 들어, CU(101))가 그 좌측 CU 이웃 또는 그 상부 CU 이웃과 관련된 팔레트 테이블을 사용하는지를 나타내기 위해 color_table_merge_flag가 정의되는, 인접 팔레트 테이블 병합(Neighboring Palette Table Merge)이라고 불리는, 또 다른 진보된 방식을 제공한다. 그렇지 않은 경우, 현재 CU는 팔레트 테이블 시그널링을 명시적으로 전송한다. 이 프로세스는 인접 팔레트 테이블 공유라고도 불릴 수 있다. 이 병합 프로세스에서, color_table_merge_direction 플래그는 병합 방향을 나타내고, 이는 상부 CU로부터 또는 좌측 CU로부터 중 어느 하나이다. 물론, 병합 방향 후보들은 상부 CU 또는 좌측 CU 이외의 방향들(예를 들어, 상부-좌측, 상부-우측 등)일 수 있다. 그러나, 상부 CU 및 좌측 CU는 개념을 예시하기 위해 본 개시에서 사용된다. 현재 CU의 각각의 픽셀은 좌측 CU 또는 상부 CU와 관련된 기존 팔레트 테이블의 항목들과 비교되며 위에 제시된 deriveIdxMap() 의사 코드를 통해 최소 예측 차이(즉, 픽셀이 팔레트 테이블에서 가장 가까운 컬러를 뺀다)를 야기하는 인덱스가 할당된다. 예측 차이가 0이 아닌 경우, 모든 잔차는 HEVC 범위 확장(RExt) 잔차 엔진을 사용하여 인코딩된다. 테이블 병합 프로세스의 사용 여부의 결정은 R-D 비용에 의해 결정될 수 있다.
컬러 테이블이 비트스트림에서 명시적으로 운반될 때, 그것은 각각의 컬러 성분에 대해 순차적으로 코딩될 수 있다. 3개의 컬러 성분 모두에 대해 순차적으로 각각의 항목을 코딩하기 위해 인터-테이블 팔레트 스터핑 또는 인트라-테이블컬러 DPCM이 아래에 설명된 바와 같이 적용된다.
인터-테이블 팔레트 스터핑(INTER-TABLE PALETTE STUFFING)
팔레트 테이블 공유 방법이 사용되지 않는 경우에도, 팔레트 테이블(303)과 팔레트 예측자 간에 공통인 컬러가 여전히 존재할 수 있다. 따라서, 항목 단위로 인터-테이블 팔레트 스터핑 기법을 적용하면 코딩 효율을 더욱 개선할 수 있다. 여기서, 팔레트 예측자는 좌측 이웃 CU 또는 상부 이웃 CU와 같은 이웃 블록으로부터 도출된다. 도 5a는 본 개시에 따른 인터-테이블 팔레트 스터핑 기법과 함께 사용될 수 있는 팔레트 예측자(551) 및 현재 팔레트 테이블(553)을 도시한다. 현재 팔레트 테이블(553)은 도 3의 팔레트 테이블(303)을 나타낼 수 있다. 팔레트 예측자(551)는 현재 CU의 좌측 이웃 CU로부터 구성될 수 있다. 디코더 측에서, 팔레트는 참조 이웃들로부터 팔레트 예측자(551)에 따라 적절하게 업데이트된다. 일부 실시예들에서, 팔레트 예측자는 재구성된 이웃 CU 또는 코딩 트리 단위(CTU)로부터 또는 슬라이스 또는 시퀀스 레벨에서 글로벌 테이블로부터 추론될 수 있다. 본 기술분야에 공지된 바와 같이, 슬라이스는 픽처 내의 다수의 CU를 포함한다. 픽처는 하나 또는 다수의 슬라이스를 포함할 수 있다. 시퀀스는 다수의 슬라이스를 포함한다.
c(i) 및 r(j)가 현재 팔레트 테이블(553)에서의 i번째 항목 및 팔레트 예측자(551)에서의 j번째 항목을 각각 나타낸다고 하자. 다시, 각각의 항목은 3개의 컬러 성분(GBR, YCbCr, 또는 다른 유사한 것)을 포함한다는 것에 주목한다. 현재 테이블(553)에서 각각의 컬러 항목 c(i), i<=N에 대해, 테이블 인코딩 블록(107)은 팔레트 예측자(551)로부터 동일한 매칭 r(j)를 찾는다. 시그널링 c(i) 대신, j가 예측적으로 인코딩된다. 예측자는 이전에 재구성된 j보다 크고 r(k)[0] >= c(i-1)[0]을 만족시키는 가장 작은 인덱스 k로 결정된다. 예측 차이 (j-k)는 비트스트림에서 시그널링된다. 차이 (j-k)는 음이 아니므로, 부호 비트를 필요로 하지 않는다.
본 기술분야에 공지된 바와 같이, 컨텍스트 적응 모델 또는 바이패스 모델 중 어느 하나가 (j-k)를 인코딩하는 데 사용될 수 있음에 주목한다. 일반적으로, 컨텍스트 적응 모델은 고효율을 목적으로 사용되는 반면, 바이패스 모델은 높은 처리량 및 낮은 복잡도 요건에 대해 사용된다. 본 개시의 일부 실시예들에서, 동적 절단 단항 이진화 방식(dynamic truncated unary binarization scheme)을 사용하여 인덱스 예측 차이 (j-k)를 인코딩하기 위해 2개의 컨텍스트 적응 모델이 사용될 수 있다.
인트라-테이블 컬러 DPCM
현재 팔레트 테이블(553)의 i번째 항목에 대한 팔레트 예측자(551)에서 매칭이 발견되지 않으면, 이전 항목((i-1)번째 항목)으로부터 i번째 항목의 값을 빼고 절대 차이 (|d(i)|)를 각각의 성분에 대한 컬러 DPCM을 사용하여 인코딩한다. 일반적으로, 절대 예측 차이에 대한 더 적은 비트 및 부호 비트가 생성되어 인트라-테이블 컬러 DPCM을 사용하여 인코딩될 것이다. 본 기술분야에 공지된 바와 같이, 컨텍스트 적응 모델 또는 바이패스 모델 중 어느 하나를 사용하여 절대 예측 차이 및 관련 부호 비트를 인코딩할 수 있다. 또한, 부호 비트는 일부 경우 숨겨지거나 코딩되지 않을 수 있다. 예를 들어, 현재 팔레트 테이블(553)이 이미 오름차순으로 정렬되어 있다고 가정하면, Y(또는 G) 성분 차이는 부호 비트를 전혀 필요로 하지 않는다. 마찬가지로, 대응하는 Y(또는 G) 차이가 0인 경우 Cb(또는 B) 성분 부호 비트를 필요로 하지 않는다. 또한, Y(또는 G)와 Cb(또는 B) 차이 양쪽 모두가 0인 경우 Cr(또는 R) 성분 차이는 부호 비트를 필요로 하지 않는다. 또 다른 예로서, 절대 차이가 0이면 부호 비트가 숨겨질 수 있다. 또 다른 예로서, 다음의 경계 조건이 충족되면 부호 비트가 숨겨질 수 있다: c[i-1] - |d(i)| < 0 또는 c[i-1] + |d(i)| > 255.
현재 테이블(553)의 제1 항목 c(0)에 대해, 인터-테이블 팔레트 스터핑 기법이 사용되지 않으면, c(0)의 각각의 성분은 고정된 8 비트 바이패스 컨텍스트 모델을 사용하여 인코딩될 수 있다. 부가적으로 또는 대안적으로, 이것은 성능을 더욱 개선하기 위해 적응 컨텍스트 모델을 사용하여 인코딩될 수 있다.
인터-테이블 팔레트 스터핑 및 인트라-테이블 컬러 DPCM 기법들을 더 잘 설명하기 위해, 이제 현재 팔레트 테이블(553)에서 데이터를 사용하는 예에 대해 설명한다.
현재 팔레트 테이블(553)의 제1 항목 c(0), 즉(G, B, R) = (0, 0, 192)부터 시작하여, c(0)는 팔레트 예측자(551)에 매칭이 없으며, 따라서 c(0)는 독립적으로 인코딩된다는 것을 알 수 있다. 현재 팔레트 테이블(553)의 제2 항목 c(1)((G, B, R) = (0, 0, 240))도 팔레트 예측자(551)에 매칭이 없다. 제1 항목 c(0)가 이미 코딩되었다고 가정하면, c(1)와 c(0) 간의 예측 차이만이 비트스트림에서 운반되어야 하고, 즉, (0, 0, 240) - (0, 0, 192) = (0, 0, 48)이다. 현재 테이블(553)의 제3 항목 c(2)에 대해서는, 정확이 매칭이 j = 1에서 팔레트 예측자(551)에서 식별된다. 이전에 코딩된 컬러 항목을 사용하는 예측 인덱스는 0이며, 따라서, (1-0) = 1만이 인코딩될 필요가 있다. 이러한 코딩 기법들은 현재 테이블(553)의 최종 항목(즉, 도 5a에서 idx = 12)이 인코딩될 때까지 적용된다. 표 1은 이용 가능한 팔레트 예측자(551)를 사용하여 현재 테이블(553)상에서 인터-테이블 공유 및 인트라-테이블 DPCM을 적용하는 방법에 대한 단계별 설명을 제공한다.
Figure 112017002800226-pct00005
컬러 테이블의 명시적인 코딩은 다음의 의사 코드에 요약되며, 여기서 N 및 M은 각각 현재 및 참조 컬러 테이블의 항목 수이다.
(의사 코드):
Figure 112017002800226-pct00006
Figure 112017002800226-pct00007
컬러 테이블의 명시적인 디코딩은 다음의 의사 코드에 요약되어 있다.
(의사 코드):
Figure 112017002800226-pct00008
현재 CU를 코딩할 때 병합 프로세스에서 사용하기 위한 이웃 팔레트 테이블들을 생성하는 수 개의 방법이 존재한다. 구현에 따라, 방법들 중 하나(설명의 편의상 방법 A라고 함)는 인코더와 디코더 모두에서 업데이트를 요구한다. 또 다른 방법(방법 B라고 함)은 인코더 측만의 프로세스이다. 이제 두 방법 모두에 대해 설명한다.
방법 A: 이 방법에서, 이웃 CU들의 팔레트 테이블들은 CU 깊이, 크기 등에 관계없이 이용 가능한 재구성된 픽셀들 상에 생성된다. 각각의 CU에 대해, 재구성들은 동일한 크기 및 동일한 깊이에서 그의 이웃 CU들에 대해 검색된다(이 경우 컬러 유사성이 더 높을 것이라고 가정하여).
도 5b는 본 개시에 따른 방법 A를 사용하는 팔레트 테이블 재생성의 예를 도시한다. 도 5b에 도시된 바와 같이, 현재 CU(501)는 깊이(depth) = 2인 16×16 블록이다. 현재 CU(501)의 이웃 CU들은 상부 CU(502) 및 좌측 CU(503)를 포함한다. 상부 CU(502)는 깊이 = 1인 32×32 블록이다. 상부 CU(502)는 16×16 상부 블록(504)을 포함한다. 좌측 CU(503)는 깊이 = 3인 8×8 블록이고, 16×16 블록(505)의 일부이다. 방법 A를 사용하여, 그의 이웃 CU들(예를 들어, 8×8 좌측 CU(503) 또는 32×32 상부 CU(502))의 분할에 관계없이, 픽셀 오프셋(=16)은 현재 CU(501)의 원점으로부터 좌측 16×16 블록(505)을 처리하기 위해 좌측 방향에 위치할 것이고 상부 16×16 블록(504)을 처리하기 위해 상부 방향에 위치할 것이다. 인코더와 디코더 양쪽 모두가 이 오프셋을 유지한다.
방법 B: 이 방법에서, 병합 프로세스는 현재 CU가 그의 상부 CU 이웃 및/또는 그의 좌측 CU 이웃과 동일한 크기 및 깊이를 공유할 때 발생한다. 사용 가능한 이웃들의 팔레트 테이블은 후속 연산들을 위해 현재 CU의 컬러 인덱스 맵을 도출하는 데 사용된다. 예를 들어, 현재의 16×16 CU의 경우, 그의 이웃 CU(즉, 상부 이웃 또는 좌측 이웃)가 팔레트 테이블 및 인덱스 방법을 사용하여 인코딩되는 경우, 이웃 CU의 팔레트 테이블은 현재 CU가 R-D 비용을 도출하는 데 이용된다. 이 병합 비용은 현재 CU가 그의 팔레트 테이블을 명시적으로 도출하는 경우(뿐만 아니라 HEVC 또는 HEVC RExt에 존재할 수 있는 다른 종래의 모드들)와 비교된다. 어느 경우이든 최저 R-D 비용을 생성하는 것이 출력 비트스트림에 기록될 모드로서 선택된다. 방법 B에서는, 다른 상이한 잠재적인 모드들을 시뮬레이션하기 위해 인코더만이 요구된다. 디코더에서, color_table_merge_flag 및 color_table_merge_direction 플래그는 디코더에 의한 추가적인 처리를 요구하지 않고 병합 결정 및 병합 방향을 표시한다.
예측자 팔레트
복잡도를 더 줄이기 위해, 이전에 코딩된 팔레트 테이블 또는 결국 이전에 코딩된 팔레트 테이블로부터 유래하는 또 다른 예측자 팔레트로부터 유래하는 컬러들을 캐시하기 위해 예측자 팔레트가 사용된다. 일 실시예에서, 예측자 팔레트의 항목들은 현재 CU의 좌측 또는 상부 CU의 예측자 팔레트 또는 코딩된 팔레트 테이블로부터 유래한다. CU가 컬러 팔레트로 인코딩된 후, 이 CU 크기가 예측자 팔레트와 관련된 CU 크기 이상이고 현재 팔레트가 예측자 팔레트와 상이한 경우 예측자 팔레트가 업데이트된다. 현재 CU가 팔레트 모드를 사용하여 인코딩되지 않는 경우, 예측자 팔레트에는 변경이 없다. 이것은 예측자 팔레트 전파라고도 한다. 이 예측자 팔레트는 각각의 픽처 또는 슬라이스 또는 각각의 CU 행의 시작에서 리셋될 수 있다.
예측자 팔레트를 구성하기 위해 다수의 방법이 이용 가능하다. 제1 방법에서, 각각의 CU 인코딩에 대해, 예측자 팔레트는 그의 좌측 CU 또는 상부 CU의 예측자 팔레트로부터 구성된다. 이 방법에서는, 각각의 CU에 대해 하나의 예측자 팔레트 테이블이 저장된다.
제2 방법은 상부 CU와 관련된, 예측자 팔레트 테이블 대신에, 팔레트 테이블이 예측 프로세스에서 사용된다는 점에서 제1 방법과 상이하다.
컬러 인덱스 맵 처리/코딩
인덱스 맵 인코딩 블록(109)는 컬러 분류기 블록(105)에 의해 생성된 컬러 인덱스 맵(311)을 인코딩한다. 컬러 인덱스 맵(311)을 인코딩하기 위해, 인덱스 맵 인코딩 블록(109)은 적어도 하나의 스캐닝 동작(수평(315) 또는 수직(317))을 수행하여 2차원(2D) 컬러 인덱스 맵(311)을 1차원(1D) 문자열로 변환한다. 그 후 인덱스 맵 인코딩 블록(109)은 문자열 탐색 알고리즘(후술됨)을 수행하여 복수의 매칭을 생성한다. 일부 실시예들에서, 인덱스 맵 인코딩 블록(109)은 별도의 수평 및 수직 스캐닝 동작들을 수행하고 문자열 탐색 알고리즘을 수행하여 어느 것이 더 나은 결과를 제공하는지를 결정한다. 도 6은 수평 및 수직 스캐닝 동작들의 예를 도시한다. 도 6에는, 예시적인 2D 컬러 인덱스 맵(601)이 도시되어 있다. 컬러 인덱스 맵(601)은 도 3의 컬러 인덱스 맵(311)을 나타낼 수 있다. 컬러 인덱스 맵(601)은 64×64 맵이지만, 다른 크기의 컬러 인덱스 맵이 가능하다. 도 6에 도시된 바와 같이, 컬러 인덱스 맵(601)에 대해 수평 스캐닝(또는 탐색)(602) 또는 수직 스캐닝(또는 탐색)(603)이 수행될 수 있다.
본 개시의 실시예들은 컬러 인덱스 맵(311)을 인코딩하기 위해 1D 문자열 매칭 기법 및 2D 변형을 제공한다. 각각의 위치에서, 인코딩 기법은 매칭된 포인트를 발견하고 1D 문자열 매칭에 대한 매칭된 거리 및 길이를 기록하거나, 2D 문자열 매칭에 대한 매칭의 폭 및 높이를 기록한다. 매칭되지 않은 위치의 경우, 그의 인덱스 강도, 또는 대안적으로, 그의 인덱스 강도와 예측된 인덱스 강도 간의 델타 값을 직접 인코딩할 수 있다.
간단한 1D 탐색 방법이 컬러 인덱스 맵(601)에 대해 수행될 수 있다. 예를 들어, 도 7은 컬러 인덱스 맵(601)의 제1 인덱스 위치로부터 수평 스캐닝을 사용하여 1D 탐색한 후의 1D 컬러 인덱스 벡터(700)의 일부를 도시한다. 그 후 1D 컬러 인덱스 벡터(700)에 문자열 탐색이 적용된다. 컬러 인덱스 벡터(700)의 제1 위치(701)(도 7에 도시된 바와 같이 '14'임)를 보면, 아직 버퍼링된 참조가 없기 때문에, 제1 위치(701)는 "매칭되지 않은 쌍"으로서 취급된다. 매칭되지 않은 쌍에는 그의 대응하는 거리와 길이에 -1 및 1 값이 할당되고, (dist, len) = (-1, 1)로 표시된다. 제2 위치(702)는 또 다른 '14'이다. 제2 위치(702)는 참조로서 코딩된 제1 인덱스이다. 따라서 매칭된 쌍의 거리, dist = 1이다. 제3 위치(703)에 또 다른 '14'가 있기 때문에, 매칭된 쌍의 길이는 2, 즉 len = 2이다. 제4 위치(704)로 이동하면, 전에는 보지 못했던 '17'의 값에 마주친다. 따라서, 제4 위치(704)는 또 다른 매칭되지 않은 쌍, 즉 (dist, len) = (-1, 1)로서 인코딩된다. 각각의 매칭되지 않은 쌍에 대해, 현재 인덱스에 대해 매칭된 인덱스가 없음을 시그널링하도록 매칭된/매칭되지 않은 플래그를 인코딩하고, 이 플래그 다음에 인덱스의 실제 값이 온다(예를 들어, '14', '17', '6' 등의 첫 번째 출현). 각각의 매칭된 쌍에 대해, 매칭된 인덱스 문자열이 발견되었음을 시그널링하도록 매칭된/매칭되지 않은 플래그를 인코딩하고, 이 플래그 다음에 매칭된 문자열의 길이가 온다.
다음은 도 7에 도시된 1D 컬러 인덱스 벡터(700)의 부분을 사용하는 인코딩 기법에 대한 결과 세트이다.
dist = -1, len = 1, idx=14 (매칭되지 않음)
dist = 1, len = 2 (매칭됨)
dist = -1, len = 1, idx=17 (매칭되지 않음)
dist = 1, len = 3 (매칭됨)
dist = -1, len = 1, idx= 6 (매칭되지 않음)
dist = 1, len = 25 (매칭됨)
dist = 30, len = 4 (매칭됨) /*전에 나타난 "17"에 대해*/
....
다음의 의사 코드는 이 매칭된 쌍 도출에 대해 주어진다.
(의사 코드):
Figure 112017002800226-pct00009
Figure 112017002800226-pct00010
단순화된 컬러 인덱스 맵 코딩
일부 실시예들에서, 다음 동작들은 1D 방식으로 컬러 인덱스 맵 처리를 위한 단순화된 방법으로서 수행될 수 있다. 전술한 바와 같이, 컬러 인덱스 맵(601)은 매칭된 또는 매칭되지 않는 쌍들로 표현될 수 있다. 매칭된 쌍들의 경우, 그룹 인덱스들의 매칭된 거리와 길이의 쌍이 수신기에 시그널링된다.
코딩 단위가 단지 몇 개의 컬러만을 포함하는 다수의 상당히 눈에 띄는 시나리오들이 있다. 이로 인해 하나 이상의 큰 연속 또는 인접한 섹션들이 동일한 인덱스 값을 가질 수 있다. 그러한 경우, (거리, 길이) 쌍을 시그널링하는 것은 필요한 것보다 더 많은 오버헤드를 유발할 수 있다. 이 문제를 해결하기 위해, 아래에 설명된 단순화된 컬러 인덱스 맵 처리 방법은 컬러 인덱스 맵을 코딩하는데 소비되는 비트의 수를 더 감소시킨다.
1D 인덱스 맵 코딩 솔루션에서와 같이, "거리(distance)"의 개념은 유의미 거리(significant distance)와 정상 거리(normal distance)의 2개의 주요 카테고리로 분리될 수 있다. 정상 거리는 컨텍스트를 사용하여 인코딩된다. 그 후, 관련 길이들이 순차적으로 인코딩된다.
이 방법의 실시예들은 유의미 거리를 사용한다. 이 방법에는 두 가지 유형의 유의미 거리가 있다. 하나는 distance = blockWidth이다. 다른 하나는 distance = 1이다. 이 두 가지 유형의 유의미 거리는 distance = 1 및 distance = blockWidth가 전체적인 거리 분포의 가장 유의미한 백분율과 관련된다는 관찰을 반영한다. 이제 이 두 가지 유형의 유의미 거리가 예시로서 설명될 것이다.
distance = blockWidth를 사용하는 코딩 방법은 또한 CopyAbove 코딩으로 지칭된다. CopyAbove 코딩 방법을 설명하기 위해, 도 6의 64×64 컬러 인덱스 맵(601)이 다시 고려된다. 컬러 인덱스 맵(601)은 blockWidth = 64를 갖는다. 64×64 컬러 인덱스 맵(601) 내에 파선으로 표시된 2개의 인덱스 문자열(611-612)이 있다. 문자열(612)의 인덱스 값들은 바로 상부에 있는 문자열(611)의 대응하는 인덱스 값들과 동일하다. 문자열(612)의 인덱스 값들은 문자열(611)의 인덱스 값들과 동일하기 때문에, 문자열(612)의 인덱스 값들은 문자열(611)의 인덱스 값들을 참조하여 인코딩될 수 있다. 컬러 인덱스 맵(601)을 (도 7의 1D 컬러 인덱스 벡터(700)에 도시된 것과 같은) 수평 스캐닝을 사용하여 1D 컬러 인덱스 벡터로 변환할 때, 문자열들(611-612)에서 대응하는 인덱스 값들 사이의 1D 컬러 인덱스 벡터를 따르는 "거리"는 64와 동일하고, 이는 컬러 인덱스 맵(601)의 블록 폭이다. 예를 들어, 컬러 인덱스 맵(601)을 64×64 = 4096개의 요소를 갖는 1D 컬러 인덱스 벡터로 변환할 때, 문자열(611) 내의 제1 값인 인덱스 값 '6'과 문자열(612) 내의 제1 값인 인덱스 값 '6' 사이의 벡터를 따르는 거리는 64이다. 각각의 문자열(611-612)은 27개의 인덱스 값을 포함하기 때문에, 매칭된 문자열들(611-612)의 길이는 27이다. 따라서, 문자열(612)은 CopyAbove 코딩 방법 및 27개의 인덱스 값의 길이를 표시함으로써 간단하게 코딩될 수 있다.
distance = 1을 사용하는 코딩 방법은 또한 IndexMode 코딩 또는 CopyLeft 코딩으로 지칭된다. IndexMode 코딩을 설명하기 위해, 컬러 인덱스 맵(601) 내의 인덱스 문자열(613)을 고려한다. 문자열(613)은 제1 인덱스 값 '14'와 이어서 51개의 후속 인덱스 값 '14'를 포함한다. 문자열(613) 내의 인덱스 값들 각각이 동일하기 때문에, 제1 '14' 다음의 문자열(613)의 51개의 인덱스 값은 distance = 1을 사용하여 함께 코딩될 수 있다(이것은 현재 인덱스 값의 좌측으로 1의 거리인 인덱스 값이 동일한 값을 가짐을 나타낸다). 매칭된 문자열(613)의 길이는 51이다. 따라서, 문자열(613)은 IndexMode 코딩 방법 및 51개의 인덱스 값의 길이를 표시함으로써 간단하게 코딩될 수 있다.
전술한 바와 같이, 이 단순화된 컬러 인덱스 맵 코딩의 방법에 있어서, 코딩에 사용되는 거리는 유의미한 위치들로만 제한될 수 있다; 즉, 이들 실시예에 대한 거리는 단지 1 또는 blockWidth(블록 폭)로 제한될 수 있다. 오버헤드를 추가로 줄이기 위해, 매칭된 인덱스의 길이를 코딩 단위 폭으로 제한할 수도 있다. 이 정의를 사용하여, 길이 및 거리의 오버헤드(블록 폭으로 추론됨)를 전송하지 않고 거리 및 길이 쌍을 2개의 이진 플래그(즉, 2개의 빈)만 사용하여 시그널링할 수 있다. 예를 들어, 제1 플래그는 코딩이 유의미 거리를 사용하는지 또는 유의미 거리를 사용하지 않는지를 표시할 수 있다. 제1 플래그가 코딩이 유의미 거리를 사용한다고 표시하면, 제2 플래그는 유의미 거리가 1인지(즉, IndexMode) 또는 blockWidth인지(즉, CopyAbove)를 표시할 수 있다. 매칭된 문자열은 코딩 단위로 한 라인씩(또는 한 행씩) 발생하기 때문에, distance = 1 또는 distance = blockWidth에 의해 매칭되지 않은 라인 내의 임의의 인덱스들은 매칭되지 않은 인덱스들로 취급된다. 이러한 매칭되지 않은 인덱스들은 개별적으로 하나씩 코딩된다. 이러한 매칭되지 않은 인덱스들의 경우, 전술한 예측 방법들을 사용하여 효율을 개선할 수 있다.
디코더는 전술한 CopyAbove 코딩 및 IndexMode 코딩 기법들과 유사한 디코딩 동작들을 수행할 수 있다. 예를 들어, 디코더는 제2 플래그를 수신할 수 있고, 제2 플래그의 값에 기초하여, 디코더는 CopyAbove 또는 IndexMode 디코딩 기법에 따라 디코딩할 것을 안다.
전술한 1D 문자열 매칭 기법의 2D 변형도 또한 사용될 수 있다. 2D 매칭 기법은 다음의 단계들을 포함한다:
단계 1: 현재 픽셀 및 참조 픽셀의 위치가 시작점으로 식별된다.
단계 2: 현재 픽셀 및 참조 픽셀의 우측 방향으로 수평 1D 문자열 탐색이 적용된다. 최대 탐색 길이는 현재 수평 행의 끝에 의해 제한된다. 최대 탐색 길이는 right_width로 기록될 수 있다.
단계 3: 수평 1D 문자열 탐색이 현재 픽셀 및 참조 픽셀의 좌측 방향에 적용된다. 최대 탐색 길이는 현재 수평 행의 시작에 의해 제한되며, 이전 2D 매칭의 right_width에 의해 제한될 수도 있다. 최대 탐색 길이는 left_width로 기록될 수 있다.
단계 4: 현재 픽셀 및 참조 픽셀 아래의 픽셀들을 새로운 현재 픽셀 및 참조 픽셀로서 사용하여, 다음 행에서 동일한 1D 문자열 탐색이 수행된다.
단계 5: right_width == left_width == 0일 때 중지한다.
단계 6: 각각의 height[n] = {1, 2, 3...}에 대해, width[n]의 대응하는 어레이(예를 들어, {left_width[1], right_width[1]}, {left_width[2], right_width[2]}, {left_width[3], right_width[3]}...)가 존재한다.
단계 7: 새로운 min_width 어레이가 각각의 height[n]에 대해 {{lwidth[1], rwidth[1]}, {lwidth[2], rwidth[2]}, {lwidth[3], rwidth[3]}...}으로 정의되며, 여기서 lwidth[n] = min(left_width[1:n-1])이고, rwidth[n] = min(right_width[1:n-1])이다.
단계 8: 크기 어레이{size[1], size[2], size[3]…}가 또한 정의되며, 여기서 size[n] = height[n] × (lwidth[n]+hwidth[n])이다.
단계 9: size[n]이 크기 어레이에서 최대 값을 보유한다고 가정하여, 대응하는 {lwidth[n], rwidth[n], height[n]]}을 사용하여 2D 문자열 매칭의 폭 및 높이가 선택된다.
1D 또는 2D 탐색의 속도를 최적화하는 한 가지 기술은 러닝 해시(running hash)를 이용하는 것이다. 일부 실시예들에서, 4-픽셀 러닝 해시 구조가 사용될 수 있다. 수평 방향의 모든 픽셀에 대해 러닝 해시를 계산하여 수평 해시 어레이 running_hash_h[]를 생성한다. running_hash_h[]의 위에 또 다른 러닝 해시를 계산하여 2D 해시 어레이 running_hash_hv[]를 생성한다. 2D 해시 어레이 running_hash_hv[] 내의 각각의 값 매칭은 4×4 블록 매칭을 나타낸다. 2D 매칭을 수행하기 위해, 이웃들과 픽셀 단위로 비교하기 전에 4×4 블록 매칭들이 발견된다. 픽셀 단위 비교는 1 내지 3개의 픽셀로 제한되므로, 탐색 속도를 극적으로 증가시킬 수 있다.
상기 설명으로부터, 각각의 행의 매칭된 폭들은 서로 상이하므로, 각각의 행은 개별적으로 처리되어야 한다. 효율 및 낮은 복잡도를 달성하기 위해, 본 개시의 실시예들은 하드웨어 및 소프트웨어 구현들 모두에서 사용될 수 있는 블록 기반 알고리즘을 제공한다. 어떤 점들에서 표준 모션 추정과 유사하게, 이 알고리즘은 한 번에 하나의 직사각형 블록을 처리한다.
도 8은 U_PIXEL 모듈(800)이라고 불리는, 이 알고리즘에서의 기본 픽셀 처리 유닛의 예를 도시한다. U_PIXEL 모듈(800)은 코딩된 신호(801) 및 입력 신호(802)를 수신하고, 복수의 논리 게이트(803-806)를 포함한다. 코딩된 신호(801)는 참조 픽셀이 이전의 문자열 매칭 동작으로부터 이미 인코딩되었는지를 나타내는 플래그이다. 임의적으로, 입력 신호(802)(Cmp[n-1])는 "0"으로 강제될 수 있으며, 이는 U_PIXEL 모듈(800)로부터 최종 "OR" 게이트(806)의 제거를 허용한다.
예로서 4×4 블록을 취한다. 제1 단계는 각각의 행을 병렬로 처리하는 것이다. 직사각형의 한 행에 있는 각각의 픽셀은 하나의 U_PIXEL 모듈(800)에 할당된다. 각각의 행을 처리하기 위한 처리 유닛은 U_ROW 모듈이라고 불린다. 도 9는 U_ROW 모듈(900)의 예를 도시한다. U_ROW 모듈(900)은 복수의 U_PIXEL 모듈(800)을 포함한다. 4×4 블록의 경우, U_ROW 모듈(900)은 4개의 U_PIXEL 모듈(800)을 포함한다. 도 9에 도시된 바와 같이, U_ROW 모듈(900)은 901에 표시된 바와 같이, 제1 행인, 행 0을 처리하고 있다.
4×4 블록의 4개의 행을 처리하기 위해 4개의 U_ROW 모듈(900)이 사용된다. 4개의 U_ROW 모듈(900)은 U_CMP 모듈 내에 병렬로 배열될 수 있다. 도 10은 4개의 U_ROW 모듈(900)을 포함하는 U_CMP 모듈(1000)의 예를 도시한다. U_CMP 모듈(1000)의 출력은 어레이 cmp[4][4]이다.
알고리즘의 다음 단계는 cmp 어레이의 각각의 열을 병렬로 처리하는 것이다. cmp 어레이의 열에 있는 각각의 cmp는 U_COL 모듈에 의해 처리된다. 도 11은 cmp 어레이의 4개의 열(1101 내지 1104)을 수신하는 U_COL 모듈(1100)의 예를 도시한다. 4×4 블록의 4개의 열을 처리하기 위해 4개의 U_COL 모듈(1100)이 사용될 수 있다. 4개의 U_COL 모듈(1100)은 U_2D_BLOCK 모듈에 병렬로 배열될 수 있다. 도 12는 4개의 U_COL 모듈(1100)을 포함하는 예시적인 U_2D_BLOCK 모듈(1200)을 도시한다. U_2D_BLOCK 모듈(1200)의 출력은 어레이 rw[4][4]이다.
그 후 어레이 rw[n][0-3]의 각각의 행에 있는 0을 카운팅하고, 4개의 결과를 어레이 r_width[n]에 기록한다. 어레이 r_width[n]은 전술한 2D 매칭 기법의 단계 7에서의 어레이 rwidth[n]과 동일하다. 어레이 l_width[n]도 동일한 방식으로 생성된다. 단계 7에서의 min_width 어레이는 {{l_width[1], r_width[1]}, {l_width[2], r_width[2]}, {l_width[3], r_width[3]}...}로서 획득될 수 있다.
이 알고리즘은 임의의 최신 CPU(중앙 처리 장치), DSP(디지털 신호 프로세서) 또는 GPU(그래픽 처리 장치)의 병렬 처리 프레임워크에서 작동하도록 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 빠른 소프트웨어 구현들을 위한 단순화된 의사 코드는 다음과 같다.
(의사 코드):
Figure 112017002800226-pct00011
Figure 112017002800226-pct00012
상기 의사 코드에서 보이는 바와 같이, 각각의 FOR 루프마다 데이터 의존성이 없으므로 루프 펼침 또는 MMX/SSE와 같은 전형적인 소프트웨어 병렬 처리 방법을 적용하여 실행 속도를 증가시킬 수 있다.
이 알고리즘은 행의 수가 1로 제한되면 1D 탐색에도 적용될 수 있다. 고정 길이 기반 1D 탐색의 빠른 소프트웨어 구현을 위한 단순화된 의사 코드는 다음과 같다.
(의사 코드):
Figure 112017002800226-pct00013
Figure 112017002800226-pct00014
1D 탐색 및 2D 탐색 모두가 완료된 후, (1D 길이, 2D 크기(폭×높이))의 최대 값이 "승자"로서 선택된다. 2D 매칭의 lwidth(left width)가 0이 아닌 경우, 이전 1D 매칭의 길이(length = length - lwidth)를 조정하여 이전 1D 매칭과 현재 2D 매칭 사이의 겹침을 피할 수 있다. 이전 1D 매칭의 길이가 조정 후 0이 되면, 그것은 매칭 목록에서 제거되어야 한다.
다음으로, 이전 매칭이 1D 매칭이면 current_location + length, 또는 이전 매칭이 2D 매칭이면 current_location + (lwidth+rwidth)를 사용하여 시작 위치가 계산된다. 1D 탐색이 수행될 때, 매칭될 임의의 픽셀이 그 위치가 2D 매칭에 의해 이미 커버된 임의의 이전 2D 매칭 영역에 속한다면, 이전 매칭에 의해 코딩되지 않은 픽셀이 발견될 때까지 다음 픽셀 또는 픽셀들이 스캔된다.
매칭된 쌍들을 획득한 후에, 엔트로피 엔진을 적용하여 이들 코딩 요소들을 이진 스트림으로 변환할 수 있다. 일부 실시예들에서, 엔트로피 엔진은 균등 확률 모델을 사용할 수 있다. 더 나은 압축 효율을 위해 진보된 적응 컨텍스트 모델을 적용할 수도 있다. 다음의 의사 코드는 각각의 매칭된 쌍에 대한 인코딩 절차의 예이다.
(의사 코드):
Figure 112017002800226-pct00015
Figure 112017002800226-pct00016
대응적으로, 매칭된 쌍에 대한 디코딩 프로세스는 다음의 의사 코드에서 제공된다.
(의사 코드):
Figure 112017002800226-pct00017
Figure 112017002800226-pct00018
매칭되지 않은 위치에 있는 픽셀들만이 비트스트림으로 인코딩될 것이라는 점에 주목한다. 더 정확한 통계 모델을 갖기 위해, 일부 실시예들은 CU 내의 모든 픽셀을 사용하는 대신에, 이들 픽셀 및 그 이웃들만을 팔레트 테이블 도출에 사용할 수 있다.
인덱스 또는 델타 출력을 결정하는 인코딩 모드들의 경우, 인코딩 결과들은 일반적으로 제한된 수의 고유 값을 포함한다. 본 개시의 실시예들은 이러한 관찰을 이용하기 위해 제2 델타 팔레트 테이블을 제공한다. 이 델타 팔레트 테이블은 현재 CU에서 모든 리터럴 데이터가 획득된 후에 생성될 수 있다. 이 델타 팔레트 테이블은 비트스트림에서 명시적으로 시그널링될 수 있다. 대안적으로, 그것은 코딩 프로세스 동안 적응적으로 생성될 수 있으며, 따라서 그 테이블이 비트스트림에 포함될 필요가 없다. 이 선택을 위해 delta_color_table_adaptive_flag가 제공된다.
일부 실시예들에서, 이웃 델타 팔레트 테이블 병합(Neighboring Delta Palette Table Merge)이라고 불리는 또 다른 진보된 방식이 제공된다. 적응 델타 팔레트 생성의 경우, 인코더는 상부 또는 좌측 CU로부터의 델타 팔레트를 초기 시작점으로 사용할 수 있다. 비적응 팔레트 생성의 경우, 인코더는 상부 또는 좌측 CU로부터의 델타 팔레트를 사용한 다음, 상부, 좌측 및 현재 CU들 사이에 R-D 비용을 비교할 수도 있다.
현재 CU가 그것의 좌측 또는 상부 CU로부터의 델타 팔레트 테이블을 사용하는지를 나타내는 delta_color_table_merge_flag가 정의된다. 현재 CU는 동시에 delta_color_table_adaptive_flag==0 및 delta_color_table_merge_flag==0일 때만 델타 팔레트 테이블 신호를 명시적으로 전달한다. 병합 프로세스의 경우, delta_color_table_merge_flag가 어설션되는 경우, 병합 후보가 상부 CU 또는 좌측 CU 중 어느 쪽으로부터인지를 나타내는 또 다른 플래그 delta_color_table_merge_direction이 정의된다.
delta_color_table_adaptive_flag==1인 경우, 다음은 적응 델타 팔레트 생성을 위한 인코딩 프로세스의 예이다. 디코더 측에서, 디코더가 리터럴 데이터를 수신할 때마다, 디코더는 역 단계들을 사용하여 델타 팔레트를 재생성할 수 있다.
단계 1: 어레이 palette_table[] 및 palette_count[]가 정의된다.
단계 2: 어레이 palette_table[]은 palette_table(n) = n(n = 0...255)으로서 초기화된다. 대안적으로, 상부 또는 좌측 CU로부터의 palette_table[]을 초기 값으로 사용할 수 있다.
단계 3: 어레이 palette_count[]는 palette_count(n) = 0(n = 0...255)으로서 초기화된다. 대안적으로, 상부 또는 좌측 CU로부터의 palette_count[]를 초기 값으로 사용할 수 있다.
단계 4: 임의의 델타 값 c'에 대해, 다음의 동작들이 수행된다:
a) palette_table(n) == delta c'인 n을 찾고;
b) 델타 c'의 새로운 인덱스로서 n을 사용하고;
c) ++palette_count(n);
d) palette_count[]를 내림차순으로 정렬하고;
e) 그에 따라 palette_table[]을 정렬한다.
단계 5: 프로세스는 단계 1로 되돌아가고 프로세스는 현재 CU의 모든 델타 c'가 처리될 때까지 반복된다.
텍스트 및 그래픽 모두를 포함하는 임의의 블록에 대해, 마스크 플래그를 사용하여 텍스트 섹션과 그래픽 섹션을 분리할 수 있다. 텍스트 섹션은 전술한 압축 방법을 사용하여 압축될 수 있고; 그래픽 섹션은 다른 압축 방법으로 압축될 수 있다. 마스크 플래그에 의해 커버된 임의의 픽셀의 값이 무손실로 텍스트 레이어에 의해 코딩되었기 때문에, 그래픽 섹션의 각각의 픽셀은 "무관 픽셀(don't-care-pixel)"로 간주될 수 있다. 그래픽 섹션을 압축할 때, 최적의 압축 효율을 얻기 위해 어떤 임의의 값을 무관 픽셀에 할당할 수 있다.
인덱스 맵 및 잔차들은 팔레트 테이블 도출 프로세스 동안 생성된다. 인덱스 맵을 무손실로 압축하면 1D 또는 2D 문자열 탐색을 사용하여 효율적인 처리가 가능하다. 일부 실시예들에서, 1D 또는 2D 문자열 탐색은 현재 CU 내에서 제한된다; 그러나, 탐색 창은 현재 CU를 넘어서 확장될 수 있다. 매칭된 거리는 수평 및 수직 방향으로 한 쌍의 모션 벡터, 예를 들어(MVy=matched_distance/cuWidth, MVy=matched_distance-cuWidth*MVy)를 사용하여 인코딩될 수 있다.
이미지가 로컬 영역들에서 상이한 공간 텍스처 방향들을 가질 수 있기 때문에, 1D 탐색은 color_idx_map_pred_direction 표시자의 값에 기초하여 수평 또는 수직 방향으로 수행될 수 있다. 최적의 인덱스 스캐닝 방향은 R-D 비용에 기초하여 결정될 수 있다. 도 13은 수평 및 수직 스캐닝 동작들의 예를 도시한다. 도 13에는, 예시적인 2D 컬러 인덱스 맵(1301)이 도시되어 있다. 컬러 인덱스 맵(1301)은 도 3의 컬러 인덱스 맵(311)을 나타낼 수 있다. 컬러 인덱스 맵(1301)은 8×8 맵이지만, 다른 크기의 컬러 인덱스 맵이 가능하다. 도 13에 도시된 바와 같이, 수평 스캐닝(1302) 또는 수직 스캐닝(1303)이 컬러 인덱스 맵(1301)에 대해 수행될 수 있다. 일부 실시예들에서, deriveMatchPairs() 및 관련된 엔트로피 코딩 단계들이 수평 스캐닝과 수직 스캐닝 모두에 대해 2회 수행된다. 그 후 최종 스캐닝 방향은 R-D 비용이 가장 적은 방향으로서 선택된다.
개선된 이진화
전술한 바와 같이, 컬러 인덱스 맵에 대한 매칭된 정보의 쌍 및 팔레트 테이블은 고정 길이 이진화를 사용하여 인코딩될 수 있다. 대안적으로, 가변 길이 이진화가 사용될 수 있다. 예를 들어 팔레트 테이블 인코딩의 경우, 팔레트 테이블은 8개의 상이한 컬러 값들을 가질 수 있다. 따라서, 대응하는 컬러 인덱스 맵은 8개의 상이한 인덱스만 포함될 수 있다. 고정된 3개의 빈을 사용하여 모든 인덱스 값을 동등하게 인코딩하는 대신, 배경 픽셀을 나타내기 위해 하나의 빈만 사용될 수 있다. 예를 들어, 배경 픽셀은 0으로 표현될 수 있다. 나머지 7개의 픽셀 값은 컬러 인덱스를 인코딩하기 위해 1000, 1001, 1010, 1011, 1100, 1101, 및 1110과 같은 고정 길이 코드워드를 사용하여 표현될 수 있다. 이것은 배경 컬러가 이미지의 가장 큰 비율을 차지할 수 있다는 사실에 기초하며, 따라서 배경 컬러에 대해 단 하나의 비트의 별개의 코드워드가 전체 공간을 절약할 수 있다. 이 시나리오는 스크린 콘텐츠에 대해 일반적으로 발생한다. 예를 들어, 16×16 CU를 고려하자. 고정 3-빈 이진화를 사용하면, 컬러 인덱스 맵은 3×16×16=768개의 빈을 필요로 할 수 있다. 대안적으로, 이미지의 40%를 차지하는 배경 컬러는 0으로서 인덱싱되는 반면, 다른 컬러들은 균등하게 분포된다고 하자. 이 경우, 컬러 인덱스 맵은 (2.8×16×16<768)개의 빈만 필요로 할 수 있다.
매칭된 쌍 인코딩에 있어서, 매칭된 거리 및 길이의 가능한 최대 값은, 현재 CU의 영역 내의 현재의 기술 제약을 고려하면, 그의 이진화를 제한하기 위해 사용될 수 있다. 수학적으로, 매칭된 거리 및 길이는 각각의 경우 64×64=4K만큼 길 수 있다. 그러나, 이는 전형적으로 공동으로 발생하지는 않을 것이다. 매칭된 모든 위치에 대해, 매칭된 거리는 현재 위치와 참조 버퍼 내의 처음 위치(예를 들어, 현재 CU의 제1 위치) 사이의 거리에 의해 제한되며, L로 표시할 수 있다. 따라서, 거리 이진화를 위한 최대 빈들은 (고정 길이 대신에) log2(L)+1이고, 길이 이진화를 위한 최대 빈들은 log2(cuSize-L)+1이며, 여기서 cuSize=cuWidth*cuHeight이다.
팔레트 테이블 및 인덱스 맵 이외에, 잔차 계수 코딩이 상이한 이진화 방법들에 의해 상당히 개선될 수 있다. HEVC RExt 및 HEVC 버전들의 경우, 변환 계수는 종래의 방법을 사용하여 예측, 변환 및 양자화 후에 생성된 계수는 전형적으로 0에 가까운 크기를 가지며, 0이 아닌 값들은 전형적으로 변환 단위의 좌측 상부 코너에 위치한다는 관찰에 기초하여 가변 길이를 사용하여 이진화된다. 그러나, 전체 변환 프로세스의 바이패스를 가능하게 하는 HEVC RExt의 변환 스킵 코딩 도구를 도입한 후에, 잔차 크기 분포가 변경되었다. 특히 별개의 컬러들을 갖는 스크린 콘텐츠에 대한 변환 스킵을 가능하게 할 때, 큰 값들(즉, '1', '2' 또는 '0'과 같이 0에 가깝지 않은 값들)을 갖는 계수들이 일반적으로 존재하고 0이 아닌 값들은 변환 단위 내부의 임의의 위치들에서 발생할 수 있다. 현재 HEVC 계수 이진화가 사용되면, 매우 긴 코드워드를 야기할 수 있다. 대안적으로, 팔레트 테이블 및 인덱스 코딩 모드에 의해 생성된 잔차 계수들에 대한 코드 길이를 절약할 수 있는, 고정 길이 이진화가 사용될 수 있다.
새로운 예측 픽셀 생성 방법
전술한 바와 같이, 컬러 인덱스 맵을 인코딩할 때 1D/2D 문자열 탐색이 수행된다. 매칭된 인덱스가 발견된 컬러 인덱스 맵 내의 임의의 위치에서, 디코더는 매칭된 위치에서 픽셀을 취하고 그것을 원래 픽셀로부터 감산하여 잔차 픽셀을 생성한다. 이 절차는 매칭된 위치에서의 컬러 인덱스에 의해 나타내어지는 컬러 팔레트 테이블에서의 대응하는 컬러를 사용하여, 또는 매칭된 위치에서의 재구성된 픽셀을 사용하여 수행할 수 있다.
전술한 두 가지 방법에 기초하여 예측 값을 생성하는 두 가지 방법이 있다. 제1 방법에서는, 임의의 목표 픽셀 위치에 대해, 매칭된 위치에서의 주 컬러 인덱스에 의해 팔레트 테이블로부터 RGB 값이 도출되고, 이 RGB 값은 목표 픽셀의 예측 값으로서 사용된다. 그러나, 이 방법은 디코더에게 현재 CU의 외부에 있는 픽셀들에 대한 컬러 인덱스 도출 절차를 수행하도록 강제하여, 디코딩 시간이 증가하는 결과를 가져온다.
제1 방법에서의 컬러 인덱스 도출 절차를 피하기 위해, 임의의 목표 픽셀 위치에 대해, 매칭된 위치에서의 재구성된 픽셀 값이 예측 값으로서 사용되는 제2 방법이 적용된다. 이 방법에서, 재구성된 값은 예측 픽셀이 현재 CU 내에 있을 때 유효하지 않다. 그러나, 이 경우, 컬러 인덱스가 사용 가능하며 컬러 팔레트 테이블 내의 그의 대응하는 컬러가 예측 픽셀로서 사용될 수 있다.
현재 CU 내의 임의의 픽셀의 잔차 값은 원래 값으로부터 그 예측 값을 감산함으로써 도출될 수 있다. 그 후 그것은 양자화되어 비트스트림으로 인코딩된다. 현재 CU 내의 임의의 픽셀의 재구성된 값은 그 예측 값 및 양자화된 잔차 값을 가산함으로써 도출될 수 있다.
단일 컬러 모드
단일 컬러 CU는 모든 픽셀 위치에서 단 하나의 컬러만을 갖는 CU 또는 균일한 단일 값 인덱스 맵을 갖는 그 팔레트에서 단일 컬러를 갖는 CU일 수 있다. 팔레트 모드에서 단일 컬러 CU를 압축하는 다수의 방법이 있다. 하나의 방법, 즉 단일 컬러 모드에서는, 이 단일 컬러 팔레트 정보만이 인코딩되어 비트스트림에 포함된다. 전체 컬러 인덱스 맵 섹션은 생략된다. 이는 균일한 모두 0인 인덱스 맵을 인코딩하고 전송하는 것과는 대조적이다. 디코더 측에서, 인덱스 맵이 없는 팔레트에 단 하나의 컬러만 있다면, 현재 CU 내의 모든 픽셀 위치가 팔레트 내의 컬러로 채워질 것이다.
픽셀 도메인 문자열 복사
전술한 바와 같이, 1D/2D 문자열 복사는 컬러 인덱스 맵 영역에서 적용된다. 1D/2D 문자열 복사는 픽셀 도메인에서도 적용할 수 있다. 인덱스 맵 도메인 1D/2D 문자열 복사와 비교하여, 픽셀 도메인에서의 1D/2D 문자열 복사는 다수의 변경을 포함한다. 그 변경들은 다음과 같다:
1. 팔레트 테이블 및 인덱스 맵 생성 프로세스는 필요하지 않으며 생략될 수 있다. 대안으로서, 모든 팔레트 테이블 생성, 인덱스 맵 생성 및 인덱스 도메인에 대한 1D/2D 문자열 탐색이 여전히 수행되지만, 팔레트 테이블은 비트스트림에 기록되지 않는다. 1D 문자열 매칭의 길이 또는 2D 문자열 매칭의 폭 및 높이에 기초하여 코딩된 맵이 생성된다. 코딩된 맵은 픽셀 위치가 이전 매칭에 의해 커버되는지 여부를 나타낸다. 다음 시작 위치는 이전 매칭에 의해 커버되지 않은 제1 위치이다.
2. 매칭되지 않은 데이터를 코딩할 때, (컬러 인덱스 값 대신에) 그의 RGB 값이 비트스트림에 기록된다. 매칭되지 않은 데이터를 코딩할 때, 구문 테이블에서 이 RGB 값의 앞에 1 비트 플래그가 추가되는 픽셀 인덱스 코딩 방법을 적용할 수도 있다. 이 RGB 값이 처음으로 나타나면, 플래그가 1로 설정되고 이 RGB 값 자체가 비트스트림에 코딩된다. 이 RGB 값은 그 후 조회 테이블에 추가된다. 이 RGB 값이 다시 나타나면, 플래그가 0으로 설정되고 이 RGB 값 대신 인덱스 테이블 인덱스 값이 코딩된다.
3. 예측 픽셀 생성 방법은 단일 컬러 모드의 옵션 2를 사용한다(예측 픽셀 위치로부터의 재구성된 픽셀 값이 예측 값으로서 사용됨).
4. 단일 컬러 CU의 경우, 단일 컬러 모드의 옵션 1 또는 옵션 2가 선택될 수 있다. 옵션 1이 선택될 경우, 주요 컬러의 RGB 값이 비트스트림의 팔레트 테이블 섹션에 기록된다. 옵션 2가 선택될 경우, 1D 탐색에서 어떤 상부 라인도 사용되지 않고 현재 CU에 대해 어떤 2D 옵션도 허용되지 않으면, 주요 컬러의 RGB 값이 비트스트림의 팔레트 테이블 섹션에 기록된다.
일반적으로, 2D 문자열 복사는 유연한 알고리즘이다; 그것은 상이한 폭과 높이의 블록들에 대한 연산들을 수행하여 매칭 블록을 찾을 수 있다. 2D 문자열 복사가 CU의 폭과 높이로 제한될 때, 2D 문자열 복사는 고정 폭/높이 블록 복사가 된다. 인트라 블록 복사(IBC)는 고정 폭/높이 블록에 대해 작용하는 2D 문자열 복사의 이 특정한 경우와 실질적으로 동일하다. 고정 폭/높이 2D 문자열 복사에서는, 잔차도 인코딩된다. 이것은 또한 IBC에 의해 사용되는 잔차 코딩 방법과 실질적으로 동일하다.
혼합 콘텐츠에 대한 적응적 크로마 샘플링
전술한 실시예들은 HEVC/HEVC-RExt의 프레임워크 하에서 고효율 스크린 콘텐츠 코딩을 위한 다양한 기법들을 제공한다. 실제로, 순수한 스크린 콘텐츠(텍스트, 그래픽 등) 또는 순수 자연 비디오 이외에, 컴퓨터에 의해 생성된 스크린 자료와 카메라에 의해 캡처된 자연 비디오 모두를 포함하는 콘텐츠도 있다. 이를 혼합 콘텐츠라고 한다. 현재, 혼합 콘텐츠는 4:4:4 크로마 샘플링으로 처리된다. 그러나, 이러한 혼합 콘텐츠에서 내장된 카메라에 의해 캡처된 자연 비디오 부분의 경우, 4:2:0 크로마 샘플링은 지각적으로 무손실 품질을 제공하기에 충분할 수 있다. 이것은 인간의 시각이 루마 성분들로부터의 것과 비교하여 크로마 성분들의 공간 변화들에 덜 민감하다는 사실 때문이다. 따라서, 동일한 재구성된 시각 품질을 유지하면서 현저한 비트 레이트 감소를 달성하기 위해 크로마 성분들(예를 들어, 인기 있는 4:2:0 비디오 포맷)에 대해 서브샘플링이 전형적으로 수행된다.
이 개시의 실시예들은 CU 레벨에서 재귀적으로 정의되고 시그널링되는 플래그 enable_chroma_subsampling을 제공한다. 각각의 CU에 대해, 인코더는 레이트 왜곡 비용에 따라 그것이 4:2:0을 사용하여 코딩되어 있는지 4:4:4를 사용하여 코딩되어 있는지를 결정한다. 도 14a 및 도 14b는 4:2:0 및 4:4:4 크로마 샘플링 포맷들의 예들를 도시한다. 도 14a는 4:2:0 샘플링의 예를 도시하고 도 14b는 4:4:4 샘플링의 예를 도시한다.
인코더 측에서는, 각각의 CU에 대해, 입력이 도 14b에 도시된 4:4:4 소스라고 가정하여, 레이트 왜곡 비용은 enable_chroma_subsampling = 0 또는 FALSE인 4:4:4 인코딩 절차를 사용하여 직접 도출된다. 그 후, 프로세스는 그의 비트 소비를 도출하기 위해 4:4:4 샘플들을 4:2:0으로 서브샘플링한다. 재구성된 4:2:0 포맷은 왜곡 측정을 위해 4:4:4 포맷으로 다시 보간된다(예를 들어, 제곱 에러의 합(SSE) 또는 절대 차이의 합(SAD)을 사용하여). 비트 소비와 함께, 레이트 왜곡 비용은, 4:2:0 공간에서 CU를 인코딩하고 그것을 4:4:4에서 CU를 인코딩할 때의 비용과 비교할 때 도출된다. 어느 것이든 더 낮은 레이트 왜곡 비용을 초래하는 인코딩 방법이 최종 인코딩을 위해 선택된다.
도 15는 4:4:4에서 4:2:0으로 그리고 그 반대로의 보간 프로세스의 예를 도시한다. 전형적으로, 비디오 컬러 샘플링 포맷 변환 프로세스는 다수의 보간 필터를 필요로 할 수 있다. 구현 복잡도를 감소시키기 위해, HEVC 보간 필터(즉, DCT-IF)가 이용될 수 있다. 도 15에 도시된 바와 같이, 정사각형 박스들은 원래의 4:4:4 샘플들을 나타낸다. 4:4:4에서 4:2:0으로, (원들로 표현된) 1/2 픽셀(half-pel) 픽셀들은 크로마 성분들에 대해 수직으로 DCT-IF를 사용하여 보간된다. 또한 도 15에는 다이아몬드들로 표현되는 1/4 픽셀(quarter-pel) 위치들이 도시되어 있다. 회색 음영 원들은 4:2:0 샘플들을 형성하도록 선택된다. 4:2:0에서 4:4:4로의 보간에 대해, 프로세스는 크로마 성분들의 회색 원들로 시작되고 모든 원을 얻기 위해 1/2 픽셀 위치들이 수평으로 보간된 다음, 정사각형 박스들이 수직으로 DCT-IF를 사용하여 보간된다. 보간된 모든 정사각형 박스들이 재구성된 4:4:4 신호를 형성하도록 선택된다.
인코더 제어
전술한 바와 같이, 다수의 플래그가 인코더에서의 저레벨 처리를 제어하기 위해 제공된다. 예를 들어, enable_packed_component_flag는 현재 CU가 처리를 인코딩하기 위해 팩형 포맷을 사용하는지 종래의 평면 포맷을 사용하는지를 표시하는 데 사용된다. 팩형 포맷을 가능하게 할지의 여부에 대한 결정은 인코더에서 계산된 R-D 비용에 따라 달라질 수 있다. 일부 인코더 구현들에서, CU의 히스토그램을 분석하고 결정을 위한 최상의 임계값을 찾아냄으로써 복잡도가 낮은 솔루션을 달성할 수 있다.
팔레트 테이블의 크기는 복잡도에 직접적인 영향을 미친다. 복잡도와 코딩 효율 간의 절충을 제어하기 위해 파라미터 maxColorNum이 도입된다. 가장 간단한 방법은 최저 R-D 비용을 야기하는 옵션을 선택하는 것이다. 인덱스 맵 인코딩 방향은 R-D 최적화에 의해, 또는 로컬 공간 방향(예를 들어, Sobel 연산자를 사용하는 에지 방향 추정)을 사용함으로써 결정될 수 있다.
전술한 실시예들 중 일부는 모든 CTU 또는 CU 내의 처리를 제한할 수 있다. 실제로, 이러한 제약은 완화될 수 있다. 예를 들어, 컬러 인덱스 맵 처리를 위해, 도 16에 도시된 바와 같이, 상부 CU 또는 좌측 CU로부터의 라인 버퍼가 사용될 수 있다. 도 16은 상부 인덱스 라인 버퍼 또는 좌측 인덱스 라인 버퍼를 사용하는 컬러 인덱스 맵 처리의 예를 도시한다. 상부 버퍼 및 좌측 버퍼를 사용하여, 탐색을 확장하여 코딩 효율을 더 개선할 수 있다. 상부 및 좌측 버퍼들이 이웃 CU들로부터의 재구성된 픽셀들을 사용하여 형성된다고 가정하면, 이들 픽셀(뿐만 아니라 그들의 대응하는 인덱스들)은 현재 CU 인덱스 맵을 처리하기 전에 참조용으로 이용 가능하다. 예를 들어, 도 16에 도시된 바와 같이, 재순서화 후에, 현재 CU 인덱스 맵(1600)은 14, 14, 14, .... 1, 2, 1(1D 문자열로서 표시됨)일 수 있다. 라인 버퍼 참조가 없다면, 제1 "14"는 매칭되지 않은 쌍으로 코딩될 수 있다. 그러나, 이웃 라인 버퍼의 경우, 제1 "14"는 상부 인덱스 라인 버퍼 또는 좌측 인덱스 라인 버퍼 내의 "14"와 매칭된다. 따라서, 문자열 복사는 처음 픽셀에서 시작할 수 있다.
디코더 구문
이하에 제공된 정보는 도 2에 도시된 수신기(200)의 디코딩 동작들을 설명하기 위해 사용될 수 있다. 아래에 나타낸 구문은 HEVC RExt의 위원회 초안(committee draft)에 맞춰 조정된다.
7.3.5.8 코딩 단위 구문:
Figure 112017002800226-pct00019
Figure 112017002800226-pct00020
도 17은 본 개시에 따른 스크린 콘텐츠 코딩을 위한 방법을 도시한다. 도 17에 도시된 방법(1700)은 전술한 주요 개념들에 기초한다. 방법(1700)은 도 1의 송신기(100)에 의해 수행될 수 있다. 그러나, 방법(1700)은 임의의 다른 적절한 디바이스 또는 시스템과 함께 사용될 수도 있다.
동작 1701에서, 디바이스는 현재 CU에 기초하여 컬러 인덱스 맵을 도출한다. 동작 1703에서, 디바이스는 컬러 인덱스 맵을 인코딩한다. 디바이스는 제1 코딩 기법을 이용하여 컬러 인덱스 맵의 적어도 일부를 인코딩한다. 제1 표시자가 제1 코딩 기법의 유의미 거리를 나타낸다. 예를 들어, 일부 실시예들에서, 제1 표시자의 제1 값은 1과 동일한 유의미 거리를 사용하는 IndexMode 코딩 기법을 나타내고, 제1 표시자의 제2 값은 현재 CU의 블록 폭과 동일한 유의미 거리를 사용하는 CopyAbove 코딩 기법을 나타낸다.
디바이스가 제1 코딩 기법을 이용하여 인코딩하는 컬러 인덱스 맵의 부분은 현재 CU 내의 제1 인덱스 문자열의 바로 상부에 매칭되는 제2 인덱스 문자열을 갖는 제1 인덱스 문자열, 또는 현재 CU 내의 제3 인덱스 문자열 중 제1 인덱스의 바로 좌측에 있는 참조 인덱스 값과 동일한 값을 모두 갖는 제3 인덱스 문자열 중 어느 하나이다.
동작 1705에서, 디바이스는 수신기로의 전송을 위해 인코딩된 컬러 인덱스 맵와 제1 표시자를 결합한다.
도 17은 스크린 콘텐츠 코딩을 위한 방법(1700)의 일례를 도시하지만, 도 17에 대해 다양한 변경들이 행해질 수 있다. 예를 들어, 일련의 단계들로서 도시되었지만, 도 17에 도시된 다양한 단계들은 겹치거나, 동시에 발생하거나, 상이한 순서로 발생하거나, 여러 번 발생할 수 있다. 또한, 일부 단계들은 결합되거나 제거될 수 있으며 특정 요구에 따라 추가적인 단계들이 추가될 수 있다.
도 18은 본 개시에 따른 스크린 콘텐츠 디코딩을 위한 방법을 도시한다. 도 18에 도시된 방법(1800)은 전술한 주요 개념들에 기초한다. 방법(1800)은 도 2의 수신기(200)에 의해 수행될 수 있다. 그러나, 방법(1800)은 임의의 다른 적절한 디바이스 또는 시스템과 함께 사용될 수도 있다.
동작 1801에서, 디바이스는 송신기로부터 압축된 비디오 비트스트림을 수신한다. 비디오 비트스트림은 인코딩된 컬러 인덱스 맵을 포함한다. 디바이스는 또한 제1 표시자를 수신한다. 제1 표시자는 제1 디코딩 기법의 유의미 거리를 나타낸다. 예를 들어, 일부 실시예들에서, 제1 표시자의 제1 값은 1과 동일한 유의미 거리를 사용하는 IndexMode 디코딩 기법을 나타내고, 제1 표시자의 제2 값은 현재 CU의 블록 폭과 동일한 유의미 거리를 사용하는 CopyAbove 코딩 기법을 나타낸다.
동작 1803에서, 디바이스는 제1 디코딩 기법을 이용하여 컬러 인덱스 맵의 적어도 일부를 디코딩하고, 제1 표시자는 제1 디코딩 기법의 유의미 거리를 나타낸다. 나중에, 동작 1805에서, 디바이스는 컬러 인덱스 맵에 기초하여 현재 CU와 관련된 픽셀들을 재구성한다.
도 18은 스크린 콘텐츠 디코딩을 위한 방법(1800)의 일례를 도시하지만, 도 18에 대해 다양한 변경들이 행해질 수 있다. 예를 들어, 일련의 단계들로서 도시되었지만, 도 18에 도시된 다양한 단계들은 겹치거나, 동시에 발생하거나, 상이한 순서로 발생하거나, 여러 번 발생할 수 있다. 또한, 일부 단계들은 결합되거나 제거될 수 있으며 특정 요구에 따라 추가적인 단계들이 추가될 수 있다.
일부 실시예들에서, 디바이스들 중 하나 이상의 디바이스의 기능들 또는 프로세스들 중 일부 또는 전부는 컴퓨터 판독가능 프로그램 코드로부터 형성되는 그리고 컴퓨터 판독가능 매체에 구체화되는 컴퓨터 프로그램에 의해 구현되거나 지원될 수 있다. "컴퓨터 판독가능 프로그램 코드"라는 문구는 소스 코드, 객체 코드, 및 실행 코드를 포함하는 임의의 타입의 컴퓨터 코드를 포함한다. "컴퓨터 판독가능 매체"라는 문구는 ROM(read only memory), RAM(random access memory), 하드디스크 드라이브, CD(compact disc), DVD(digital video disc) 또는 임의의 다른 타입의 메모리와 같은, 컴퓨터에 의해 액세스될 수 있는 임의의 타입의 매체를 포함한다.
이 특허 명세서 전체에 걸쳐 사용된 특정 단어들 및 문구들의 정의를 제시하는 것이 유리할 수 있다. 용어 "포함하다(include)" 및 "포함하다(comprise)"뿐만 아니라 그들의 파생어들은 한정 없는 포함을 의미한다. 용어 "또는"은 포괄적이고, '및/또는'을 의미한다. "~와 관련된(associated with)" 및 "그와 관련된(associated therewith)"이라는 구문들뿐만 아니라 이들의 파생어들은, ~를 포함하다, ~내에 포함되다, ~와 상호접속하다, ~를 함유하다(contain), ~내에 함유되다, ~에 또는 ~와 접속되다, ~에 또는 ~와 결합되다, ~와 통신 가능하다, ~와 협력하다, 개재하다(interleave), 병치하다(juxtapose), ~에 근접하다, ~에 또는 ~와 속박되다, ~를 가지다, ~를 소유하다, 또는 다른 유사한 것을 의미한다.
본 개시내용은 특정 실시예들 및 일반적으로 관련된 방법들을 기술하였지만, 이들 실시예들 및 방법들의 변경들 및 치환들은 본 분야의 기술자들에게 명백할 것이다. 따라서, 예시적인 실시예들의 상기 설명은 본 개시내용을 한정하거나 제한하지 않는다. 다음의 청구 범위에 의해 정의되는 바와 같은, 본 개시내용의 사상 및 범위를 벗어나지 않으면서 다른 변경들, 대체들 및 변형들이 또한 가능하다.

Claims (28)

  1. 스크린 콘텐츠 코딩을 위한 방법으로서,
    현재 코딩 단위(CU)에 기초하여 컬러 인덱스 맵을 도출하는 단계;
    상기 컬러 인덱스 맵을 인코딩하는 단계 - 상기 컬러 인덱스 맵의 적어도 일부는 제1 코딩 기법을 이용하여 인코딩되고, 제1 표시자가 상기 제1 코딩 기법의 유의미 거리(significant distance)를 나타냄 -; 및
    수신기로의 전송을 위해 상기 인코딩된 컬러 인덱스 맵과 상기 제1 표시자를 결합하는 단계를 포함하고,
    제2 표시자가 상기 컬러 인덱스 맵의 상기 적어도 일부가 제2 코딩 기법 대신에 상기 제1 코딩 기법을 이용하여 인코딩되는 것을 나타내고,
    상기 제1 및 제2 표시자들은 제1 및 제2 이진 플래그들을 각각 포함하고;
    상기 제2 이진 플래그는 상기 제1 코딩 기법이 이용되는 것을 나타내고;
    상기 제1 이진 플래그는 상기 유의미 거리가 상기 현재 CU의 블록 폭과 동일한 것을 나타내고;
    상부의 라인과 동일한 상기 현재 CU의 인코딩된 라인은 상기 제1 및 제2 이진 플래그들만을 이용하여 시그널링되는, 방법.
  2. 스크린 콘텐츠 코딩을 위해 구성된 장치로서,
    적어도 하나의 메모리; 및
    상기 적어도 하나의 메모리에 결합된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는:
    현재 코딩 단위(CU)에 기초하여 컬러 인덱스 맵을 도출하고;
    상기 컬러 인덱스 맵을 인코딩하고 - 상기 컬러 인덱스 맵의 적어도 일부는 제1 코딩 기법을 이용하여 인코딩되고, 제1 표시자가 상기 제1 코딩 기법의 유의미 거리를 나타냄 -;
    수신기로의 전송을 위해 상기 인코딩된 컬러 인덱스 맵과 상기 제1 표시자를 결합하도록 구성되고,
    제2 표시자가 상기 컬러 인덱스 맵의 상기 적어도 일부가 제2 코딩 기법 대신에 상기 제1 코딩 기법을 이용하여 인코딩되는 것을 나타내고,
    상기 제1 및 제2 표시자들은 제1 및 제2 이진 플래그들을 각각 포함하고;
    상기 제2 이진 플래그는 상기 제1 코딩 기법이 이용되는 것을 나타내고;
    상기 제1 이진 플래그는 상기 유의미 거리가 상기 현재 CU의 블록 폭과 동일한 것을 나타내고;
    동일한 값을 갖는 상기 현재 CU의 인코딩된 라인은 상기 제1 및 제2 이진 플래그들만을 이용하여 시그널링되는, 장치.
  3. 스크린 콘텐츠 디코딩을 위한 방법으로서,
    컬러 인덱스 맵을 포함하는 비디오 비트스트림을 수신하는 단계;
    제1 표시자를 수신하는 단계;
    제1 디코딩 기법을 이용하여 상기 컬러 인덱스 맵의 적어도 일부를 디코딩하는 단계 - 상기 제1 표시자는 상기 제1 디코딩 기법의 유의미 거리를 나타냄 -; 및
    상기 컬러 인덱스 맵에 기초하여 현재 코딩 단위(CU)와 관련된 픽셀들을 재구성하는 단계를 포함하고,
    수신된 제2 표시자가 상기 컬러 인덱스 맵의 상기 적어도 일부가 제2 디코딩 기법 대신에 상기 제1 디코딩 기법을 이용하여 디코딩되는 것을 나타내고,
    상기 제1 및 제2 표시자들은 제1 및 제2 이진 플래그들을 각각 포함하고;
    상기 제2 이진 플래그는 상기 제1 디코딩 기법이 이용되는 것을 나타내고;
    상기 제1 이진 플래그는 상기 유의미 거리가 상기 현재 CU의 블록 폭과 동일한 것을 나타내고;
    상부의 라인과 동일한 상기 현재 CU의 인코딩된 라인은 상기 제1 및 제2 이진 플래그들만을 이용하여 시그널링되는, 방법.
  4. 스크린 콘텐츠 디코딩을 위해 구성된 장치로서,
    적어도 하나의 메모리; 및
    상기 적어도 하나의 메모리에 결합된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는:
    컬러 인덱스 맵을 포함하는 비디오 비트스트림을 수신하고;
    제1 표시자를 수신하고;
    제1 디코딩 기법을 이용하여 상기 컬러 인덱스 맵의 적어도 일부를 디코딩하고 - 상기 제1 표시자는 상기 제1 디코딩 기법의 유의미 거리를 나타냄 -;
    상기 컬러 인덱스 맵에 기초하여 현재 코딩 단위(CU)와 관련된 픽셀들을 재구성하도록 구성되고,
    제2 표시자가 상기 컬러 인덱스 맵의 상기 적어도 일부가 제2 디코딩 기법 대신에 상기 제1 디코딩 기법을 이용하여 디코딩되는 것을 나타내고,
    상기 제1 및 제2 표시자들은 제1 및 제2 이진 플래그들을 각각 포함하고;
    상기 제2 이진 플래그는 상기 제1 디코딩 기법이 이용되는 것을 나타내고;
    상기 제1 이진 플래그는 상기 유의미 거리가 상기 현재 CU의 블록 폭과 동일한 것을 나타내고;
    동일한 값을 갖는 상기 현재 CU의 인코딩된 라인은 상기 제1 및 제2 이진 플래그들만을 이용하여 시그널링되는, 장치.
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
KR1020177000671A 2014-06-27 2015-06-25 개선된 팔레트 테이블 및 인덱스 맵 코딩 방법들을 이용한 진보된 스크린 콘텐츠 코딩 KR101906740B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462018349P 2014-06-27 2014-06-27
US62/018,349 2014-06-27
US14/749,138 US20150381994A1 (en) 2014-06-27 2015-06-24 Advanced screen content coding with improved palette table and index map coding methods
US14/749,138 2015-06-24
PCT/US2015/037779 WO2015200690A1 (en) 2014-06-27 2015-06-25 Advanced screen content coding with improved palette table and index map coding methods

Publications (2)

Publication Number Publication Date
KR20170016958A KR20170016958A (ko) 2017-02-14
KR101906740B1 true KR101906740B1 (ko) 2018-10-10

Family

ID=54931999

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177000671A KR101906740B1 (ko) 2014-06-27 2015-06-25 개선된 팔레트 테이블 및 인덱스 맵 코딩 방법들을 이용한 진보된 스크린 콘텐츠 코딩

Country Status (10)

Country Link
US (1) US20150381994A1 (ko)
EP (1) EP3143766A4 (ko)
JP (1) JP6524118B2 (ko)
KR (1) KR101906740B1 (ko)
CN (1) CN106797457B (ko)
AU (1) AU2015279791A1 (ko)
BR (1) BR112016030696B1 (ko)
CA (1) CA2953505C (ko)
RU (1) RU2654200C1 (ko)
WO (1) WO2015200690A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200107746A (ko) * 2019-03-08 2020-09-16 소니 주식회사 이미지 압축을 위한 하이브리드 팔레트-dpcm 코딩

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2013403224B2 (en) 2013-10-14 2018-10-18 Microsoft Technology Licensing, Llc Features of intra block copy prediction mode for video and image coding and decoding
KR102275639B1 (ko) 2013-10-14 2021-07-08 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 영상 코딩 및 디코딩에 대한 기본 색상 인덱스 맵 모드의 특징
CN105659602B (zh) 2013-10-14 2019-10-08 微软技术许可有限责任公司 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
WO2015100726A1 (en) 2014-01-03 2015-07-09 Microsoft Corporation Block vector prediction in video and image coding/decoding
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
US10136141B2 (en) * 2014-06-11 2018-11-20 Qualcomm Incorporated Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding
US9924175B2 (en) 2014-06-11 2018-03-20 Qualcomm Incorporated Determining application of deblocking filtering to palette coded blocks in video coding
KR102311815B1 (ko) 2014-06-19 2021-10-13 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 통합된 인트라 블록 카피 및 인터 예측 모드
US9955157B2 (en) * 2014-07-11 2018-04-24 Qualcomm Incorporated Advanced palette prediction and signaling
JP2017535145A (ja) * 2014-09-30 2017-11-24 マイクロソフト テクノロジー ライセンシング,エルエルシー 波面並列処理が可能にされた場合のピクチャ内予測モードに関する規則
CN105491379A (zh) * 2014-10-01 2016-04-13 财团法人工业技术研究院 解码器、编码器、解码方法、编码方法与编解码系统
WO2016100424A1 (en) 2014-12-19 2016-06-23 Mediatek Inc. Methods of palette based prediction for non-444 color format in video and image coding
US10148981B2 (en) * 2015-03-20 2018-12-04 Mediatek Singapore Pte. Ltd. Methods of palette coding with inter-prediction in video coding
WO2016175550A1 (ko) * 2015-04-27 2016-11-03 엘지전자 주식회사 비디오 신호의 처리 방법 및 이를 위한 장치
EP3298785A4 (en) * 2015-06-03 2019-02-13 MediaTek Inc. METHOD AND APPARATUS FOR RESOURCE SHARING BETWEEN INTRA BLOCK COPY MODE AND INTER-PREDICTION MODE IN VIDEO CODING SYSTEMS
WO2016197314A1 (en) 2015-06-09 2016-12-15 Microsoft Technology Licensing, Llc Robust encoding/decoding of escape-coded pixels in palette mode
US10148977B2 (en) 2015-06-16 2018-12-04 Futurewei Technologies, Inc. Advanced coding techniques for high efficiency video coding (HEVC) screen content coding (SCC) extensions
US11330278B2 (en) * 2016-12-23 2022-05-10 Telefonaktiebolaget Lm Ericsson (Publ) Chroma adjustment with color components in color spaces in video coding
US10863190B2 (en) * 2018-06-14 2020-12-08 Tencent America LLC Techniques for memory bandwidth optimization in bi-predicted motion vector refinement
US11695919B2 (en) * 2018-08-28 2023-07-04 Google Llc Lossy image compression using palettization of locally mixed colors
CA3111679C (en) * 2018-09-19 2023-10-03 Huawei Technologies Co., Ltd. Method for skipping refinement based on patch similarity in bilinear interpolation based decoder-side motion vector refinement
WO2020180424A1 (en) 2019-03-04 2020-09-10 Iocurrents, Inc. Data compression and communication using machine learning
WO2020182113A1 (en) * 2019-03-10 2020-09-17 Beijing Bytedance Network Technology Co., Ltd. Combined screen content coding mode
US11202101B2 (en) * 2019-03-13 2021-12-14 Qualcomm Incorporated Grouped coding for palette syntax in video coding
US11070816B2 (en) 2019-06-18 2021-07-20 Tencent America LLC Conversion of decoded block vector for intra picture block compensation
JP2022548582A (ja) * 2019-09-12 2022-11-21 バイトダンス インコーポレイテッド 映像符号化におけるパレット予測子の使用
WO2021060845A1 (ko) * 2019-09-23 2021-04-01 엘지전자 주식회사 사용자 정의 팔레트 엔트리를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
CN114521328A (zh) 2019-09-23 2022-05-20 Lg电子株式会社 使用调色板模式的图像编码/解码方法和装置及发送比特流的方法
CN111225214B (zh) * 2020-01-22 2022-08-12 北京字节跳动网络技术有限公司 视频处理方法、装置及电子设备
KR102639534B1 (ko) * 2020-03-27 2024-02-22 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 팔레트 모드를 사용한 비디오 코딩 방법 및 장치
US11595694B2 (en) * 2020-04-01 2023-02-28 Tencent America LLC Method and apparatus for video coding
US11496731B2 (en) * 2020-06-08 2022-11-08 Tencent America LLC String matching with single color value
EP4241446A4 (en) * 2020-12-06 2024-05-01 Zhejiang Dahua Technology Co VIDEO PROCESSING SYSTEMS AND METHODS

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100158400A1 (en) 2008-12-19 2010-06-24 Microsoft Corporation Accelerated Screen Codec
US20160323594A1 (en) 2013-12-27 2016-11-03 Hfi Innovation Inc. Method and Apparatus for Major Color Index Map Coding

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6819793B1 (en) * 2000-06-30 2004-11-16 Intel Corporation Color distribution for texture and image compression
US7016547B1 (en) * 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
US7847755B1 (en) * 2005-05-23 2010-12-07 Glance Networks Method and apparatus for the identification and selective encoding of changed host display information
US7548657B2 (en) * 2005-06-25 2009-06-16 General Electric Company Adaptive video compression of graphical user interfaces using application metadata
US8199812B2 (en) * 2007-01-09 2012-06-12 Qualcomm Incorporated Adaptive upsampling for scalable video coding
US7864193B2 (en) * 2007-07-02 2011-01-04 International Business Machines Corporation RGB color conversion palettes
CN102113326A (zh) * 2008-08-04 2011-06-29 杜比实验室特许公司 重叠块差异估计和补偿体系结构
US8254704B2 (en) * 2008-10-30 2012-08-28 Microsoft Corporation Remote computing platforms providing high-fidelity display and interactivity for clients
US20120106650A1 (en) * 2010-08-24 2012-05-03 Siegman Craig S Method and System for Block and DVC Compression

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100158400A1 (en) 2008-12-19 2010-06-24 Microsoft Corporation Accelerated Screen Codec
US20160323594A1 (en) 2013-12-27 2016-11-03 Hfi Innovation Inc. Method and Apparatus for Major Color Index Map Coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PU W et al: "AHG10: Suggested Software for Palette Coding based on RExt6.0", JCTVC-Q0094, 19 March 2014.

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200107746A (ko) * 2019-03-08 2020-09-16 소니 주식회사 이미지 압축을 위한 하이브리드 팔레트-dpcm 코딩
KR102267206B1 (ko) * 2019-03-08 2021-06-22 소니그룹주식회사 이미지 압축을 위한 하이브리드 팔레트-dpcm 코딩
US11503311B2 (en) 2019-03-08 2022-11-15 Sony Group Corporation Hybrid palette-DPCM coding for image compression

Also Published As

Publication number Publication date
EP3143766A1 (en) 2017-03-22
KR20170016958A (ko) 2017-02-14
CN106797457A (zh) 2017-05-31
CN106797457B (zh) 2018-10-30
WO2015200690A1 (en) 2015-12-30
BR112016030696B1 (pt) 2023-11-21
CA2953505C (en) 2019-05-21
AU2015279791A1 (en) 2017-01-12
CA2953505A1 (en) 2015-12-30
EP3143766A4 (en) 2017-05-17
RU2654200C1 (ru) 2018-05-17
JP6524118B2 (ja) 2019-06-05
US20150381994A1 (en) 2015-12-31
JP2017525204A (ja) 2017-08-31
BR112016030696A2 (pt) 2018-07-17

Similar Documents

Publication Publication Date Title
KR101906740B1 (ko) 개선된 팔레트 테이블 및 인덱스 맵 코딩 방법들을 이용한 진보된 스크린 콘텐츠 코딩
EP3053339B1 (en) Advanced screen content coding with improved palette table and index map coding methods
US10674146B2 (en) Method and device for coding residual signal in video coding system
KR101972936B1 (ko) 스크린 콘텐츠 코딩 솔루션
US10638143B2 (en) Advanced screen content coding with improved color table and index map coding methods
CN114009018A (zh) 用于基于交叉分量相关性来减小视频编码中的重构误差的系统和方法
US10075725B2 (en) Device and method for image encoding and decoding
KR20200112964A (ko) 변환 도메인에서 잔차 부호 예측 방법 및 장치
US10694187B2 (en) Method and device for deriving block structure in video coding system
US10284864B2 (en) Content initialization for enhancement layer coding
US11202101B2 (en) Grouped coding for palette syntax in video coding
EP4035385A1 (en) Simplified palette predictor update for video coding
TWI784345B (zh) 用於將編碼樹單元編碼與解碼的方法、設備及系統
CN116980594A (zh) 帧内预测方法、编码器、解码器以及存储介质
US20230171415A1 (en) Tile and slice partitioning in video processing
KR20220024658A (ko) 비디오 데이터의 변환-스킵 잔차 코딩
JP2024502109A (ja) ビデオコーディング用の残差および係数のコーディング
CN114902670A (zh) 用信号通知子图像划分信息的方法和装置
CN113497935A (zh) 视频编解码方法及设备
AU2023200618A1 (en) Systems and methods for end-to-end feature compression in coding of multi-dimensional data
CN111684797A (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