KR20190057159A - 비디오 및 이미지 코딩에서의 비-444 색채 포맷을 위한 팔레트 기반 예측의 방법 - Google Patents

비디오 및 이미지 코딩에서의 비-444 색채 포맷을 위한 팔레트 기반 예측의 방법 Download PDF

Info

Publication number
KR20190057159A
KR20190057159A KR1020197014277A KR20197014277A KR20190057159A KR 20190057159 A KR20190057159 A KR 20190057159A KR 1020197014277 A KR1020197014277 A KR 1020197014277A KR 20197014277 A KR20197014277 A KR 20197014277A KR 20190057159 A KR20190057159 A KR 20190057159A
Authority
KR
South Korea
Prior art keywords
chroma
palette
color
samples
luma
Prior art date
Application number
KR1020197014277A
Other languages
English (en)
Other versions
KR102150979B1 (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 KR20190057159A publication Critical patent/KR20190057159A/ko
Application granted granted Critical
Publication of KR102150979B1 publication Critical patent/KR102150979B1/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/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/103Selection of coding mode or of prediction mode
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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/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
    • H04N11/00Colour television systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)
  • Image Processing (AREA)

Abstract

비-444 색채 포맷(non-444 color format)의 컬러 비디오(color video)에 대해 팔레트 코딩(palette coding) 모드를 사용하는 비디오 코딩 방법이 개시된다. 444 포맷용으로 설계된 팔레트가 비-444 비디오 데이터용으로 사용될 수 있도록 비-444 비디오 데이터는 444 포맷으로 변환될 수 있다. 4:2:0 색채 포맷의 경우, 대응하는 쿼드(quad) 루마(luma) 샘플들과 공동 배치된 각각의 크로마(chroma) 샘플은 3개의 크로마 샘플들로 패딩(pad)되어 변환된 쿼드 크로마 샘플들을 형성한다. 4:2:0 색채 포맷의 경우, 현재 픽셀이 색채 팔레트에 속하지 않으면, 하나 이상의 이스케이프(escape) 값들이 현재 픽셀에 대해 시그널링되고, 각각의 색채 성분에 대한 현재 픽셀의 크로마 샘플과 연관된 이스케이프 값은 대응 쿼드 루마 샘플들과 공동 배치된 쿼드 크로마 샘플 위치들 중 3개에 대해서는 시그널링되지 않는다.

Description

