KR101730249B1 - 이미지 및 비디오 코딩을 위한 팔렛트 인덱스 시그널링 방법 - Google Patents

이미지 및 비디오 코딩을 위한 팔렛트 인덱스 시그널링 방법 Download PDF

Info

Publication number
KR101730249B1
KR101730249B1 KR1020150118098A KR20150118098A KR101730249B1 KR 101730249 B1 KR101730249 B1 KR 101730249B1 KR 1020150118098 A KR1020150118098 A KR 1020150118098A KR 20150118098 A KR20150118098 A KR 20150118098A KR 101730249 B1 KR101730249 B1 KR 101730249B1
Authority
KR
South Korea
Prior art keywords
palette
current
index
current block
syntax element
Prior art date
Application number
KR1020150118098A
Other languages
English (en)
Other versions
KR20160024785A (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 KR20160024785A publication Critical patent/KR20160024785A/ko
Application granted granted Critical
Publication of KR101730249B1 publication Critical patent/KR101730249B1/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/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
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • H04N1/644Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor using a reduced set of representative colours, e.g. each representing a particular range in a colour space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • 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/94Vector quantisation

Landscapes

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

Abstract

비디오 코딩에서의 팔레트 코딩을 이용하여 비디오 데이터 블록을 코딩하기 위한 방법 및 장치가 개시된다. 일 실시예에 따르면, 현재 블록 내에 단 하나의 싱글 팔렛트 인덱스가 존재하는지 여부가 우선 결정된다. 현재 블록 내에 단 하나의 싱글 팔렛트 인덱스가 존재하면, 현재 블록을 위한 현재 팔렛트 인덱스 맵을 시그널링하는 것이 인코더 측에서 생략되거나, 또는 현재 블록을 위한 현재 팔렛트 인덱스 맵을 디코딩하기 위한 임의의 구문을 분석하는 것이 디코더 측에서 생략된다. 단 하나의 싱글 팔렛트 인덱스가 존재하는지 여부에 관한 결정은 팔렛트 인덱스 코딩에 대응하지 않는 하나 이상의 구문 요소들에 기초한다.

Description

이미지 및 비디오 코딩을 위한 팔렛트 인덱스 시그널링 방법{METHOD OF PALETTE INDEX SIGNALING FOR IMAGE AND VIDEO CODING}
관련 출원들에 대한 상호 참조
본 발명은 2014년 8월 25일에 출원된 미국 가출원 제62/041,180호 및 2015년 1월 22일 출원된 미국 가출원 제62/106,357호에 대한 우선권을 주장한다. 본 미국 가출원들은 그 전체가 여기에 참조로서 통합된다.
발명의 분야
본 발명은 이미지 및 비디오 데이터를 위한 팔렛트 인덱스 코딩(palette index coding)에 관한 것이다. 특히, 본 발명은 블록에 단 하나의 싱글 팔레트 인덱스가 존재할 때 코딩 효율을 개선하기 위한 다양한 기법들에 관한 것이다.
고효율 비디오 코딩(High Efficiency Video Coding, HEVC)은 최근에 개발된 새로운 코딩 표준이다. 고효율 비디오 코딩(HEVC) 시스템에서, H.264/AVC의 고정 사이즈 매크로블록(fixed-size macroblock)이 코딩 유닛(coding, CU)라고 지칭되는 플렉서블 블록(flexible block)에 의해 대체된다. CU 내의 픽셀들은 동일한 코딩 파라미터들을 공유하여 코딩 효율을 개선한다. CU는 HEVC에서의 코딩 트리 유닛(coded tree unit, CTU)이라고도 지칭되는 최대 CU(largest CU, LCU)에서 시작할 수 있다. HEVC에는 코딩 유닛의 개념뿐 아니라 예측 유닛(prediction unit, PU)의 개념 또한 도입되어 있다. 일단 CU 계층 트리(CU hierarchical tree)의 분열이 행해지면, 각각의 리프(leaf) CU는 예측 타입 및 PU 파티션에 따라 하나 이상의 예측 유닛(PU)으로 더 분열된다. 스크린 콘텐츠 코딩을 위한 여러 코딩 도구들이 개발되었다. 본 발명과 관련된 이들 도구는 다음과 같이 간략히 검토된다.
팔렛트 코딩(Palette coding)
HEVC 스크린 콘텐츠 코딩(screen content coding, SCC)의 개발 중에, 여러 제안들이 팔렛트 기반 코딩을 다루기 위해 개시되었다. 예를 들어, 팔렛트 예측 및 공유 기법이 JCTVC-N0247(Guo 등, “RCE3: Results of Test 3.1 on Palette Mode for Screen Content Coding”, ITU-T SG 16 WP 3와 ISO/IEC JTC 1/SC 29/WG 11의 JCT-VC(Joint Collaborative Team on Video Coding), 2013년 7월 25일에서 7월 2일까지 오스트리아 빈에서 개최된 제14차 미팅, 문서: JCTVC-N0247) 및 JCTVC-O0218(Guo 등, “Evaluation of Palette Mode Coding on HM-12.0+RExt-4.1”, ITU-T SG 16 WP 3와 ISO/IEC JTC 1/SC 29/WG 11의 JCT-VC(Joint Collaborative Team on Video Coding), 2013년 10월 23일에서 11월 1일까지 스위스 제네바에서 개최된 제15차 미팅, 문서: JCTVC-O0218)에 개시되어 있다. JCTVC-N0247 및 JCTVC-O0218에서, 각각의 컬러 컴포넌트의 팔렛트가 구성되어 송신된다. 팔렛트는 자신의 좌측 이웃 CU로부터 예측(또는 공유)되어 비트레이트를 감소시킬 수 있다. 소정의 블록 내의 모든 픽셀들은 자신의 팔렛트 인덱스를 이용하여 코딩된다. JCTVC-N0247에 따른 인코딩 프로세스의 일례는 다음과 같이 도시된다.
1. 팔렛트의 전송: 컬러 인덱스 테이블(팔렛트 테이블이라고도 지칭됨) 사이즈가 먼저 송신되고, 그 다음 팔렛트 요소들(즉 컬러 값들)이 송신된다.
2. 픽셀 값들의 전송: CU 내의 픽셀들은 래스터 스캔 순서(raster scan order)로 인코딩된다. 하나 이상의 픽셀들의 그룹마다, “카피-인덱스 모드(copy-index mode)”가 사용되고 있는지 "카피-어보브 모드(copy-above mode)”가 사용되고 있는지를 나타내기 위해 런(run) 기반 모드를 위한 플래그가 우선 송신된다.
2.1 “카피-인덱스 모드(copy-index mode)”: 이러한 런-기반 모드에서, 각자의 팔렛트 인덱스가 우선 시그널링되고, 그 다음 런(run) 값을 나타내는 각자의 런 값 “palette_run”(예를 들어, M)이 시그널링된다. “카피-인덱스 모드”는 일부 문헌에서 “인덱스” 모드라고도 지칭된다. “palette_run”이라는 용어는 또한 “pixel_run” 또는 본 개시에서 간단히 “run”이라고도 지칭될 수 있다. 런 값은 총 M개의 연속 샘플들이 모두 런 모드를 이용하여 코딩된다는 것을 나타낸다. 현재 위치 및 다음 N개의 위치를 위해 어떠한 추가 정보도 전송될 필요가 없는데, 그 이유는 비트스트림에서 시그널링되는 것과 동일한 팔렛트 인덱스를 갖기 때문이다. 팔렛트 인덱스(예를 들어, i)는 모두 3개의 컬러 컴포넌트에 의해 공유될 수 있는데, 이는 재구성된 픽셀 값들이 YUV 컬러 공간인 사례에 대해 (Y, U, V) = (paletteY[i], paletteU[i], paletteV[i])라는 것을 의미한다.
2.2 “카피-어보브 모드”: 카피-어보브 모드에서, 현재 픽셀 및 다음 N개의 픽셀의 경우 팔렛트 인덱스가 위의 행에서의 해당 팔렛트 인덱스와 동일하다는 것을 나타내도록 각자의 값 “palette_run”(예를 들어, N)이 송신된다.
3. 레지듀(residue)의 전송: 스테이지 2에서 송신된 팔렛트 인덱스들은 픽셀 값들로 다시 변환되어 예측으로서 사용된다. 레지듀 정보는 HEVC 레지듀얼 코딩을 이용하여 송신되고, 재구성을 위한 예측에 추가된다.
도 1a 내지 도 1c는 스크린 콘텐츠 코딩 테스트 모델 2.0(screen content coding test model 2.0, SCM-2.0)에 따라 팔렛트 인덱스 맵 및 팔렛트 인덱스 맵 코딩의 일례를 예시한다. 도 1a는 팔렛트 컬러들을 위한 팔렛트 인덱스 0 내지 3 및 이스케이프(Escape) 샘플들을 위한 팔렛트 인덱스 4를 이용하여 팔렛트 인덱스 맵을 예시한다. 이스케이프 샘플들에 대응하는 인덱스는 본 개시에서 이스케이프 인덱스라고도 지칭된다. 도 1b는 SCM-2.0에 따른 팔렛트 인덱스 맵 코딩을 예시하며, 여기서 "카피-인덱스 모드”는 3, 1, 2, 및 6에 대응하는 “팔렛트 런들”을 이용하여 제1 행에서의 인덱스의 4개의 그룹(110, 120, 130, 및 140)에 적용된다. 도 1c는 제2 행을 위한 팔렛트 인덱스 맵 코딩의 일례를 예시하며, 여기서 “카피-어보브 모드”는 제1 샘플 그룹(150)에 적용되고, "카피-인덱스 모드”는 8, 1, 및 4에 대응하는 런들을 이용하여 다음 2개의 그룹(160 및 170)에 적용된다.
본 개시에서는 카피-인덱스 모드와 카피-어보브 모드 양자 모두 “카피 모드들”이라고 지칭된다. 카피-인덱스 모드에서, 카피-인덱스 코딩 픽셀들의 리딩 픽셀(leading pixel)의 팔렛트 인덱스가 송신된다. 카피-인덱스 코딩 픽셀들의 개수 또한 송신된다. 디코더 측에서, 기저 픽셀(underlying pixel)들을 위한 코딩 모드(즉, 카피-인덱스 모드)를 결정한 이후, 리딩 픽셀의 팔렛트 인덱스의 정보 및 카피-인덱스 코딩 픽셀들의 개수만이 카피-인덱스 코딩 픽셀들을 재구성하는데 필요하다. 리딩 픽셀 다음의 픽셀들은 예측기(predictor)(즉, 좌측에 있는 픽셀)로부터의 “카핑(copying)”에 의해 재구성될 수 있다. 픽셀 값은 팔렛트 테이블을 이용하여 재구성될 수 있다. 카피-어보브 모드에서, 예측기들(즉, 전술된 픽셀들)에 관한 어떠한 팔렛트 인덱스도 송신될 필요가 없는데, 그 이유는 전술된 픽셀들이 재구성되었기 때문이다. 현재 픽셀들은 전술된 픽셀들로부터 “카핑”될 수 있다.
팔렛트 테이블 시그널링(Palette table signaling)
스크린 콘텍스트 코딩 테스트 모델 2(SCM-2.0, ITU-T SG 16 WP 3와 ISO/IEC JTC 1/SC 29/WG 11의 JCT-VC(Joint Collaborative Team on Video Coding), 2014년 6월 30일에서 7월 9일에 일본 삿포로에서 개최된 제18차 미팅, 문서: JCTVC-R1014)에서, 이전 코딩/디코딩된 팔렛트 컬러들이 후속 블록들의 팔렛트들을 위한 예측기로서 활용될 수 있도록 이전 코딩/디코딩된 팔렛트 컬러들을 저장하는데 팔렛트 예측기 테이블이 사용된다. 디코더가 비트스트림을 디코딩하면, 제1 팔렛트 코딩 블록의 팔렛트 컬러들이 팔렛트 예측기 테이블에 저장될 것이다. 다음의 팔렛트 코딩된 블록은 팔렛트 예측기로서 이 저장된 테이블로부터의 컬러들을 이용할 수 있다. 팔렛트 예측기에 의해 예측되지 않은 이들 컬러의 경우, 자신의 팔렛트 내의 새로운 컬러들이 시그널링될 것이다. 현재 블록의 팔렛트를 재구성하기 위해, 팔렛트를 재구성하기 위한 구문(syntax)은 SCM-2.0에서 개시되고, 일례는 다음과 같이 도시된다.
단계 1: 팔렛트를 시그널링하거나 파싱한다. 이 단계에서, 팔렛트는 팔렛트 공유 플래그(즉, palette_sharing_flag)가 설정되었는지 여부를 우선 체크함으로써 인코더 측에서 시그널링되고, 디코더 측에서 재구성된다. 팔렛트 공유 플래그(즉, 1의 값을 가짐)가 설정되면, 현재 팔렛트는 이전 블록의 팔렛트와 동일하다. 그렇지 않으면, 팔렛트는 팔렛트 업데이트 절차에 따라 재구성된다. 팔렛트를 재구성하기 위한 구문 구조의 일례가 이하 도시된다.
‘palette_sharing_flag’를 파싱한다.
‘palette_sharing_flag’가 1이면, 현재 팔렛트는 이전 블록의 팔렛트와 동일하다.
그렇지 않으면,
‘reuse_flags’를 파싱하여 팔렛트 예측기 테이블 내의 어느 요소들이 현재 팔렛트에서 재사용되는지를 나타낸다.
‘num_signalled_palette’를 파싱하여 새로운 팔렛트 컬러들의 개수가 현재 팔렛트를 위해 디코딩될 필요가 있다고 나타낸다.
‘num_signalled_palette’를 루프오버(Loop over)하고, 팔렛트 컬러 값들을 파싱한다.
단계 2: 컬러 인덱스 맵을 시그널링하거나 파싱한다. 팔렛트가 시그널링되거나 재구성된 이후, 컬러 인덱스 맵은 재구성된 팔렛트 및 코딩된 컬러 인덱스들을 다음과 같이 이용하여 인코더 측에서 시그널링되거나 디코더 측에서 재구성된다. 본 개시에서 컬러 인덱스 맵은 또한 팔렛트 인덱스 맵 또는 인덱스 맵이라고도 지칭된다.
‘스캔 순서’를 파싱하여 가로 횡단(hor-traverse)인지 세로 횡단(ver-traverse)인지를 나타낸다.
‘block_level_escape_flag’를 파싱하여 ESCAPE 샘플 ‘새로운 런 모드'가 존재하는지 또는 ESCAPE 샘플 ‘카피 어보브 모드’가 존재하는지 여부를 나타낸다.
‘카피 인덱스 모드’이면, ‘인덱스’를 파싱한다.
인덱스 = ESCAPE이면, ESCAPE 샘플 값을 파싱한다.
인덱스 != ESCAPE이면, ‘런’을 파싱하여 동일한 인덱스를 갖는 번호 샘플들을 나타낸다.
‘카피 어보브 모드’이면, ‘런’을 파싱하여 바로 위의 샘플들과 동일한 인덱스를 갖는 번호 샘플들을 나타낸다.
컬러 인덱스 맵 코딩의 코딩 효율을 더 개선하는 것이 바람직하다.
비디오 코딩에서 팔레트 코딩을 이용하여 비디오 데이터의 블록을 코딩하기 위한 방법 및 장치가 개시된다. 본 발명의 일 실시예에 따르면, 현재 블록에 단 하나의 싱글 팔렛트 인덱스가 존재하는지 여부가 우선 결정된다. 현재 블록에 단 하나의 싱글 팔렛트 인덱스가 존재하면, 현재 블록을 위한 현재 팔렛트 인덱스 맵을 시그널링하는 것이 인코더 측에서 생략되거나, 현재 블록을 위한 현재 팔렛트 인덱스 맵을 디코딩하기 위한 임의의 구문을 파싱하는 것이 디코더 측에서 생략된다. 인코더 측에서 현재 블록을 위한 현재 팔렛트 테이블을 시그널링하거나, 디코더 측에서 현재 블록을 위한 현재 팔렛트 테이블을 파싱한 이후, 현재 블록에 단 하나의 싱글 팔렛트 인덱스가 존재하는지 여부가 수행된다. 현재 블록에 단 하나의 싱글 팔렛트 인덱스가 존재하는 경우, 팔렛트 런 타입, 연관된 팔렛트 인덱스, 및 팔렛트 런에 대응하는 구문 요소들이 인코더 측에서 생략된다.
현재 블록에 단 하나의 싱글 팔렛트 인덱스가 존재하는지 여부는 예측 팔렛트 번호를 나타내는 구문 요소, 시그널링 팔렛트 번호를 나타내는 구문 요소, 및 현재 블록에 임의의 이스케이프 샘플이 존재하는지 여부를 나타내는 구문 요소(예를 들어, CU_level_escape_flag)에 기반할 수 있다. 현재 블록에 단 하나의 싱글 팔렛트 인덱스가 존재하면, 싱글 팔렛트 인덱스는 디코더 측에서 0으로 추론될 수 있다. 예측 팔렛트 번호가 1이고, 시그널링 팔렛트 번호가 0이고, CU_level_escape_flag가 이스케이프 샘플 없음을 나타내면, 현재 팔렛트 인덱스 맵은 하나의 싱글 컬러 팔렛트 인덱스를 갖고, 이스케이프 샘플을 갖지 않는 것으로 추론될 수 있다. 이 사례에서, 싱글 컬러 팔렛트 인덱스는 이전의 팔렛트 테이블로부터 예측된 팔렛트 인덱스에 대응한다. 예측 팔렛트 번호가 0이고, 시그널링 팔렛트 번호가 1이고, CU_level_escape_flag가 이스케이프 샘플 없음을 나타내면, 현재 팔렛트 인덱스 맵은 하나의 싱글 컬러 팔렛트 인덱스를 갖고, 이스케이프 샘플을 갖지 않는 것으로 추론될 수 있다. 이 사례에서, 싱글 컬러 팔렛트 인덱스는 현재 블록을 위한 코딩 데이터를 포함하는 비트스트림에 시그널링되는 팔렛트 인덱스에 대응한다. 예측 팔렛트 번호가 0이고, 시그널링 팔렛트 번호가 0이고, CU_level_escape_flag가 적어도 하나의 이스케이프 샘플을 나타내면, 현재 블록을 위한 현재 팔렛트 인덱스 맵은 모든 이스케이프 샘플들로서 디코딩된다.
다른 실시예에서, 현재 블록에 단 하나의 싱글 팔렛트 인덱스가 존재하는지 여부는 현재 블록에 대한 팔렛트 인덱스를 위한 최대 가능 값에 대응하는 구문 요소에 기반하여 결정될 수 있다. 현재 블록에 대한 팔렛트 인덱스를 위한 최대 가능 값이 0이면, 현재 블록에 단 하나의 싱글 팔렛트 인덱스가 존재한다. 현재 블록에 대한 팔렛트 인덱스를 위한 최대 가능 값이 0이면, 조절된 인덱스 맵에 대응하는 구문 요소가 도출되지 않는다.
다른 실시예는 비디오 데이터의 블록에 단 하나의 싱글 팔렛트 인덱스가 존재하는지 여부를 나타내기 위한 제1 구문 요소 및 제1 구문 요소가 어서트(assert)되면 상기 하나의 싱글 팔렛트 인덱스를 나타내기 위한 제2 구문 요소를 병합하는 시스템을 다룬다. 본 실시예에 따르면, 현재 블록을 위한 현재 팔렛트 테이블을 시그널링하거나 파싱한 이후, 이스케이프 인덱스를 포함하는 현재 블록의 해당 총 팔렛트 사이즈는 인코더 측 또는 디코더 측에서 도출될 수 있다. 이스케이프 인덱스를 포함하는 현재 블록의 총 팔렛트 사이즈가 1이면, 현재 제1 구문 요소 및 현재 제2 구문 요소를 시그널링하는 것이 인코더 측에서 생략되거나, 현재 제1 구문 요소 및 현재 제2 구문 요소를 위한 각자의 값들이 디코더 측에서 추론된다. 총 팔렛트 사이즈가 1보다 크면, 현재 제1 구문 요소는 인코더 측에서 시그널링되거나, 현재 제1 구문 요소는 디코더 측에서 파싱된다. 현재 제1 구문 요소가 1이면, 현재 제2 구문 요소는 인코더 측에서 시그널링되거나, 현재 제2 구문 요소는 디코더 측에서 파싱된다. 이 사례에서, 현재 블록의 모든 샘플들은 현재 제2 구문 요소와 같은 하나의 현재 인덱스 값을 갖는 것으로 추론된다. 현재 제1 구문 요소가 0이면, 현재 블록을 위한 현재 인덱스 맵이 인코더 측에서 시그널링되거나 디코더 측에서 파싱된다.
도 1a 내지 도 1c는 스크린 콘텐츠 코딩 테스트 모델 2.0(screen content coding test model 2.0, SCM-2.0)에 따라 팔렛트 인덱스 맵 및 팔렛트 인덱스 맵 코딩을 예시한다.
도 2는 본 발명의 일 실시예에 따른 팔렛트 인덱스 맵 코딩을 위한 예시적인 흐름도를 예시하는데, 여기서 현재 블록을 위한 현재 팔렛트 인덱스 맵을 시그널링하는 것은 인코더 측에서 생략되고, 현재 블록을 위한 현재 팔렛트 인덱스 맵을 디코딩하기 위한 임의의 구문을 파싱하는 것은 디코더 측에서 생략된다.
도 3은 본 발명의 일 실시예에 따른 팔렛트 인덱스 맵 코딩을 위한 예시적인 흐름도를 예시하며, 여기서 현재 블록의 총 팔렛트 사이즈에 대응하는 구문 요소가 인코더 측에서 시그널링되거나 디코더 측에서 파싱되며, 총 팔렛트 사이즈가 1이면, 비디오 데이터 블록에 단 하나의 싱글 팔렛트 인덱스가 존재하는지를 나타내기 위한 제1 구문 요소 및 제1 구문 요소가 어서트되면 상기 하나의 싱글 팔렛트 인덱스를 나타내기 위한 제2 구문 요소가 생략된다.
다음의 설명은 본 발명을 실시하는 최선 모드에 관한 것이다. 이 설명은 본 발명의 일반적인 원리들을 예시할 목적으로 행해지며, 한정의 의미로 간주되지 않아야 한다. 본 발명의 범위는 첨부된 청구항들에 대한 참조로서 가장 잘 결정된다.
블록 내의 모든 샘플들이 동일한 컬러 인덱스를 갖는 경우, 스크린 콘텍스트 코딩 테스트 모델 2(SCM-2.0, ITU-T SG 16 WP 3와 ISO/IEC JTC 1/SC 29/WG 11의 JCT-VC(Joint Collaborative Team on Video Coding), 2014년 6월 30일에서 7월 9일에 일본 삿포로에서 개최된 제18차 미팅, 문서: JCTVC-R1014)에서 개시된 바와 같이 컬러 인덱스 맵 코딩을 위한 구문 구조는 일정한 비효율성을 초래한다. 이러한 사례에서, 새로운 런, 카피 어보브 모드, 또는 런 길이의 시그널링은 불필요해진다. 따라서, 본 발명은 균일한 인덱스 맵을 갖는 이러한 블록들을 식별 및 시그널링하기 위한 방법들을 개시한다.
블록에 단 하나의 팔렛트 요소가 존재할 때의 검출 및 시그널링
일 실시예에서, 블록 내의 싱글 팔렛트 인덱스의 조건(즉, 현재 블록에 단 하나의 싱글 팔렛트 인덱스가 존재함)은 팔렛트 인덱스 맵을 시그널링할 필요 없이 암시적으로 하나 이상의 시그널링된 구문 요소들에 기반하여 식별된다. 예를 들어, 하나의 팔렛트 인덱스의 조건은 다음과 같이 SCM-2.0에 정의된 구문에 기반하여 결정될 수 있다.
a) 예측 팔렛트 번호 = 1, 시그널링 팔렛트 번호 = 0, CU_level_escape_flag = 0
전술된 조건들은 팔렛트 예측기로부터의 하나의 팔렛트 컬러가 존재하고(즉, 예측 팔렛트 번호 = 1), 시그널링된 팔렛트가 존재하지 않고(즉, 시그널링 팔렛트 번호 = 0), 이스케이프 샘플이 존재하지 않는(즉, CU_level_escape_flag = 0) 사례에 대응한다.
b) 예측 팔렛트 번호 = 0, 시그널링 팔렛트 번호 = 1, CU_level_escape_flag = 0
전술된 조건들은 팔렛트 예측기로부터의 팔렛트 컬러가 존재하지 않고, 하나의 시그널링된 팔렛트가 존재하고, 이스케이프 샘플이 존재하지 않는 사례에 대응한다.
c) 예측 팔렛트 번호 = 0, 시그널링 팔렛트 번호 = 0, CU_level_escape_flag = 1
전술된 조건들은 팔렛트 예측기로부터의 팔렛트 컬러가 존재하지 않고, 시그널링된 팔렛트가 존재하지 않고, 모든 샘플들이 이스케이프 샘플인 사례에 대응한다.
예측 팔렛트 번호는 팔렛트가 재사용되는지 여부를 나타내는 SCM-2.0에서의 palette_reuse_flags와 같은 구문을 디코딩한 이후 도출될 수 있다. 예측 팔렛트 번호는 또한 비트스트림 내의 다른 구문 요소들에 기반하여 결정될 수 있다. 본 발명은 예측 및/또는 시그널링 팔렛트 번호가 시그널링되는 특정 방식으로 한정되지 않는다. 그 원리는 다른 구문 요소들에 기반하여 팔렛트 내의 단일 요소의 조건을 식별하는 것이다. 모든 사례들(즉, 전술된 사례 a) 내지 사례 c))에서, 블록 내의 모든 샘플을 위한 단 하나의 가능한 인덱스 값(예를 들어, 0)이 존재한다. 이에 따라, 전술된 바와 같은 실시예들에 따르면, 전술된 사례 중 어느 하나가 어서트될 때마다(즉 사례가 참일 때마다), 인덱스 맵을 위한 구문 시그널링은 생략되고, 모든 인덱스들은 0이라고 추론된다. 단 하나의 인덱스는 또한 사례 a)의 경우 이전 팔렛트로부터 예측된 인덱스에 기반하여 결정될 수 있다. 단 하나의 인덱스는 또한 사례 b)의 경우 비트스트림에서 시그널링되는 인덱스에 기반하여 결정될 수 있다. 일 실시예에서, 블록에 단 하나의 싱글 팔렛트 인덱스가 존재하는지 여부의 결정은 인코더 측에서 블록을 위한 팔렛트 테이블을 시그널링하거나 디코더 측에서 블록을 위한 팔렛트 테이블을 파싱한 이후에 수행된다.
SCM-2.0의 팔렛트 구문에 따르면, 사례 a) 및 사례 b)를 위한 본 발명의 실시예들은 전체 블록의 사이즈의 새로운 런의 시그널링 또는 블록 폭과 동일한 런 길이를 갖는 연속적 카피 어보브를 생략할 것이라는 점에 주목한다. 사례 c)의 경우, SCM-2.0 팔렛트가 이스케이프(ESCAPE)의 런들을 허용하지 않기 때문에, 본 발명의 실시예들은 길이가 1인 ESCAPE 인덱스를 연속적으로 시그널링할 종래의 접근법에 비해 상당한 절약을 제공할 것이다. (예를 들어, SCM-3.0 및 이후 버전에서) ESCAPE의 런들이 허용된 사례에서, 사례 c)는 전체 블록의 사이즈의 새로운 런을 시그널링하는 것을 생략할 것이다.
palette _ sharing _ flag를 single _ index _ flag와 병합
본 실시예에서, palette_sharing_flag를 새로운 플래그인 single_index_flag와 함께 시그널링함으로써 블록 내의 싱글 팔렛트 인덱스의 사례의 경우, 코딩 효율이 개선된다. 블록 내의 모든 샘플들이 동일한 인덱스를 이용한다는 것을 나타내는 palette_sharing_flag가 1인 사례들에서 새로운 플래그인 single_index_flag가 시그널링된다. 게다가, 동일한 인덱스는 이전 팔렛트(공유 팔렛트)에서의 요소들 중 하나를 가리킨다. palette_sharing_flag와 single_index_flag 양자 모두를 위한 결합 구문 설계는 다음과 같이 요약될 수 있다.
palette_sharing_flag = 0이면, 블록 내의 모든 인덱스는 다음 사례들에 대해 0이라고 추론된다.
a) 예측 팔렛트 번호 = 1, 시그널링 팔렛트 번호 = 0, CU_level_escape_flag = 0
전술된 조건들은 팔렛트 예측기로부터의 하나의 팔렛트 컬러가 존재하고(즉, 예측 팔렛트 번호 = 1), 시그널링된 팔렛트가 존재하지 않고, 이스케이프 샘플이 존재하지 않는(즉, CU_level_escape_flag = 0) 사례에 대응한다.
b) 예측 팔렛트 번호 = 0, 시그널링 팔렛트 번호 = 1, CU_level_escape_flag = 0
전술된 조건들은 예측된 팔렛트가 존재하지 않고, 새로운 컬러로서 송신된 하나의 팔렛트 컬러가 존재하고(즉, 예측 팔렛트 번호 = 0 및 시그널링 팔렛트 번호 = 1), 이스케이프 샘플이 존재하지 않는 사례에 대응한다.
c) 예측 팔렛트 번호 = 0, 시그널링 팔렛트 번호 = 0, CU_level_escape_flag = 1
전술된 조건들은 현재 팔렛트가 비어 있고(즉, 예측 팔렛트 번호 = 0 및 시그널링 팔렛트 번호 = 0), 모든 샘플이 이스케이프 샘플들인 사례에 대응한다.
palette_sharing_flag = 1이면, 본 발명의 실시예들에 따른 인덱스 맵 코딩이 다음과 같이 도시된다.
d) 이전 팔렛트 사이즈 = 1이고, CU_level_escape_flag = 0이면, 블록 내의 모든 인덱스들은 0이라고 추론된다.
전술된 조건들은 현재 팔렛트가 이전 팔렛트와 동일하고, 단 하나의 인덱스(즉, 이전 팔렛트 사이즈 = 1)를 갖고, 이스케이프 샘플이 존재하지 않는 사례에 대응한다. 블록 내의 모든 인덱스들이 0이라고 추론된다.
e) 이전 팔렛트 사이즈 = 1이고, CU_level_escape_flag = 1이면, 본 발명의 실시예들에 따른 2개의 접근법이 다음과 같이 사용될 수 있다.
i. 새로운 플래그인 single_index_flag를 시그널링하지 않고 정상 인덱스 맵 코딩을 이용하여 인덱스 맵을 코딩함.
ii. 새로운 플래그인 single_index_flag를 우선 시그널링함. single_index_flag가 1이면, single_index를 시그널링함. 모든 샘플 인덱스들이 single_index라고 추론된다. 그렇지 않으면(즉, single_index_flag = 0), 정상 인덱스 맵 코딩을 이용하여 인덱스 맵을 코딩함.
f) 이전 팔렛트 사이즈 > 1이고, CU_level_escape_flag = 0 또는 1이면, 본 발명의 실시예들에 따른 2개의 접근법이 다음과 같이 사용될 수 있다.
i. 새로운 플래그인 single_index_flag를 시그널링하지 않고 정상 인덱스 코딩을 이용하여 인덱스 맵을 코딩함.
ii. 새로운 플래그인 single_index_flag를 우선 시그널링함. single_index_flag가 1이면, single_index를 시그널링함. 모든 샘플 인덱스들이 single_index라고 추론됨. 그렇지 않으면(즉, single_index_flag = 0), 정상 인덱스 맵 코딩을 이용하여 인덱스 맵을 코딩함.
single _ index _ flag를 시그널링 또는 추론
본 실시예에서, single_index_flag 및 single_index를 시그널링하는 것은 팔렛트 코딩 이후(예를 들어, palette_sharing_flag, 예측된 팔렛트, 새롭게 송신된 팔렛트, 및 CU_level_escape_flag 시그널링 이후)이고, 인덱스 맵 코딩 이전이다.
(이스케이프 인덱스를 포함하는) 총 팔렛트 사이즈가 1이면, single_index_flag는 1이라고 추론된다. single_index는 0이라고 추론된다. 모든 샘플 인덱스들이 0인 single_index라고 추론된다.
그렇지 않으면(즉, 총 팔렛트 사이즈가 1보다 크면), 새로운 플래그인 single_index_flag가 시그널링된다. single_index_flag가 1이면, single_index가 시그널링된다. 모든 샘플 인덱스들이 single_index라고 추론된다. 그렇지 않으면(즉, single_index_flag = 0), 인덱스 맵은 정상 인덱스 맵 코딩을 이용하여 코딩된다.
제로( zero )/싱글 컬러 팔렛트의 시그널링
본 발명의 일 실시예에 따르면, 현재 팔렛트가 비어 있거나(즉, 모든 샘플들이 이스케이프 코딩되는 경우), 현재 팔레트가 단 하나의 컬러를 갖고 이스케이프를 갖지 않으면(즉, 모든 샘플들이 팔렛트 인덱스 0인 경우), (카피 인덱스 모드 또는 카피 어보브 모드를 지시하기 위한) palette_run_type_flag, 팔렛트 인덱스 palette_index_idc, 및 인덱스 런 모두 팔렛트 코딩된 블록에 대해 생략될 것이다. 팔렛트 인덱스가 0이라고 도출되고, 인덱스 런은 전체 CU(즉, CU 넓이 × CU 높이 - 1)에 대해 런이라고 도출된다. 그러나, 이들 싱글 인덱스 값 사례들의 경우, 다수의 조건부 체크들을 이용함으로써 (인코더 측의) 시그널링 및 (디코더 측의) 파싱은 생략되는데, 여기서 상이한 조건들은 상이한 구문 요소들에 대해 체크된다. 예시적인 구문 테이블 및 의미론(semantics)은 다음과 같이 도시된다.
팔렛트 인덱스의 런마다 전술된 구문 요소들 생략하기 위한 조건들에 대한 체크 프로세스는 다음과 같이 개시된다.
a) 우선, palette _ run _ type _ flag를 파싱할 지 여부는 indexMax를 체크함으로써 결정된다.
b) 그 후, 팔렛트 인덱스 palette_index_idc를 파싱할지 여부는 도출된 변수 adjustedIndexMax를 이용하여 결정되며, 도출된 변수를 위한 도출은 각자 자신의 조건부 체크를 요구하는데, 발췌된 텍스트를 이하 참조한다.
c) 최종적으로, 팔렛트 런을 파싱할 지 여부는 indexMax에 의해 다시 결정된다.
게다가, 2 이상의 팔렛트 인덱스 값들을 이용하는 일반적인 팔렛트 코딩된 CU의 경우, 조건 indexMax는 다수의 팔렛트 런들을 루프 오버하여 구문을 파싱할 때 런마다 2회씩 불필요하게 체크된다.
기존 설계에 따른 구문 테이블과 디코딩 프로세스 양자 모두는 이들 부분과 연관된 팔렛트 인덱스 맵 코딩을 위해 최적화되지 않는다. 테이블 1은 SCM-3.0 및 SCC Draft Text 2에 따른 palette_coding ()를 위한 구문을 보여준다. 테이블 1에 도시된 바와 같이, indexmax가 0보다 큰 지에 관한 조건은 (1-1) 및 (1-2)에 주석 달린 바와 같이 2회 체크된다.
테이블 1
Figure 112015081379525-pat00001
변수 indexMax는 현재 코딩 유닛을 위한 팔렛트 인덱스에 대한 최대 가능 값을 지정한다. palette_escape_val_present_flag가 1이면, indexMax는 currentPaletteSize과 같도록 설정된다. palette_escape_val_present_flag가 0이면, indexMax는 (currentPaletteSize-1)과 같도록 설정된다.
변수 adjustedIndexMax는 다음과 같이 indexMax 조정 프로세스에 따라 도출된다.
Figure 112015081379525-pat00002
본 발명에서, 팔렛트 인덱스 맵을 위한 구문 및 디코딩 프로세스를 개선하기 위해 방법들이 개시된다.
팔렛트 인덱스를 위한 개선된 구문 및 디코딩 프로세스
일 실시예에서, 팔렛트 런 타입, 팔렛트 인덱스, 및 팔렛트 런을 시그널링하는 것은 단 하나의 조건부 체크에 기반하여 간단히 스킵된다. 본 발명의 실시예를 병합한 예시적인 구문 테이블은 테이블 2에 도시되어 있다. 테이블 2에 있는 구문 테이블에 따라, 팔렛트 인덱스의 런마다 다음이 수행된다.
a) indexMax에 대한 단 하나의 싱글 조건부 체크(즉, 주석 (2-1)))는 palette_run_type_flag, palette_index_idc 및 팔렛트 런을 생략할 지 여부를 결정하기 위해 수행된다. 종래의 구문 설계에서 indexMax에 대한 2개의 체크(즉, 주석 (2-2) 및 (2-3))는 이중 취소선(double strikethrough)에 의해 지시된 바와 같이 삭제된다.
b) indexMax가 0보다 크지 않지만, ((2-4)에 주석 달린 바와 같이) adjustedIndexMax를 도출할 필요가 없다.
c) 2 이상의 팔렛트 인덱스 값들을 갖는 팔렛트 코딩된 CU의 경우, 조건 indexMax는 다수의 팔렛트 런들을 루프 오버(looping over)하여 구문을 파싱할 때 단 한번만 체크된다.
테이블 2
Figure 112015081379525-pat00003
다른 실시예에서, 조건부 체크는 인덱스 위치들에 대한 while-loop 외부로 이동한다(즉, while( scanPos < nCbS * nCbS )). 팔렛트 사이즈가 비어 있거나 하나일 때, 모든 인덱스가 0인 단 하나의 런이 존재할 수 있기 때문에, 전체 조건은 while-loop 외부에 형성될 수 있다. 본 실시예에서, 2 이상의 팔렛트 인덱스 값들을 갖는 팔렛트 CU의 경우, 다수의 팔렛트 런들을 루프 오버하여 구문을 파싱할 때 조건 indexMax를 체크할 필요가 전혀 없다. 오직 가능한 인덱스 값을 갖는 사례들(indexMax = 0)에 대해, 파싱/디코딩은 while-loop를 스킵할 것이고, 디코딩될 유일한 구문 요소들은 palette_escape_val_present_flag이 1일 때의 이스케이프 값들이다.
테이블 3
Figure 112015081379525-pat00004
도 2는 본 발명의 일 실시예에 따른 팔렛트 인덱스 맵 코딩을 위한 예시적인 흐름도를 예시하는데, 여기서 현재 블록을 위한 현재 팔렛트 인덱스 맵을 시그널링하는 것은 인코더 측에서 생략되고, 현재 블록을 위한 현재 팔렛트 인덱스 맵을 디코딩하기 위한 임의의 구문을 파싱하는 것은 디코더 측에서 생략된다. 시스템은 단계 210에 도시된 바와 같이 현재 블록과 연관된 입력 데이터를 수신한다. 인코딩의 경우, 현재 블록과 연관된 입력 데이터는 현재 팔렛트 및 코딩될 블록의 이스케이프 플래그에 대응한다. 디코딩의 경우, 현재 블록과 연관된 입력 데이터는 현재 팔렛트 및 이스케이프 플래그에 대응한다. 현재 블록과 연관된 입력 데이터는 메모리(예를 들어, 컴퓨터 메모리, 버퍼(RAM 또는 DRAM) 또는 다른 매체)로부터 또는 프로세스로부터 검색될 수 있다. 현재 블록에 단 하나의 싱글 팔렛트 인덱스가 존재하는지 여부가 단계 220에서 결정된다. 현재 블록에 단 하나의 싱글 팔렛트 인덱스가 존재하면, 단계 230에서 현재 블록을 위한 현재 팔렛트 인덱스 맵을 시그널링하는 것이 인코더 측에서 생략되거나, 현재 블록을 위한 현재 팔렛트 인덱스 맵을 디코딩하기 위한 임의의 구문을 파싱하는 것이 디코더 측에서 생략된다.
도 3은 본 발명의 일 실시예에 따른 팔렛트 인덱스 맵 코딩을 위한 예시적인 흐름도를 예시하며, 여기서 현재 블록의 총 팔렛트 사이즈에 대응하는 하나 이상의 구문 요소가 인코더 측에서 시그널링되거나 디코더 측에서 파싱되며, 총 팔렛트 사이즈가 1이면, 비디오 데이터 블록에 단 하나의 싱글 팔렛트 인덱스가 존재하는지를 나타내기 위한 제1 구문 요소 및 제1 구문 요소가 어서트되면 상기 하나의 싱글 팔렛트 인덱스를 나타내기 위한 제2 구문 요소가 생략된다. 시스템은 단계 310에 도시된 바와 같이 현재 블록과 연관된 입력 데이터를 수신한다. 현재 블록을 위한 현대 팔렛트 테이블을 시그널링하거나 파싱한 이후, 단계 320에서 이스케이프 인덱스를 포함하는 현재 블록의 대응하는 총 팔렛트 사이즈는 인코더 측에서 또는 디코더 측에서 도출된다. 이스케이프 인덱스를 포함하는 현재 블록의 총 팔렛트 사이즈가 1이면, 단계 330에서, 현재 제1 구문 요소 및 현재 제2 구문 요소를 시그널링하는 것이 인코더 측에서 생략되거나, 현재 제1 구문 요소 및 현재 제2 구문 요소를 위한 각자의 값들이 디코더 측에서 추론된다.
앞선 설명은 당업자가 특정 응용분야 및 요건 위주로 제공되는 바와 같이 본 발명을 실시할 수 있도록 제시된다. 설명된 실시예들에 대한 다양한 변형은 당업자에게 명백할 것이고, 여기에 정의된 일반적인 원리들은 다른 실시예들에 적용될 수 있다. 그러므로 본 발명은 도시되고 설명된 특정 실시예들로 제한하려는 것이 아니라, 여기에 개시된 원리 및 특징들에 부합하는 최광의로 해석되어야 한다. 본 발명의 완전한 이해를 제공하기 위해, 다양한 특정 상세부들이 전술된 상세한 설명에 예시되어 있다. 그럼에도, 본 발명이 실시될 수 있다는 점이 당업자에 의해 이해될 것이다.
전술된 바와 같은 본 발명의 실시예는 다양한 하드웨어, 소프트웨어 코드들, 또는 양자의 조합으로 구현될 수 있다. 예를 들어, 본 발명의 실시예는 비디오 압축 칩에 집적된 하나 이상의 전자 회로 또는 비디오 압축 소프트웨어에 집적된 프로그램 코드일 수 있다. 본 발명의 실시예는 또한 여기에 설명된 프로세싱을 수행하기 위해 디지털 신호 프로세서(DSP)에서 실행될 프로그램 코드일 수 있다. 본 발명은 또한 컴퓨터 프로세서, 디지털 신호 프로세서, 마이크로프로세서, 또는 필드 프로그래머블 게이트 어레이(FPGA)에 의해 수행될 다수의 기능들을 포함할 수 있다. 이들 프로세서는 본 발명에 의해 구체화된 특정 방법들을 정의하는 기계 판독 가능 소프트웨어 코드 또는 펌웨어 코드를 실행함으로써 본 발명에 따른 특정 태스크들을 수행하도록 구성될 수 있다. 소프트웨어 코드 또는 펌웨어 코드는 상이한 프로그래밍 언어들 및 상이한 포맷 또는 스타일로 개발될 수 있다. 소프트웨어 코드는 또한 상이한 타겟 플랫폼을 위해 컴파일될 수 있다. 그러나, 소프트웨어 코드들의 상이한 코드 포맷, 스타일, 및 언어들 및 본 발명에 따른 태스크들을 수행하기 위해 코드를 구성하는 다른 수단은 본 발명의 사상 및 범위로부터 벗어나지 않을 것이다.
본 발명은 본 발명의 사상 및 필수적 특징들로부터 벗어나지 않고 다른 특정 형태들로 구체화될 수 있다. 설명된 예시들은 모든 측면에서 제한적이 아니라 예시적인 것으로 간주되어야 한다. 그러므로 본 발명의 범위는 전술된 설명 보다는 첨부된 청구항들에 의해 나타내진다. 청구항들의 균등물의 의미 및 범위 내에 있는 모든 변화들은 이들의 범위 내에 포괄적으로 다루어져야 한다.

