KR20230073303A - 계층적 팔레트 테이블 생성을 이용하는 팔레트 모드 비디오 인코딩 - Google Patents

계층적 팔레트 테이블 생성을 이용하는 팔레트 모드 비디오 인코딩 Download PDF

Info

Publication number
KR20230073303A
KR20230073303A KR1020237013720A KR20237013720A KR20230073303A KR 20230073303 A KR20230073303 A KR 20230073303A KR 1020237013720 A KR1020237013720 A KR 1020237013720A KR 20237013720 A KR20237013720 A KR 20237013720A KR 20230073303 A KR20230073303 A KR 20230073303A
Authority
KR
South Korea
Prior art keywords
palette
palette table
colors
block
level
Prior art date
Application number
KR1020237013720A
Other languages
English (en)
Inventor
웨이 가오
양 리우
이하브 아메르
잉 루오
슈-시엔 사무엘 우
에드워드 해롤드
펭 판
크리스탈 사우
가보르 시네스
Original Assignee
에이티아이 테크놀로지스 유엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에이티아이 테크놀로지스 유엘씨 filed Critical 에이티아이 테크놀로지스 유엘씨
Publication of KR20230073303A publication Critical patent/KR20230073303A/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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/136Incoming video signal characteristics or properties
    • 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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

인코더[102]는 이미지 부분[122]을 레벨들의 파티셔닝 계층구조로 재귀적으로 파티셔닝함으로써 그 부분을 인코딩한다. 최상위 레벨은 전체 부분을 나타내는 단일 블록을 갖고, 각 보다 낮은 레벨은 보다 높은 레벨에서의 대응하는 보다 큰 블록을 나타내는 네 개의 보다 작은 블록들을 갖는다. 팔레트 테이블[124]은 연관된 블록의 픽셀들에 기초하여 각 최하위 레벨 블록에 대해 생성된다. 각 연속적으로 더 높은 레벨에 대해, 인코더는 다음으로 낮은 레벨에서의 연관된 네 개의 블록들에 대한 네 개의 팔레트 테이블들로부터의 팔레트 색상들에 기초하여 팔레트 색상들을 선택함으로써 각 현재 레벨 블록에 대한 팔레트 테이블을 생성한다. 이어서, 파티셔닝 계층구조에 대해 생성된 팔레트 테이블들로부터 선택된 최종 팔레트 테이블에 기초하여 색상 인덱스 맵[126]이 생성된다. 이어서, 인코딩된 비트스트림[108]의 대응하는 세그먼트를 생성하기 위해 최종 팔레트 테이블 및 색상 인덱스 맵을 사용하여 그 부분의 표현이 인코딩된다.

Description