비디오 및 이미지 코딩에서의 비-444 색채 포맷을 위한 팔레트 기반 예측의 방법{METHODS OF PALETTE BASED PREDICTION FOR NON-444 COLOR FORMAT IN VIDEO AND IMAGE CODING}
관련 출원들에 대한 상호참조
본 발명은 2014년 12월 19일에 출원된 미국 가특허출원 62/094,137, 2015년 1월 26일에 출원된 미국 가특허출원 62/107,583, 및 2015년 2월 11일에 출원된 미국 가특허출원 62/114,671의 우선권을 주장한다. 이 미국 가특허출원들은 그 전체가 본 명세서에서 참조로서 병합된다.
기술분야
본 발명은 비디오 데이터에 대한 팔레트 코딩(palette coding)에 관한 것이다. 특히, 본 발명은 444 색채 포맷(color format) 및 비-444(non-444) 색채 포맷의 비디오 데이터에 대해 팔레트 코딩을 적용하는 다양한 기술들에 관한 것이다.
고효율 비디오 코딩(High Efficiency Video Coding; HEVC)은 최근 해에 개발된 새로운 코딩 표준이다. 고효율 비디오 코딩(HEVC) 시스템에서, H.264/AVC의 고정 크기 매크로블록은 코딩 단위(coding unit; CU)라고 불리어지는 플렉시블 블록(flexible block)으로 대체된다. CU에서의 픽셀들은 코딩 효율을 향상시키기 위해 동일한 코딩 파라미터를 공유한다. CU는 HEVC에서 코딩 트리 단위(coded tree unit; CTU)라고도 불리어지는 가장 큰 CU(largest CU; LCU)로 시작할 수 있다. 코딩 단위의 개념 외에도, 예측 단위(prediction unit; PU)의 개념이 또한 HEVC에 도입되었다. CU 계층 트리의 분할이 행해지면, 각각의 리프(leaf) CU는 예측 유형 및 PU 파티션에 따라 하나 이상의 예측 단위(PU)로 더 분할된다. 스크린 콘텐츠 코딩을 위한 몇 가지 코딩 툴이 개발되었다. 본 발명과 관련된 이러한 툴을 아래에서 간략히 검토해본다.
팔레트 모드 코딩
JCTVC-S1005(2014년 10월 17일~24일에 프랑스의 스트라스부르크에서 개최된 ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11의 19차 회의에서 비디오 코딩 공동 협력팀(Joint Collaborative Team on Video Coding; JCT-VC)의 조시(Joshi) 등이 발표한 "HEVC 스크린 콘텐츠 코딩 드래프트 텍스트 2", 문서: JCTVC-S1005)에서 개시된 바와 같이 HEVC에 대한 새로운 코딩 툴(스크린 콘텐츠 코딩(screen content coding; SCC)이라고 호칭됨)이 개발되었다. 팔레트 기반 코딩은 코딩 단위(CU)에 기초하여 수행된다.
팔레트 모드 코딩 프로세스에서, 색채 팔레트 및 인덱스 맵의 유도는 다음과 같이 설명된다. 색채 팔레트는 먼저 444 성분에 대한 픽셀값의 3개 성분들에 의해 유도된다. 색채 팔레트는 N개의 주요 색채(major color)들을 저장한다. 구체적으로, N개의 주요 색채들은 히스토그램 내 피크 값들이 주요 색채들로서 선택되는 최상위(most significant) N개 픽셀들에 대응한다.
주요 색채에 가까운 픽셀값들은 주요 색채로 양자화될 것이다. 현재 픽셀값과 주요 색채들과의 거리를 계산할 때, 3개 성분들이 고려될 것이다. 특히, 3개 성분들과 주요 색채 간의 절대적 차이가 추가될 것이고, 그 결과는 현재 픽셀을 어느 주요 색채에 할당할지를 결정하는데 사용된다. 픽셀을 각각의 주요 색채와 비교하여 가장 가까운 색채를 찾을 것이며, 해당 픽셀은 최단 거리를 갖는 주요 색채에 할당된다. 주요 색채 세트(색채 팔레트 또는 팔레트라고도 부름)에 속하지 않는 다른 픽셀들은 이스케이프 픽셀(escape pixel)로서 지정된다. 각각의 픽셀에 대해, 색채 인덱스가 할당되어 해당 픽셀이 팔레트 내의 어느 색채에 속하는지를 나타낸다. 이스케이프 픽셀들에 대해서는, 특수 색채 인덱스가 이스케이프 픽셀을 나타내는데 사용될 것이다.
팔레트 코딩에 대해 시그널링된 정보는 다음과 같이 도시된다:
1. 팔레트 시그널링: 색채 인덱스 표(팔레트 표이라고도 부름) 크기가 먼저 전송되고 이어서 팔레트 요소들(즉, 색채 값들)이 전송된다. 관련 구문 요소들은 다음을 포함한다:
1.1 palette_share_flag: 이전 팔레트 표가 현재 CU에 대해 사용되는지 여부를 규정한다;
1.2 palette_predictor_run: 이전 팔레트 표 중 어느 것이 현재 팔레트 표에서 재사용되는지를 규정한다;
1.3 palette_num_signaled_entries: 이전 팔레트 표로부터 예측되지 않은 팔레트 항목(palette entry)들의 수를 규정한다;
1.4 palette_entry: 이전 팔레트 표로부터 예측되지 않은 항목들에 대한 각각의 성분의 픽셀값들을 규정한다;
1.5 palette_escape_val_present_flag: 현재 CU에서의 이스케이프 픽셀의 존재를 규정한다;
1.6 cu_qp_delta_palette_abs: 현재 코딩 단위의 루마(luma) 양자화 파라미터와 그 예측 사이의 차이 CuQpDeltaVal의 절대값을 규정한다;
1.7 cu_qp_delta_palette_sign_flag: CuQpDeltaVal의 부호를 규정한다;
1.8 cu_chroma_qp_palette_offset_flag: 존재하고 1인 경우는, cb_qp_offset_list[] 내의 항목이 CuQpOffsetCb의 값을 결정하는데 사용되고 cr_qp_offset_list[] 내의 대응하는 항목이 CuQpOffsetCr의 값을 결정하는데 사용됨을 규정한다. cu_chroma_qp_palette_offset_flag가 0인 것은 CuQpOffsetCb 및 CuQpOffsetCr의 값들을 결정하기 위해 이러한 목록들이 사용되지 않음을 규정한다.
1.9 cu_chroma_qp_palette_offset_idx: 존재하는 경우, CuQpOffsetCb 및 CuQpOffsetCr의 값을 결정하는데 사용되는 인덱스를 cb_qp_offset_list[] 및 cr_qp_offset_list[] 내에서 규정한다. cu_chroma_qp_palette_offset_idx의 값은, 존재하는 경우, 0부터 chroma_qp_offset_list_len_minus1까지의 범위(이 값들을 포함함) 내에 있어야 한다. cu_chroma_qp_palette_offset_idx의 값은, 존재하지 않는 경우, 0이라고 추론된다;
1.10 palette_transpose_flag: 팔레트 예측을 위한 스캐닝 순서를 나타낸다.
2. 인덱스 맵 시그널링: 각각의 픽셀값을 팔레트에 따라 인덱스로 맵핑함으로써 CU 내의 픽셀들은 인덱스들로 표현된다. 관련 구문 요소들은 다음을 포함한다:
2.1 palette_run_type_flag: 현재 픽셀의 런 유형(run type)을 규정한다;
2.2 palette_index_idc: palette_run_type_flag가 copy_index_mode인 경우 픽셀의 팔레트 항목 사용을 나타낸다;
2.3 palette_run_msb_id_plus1: (palette_run_msb_id_plus1 - 1)는 paletteRun의 2진 표현에서의 최상위 비트의 인덱스를 규정한다. palette_run_msb_id_plus1의 값은 0에서 Floor(Log2 ((MaxPaletteRun)) + 1의 범위(이 값들을 포함함) 내에 있어야 한다;
2.4 palette_run_refinement_bits: paletteRun의 2진 표현에서의 정제 비트(refinement bit)들을 규정한다;
2.5 palette_escape_val: 성분에 대한 양자화된 이스케이프 코딩된 샘플값을 규정한다.
기존의 HEVC 관행에 따르면, 각각의 CU에 대해 하나의 팔레트 표가 시그널링된다. 팔레트 표의 각각의 항목은 각각의 성분마다 하나의 값씩, 세 개의 값들을 가질 수 있다. [표 1]은 3개의 색채 성분들에 대응하는 3개의 값들이 각각의 항목마다 있는 팔레트 표의 예시를 도시한다.
[표 1]
Figure pat00001
팔레트 코딩과 관련된 코딩 단위 구문이 [표 2]에서 도시되어 있다. [표 2]에서의 비고 (2-1)에 표시된 것과 같이, 팔레트 모드가 인에이블되어 있는지(즉, palette_mode_enabled_flag)] 여부, ChromaArrayType이 3(즉, 4:4:4 색채 포맷)인지 여부, 현재 예측 모드가 인트라 예측 모드(즉, CuPredMode[ x0 ][ y0 ] == MODE_INTRA)인지 여부, 및 IntraBC 플래그가 어써팅(assert)되어 있지 않은지(즉, !intra_bc_flag[ x0 ][ y0 ]) 여부에 관한 테스트가 수행된다. 비고 (2-1)에서의 테스트가 어써팅되면, 비고 (2-2)에 표시된 바와 같이 팔레트 모드 플래그(즉, palette_mode_flag[ x0 ][ y0 ])가 포함된다. 팔레트 모드 플래그가 설정되었는지 여부가 비고 (2-3)에서 도시된 바와 같이 테스트된다. 팔레트 모드 플래그가 1이면, 비고 (2-4)에서 표시된 바와 같이 조인트 팔레트(joint palette)를 사용하여 팔레트 코딩이 루마 및 크로마(chroma) 성분들에 적용된다.
[표 2]
Figure pat00002
현재의 SCM3.0(스크린 콘텐츠 코딩 테스트 모델 버전 3.0) 드래프트 및 소프트웨어에서, 444 포맷의 비디오 데이터의 경우, 위의 플래그들 대부분은 3개의 색채 성분들에 의해 공유된다. 또한, 단일 색채 팔레트가 현재 코딩 단위의 모든 색채 성분들에 대해 시그널링되고, 색채 팔레트의 각각의 항목은 3개의 색채 성분들 각각으로부터의 하나의 샘플값으로 구성된다. 비트 레이트를 보존하기 위해, 색채 팔레트는 예측 코딩을 사용하여 코딩될 수 있으며, 여기서, 예측자(predictor)는 이전의 코딩된 코딩 단위와 연관된 재구축된 팔레트에 대응할 수 있다.
다양한 비디오 코딩 응용예들에서, 비디오 데이터는 비-444 색채 포맷일 수 있으며, 여기서 크로마 색채 샘플들은 루마 성분에 비해 감소된 공간 해상도로 존재할 수 있다. 그러므로, 크로마 샘플은 각각의 루마 샘플마다 존재하지 않을 수 있다. 그러므로, 비-444 비디오 데이터에 대한 팔레트 코딩 기술들을 개발하는 것이 바람직하다.
비-444 색채 포맷의 컬러 비디오(color video)에 대해 팔레트 코딩 모드를 사용하는 비디오 코딩 방법이 개시되며, 컬러 비디오는 하나의 루마 색채 성분과 두 개의 크로마 색채 성분들로 구성된다. 일 실시예에서, 444 포맷용으로 설계된 팔레트가 비-444 비디오 데이터용으로 사용될 수 있도록 비-444 비디오 데이터는 444 포맷으로 변환된다. 비-444 색채 포맷이 4:2:0 색채 포맷에 대응할 때, 대응하는 쿼드(quad) 루마 샘플들과 공동 배치된(collocated) 각각의 크로마 샘플은 3개의 크로마 샘플들로 패딩(pad)되어 변환된 쿼드 크로마 샘플들을 형성한다. 비-444 색채 포맷이 4:2:2 색채 포맷에 대응할 때, 대응하는 듀오(duo) 루마 샘플들과 공동 배치된 각각의 크로마 샘플은 1개의 크로마 샘플들로 패딩되어 변환된 듀오 크로마 샘플들을 형성한다.
4:2:0 색채 포맷의 경우, 현재 픽셀이 색채 팔레트에 속하지 않으면, 하나 이상의 이스케이프 값들이 현재 픽셀에 대해 시그널링되고, 각각의 색채 성분에 대한 현재 픽셀의 크로마 샘플과 연관된 이스케이프 값은 대응 쿼드 루마 샘플들과 공동 배치된 쿼드 크로마 샘플 위치들 중 3개에 대해서는 시그널링되지 않는다. 4:2:2 색채 포맷의 경우, 현재 픽셀이 색채 팔레트에 속하지 않으면, 하나 이상의 이스케이프 값들이 현재 픽셀에 대해 시그널링되고, 각각의 색채 성분에 대한 현재 픽셀의 크로마 샘플과 연관된 이스케이프 값은 대응 듀오 루마 샘플들과 공동 배치된 듀오 크로마 샘플 위치들 중 1개에 대해서는 시그널링되지 않는다.
비-444 비디오 데이터의 경우, 변환된 크로마 블록을 형성하기 위해 각각의 크로마 블록은 디폴트 값을 갖는 크로마 샘플들로 패딩된다.
본 발명의 다른 양태는 비-444 색채 포맷들에 대한 팔레트 형성을 다룬다. 본 발명의 실시예들에 따르면, 비-444 색채 포맷의 경우, 색채 팔레트는 색채 팔레트의 적어도 하나의 항목에 대해 하나보다 많은 샘플 위치들로부터의 색채 샘플들을 포함하거나, 또는 색채 팔레트의 적어도 두 개의 항목들에 대해 상이한 수의 샘플들을 포함한다. 일 예에서, 4:2:0 색채 포맷의 경우, 색채 팔레트의 각각의 항목은 쿼드 루마 샘플들에 대응하는 4개의 루마값들, 쿼드 루마 샘플들과 공동 배치된 하나의 제1 크로마 샘플에 대응하는 하나의 제1 크로마값, 및 쿼드 루마 샘플들과 공동 배치된 하나의 제2 크로마 샘플에 대응하는 하나의 제2 크로마값으로 구성된다. 다른 예에서, 4:2:2 색채 포맷의 경우, 색채 팔레트의 각각의 항목은 듀오 루마 샘플들에 대응하는 2개의 루마값들, 듀오 루마 샘플들과 공동 배치된 하나의 제1 크로마 샘플에 대응하는 하나의 제1 크로마값, 및 듀오 루마 샘플들과 공동 배치된 하나의 제2 크로마 샘플에 대응하는 하나의 제2 크로마값으로 구성된다. 또다른 예에서, 4:2:0 색채 포맷의 경우, 색채 팔레트는 제1 유형 항목들 및 제2 유형 항목들 포함하고, 각각의 제1 유형 항목은 쿼드 루마 샘플들로부터의 하나의 루마값, 쿼드 루마 샘플들과 공동 배치된 하나의 제1 크로마 샘플의 하나의 제1 크로마값, 및 쿼드 루마 샘플들과 공동 배치된 하나의 제2 크로마 샘플의 하나의 제2 크로마값으로 구성되며, 각각의 제2 유형 항목은 쿼드 루마 샘플들의 나머지 3개의 루마 샘플들에 대한 3개의 루마값들로 구성된다. 또다른 예에서, 색채 팔레트는 제1 유형 항목들 및 제2 유형 항목들을 포함하고, 각각의 제1 유형 항목은 하나의 루마 샘플의 하나의 루마값, 하나의 제1 크로마 샘플의 하나의 제1 크로마값, 및 동일한 샘플 위치로부터의 하나의 제2 크로마 샘플의 하나의 제2 크로마값으로 구성되며, 각각의 제2 유형 항목은 제1 유형 항목들에 포함되지 않은 나머지 루마 샘플 위치들에 대한 하나의 루마값으로 구성된다.
컬러 비디오에 대한 팔레트 코딩을 위한 다른 실시예에서, 2개 이상의 색체 팔레트들이 현재 블록의 다중 색채 성분들에 대해 사용된다. 현재 블록의 2개 이상의 색채 팔레트들 각각에 대한 하나 이상의 개별 팔레트 파라미터들이 비디오 비트스트림의 시퀀스 파라미터 세트(sequence parameter set; SPS)에서 시그널링될 수 있다. 개별 팔레트 파라미터들은 최대 팔레트 크기 또는 최대 팔레트 예측자 크기를 포함할 수 있거나 또는 이 둘 다를 포함할 수 있다. 현재 블록의 상기 2개 이상의 색채 팔레트들 모두에 대한 하나 이상의 공통 팔레트 파라미터들이 또한 비디오 비트스트림의 시퀀스 파라미터 세트(SPS)에서 시그널링될 수 있다. 현재 블록의 2개 이상의 색채 팔레트들 각각은 각각의 색채 성분에 대한 개별 팔레트 예측자에 의해 예측될 수 있고, 현재 블록의 개별 팔레트 예측자는 개별적으로 업데이트될 수 있다.
또다른 실시예에서, 색채 포맷이 444 포맷에 대응할 때, 각각의 색채 성분은 각각의 항목에서의 단하나의 색채 성분으로 구성된 개별 색채 팔레트를 사용하거나 또는 각각의 항목에서의 하나의 루마 성분과 두 개의 크로마 성분들로 구성된 단일 색채 팔레트를 사용하여 코딩될 수 있다. 색채 포맷이 비-444 포맷에 대응할 때, 현재 블록의 각각의 색채 성분은 각각의 항목에서의 단하나의 색채 성분으로 구성된 개별 색채 팔레트를 사용하여 코딩될 수 있다. 색채 성분들이 비-444 색채 포맷에 대응하면, 현재 블록의 각각의 색채 성분마다 하나의 인덱스 맵이 생성된다.
도 1은 4:2:0 색채 포맷에 대한 각각의 크로마 샘플과 공동 배치된 쿼드 루마 샘플들 Y(00), Y(01), Y(10) 및 Y(11)의 샘플링 패턴 및 위치들을 도시한다.
도 2는 4:2:2 색채 포맷에 대한 각각의 크로마 샘플과 공동 배치된 듀오 루마 샘플들 Y(00)와 Y(10), 또는 Y(01)와 Y(11)의 샘플링 패턴 및 위치들을 도시한다.
도 3은 4:2:0 색채 포맷에 대한 루마 샘플들과 크로마 샘플들의 샘플링 패턴 및 위치들의 예시를 도시한다.
도 4는 4:2:2 색채 포맷에 대한 루마 샘플들과 크로마 샘플들의 샘플링 패턴 및 위치들의 예시를 도시한다.
도 5는 4:2:0 포맷에 대한 업 샘플링된(up-sampled) 크로마 샘플들로부터 크로마 샘플들을 재구축하기 위한 다운 샘플링(down sampling) 프로세스의 예를 도시한다.
도 6은 크로마 샘플들을 루마 샘플들로서 풀 공간 해상도로 패딩하고 4:2:0 포맷에 대한 루마 샘플들 및 업 샘플링된 크로마 샘플들에 기초하여 단일 색채 팔레트를 생성하는 예를 도시한다.
도 7은 크로마 샘플들을 루마 샘플들로서 풀 공간 해상도로 패딩하고 4:2:2 포맷에 대한 루마 샘플들 및 업 샘플링된 크로마 샘플들에 기초하여 단일 색채 팔레트를 생성하는 예를 도시한다.
도 8은 본 발명의 실시예에 따른 팔레트 코딩을 통합한 코딩 시스템에 대한 예시적인 흐름도를 도시한다.
이하의 설명은 본 발명을 수행하기 위한 최상의 구상 모드에 관한 것이다. 본 설명은 본 발명의 일반적인 원리들을 설명할 목적으로 기술된 것이며, 본 발명의 범위를 한정하는 의미로 받아들여서는 안된다. 본 발명의 범위는 첨부된 청구항들에 대한 참조에 의해 최상으로 결정된다.
기존 팔레트 코딩은 기저 색채 샘플들이 YUV444 또는 RGB444와 같은 4:4:4 색채 포맷으로 있다는 가정하에 설계되었다. 그렇지만, 매우 자주, YUV420 및 YUV422와 같은 보다 콤팩트한 색채 포맷들이 사용되어 왔다. 코딩 성능을 개선하기 위해, 다양한 개선된 팔레트 코딩 기술들이 본 발명에 개시되어 있다.
팔레트 시그널링
이 양태와 관련하여, 팔레트 예측 관련 플래그, 팔레트 크기 관련 정보 및 팔레트 공유 관련 플래그가 본 발명의 실시예들에 따른 코딩 단위(CU) 내의 상이한 성분들에 대해 개별적으로 시그널링될 수 있다. 예를 들어, 일부 성분들은 팔레트 표 자체를 제외하고 팔레트 표와 관련된 동일한 정보를 공유할 수 있다.
본 발명의 실시예들은 컬러 비디오 데이터에 대해 복수의 팔레트 표들을 사용한다. [표 3a] 및 [표 3b]는 루마 및 크로마 성분들 각각에 대한 개별 팔레트 표들(본 발명개시에서 팔레트들 또는 색채 팔레트들이라고도 부름)의 예를 각각 도시한다. [표 3a]에서, 팔레트 표에서의 각각의 항목은 하나의 루마 성분으로 구성된다. [표 3b]에서, 팔레트 표에서의 각각의 항목은 2개의 크로마 성분들로 구성된다.
[표 3a]
Figure pat00003
[표 3b]
Figure pat00004
다른 예에서, 2개의 크로마 성분들은 2개의 크로마 성분들에 대한 [표 4a] 및 [표 4b]에서 각각 도시된 바와 같이 각자의 개별 팔레트 표들을 사용한다. 루마 성분에 대한 팔레트 표는 [표 3a]에서 도시된 것과 동일하게 남는다. 따라서, 이 경우 각각의 CU에 대해 총 3개의 팔레트 표들이 사용된다.
[표 4a]
Figure pat00005
[표 4b]
Figure pat00006
또다른 예에서, 전술한 복수의 팔레트 표들은 CU를 위해 함께 사용될 수 있다. 복수의 색채 성분들에 대한 선택된 유형의 팔레트 표들이 명시적으로 시그널링되거나 또는 미리 정의될 수 있다. 예를 들어, 시스템은 [표 1]에서 도시된 바와 같이 각각의 항목에서 3개의 성분들을 갖는 종래의 팔레트 표뿐만이 아니라, [표 3a]에서 도시된 루마 성분에 대한 하나의 표와 [표 3b]에 도시된 2개의 크로마 성분을 갖는 표를 사용할 수 있다. 현재 CU에 대해 어느 팔레트 표가 사용되는지를 표시하기 위해 플래그가 사용될 수 있다.
또다른 예에서, 단일 팔레트 표가 4:2:0 색채 포맷의 각각의 CU에 대해 시그널링될 수 있다. 각각의 항목은 4:2:0 색채 포맷에서의 대응 위치들로부터 4개의 루마값들과 2개의 크로마(즉, Cb 및 Cr)값들로 구성된 6개의 값들을 갖는다. [표 5]는 4:2:0 색채 포맷의 경우 각각의 항목에 6개의 샘플값이 있는 팔레트 표의 예를 도시한다. Y(00), Y(01), Y(10), 및 Y(11)의 위치가 도 1에 도시되어 있다. 도 1에서 도시된 바와 같이, 하나의 Cb 샘플과 하나의 Cr 샘플은 4개의 인접한 루마(즉, Y) 샘플들의 클러스터와 연관지어진다. 4개의 인접한 루마(즉, Y) 샘플들의 클러스터를 또한 쿼드 루마 샘플들이라고 지칭한다. Cb 및 Cr 샘플들은 쿼드 루마 샘플들과 공동 배치된다.
[표 5]
Figure pat00007
또다른 예에서, 하나의 팔레트 표가 4:2:2 포맷의 각각의 CU에 대해 시그널링될 수 있다. 각각의 항목은 4:2:2 색채 포맷에서의 대응 위치들로부터 4개의 루마값들과 4개의 크로마(즉, 2개의 Cb 및 2개의 Cr)값들로 구성된 8개의 값들을 갖는다. [표 6]은 팔레트 표의 예를 도시한다. 도 2에서는 Y(00), Y(01), Y(10), Y(11), Cb(00), Cb(01), Cr(00), 및 Cr(01)의 위치가 도시되어 있다. 도 2에서 도시된 바와 같이, 하나의 Cb 샘플과 하나의 Cr 샘플은 2개의 인접한 루마(즉, Y(00)과 Y(10), 또는 Y(01)과 Y(11)) 샘플들의 클러스터와 연관지어진다. 2개의 인접한 루마 샘플들의 클러스터를 또한 본 발명개시에서 듀오 루마 샘플들이라고 지칭한다. Cb(예컨대, Cb(00)) 및 Cr(예컨대, Cr(00)) 샘플들이 듀오 루마 샘플들(예컨대, Y(00)과 Y(10))과 공동 배치된다.
[표 6]
Figure pat00008
또다른 예에서, 하나의 팔레트 표가 4:2:0 포맷의 각각의 CU에 대해 시그널링될 수 있다. 3개의 루마 성분값들을 갖는 하나의 항목과, 3개의 루마 및 크로마 성분값들(즉, Y/Cb/Cr)을 갖는 하나의 항목이 인터리빙될 수 있다. [표 7]은 팔레트 표의 예를 도시한다. Y(00), Y(01), Y(10), 및 Y(11)의 위치가 도 1에 도시되어 있다.
[표 7]
Figure pat00009
또다른 예에서, 하나의 팔레트 표가 4:2:2 포맷의 각각의 CU에 대해 시그널링될 수 있다. 각각의 항목은 4개의 루마 및 크로마 성분값들을 갖는다. 하나의 항목은 2개의 상위 루마 위치들(즉, Y(00) 및 Y(10))과 각각의 크로마 성분의 상위 위치들(즉, Cb(00) 및 Cr(00))에 대한 값들을 갖는다. 다른 항목은 2개의 하위 루마 위치들(즉, Y(01) 및 Y(11))과 각각의 크로마 성분의 하위 위치들(즉, Cb(01) 및 Cr(01))에 대한 값들을 갖는다. 이들 두 항목들은 인터리빙될 수 있다. [표 8]은 각각의 항목에 4개의 샘플값들이 있는 팔레트 표의 예를 도시한다. 도 2에서는 Y(00), Y(01), Y(10), Y(11), Cb(00), Cb(01), Cr(00), 및 Cr(01)의 위치가 도시되어 있다.
[표 8]
Figure pat00010
또다른 실시예에서, 하나의 팔레트 표가 각각의 CU에 대해 시그널링될 수 있다. 매 4개의 항목들 중 하나는 루마 성분과 크로마 성분에 대한 3개의 유효값들을 갖는다. 매 4개의 항목들 중 나머지 3개 항목들은 루마 성분에 대한 단하나의 유효값과, 크로마 성분들에 대한 2개의 디폴트값들을 갖는다. [표 9]는 팔레트 표의 예를 도시하는데, 여기서 "x"는 각각의 크로마 성분에 대한 디폴트값을 나타낸다.
[표 9]
Figure pat00011
"x"에 대응하는 표 값들은 중복적이다. 따라서, 팔레트가 시그널링될 때, "x"에 대응하는 픽셀값은 시그널링될 필요가 없다. 따라서, [표 10]의 예에서 도시된 바와 같이, 매 4개의 항목들 중 하나는 시그널링할 3개의 성분들을 갖고, 매 4개의 항목들 중 나머지 3개의 항목들은 시그널링할 단하나의 성분을 갖는다. 팔레트를 시그널링할 때, 3개의 유효 성분값들을 갖는 항목들이 먼저 시그널링될 수 있다. 3개의 유효 성분값들을 갖는 모든 항목들이 시그널링된 후, 각각의 항목에서 단하나의 유효값을 갖는 항목들이 시그널링될 수 있다. 3개 성분 항목들의 최대 수가 maxNum이고 팔레트의 인덱스가 maxNum보다 큰 값을 갖는 경우, 이 인덱스는 해당 항목이 단하나의 유효 성분값을 갖는다는 것을 표시한다.
[표 10]
Figure pat00012
또한, 하나의 팔레트 표가 각각의 CU에 대해 시그널링될 수 있다. 팔레트 표의 각각의 항목은 3개 성분들에 대응하는 3개의 값들을 가질 수 있다. [표 11]과 [표 12]는 복제 크로마 픽셀값들을 갖는 420 및 422 색채 포맷들에 대한 팔레트 표들의 예를 각각 도시한다.
[표 11]
Figure pat00013
[표 12]
Figure pat00014
인덱스 맵 코딩
각각의 성분의 정보는 개별적으로 시그널링될 수 있다. Transpose_flag, sharing_flag 및 이스케이프(escape) 플래그가 각각의 성분마다 시그널링될 수 있다. Transpose_flag는 전치(transpose) 프로세스가 현재 코딩 단위의 연관된 팔레트 인덱스들에 적용되어 있는지 여부를 표시하기 위해 사용된다. Sharing_flag는 두 개의 성분들이 동일한 팔레트 표를 공유하는지 여부를 표시하기 위해 사용된다. 또한 몇몇의 성분들이 플래그들을 공유할 수 있거나 또는 다른 성분들의 플래그들로부터 해당 플래그들을 유도할 수 있다.
본 발명의 다른 양태는 코딩 효율을 향상시키기 위한 인덱스 맵 코딩을 다룬다. 예를 들어, 팔레트 표가 하나보다 많이 있는 경우, 각각의 성분에 대한 인덱스 맵이 개별적으로 시그널링될 수 있다. 따라서, 각각의 성분은 각자의 런 유형, 인덱스, 런 길이, 및 이스케이프 값을 갖는다. 또한, 루마 성분 및 크로마 성분에 대한 2개의 인덱스 맵들이 시그널링될 수 있다. 이 경우, 2개의 크로마 성분들은 하나의 인덱스 맵을 공유한다. 또한, 모든 성분들은 하나의 인덱스 맵을 공유할 수 있다. 각 경우에 대한 의사 코드(pseudo-code)는 다음과 같이 설명될 수 있다.
예시 1: 모든 성분들에 대한 하나의 인덱스 맵
Figure pat00015
예시 2: 루마 성분에 대한 하나의 인덱스 맵과 크로마 성분들에 대한 하나의 인덱스 맵
Figure pat00016
예시 3: 각각의 성분에 대한 하나의 인덱스 맵
Figure pat00017
다른 실시예에서, 모든 성분들 또는 일부 성분들은 런 유형 및 런 길이를 공유할 수 있다. 하나보다 많은 인덱스 맵들이 성분들에 대해 사용될 수 있다. 이 경우, 각각의 성분은 각자의 인덱스 맵을 가질 수 있다. 그렇지 않으면, 색채 성분들은 하나의 인덱스 맵을 공유할 수 있다. 각 경우에 대한 의사 코드는 다음과 같이 설명될 수 있다.
예시 1: 모든 성분에 대한 하나의 인덱스 맵
Figure pat00018
예시 2: 루마 성분에 대한 하나의 인덱스와 크로마 성분들에 대한 하나의 인덱스
Figure pat00019
예시 3: 각각의 성분에 대한 하나의 인덱스
Figure pat00020
각각의 항목에 6개의 값들이 있는 단하나의 팔레트 표가 사용되는 경우, 쿼드 루마 샘플들, 및 이 쿼드 루마 샘플과 공동 배치된 하나의 Cb 크로마 샘플과 하나의 Cr 크로마 샘플에 하나의 인덱스가 할당될 수 있다. 따라서, 도 3에서 도시된 바와 같이 Y0, Y1, Y2, Y3, Cb0 및 Cr0에서의 샘플들은 하나의 인덱스를 공유할 수 있으며, Y4, Y5, Y6, Y7, Cb1 및 Cr1에서의 샘플들은 다른 인덱스를 공유할 수 있다.
각각의 항목에 3개의 값들이 있는 단하나의 팔레트 표가 사용되는 경우, 각각의 크로마 위치는 4:2:0 포맷에 대한 도 3과 같이 4개의 루마 위치들에 대응하며, 굵은 선으로 이루어진 각각의 사각형은 하나의 크로마 위치와 연관된 4개의 루마 샘플들의 세트로 구성된다. 각각의 루마 위치는 각자의 인덱스를 가지므로, 하나의 크로마 위치는 3개의 인덱스들에 대응한다. 이 경우, 크로마 위치에 부과된 인덱스는 다음과 같이 도시된다.
1. 인덱스는 루마 위치들에 할당된 4개의 인덱스들 중 하나일 수 있다. 도 3에서, Cb0(또는 Cr0)의 인덱스는 Y0, Y1, Y2, 및 Y3 중 임의의 인덱스일 수 있다. 마찬가지로, Cb1(또는 Cr1)의 인덱스는 Y4, Y5, Y6, 및 Y7 중 임의의 인덱스일 수 있다.
2. 인덱스는 루마 위치들에 할당된 4개의 인덱스들 중의 최소 인덱스, 최대 인덱스, 또는 중간 인덱스일 수 있다. 도 3에서, Cb0(또는 Cr0)의 인덱스는 Y0, Y1, Y2, 및 Y3 중의 최소 인덱스, 최대 인덱스, 또는 중간 인덱스일 수 있다. 마찬가지로, Cb1(또는 Cr1)의 인덱스는 Y4, Y5, Y6, 및 Y7 중의 최소 인덱스, 최대 인덱스, 또는 중간 인덱스일 수 있다.
위에서 언급한 이들 방법들은 4:2:2 색채 포맷에 적용될 수 있다. 4:2:2 포맷의 경우, 각각의 루마 위치는 각자의 인덱스를 가지므로, 2개의 크로마 위치들은 4개의 인덱스들에 대응한다. 이 경우 크로마 위치들에 부과된 인덱스는 다음과 같이 도시된다.
1. 2개의 크로마 위치들은 1개의 인덱스를 공유할 수 있다. 도 4에서, Cb0와 Cb1의 인덱스들은 동일할 수 있다. 인덱스를 유도하는 방법은 4:2:0 포맷 경우와 동일할 수 있다.
2. 인덱스는 루마 위치들에 할당된 2개의 인덱스들 중 하나일 수 있다. 도 4에서, Cb0(또는 Cr0)의 인덱스는 Y0 또는 Y1 중 하나의 인덱스일 수 있다. Cb1(또는 Cr1)의 인덱스는 또한 Y2 또는 Y3 중 하나의 인덱스일 수 있다.
3. 인덱스들은 루마 위치들에 할당된 4개의 인덱스들 중의 2개의 최소 인덱스들, 2개의 최대 인덱스들, 또는 중간에 있는 2개의 인덱스들일 수 있다. 도 4에서, Cb0(또는 Cr0)의 인덱스는 Y0, Y1, Y2, 및 Y3 중의 최소 인덱스, 최대 인덱스, 또는 중간 인덱스일 수 있다. Cb1(또는 Cr1)의 인덱스는 Y0, Y1, Y2, 및 Y3 중의 두번째로 최소인 인덱스, 두번째로 최대인 인덱스, 또는 두번째로 중간에 있는 인덱스일 수 있다.
크로마 픽셀들의 픽셀값 재구축
성분이 자체적인 인덱스 맵을 갖는 경우, 인덱스에 기초하여 팔레트 표로부터 값이 재구축될 수 있다. 각각의 성분이 사용하는 팔레트 표는 미리 결정되거나 명시적으로 시그널링될 수 있다. CU가 단하나의 팔레트를 갖는 경우, 모든 성분이 이 팔레트 표를 사용할 것이다. CU가 1개보다 많은 팔레트를 갖는 경우, 각각의 성분은 해당 성분에 대응하는 팔레트 표를 사용할 수 있다. 또한, 선택된 성분을 위해 사용된 팔레트 표는 시그널링될 수 있다. 예를 들어, Cb 성분은 루마 성분을 위해 시그널링되는 팔레트 표를 사용할 수 있다.
4:2:0 색채 포맷의 경우, 인덱스가 루마 및 크로마 성분들에 의해 공유되는 경우, 4개의 루마값들과 공동 배치된 하나의 대응하는 크로마 위치에 대해 4개의 크로마값들이 재구축될 수 있다. 이 경우 크로마 픽셀의 값은 다음과 같을 수 있다:
1. 값은 루마 위치들에 대응하는 4개의 크로마값들 중 하나일 수 있다. 예를 들어, Cb0(또는 Cr0)의 값은 Y0, Y1, Y2, 및 Y3 위치들에 할당된 Cb(또는 Cr) 값들 중 하나일 수 있다.
2. 값은 루마 위치들에 대응하는 4개의 크로마값들의 최소값, 최대값 또는 평균값일 수 있다. 예를 들어, Cb0(또는 Cr0)의 값은 Y0, Y1, Y2, 및 Y3의 위치들에 할당된 Cb(또는 Cr) 값들의 최소값, 최대값, 또는 중간값일 수 있다.
3. 값은 쿼드 루마 샘플들의 좌측 위 및 우측 위 위치들 또는 좌측 아래 및 우측 아래 위치들에 있는 루마 샘플들에 대응하는 2개의 크로마값들의 평균값일 수 있다. 예를 들어, Cb0(또는 Cb1)의 값은 Y0 및 Y1의 위치들 또는 Y2 및 Y3의 위치들에 할당된 이들 Cb(또는 Cr) 값들의 평균값일 수 있다.
4. 값은 쿼드 루마 샘플들의 좌측 위 및 좌측 아래 위치들 또는 우측 위 및 우측 아래 위치들에 있는 루마 샘플들에 대응하는 2개의 크로마값들의 평균값일 수 있다. 예를 들어, Cb0(또는 Cb1)의 값은 Y0 및 Y2의 위치들 또는 Y1 및 Y3의 위치들에 할당된 이들 Cb(또는 Cr) 값들의 평균값일 수 있다.
위에서 언급한 바와 같이, 4:2:0 포맷 비디오의 경우, 루마 성분과 크로마 성분들은 하나의 인덱스 맵을 공유할 것이다. 루마값을 재구축하기 위해, 현재 루마값 위치의 인덱스는 루마 픽셀값을 재구축하는데 사용될 것이다. 크로마값을 재구축하기 위해, 현재 크로마값 위치가 인덱스 위치에 맵핑될 것이다. 맵핑된 위치의 인덱스 값은 크로마 픽셀값을 재구축하는데 사용될 것이다. 달리 말하면, 인덱스 맵을 사용하여 크로마 재구축 픽셀들이 유도될 것이다. 이어서, 크로마 재구축 픽셀을 획득하기 위해 다운 샘플링이 수행된다. 도 5는 4:2:0 포맷에 대한 크로마 샘플들을 획득하기 위한 크로마 샘플 다운 샘플링의 예를 도시하며, 여기서 크로마 샘플들(510)은 크로마 샘플들(520)로 다운 샘플링된다.
다운 샘플링 프로세스로 인해, 일부 위치에서의 크로마값은 폐기될 것이다. 픽셀이 이스케이프 인덱스인 경우, 이스케이프가 특정 위치들에서 발생하면 인코더 또는 디코더는 3개 성분들의 이스케이프 값을 사용하여 현재 픽셀을 재구축할 것이다. 다른 위치에 있는 동안, 인코더 또는 디코더는 루마 이스케이프 값만을 사용하여 루마 픽셀을 재구축할 것이다. 예를 들어, 위치 0에서의 인덱스가 이스케이프 인덱스를 나타내는 경우, 루마 재구축된 값 및 크로마 재구축된 값이 위치 0에서의 이스케이프 값으로부터 재구축된다. 위치 1에서의 인덱스가 이스케이프 인덱스를 나타내면, 루마값은 위치 1에서의 이스케이프 값으로부터 재구축되는 반면에, 크로마 값은 색채 표로부터 구해질 수 있다. 일 실시예에서, 인덱스0, 인덱스1, 인덱스2, 인덱스3 중 어느 하나가 이스케이프 인덱스에 대응하면, 크로마 재구축된 값은 이스케이프 값으로부터 구해질 것이다.
위에서 개시된 방법들은 또한 4:2:2 포맷 비디오에 적용될 수 있다. 4:2:2 포맷의 경우, 4개의 크로마값들이 4개의 루마 위치들에 대응하는 2개의 크로마 위치들에 대해 재구축될 수 있다. 이 경우 크로마 픽셀들의 값은 다음과 같을 수 있다:
1. 2개의 크로마 픽셀들의 값들은 동일할 수 있다. 예를 들어, Cb0 및 Cb1의 값은 도 4에서 동일하다. 인덱스를 유도하는 방법은 4:2:0 포맷 경우와 동일할 수 있다.
2. 값은 쿼드 루마 위치들에 대응하는 4개의 크로마값들 중 하나일 수 있다. 예를 들어, Cb0(또는 Cr0)의 값은 Y0, Y1, Y2, 및 Y3의 위치들에 할당된 Cb(또는 Cr) 값들 중 하나일 수 있다. Cb1(또는 Cr1)의 값은 Y0, Y1, Y2, 및 Y3의 위치들에 할당된 Cb(또는 Cr) 값들 중 하나일 수 있다.
3. 값은 루마 위치들에 대응하는 4개의 크로마값들 중 2개의 최소값들 또는 2개의 최대값들일 수 있다. 예를 들어, Cb0(또는 Cr0)의 값은 Y0, Y1, Y2, 및 Y3의 위치들에 할당된 Cb(또는 Cr) 값들 중 최소 또는 최대 Cb(또는 Cr) 값일 수 있다. Cb1(또는 Cr1)의 값은 Y0, Y1, Y2, 및 Y3의 위치들에 할당된 Cb(또는 Cr) 값들 중 두번째로 최소이거나 또는 두번째로 최대인 Cb(또는 Cr) 값일 수 있다.
4. 값은 쿼드 루마 샘플들의 좌측 위 및 우측 위 위치들 또는 좌측 아래 및 우측 아래 위치들에 있는 루마 샘플들에 대응하는 2개의 크로마값들의 평균값일 수 있다. 예를 들어, Cb0(또는 Cr0)의 값은 Y0 및 Y1의 위치들에 할당된 이들 Cb(또는 Cr) 값들의 평균 Cb(또는 Cr) 값일 수 있다. Cb1(또는 Cr1)의 값은 Y2 및 Y3의 위치들에 할당된 이들 Cb(또는 Cr) 값들의 평균 Cb(또는 Cr) 값일 수 있다.
5. 값은 쿼드 루마 샘플들의 좌측 위 및 좌측 아래 위치들 또는 우측 위 및 우측 아래 위치들에 있는 루마 샘플들에 대응하는 2개의 크로마값들의 평균값일 수 있다. 예를 들어, Cb0(또는 Cr0)의 값은 Y0 및 Y2의 위치들에 할당된 이들 Cb(또는 Cr) 값들의 평균 Cb(또는 Cr) 값일 수 있다. Cb1(또는 Cr1)의 값은 Y1 및 Y3의 위치들에 할당된 이들 Cb(또는 Cr) 값들의 평균 Cb(또는 Cr) 값일 수 있다.
팔레트 표 및 인덱스 맵의 유도
본 발명은 팔레트 모드 코딩의 또다른 양태, 즉 팔레트 표 및 인덱스 맵의 유도를 다룬다. 일 실시예에서, 4:2:0 또는 4:2:2 색채 포맷의 경우, 인코더는 비디오를 4:4:4 포맷으로 업 샘플링하여 색채 팔레트 표를 구하고 색채 인덱스를 계산할 것이다. 각각의 CU에 대해, 도 6 및 도 7에서 도시된 바와 같이 색채 팔레트 표를 유도하기 위해 Cb 및 Cr 성분들은 업 샘플링된다. 도 6에서 도시된 바와 같이, 4:2:0 포맷에 대한 원래의 루마 및 크로마 샘플들은 도 6에서 참조번호 610으로 표시된다. Y1, Y2, 및 Y3에서의 루마 위치들에 대응하는 업 샘플링된 크로마 값들은 도 6에서의 참조번호 620에 의해 표시된 Cb0 및 Cr0으로 패딩된다. 다른 실시예에서, Y1, Y2, 및 Y3에서의 루마 위치들에 대응하는 업 샘플링된 크로마 값들은 미리 정의된 값 N일 수 있다. 따라서, 인코더/디코더는 Y/Cb/Cr 3개 성분들을 사용하여 도 6에서의 각각의 CU에 대한 참조번호 630으로 표시된 바와 같은 인덱스 맵을 유도하는 동안 현재 픽셀과 색채 팔레트 내의 픽셀 간의 거리를 계산할 수 있다. 이 업 샘플링 프로세스는 필요할 때마다 수행될 수 있으며 각각의 CU에 기초할 수 있다. 도 7은 4:2:2 포맷의 예를 도시한다. 4:2:2 포맷에 대한 원래의 루마 및 크로마 샘플들은 도 7에서 참조번호 710으로 표시된다. 업 샘플링된 크로마 값들은 도 7에서의 참조번호 720으로 표시된 Cb0/Cb1 및 Cr0/Cr1이다. 인코더/디코더는 Y/Cb/Cr 3개 성분들을 사용하여 도 7에서의 각각의 CU에 대한 참조번호 730으로 표시된 바와 같은 인덱스 맵을 유도하는 동안 현재 픽셀과 색채 팔레트 내의 픽셀 간의 거리를 계산할 수 있다.
각각의 CU에 대해, 색채 인덱스를 유도하기 위해 Cb 및 Cr 성분들은 업 샘플링된다. 하나의 인덱스 맵이 생성되고, 인덱스 맵의 크기는 루마 성분 크기와 동일하다. 현재의 HEVC 테스트 모델 소프트웨어에서, 현재 픽셀과 팔레트 표로부터의 색채 간의 거리의 계산은 현재 픽셀과 팔레트 내의 색채 간의 개별 색채 성분들의 절대적 차이의 합에 기초한다.
본 발명의 실시예에 따르면, 인코더는 현재 픽셀과 팔레트 내의 색채 간의 거리를 계산하기 위해 루마 성분 및 크로마 성분에 상이한 가중치들을 적용한다. 특히, 루마 성분에 대한 가중 계수 Luma_Weight가 현재 픽셀들과 팔레트 내의 색채 간의 루마 성분의 절대적 차이에 적용된다. 다른 가중 계수 Total_Weight는 가중치부여된 절대적 루마 차이와 가중치부여되지 않은 절대적 크로마 차이들의 합에 적용된다.
이스케이프 값 코딩
이스케이프 플래그가 참(true)인 경우, 기저 픽셀에 대한 이스케이프 값이 시그널링될 것이다. 4:2:0 포맷에 대한 일 실시예에서, 현재 위치에서의 실제 이스케이프 픽셀값이 시그널링될 것이다. 달리 말하면, 3개 성분들이 하나씩 시그널링될 것이다. 예를 들어, 위치 0에서의 이스케이프 플래그가 참인 경우, Y0, Cb0 및 Cr0에 대한 픽셀값들이 시그널링될 것이다. 위치 1에서의 이스케이프 플래그가 참인 경우, Y1, Cb0 및 Cr0에 대한 픽셀값들이 시그널링될 것이다.
다른 실시예에서, 3개 성분들 모두가 특정 이스케이프 위치들에서 시그널링될 것이다. 다른 이스케이프 위치들에서는, 루마 성분만이 시그널링될 것이다. 4개의 루마값들은 동일한 크로마값을 공유하므로, 3개 위치들에 대한 크로마값들을 시그널링할 필요는 없다. 예를 들어, 위치 0에서의 이스케이프 플래그가 참인 경우, Y0, Cb0 및 Cr0에 대한 픽셀값들이 시그널링된다. 위치 1에서의 이스케이프 플래그가 참인 경우, Y1에 대한 픽셀값만이 시그널링될 것이다. Y1에 대한 재구축된 Cb 및 Cr 값들이 재구축 단계에서 Cb0 및 Cr0에 기초하여 유도될 것이다. 상술한 바와 같은 이스케이프 값 코딩 방법은 4:2:2 포맷에도 적용될 수 있다.
이스케이프 값 코딩의 상기 실시예를 통합하는 예시적인 팔레트 코딩 구문이 [표 13]에서 도시된다. 표에서 도시된 바와 같이, 비고 (13-1)에서의 조건들 중 임의의 조건이 만족될 때 비고 (13-2)에 의해 표시된 이스케이프 값이 포함된다. 조건 "ChromaArrayType == 3"은 4:4:4 포맷에 대응하며 모든 색채 샘플들이 시그널링된다. 조건 "cIdx == 0"은 항상 시그널링되는 루마 샘플에 대응한다. 조건 "( xC%2 == 0 && ChromaArrayType == 2 && !palette_transpose_flag) || ( yC%2 == 0 && ChromaArrayType == 2 && palette_transpose_flag )"은 4:2:2 포맷에 대응하며 도 2에서의 Y(00) 및 Y(01)에 대응하는 위치들에서의 크로마 샘플들이 시그널링될 것이다. 조건 "xC%2 == 0 && yC%2 == 0 && ChromaArrayType ==1"은 4:2:0 포맷에 대응하며 도 1에서의 Y(00)에 대응하는 위치들에서의 크로마 샘플들이 시그널링될 것이다.
[표 13]
Figure pat00021
팔레트 코딩 모드와 연관된 구문
JCTVC-T0062(2015년 2월 10일부터 18일까지 스위스 제네바에서 개최된 ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11의 20차 회의에서의 비디오 코딩 공동 협력팀(Joint Collaborative Team on Video Coding; JCT-VC)의 "비-4:4:4 팔레트 모드: AhG 방식", 푸(Pu) 등이 발표함, 문서: JCTVC-T0062)에서는, 비-4:4:4 크로마 서브샘플링을 위한 새로운 팔레트 코딩이 개시되어 있는데, 여기서는, 각각의 팔레트 모드 CU에 대한 루마 및 크로마 샘플들이 개별적으로 코딩된다. 루마 및 크로마 성분들에 대한 2개의 팔레트들이 생성된다. 이들 팔레트들은 각각 대응하는 루마 및 크로마 인덱스 블록들을 코딩하는데 사용된다.
예를 들어, 루마 및 크로마 성분들에 대해 유지되는 2개의 개별적인 팔레트 예측자 목록이 있다. 루마 및 크로마 성분들은 각자의 개별적인 스캐닝 방향들(즉, palette_transpose_flag), 이스케이프 픽셀 존재 플래그, 및 팔레트 공유 플래그 값들(즉, palette_share_flag) 등을 갖는다. 대응하는 구문이 [표 14]에 있으며, 여기서 바탕에 사선이 그어져 있는 텍스트(즉, "ChromaArrayType == 3 &&")는 삭제된 텍스트를 나타낸다. [표 14]에서, 팔레트 모드가 인에이블되어 있는지 여부(즉, palette_mode_enabled_flag), 현재 예측 모드가 인트라 예측 모드인지 여부(즉, CuPredMode[ x0 ][ y0 ] == MODE_INTRA), 및 IntraBC 플래그가 어써팅되어 있지 않은지 여부(즉, !intra_bc_flag[ x0 ][ y0 ])에 관한 테스트가 [표 1]에서의 비고 (14-1)에 의해 표시된 바와 같이 수행된다. ChromaArrayType이 3(즉, 4:4:4 색채 포맷)인지 여부에 관한 테스트는 위의 테스트에서 제외된다. 비고 (14-1)에서의 테스트가 어써팅되면, 비고 (14-2)에 표시된 바와 같이 팔레트 모드 플래그(즉, palette_mode_flag[ x0 ][ y0 ])가 포함된다. 팔레트 모드 플래그가 설정되었는지 여부가 비고 (14-3)에서 도시된 바와 같이 테스트된다. 팔레트 모드 플래그가 1인 경우, ChromaArrayType이 0 또는 3(즉, 4:4:4 포맷)인지 여부가 비고 (14-4)에서 도시된 바와 같이 테스트된다. 그 결과가 어써팅되면, 비고 (14-5)에서 표시된 바와 같이 조인트 팔레트(joint palette)를 사용하여 팔레트 코딩이 루마 및 크로마 성분들에 적용된다. 그렇지 않은 경우, 비고 (14-6) 및 비고 (14-7)에 의해 표시된 것처럼 루마 및 크로마 성분들에 대해 개별적인 팔레트들이 각각 사용된다.
[표 14]
Figure pat00022
제1 실시예: 비-444 포맷에 대한 Y/Cb/Cr 팔레트 코딩 모드
전술한 바와 같이, 일 실시예에 따르면, Y, Cb, 및 Cr 성분들은 3개의 개별적인 팔레트들로 개별적으로 코딩된다. 팔레트의 각각의 항목은 단하나의 성분을 나타내며 각각의 성분은 각자의 팔레트 표와 인덱스 맵을 갖는다. palette_share_flag, palette_transpose_flag, palette_escape_val 등과 같은 관련 플래그들이 각각의 성분마다 개별적으로 코딩된다.
팔레트 코딩과 관련된 시퀀스 파라미터 세트(sequence parameter set; SPS) 시맨틱스(semantics)가 또한 각각의 성분에 대해서 개별화되어 있다:
palette_max_size[ cIdx ]: cIdx에 의해 규정된 색채 성분에 대한 최대로 허용된 팔레트 크기를 규정한다. palette_max_size[ cIdx ]의 값은, 존재하지 않으면, 0으로 추론된다.
palette_max_predictor_size[ cIdx ]: cIdx에 의해 규정된 색채 성분에 대한 최대 예측자 팔레트 크기를 규정한다. palette_max_predictor_size[ cIdx ]의 값은, 존재하지 않은 경우, 0이라고 추론된다.
일 실시예에서, 시퀀스 파라미터 세트 시맨틱스는 비-444 포맷에서의 3개 성분들에 대해 동일할 수 있다. 구문 요소들 palette_max_size, 및 palette_max_predictor_size는 Y, Cb, 및 Cr 성분들에 대한 최대 팔레트 크기 및 최대 예측자 팔레트 크기를 규정하는데 사용될 수 있다.
다른 실시예에서, 시퀀스 파라미터 세트 시맨틱스는 비-444 포맷에서의 루마 및 크로마 성분들에 대해 개별화되어 있다. 구문 요소들 palette_luma_max_size, 및 palette_luma_max_predictor_size는 루마 성분에 대한 최대 팔레트 크기와 최대 예측자 팔레트 크기를 규정하는데 사용될 수 있다. 구문 요소들 palette_chroma_max_size, 및 palette_chroma_max_predictor_size는 크로마 성분들에 대한 최대 팔레트 크기 및 최대 예측자 팔레트 크기를 규정하는데 사용될 수 있다.
다른 실시예에서, 크로마 성분들에 대한 palette_max_size 또는 palette_max_predictor_size가 0과 같은 미리 정의된 값이고 루마 성분들에 대한 palette_max_size 또는 palette_max_predictor_size가 0이 아닌 경우, 이것은 pallet_max_size 또는 palette_max_predictor_size의 값들이 루마 성분의 것들과 동일하다는 것을 의미한다.
팔레트 예측자의 업데이트 프로세스는 또한 cIdx에 의해 규정된 색채 성분에 대해서 개별화될 수 있다. 이 실시예를 통합하기 위해 팔레트 예측자 업데이트 프로세스에서 변경이 이루어져야 한다. 단하나의 팔레트 표를 업데이트하는 종래의 업데이트 프로세스와 비교하여, 이 실시예를 지원하는 업데이트 프로세스는 개별적인 색채 성분에 대한 개개별 팔레트들과 개개별 팔레트 예측자들을 업데이트한다.
예시 1: 444 포맷과 비-444 포맷에 대한 팔레트 코딩 정렬
일 실시예에서, 상기 개별적인 코딩 색채 성분 방식은 444 포맷으로 확장될 수 있다. 444 포맷과 비-444 포맷 둘 다의 경우, 3개 성분들이 팔레트 모드에서 개별적으로 코딩된다. 단색(monochrome) 콘텐츠의 경우에는, Y 성분만이 코딩된다. [표 15]는 실시예를 통합하는 예시적인 코딩 단위 구문을 도시한다. 비고 (15-1)에서 도시된 바와 같은 팔레트 모드 플래그(즉, palette_mode_flag[ x0 ][ y0 ])를 포함할지 여부에 대한 결정은 [표 14]에서의 결정(즉, 비고 (14-1))과 동일하다. 팔레트 모드 플래그가 1(즉, 비고 (15-2))인 경우, 팔레트 코딩은 비고 (15-3)에서 표시된 것처럼 루마 또는 단색 성분에 항상 적용된다. 비고 (15-4)에서 표시된 4:2:0, 4:2:2 및 4:4:4 색채 포맷들의 경우, 비고 (15-5)와 비고 (15-6)에서 표시된 것처럼 크로마 성분들에도 팔레트 코딩이 적용된다.
[표 15]
Figure pat00023
예시 2: 444 포맷 및 비-444 포맷에 대한 동적 팔레트 코딩
다른 실시예에서, 비-444 포맷의 경우, 3개의 성분이 팔레트 모드에서 개별적으로 코딩된다. 3개의 팔레트 표들과 인덱스 맵들이 생성된다. 팔레트 표 내의 각각의 항목은 하나의 성분을 나타낸다. 단색 콘텐츠의 경우에는, Y 성분만이 코딩된다. 444 포맷의 경우, 3개의 성분들은 함께 코딩된다. 따라서, 하나의 팔레트 표와 하나의 인덱스 맵이 생성될 것이다. 팔레트 표 내의 각각의 항목은 3개의 성분들을 나타낸다. 예시적인 구문이 [표 16]에 도시되어 있다. [표 16]에서의 구문은 비고 (15-4)로 표시된 테스트를 제외하고는 [표 15]에서의 구문과 실질적으로 동일하다. [표 16]에서, 테스트 "if(ChromaArrayType > 0 && ChromaArrayType < 3)"가 비고 (16-1)에 표시된 대로 수행된다.
[표 16]
Figure pat00024
제2 실시예: 이스케이프 코딩된 크로마 샘플에 대한 개별적인 QP 조정 플래그
위의 방법에서, Cb 및 Cr 성분들은 동일한 구문 요소들 cu_chroma_qp_palette_offset_flag 및 cu_chroma_qp_palette_offset_idx를 공유한다. 구문 요소 cu_chroma_qp_palette_offset_flag는 Cb 및 Cr 성분들에 대한 양자화 파라미터(quantization parameter; QP)에 대한 오프셋 값들의 유도와 관련된다. 구문 요소 cu_chroma_qp_palette_offset_idx는 인덱스를 Cb 및 Cr 성분들에 대한 QP 오프셋 목록 내에서 규정한다. 일 실시예에서, Cb 및 Cr 성분은 QP 조정을 위한 개별적인 플래그들을 가질 수 있다. 예를 들어, Cb 및 Cr 성분들에 대한 QP 오프셋 플래그들 및 인덱스들을 나타내는 cu_cb_qp_palette_offset_flag, cu_cb_qp_palette_offset_idx, cu_cr_qp_palette_offset_flag, cu_cr_qp_palette_offset_idx를 비롯한 4개의 플래그들이 크로마 이스케이프를 위한 QP 조정을 규정하도록 시그널링될 수 있다. 2개의 예시들이 [표 17]과 [표 18]에 도시되어 있다. [표 17]에서, 이들 4개의 플래그들은 비고 (17-1), 비고 (17-2), 비고 (17-3) 및 비고 (17-4)에서 표시된 바와 같이 통합된다. [표 18]에서, 이들 4개의 플래그들은 비고 (18-1), 비고 (18-2), 비고 (18-3) 및 비고 (18-4)에서 표시된 바와 같이 통합된다.
[표 17]
Figure pat00025
[표 18]
Figure pat00026
제3 실시예: 색채 성분들 간의 정보 공유를 위한 PPS/SPS/CU 플래그
픽처 파라미터 세트(picture parameter set; PPS) 또는 시퀀스 파라미터 세트(sequence parameter set; SPS)에서는, 전술한 팔레트 정보가 3개의 색채 성분들 간에 공유되어 있는지의 여부를 나타내는 색채 성분들에 대한 팔레트 정보 공유 플래그가 시그널링될 수 있다. 팔레트 정보는 팔레트 코딩(예컨대, palette_max_size, palette_max_predictor_size 및 palette_share_flag), 팔레트 예측자(예컨대, palette_predictor_run 및 palette_num_signalled_entries), palette_escape_val_present_flag, cu_qp_delta_palette_abs, cu_qp_delta_palette_sign_flag 및 palette_transpose_flag와 관련된다.
팔레트 정보 공유 플래그가 참이면, 상기 방법들에서 기술된 정보는 모든 색채 성분들에 대해 단한번만 시그널링된다. 루마 및 크로마 성분들은 palette_max_size, palette_max_predictor_size, palette_share_flag, palette_predictor related information(예컨대, palette_predictor_run, palette_num_signalled_entries), palette_escape_val_present_flag, cu_qp_delta_palette_abs, cu_qp_delta_palette_sign_flag 및 palette_transpose_flag에 대해 동일한 값을 가질 수 있고, 이것들은 단한번 시그널링된다. 언급된 정보를 사용하여, 하나의 결합된 팔레트 표와 하나의 결합된 인덱스 맵이 생성될 수 있다. 또한 별도의 팔레트 표들이 사용될 수 있다. 그렇지 않은 경우(즉, 팔레트 정보 공유 플래그가 거짓(false)인 경우), 전술한 팔레트 정보는 각각의 색채 성분마다 시그널링될 수 있다. 이 경우, 루마 및 크로마 성분은 각자의 palette_max_size, palette_max_predictor_size, palette_share_flag, palette_predictor related information(예컨대, palette_predictor_run, palette_num_signalled_entries), palette_escape_val_present_flag, cu_qp_delta_palette_abs, cu_qp_delta_palette_sign_flag 및 palette_transpose_flag를 가지며, 이것들은 개별적으로 시그널링된다. 각각의 성분은 각자의 팔레트 표와 인덱스 맵을 가질 것이다.
팔레트 정보 공유 플래그가 참인지 거짓인지에 관계없이, palette_max_size 및 palette_max_predictor_size와 같은 시퀀스 파라미터 세트에서의 팔레트 코딩에 관한 정보는 개별적으로 시그널링될 수 있다.
또한 팔레트 정보 공유 플래그를 사용하여, run_type, palette_run_msb_id_plus1, palette_run_refinement_bits와 같은, 인덱스 맵에 대한 일부 정보는 각각의 성분이 개별적인 인덱스 맵을 가질 때 공유될 수 있다.
팔레트 정보 공유 플래그는 각각의 CU마다 시그널링될 수 있다. 각각의 CU에 대해, 팔레트 코딩에 관련된 정보는 각각의 성분마다 개별적으로 시그널링되거나, 또는 각각의 CU에 대해 한 번 시그널링되고, 팔레트 정보 공유 플래그가 1의 값을 갖는다면, CU 내의 모든 성분들 간에 공유될 수 있다.
상기 논의에서, 루마 및 크로마 성분들은 본 발명의 실시예에 따른 팔레트 코딩을 설명하기 위해 색채 서브 샘플링 포맷 예시들(예컨대, 444 포맷, 422 포맷 및 420 포맷)로서 항상 사용된다. 그러나, 본 발명은 제1 색채 성분(예컨대, Y 또는 G 성분) 및 하나 이상의 제2 색채 성분들(예컨대, Cb/Cr 또는 B/R)을 갖는 컬러 비디오에도 적용될 수 있다.
도 8은 본 발명의 실시예에 따른 팔레트 코딩을 통합한 코딩 시스템에 대한 예시적인 흐름도를 도시한다. 단계 810에서, 시스템은 현재 픽처 내의 현재 블록과 연관된 입력 데이터를 수신하며, 여기서 현재 블록은 제1 색채 성분에 대응하는 하나의 제1 색채 블록 및 하나 이상의 제2 색채 성분들에 대응하는 하나 이상의 제2 색채 블록들로 구성된다. 각각의 제2 색채 블록의 제2 색채 샘플들은 제1 색채 블록의 제1 색채 샘플들에 비해 감소된 공간 해상도를 갖는다. 입력 데이터는 코딩될 현재 블록의 픽셀 데이터에 대응할 수 있다. 현재 블록은 버퍼의 컴퓨터 메모리(RAM 또는 DRAM)와 같은 저장장치로부터 검색될 수 있다. 비디오 비트스트림이 또한 프로세싱 유닛과 같은 프로세서 또는 디지털 신호로부터 수신될 수 있다. 단계 820에서, 각각의 제2 색채 블록의 제2 색채 샘플들이 제1 색채 블록의 제1 색채 샘플들과 동일한 풀 공간 해상도를 갖는 각각의 제2 색채 블록의 변환된 제2 색채 샘플들로 변환된다. 단계 830에서, 제1 색채 블록의 하나의 제1 색채 샘플 및 각각의 제2 색채 블록의 하나의 변환된 제2 색채 샘플을 사용하여 색채 팔레트의 각각의 항목이 생성된다. 단계 840에서, 제1 색채 블록의 제1 색채 샘플들 및 상기 하나 이상의 제2 색채 블록들의 제2 색채 샘플들이 색채 팔레트에 따라 현재 블록의 인덱스 맵으로 변환된다.
상기 설명은 본 업계의 당업자가 특정 적용예의 상황 및 그 요건에서 제공될 때 본 발명을 실시할 수 있도록 제공된 것이다. 설명된 실시예들에 대한 다양한 수정들이 본 업계의 당업자에게는 명백할 것이며, 여기서 정의된 일반 원리들은 다른 실시예들에 적용될 수 있다. 그러므로, 본 발명은 여기서 도시되고 설명된 특정 실시예들로 제한되는 것을 의도하지 않지만, 여기서 개시된 신규한 특징들 및 원리들에 부합하는 최광의의 범위를 따라야 한다. 상기 상세한 설명에서는, 본 발명의 완전한 이해를 제공하기 위해 다양한 특정 세부사항들이 진술된다. 그럼에도 불구하고, 본 발명이 실시될 수 있다는 것이 본 업계의 당업자에 의해 이해될 것이다.
위에서 설명된 본 발명의 실시예는 다양한 하드웨어, 소프트웨어 코드들, 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 본 발명의 실시예는 여기서 설명된 프로세싱을 수행하기 위해 비디오 압축 칩 내에 병합된 하나 이상의 전자 회로들, 또는 비디오 압축 소프트웨어 내에 병합된 프로그램 코드일 수 있다. 여기서 설명된 프로세싱을 수행하기 위해 본 발명의 실시예는 또한 DSP(Digital Signal Processor) 상에서 실행될 프로그램 코드일 수 있다. 본 발명은 또한 컴퓨터 프로세서, 디지털 신호 프로세서, 마이크로프로세서, 또는 FPGA(field programmable gate array)에 의해 수행될 복수의 기능들을 수반할 수 있다. 이러한 프로세서들은 본 발명에 의해 구체화된 특정 방법들을 정의하는 머신 판독가능 소프트웨어 코드 또는 펌웨어 코드를 실행함으로써 본 발명에 따른 특정 태스크들을 수행하도록 구성될 수 있다. 소프트웨어 코드 또는 펌웨어 코드는 상이한 프로그래밍 언어들 및 상이한 포맷들 또는 스타일들로 개발될 수 있다. 소프트웨어 코드는 또한 상이한 타겟 플랫폼들에 대해 컴파일링될 수 있다. 하지만, 소프트웨어 코드들의 상이한 코드 포맷들, 스타일들 및 언더들과, 본 발명에 따른 태스크들을 수행하기 위해 코드를 구성하는 다른 방법들은 본 발명의 사상과 범위로부터 이탈하지 않을 것이다.
본 발명은 본 발명의 사상 또는 본질적인 특징으로부터 이탈하지 않고서 다른 특정 형태들로 구체화될 수 있다. 설명된 예시들은 모든 측면들에서 예시적인 것으로서만 간주되어야 하며 제한적인 것으로서는 간주되지 않아야 한다. 따라서, 본 발명의 범위는 상술한 설명에 의해서라기 보다는 첨부된 청구항들에 의해서 나타내어진다. 본 청구항들의 의미 및 범위 내에 속하는 모든 변경들이 본 발명의 범위 내에 포함된다.