Claims (18)

  1. 비디오 코딩 시스템에서의 팔렛트 코딩(palette coding)을 이용하여 비디오 데이터 블록을 코딩하는 방법으로서,
    현재 블록과 연관된 입력 데이터를 수신하는 단계와,
    제1 예측 팔렛트 번호(first number of predicted palette)에 대응하는 제1 구문 요소, 제2 시그널링 팔렛트 번호에 대응하는 제2 구문 요소, 상기 현재 블록 내에 임의의 이스케이프(Escape) 샘플이 존재하는지 여부를 나타내는 CU_level_escape_flag에 대응하는 제3 구문 요소, 및 상기 현재 블록의 팔렛트 인덱스에 대한 최대 가능 값에 대응하는 제4 구문 요소 중 하나 또는 그 조합에 기초하여, 상기 현재 블록 내에 단 하나의 싱글 팔렛트 인덱스가 존재하는지 여부를 결정하는 단계와,
    상기 현재 블록 내에 단 하나의 싱글 팔렛트 인덱스가 존재하면, 인코더 측에서 상기 현재 블록을 위한 현재 팔렛트 인덱스 맵을 시그널링하는 것을 생략하는 단계, 또는 디코더 측에서 상기 현재 블록을 위한 현재 팔렛트 인덱스 맵을 디코딩하기 위한 임의의 구문(syntax)을 파싱(parsing)하는 것을 생략하는 단계를 포함하는 비디오 데이터 블록을 코딩하는 방법.
  2. 제1항에 있어서, 상기 현재 블록 내에 단 하나의 싱글 팔렛트 인덱스가 존재하는지 여부를 결정하는 단계는, 상기 인코더 측에서 상기 현재 블록을 위한 현재 팔렛트 테이블을 시그널링하거나 또는 상기 디코더 측에서 상기 현재 블록을 위한 상기 현재 팔렛트 테이블을 파싱한 이후에 수행되는 것인 비디오 데이터 블록을 코딩하는 방법.
  3. 삭제
  4. 제1항에 있어서, 상기 현재 블록 내에 단 하나의 싱글 팔렛트 인덱스가 존재하면, 상기 하나의 싱글 팔렛트 인덱스는, 상기 디코더 측에서 0으로 추론되는 것인 비디오 데이터 블록을 코딩하는 방법.
  5. 제1항에 있어서, 상기 제1 예측 팔렛트 번호가 1이고, 상기 제2 시그널링 팔렛트 번호가 0이고, CU_level_escape_flag가 이스케이프 샘플 없음을 나타내면, 상기 현재 팔렛트 인덱스 맵은, 하나의 싱글 컬러 팔렛트 인덱스를 가지며 이스케이프 샘플을 갖지 않는 것으로 추론되는 것인 비디오 데이터 블록을 코딩하는 방법.
  6. 제5항에 있어서, 상기 하나의 싱글 컬러 팔렛트 인덱스는, 이전 팔렛트 테이블로부터 예측된 하나의 팔렛트 요소에 대응하는 것인 비디오 데이터 블록을 코딩하는 방법.
  7. 제1항에 있어서, 상기 제1 예측 팔렛트 번호가 0이고, 상기 제2 시그널링 팔렛트 번호가 1이고, CU_level_escape_flag가 이스케이프 샘플 없음을 나타내면, 상기 현재 팔렛트 인덱스 맵은, 하나의 싱글 컬러 팔렛트 인덱스를 가지며 이스케이프 샘플을 갖지 않는 것으로 추론되는 것인 비디오 데이터 블록을 코딩하는 방법.
  8. 제7항에 있어서, 상기 하나의 싱글 컬러 팔렛트 인덱스는, 상기 현재 블록에 대한 코딩 데이터를 포함하는 비트스트림에서 시그널링되는 하나의 팔렛트 요소에 대응하는 것인 비디오 데이터 블록을 코딩하는 방법.
  9. 제1항에 있어서, 상기 제1 예측 팔렛트 번호가 0이고, 상기 제2 시그널링 팔렛트 번호가 0이고, CU_level_escape_flag가 적어도 하나의 이스케이프 샘플을 나타내면, 상기 현재 블록을 위한 상기 현재 팔렛트 인덱스 맵은, 모든 이스케이프 샘플들로서 디코딩되는 것인 비디오 데이터 블록을 코딩하는 방법.
  10. 제1항에 있어서, 상기 현재 블록의 팔렛트 인덱스에 대한 최대 가능 값이 0이면, 상기 현재 블록 내에 단 하나의 싱글 팔렛트 인덱스가 존재하는 것인 비디오 데이터 블록을 코딩하는 방법.
  11. 제10항에 있어서, 상기 현재 블록의 팔렛트 인덱스에 대한 최대 가능 값이 0이면, 조절된 인덱스 맵에 대응하는 제5 구문 요소가 도출되지 않는 것인 비디오 데이터 블록을 코딩하는 방법.
  12. 제1항에 있어서, 상기 현재 블록 내에 단 하나의 싱글 팔렛트 인덱스가 존재할 때, 상기 인코더 측에서 팔렛트 런(run) 타입에 대응하는 구문 요소들, 연관된 팔렛트 인덱스, 및 팔렛트 런이 생략되는 것인 비디오 데이터 블록을 코딩하는 방법.
  13. 비디오 코딩 시스템에서의 팔렛트 코딩을 이용하여 비디오 데이터 블록을 코딩하는 장치로서,
    상기 장치는 하나 이상의 전자 회로들을 포함하며,
    상기 하나 이상의 전자 회로들은,
    현재 블록과 연관된 입력 데이터를 수신하고,
    제1 예측 팔렛트 번호(first number of predicted palette)에 대응하는 제1 구문 요소, 제2 시그널링 팔렛트 번호에 대응하는 제2 구문 요소, 상기 현재 블록 내에 임의의 이스케이프(Escape) 샘플이 존재하는지 여부를 나타내는 CU_level_escape_flag에 대응하는 제3 구문 요소, 및 상기 현재 블록의 팔렛트 인덱스에 대한 최대 가능 값에 대응하는 제4 구문 요소 중 하나 또는 그 조합에 기초하여, 상기 현재 블록 내에 단 하나의 싱글 팔렛트 인덱스가 존재하는지 여부를 결정하고,
    상기 현재 블록 내에 단 하나의 싱글 팔렛트 인덱스가 존재하면, 인코더 측에서 상기 현재 블록을 위한 현재 팔렛트 인덱스 맵을 시그널링하는 것을 생략하거나, 또는 디코더 측에서 상기 현재 블록을 위한 현재 팔렛트 인덱스 맵을 디코딩하기 위한 임의의 구문을 파싱하는 것을 생략하도록 구성되는 것인 비디오 데이터 블록을 코딩하는 장치.
  14. 비디오 코딩 시스템에서의 팔렛트 코딩을 이용하여 비디오 데이터 블록을 코딩하는 방법으로서,
    상기 비디오 코딩 시스템은, 상기 비디오 데이터 블록 내에 단 하나의 싱글 팔렛트 인덱스가 존재하는지 여부를 나타내기 위한 제1 구문 요소 - 상기 제1 구문 요소는, 제1 예측 팔렛트 번호(first number of predicted palette)에 대응하는 구문 요소, 제2 시그널링 팔렛트 번호에 대응하는 구문 요소, 현재 블록 내에 임의의 이스케이프(Escape) 샘플이 존재하는지 여부를 나타내는 CU_level_escape_flag에 대응하는 구문 요소 및 상기 현재 블록의 팔렛트 인덱스에 대한 최대 가능 값에 대응하는 구문 요소 중 하나 또는 그 조합에 기초함 -, 및 상기 하나의 싱글 팔렛트 인덱스를 나타내기 위한 제2 구문 요소를 상기 제1 구문 요소가 어서트(assert)되는 경우에 통합하며,
    상기 방법은,
    상기 현재 블록과 연관된 입력 데이터를 수신하는 단계와,
    상기 현재 블록을 위한 현재 팔렛트 테이블을 시그널링하거나 파싱한 이후에, 인코더 측 또는 디코더 측에서 이스케이프 인덱스를 포함하는 상기 현재 블록의 대응하는 총 팔렛트 사이즈를 도출하는 단계와,
    상기 이스케이프 인덱스를 포함하는 상기 현재 블록의 총 팔렛트 사이즈가 1이면, 상기 인코더 측에서 현재 제1 구문 요소 및 현재 제2 구문 요소를 시그널링하는 것, 또는 상기 디코더 측에서 상기 현재 제1 구문 요소 및 상기 현재 제2 구문 요소에 대한 각각의 값들을 추론하는 것을 생략하는 단계를 포함하는 것인 비디오 데이터 블록을 코딩하는 방법.
  15. 제14항에 있어서, 상기 총 팔렛트 사이즈가 1보다 크면, 상기 인코더 측에서 상기 현재 제1 구문 요소를 시그널링하는 단계, 또는 상기 디코더 측에서 상기 현재 제1 구문 요소를 파싱하는 단계를 더 포함하는 비디오 데이터 블록을 코딩하는 방법.
  16. 제14항에 있어서, 상기 현재 제1 구문 요소가 1이면, 상기 인코더 측에서 상기 현재 제2 구문 요소를 시그널링하는 단계, 또는 상기 디코더 측에서 상기 현재 제2 구문 요소를 파싱하는 단계를 더 포함하는 비디오 데이터 블록을 코딩하는 방법.
  17. 제16항에 있어서, 상기 현재 블록의 모든 샘플들은, 상기 현재 제2 구문 요소와 동일한 하나의 현재 인덱스 값을 갖는 것으로 추론되는 것인 비디오 데이터 블록을 코딩하는 방법.
  18. 제14항에 있어서, 상기 현재 제1 구문 요소가 0이면, 상기 인코더 측에서 상기 현재 블록을 위한 현재 인덱스 맵을 시그널링하는 단계, 또는 상기 디코더 측에서 상기 현재 블록을 위한 현재 인덱스 맵을 파싱하는 단계를 더 포함하는 비디오 데이터 블록을 코딩하는 방법.