계층적 팔레트 테이블 생성을 이용하는 팔레트 모드 비디오 인코딩
특정 비디오 애플리케이션은 원격 데스크톱 공유, 클라우드 컴퓨팅을 위한 가상 데스크톱 인프라스트럭처, 및 클라우드 게임 애플리케이션과 같은 "스크린 콘텐츠"(즉, 컴퓨터 생성 이미지 콘텐츠)의 송신을 수반한다. 이러한 스크린 콘텐츠는 그 자체로 또는 스크린 콘텐츠와 카메라-캡처된 비디오 콘텐츠의 조합을 나타내는 하이브리드 콘텐츠로서 송신된다. 그러나, 카메라-캡처된 비디오 콘텐츠, 스크린 콘텐츠, 및 특히 "데스크톱" 스크린 콘텐츠와는 달리, 일반적으로 텍스트 및 비교적 적은 잡음으로 날카로운 에지들을 제공하는 다른 컴퓨터-생성된 그래픽들이 풍부하다. 또한, 스크린 콘텐츠는 일반적으로 이미지의 로컬 영역 내에서 더 적은 수의 별개의 색상들을 나타낸다.
일부 비디오 인코딩 표준들은 스크린 콘텐츠의 더 효율적인 인코딩을 제공하기 위해 카메라-캡처된 비디오에 비해 스크린 콘텐츠에 의해 일반적으로 나타나는 비교적 낮은 수의 색상들 및 비교적 높은 콘트라스트를 활용하도록 확장되었다. 예를 들어, ITU-T 고효율 비디오 코딩(High-Efficiency Video Coding, HEVC) 표준은 팔레트 색상 선택에 뒤이어 팔레트 색상 선택에 기초한 색상 인덱스 맵의 생성을 수반하는 팔레트 모드를 구현하는 스크린 콘텐츠 코딩(Screen Content Coding, SCC) 확장을 제공한다. 이 프로세스에서, 인코딩되고 있는 스크린 콘텐츠를 포함하는 이미지의 각 부분에 대해(즉, 각 코딩 유닛에 대해), 인코더는 그 부분에서 찾아지는 일부 최상위 수의 대표 색상들(예를 들어, 최상위 8개의 색상들)을 식별하고, 식별된 대표 색상들 각각을 인덱싱하는(즉, 각각에 인덱스를 맵핑하는) 팔레트 테이블을 생성한다. 이어서, 인코더는 이미지의 부분 내의 각 픽셀을 그 픽셀의 색상과 가장 근접하게 매칭하는 팔레트 테이블로부터의 팔레트 색상의 대응하는 인덱스 값으로 대체하여, 인코딩되고 있는 이미지 부분에 대한 대응하는 색상 인덱스 맵을 생성한다. 팔레트 테이블 및 색상 인덱스 맵은 이어서, 식별된 팔레트 색상들 중 임의의 것과 과도하게 상이한 이미지 부분으로부터의 픽셀들(이들 픽셀들은 "이스케이프" 픽셀들로 지칭됨)에 관한 정보와 함께 인코딩되어, 이어서 목적지 디바이스로 송신되는 인코딩된 비트스트림의 대응하는 세그먼트를 생성한다. 이어서, 목적지 디바이스는 비트스트림을 디코딩하여 디코딩된 블록에 대한 팔레트 테이블 및 색상 인덱스 맵을 획득하고, 이들 값들 및 임의의 연관된 디코딩된 잔차들로부터, 원래 블록을 손실적으로 또는 손실 없이 복원한다. Open Media Video 1(AV1) 코딩 표준 연합은 유사한 팔레트 모드 구현을 제공한다.
인코딩될 주어진 이미지 부분에 대한 팔레트 테이블을 생성하기 위한 종래의 프로세스는 전체 이미지 부분의 픽셀 색상들 모두의 단일 히스토그램을 생성한 다음, 이 히스토그램으로부터 팔레트 테이블에 대한 대표 색상들을 선택하는 것을 수반한다. 콤팩트한 비트스트림을 제공하는 동안, 이 팔레트 테이블 생성 프로세스는 계산 집약적일 수 있고, 이에 따라 실리콘 영역, 처리량 및 전력 소비의 관점에서 상당한 하드웨어 자원을 필요로 한다. 예시하자면, 위에서 설명된 HEVC-SCC 표준은 각각 128x128 픽셀들까지의 코딩 유닛 크기들을 제공하며, 이는 인코딩될 이미지의 각 이러한 코딩 유닛에 대해, 종래의 팔레트 테이블 생성 프로세스를 구현하는 인코더가 ― 이미지의 해상도에 의존하여 임의의 주어진 이미지에 수백 또는 심지어 수천 개가 존재하는 ― 각 128X128 코딩 유닛에 대한 대응하는 히스토그램을 생성하기 위해 16,384 픽셀들을 처리할 필요가 있음을 의미한다. 이 프로세스는 인코딩 시스템이 HEVC 표준 및 다른 유사한 코딩 표준들의 전형적인 8x8, 16x16, 32x32, 64x64, 및 128x128 코딩 유닛 파티션들 중 임의의 것 또는 전부에 기초하여 스크린 콘텐츠 비디오의 인코딩을 지원할 수 있는 것과 같이, 다수의 코딩 파티션들을 동시에 지원하도록 구성될 때 더 복잡하다.
첨부 도면을 참조함으로써 본 개시가 보다 잘 이해되고, 그의 많은 특징 및 이점이 당업자에게 명백해진다. 상이한 도면에서의 동일한 도면 부호의 사용은 유사하거나 동일한 아이템을 나타낸다.
도 1은 일부 실시예들에 따른, 스크린 콘텐츠를 포함하는 비디오의 팔레트 모드 인코딩을 위한 계층적 팔레트 테이블 생성을 이용하는 팔레트 모드 인코더를 갖는 소스 디바이스의 블록도이다.
도 2는 일부 실시예들에 따른 도 1의 팔레트 모드 인코더에 의해 구현된 계층적 팔레트 테이블 생성을 이용하는 팔레트 모드 인코딩 프로세스를 도시한 흐름도이다.
도 3은 일부 실시예들에 따른 계층구조의 상이한 레벨들에서 코딩 유닛의 픽셀들의 블록들의 세트들로의 예시적인 재귀적 계층적 파티셔닝을 도시한 도해이다.
도 4-1 및 도 4-2는 일부 실시예들에 따른 도 3의 코딩 유닛의 예시적인 재귀적 파티셔닝을 사용하는 도 2의 방법의 예시적인 구현을 도시한 블록도들이다.
코딩 유닛(coding unit, CU)에 표현된 모든 픽셀의 히스토그램 분석 또는 다른 클러스터링에 기초한 팔레트 모드 인코딩에서의 CU에 대한 팔레트 테이블 생성의 전형적인 접근법은 특히, 다수의 동시 CU 파티션들을 지원하는 보다 큰 CU 파티션들 또는 인코더들에 대해, 계산적으로 과중하다. 충분한 색상 재생 정확도를 유지하면서 계산 복잡도를 감소시키기 위해, 본원에서 설명되는 시스템들 및 방법들은 팔레트 모드에서 인코딩될 선택된 CU에 대한 하나 이상의 선택된 파티션 크기 각각에 대한 팔레트 테이블을 효율적으로 생성하기 위해 계층적 팔레트 테이블 생성 프로세스를 이용한다. 이러한 접근법에서, 선택된 CU는 파티션 계층구조의 상이한 레벨들에서 재귀적으로 파티셔닝된다. 최상위 레벨에서, KxK 픽셀들의 선택된 CU는 KxK 픽셀들의 단일 블록에 의해 표현된다. 최상위 레벨 아래의 각 연속적인 레벨은 다음으로 높은 레벨에서의 픽셀들의 대응하는 보다 큰 블록을 나타내는 픽셀들의 네 개의 보다 작은 블록을 갖는다. 파티셔닝 계층구조의 최하위 레벨에서, 인코더는 최하위 레벨에서의 각 블록에 대한 팔레트 테이블을 생성한다. 이들 팔레트 테이블들 각각은 대응하는 블록에 존재하는 픽셀 색상들을 나타내는 팔레트 색상들의 세트를 포함하고, 적어도 일 실시예에서, 블록에 존재하는 픽셀 색상들의 히스토그램 분석을 통해, k-평균을 통해, 또는 다양한 다른 클러스터링 방법들 중 임의의 것을 통해 선택된다. 그 후, 파티셔닝 계층구조에서의 연속적으로 더 높은 레벨 각각에 대해, 인코더는 현재 레벨에서의 블록에 대응하는 다음으로 낮은 레벨에서의 네 개의 블록들과 연관된 네 개의 팔레트 테이블들로부터의 팔레트 색상들에 기초하여 팔레트 테이블에 대한 팔레트 색상들을 선택함으로써 현재 레벨에서의 각 블록에 대한 팔레트 테이블을 생성한다. 이는 또한 히스토그램 컬렉션 또는 네 개의 팔레트 테이블들의 팔레트 색상들의 다른 클러스터링을 통해 수행될 수 있다. 이어서, 최상위 레벨에서, ― 선택된 CU에 대한 색상 인덱스 맵을 생성하기 위해 인코더가 사용하는 ― 다음으로 높은 레벨에서의 네 개의 팔레트 테이블들로부터 이 레벨에서의 단일 팔레트 테이블이 생성된다. 이어서, 인코더는 인코딩된 비트스트림의 대응하는 세그먼트를 생성하기 위해 최종 팔레트 테이블 및 색상 인덱스 맵을 사용하여 CU의 표현을 인코딩한다.
예시적인 32x32 코딩 유닛 파티션(즉, K=32) 및 8x8 픽셀들의 최소 블록 크기를 사용하는 것을 예시하자면, CU는 최상위 레벨에서의 최상위 블록으로서 지정되고, 다음으로 높은 레벨에 대해 최상위 블록은 각각 16x16 픽셀들의 4개의 두 번째 레벨 블록들로 되며, 이어서 이들 블록들 각각은 각각 8x8 픽셀들의 네 개의 세 번째 레벨 블록들로 파티셔닝된다. 가장 낮은 또는 최하위 레벨(이 예에서 세 번째 레벨)에서 시작하여, 인코더는 히스토그램 분석, k-평균 분석, 또는 다른 통계적 분석을 사용하여 이 레벨에서의 블록들 각각에 대한 초기 팔레트 테이블을 생성하여, 최하위 레벨에 대한 네 개의 팔레트 테이블들을 생성한다. 참조의 용이함을 위해, 히스토그램 컬렉션(또한 히스토그램 분석으로서 식별됨)을 이용하는 예시적인 구현들이 본원에서 설명되지만, 히스토그램 컬렉션/분석에 대한 지칭은 달리 언급되지 않는 한, 다양한 클러스터링 방법들 또는 다른 통계적 방법들 중 k-평균 분석과 같은 임의의 것에 대한 지칭을 포함할 것이라는 것이 이해될 것이다. 두 번째로 낮은 파티셔닝 계층구조 레벨에서, 인코더는 두 번째로 낮은 레벨에서의 블록을 함께 형성하는 최하위 레벨에서의 네 개의 구성 블록들의 네 개의 팔레트 테이블들에 표현된 팔레트 색상들로부터 후보 색상들의 세트를 식별한다. 인코더는 이 후보 색상들의 세트의 통계적 분석을 통해 두 번째로 낮은 레벨에서의 블록에 대한 중간 팔레트 테이블을 결정한다. 이러한 프로세스는 두 번째로 낮은 레벨에서의 세 개의 다른 블록들 각각에 대해 반복되어, 두 번째로 낮은 레벨에 대해 생성된 네 개의 중간 팔레트 테이블들을 생성한다. 이어서, 최상위 레벨에서, 인코더는 최상위 레벨에서 단일 블록을 함께 형성하는 두 번째로 낮은 레벨에서의 네 개의 구성 블록들의 네 개의 팔레트 테이블들에 표현된 팔레트 색상들로부터 후보 색상들의 세트를 식별한다. 인코더는 이 후보 색상들의 세트의 통계적 분석을 통해 (전체 CU를 나타내는) 이 블록에 대한 중간 팔레트 테이블을 결정한다. 이어서, 인코더는 각 파티셔닝 계층 레벨에 대해, 해당 레벨에서의 대응하는 팔레트 테이블을 사용하여 CU를 인코딩하기 위한 율-왜곡(rate-distortion) 비용을 추정한다. 이어서, 가장 낮은 율-왜곡 비용을 필요로 하는 팔레트 테이블이 CU에 대한 "최종" 팔레트 테이블로서 지정되고, 이어서 인코더는 최종 팔레트 테이블을 사용하여 선택된 KxK 코딩 유닛에 대한 색상 인덱스 맵을 생성하고, 색상 인덱스 맵, 최종 팔레트 테이블, 및 존재하는 임의의 이스케이프 픽셀들에 대한 임의의 양자화된 잔차들을 인코딩하여, 인코딩된 비트스트림의 대응하는 부분을 생성하며, 이는 이어서 나중의 액세스를 위해 저장되거나 목적지 디바이스로 송신될 수 있으며, 이에, 목적지 디바이스에서의 디코더가 비트스트림을 디코딩하여 코딩 유닛에 대한 인코딩된 팔레트 테이블, 색상 인덱스 맵, 및 양자화된 잔차들을 복원하고, 복원된 팔레트 테이블, 색상 인덱스 맵, 및 잔차들을 사용하여 원래의 CU, 또는 이의 손실있는 표현을 복원한다.
다음으로 낮은 레벨에서의 구성 블록들에 대해 생성된 팔레트 테이블로부터 각 레벨에서의 픽셀들의 블록들에 대한 팔레트 테이블을 결정하기 위한 이러한 계층적 및 재귀적 파티셔닝 프로세스는 보다 낮은 레벨에서의 팔레트 색상 선택 프로세스의 보다 높은 레벨에서의 팔레트 색상 선택 프로세스로의 통합을 통해 고려되는 색상들의 수의 감소를 통해 효율적인 팔레트 테이블 생성을 제공한다. 예시하자면, 64x64 CU에 대한 팔레트 테이블을 생성하기 위한 종래의 프로세스는 예를 들어, 여덟 개의 대표 색상들의 팔레트 테이블에 도달하기 위해 인코더가 CU에서의 4,096 픽셀들 각각을 소트 및 카운트할 것을 필요로 할 것이다. 그러나, 본원에서 설명되는 계층적 팔레트 색상 선택 프로세스 하에서는, 픽셀들의 작은 서브세트들만이 가장 낮은 레벨에서의 상대적으로 작은 블록 단위로 소트 및 카운트되고, 이어서 하나의 레벨에서의 각 블록의 대표 색상들의 작은 서브세트들만이 다음으로 가장 높은 레벨에서의 대응하는 블록들에 대해 고려되어, 주어진 크기의 CU에 대한 최종 팔레트 테이블에 도달하기 위한 전체 동작들이 적어지고 이에 따라 CU에 대한 팔레트 테이블을 생성하기 위한 프로세스가 보다 효율적이게 되면서, 또한 CU의 개별 파티션 크기에 사용될 수 있는 파티셔닝 계층구조의 각 레벨에서의 개별 팔레트 테이블을 생성할 수 있게 한다.
도 1은 일부 실시예들에 따라 계층적으로 그리고 재귀적으로 생성되는 팔레트 테이블들을 이용하는 팔레트 모드 인코딩 프로세스를 채용하는 인코딩 시스템(102)을 갖는 소스 디바이스(100)를 도시한다. 소스 디바이스(100)는 디스플레이 디바이스로 송신하거나 디스플레이 디바이스에 저장하기 위한 스크린 콘텐츠를 생성하는 다양한 애플리케이션들 중 임의의 것을 지원하는 서버, 개인용 컴퓨터, 태블릿 컴퓨터, 셀 폰, 또는 다른 컴퓨트 인에이블 모바일 디바이스를 포함하여, 스크린 콘텐츠를 포함하는 비디오 스트림들을 인코딩하도록 구성된 다양한 디바이스들 중 임의의 것을 포함할 수 있다. 이러한 서비스들은 예를 들어, 원격 데스크톱 서비스들, 무선 디스플레이 서비스들, 스크린 공유/협업 서비스들, 클라우드 게이밍 서비스들 등을 포함한다. 소스 디바이스(100)는 비디오 소스(104) 및 인코딩 시스템(102)뿐만 아니라, 하나 이상의 무선 또는 유선 네트워크 인터페이스, 입력/출력(I/O) 디바이스 및 이의 제어기, 하나 이상 프로세서, 메모리 및 다른 저장 구성요소 등을 포함하여, 예시의 용이함을 위해 도 1로부터 생략된 다양한 다른 구성요소들을 포함한다. 비디오 소스(104)는 인코딩 시스템(102)에 의해 네트워크 인터페이스(도시되지 않음)를 통한 목적지 디바이스로의 송신을 위해 제공되거나 또는 그 외 출력을 위해, 이를테면 후속 액세스에 이용 가능하게 로컬 또는 네트워크 저장 디바이스(도시되지 않음)에 저장하기 위해 제공되는 대응하는 비트스트림(108)으로의 인코딩을 위한 일련의 이미지들(106)("픽처들" 또는 "프레임들"로도 통칭됨)로 구성된 비디오 스트림을 생성하거나 또는 그 외 제공하도록 동작한다. 비디오 소스(104)는 예를 들어, 각 이미지(106)에 포함된 콘텐츠의 일부 또는 전부를 렌더링하도록 동작하는 그래픽 처리 장치(GPU), 스크린 콘텐츠 또는 다른 이미지 콘텐츠를 나타내는 이전에 인코딩된 비디오 데이터를 디코딩하는 디코더 등을 포함할 수 있다.
적어도 일 실시예에서, 비디오 소스(104)로부터의 스트림에 포함된 이미지들(106) 중 일부 또는 전부는 부분적으로 또는 전체적으로 컴퓨터-생성된 스크린 콘텐츠로 구성되며, 이는 전형적으로 카메라-캡처된 비디오 이미지와 비교해 국소 영역에서 보다 예리한 콘트라스트 및 보다 적은 색상들을 보인다. 이에 따라, 인코딩 시스템(102)은 스크린 콘텐츠를 포함하는 것으로서 대응하는 스트림의 일부로서 또는 개별적으로 식별되는 이들 이미지들(106)의 팔레트 기반 인코딩(또는 "팔레트 모드" 인코딩)을 제공하도록 구성된다. 이를 위해, 인코딩 시스템(102)은 계층적 팔레트 테이블 생성기(110)(이하, 간결하게 하기 위해 "팔레트 테이블 생성기(110)"), 색상 인덱스 맵 생성기(112), 잔차 생성기(114), 이산 코사인 변환(OCT) 양자화기(116), 엔트로피 인코더(118)를 포함한다. 구성요소들(110, 112, 114, 116, 및 118)의 일부 또는 전부는 본원에서 설명되는 프로세스들을 수행하도록 하나 이상의 프로세서를 조작하도록 구성되고 시스템 메모리 또는 다른 비일시적인 컴퓨터 판독 가능한 저장 매체에 저장된 소프트웨어 명령어들을 실행하는 하나 이상의 프로세서로서 소스 디바이스(100)에서 구현될 수 있다. 다른 실시예들에서, 구성요소들(110, 112, 114, 116, 및 118)의 일부 또는 전부는 하드 코딩된 로직(예를 들어, 주문형 집적 회로 또는 ASIC), 프로그래밍 가능한 로직(예를 들어, 프로그래밍 가능한 로직 어레이), 또는 이들의 조합으로 구현된다. 더욱이, 일부 실시예들에서, 구성요소들(110, 112, 114, 116, 및 118) 중 일부 또는 전부는 소프트웨어 및 하드코딩되거나 프로그래밍 가능한 로직을 실행하는 하나 이상의 프로세서의 조합으로 구현된다.
도 2는 일부 실시예들에 따른 계층적 및 재귀적 팔레트 테이블 생성 프로세스를 사용하여 스크린 콘텐츠를 포함하는 이미지들의 팔레트 모드 인코딩을 위한 인코딩 시스템(102)의 동작 방법(200)을 예시한다. 예시의 용이함을 위해, 아래의 방법(200)을 설명하는 데 있어서, 도 3에 의해 도시되는 CU의 예시적인 계층적 파티셔닝 및 도 4-1 및 도 4-2에 의해 도시되는 방법(200)의 예시적인 구현예를 참조한다.
방법(200)은 인코딩 시스템(102)이 이미지들(106)의 스트림의 일부로서 비디오 소스(104)로부터 이미지(106)를 수신하는 블록(202)에서 개시한다. 예를 들어, 일부 구현예들에서, 각 이미지(106)는 비디오 소스(104)에 의해 생성되거나 또는 그 외 획득될 때, 소스 디바이스(100)의 프레임 버퍼(도시되지 않음)에 버퍼링된다. 다음에서, 수신된 이미지(106)는 팔레트 모드 인코딩으로부터 이익을 얻기에 충분한 스크린 콘텐츠를 포함하는 것으로 가정된다. 예시하자면, 일부 실시예들에서, 팔레트 모드는 CU 단위로 채용되고, 인코딩 시스템(102)은 다른 예측 모드들의 율-왜곡 비용(들)과 비교해 팔레트 모드를 사용하여 현재 CU를 인코딩하는 율-왜곡 비용을 계산하고, 이것이 인코딩 옵션들 중 가장 낮은 율-왜곡 비용을 나타낸다면 현재 CU에 대한 팔레트 모드 인코딩을 이용한다. 그렇지 않다면, 팔레트 모드가 이미지(106)에 대해 지시되지 않는 경우에서, 이미지(106)는 HEVC에 의해 공표된 것과 같은 적합한 종래의 인코딩 기법을 이용하여 인코딩된다.
또한, 블록(202)에서, 인코딩 시스템(102)은 이미지(106)에 의해 표현된 픽셀들의 JxK 어레이를 도 1의 코딩 유닛(CU)들(122-1 및 122-2)과 같은 2차원 CU들(122)의 어레이(120)(도 1)로 논리적으로 파티셔닝한다. ITU-T Rec. H.264 표준들에서 찾아지는 바와 같은 특정 구현예들에서, CU들은 모두 동일한 크기이다(그리고 CU들은 전형적으로 대신 "매크로블록들"로서 지칭된다). ITU-T Rec. H.265 표준들에서 찾아지는 바와 같은 다른 구현예들에서, 이미지는 복수의 코딩 트리 유닛(coding tree unit, CTU)들로 파티셔닝될 수 있으며, 각 CTU는 상이한 크기들의 복수의 CU들로 추가로 파티셔닝된다. 예시의 용이함을 위해, 이미지(106)에 대한 어레이(120)의 CU들(122)은 동일한 크기인 것으로 도시되지만, 다른 구현예들에서, 어레이(120)는 전술된 CTU 구성에서와 같이, 상이한 크기들의 CU들(122)로 구성될 수 있다.
블록(204)에서, 인코딩 시스템(102)은 인코딩될 이미지(106)의 CU(122)(예를 들어, 도 1의 CU(122-1))를 선택한다. HEVC 표준들과 같은 다양한 표준들에 따라, 이미지(106)는 먼저 복수의 슬라이스들로 파티셔닝되고, 이어서 각 슬라이스는 복수의 CTU들로 파티셔닝된 후, 각 CTU는 복수의 CU들로 파티셔닝되며, 이어서 슬라이스-CTU-CU의 선택은 정의된 순서로 진행될 수 있다. CU(122)가 선택되면, 블록(206)에서, 팔레트 테이블 생성기(110)는 CU(122)가 가장 낮은 파티셔닝 레벨에서의 최소 블록 크기에 도달할 때까지 파티셔닝 계층구조의 각 파티셔닝 레벨에서의 점점 더 작은 크기들의 연속적인 픽셀 블록들로 하향식 접근법으로 재귀적으로 파티셔닝되는 재귀적 및 계층적 팔레트 테이블 생성 프로세스를 이용한다. 이어서, 상향식 접근법을 사용하여, 팔레트 테이블 생성기(110)는 가장 낮은 파티셔닝 레벨에서의 각 블록의 픽셀들에 대해 히스토그램 컬렉션 또는 다른 클러스터링을 수행하여, 각 가장 낮은 레벨 블록에 대한 대응하는 팔레트 테이블에 팔레트 색상들로서 포함하기 위한 후보 색상들의 세트를 결정한다. 두 번째로 낮은 파티셔닝 레벨에 대해, 두 번째로 낮은 레벨 블록에 의해 표현된 다수의 가장 낮은 레벨 블록들 각각의 팔레트 테이블들로부터의 팔레트 색상들이 두 번째로 낮은 레벨 블록에 대한 후보 색상들로서 역할을 하고, 이에 따라 팔레트 테이블 생성기(110)는 두 번째로 낮은 레벨에서의 블록에 대한 팔레트 테이블에 포함하기 위한 색상들을 식별하기 위해 이들 후보 색상들에 대한 히스토그램 컬렉션 또는 다른 클러스터링을 수행한다. 이러한 프로세스는 두 번째로 낮은 레벨에서의 각 블록에 대해 수행된다. 다음으로 낮은 레벨에서의 각 구성 블록에 대해 생성된 각 팔레트 테이블의 팔레트 색상들을 다음으로 높은 레벨의 대응하는 블록의 팔레트 테이블에 대한 선택을 위한 후보 색상들로서 사용하는 프로세스는 (그 전체가 CU(122)를 나타내는) 파티셔닝 계층구조의 최상위 레벨까지 반복되며, 이 시점에서 팔레트 테이블 생성기(110)는 파티셔닝 계층구조의 두 번째로 높은 레벨에서의 생성된 팔레트 테이블들의 팔레트 색상들의 히스토그램 컬렉션 또는 다른 클러스터링을 통해 최상위 레벨에 대한 팔레트 테이블을 생성한다. 즉, 팔레트 테이블 생성기(110)는 보다 작은 파티션들의 팔레트 테이블들을 재귀적으로 그리고 계층적으로 통합함으로써 CU(122)의 보다 큰 파티션들에 대한 중간 팔레트 테이블들을 생성한다. 이는 팔레트 테이블을 생성하기 위해 하나의 블록으로서 CU(122)의 픽셀들 전체를 남김 없이 소트 및 처리하는 계산 집약적인 종래의 프로세스를 회피한다. 각 파티셔닝 레벨(예를 들어, 8x8 픽셀들, 16x16 픽셀들, 32x32 픽셀들, 64x64 픽셀들, 128x128 픽셀들 등)에 대해 생성된 후보 팔레트 테이블로, 이어서 팔레트 테이블 생성기(110) 또는 인코딩 시스템(102)의 다른 구성요소는 대응하는 후보 팔레트 테이블을 사용하여 CU(122)를 인코딩하는 것에 대한 율-왜곡 비용을 계산하며, 이 계산은 각 후보 팔레트 테이블에 대해 수행된다. 이어서, 인코딩 시스템(102)은 CU(122)를 인코딩하는 것에 대한 가장 낮은 율-왜곡 비용을 나타내는 후보 팔레트 테이블을 "최종" 팔레트 테이블(124)로서 선택한다. 블록(206)에서 인코딩 시스템(102)에 의해 채용되는 계층적 팔레트 테이블 생성 및 선택 프로세스의 예시적인 구현예가 도 2의 확장된 프로세스 흐름(207)을 참조하여 아래에서 보다 상세하게 설명된다.
이러한 계층적 및 재귀적 팔레트 테이블 생성 및 선택 접근법을 사용하여 결정된 CU(122)에 대한 최종 팔레트 테이블(124)로, 블록(208)에서, 색상 인덱스 맵 생성기(112)는 CU(122)의 원래의 픽셀들 각각과 팔레트 테이블(124)에 표현된 팔레트 색상들의 비교에 기초하여 예측을 수행하여, CU(122)의 픽셀들을 나타내고 최종 팔레트 테이블(124)에 인덱싱되는 색상 인덱스 맵(126)을 생성한다. 다양한 표준 또는 독점 기법들 중 임의의 것이 최종 팔레트 테이블(124)로부터 색상 인덱스 맵(126)을 생성하기 위해 채용될 수 있다. 예시하자면, 당업계에서 이해되는 바와 같이, 최종 팔레트 테이블(124)과 같은 팔레트 테이블은 복수의 엔트리들을 포함하며, 각 엔트리는 연관된 인덱스 값, 및 대응하는 픽셀 블록의 색상 값들의 히스토그램 컬렉션 또는 다른 클러스터링에서 식별된 후보 색상들로부터 선택되는 대응하는 팔레트 색상을 갖는다. 각 팔레트 색상은 예를 들어, 세 개의 색상 성분들(RGB 또는 YCbCr)으로 구성된다. 이에 따라, 색상 인덱스 맵(126)을 생성하기 위해, CU(122)의 각 픽셀에 대해, 색상 인덱스 맵 생성기는 대응하는 팔레트 색상에 대해 최소 왜곡을 갖는 최종 팔레트 테이블(124)을 탐색하고, 픽셀 색상을 색상 인덱스 맵(126)의 대응하는 위치상의 엔트리에서 선택된 팔레트 수와 연관된 인덱스 수로 대체한다. 예시하자면, CU(122-1)의 (1,1)(즉, 행 1, 열 1)에서의 픽셀이, 예를 들어, 최종 팔레트 테이블(124)의 인덱스 1에서 찾아지는 팔레트 색상(R150, B50, G75)에 가장 가까운 색상을 갖는다고 가정한다. 이러한 경우에서, 색상 인덱스 맵 생성기(112)는 픽셀(1,1)의 색상이 최종 팔레트 테이블(124)의 인덱스 1에서 찾아지는 팔레트 색상과 가장 밀접하게 유사하다는 것을 나타내기 위해 색상 인덱스 맵(126)의 (1,1) 엔트리에 "1"의 인덱스 값을 둘 것이다.
또한, 일부 무손실 인코딩 구현예들에서, 색상 인덱스 맵 생성기(112)에 의해 수행되는 예측은 팔레트 색상과 충분히 유사하지 않았던 하나 이상의 픽셀을 식별하고, 이에 따라 그러한 픽셀들을 표현하기 위해 최종 팔레트 테이블(124)에서의 개별 인덱스 및 색상 인덱스 맵(126)에서의 대응하는 식별 엔트리들의 추가를 필요로 하며, 이들은 전형적으로 "이스케이프 픽셀들" 로서 지칭되고, 이에 따라 이들의 대응하는 인덱스들은 "이스케이프" 인덱스들로서 지칭된다. 손실 인코딩 구현예들에서, 이스케이프 픽셀들은 보통 어느 접근법이 보다 양호한 율-왜곡 트레이드오프를 제공하는지에 따라, 대신에 팔레트 색상들 중 하나로서 코딩되거나, 양자화 후에 명시적으로 시그널링된다.
블록(208)의 색상 인덱스 맵 생성 프로세스와 동시에, 블록(210)에서, 잔차 생성기(114)는 원래의 픽셀 색상들을 이들의 선택된 팔레트 색상들과 비교하여, 그 차이들을 표현하는 잔차들을 생성한다. 이들 잔차들은 DCT 양자화기(116)에 의해 양자화되어, 양자화된 DCT 계수들을 생성한다. 블록(212)에서, 엔트로피 인코더(118)는 비트스트림(108)의 대응하는 세그먼트로의 인코딩을 위해 선택된 CU(122)에 대한 팔레트 테이블(124), 색상 인덱스 맵(126), 및 양자화된 DCT 계수들을 인코딩한다.
블록들(204-212)에 의해 나타내어진 바와 같이 인코딩될 이미지(106)로부터 그 다음 CU(122)를 선택하는 프로세스는 팔레트 모드 인코딩될 이미지(106)의 각 CU(122)에 대해 반복된다. 그러한 모든 CU들이 인코딩된 후에, 송신 또는 저장을 위해 인코딩되는 비디오 스트림에서의 그 다음 이미지(106)의 수신과 함께 블록(202)에서 시작하여 방법(200)의 다른 반복이 반복된다.
인코딩된 비트스트림(108)의 후속 디코딩에 대해 말하자면, HEVC-SCC에 의해 제공되는 프로세스와 같이, 비트스트림(108)이 인코딩되었던 방법과 같은 다양한 표준 또는 독점 팔레트 모드 디코딩 프로세스들 중 임의의 것이 채용될 수 있다. 이러한 프로세스들은 전형적으로, 인코딩된 CU를 나타내는 비트스트림(108)의 각 세그먼트에 대해, 팔레트 모드 디코더가 세그먼트를 디코딩하여, 팔레트 테이블(124), 색상 인덱스 맵(126), 및 CU를 나타내는 양자화된 DCT 계수들을 복원하는 것을 수반한다. 양자화된 DCT 계수들은 잔차들의 손실 또는 무손실 표현들을 획득하기 위해 역양자화되고, 복원된 팔레트 테이블(124) 및 색상 인덱스 맵은 잔차들과 함께, 원래 CU(122)에 의해 표현된 픽셀들의 어레이, 또는 그 손실 표현을 복원하기 위해 사용된다.
위에서 언급된 바와 같이, 블록(206)의 프로세스는 파티셔닝 계층구조의 보다 낮은 레벨에 대해 생성된 중간 팔레트 테이블들을 효율적으로 통합하여 파티셔닝 계층구조의 보다 높은 레벨에서의 중간 팔레트 테이블들을 생성하는 계층적 및 재귀적 프로세스를 사용한 최종 팔레트 테이블(124)의 생성, 및 이들 후보 팔레트 테이블들로부터, CU(122)를 인코딩하는 것에 있어서의 사용에 대한 가장 낮은 율-왜곡 비용을 나타내는 최종 팔레트 테이블(124)의 선택을 제공한다. 확장된 프로세스 흐름(207)은 도 3에 나타내어진 예시적인 계층적 파티셔닝 및 도 4-1 및 도 4-2에 나타내어진 바와 같은 이러한 프로세스의 예시적인 수행을 참조하여, 이러한 프로세스의 예시적인 구현예를 도시한다.
블록(206)의 프로세스는 블록(220)에서 시작하며, 블록(204)에서 선택된 CU(122)가 가장 낮은 레벨(또는 최하위 레벨), 가장 높은 레벨(또는 최상위 레벨), 그리고 파티셔닝 계층구조의 깊이가 두 개보다 많은 레벨들이라면, 가장 낮은 레벨과 가장 높은 레벨 사이의 하나 이상의 중간 레벨로 구성된 파티셔닝 계층구조로 재귀적으로 파티셔닝된다. 최상위 레벨은 CU(122)의 픽셀 어레이 전체를 단일 최상위 레벨 블록으로서 나타낸다. 파티셔닝 계층구조의 각 연속적으로 더 낮은 레벨에 대해, 계층적 팔레트 테이블 생성기(110)는 가장 낮은 레벨에서, PxP 픽셀들의 최소 블록 크기에 도달할 때까지, 다음으로 높은 레벨에서의 각 블록을 네(4) 개의 블록들의 연관된 세트로 파티셔닝하며, 이에 의해 P는 1보다 큰 정수를 나타내고, 많은 구현예들에서, 채용되는 인코딩 표준에 의해 지원되는 최소 CU 크기이다. 예를 들어, HEVC는 CTU에서 8x8 픽셀들의 최소 CU를 제공하므로, 최소 블록 크기 P는 8로 설정될 것이다. 이와 같이, KxK 픽셀들의 CU(122)에 대한 파티셔닝 계층구조에서의 레벨들의 수 N은 아래의 식 1의 관계에 기초하여 설정된다:
K = P * 2(N-1)
이에 따라, 최소 블록 크기가 8x8 픽셀들(P = 8)이고 CU(122)가 16x16 픽셀들(K = 16)이라면, 단지 두 개의 파티션 레벨들(N = 2) ― 최상위 레벨 및 최하위 레벨 ― 이 존재할 것이다. 8x8 픽셀들(P=8)의 최소 블록 크기에 대해 CU(122)가 128x128 픽셀들이라면, 다섯 개의 파티션 레벨들(N=5) ― 최상위 레벨, 최하위 레벨, 및 이들 사이의 3개의 중간 레벨들 ― 이 존재할 것이다.
예시하자면, 이러한 재귀적 파티셔닝의 예가 도 3에 도시되어 있다. 도시된 예시적인 파티셔닝 계층구조(300)에서, 64x64 픽셀 CU는 8x8 픽셀들의 최소 블록 크기에 도달할 때까지 재귀적으로 파티셔닝된다. 이와 같이, 예시적인 파티셔닝 계층구조(300)는 네 개의 파티셔닝 계층구조들(64 = 8 * 2^(4-1) → N=4)을 갖는다. CU의 전체 64x64 픽셀 어레이는 파티셔닝 계층구조의 최상위 레벨(레벨 1)에서 단일 블록(BLK64)인 것으로 간주된다. 제1 중간 레벨(레벨 2)에서, CU의 64x64 픽셀들은 대응하는 네 개의 32x32 블록들 BLK[32,0] 내지 BLK[32,3]의 세트로 파티셔닝된다. 제2 중간 레벨(레벨 3)에서, 제1 중간 레벨에서의 32x32 블록들 각각은 대응하는 네 개의 16x16 블록들의 세트로 파티셔닝되어, 제2 중간 레벨에서의 블록들 BLK[16,0] 내지 BLK[16,15]이 생성된다. 도시된 바와 같이, 제1 중간 레벨(레벨 2)의 블록 BLK[32,0]은 대응하는 블록들 BLK[16,0], BLK[16,1], BLK[16,2], 및 BLK[16,3]의 세트로 파티셔닝된다. 마찬가지로, 제1 중간 레벨(레벨 2)에서의 블록 BLK[32,1]은 블록들 BLK[16,4], BLK[16,5], BLK[16,6], 및 BLK[16,7] 등으로 파티셔닝된다. 파티셔닝 계층구조(300)의 최하위 레벨(레벨 4)에서, 제2 중간 블록에서의 각 16x16 블록은 대응하는 네 개의 8x8 블록들의 세트로 파티셔닝되어, 블록들 BLK[8,0] 내지 BLK[8,63]을 생성한다. 도시된 바와 같이, 제2 중간 레벨에서의 BLK[16,0]은 블록들의 세트 BLK[8,0] 내지 BLK[8,3]로 파티셔닝된다. BLK[16,1]은 마찬가지로 블록들의 세트 BLK[8,4] 내지 BLK[8,7]로 파티셔닝되는 등이다.
도 2로 돌아가면, CU(122)가 파티셔닝 계층구조의 최상위 레벨로부터 최하위 레벨로 감소하는 크기들의 픽셀 블록들로 재귀적으로 파티셔닝되어서, 비최하위 레벨에서의 각 블록이 다음으로 낮은 레벨에서의 네 개의 보다 작은 블록들에 의해 표현되며, 블록(222)에서, 팔레트 테이블 생성기(110)는 처리되고 있는 현재 레벨을 파티셔닝 계층구조의 최하위 레벨로 설정하고, 파티셔닝 계층구조의 가장 낮은 레벨의 각 블록에 대해 별개의 팔레트 테이블을 생성한다. 적어도 일 실시예에서, 가장 낮은 레벨에서의 각 블록에 대한 팔레트 생성 프로세스는 블록의 픽셀들에 존재하는 픽셀 색상들의 대응하는 히스토그램을 생성하기 위해 픽셀 색상들을 비닝하는 것에 기초하여 각 블록에서의 픽셀들에 대해 히스토그램 컬렉션을 수행하는 것, 그리고 이어서, 대응하는 빈들의 크기들(즉, 각 빈 내에 속하는 픽셀 색상들의 수)에 기초하여 존재하는 픽셀 색상들의 X의 서브세트를 대응하는 팔레트 테이블의 팔레트 색상들로서 선택하는 것을 포함한다. 값 X는 선택 가능하거나 또는 그 외 프로그래밍 가능하고, 전형적으로 최소 블록 크기, 인코딩 효율, 인코딩 비트율 등을 포함하여, 다양한 파라미터들에 기초하여 선택된다. 예를 들어, 팔레트 테이블은 보통 열 여섯 개 이하의 팔레트 색상들로 제한되며, 8개 또는 16개(즉, X=8 또는 X=16)가 빈번한 구성들이다. 이에 따라, 도 3의 예시적인 파티셔닝 계층구조(300)에서, 팔레트 테이블 생성기(110)는 최하위 레벨(레벨 4)에서의 픽셀들의 예순 네 개의 8x8 블록들 각각에 대해 히스토그램 분석에 이용되는 소팅 및 다른 동작들을 개별적으로 수행하여 64개의 개별 히스토그램들을 생성하고, 이들 64개의 개별 히스토그램들로부터 64개의 개별 팔레트 테이블들을 생성할 것이며, 각 팔레트 테이블은 예를 들어, 16개까지의 인덱싱된 팔레트 색상들을 포함한다.
그 후, 블록(224)에서, 팔레트 테이블 생성기(110)는 한 레벨 위로 이동한다(즉, 처리되고 있는 현재 레벨이 다음으로 높은 레벨로 설정된다). 블록(226)에서, 팔레트 테이블 생성기(110)는 특정된 선택 순서(예를 들어, 수평 스캔 또는 수직 스캔)에 기초하여 처리되고 있는 현재 레벨의 블록을 선택한다. 블록(228)에서, 팔레트 테이블 생성기(110)는 현재 레벨의 선택된 블록에 대응하는 이전(또는 보다 낮은) 레벨에서의 블록들의 세트에 대해 생성된 팔레트 테이블들의 팔레트 색상들로부터 현재 레벨에서의 선택된 블록에 대한 팔레트 테이블을 생성한다. 적어도 일 실시예에서, 현재 레벨에서의 선택된 블록에 대한 팔레트 테이블은 보다 낮은 레벨 블록들의 팔레트 색상들을 후보 팔레트 색상들의 세트로 조합하고, 이어서 이러한 후보 팔레트 색상들의 세트의 히스토그램 컬렉션을 수행하여, 가장 빈번하게 출현하는 팔레트 색상들로 X개의 히스토그램 빈들을 식별하고, 식별된 X개의 히스토그램 빈들에 기초하여 X개의 팔레트 색상들을 포함하도록 현재 레벨에서의 선택된 블록에 대한 팔레트 테이블을 생성함으로써, 대응하는 보다 낮은 레벨 블록들의 세트의 팔레트 테이블들로부터 생성된다. (가장 낮은 중간 레벨에 대한) 블록(228)의 제1 반복에 대해, 이는 블록(222)에서 생성된 네 개의 가장 낮은 레벨 블록들에 대한 팔레트 테이블들에서 구현된 팔레트 색상들을 사용하는 것을 수반한다. (보다 높은 중간 레벨들 또는 최상위 레벨에 대한) 후속 반복들에 대해, 이는 블록(228)의 이전 반복에서 생성된 네 개의 다음으로 낮은 레벨 블록들에 대한 팔레트 테이블들에서 구현된 팔레트 색상들을 사용하는 것을 수반한다. 이에 따라, 히스토그램 컬렉션은 현재 레벨에서의 선택된 블록에 의해 표현되는 CU의 픽셀들 모두에 대해 히스토그램 컬렉션을 수행하는 것이 아니라, 그 대신에 보다 낮은 레벨 블록들의 팔레트 테이블들의 팔레트 색상들에 대해서만 수행되며, 이들은 파티셔닝 계층구조의 보다 높은 레벨들에서, 차례로, 훨씬 더 낮은 레벨 블록들의 팔레트 테이블들의 팔레트 색상들을 통합한다. 이와 같이, 종래의 모든 픽셀 히스토그램 분석 접근법과 비교해 이러한 회귀 접근법을 사용하여 픽셀들의 JxJ 블록에 대한 히스토그램 및 이에 따른 팔레트 테이블을 생성하는 데 상당히 더 적은 연산들이 요구된다.
생성된 현재 레벨에서의 선택된 블록에 대한 팔레트 테이블을 이용하여, 블록(230)에서, 팔레트 테이블 생성기(110)는 현재 레벨에서의 각 블록에 대한 개별 팔레트 테이블이 생성되었는지 여부를 결정한다. 그렇지 않다면, 블록들(226, 228, 및 230)의 블록 선택 및 블록당 팔레트 테이블 생성 프로세스의 또 다른 반복이 현재 파티셔닝 레벨에서의 CU의 다음 블록에 대해 수행된다. 그 외, 현재 파티셔닝 레벨에서의 모든 블록들이 이들에 대해 생성된 팔레트 테이블들을 가진다면, 블록(232)에서, 팔레트 테이블 생성기(110)는 임의의 보다 높은 파티셔닝 레벨들이 남아있는지 여부; 즉, 현재 레벨이 파티셔닝 계층구조의 최상위 레벨인지 여부를 결정한다. 그렇지 않다면, 팔레트 테이블 생성기(110)는 블록(224)으로 리턴하고, 처리되고 있는 현재 레벨을 파티셔닝 계층구조에서의 다음으로 높은 레벨로 셋팅하고, 이어서 처리되고 있는 현재 레벨에 대한 블록들(226-332)의 블록 선택 및 블록당 팔레트 테이블 생성 프로세스의 또 다른 반복을 셋팅한다.
그 외, 팔레트 테이블 생성기(110)가 인코딩되고 있는 CU(122)에 대한 파티셔닝 계층구조를 올라갔고 계층구조의 최상위 레벨에 있다면, 블록(234)에서, 인코딩 시스템(102)은 파티셔닝 계층구조의 각 레벨에서의 생성된 팔레트 테이블을 후보 팔레트 테이블로서 지정하고, 이어서 후보 팔레트 테이블들 각각에 대한 CU를 인코딩하는 것에 대한 율-왜곡 비용을 계산한다. CU(122)를 인코딩하는 것에 대한 가장 낮은 율-왜곡 비용을 필요로 하는 후보 팔레트 테이블이 CU(122)에 대한 최종 팔레트 테이블(124)로서 지정되고, 이어서 최종 팔레트 테이블(124)은 블록(208)을 참조하여 위에서 설명된 바와 같이 CU(122)에 대한 대응하는 색상 인덱스 맵(126)을 생성하는 데 색상 인덱스 맵 생성기(112)에 의해 사용된다.
이제 도 4-1 및 도 4-2를 참조하면, 도 2의 방법(200)의 예시적인 구현예가 도 3에 도시된 바와 같은 64x64 CU에 대한 예시적인 파티셔닝 계층구조(300)를 사용한다. 이러한 예에서, 각 팔레트 테이블은 16개까지의 팔레트 색상들(즉, X = 16)을 포함한다. 64x64 픽셀 CU에 대해, 가장 낮은 파티셔닝 레벨(레벨 4)은 다음으로 높은 레벨(레벨 3)의 각 16x16 블록에 대한 네 개의 8x8 블록들의 세트를 생성한다. 각 8x8 블록은 후보 픽셀 색상들의 대응하는 히스토그램을 생성하기 위해 통계적으로 분석되고, 히스토그램은 8x8 블록에서 16개까지의 가장 빈번하게 발생하는 픽셀 색상들을 해당 블록에 대한 팔레트 테이블에서 인덱싱될 팔레트 색상들로서 식별하기 위해 사용된다. 예시하자면, 도 4-1은 블록들 BLK[8,0], BLK[8,1], BLK[8,2], 및 BLK[8,3] 각각에 대해 컬렉팅되고 있는 히스토그램들(401-0, 401-1, 401-2, 및 401-3)을 도시한다. 팔레트 테이블 생성기(110)는 히스토그램(401-0, 401-1, 401-2, 및 401-3) 각각에 기초하여 각각 선택된 16개까지의 팔레트 색상들을 갖는 팔레트 테이블들(402-0, 402-1,402-2, 401-3)을 생성한다. 이러한 동일한 프로세스가 네 개의 8x8 블록들의 다른 열 다섯 개의 세트들 각각에 대해 수행되어, 파티셔닝 계층구조(300)의 최하위 레벨(레벨 5)에서의 64개의 8x8 블록들(BLK[8,0] 내지 BLK[8,63])로부터 생성된 총 64개의 팔레트 테이블들을 생성한다.
이어서, 파티셔닝 계층구조(300)의 가장 낮은 중간 레벨(레벨 3)에서, 팔레트 테이블 생성기(110)는 두 번째 레벨 블록에 대응하는 최하위 레벨에서의 네 개의 8x8 블록들에 대해 생성된 네 개의 파티셔닝 테이블들의 통합을 통해 열 여섯 개의 16x16 블록들(BLK[16,0] 내지 BLK[16,15]) 각각에 대한 파티셔닝 테이블을 생성한다. 예시하자면, 도 4-1에서, 팔레트 테이블들(402-0 내지 402-3) 각각의 인덱싱된 팔레트 색상들은 64개까지의 후보 색상들(즉, 최하위 레벨 팔레트 테이블당 16개까지의 팔레트 색상들 * 4 최하위 레벨 팔레트 테이블들)의 세트(403)로 조합된다. 팔레트 테이블 생성기(110)는 이 세트(403)를 분석하여, 세트(403)에서의 후보 색상들의 출현 빈도들을 나타내는 히스토그램(404)(또는 다른 클러스터링)을 생성하고, 이어서 히스토그램(404)에서의 가장 많이 표현된 픽셀 색상들 중 16개까지를 사용하여, 최하위 레벨에서의 네 개의 8x8 블록들 BLK[8,0] 내지 BLK[8,3]을 나타내는 두 번째 레벨(레벨 3)에서의 16x16 블록 BLK[16,0]에 대한 중간 팔레트 테이블(405-0)을 생성한다. 이러한 프로세스가 가장 낮은 중간 레벨에서의 다른 15개의 16x16 블록들(BLK[16,1] 내지 BLK[16,15])에 대해 마찬가지로 수행된다. 그 결과는 네 개의 중간 레벨 팔레트 블록들(405-0, 405-1, 405-2, 및 405-3)이다.
파티셔닝 계층구조(300)에서의 가장 높은 중간 레벨(레벨 2)까지 이동하면, 팔레트 테이블 생성기(110)는 세 번째 레벨 블록에 대응하는 가장 낮은 중간 레벨(레벨 3)에서의 네 개의 16x16 블록들에 대해 생성된 네 개의 파티셔닝 테이블들의 통합을 통해 네 개의 32x32 블록들(BLK[32,0] 내지 BLK[32,3]) 각각에 대한 파티셔닝 테이블을 생성한다. 예시하자면, 도 4-1에서, 팔레트 테이블들(405-0 내지 405-3) 각각의 인덱싱된 팔레트 색상들은 64개까지의 후보 색상들의 세트(406)로 조합된다. 팔레트 테이블 생성기(110)는 이 세트(406)를 분석하여, 세트(406)에서의 후보 색상들의 출현 빈도들을 나타내는 히스토그램(407)(또는 다른 클러스터링)을 생성하고, 이어서 히스토그램(407)에서의 가장 많이 표현된 픽셀 색상들 중 16개까지를 사용하여, 최하위 레벨에서의 네 개의 8x8 블록들 BLK[8,0] 내지 BLK[8,3]을 나타내는 32x32 블록 BLK[16,0]에 대한 중간 팔레트 테이블(408-0)을 생성한다. 이러한 프로세스가 가장 높은 중간 레벨에서의 다른 세 개의 32x32 블록들(BLK[32,1] 내지 BLK[32,3])에 대해 마찬가지로 수행된다. 이제 도 4-2를 참조하면, 그 결과는 네 개의 중간 레벨 팔레트 블록들(408-0, 408-1, 408-2, 및 408-3)이다.
이 시점에서, 팔레트 테이블 생성기(110)는 CU(122)에 대한 파티셔닝 계층(300)의 가장 높은 또는 최상위 레벨(레벨 1)로 진행했다. 이에 따라, 팔레트 테이블 생성기(110)는 팔레트 테이블들(408-0 내지 408-3)의 팔레트 색상들을 64개까지의 후보 색상들의 세트(409)로 조합함으로써 가장 높은 중간 레벨(레벨 2)에서의 네 개의 32x32 블록들에 대해 생성된 네 개의 파티셔닝 테이블들(408-0 내지 408-3)의 통합을 통해 최상위 파티셔닝 계층구조에 대한 최상위 팔레트 테이블(412)을 생성한다. 팔레트 테이블 생성기(110)는 이 세트(409)를 분석하여, 세트(409)에서의 후보 색상들의 출현 빈도들을 나타내는 히스토그램(410)(또는 다른 클러스터링)을 생성하고, 이어서 히스토그램(410)에서의 가장 많이 표현된 픽셀 색상들 중 16개까지를 사용하여, 최상위 팔레트 테이블(412)을 생성한다.
위에서 설명된 예가 예시한 바와 같이, 최상위 팔레트 테이블(412)을 생성하는 프로세스는 64-픽셀 세트에 대한 히스토그램 컬렉션의 64개의 인스턴스들을 수반하며, 뒤이어 보다 낮은 레벨 팔레트 테이블들로부터 64개까지의 후보 팔레트 색상들에 대한 히스토그램 컬렉션을 3회 반복한다. 이는 상기한 예의 64x64 픽셀 CU에 표현된 4,096개의 픽셀들의 전체 세트에 대한 단일 히스토그램 컬렉션의 종래의 접근법보다 계산적으로 덜 복잡하다는 것이 이해될 것이다. 더욱이, 이러한 계층적 접근법은 상이한 파티셔닝 레벨들에서의 상이한 팔레트 테이블들 각각을 사용하는 CU의 인코딩의 율-왜곡 분석에 기초하여 CU를 보다 효율적으로 인코딩하기 위해 상이한 크기의 파티션들의 선택적 사용을 가능하게 한다. 이와 같이, 팔레트 테이블들(402-0, 402-1, 402-2, 402-3, 405-0, 408-0, 및 412)의 각각은 CU(122)를 인코딩하기 위해 사용되는 최종 팔레트 테이블(124)로서 이용될 수 있는 후보 팔레트 테이블을 나타낸다. 이에 따라, 이들 후보 팔레트 테이블들 각각에 대해, 인코딩 시스템(102)은 후보 팔레트 테이블을 사용하여 CU(122)를 인코딩하기 위한 각 율-왜곡 비용을 계산하고, 어느 후보 팔레트 테이블이 가장 낮은 율-왜곡 비용을 제공하는지에 기초하여 인트라 인코딩 파이프라인 파티션 크기를 선택할 수 있다.
예시하자면, CU를 인코딩하기 위한 8x8 인트라 인코딩 파이프라인에 대해, 계층적 파티셔닝은 단일 레벨로 디볼빙(devolve)하며, 이러한 레벨에서의 8x8 블록에 대해 생성된 팔레트 테이블(예를 들어, BLK[8,0]에 대해 생성된 팔레트 테이블(402-0))이 CU를 나타내는 색상 인덱스 맵(411)을 생성하기 위해 사용될 수 있다. 마찬가지로, CU를 인코딩하기 위한 16x16 인트라 인코딩 파이프라인에 대해, 16x16 파티션 레벨 블록에 대해 생성된 팔레트 테이블(예를 들어, BLK[16,0]에 대한 팔레트 테이블(405-0))이 CU를 나타내는 색상 인덱스 맵(412)을 생성하기 위해 사용될 수 있다. 마찬가지로, CU들을 인코딩하기 위한 32x32 인트라 인코딩 파이프라인에 대해, 32x32 파티션 레벨에 대해 생성된 팔레트 테이블(예를 들어, BLK[32,0]에 대한 팔레트 테이블(408-0))이 CU를 나타내는 색상 인덱스 맵(413)을 생성하기 위해 사용될 수 있는 등이다. 도 4-1 및 도 4-2의 예에서, 팔레트 테이블(412)은 가장 낮은 율-왜곡 비용을 갖고, 이에 따라 팔레트 테이블(412)이 색상 인덱스 맵(126)을 생성하기 위해 64x64 인트라 인코딩 파이프라인에서 CU를 인코딩하는 데 최종 팔레트 테이블(124)로서 채용된다.
본원에서 개시된 바와 같이, 일부 실시예들에서, 소스 디바이스에서 스크린 콘텐츠를 포함하는 이미지를 인코딩하기 위한 방법은: 이미지의 선택된 부분에 대해, 부분을 복수의 레벨들로 구성된 파티셔닝 계층구조로 재귀적으로 파티셔닝하는 단계 ― 파티셔닝 계층구조의 최상위 레벨은 부분의 픽셀들의 전체 세트를 나타내는 단일 블록을 갖고, 최상위 레벨 아래의 각 레벨은 다음으로 높은 레벨에서의 픽셀들의 대응하는 보다 큰 블록을 나타내는 픽셀들의 네 개의 보다 작은 블록들을 가짐 ―; 파티셔닝 계층구조의 최하위 레벨에서, 최하위 레벨에서의 각 블록에 대한 팔레트 테이블을 생성하는 단계 ― 팔레트 테이블은 대응하는 블록에 존재하는 픽셀 색상들을 나타내는 팔레트 색상들의 세트를 포함함 ―; 파티셔닝 계층구조에서의 연속적으로 더 높은 레벨 각각에 대해, 현재 레벨에서의 블록에 대응하는 다음으로 낮은 레벨에서의 네 개의 블록들과 연관된 네 개의 팔레트 테이블들로부터의 팔레트 색상들에 기초하여 팔레트 테이블에 대한 팔레트 색상들을 선택함으로써 현재 레벨에서의 각 블록에 대한 팔레트 테이블을 생성하는 단계; 파티셔닝 계층구조의 복수의 레벨들에 대해 생성된 팔레트 테이블들로부터, 최종 팔레트 테이블을 선택하는 단계; 최종 팔레트 테이블에 기초하여 이미지의 부분에 대한 색상 인덱스 맵을 생성하는 단계; 및 소스 디바이스에 의한 출력을 위해 인코딩된 비트스트림의 대응하는 세그먼트를 생성하기 위해 최종 팔레트 테이블 및 색상 인덱스 맵을 사용하여 이미지의 부분의 표현을 인코딩하는 단계를 포함한다.
일 양태에서, 최하위 레벨에서의 각 블록에 대한 팔레트 테이블을 생성하는 단계는: 블록의 픽셀들에 대한 비닝된 픽셀 색상들의 출현 빈도를 나타내는 제1 히스토그램을 생성하는 단계; 및 제1 히스토그램에 기초하여 팔레트 테이블에서 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 단계를 포함한다. 다른 양태에서, 파티셔닝 계층구조에서의 보다 높은 레벨에서의 블록에 대한 팔레트를 생성하는 단계는: 보다 높은 레벨에서의 블록과 연관된 네 개의 보다 낮은 레벨 블록들의 각 팔레트 테이블의 팔레트 색상들을 후보 픽셀 색상들의 세트로 그룹화하는 단계; 비닝된 후보 픽셀 색상들의 출현 빈도를 나타내는 제2 히스토그램을 생성하는 단계; 및 제2 히스토그램에 기초하여 팔레트 테이블에서 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 단계를 포함한다. 또 다른 양태에서, 파티셔닝 계층구조에서의 보다 높은 레벨에서의 블록에 대한 팔레트 테이블을 생성하는 단계는: 보다 높은 레벨에서의 블록과 연관된 네 개의 보다 낮은 레벨 블록들의 각 팔레트 테이블의 팔레트 색상들을 후보 픽셀 색상들의 세트로 그룹화하는 단계; 비닝된 후보 픽셀 색상들의 출현 빈도를 나타내는 클러스터링을 생성하는 단계; 및 클러스터링에 기초하여 팔레트 테이블에서 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 단계를 포함한다.
일 양태에서, 최하위 레벨에서의 블록들은 PxP 픽셀들의 블록 크기를 갖고; 이미지의 부분은 KxK 픽셀들의 크기를 가지며; 그리고 파티셔닝 계층구조에서의 레벨들의 수 N은 식 K = P*2^(N-1)로 표현된다. 다른 양태에서, 최종 팔레트를 선택하는 단계는: 각 후보 팔레트 테이블에 대해, 후보 팔레트 테이블을 사용하여 이미지의 부분을 인코딩하는 것에 대한 대응하는 율-왜곡 비용을 결정하는 단계; 및 가장 낮은 대응하는 율-왜곡 비용을 갖는 후보 팔레트 테이블을 최종 팔레트 테이블로서 선택하는 단계를 포함한다. 또 다른 양태에서, 이미지의 부분은 코딩 트리 유닛의 코딩 유닛이다.
일부 실시예들에서, 스크린 콘텐츠를 포함하는 이미지를 인코딩하기 위한 디바이스는: 팔레트 모드 인코더를 포함하며, 팔레트 모드 인코더는: 이미지의 선택된 부분에 대해, 부분을 복수의 레벨들로 구성된 파티셔닝 계층구조로 재귀적으로 파티셔닝하도록 ― 파티셔닝 계층구조의 최상위 레벨은 부분의 픽셀들의 전체 세트를 나타내는 단일 블록을 갖고, 최상위 레벨 아래의 각 레벨은 다음으로 높은 레벨에서의 픽셀들의 대응하는 보다 큰 블록을 나타내는 픽셀들의 네 개의 보다 작은 블록들을 가짐 ―; 파티셔닝 계층구조의 최하위 레벨에서, 최하위 레벨에서의 각 블록에 대한 팔레트 테이블을 생성하도록 ― 팔레트 테이블은 대응하는 블록에 존재하는 픽셀 색상들을 나타내는 팔레트 색상들의 세트를 포함함 ―; 파티셔닝 계층구조에서의 연속적으로 더 높은 레벨 각각에 대해, 현재 레벨에서의 블록에 대응하는 다음으로 낮은 레벨에서의 네 개의 블록들과 연관된 네 개의 팔레트 테이블들로부터의 팔레트 색상들에 기초하여 팔레트 테이블에 대한 팔레트 색상들을 선택함으로써 현재 레벨에서의 각 블록에 대한 팔레트 테이블을 생성하도록; 파티셔닝 계층구조의 복수의 레벨들에 대해 생성된 팔레트 테이블들로부터, 최종 팔레트 테이블을 선택하도록; 최종 팔레트 테이블에 기초하여 이미지의 부분에 대한 색상 인덱스 맵을 생성하도록; 그리고 인코딩된 비트스트림의 대응하는 세그먼트를 생성하기 위해 최종 팔레트 테이블 및 색상 인덱스 맵을 사용하여 이미지의 부분의 표현을 인코딩하도록 구성된다.
일 양태에서, 팔레트 모드 인코더는 블록의 픽셀들에 대한 비닝된 픽셀 색상들의 출현 빈도를 나타내는 제1 히스토그램을 생성하는 것; 그리고 제1 히스토그램에 기초하여 팔레트 테이블에서 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 것에 의해, 최하위 레벨에서의 각 블록에 대한 팔레트 테이블을 생성하도록 구성된다. 다른 양태에서, 팔레트 모드 인코더는 보다 높은 레벨에서의 블록과 연관된 네 개의 보다 낮은 레벨 블록들의 각 팔레트 테이블의 팔레트 색상들을 후보 픽셀 색상들의 세트로 그룹화하는 것; 비닝된 후보 픽셀 색상들의 출현 빈도를 나타내는 제2 히스토그램을 생성하는 것; 그리고 제2 히스토그램에 기초하여 팔레트 테이블에서 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 것에 의해 파티셔닝 계층구조에서의 보다 높은 레벨에서의 블록에 대한 팔레트를 생성하도록 구성된다.
일 양태에서, 팔레트 모드 인코더는 보다 높은 레벨에서의 블록과 연관된 네 개의 보다 낮은 레벨 블록들의 각 팔레트 테이블의 팔레트 색상들을 후보 픽셀 색상들의 세트로 그룹화하는 것; 비닝된 후보 픽셀 색상들의 출현 빈도를 나타내는 클러스터링을 생성하는 것; 그리고 클러스터링에 기초하여 팔레트 테이블에서 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 것에 의해 파티셔닝 계층구조에서의 보다 높은 레벨에서의 블록에 대한 팔레트를 생성하도록 구성된다. 다른 양태에서, 팔레트 모드 인코더는 각 후보 팔레트 테이블에 대해, 후보 팔레트 테이블을 사용하여 이미지의 부분을 인코딩하는 것에 대한 대응하는 율-왜곡 비용을 결정하는 것; 그리고 가장 낮은 대응하는 율-왜곡 비용을 갖는 후보 팔레트 테이블을 최종 팔레트 테이블로서 선택하는 것에 의해 최종 팔레트를 선택하는 것이다. 또 다른 양태에서, 팔레트 모드 인코더는 적어도 하나의 프로세서, 및 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트를 저장하기 위한 메모리를 포함한다.
일부 실시예들에서, 소스 디바이스에서 스크린 콘텐츠를 포함하는 이미지를 인코딩하기 위한 방법은: 이미지의 선택된 부분의 보다 작은 파티션들의 세트에 대한 팔레트 테이블들에 대해 선택된 팔레트 색상들을 이미지의 부분의 보다 큰 파티션에 대한 후보 색상들로서 재귀적으로 사용함으로써 이미지의 부분에 대한 파티션 계층구조의 복수의 파티션들 각각에 대한 팔레트 테이블을 생성하는 단계; 이미지의 부분에 대해 생성된 팔레트 테이블들로부터 선택된 팔레트 테이블에 기초하여 이미지의 부분에 대한 색상 인덱스 맵을 생성하는 단계; 및 소스 디바이스에 의한 출력을 위해 인코딩된 비트스트림의 대응하는 세그먼트를 생성하기 위해 선택된 팔레트 테이블 및 색상 인덱스 맵을 사용하여 이미지의 부분의 표현을 인코딩하는 단계를 포함한다. 다른 양태에서, 이미지의 부분의 가장 작은 파티션에 대한 팔레트 테이블을 생성하는 단계는: 가장 작은 파티션의 픽셀들에 대한 비닝된 픽셀 색상들의 출현 빈도를 나타내는 제1 히스토그램을 생성하는 단계; 및 제1 히스토그램에 기초하여 팔레트 테이블에서 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 단계를 포함한다. 또 다른 양태에서, 가장 작은 파티션 이외의 부분의 파티션에 대한 팔레트 테이블을 생성하는 단계는: 연관된 다음으로 작은 파티션들의 각 팔레트 테이블의 팔레트 색상들을 후보 픽셀 색상들의 세트로 그룹화하는 단계; 비닝된 후보 픽셀 색상들의 출현 빈도를 나타내는 제2 히스토그램을 생성하는 단계; 및 제2 히스토그램에 기초하여 팔레트 테이블에서 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 단계를 포함한다.
일 양태에서, 선택된 팔레트 테이블은: 각 후보 팔레트 테이블에 대해, 후보 팔레트 테이블을 사용하여 이미지의 부분을 인코딩하는 것에 대한 대응하는 율-왜곡 비용을 결정하는 단계; 및 가장 낮은 대응하는 율-왜곡 비용을 갖는 후보 팔레트 테이블을 선택된 팔레트 테이블로서 선택하는 단계에 의해 선택된다. 다른 양태에서, 이미지의 부분은 코딩 트리 유닛의 코딩 유닛이다.
일부 실시예들에서, 스크린 콘텐츠를 포함하는 이미지를 인코딩하기 위한 디바이스는: 팔레트 모드 인코더를 포함하며, 팔레트 모드 인코더는: 이미지의 선택된 부분의 보다 작은 파티션들의 세트에 대한 팔레트 테이블들에 대해 선택된 팔레트 색상들을 이미지의 부분의 보다 큰 파티션에 대한 후보 색상들로서 재귀적으로 사용함으로써 이미지의 부분에 대한 파티션 계층구조의 복수의 파티션들 각각에 대한 팔레트 테이블을 생성하도록; 이미지의 부분에 대해 생성된 팔레트 테이블들로부터 선택된 팔레트 테이블에 기초하여 이미지의 부분에 대한 색상 인덱스 맵을 생성하도록; 그리고 디바이스에 의한 출력을 위해 인코딩된 비트스트림의 대응하는 세그먼트를 생성하기 위해 선택된 팔레트 테이블 및 색상 인덱스 맵을 사용하여 이미지의 부분의 표현을 인코딩하도록 구성된다.
일 양태에서, 팔레트 모드 인코더는: 가장 작은 파티션의 픽셀들에 대한 비닝된 픽셀 색상들의 출현 빈도를 나타내는 제1 히스토그램을 생성하는 것; 그리고 제1 히스토그램에 기초하여 팔레트 테이블에서 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 것에 의해, 이미지의 부분의 가장 작은 파티션에 대한 팔레트 테이블을 생성하도록 구성된다. 다른 양태에서, 팔레트 모드 인코더는: 연관된 다음으로 작은 파티션들의 각 팔레트 테이블의 팔레트 색상들을 후보 픽셀 색상들의 세트로 그룹화하는 것; 비닝된 후보 픽셀 색상들의 출현 빈도를 나타내는 제2 히스토그램을 생성하는 것; 그리고 제2 히스토그램에 기초하여 팔레트 테이블에서 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 것에 의해, 가장 작은 파티션 이외의 부분의 파티션에 대한 팔레트 테이블을 생성하도록 구성된다.
일 양태에서, 팔레트 모드 인코더는 각 후보 팔레트 테이블에 대해, 후보 팔레트 테이블을 사용하여 이미지의 부분을 인코딩하는 것에 대한 대응하는 율-왜곡 비용을 결정하는 것; 그리고 가장 낮은 대응하는 율-왜곡 비용을 갖는 후보 팔레트 테이블을 선택된 팔레트 테이블로서 선택하는 것에 의해 선택된 팔레트를 선택하도록 구성된다. 다른 양태에서, 팔레트 모드 인코더는 적어도 하나의 프로세서, 및 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트를 저장하기 위한 메모리를 포함한다.
일부 실시예들에서, 상술된 시스템들 및 기술들은 도 1 내지 도 4-2를 참조하여 상술된 인코딩 시스템(102)과 같은, 하나 이상의 집적 회로(IC) 소자(집적 회로 패키지들 또는 마이크로 칩들이라고도 지칭됨)를 사용하여 구현된다. 전자 설계 자동화(EDA) 및 컴퓨터 지원 설계(CAD) 소프트웨어 도구들이 이러한 IC 디바이스들의 설계 및 제조에 사용될 수 있다. 이러한 설계 도구들은 통상적으로 하나 이상의 소프트웨어 프로그램으로 표현된다. 하나 이상의 소프트웨어 프로그램은 제조 시스템을 회로를 제조하도록 설계 또는 적응시키기 위해 프로세스의 적어도 일부를 수행하기 위해 컴퓨터 시스템을 조작하여 하나 이상의 IC 디바이스의 회로를 나타내는 코드에 작용하기 위해 컴퓨터 시스템에 의해 실행 가능한 코드를 포함한다. 이러한 코드는 명령어, 데이터, 또는 명령어와 데이터의 조합을 포함할 수 있다. 설계 툴 또는 제조 툴을 나타내는 소프트웨어 명령어들은 전형적으로 컴퓨팅 시스템에 액세스 가능한 컴퓨터 판독 가능한 저장 매체에 저장된다. 마찬가지로, IC 디바이스의 설계 또는 제조의 하나 이상의 단계를 나타내는 코드가 동일한 컴퓨터 판독 가능한 저장 매체 또는 상이한 컴퓨터 판독 가능한 저장 매체에 저장되고 그것으로부터 액세스될 수 있다.
컴퓨터 판독 가능한 저장 매체는 컴퓨터 시스템에 명령어들 및/또는 데이터를 제공하기 위해 사용 동안 컴퓨터 시스템에 의해 액세스 가능한 임의의 비일시적인 저장 매체, 또는 비일시적인 저장 매체들의 조합을 포함할 수 있다. 그러한 저장 매체는 광 매체(예를 들어, 콤팩트 디스크(CD), 디지털 다기능 디스크(DVD), 블루레이 디스크), 자기 매체(예를 들어, 플로피 디스크, 자기 테이프, 또는 자기 하드 드라이브), 휘발성 메모리(예를 들어, 랜덤 액세스 메모리(RAM) 또는 캐시), 비휘발성 메모리(예를 들어, 판독 전용 메모리(ROM) 또는 플래시 메모리), 또는 미세전자기계 시스템(MEMS)-기반 저장 매체를 포함할 수 있지만, 이로 제한되지 않는다. 컴퓨터 판독 가능 저장 매체는 컴퓨팅 시스템에 내장되거나(예를 들어, 시스템 RAM 또는 ROM), 컴퓨팅 시스템에 고정적으로 부착되거나(예를 들어, 자기 하드 드라이브), 컴퓨팅 시스템에 제거 가능하게 부착되거나(예를 들어, 광 디스크 또는 범용 직렬 버스(USB)-기반 플래시 메모리), 유선 또는 무선 네트워크를 통해 컴퓨터 시스템에 결합(예를 들어, 네트워크 액세스 가능한 저장소(NAS))될 수 있다.
일부 실시예에서, 전술된 기술의 특정한 양태는 소프트웨어를 실행하는 처리 시스템의 하나 이상의 프로세서에 의해 구현된다. 소프트웨어는 비일시적 컴퓨터 판독 가능 저장 매체에 저장되거나 달리 유형적으로 구현된 실행가능한 명령어의 하나 이상의 세트를 포함한다. 소프트웨어는 하나 이상의 프로세서에 의해 실행될 때, 전술된 기술의 하나 이상의 양태를 수행하도록 하나 이상의 프로세서를 조작하는 명령어 및 특정 데이터를 포함할 수 있다. 비일시적 컴퓨터 판독 가능한 저장 매체는 예를 들어, 자기 또는 광학 디스크 저장 디바이스, 고체 상태 저장 디바이스들 이를테면 플래시 메모리, 캐시, 랜덤 액세스 메모리(RAM) 또는 다른 비휘발성 메모리 디바이스 또는 디바이스들 등을 포함할 수 있다. 비일시적인 컴퓨터 판독 가능한 저장 매체 상에 저장된 실행 가능한 명령어들은 소스 코드, 어셈블리 언어 코드, 객체 코드, 또는 하나 이상의 프로세서에 의해 해석되거나 그 외 실행 가능한 다른 명령어 포맷으로 있을 수 있다.
일반적인 설명에서 전술된 모든 활동 또는 요소가 요구되는 것은 아니고, 특정 활동 또는 장치의 일부는 요구되지 않을 수 있고, 기술된 것에 더하여, 하나 이상의 추가 활동이 수행되거나 하나 이상의 추가 요소가 포함될 수 있다는 점에 유의한다. 더 나아가, 동작들이 나열된 순서는 반드시 이것들이 수행되는 순서는 아니다. 또한, 특정 실시예들을 참조하여 개념이 설명되었다. 그러나, 당업자는 아래의 청구범위에 기재된 것과 같은 본 개시의 범위로부터 벗어나지 않으면서 다양한 수정 및 변경이 이루어질 수 있음을 이해한다. 따라서, 명세서 및 도면은 제한적인 의미보다는 예시적인 의미로 간주되어야 하며, 모든 그러한 수정은 본 개시의 범위 내에 포함되도록 의도된다.
이익, 다른 이점, 및 문제에 대한 해결책이 특정 실시예와 관련하여 전술되었다. 그러나, 이익, 이점, 문제에 대한 해결책, 그리고 임의의 이익, 이점, 또는 해결책이 발생되게 하거나 더 명확해지게 할 수 있는 임의의 특징(들)은 임의의 또는 모든 청구항의 중요한, 요구되는, 또는 본질적인 특징으로 해석되어서는 안 된다. 또한, 위에 개시된 특정 실시예는 단지 예시적인 것인데, 개시된 주제는 본 명세서의 교시 내용의 이익을 갖는 당업자에게 명백한, 상이하지만 동등한 방식으로 수정 및 실시될 수 있기 때문이다. 아래의 청구범위에 기술된 것 이외에, 본 명세서에서 도시된 구성 또는 설계의 상세 사항에 대한 제한이 의도되지 않는다. 따라서 위에서 개시된 특정 실시예들은 변경되거나 수정될 수 있고 모든 그러한 변형은 개시된 주제의 범위 내에 있는 것으로 고려된다는 것이 명백하다. 따라서, 본 명세서에서 추구되는 보호는 아래의 청구범위에 기재된 것과 같다.