Claims (17)

  1. 비 444 색채 포맷(non-444 color format)의 컬러 비디오에 대해 팔레트 코딩 모드(palette coding mode)를 사용하는 비디오 코딩 방법으로서, 상기 컬러 비디오는 하나의 제1 색채 성분 및 하나 이상의 제2 색채 성분으로 구성되고, 상기 방법은,
    상기 비 444 색채 포맷의 컬러 비디오를 포함한 입력 데이터를 수신하는 단계 - 상기 입력 데이터는 현재 픽처(current picture) 내의 현재 블록(current block)과 연관되고, 상기 현재 블록은 상기 하나의 제1 색채 성분에 대응하는 하나의 제1 색채 블록 및 상기 하나 이상의 제2 색채 성분에 대응하는 하나 이상의 제2 색채 블록으로 구성되고, 각각의 제2 색채 블록의 제2 색채 샘플들은 상기 제1 색채 블록의 제1 색채 샘플들에 비해 감소된 공간 해상도를 가짐 -;
    상기 각각의 제2 색채 블록의 제2 색채 샘플들을, 상기 제1 색채 블록의 제1 색채 샘플들과 동일한 풀(full) 공간 해상도를 갖는 각각의 제2 색채 블록의 변환된 제2 색채 샘플들로 변환하는 단계;
    상기 제1 색채 성분의 하나의 제1 색채 팔레트 샘플 및 각각의 제2 색채 성분의 하나의 변환된 제2 색채 팔레트 샘플을 사용하여 색채 팔레트(color palette)의 각각의 항목을 생성하는 단계; 및
    상기 제1 색채 블록의 제1 색채 샘플들 및 상기 하나 이상의 제2 색채 블록의 제2 색채 샘플들을 상기 색채 팔레트에 따라 상기 현재 블록의 인덱스 맵(index map)으로 변환하는 단계
    를 포함하는 비디오 코딩 방법.
  2. 비 444 색채 포맷의 컬러 비디오에 대해 팔레트 코딩 모드를 사용하는 비디오 디코딩 방법으로서, 상기 컬러 비디오는 하나의 제1 색채 성분 및 하나 이상의 제2 색채 성분으로 구성되고, 상기 방법은,
    상기 비 444 색채 포맷의 컬러 비디오를 포함한 비디오 비트스트림을 수신하는 단계 - 상기 비디오 비트스트림은 현재 픽처 내의 현재 블록과 연관된 코딩된 데이터를 포함하고, 상기 현재 블록은 상기 하나의 제1 색채 성분에 대응하는 하나의 제1 색채 블록 및 상기 하나 이상의 제2 색채 성분에 대응하는 하나 이상의 제2 색채 블록으로 구성됨 -;
    상기 비디오 비트스트림으로부터 색채 팔레트를 유도하는 단계 - 상기 색채 팔레트의 각각의 항목은 상기 제1 색채 성분의 하나의 제1 색채 팔레트 샘플 및 각각의 제2 색채 성분의 하나의 제2 색채 팔레트 샘플로 구성됨 -;
    상기 현재 블록의 인덱스 맵을, 상기 색채 팔레트에 따라 상기 제1 색채 블록의 제1 색채 샘플들 및 상기 하나 이상의 제2 색채 블록들의 제2 색채 샘플들로 변환하는 단계 - 각각의 제2 색채 블록의 제2 색채 샘플들은 디코딩을 위한 상기 제1 색채 블록의 제1 색채 샘플들과 동일한 풀 공간 해상도를 가짐 -; 및
    상기 감소된 공간 해상도로 감소시키기 위해 상기 풀 공간 해상도에서의 일부 제2 색채 샘플들을 폐기함으로써 상기 현재 블록을 복구하는 단계
    를 포함하며,
    상기 폐기 동작 이후의 각각의 제2 색채 블록의 제2 색채 샘플들은 상기 제1 색채 블록의 제1 색채 샘플들에 비해 감소된 공간 해상도를 갖는 것인 비디오 디코딩 방법.
  3. 비 444 색채 포맷의 컬러 비디오에 대해 팔레트 코딩 모드를 사용하는 비디오 코딩 방법으로서, 상기 컬러 비디오는 하나의 제1 색채 성분 및 하나 이상의 제2 색채 성분으로 구성되고, 상기 방법은,
    현재 픽처 내의 현재 블록과 연관된 입력 데이터를 수신하는 단계 - 상기 현재 블록은 상기 하나의 제1 색채 성분에 대응하는 하나의 제1 색채 블록 및 상기 하나 이상의 제2 색채 성분에 대응하는 하나 이상의 제2 색채 블록으로 구성되고, 상기 하나 이상의 제2 색채 블록은 상기 하나의 제1 색채 블록에 비해 감소된 공간 해상도를 가짐 -;
    인코더 측에서 색채 팔레트의 적어도 하나의 항목에 대해 하나보다 많은 샘플 위치들로부터의 색채 샘플들을 포함하거나 또는 상기 색채 팔레트의 적어도 두 개의 항목들에 대해 상이한 수의 샘플들을 포함하도록 상기 현재 블록의 색채 샘플들을 재그룹화하거나, 또는 디코더 측에서 상기 색채 팔레트의 적어도 하나의 항목에 대해 하나보다 많은 샘플 위치들로부터의 색채 샘플들을 포함하거나 또는 상기 색채 팔레트의 적어도 두 개의 항목들에 대해 상이한 수의 샘플들을 포함하는 상기 색채 팔레트를 파싱(parsing)함으로써, 상기 현재 블록에 대한 상기 색채 팔레트를 생성하는 단계; 및
    상기 색채 팔레트를 사용하여 상기 현재 블록에 대해 팔레트 모드 인코딩 또는 디코딩을 적용하는 단계
    를 포함하는 비디오 코딩 방법.
  4. 제3항에 있어서,
    상기 제1 색채 성분은 루마(luma) 성분에 대응하고;
    상기 하나 이상의 제2 색채 성분은 제1 크로마(chroma) 성분과 제2 크로마 성분에 대응하며;
    상기 현재 블록은 루마 샘플들로 구성된 루마 블록, 제1 크로마 샘플들로 구성된 제1 크로마 블록, 및 제2 크로마 샘플들로 구성된 제2 크로마 블록을 포함한 것인 비디오 코딩 방법.
  5. 제4항에 있어서,
    상기 비 444 색채 포맷이 4:2:0 색채 포맷에 대응하는 경우, 상기 색채 팔레트의 각각의 항목은, 쿼드(quad) 루마 샘플들에 대응하는 네 개의 루마값들, 상기 쿼드 루마 샘플들과 공동 배치된 하나의 제1 크로마 샘플에 대응하는 하나의 제1 크로마값, 및 상기 쿼드 루마 샘플들과 공동 배치된 하나의 제2 크로마 샘플에 대응하는 하나의 제2 크로마값으로 구성된 것인 비디오 코딩 방법.
  6. 제4항에 있어서,
    상기 비 444 색채 포맷이 4:2:2 색채 포맷에 대응하는 경우, 상기 색채 팔레트의 각각의 항목은, 듀오(duo) 루마 샘플들에 대응하는 두 개의 루마값들, 상기 듀오 루마 샘플들과 공동 배치된 하나의 제1 크로마 샘플에 대응하는 하나의 제1 크로마값, 및 상기 듀오 루마 샘플들과 공동 배치된 하나의 제2 크로마 샘플에 대응하는 하나의 제2 크로마값으로 구성된 것인 비디오 코딩 방법.
  7. 제4항에 있어서,
    상기 비 444 색채 포맷이 4:2:0 색채 포맷에 대응하는 경우, 상기 색채 팔레트는 제1 유형 항목들 및 제2 유형 항목들 포함하고,
    각각의 제1 유형 항목은, 쿼드 루마 샘플들로부터의 하나의 루마값, 상기 쿼드 루마 샘플들과 공동 배치된 하나의 제1 크로마 샘플의 하나의 제1 크로마값, 및 상기 쿼드 루마 샘플들과 공동 배치된 하나의 제2 크로마 샘플의 하나의 제2 크로마값으로 구성되며,
    각각의 제2 유형 항목은 상기 쿼드 루마 샘플들의 나머지 세 개의 루마 샘플들에 대한 세 개의 루마값들로 구성된 것인 비디오 코딩 방법.
  8. 제4항에 있어서,
    상기 색채 팔레트는 제1 유형 항목들과 제2 유형 항목들을 포함하고,
    각각의 제1 유형 항목은, 하나의 루마 샘플의 하나의 루마값, 하나의 제1 크로마 샘플의 하나의 제1 크로마값, 및 동일한 샘플 위치로부터의 하나의 제2 크로마 샘플의 하나의 제2 크로마값으로 구성되며,
    각각의 제2 유형 항목은 상기 제1 유형 항목들에 포함되지 않은 나머지 루마 샘플 위치들에 대한 하나의 루마값으로 구성된 것인 비디오 코딩 방법.
  9. 컬러 비디오에 대해 팔레트 코딩 모드를 사용하는 비디오 코딩 방법에 있어서,
    현재 픽처 내의 현재 블록과 연관된 입력 데이터를 수신하는 단계;
    인코더 측에서 비디오 비트스트림 내의 상기 현재 블록의 복수의 색채 성분들에 대해 두 개 이상의 색채 팔레트들을 시그널링하거나, 또는 디코더 측에서 상기 현재 블록의 상기 복수의 색채 성분들에 대해 상기 비디오 비트스트림으로부터 상기 두 개 이상의 색채 팔레트들을 파싱하는 단계; 및
    상기 두 개 이상의 색채 팔레트들을 사용하여 상기 현재 블록에 대해 팔레트 모드 인코딩 또는 디코딩을 적용하는 단계
    를 포함하는 비디오 코딩 방법.
  10. 제9항에 있어서,
    상기 현재 블록은 루마 성분 및 두 개의 크로마 성분들을 포함하고,
    상기 두 개 이상의 색채 팔레트들은, 상기 현재 블록의 상기 루마 성분 및 상기 두 개의 크로마 성분들을 각각 코딩하기 위한 세 개의 색채 팔레트들로 구성된 것인 비디오 코딩 방법.
  11. 제9항에 있어서,
    상기 인코더 측에서 상기 비디오 비트스트림의 시퀀스 파라미터 세트(sequence parameter set; SPS) 내의 상기 현재 블록의 상기 두 개 이상의 색채 팔레트들 각각에 대한 하나 이상의 개별 팔레트 파라미터를 시그널링하거나, 또는 상기 디코더 측에서 상기 현재 블록의 상기 복수의 색채 성분들 각각에 대해 상기 비디오 비트스트림의 상기 SPS로부터 상기 하나 이상의 개별 팔레트 파라미터를 파싱하는 단계
    를 더 포함하는 비디오 코딩 방법.
  12. 제11항에 있어서,
    상기 하나 이상의 개별 팔레트 파라미터들은 최대 팔레트 크기 또는 최대 팔레트 예측자 크기를 포함하거나, 또는 이 둘 다를 포함하는 것인 비디오 코딩 방법.
  13. 제9항에 있어서,
    상기 인코더 측에서 상기 비디오 비트스트림의 시퀀스 파라미터 세트(SPS) 내의 상기 현재 블록의 상기 두 개 이상의 색채 팔레트들 모두에 대한 하나 이상의 개별 팔레트 파라미터를 시그널링하거나, 또는 상기 디코더 측에서 상기 현재 블록의 상기 복수의 색채 성분들 모두에 대해 상기 비디오 비트스트림의 상기 SPS로부터 상기 하나 이상의 공통 팔레트 파라미터를 파싱하는 단계
    를 더 포함하는 비디오 코딩 방법.
  14. 제13항에 있어서,
    상기 하나 이상의 공통 팔레트 파라미터들은 최대 팔레트 크기 또는 최대 팔레트 예측자 크기를 포함하거나, 또는 이 둘 다를 포함하는 것인 비디오 코딩 방법.
  15. 제9항에 있어서,
    상기 현재 블록의 상기 두 개 이상의 색채 팔레트들 각각은 각각의 색채 성분에 대한 개별 팔레트 예측자에 의해 예측되며,
    상기 현재 블록의 상기 개별 팔레트 예측자는 개별적으로 업데이트되는 것인 비디오 코딩 방법.
  16. 컬러 비디오에 대해 팔레트 코딩 모드를 사용하는 비디오 코딩 방법에 있어서,
    루마 성분 및 두 개의 크로마 성분들로 구성된 색채 성분들을 갖는 현재 픽처 내의 현재 블록과 연관된 입력 데이터를 수신하는 단계;
    상기 색채 성분들이 444 색채 포맷에 대응하는 경우, 각각의 항목에서 단하나의 색채 성분으로 구성되어 있는 개별 색채 팔레트를 사용하여 상기 현재 블록의 각각의 색채 성분에 대해 팔레트 인코딩 또는 디코딩을 적용하거나, 또는 각각의 항목에서 하나의 루마 성분 및 두 개의 크로마 성분들로 구성되어 있는 단일 색채 팔레트를 사용하여 상기 현재 블록의 상기 루마 성분 및 두 개의 크로마 성분들에 대해 팔레트 인코딩 또는 디코딩을 적용하는 단계; 및
    상기 색채 성분들이 비 444 색채 포맷에 대응하는 경우, 각각의 항목에서 단하나의 색채 성분으로 구성되어 있는 상기 개별 색채 팔레트를 사용하여 상기 현재 블록의 각각의 색채 성분에 대해 팔레트 인코딩 또는 디코딩을 적용하는 단계
    를 포함하는 비디오 코딩 방법.
  17. 제16항에 있어서,
    상기 색채 성분들이 상기 비 444 색채 포맷에 대응하는 경우, 상기 현재 블록의 각각의 색채 성분에 대해 하나의 인덱스 맵이 생성되는 것인 비디오 코딩 방법.