KR1020150118098A 2014-08-25 2015-08-21 이미지 및 비디오 코딩을 위한 팔렛트 인덱스 시그널링 방법 KR101730249B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201462041180P 2014-08-25 2014-08-25
US62/041,180 2014-08-25
US201562106357P 2015-01-22 2015-01-22
US62/106,357 2015-01-22
US14/805,605 2015-07-22
US14/805,605 US9544607B2 (en) 2014-08-25 2015-07-22 Method of palette index signaling for image and video coding

Publications (2)

Publication Number Publication Date
KR20160024785A KR20160024785A (ko) 2016-03-07
KR101730249B1 true KR101730249B1 (ko) 2017-04-25

Family

ID=53785464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150118098A KR101730249B1 (ko) 2014-08-25 2015-08-21 이미지 및 비디오 코딩을 위한 팔렛트 인덱스 시그널링 방법

Country Status (5)

Country Link
US (1) US9544607B2 (ko)
EP (2) EP3410709B1 (ko)
JP (1) JP6149076B2 (ko)
KR (1) KR101730249B1 (ko)
CN (1) CN105392010B (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9924175B2 (en) 2014-06-11 2018-03-20 Qualcomm Incorporated Determining application of deblocking filtering to palette coded blocks in video coding
US10136141B2 (en) * 2014-06-11 2018-11-20 Qualcomm Incorporated Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding
CN110278437B (zh) * 2014-06-20 2022-03-08 寰发股份有限公司 一种视频数据块的编码方法
US9900617B2 (en) * 2014-06-20 2018-02-20 Qualcomm Incorporated Single color palette mode in video coding
US9955157B2 (en) 2014-07-11 2018-04-24 Qualcomm Incorporated Advanced palette prediction and signaling
US9544607B2 (en) * 2014-08-25 2017-01-10 Hfi Innovation Inc. Method of palette index signaling for image and video coding
WO2016048092A1 (ko) * 2014-09-26 2016-03-31 주식회사 케이티 비디오 신호 처리 방법 및 장치
TW201626798A (zh) * 2014-10-06 2016-07-16 Vid Scale Inc 用於螢幕內容編碼之改良調色編碼
US9596479B2 (en) * 2014-10-07 2017-03-14 Hfi Innovation Inc. Method of pulse-code modulation and palette coding for video coding
US10477218B2 (en) * 2014-10-20 2019-11-12 Kt Corporation Method and apparatus for predicting and restoring a video signal using palette entry
KR102596896B1 (ko) * 2015-01-15 2023-11-01 주식회사 케이티 비디오 신호 처리 방법 및 장치
CN107211153B (zh) * 2015-01-29 2020-10-02 株式会社Kt 用于处理视频信号的方法和设备
CN111970515B (zh) * 2015-01-29 2024-03-29 株式会社Kt 对视频信号进行编解码的方法
US9942551B2 (en) * 2015-01-30 2018-04-10 Qualcomm Incorporated Palette index grouping for video coding
EP3282706A4 (en) * 2015-04-02 2019-01-30 KT Corporation METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNAL
MY183484A (en) * 2015-06-03 2021-02-20 Mediatek Inc Method and apparatus for resource sharing between intra block copy mode and inter prediction mode in video coding systems
US20170055003A1 (en) * 2015-08-20 2017-02-23 Futurewei Technologies, Inc. Context Reduction Of Palette Run Type In High Efficiency Video Coding (HEVC) Screen Content Coding (SCC)
CN112219399A (zh) * 2018-07-04 2021-01-12 阿里巴巴集团控股有限公司 视频压缩系统中基于调色板的残差编码
US10924750B2 (en) * 2019-03-01 2021-02-16 Alibaba Group Holding Limited Palette size constraint in palette mode for video compression system
CN113711604B (zh) 2019-04-20 2023-10-27 北京字节跳动网络技术有限公司 视频编解码中色度和亮度语法元素的信令
CN115567707A (zh) 2019-05-30 2023-01-03 抖音视界有限公司 色度分量的自适应环路滤波
WO2021040460A1 (ko) * 2019-08-30 2021-03-04 주식회사 케이티 비디오 신호 처리 방법 및 장치
US11451801B2 (en) * 2019-12-26 2022-09-20 Alibaba Group Holding Limited Methods for coding video data in palette mode
US11463716B2 (en) * 2021-02-25 2022-10-04 Qualcomm Incorporated Buffers for video coding in palette mode

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009524306A (ja) 2006-01-20 2009-06-25 オーセ プリンティング システムズ ゲゼルシャフト ミット ベシュレンクテル ハフツング インデクシングされたカラーマネージメントリソースを用いてドキュメントデータを生成および処理する方法、コンピュータプログラム製品および装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014107742A (ja) * 2012-11-28 2014-06-09 Toshiba Corp 画像符号化装置、画像復号装置、画像符号化方法、及び画像復号方法
US9460527B2 (en) * 2013-02-04 2016-10-04 Qualcomm Incorporated Pattern mode for frame buffer compression
US11259020B2 (en) * 2013-04-05 2022-02-22 Qualcomm Incorporated Determining palettes in palette-based video coding
US10291827B2 (en) * 2013-11-22 2019-05-14 Futurewei Technologies, Inc. Advanced screen content coding solution
US10750198B2 (en) * 2014-05-22 2020-08-18 Qualcomm Incorporated Maximum palette parameters in palette-based video coding
US10291940B2 (en) * 2014-05-23 2019-05-14 Qualcomm Incorporated Coding runs with escape in palette-based video coding
US9544607B2 (en) * 2014-08-25 2017-01-10 Hfi Innovation Inc. Method of palette index signaling for image and video coding
WO2016057323A1 (en) * 2014-10-06 2016-04-14 Huawei Technologies Co., Ltd. Improved palette mode in high efficiency video coding (hevc) screen content coding (scc)
EP3007423A1 (en) * 2014-10-06 2016-04-13 Industrial Technology Research Institute Method of color palette coding applicable to electronic device and electronic device using the same
US20160100177A1 (en) * 2014-10-06 2016-04-07 Qualcomm Incorporated Non-uniform exponential-golomb codes for palette mode coding
US9877029B2 (en) * 2014-10-07 2018-01-23 Qualcomm Incorporated Palette index binarization for palette-based video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009524306A (ja) 2006-01-20 2009-06-25 オーセ プリンティング システムズ ゲゼルシャフト ミット ベシュレンクテル ハフツング インデクシングされたカラーマネージメントリソースを用いてドキュメントデータを生成および処理する方法、コンピュータプログラム製品および装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Döne Bugdayci et al., "AHG10: Improvements on palette coding", JCTVC-Q0071, JCT-VC of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG11, 17th Meeting: Valencia, ES, 27 March - 4 April 2014*
Liwei Guo et al., "Evaluation of Palette Mode Coding on HM-12.0+RExt-4.1", JCTVC-O0218, JCT-VC of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG11, 15th Meeting: Geneva, CH, 23 Oct. - 1 Nov. 2013
Liwei Guo et al., "RCE3: Results of Test 3.1 on Palette Mode for Screen Content Coding", JCTVC-N0247, JCT-VC of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG11, 14th Meeting: Vienna, AT, 25 July - 2 Aug

Also Published As

Publication number Publication date
EP3410709B1 (en) 2019-12-25
EP3410709A1 (en) 2018-12-05
CN105392010B (zh) 2018-10-12
CN105392010A (zh) 2016-03-09
KR20160024785A (ko) 2016-03-07
US9544607B2 (en) 2017-01-10
US20160057434A1 (en) 2016-02-25
JP6149076B2 (ja) 2017-06-14
EP2991349A1 (en) 2016-03-02
EP2991349B1 (en) 2018-09-19
JP2016046814A (ja) 2016-04-04

Similar Documents

Publication Publication Date Title
KR101730249B1 (ko) 이미지 및 비디오 코딩을 위한 팔렛트 인덱스 시그널링 방법
US20200336765A1 (en) Method and apparatus for syntax redundancy removal in palette coding
CA2948683C (en) Methods for palette size signaling and conditional palette escape flag signaling
KR101962458B1 (ko) 인덱스 맵 부호화의 예측자로서 이스케이프 픽셀을 취급하는 방법
KR101943805B1 (ko) 비디오 코딩에서의 신택스에 대한 이진화 및 컨텍스트 적응 코딩의 방법 및 장치
KR101982829B1 (ko) 팔레트 테이블 예측 및 시그널링을 위한 방법과 장치
CN110278437A (zh) 用于视频编码的调色板预测器信令的方法
KR102152239B1 (ko) 비디오 및 이미지 압축에서의 인덱스 맵 코딩을 위한 방법 및 장치
WO2016044974A1 (en) Palette table signalling

Legal Events

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