Claims (23)

  1. 소스 디바이스에서 스크린 콘텐츠를 포함하는 이미지를 인코딩하기 위한 방법으로서,
    상기 이미지의 선택된 부분에 대해, 상기 부분을 복수의 레벨들로 구성된 파티셔닝 계층구조로 재귀적으로 파티셔닝하는 단계 ― 상기 파티셔닝 계층구조의 최상위 레벨은 상기 부분의 픽셀들의 전체 세트를 나타내는 단일 블록을 갖고, 상기 최상위 레벨 아래의 각 레벨은 다음으로 높은 레벨에서의 픽셀들의 대응하는 보다 큰 블록을 나타내는 픽셀들의 네 개의 보다 작은 블록들을 가짐 ―;
    상기 파티셔닝 계층구조의 최하위 레벨에서, 상기 최하위 레벨에서의 각 블록에 대한 팔레트 테이블을 생성하는 단계 ― 상기 팔레트 테이블은 대응하는 블록에 존재하는 픽셀 색상들을 나타내는 팔레트 색상들의 세트를 포함함 ―;
    상기 파티셔닝 계층구조에서의 연속적으로 더 높은 레벨 각각에 대해, 현재 레벨에서의 블록에 대응하는 다음으로 낮은 레벨에서의 네 개의 블록들과 연관된 네 개의 팔레트 테이블들로부터의 팔레트 색상들에 기초하여 팔레트 테이블에 대한 상기 팔레트 색상들을 선택함으로써 상기 현재 레벨에서의 각 블록에 대한 상기 팔레트 테이블을 생성하는 단계;
    상기 파티셔닝 계층구조의 상기 복수의 레벨들에 대해 생성된 상기 팔레트 테이블들로부터, 최종 팔레트 테이블을 선택하는 단계;
    상기 최종 팔레트 테이블에 기초하여 상기 이미지의 상기 부분에 대한 색상 인덱스 맵을 생성하는 단계; 및
    상기 소스 디바이스에 의한 출력을 위해 인코딩된 비트스트림의 대응하는 세그먼트를 생성하기 위해 상기 최종 팔레트 테이블 및 상기 색상 인덱스 맵을 사용하여 상기 이미지의 상기 부분의 표현을 인코딩하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 최하위 레벨에서의 각 블록에 대한 팔레트 테이블을 생성하는 단계는:
    상기 블록의 픽셀들에 대한 비닝된 픽셀 색상들의 출현 빈도를 나타내는 제1 히스토그램을 생성하는 단계; 및
    상기 제1 히스토그램에 기초하여 상기 팔레트 테이블에서 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 단계를 포함하는 것인, 방법.
  3. 제2항에 있어서, 상기 파티셔닝 계층구조에서의 보다 높은 레벨에서의 블록에 대한 팔레트를 생성하는 단계는:
    상기 보다 높은 레벨에서의 상기 블록과 연관된 상기 네 개의 보다 낮은 레벨 블록들의 각 팔레트 테이블의 상기 팔레트 색상들을 후보 픽셀 색상들의 세트로 그룹화하는 단계;
    비닝된 후보 픽셀 색상들의 출현 빈도를 나타내는 제2 히스토그램을 생성하는 단계; 및
    상기 제2 히스토그램에 기초하여 상기 팔레트 테이블에서 상기 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 단계를 포함하는 것인, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 파티셔닝 계층구조에서의 보다 높은 레벨에서의 블록에 대한 팔레트 테이블을 생성하는 단계는:
    상기 보다 높은 레벨에서의 상기 블록과 연관된 상기 네 개의 보다 낮은 레벨 블록들의 각 팔레트 테이블의 상기 팔레트 색상들을 후보 픽셀 색상들의 세트로 그룹화하는 단계;
    비닝된 후보 픽셀 색상들의 출현 빈도를 나타내는 클러스터링을 생성하는 단계; 및
    상기 클러스터링에 기초하여 상기 팔레트 테이블에서 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 단계를 포함하는 것인, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 최하위 레벨에서의 상기 블록들은 PxP 픽셀들의 블록 크기를 갖고;
    상기 이미지의 상기 부분은 KxK 픽셀들의 크기를 가지며; 그리고
    상기 파티셔닝 계층구조에서의 레벨들의 수 N은 식 K = P*2^(N-1)로 표현되는 것인, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 최종 팔레트 테이블을 선택하는 단계는:
    각 후보 팔레트 테이블에 대해, 상기 후보 팔레트 테이블을 사용하여 상기 이미지의 상기 부분을 인코딩하는 것에 대한 대응하는 율-왜곡(rate-distortion) 비용을 결정하는 단계; 및
    가장 낮은 대응하는 율-왜곡 비용을 갖는 상기 후보 팔레트 테이블을 상기 최종 팔레트 테이블로서 선택하는 단계를 포함하는 것인, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 이미지의 상기 부분은 코딩 트리 유닛의 코딩 유닛인 것인, 방법.
  8. 스크린 콘텐츠를 포함하는 이미지를 인코딩하기 위한 디바이스로서, 상기 디바이스는:
    팔레트 모드 인코더를 포함하며, 상기 팔레트 모드 인코더는:
    상기 이미지의 선택된 부분에 대해, 상기 부분을 복수의 레벨들로 구성된 파티셔닝 계층구조로 재귀적으로 파티셔닝하도록 ― 상기 파티셔닝 계층구조의 최상위 레벨은 상기 부분의 픽셀들의 전체 세트를 나타내는 단일 블록을 갖고, 상기 최상위 레벨 아래의 각 레벨은 다음으로 높은 레벨에서의 픽셀들의 대응하는 보다 큰 블록을 나타내는 픽셀들의 네 개의 보다 작은 블록들을 가짐 ―;
    상기 파티셔닝 계층구조의 최하위 레벨에서, 상기 최하위 레벨에서의 각 블록에 대한 팔레트 테이블을 생성하도록 ― 상기 팔레트 테이블은 대응하는 블록에 존재하는 픽셀 색상들을 나타내는 팔레트 색상들의 세트를 포함함 ―;
    상기 파티셔닝 계층구조에서의 연속적으로 더 높은 레벨 각각에 대해, 현재 레벨에서의 블록에 대응하는 다음으로 낮은 레벨에서의 네 개의 블록들과 연관된 네 개의 팔레트 테이블들로부터의 팔레트 색상들에 기초하여 팔레트 테이블에 대한 상기 팔레트 색상들을 선택함으로써 상기 현재 레벨에서의 각 블록에 대한 상기 팔레트 테이블을 생성하도록;
    상기 파티셔닝 계층구조의 상기 복수의 레벨들에 대해 생성된 상기 팔레트 테이블들로부터, 최종 팔레트 테이블을 선택하도록;
    상기 최종 팔레트 테이블에 기초하여 상기 이미지의 상기 부분에 대한 색상 인덱스 맵을 생성하도록; 그리고
    인코딩된 비트스트림의 대응하는 세그먼트를 생성하기 위해 상기 최종 팔레트 테이블 및 상기 색상 인덱스 맵을 사용하여 상기 이미지의 상기 부분의 표현을 인코딩하도록 구성된 것인, 디바이스.
  9. 제8항에 있어서, 상기 팔레트 모드 인코더는:
    상기 블록의 픽셀들에 대한 비닝된 픽셀 색상들의 출현 빈도를 나타내는 제1 히스토그램을 생성하는 것; 그리고
    상기 제1 히스토그램에 기초하여 상기 팔레트 테이블에서 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 것에 의해, 상기 최하위 레벨에서의 각 블록에 대한 팔레트 테이블을 생성하도록 구성된 것인, 디바이스.
  10. 제9항에 있어서, 상기 팔레트 모드 인코더는:
    상기 보다 높은 레벨에서의 상기 블록과 연관된 상기 네 개의 보다 낮은 레벨 블록들의 각 팔레트 테이블의 상기 팔레트 색상들을 후보 픽셀 색상들의 세트로 그룹화하는 것;
    비닝된 후보 픽셀 색상들의 출현 빈도를 나타내는 제2 히스토그램을 생성하는 것; 그리고
    상기 제2 히스토그램에 기초하여 상기 팔레트 테이블에서 상기 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 것에 의해, 상기 파티셔닝 계층구조에서의 보다 높은 레벨에서의 블록에 대한 팔레트 테이블을 생성하도록 구성된 것인, 디바이스.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 팔레트 모드 인코더는:
    상기 보다 높은 레벨에서의 상기 블록과 연관된 상기 네 개의 보다 낮은 레벨 블록들의 각 팔레트 테이블의 상기 팔레트 색상들을 후보 픽셀 색상들의 세트로 그룹화하는 것;
    비닝된 후보 픽셀 색상들의 출현 빈도를 나타내는 클러스터링을 생성하는 것; 그리고
    상기 클러스터링에 기초하여 상기 팔레트 테이블에서 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 것에 의해, 상기 파티셔닝 계층구조에서의 보다 높은 레벨에서의 블록에 대한 팔레트 테이블을 생성하도록 구성된 것인, 디바이스.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 팔레트 모드 인코더는:
    각 후보 팔레트 테이블에 대해, 상기 후보 팔레트 테이블을 사용하여 상기 이미지의 상기 부분을 인코딩하기 위한 대응하는 율-왜곡 비용을 결정하는 것; 그리고
    가장 낮은 대응하는 율-왜곡 비용을 갖는 상기 후보 팔레트 테이블을 상기 최종 팔레트 테이블로서 선택하는 것에 의해, 상기 최종 팔레트 테이블을 선택하도록 구성된 것인, 디바이스.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서, 상기 팔레트 모드 인코더는 적어도 하나의 프로세서, 및 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트를 저장하기 위한 메모리를 포함하는 것인, 디바이스.
  14. 소스 디바이스에서 스크린 콘텐츠를 포함하는 이미지를 인코딩하기 위한 방법으로서, 상기 방법은:
    상기 이미지의 선택된 부분의 보다 작은 파티션들의 세트에 대한 팔레트 테이블들에 대해 선택된 팔레트 색상들을 상기 이미지의 상기 부분의 보다 큰 파티션에 대한 후보 색상들로서 재귀적으로 사용함으로써 상기 이미지의 상기 부분에 대한 파티션 계층구조의 복수의 파티션들 각각에 대한 팔레트 테이블을 생성하는 단계;
    상기 이미지의 상기 부분에 대해 생성된 상기 팔레트 테이블들로부터 선택된 팔레트 테이블에 기초하여 상기 이미지의 상기 부분에 대한 색상 인덱스 맵을 생성하는 단계; 및
    상기 소스 디바이스에 의한 출력을 위해 인코딩된 비트스트림의 대응하는 세그먼트를 생성하기 위해 상기 선택된 팔레트 테이블 및 상기 색상 인덱스 맵을 사용하여 상기 이미지의 상기 부분의 표현을 인코딩하는 단계를 포함하는, 방법.
  15. 제14항에 있어서, 상기 이미지의 상기 부분의 가장 작은 파티션에 대한 팔레트 테이블을 생성하는 단계는:
    상기 가장 작은 파티션의 픽셀들에 대한 비닝된 픽셀 색상들의 출현 빈도를 나타내는 제1 히스토그램을 생성하는 단계; 및
    상기 제1 히스토그램에 기초하여 상기 팔레트 테이블에서 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 단계를 포함하는 것인, 방법.
  16. 제15항에 있어서, 상기 가장 작은 파티션 이외의 상기 부분의 파티션에 대한 팔레트 테이블을 생성하는 단계는:
    연관된 다음으로 작은 파티션들의 각 팔레트 테이블의 상기 팔레트 색상들을 후보 픽셀 색상들의 세트로 그룹화하는 단계;
    비닝된 후보 픽셀 색상들의 출현 빈도를 나타내는 제2 히스토그램을 생성하는 단계; 및
    상기 제2 히스토그램에 기초하여 상기 팔레트 테이블에서 상기 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 단계를 포함하는 것인, 방법.
  17. 제1항 내지 제16항 중 어느 한 항에 있어서, 상기 선택된 팔레트 테이블은:
    각 후보 팔레트 테이블에 대해, 상기 후보 팔레트 테이블을 사용하여 상기 이미지의 상기 부분을 인코딩하기 위한 대응하는 율-왜곡 비용을 결정하는 단계; 및
    가장 낮은 대응하는 율-왜곡 비용을 갖는 상기 후보 팔레트 테이블을 상기 선택된 팔레트 테이블로서 선택하는 단계에 의해, 선택되는 것인, 방법.
  18. 제1항 내지 제17항 중 어느 한 항에 있어서, 상기 이미지의 상기 부분은 코딩 트리 유닛의 코딩 유닛인 것인, 방법.
  19. 스크린 콘텐츠를 포함하는 이미지를 인코딩하기 위한 디바이스로서, 상기 디바이스는:
    팔레트 모드 인코더를 포함하며, 상기 팔레트 모드 인코더는:
    상기 이미지의 선택된 부분의 보다 작은 파티션들의 세트에 대한 팔레트 테이블들에 대해 선택된 팔레트 색상들을 상기 이미지의 상기 부분의 보다 큰 파티션에 대한 후보 색상들로서 재귀적으로 사용함으로써 상기 이미지의 상기 부분에 대한 파티션 계층구조의 복수의 파티션들 각각에 대한 팔레트 테이블을 생성하도록;
    상기 이미지의 상기 부분에 대해 생성된 상기 팔레트 테이블들로부터 선택된 팔레트 테이블에 기초하여 상기 이미지의 상기 부분에 대한 색상 인덱스 맵을 생성하도록; 그리고
    상기 디바이스에 의한 출력을 위해 인코딩된 비트스트림의 대응하는 세그먼트를 생성하기 위해 상기 선택된 팔레트 테이블 및 상기 색상 인덱스 맵을 사용하여 상기 이미지의 상기 부분의 표현을 인코딩하도록 구성된 것인, 디바이스.
  20. 제19항에 있어서, 상기 팔레트 모드 인코더는,
    상기 가장 작은 파티션의 픽셀들에 대한 비닝된 픽셀 색상들의 출현 빈도를 나타내는 제1 히스토그램을 생성하는 것; 그리고
    상기 제1 히스토그램에 기초하여 상기 팔레트 테이블에서 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 것에 의해, 상기 이미지의 상기 부분의 가장 작은 파티션에 대한 팔레트 테이블을 생성하도록 구성된 것인, 디바이스.
  21. 제20항에 있어서, 상기 팔레트 모드 인코더는:
    연관된 다음으로 작은 파티션들의 각 팔레트 테이블의 상기 팔레트 색상들을 후보 픽셀 색상들의 세트로 그룹화하는 것;
    비닝된 후보 픽셀 색상들의 출현 빈도를 나타내는 제2 히스토그램을 생성하는 것; 그리고
    상기 제2 히스토그램에 기초하여 상기 팔레트 테이블에서 상기 특정 수까지의 팔레트 색상들을 인덱싱을 위해 선택하는 것에 의해, 상기 가장 작은 파티션 이외의 상기 부분의 파티션에 대한 팔레트 테이블을 생성하도록 구성된 것인, 디바이스.
  22. 제1항 내지 제21항 중 어느 한 항에 있어서, 상기 팔레트 모드 인코더는:
    각 후보 팔레트 테이블에 대해, 상기 후보 팔레트 테이블을 사용하여 상기 이미지의 상기 부분을 인코딩하기 위한 대응하는 율-왜곡 비용을 결정하는 것; 그리고
    가장 낮은 대응하는 율-왜곡 비용을 갖는 상기 후보 팔레트 테이블을 상기 선택된 팔레트 테이블로서 선택하는 것에 의해, 상기 선택된 팔레트 테이블을 선택하도록 구성된 것인, 디바이스.
  23. 제1항 내지 제22항 중 어느 한 항에 있어서, 상기 팔레트 모드 인코더는 적어도 하나의 프로세서, 및 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령어들의 세트를 저장하기 위한 메모리를 포함하는 것인, 디바이스.