KR1020197014277A 2014-12-19 2015-12-16 비디오 및 이미지 코딩에서의 비-444 색채 포맷을 위한 팔레트 기반 예측의 방법 KR102150979B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201462094137P 2014-12-19 2014-12-19
US62/094,137 2014-12-19
US201562107583P 2015-01-26 2015-01-26
US62/107,583 2015-01-26
US201562114671P 2015-02-11 2015-02-11
US62/114,671 2015-02-11
PCT/US2015/065946 WO2016100424A1 (en) 2014-12-19 2015-12-16 Methods of palette based prediction for non-444 color format in video and image coding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020177018160A Division KR101981725B1 (ko) 2014-12-19 2015-12-16 비디오 및 이미지 코딩에서의 비-444 색채 포맷을 위한 팔레트 기반 예측의 방법

Publications (2)

Publication Number Publication Date
KR20190057159A true KR20190057159A (ko) 2019-05-27
KR102150979B1 KR102150979B1 (ko) 2020-09-03

Family

ID=56127502

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197014277A KR102150979B1 (ko) 2014-12-19 2015-12-16 비디오 및 이미지 코딩에서의 비-444 색채 포맷을 위한 팔레트 기반 예측의 방법
KR1020177018160A KR101981725B1 (ko) 2014-12-19 2015-12-16 비디오 및 이미지 코딩에서의 비-444 색채 포맷을 위한 팔레트 기반 예측의 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020177018160A KR101981725B1 (ko) 2014-12-19 2015-12-16 비디오 및 이미지 코딩에서의 비-444 색채 포맷을 위한 팔레트 기반 예측의 방법

Country Status (7)

Country Link
US (2) US10462475B2 (ko)
EP (1) EP3219099B1 (ko)
KR (2) KR102150979B1 (ko)
CN (2) CN110753223B (ko)
PH (1) PH12017501109A1 (ko)
SG (3) SG11201704729PA (ko)
WO (1) WO2016100424A1 (ko)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021015537A1 (ko) * 2019-07-21 2021-01-28 엘지전자 주식회사 팔레트 모드의 적용 여부에 따라 크로마 성분 예측 정보를 시그널링 하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021060844A1 (ko) * 2019-09-23 2021-04-01 엘지전자 주식회사 팔레트 모드를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021060845A1 (ko) * 2019-09-23 2021-04-01 엘지전자 주식회사 사용자 정의 팔레트 엔트리를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021086050A1 (ko) * 2019-10-29 2021-05-06 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
WO2021086061A1 (ko) * 2019-10-29 2021-05-06 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
WO2021091265A1 (ko) * 2019-11-05 2021-05-14 엘지전자 주식회사 양자화 파라미터 오프셋 관련 정보의 시그널링 기반 영상 또는 비디오 코딩
WO2021091260A1 (ko) * 2019-11-05 2021-05-14 엘지전자 주식회사 크로마 양자화 파라미터 오프셋 정보 기반 영상 또는 비디오 코딩
WO2021091262A1 (ko) * 2019-11-05 2021-05-14 엘지전자 주식회사 팔레트 코딩 또는 변환 유닛을 위한 양자화 파라미터 정보 기반 영상 또는 비디오 코딩
WO2021091214A1 (ko) * 2019-11-05 2021-05-14 엘지전자 주식회사 크로마 양자화 파라미터 오프셋 관련 정보를 코딩하는 영상 디코딩 방법 및 그 장치
WO2021091263A1 (ko) * 2019-11-05 2021-05-14 엘지전자 주식회사 양자화 파라미터 관련 정보의 시그널링 기반 영상 또는 비디오 코딩
WO2021230618A1 (ko) * 2020-05-11 2021-11-18 엘지전자 주식회사 영상 코딩 방법 및 그 장치

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102150979B1 (ko) * 2014-12-19 2020-09-03 에이치에프아이 이노베이션 인크. 비디오 및 이미지 코딩에서의 비-444 색채 포맷을 위한 팔레트 기반 예측의 방법
CN107251555B (zh) * 2015-02-17 2020-02-07 寰发股份有限公司 编解码视频数据的方法和装置
US11146788B2 (en) * 2015-06-12 2021-10-12 Qualcomm Incorporated Grouping palette bypass bins for video coding
US10192137B2 (en) * 2015-11-16 2019-01-29 MorphoTrak, LLC Automatic ruler detection
GB2547047B (en) * 2016-02-08 2018-07-18 Canon Kk Encoder optimizations for palette lossless encoding of content with subsampled colour component
JP6855722B2 (ja) * 2016-09-21 2021-04-07 富士ゼロックス株式会社 画像処理装置およびプログラム
US11695919B2 (en) * 2018-08-28 2023-07-04 Google Llc Lossy image compression using palettization of locally mixed colors
CA3111156A1 (en) * 2018-08-30 2020-03-05 Huawei Technologies Co., Ltd. An encoding device, a decoding device, and corresponding methods using a palette coding
US11025905B2 (en) * 2018-09-14 2021-06-01 Tencent America LLC Method and device for decoding with palette mode
BR112021004984A2 (pt) * 2018-09-21 2021-06-08 Huawei Technologies Co., Ltd. aparelho e método para quantização inversa
FI3847816T3 (fi) * 2018-10-08 2023-06-30 Beijing Dajia Internet Information Tech Co Ltd Ristikomponenttisen lineaarisen mallin yksinkertaistukset
KR20210087928A (ko) * 2018-11-06 2021-07-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인트라 예측을 위한 파라미터 유도의 복잡성 감소
CN113170122B (zh) 2018-12-01 2023-06-27 北京字节跳动网络技术有限公司 帧内预测的参数推导
WO2020156532A1 (en) 2019-02-01 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Restrictions on in-loop reshaping
JP7199550B2 (ja) 2019-02-01 2023-01-05 北京字節跳動網絡技術有限公司 パラメータセットを使用したインループ再成形情報のシグナリング
CA3130472A1 (en) 2019-02-24 2020-08-27 Beijing Bytedance Network Technology Co., Ltd. Independent coding of palette mode usage indication
US10924750B2 (en) * 2019-03-01 2021-02-16 Alibaba Group Holding Limited Palette size constraint in palette mode for video compression system
CN117499644A (zh) 2019-03-14 2024-02-02 北京字节跳动网络技术有限公司 环路整形信息的信令和语法
EP3925216A4 (en) 2019-03-23 2022-06-15 Beijing Bytedance Network Technology Co., Ltd. RESTRICTIONS ON ADAPTIVE LOOP FILTER PARAMETER SETS
JP7436519B2 (ja) 2019-05-31 2024-02-21 バイトダンス インコーポレイテッド イントラブロックコピー予測を備えたパレットモード
CN116828176A (zh) * 2019-06-11 2023-09-29 Lg电子株式会社 解码设备、编码设备和发送设备
WO2020264457A1 (en) 2019-06-28 2020-12-30 Bytedance Inc. Techniques for modifying quantization parameter in transform skip mode
BR112021025916A2 (pt) 2019-06-28 2022-02-15 Bytedance Inc Método de processamento de dados de vídeo, aparelho para processar dados de vídeo, meio de armazenamento e meio de gravação não transitórios legíveis por computador
JP7359936B2 (ja) 2019-07-20 2023-10-11 北京字節跳動網絡技術有限公司 パレットモードの使用の指示の条件依存符号化
CN117221536A (zh) * 2019-07-23 2023-12-12 北京字节跳动网络技术有限公司 调色板模式编解码的模式确定
WO2021013210A1 (en) * 2019-07-23 2021-01-28 Beijing Bytedance Network Technology Co., Ltd. Mode determining for palette mode in prediction process
US11277611B2 (en) * 2019-07-24 2022-03-15 Qualcomm Incorporated Delta quantization parameter (QP) signaling in palette mode
CN114208188A (zh) 2019-07-29 2022-03-18 北京字节跳动网络技术有限公司 调色板模式编解码的扫描顺序改进
CN114208195A (zh) * 2019-08-06 2022-03-18 北京字节跳动网络技术有限公司 基于颜色格式的尺寸限制
EP3997868A4 (en) 2019-08-10 2023-02-22 Beijing Bytedance Network Technology Co., Ltd. BUFFER MANAGEMENT DURING SUBPICTURE DECODING
EP4000269A4 (en) 2019-08-15 2022-09-07 ByteDance Inc. PALLET MODE WITH DIFFERENT DIVISION STRUCTURES
CN117395420A (zh) 2019-08-15 2024-01-12 字节跳动有限公司 用于调色板逸出符号的熵编解码
KR20210027175A (ko) * 2019-08-30 2021-03-10 주식회사 케이티 비디오 신호 처리 방법 및 장치
KR102650079B1 (ko) 2019-09-02 2024-03-22 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 색상 포맷에 기초한 코딩 모드 결정
MX2022002617A (es) * 2019-09-12 2022-03-25 Bytedance Inc Uso de predictor de paleta en codificacion de video.
WO2021055782A1 (en) * 2019-09-19 2021-03-25 Bytedance Inc. Quantization parameter derivation for palette mode
CN114556952A (zh) 2019-10-02 2022-05-27 北京字节跳动网络技术有限公司 包括子图片的视频比特流中的条带级信令通知
CN117676135A (zh) 2019-10-18 2024-03-08 北京字节跳动网络技术有限公司 子图片与环路滤波之间的相互影响
US11356679B2 (en) * 2019-12-05 2022-06-07 Alibaba Group Holding Limited Method and apparatus for chroma sampling
WO2021133529A1 (en) * 2019-12-26 2021-07-01 Alibaba Group Holding Limited Methods for coding video data in palette mode
CN116418983B (zh) 2019-12-30 2023-10-31 阿里巴巴(中国)有限公司 用于在调色板模式下对视频数据进行编码的方法和装置
CN116034582A (zh) * 2020-01-12 2023-04-28 抖音视界有限公司 对视频编码和解码的约束
CN113141509B (zh) * 2021-03-30 2022-06-28 中山大学 一种颜色列表生成方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140301474A1 (en) * 2013-04-05 2014-10-09 Qualcomm Incorporated Determining palettes in palette-based video coding
KR101981725B1 (ko) * 2014-12-19 2019-05-23 에이치에프아이 이노베이션 인크. 비디오 및 이미지 코딩에서의 비-444 색채 포맷을 위한 팔레트 기반 예측의 방법

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6252989B1 (en) * 1997-01-07 2001-06-26 Board Of The Regents, The University Of Texas System Foveated image coding system and method for image bandwidth reduction
US6259741B1 (en) * 1999-02-18 2001-07-10 General Instrument Corporation Method of architecture for converting MPEG-2 4:2:2-profile bitstreams into main-profile bitstreams
US6674479B2 (en) * 2000-01-07 2004-01-06 Intel Corporation Method and apparatus for implementing 4:2:0 to 4:2:2 and 4:2:2 to 4:2:0 color space conversion
US20030174243A1 (en) * 2002-03-13 2003-09-18 Arbeiter James Henry Network streaming system for providing a user with data defining imagecontent at a resolution that may be determined by the user
US7016547B1 (en) * 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
US7072512B2 (en) * 2002-07-23 2006-07-04 Microsoft Corporation Segmentation of digital video and images into continuous tone and palettized regions
KR100657268B1 (ko) * 2004-07-15 2006-12-14 학교법인 대양학원 컬러 영상의 신축적 부호화, 복호화 방법 및 장치
EP1882368B1 (en) * 2005-05-13 2017-03-01 Koninklijke Philips N.V. Cost effective rendering for 3d displays
EP3023940B1 (en) * 2005-05-27 2019-02-27 Telefonaktiebolaget LM Ericsson (publ) Weight based image processing
US7903873B2 (en) * 2007-09-13 2011-03-08 Microsoft Corporation Textual image coding
NO328906B1 (no) * 2007-12-19 2010-06-14 Tandberg Telecom As Fremgangsmate for forbedring av farveskarphet i video- og stillbilder
US20100332981A1 (en) * 2009-06-30 2010-12-30 Daniel Lipton Providing Media Settings Discovery in a Media Processing Application
US8786625B2 (en) * 2010-09-30 2014-07-22 Apple Inc. System and method for processing image data using an image signal processor having back-end processing logic
WO2013049179A1 (en) * 2011-09-29 2013-04-04 Dolby Laboratories Licensing Corporation Dual-layer frame-compatible full-resolution stereoscopic 3d video delivery
JP6029430B2 (ja) * 2012-11-20 2016-11-24 キヤノン株式会社 画像処理装置及び画像処理方法
US9584701B2 (en) * 2014-01-06 2017-02-28 Panamorph, Inc. Image processing system and method
US10091512B2 (en) 2014-05-23 2018-10-02 Futurewei Technologies, Inc. Advanced screen content coding with improved palette table and index map coding methods
US8837826B1 (en) * 2014-06-12 2014-09-16 Spinella Ip Holdings, Inc. System and method for transmission, reception, and restoration of decimated color channels in image data
US20150381994A1 (en) * 2014-06-27 2015-12-31 Futurewei Technologies, Inc. Advanced screen content coding with improved palette table and index map coding methods
US10178395B2 (en) * 2014-09-30 2019-01-08 Qualcomm Incorporated Explicit signaling of escape sample positions in palette coding mode for video coding
US20160100177A1 (en) * 2014-10-06 2016-04-07 Qualcomm Incorporated Non-uniform exponential-golomb codes for palette mode coding
US10097839B2 (en) * 2014-12-19 2018-10-09 Qualcomm Incorporated Palette mode for subsampling format
US9505260B2 (en) * 2015-01-09 2016-11-29 Alexander D. Walter Coarsely discretized 3-D decoration
US9942551B2 (en) * 2015-01-30 2018-04-10 Qualcomm Incorporated Palette index grouping for video coding
US10672148B2 (en) * 2015-10-30 2020-06-02 Agfa Healthcare Compressing and uncompressing method for high bit-depth medical gray scale images

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140301474A1 (en) * 2013-04-05 2014-10-09 Qualcomm Incorporated Determining palettes in palette-based video coding
KR101981725B1 (ko) * 2014-12-19 2019-05-23 에이치에프아이 이노베이션 인크. 비디오 및 이미지 코딩에서의 비-444 색채 포맷을 위한 팔레트 기반 예측의 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
R. Joshi, et al. High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 2. JCT-VC of ITU-T and ISO/IEC. JCTVC-S1005 Ver.1, Dec. 10, 2014. pp.1-350* *
W. Pu, et al. Non 4:4:4 Palette Mode: AhG Way. JCT-VC of ITU-T and ISO/IEC. JCTVC-T0062 Ver.2, Feb. 5, 2015. pp.1-7 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11659172B2 (en) 2019-07-21 2023-05-23 Lg Electronics Inc. Image encoding/decoding method and device for signaling chroma component prediction information according to whether palette mode is applicable, and method for transmitting bitstream
WO2021015537A1 (ko) * 2019-07-21 2021-01-28 엘지전자 주식회사 팔레트 모드의 적용 여부에 따라 크로마 성분 예측 정보를 시그널링 하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021060844A1 (ko) * 2019-09-23 2021-04-01 엘지전자 주식회사 팔레트 모드를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021060845A1 (ko) * 2019-09-23 2021-04-01 엘지전자 주식회사 사용자 정의 팔레트 엔트리를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
US11689732B2 (en) 2019-09-23 2023-06-27 Lg Electronics Inc. Image encoding/decoding method and device using palette mode, and method for transmitting bitstream
WO2021086061A1 (ko) * 2019-10-29 2021-05-06 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
WO2021086050A1 (ko) * 2019-10-29 2021-05-06 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
US11750817B2 (en) 2019-10-29 2023-09-05 Lg Electronics Inc. Image coding method based on transform and apparatus therefor
WO2021091260A1 (ko) * 2019-11-05 2021-05-14 엘지전자 주식회사 크로마 양자화 파라미터 오프셋 정보 기반 영상 또는 비디오 코딩
WO2021091262A1 (ko) * 2019-11-05 2021-05-14 엘지전자 주식회사 팔레트 코딩 또는 변환 유닛을 위한 양자화 파라미터 정보 기반 영상 또는 비디오 코딩
WO2021091214A1 (ko) * 2019-11-05 2021-05-14 엘지전자 주식회사 크로마 양자화 파라미터 오프셋 관련 정보를 코딩하는 영상 디코딩 방법 및 그 장치
WO2021091263A1 (ko) * 2019-11-05 2021-05-14 엘지전자 주식회사 양자화 파라미터 관련 정보의 시그널링 기반 영상 또는 비디오 코딩
WO2021091265A1 (ko) * 2019-11-05 2021-05-14 엘지전자 주식회사 양자화 파라미터 오프셋 관련 정보의 시그널링 기반 영상 또는 비디오 코딩
US11973947B2 (en) 2019-11-05 2024-04-30 Lg Electronics Inc. Image or video coding based on signaling of quantization parameter offset-related information
WO2021230618A1 (ko) * 2020-05-11 2021-11-18 엘지전자 주식회사 영상 코딩 방법 및 그 장치
US11943445B2 (en) 2020-05-11 2024-03-26 Lg Electronics Inc. Image coding method and device therefor