KR1020237013720A 2020-09-23 2021-09-23 계층적 팔레트 테이블 생성을 이용하는 팔레트 모드 비디오 인코딩 KR20230073303A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/029,730 2020-09-23
US17/029,730 US20220094951A1 (en) 2020-09-23 2020-09-23 Palette mode video encoding utilizing hierarchical palette table generation
PCT/IB2021/058691 WO2022064420A1 (en) 2020-09-23 2021-09-23 Palette mode video encoding utilizing hierarchical palette table generation

Publications (1)

Publication Number Publication Date
KR20230073303A true KR20230073303A (ko) 2023-05-25

Family

ID=80741029

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237013720A KR20230073303A (ko) 2020-09-23 2021-09-23 계층적 팔레트 테이블 생성을 이용하는 팔레트 모드 비디오 인코딩

Country Status (6)

Country Link
US (1) US20220094951A1 (ko)
EP (1) EP4218241A4 (ko)
JP (1) JP2023541466A (ko)
KR (1) KR20230073303A (ko)
CN (1) CN116615753A (ko)
WO (1) WO2022064420A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11770535B2 (en) * 2021-02-19 2023-09-26 Samsung Display Co., Ltd. Systems and methods for joint color channel entropy encoding with positive reconstruction error

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4078085B2 (ja) * 2001-03-26 2008-04-23 キヤノン株式会社 変倍画像生成装置、方法、及びそのコンピュータプログラムとコンピュータ読み取り可能な記憶媒体
US20060204086A1 (en) * 2005-03-10 2006-09-14 Ullas Gargi Compression of palettized images
EP2355037A1 (en) * 2009-12-18 2011-08-10 Nxp B.V. Method of and system for determining an average colour value for pixels
GB2501115B (en) * 2012-04-13 2015-02-18 Canon Kk Methods for segmenting and encoding an image, and corresponding devices
KR101943770B1 (ko) * 2014-06-20 2019-01-29 에이치에프아이 이노베이션 인크. 영상 부호화를 위한 팔레트 예측자 신호 방법
JP6122516B2 (ja) * 2015-01-28 2017-04-26 財團法人工業技術研究院Industrial Technology Research Institute エンコーディング方法及びエンコーダ
JP6461355B2 (ja) * 2015-01-29 2019-01-30 キヤノン株式会社 画像を符号化または復号する装置、方法、プログラム
CN107637057A (zh) * 2015-06-03 2018-01-26 联发科技股份有限公司 图像和视频数据的调色板编解码方法

Also Published As

Publication number Publication date
JP2023541466A (ja) 2023-10-02
CN116615753A (zh) 2023-08-18
EP4218241A4 (en) 2024-08-28
WO2022064420A1 (en) 2022-03-31
EP4218241A1 (en) 2023-08-02
US20220094951A1 (en) 2022-03-24

Similar Documents

Publication Publication Date Title
KR102690197B1 (ko) 포인트 클라우드의 이진 엔트로피 코딩 방법 및 디바이스
KR102631110B1 (ko) 포인트 클라우드의 이진 엔트로피 코딩을 위한 방법 및 장치
RU2666319C1 (ru) Способ, устройство и система для кодирования и декодирования единицы кодирования
CN102017634B (zh) 重新排序的变换系数的多级表示
TWI653876B (zh) 用於解碼視訊的裝置、用於編碼視訊的方法及裝置、以及非暫態電腦可讀記錄媒體
WO2020072665A1 (en) Hierarchical tree attribute coding in point cloud coding
CN109792519A (zh) 基于帧内预测模式的图像处理方法及其装置
WO2020123469A1 (en) Hierarchical tree attribute coding by median points in point cloud coding
WO2014190468A1 (en) Video encoder for images
KR102287302B1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
JP7337950B2 (ja) ニューラルネットワークモデル圧縮のための量子化、適応ブロック分割、及びコードブック符号化の方法及び装置、並びにコンピュータープログラム
US20220376702A1 (en) Methods and devices for tree switching in point cloud compression
EP3343446A1 (en) Method and apparatus for encoding and decoding lists of pixels
KR20230073303A (ko) 계층적 팔레트 테이블 생성을 이용하는 팔레트 모드 비디오 인코딩
JP7285950B2 (ja) ニューラル・ネットワーク・モデル圧縮のための3次元(3d)ツリー・コーディング方法及び装置
JP6748022B2 (ja) 分割形状決定装置、学習装置、分割形状決定方法及び分割形状決定プログラム
US20200275099A1 (en) Image encoding method and device, and image decoding method and device
EP3744095A1 (en) Image compression and decompression using triangulation
WO2023193709A1 (zh) 编码、解码方法、装置及设备
CN114787827A (zh) 用于关于神经网络模型压缩的基于统一的编码的方法和装置
Parthe Adaptive edge-based prediction for lossless image compression