Also Published As

Publication number Publication date
US20200007875A1 (en) 2020-01-02
CN107431795B (zh) 2019-12-06
CN110753223A (zh) 2020-02-04
PH12017501109B1 (en) 2017-11-27
KR20170089923A (ko) 2017-08-04
EP3219099B1 (en) 2021-04-28
KR101981725B1 (ko) 2019-05-23
SG10201900004UA (en) 2019-02-27
PH12017501109A1 (en) 2017-11-27
US10462475B2 (en) 2019-10-29
US20170374372A1 (en) 2017-12-28
SG10202002209TA (en) 2020-04-29
EP3219099A4 (en) 2018-07-11
WO2016100424A1 (en) 2016-06-23
US10798392B2 (en) 2020-10-06
CN107431795A (zh) 2017-12-01
KR102150979B1 (ko) 2020-09-03
EP3219099A1 (en) 2017-09-20
SG11201704729PA (en) 2017-07-28
CN110753223B (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
KR101981725B1 (ko) 비디오 및 이미지 코딩에서의 비-444 색채 포맷을 위한 팔레트 기반 예측의 방법
CN106464881B (zh) 块自适应颜色空间转换译码的方法和装置
EP3248377B1 (en) Method and apparatus for palette predictor initialization for palette coding in video and image compression
EP2991349B1 (en) Method of palette index signaling for image and video coding
KR102132047B1 (ko) 고해상도 크로마 샘플링 포맷들의 프레임 팩킹 및 언팩킹 기법
US10397568B2 (en) Method and apparatus for palette coding of monochrome contents in video and image compression
CN107211136B (zh) 具有大字母表的源样本的熵编码与熵解码的方法
KR101882607B1 (ko) 팔레트 크기 시그널링 및 조건적 팔레트 이스케이프 플래그 시그널링 방법
SA517380915B1 (ar) نسخ وحدة داخلي وتنبؤ بيني موحدين
AU2018286602A1 (en) Decoding device and decoding method
CN109479139A (zh) 视频处理系统中参考量化参数推导的方法与装置
CN108141595A (zh) 图像编码/解码方法及其设备
GB2547053A (en) Methods, devices, and computer programs for combining the use of intra-layer prediction and inter-layer prediction with scalability and screen content
US20170230684A1 (en) Methods, devices and computer programs for encoding and/or decoding images in video bit-streams using weighted predictions
KR102507024B1 (ko) 디지털 이미지/비디오 자료를 인코딩 및 디코딩하는 방법 및 장치
KR20080015713A (ko) 비디오 신호의 디코딩/인코딩 방법 및 장치
Chen et al. Single depth intra coding mode in 3D-HEVC

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant