KR101737221B1 - 비디오 코딩을 위한 펄스-코드 변조 및 팔레트 코딩 방법 - Google Patents
비디오 코딩을 위한 펄스-코드 변조 및 팔레트 코딩 방법 Download PDFInfo
- Publication number
- KR101737221B1 KR101737221B1 KR1020150138227A KR20150138227A KR101737221B1 KR 101737221 B1 KR101737221 B1 KR 101737221B1 KR 1020150138227 A KR1020150138227 A KR 1020150138227A KR 20150138227 A KR20150138227 A KR 20150138227A KR 101737221 B1 KR101737221 B1 KR 101737221B1
- Authority
- KR
- South Korea
- Prior art keywords
- palette
- current
- size
- coding
- flag
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/64—Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
- H04N1/644—Systems 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/182—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/93—Run-length coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/94—Vector quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
비디오 코딩에서 팔레트 코딩을 이용하여 비디오 데이터의 블록을 코딩하는 방법이 개시된다. 일 실시형태에 따르면, 팔레트 전치 플래그는 최대 인덱스 값 또는 팔레트 크기에 따라 조건부로 시그널링된다. 만일 최대 인덱스 값 또는 팔레트 크기가 문턱 크기 이상이면, 팔레트 전치 플래그가 인코더 측에서 시그널링되거나 디코더 측에서 파싱된다. 그렇지 않으면, 팔레트 전치 플래그는 시그널링되거나 파싱되지 않는다. 다른 실시형태에 있어서, 최종 팔레트 및 최종 팔레트 크기는 조건부로 현재 팔레트 크기를 가진 현재 팔레트에 의해 갱신된다. 예를 들면, 현재 팔레트 크기를 가진 현재 팔레트에 의한 최종 팔레트 및 최종 팔레트 크기의 갱신은 만일 현재 코딩 유닛이 펄스-코드 변조(PCM) 모드를 이용하여 코딩되거나 또는 현재 팔레트 크기가 0이면 스킵된다.
Description
관련 출원에 대한 교차 참조
본 출원은 2014년 10월 7일자 출원한 미국 가특허 출원 제62/060,810호를 우선권 주장한다. 상기 미국 가특허 출원은 인용에 의해 그 전부가 본 명세서에 통합된다.
발명의 분야
본 발명은 비디오 데이터에 대한 펄스-코드 변조(Pulse-Code Modulation, PCM) 및 팔레트 코딩(palette coding)에 관한 것이다. 특히, 본 발명은 팔레트 크기가 제로와 같은 경우 또는 모든 픽셀이 팔레트 코딩 블록(예를 들면, 코딩 유닛(coding unit, CU)) 내에서 이스케이프 픽셀인 경우와 연관된 팔레트 시그널링의 용장성을 극복하는 효율적인 코딩 방법에 관한 것이다.
고효율 비디오 코딩(High Efficiency Video Coding, HEVC)은 최근에 개발된 새로운 코딩 표준이다. 고효율 비디오 코딩(HEVC) 시스템에서는 H.264/AVC의 고정 크기 매크로블록이 코딩 유닛(CU)이라고 부르는 플렉시블 블록으로 교체된다. CU 내의 픽셀들은 코딩 효율을 개선하기 위해 동일한 코딩 파라미터를 공유한다. CU는 가장 큰 CU(LCU)로 시작할 수 있고, 이것은 HEVC에서 코딩 트리 유닛(CTU)이라고 또한 부른다. 코딩 유닛의 개념 외에, 예측 유닛(PU)의 개념이 HEVC에 또한 도입된다. CU 계층 트리의 분할이 행하여지면, 각각의 잎(leaf) CU는 예측 유형 및 PU 파티션에 따라 하나 이상의 예측 유닛(PU)으로 더욱 분할된다. 스크린 콘텐트 코딩을 위한 몇 가지 코딩 툴이 개발되어 있다. 본 발명과 관련된 팔레트 코딩 툴에 대하여 이하에서 간단히 검토한다.
팔레트 코딩의 경우, 팔레트는 주어진 비디오 블록(예를 들면, CU)을 제한된 수의 값으로 표시하기 위해 사용된다. 팔레트 코딩을 위해 사용하는 주요 컴포넌트는 다음과 같다.
1. 팔레트 테이블. 팔레트 테이블은 팔레트 내의 각 팔레트 색을 팔레트 인덱스에 맵하기 위해 사용된다.
2. 색 인덱스 맵. 규정된 팔레트 테이블에 의해, 현재 블록 내의 각 픽셀 값이 인덱스에 맵된다. 블록의 맵된 인덱스는 색 인덱스 맵이라고 부른다. 색 인덱스 맵은 인덱스 맵이라고도 부른다.
3. 팔레트 예측자. 디코더가 팔레트 인덱스로부터 픽셀 값을 재구성할 수 있게 하기 위해, 팔레트 테이블이 디코더에 시그널링되어야 한다. 팔레트 테이블을 시그널링하기 위해 필요한 데이터를 줄이기 위해, 예측 코딩가 팔레트 테이블에 적용된다. 특히, 이전의 팔레트 테이블은 현재 블록의 팔레트를 예측하기 위해 사용되거나 현재 블록에 의해 공유된다.
디코딩 및 파싱(parsing) 처리에 대하여 이하에서 간단히 설명한다. 팔레트 인덱스로부터 픽셀 값들을 재구성할 수 있기 전에, 팔레트 테이블을 재구성하여야 한다. 인코더 측에서 팔레트 테이블에 대한 시그널링 처리를 이하에서 설명한다.
1. '팔레트 공유 플래그'를 먼저 시그널링한다. 팔레트 공유 플래그는 현재 블록이 이전 코딩 블록으로부터의 팔레트를 공유하는지를 표시한다. 팔레트 공유 플래그가 1과 같으면, 현재 블록은 이전 코딩 블록의 팔레트를 공유한다. 다시 말해서, 팔레트 예측자는 이 경우에 현재 팔레트로서 사용된다. 만일 팔레트 공유 플래그가 0과 같으면, 이것은 팔레트가 공유되지 않는다는 것을 표시한다. 현재 블록에 대한 팔레트는 단계 2에서 설명하는 것처럼 시그널링되어야 하고, 이때 현재 팔레트는 이전 팔레트에 기초하여 예측적으로 코딩된다.
2. 현재 블록에 대한 팔레트는 예측자로서 이전 팔레트를 이용하여 예측된다. 현재 팔레트에 대한 코딩 정보를 이하에서 설명한다.
a. '재사용 플래그'를 시그널링한다. 재사용 플래그는 팔레트 예측자의 요소들이 현재 팔레트에서 사용되는지를 표시하고, 이때 "1"은 "재사용"을 표시하고 "0"은 "재사용되지 않음"을 표시한다. 재사용 플래그는 팔레트 예측자에서 재사용된 이들 요소들을 식별할 수 있다.
b. '비예측 요소의 수'를 시그널링한다. 현재 팔레트의 비예측 요소들을 위하여, 요소들이 시그널링되어야 한다. 비예측 요소들의 수는 시그널링되는 현재 팔레트 내 요소들의 총 수를 표시한다.
c. 각각의 비예측 요소의 값을 시그널링한다. 비예측 요소들의 수가 시그널링된 후에 상기 비예측 요소의 값이 시그널링된다.
비록 전술한 절차가 현재 팔레트에 대한 팔레트의 시그널링을 설명하지만, 디코더는 그에 따라서 팔레트를 재구성할 수 있다.
팔레트가 시그널링된 후, 색 인덱스 맵이 다음과 같이 시그널링될 수 있다. 먼저 블록(즉, 색 인덱스 맵)의 인덱스가 수평 라스터 주사순(scan order), 수직 라스터순, 수평 횡단 주사순 또는 수직 횡단순에 따라 처리된다. 주사순 내의 인덱스들이 그 다음에 런렝쓰 코딩되고, 주사순 내의 인덱스들의 각 위치에 대하여 예측 모드를 '카피 어보브 모드'(copy above mode) 또는 '카피 인덱스 모드'로서 표시하기 위해 플래그가 먼저 송신된다.
1. '카피 어보브 모드(copy above mode)'. 이 런 모드(run mode)는 주사순의 현재 위치로부터 시작하는 인덱스가 연속적인 N개의 인덱스(현재 위치의 인덱스를 포함함)에 대한 것 이상의 인덱스와 동일하다는 것을 표시한다. N은 '런의 수'를 말한다. '카피 어보브 모드'는 모드 플래그를 이용하여 먼저 시그널링되고, 이어서 '런의 수'가 뒤따른다.
2. '카피 인덱스 모드'("신규 런 모드"라고도 부름). 이 런 모드는 주사순의 현재 위치로부터 시작하는 인덱스가 연속적인 N개의 인덱스(현재 위치의 인덱스를 포함함)에 대한 선도하는 비-이스케이프 인덱스와 동일하다는 것을 표시한다. '카피 인덱스 모드'는 모드 플래그를 이용하여 먼저 시그널링되고, 이어서 인덱스 및 그 다음에 '런의 수'가 뒤따른다. 만일 인덱스가 이스케이프(ESCAPE)이면, '카피 인덱스 모드'가 모드 플래그를 이용하여 먼저 시그널링되고, 이어서 인덱스 및 그 다음에 픽셀 값이 뒤따른다.
도 1a-1c는 스크린 콘텐트 코딩 테스트 모델 2.0(SCM-2.0)에 따른 팔레트 인덱스 맵 및 팔레트 인덱스 맵 코딩의 예를 보인 것이다. 도 1a는 팔레트 색에 대하여 팔레트 인덱스 0~3 및 이스케이프 샘플에 대하여 팔레트 인덱스 4를 가진 팔레트 인덱스 맵을 보인 것이다. 이스케이프 샘플에 대응하는 인덱스는 이 명세서에서 이스케이프 인덱스라고도 부른다. 도 1b는 SCM-2.0에 따른 팔레트 인덱스 맵 코딩을 보인 것이고, 여기에서 "카피 인덱스 모드"는 3, 1, 2 및 6에 대응하는 "팔레트 런"을 가진 제1행의 인덱스의 4개의 그룹(110, 120, 130, 140)에 적용된다. 도 1c는 제2행에 대한 팔레트 인덱스 맵 코딩의 예를 보인 것이고, 여기에서 "카피 어보브 모드"는 8에 대응하는 런을 가진 제1 그룹의 샘플(150)에 적용되고, "카피 인덱스 모드"는 1 및 3에 대응하는 런을 가진 다음의 2개의 그룹(160, 170)에 적용된다.
기존의 팔레트 코딩에 따르면, 각각의 이스케이프 픽셀은 "카피 인덱스 모드"를 이용하여 시그널링되고, 이때 모드 플래그, 인덱스 및 픽셀 값이 송신된다. 팔레트 크기가 0과 같고 팔레트 코딩 블록(예를 들면, CU) 내의 모든 픽셀들이 이스케이프 픽셀이면, 상기 값들이 모드 플래그, 인덱스 및 픽셀 값을 이용하여 개별적으로 시그널링된다. 이 경우에, 처리는 이중화(duplication)를 도입함으로써 코딩 관점에서 효율적이지 않은 AVC 및 HEVC에서처럼 PCM(펄스-코드 변조) 모드를 이용하는 것과 대략 동일하다. 그러므로, 팔레트 모드가 인에이블될 때 용장성을 제거하고 코딩 효율을 개선하는 코딩 방법을 개발하는 것이 바람직하다. 더 나아가, 블록 내의 모든 샘플이 이스케이프 샘플인 경우에 효율적인 코딩을 개발하는 것이 바람직하다.
비디오 코딩에서 팔레트 코딩을 이용하여 비디오 데이터의 블록을 코딩하는 코딩 효율을 개선하는 방법이 개시된다. 본 발명의 일 실시형태에 따르면, 팔레트 전치 플래그(palette transpose flag)는 최대 인덱스 값 또는 팔레트 크기에 따라 조건부로 시그널링된다. 만일 최대 인덱스 값 또는 팔레트 크기가 문턱 크기 이상이면, 팔레트 전치 플래그가 인코더 측에서 시그널링되거나, 또는 팔레트 전치 플래그가 디코더 측에서 파싱된다. 그렇지 않으면, 팔레트 전치 플래그는 인코더에서 시그널링되지 않고, 또는 디코더에서 파싱되지 않는다.
상기 최대 인덱스 값 또는 팔레트 크기는 하나 이상의 다른 구문 요소에 기초하여 도출되거나 구문 테이블(syntax table)에서 명시적으로 시그널링될 수 있다. 예를 들면, 팔레트 전치 플래그는 최대 인덱스 값 또는 팔레트 크기 후의 구문 테이블의 위치에서 시그널링될 수 있다. 팔레트 크기가 도출된 때, 팔레트 크기는 이전에 사용한 팔레트에 의해 예측된 팔레트 엔트리의 수를 표시하는 구문 요소 및 시그널링된 팔레트 엔트리의 수를 표시하는 구문 요소에 기초하여 결정할 수 있다. 팔레트 크기가 도출된 때, 팔레트 크기는 팔레트 공유 플래그, 이전에 사용한 팔레트에 의해 예측된 팔레트 엔트리의 수 및 시그널링된 팔레트 엔트리의 수에 대한 구문 시그널링 후에 결정된다.
만일 팔레트 전치 플래그를 이용할 수 없으면, 팔레트 전치 플래그는 팔레트 전치 없음에 대응하는 0으로서 추론될 수 있다. 상기 문턱 크기는 0, 1 또는 2와 같을 수 있다. 만일 팔레트 크기가 0과 같으면, 최종 팔레트 및 최종 팔레트 크기는 현재 팔레트 크기를 가진 현재 팔레트에 의해 갱신되지 않는다.
다른 실시형태에 있어서, 최종 팔레트 및 최종 팔레트 크기는 조건부로 현재 팔레트 크기를 가진 현재 팔레트에 의해 갱신된다. 예를 들면, 현재 팔레트 크기를 가진 현재 팔레트에 의한 최종 팔레트 및 최종 팔레트 크기의 갱신은 만일 현재 코딩 유닛이 펄스-코드 변조(PCM) 모드를 이용하여 코딩되거나 또는 현재 팔레트 크기가 0이면 스킵된다.
또 다른 실시형태에 있어서, 만일 팔레트 크기가 0과 같으면, 현재 코딩 유닛은 펄스-코드 변조(PCM) 모드를 이용하여 코딩된다. 이 경우에, 인트라 코딩된 코딩 유닛에 대응하는 펄스-코드 변조(PCM) 모드와 연관된 모든 구문 요소는 생략된다.
또 다른 실시형태에 있어서, 팔레트 공유 플래그의 시그널링 또는 파싱은 팔레트 크기에 따른다. 예를 들면, 공유 플래그는 현재 팔레트 크기가 이전 팔레트 크기 이상인 경우에 시그널링 또는 파싱된다. 만일 팔레트 공유 플래그를 이용할 수 없으면, 팔레트 공유 플래그는 팔레트 공유 없음에 대응하는 0으로서 추론될 수 있다.
또 다른 실시형태에 있어서, 팔레트 전치 플래그는 팔레트 공유 플래그가 팔레트 공유 없음을 표시하는 경우에만 인코더 측에서 시그널링되거나 디코더 측에서 파싱된다. 만일 팔레트 공유 플래그를 이용할 수 없으면, 팔레트 공유 플래그는 팔레트 공유 없음에 대응하는 0으로서 추론될 수 있다.
도 1a-1c는 스크린 콘텐트 코딩 테스트 모델 2.0(SCM-2.0)에 따른 팔레트 인덱스 맵 및 팔레트 인덱스 맵 코딩의 예를 보인 도이다.
도 2는 팔레트 전치 플래그가 최대 인덱스 값 또는 팔레트 크기에 따라 조건부로 시그널링되는, 본 발명의 실시형태에 따른 팔레트 코딩의 코딩 효율을 개선하는 코딩 시스템의 예시적인 흐름도이다.
도 3은 최종 팔레트 및 최종 팔레트 크기가 조건부로 현재 팔레트 크기를 가진 현재 팔레트에 의해 갱신되는, 본 발명의 실시형태에 따른 팔레트 코딩의 코딩 효율을 개선하는 코딩 시스템의 예시적인 흐름도이다.
도 2는 팔레트 전치 플래그가 최대 인덱스 값 또는 팔레트 크기에 따라 조건부로 시그널링되는, 본 발명의 실시형태에 따른 팔레트 코딩의 코딩 효율을 개선하는 코딩 시스템의 예시적인 흐름도이다.
도 3은 최종 팔레트 및 최종 팔레트 크기가 조건부로 현재 팔레트 크기를 가진 현재 팔레트에 의해 갱신되는, 본 발명의 실시형태에 따른 팔레트 코딩의 코딩 효율을 개선하는 코딩 시스템의 예시적인 흐름도이다.
이하의 설명은 발명을 실시하는 최상의 예상 모드에 대한 것이다. 이 설명은 발명의 일반적인 원리를 설명하기 위한 것이고, 제한되는 개념으로 해석하여서는 안된다. 발명의 범위는 첨부된 특허 청구범위를 참조하여 최상으로 결정된다.
본 발명의 일 실시형태에 따르면, 현재 코딩 블록의 팔레트 크기가 명시적으로 시그널링된다. 그러므로, 구문 요소 "palette_size"가 팔레트 코딩 처리의 시작부에서 시그널링된다. 팔레트 코딩을 사용하고 팔레트 크기가 0과 같을 때 PCM 모드가 호출된다. 표 1은 본 발명의 실시형태를 통합한 예시적인 palette_coding() 구문 설계를 보인 것이다. 주해(note) (1.a)로 표시된 것처럼, palette_size의 구문 요소는 palette_coding() 구문의 시작부에 위치된다. 팔레트 크기는 주해 (1.b)에 표시된 것처럼 팔레트 크기가 0인지 결정하기 위해 체크된다. 만일 팔레트 크기가 0이면, 주해 (1.c) 내지 주해 (1.e)의 구문 라인은 현재 블록에 대한 PCM 정보를 신호하도록 포함된다.
palette_coding( x0, y0, nCbS ) { | 주해 |
palette_size | (1.a) |
if( palette_size == 0 ) { /* PCM */ | (1.b) |
while( !byte_aligned( ) ) | (1.c) |
pcm_alignment_zero_bit | (1.d) |
pcm_sample( x0, y0, log2CbSize ) | (1.e) |
} | |
... | |
} |
표 2는 기존 표준에 따른 coding_unit() 구문 테이블을 보인 것이고, 여기에서는 관련 구문 라인이 리스트되고 주해 (2.a) 내지 (2.k)로서 표시되어 있다. 이 구문 라인은 인트라 CU에 대한 PCM 모드와 관련된다. 이스케이프 샘플에 대한 팔레트 코딩가 PCM 모드와 등가이기 때문에, 다른 PCM 모드는 필요 없다. 그러므로, 본 발명의 일 실시형태에 따르면, 인트라 CU에 대하여 주해 (2.a) 내지 (2.k)로서 표시된 것처럼 PCM 모드와 연관된 구문 라인들이 제거될 수 있다.
coding_unit( x0, y0, log2CbSize ) { | 주해 |
... | |
if( CuPredMode[ x0 ][ y0 ] = = MODE_INTRA && !intra_bc_flag[x0][y0] ) { | (2.a) |
if( PartMode = = PART_2Nx2N && pcm_enabled_flag && log2CbSize >= Log2MinIpcmCbSizeY && log2CbSize <= Log2MaxIpcmCbSizeY ) |
(2.b) |
pcm_flag[ x0 ][ y0 ] | (2.c) |
if( pcm_flag[ x0 ][ y0 ] ) { | (2.d) |
while( !byte_aligned( ) ) | (2.e) |
pcm_alignment_zero_bit | (2.f) |
pcm_sample( x0, y0, log2CbSize ) | (2.g) |
} else { | (2.h) |
... | |
} | (2.i) |
if( !pcm_flag[ x0 ][ y0 ] ) { | (2.j) |
... | |
} | (2.k) |
... |
일 실시형태에 있어서, 팔레트가 전치되는지를 특정하기 위한 구문 플래그 "palette_transpose_flag"의 시그널링은 팔레트 크기가 양의 정수, palette_transpose_min_size보다 적은 경우에 삭제될 수 있다. 예를 들면, 이 양의 정수는 1 또는 2와 동일할 수 있다. 시그널링되지 않을 경우, "palette_transpose_flag"는 0(즉, OFF)으로 추론된다. 다시 말해서, 팔레트는 이 경우에 전치되지 않을 것이다. 표 3은 본 발명의 실시형태를 통합한 palette_coding()의 예시적인 구문 설계를 보인 것이다. 팔레트 크기가 주해 (3.a)에 표시된 것처럼 팔레트 전치를 통합하기 위한 최소 크기(즉, palette_transpose_min_size)보다 더 큰 때, 구문 요소 palette_transpose_flag는 주해 (3.b)로 표시된 것처럼 통합된다.
palette_coding( x0, y0, nCbS ) { | 주해 |
... | |
if (palette_size > palette_transpose_min_size) | (3.a) |
palette_transpose_flag | (3.b) |
... | |
} |
다른 실시형태에 있어서, 현재 코딩 블록의 팔레트가 이전에 사용한 팔레트로부터 공유되는지를 특정하기 위한 구문 플래그 "palette_share_flag"의 시그널링은 현재 팔레트 크기가 이전 팔레트 크기보다 작은 경우에 삭제될 수 있다. 구문 플래그가 시그널링되지 않은 경우, "palette_share_flag"는 0(즉, OFF)으로 추론된다. 표 4는 본 발명의 실시형태를 통합한 palette_coding()의 예시적인 구문 설계를 보인 것이다. 팔레트 크기가 주해 (4.a)에 표시된 것처럼 팔레트 공유를 허용하기 위한 이전 팔레트 크기(즉, previousPaletteSize)와 같거나 그보다 더 큰 때, 구문 요소 palette_share_flag는 주해 (4.b)로 표시된 것처럼 통합된다.
palette_coding( x0, y0, nCbS ) { | 주해 |
... | |
if( palette_size >= previousPaletteSize ) | (4.a) |
palette_share_flag[ x0 ][ y0 ] | (4.b) |
... | |
} |
또 다른 실시형태에 있어서, 현재 팔레트 코딩 블록의 시그널링된 팔레트 엔트리의 수는 시그널링되지 않고, 그 대신에 현재 팔레트 코딩 블록의 시그널링된 팔레트 엔트리의 수가 다음과 같이 도출된다.
num_signalled_palette_entries = palette_size - numPredPreviousPalette
여기에서, numPredPreviousPalette는 이전 팔레트에 의해 예측된 팔레트 요소의 수에 대응한다.
다른 실시형태에 있어서, palette_transpose_flag는 palette_share_flag의 시그널링 후에 시그널링된다. 더 나아가, palette_transpose_flag는 palette_share_flag가 0인 때(즉, 팔레트 공유가 OFF인 때) 시그널링된다. 또한, 현재 팔레트 코딩된 코딩 블록의 팔레트가 이전 팔레트와 공유하는 경우, 주사 모드 또는 방향은, 이들이 이전 주사 모드 또는 방향으로부터 물려받기 때문에, 시그널링되지 않을 것이다.
PCM이 호출되거나 또는 palette_size가 0과 같을 때, 최종의 코딩 팔레트 테이블 및 최종의 코딩 팔레트 크기의 갱신은 팔레트 테이블 갱신이 무의미하기 때문에 스킵될 수 있다. 표 5는 본 발명의 실시형태를 통합한 예시적인 palette_coding() 구문 설계를 보인 것이다. 주해 (5.b)와 주해 (5.c) 사이에 표시된 팔레트 테이블 갱신 처리는 주해 (5.a)로 표시된 것처럼 팔레트 크기가 0보다 큰 경우(즉, palette_size > 0)에만 수행된다.
palette_coding( x0, y0, nCbS ) { | 주해 |
... | |
if (palette_size > 0) { | (5.a) |
previousPaletteSize = palette_size | (5.b) |
current_size = palette_size | |
for( i = 0; i < palette_size; i++ ) | |
... | |
if( previous_palette_entry_flag[ i ] = = 0 ) { | |
... | |
tempPaletteEntries[ cIdx ][ current_size] = previousPaletteEntries[cIdx][i] | |
current_size++ | |
} | |
previousPaletteStuffingSize = current_size | |
previousPaletteEntries = tempPaletteEntries | (5.c) |
} | |
} |
본 발명의 다른 실시형태에 있어서, palette_size는 명시적으로 시그널링되지 않는다. 그 대신에, palette_size는 표 6에 나타낸 것처럼 palette_share_flag, previous_palette_entry_flag, 및 num_signalled_palette_entries의 구문 시그널링 후에 도출된다. 표 6에 나타낸 것처럼, 만일 팔레트 공유 플래그(즉, palette_share_flag)가 주해 (6.a)로 나타낸 바와 같이 팔레트가 이전 팔레트로부터 공유된다고 표시하면, 팔레트 크기는 주해 (6.b)로 나타낸 바와 같이 이전 팔레트 크기로서 도출된다(palette_size = previousPaletteSize). 만일 팔레트가 공유되지 않으면, 팔레트 크기는 주해 (6.e)로 나타낸 바와 같이 palette_size = numPredPreviousPalette + num_signalled_palette_entries로서 도출된다. 이 도출된 palette_size의 위치는 주해 (6.c)로 나타낸 바와 같이 previous_palette_entry_flag 및 주해 (6.d)로 나타낸 바와 같이num_signalled_palette_entries의 뒤이다. palette_size가 0과 같을 때 PCM 모드가 호출된다. palette_escape_val_present_flag의 시그널링은 만일 PCM 모드가 호출되면 스킵될 수 있다. 표 7은 본 발명의 실시형태를 통합한 예시적인 팔레트 코딩 구문 테이블을 보인 것이다. 표 7의 주해 (7.a) 내지 주해 (7.b)의 구문 라인은 현재 블록에 대한 PCM 시그널링에 대응한다. 또한, palette_escape_val_present_flag는 주해 (7.c)로 나타낸 바와 같이 팔레트 크기가 0보다 더 큰 경우에만 시그널링된다. 인트라 모드와 연관된 PCM 모드 및 그 시그널링은 표 2에 나타낸 것처럼 생략될 수 있다.
palette_coding( x0, y0, nCbS ) { | 주해 |
... | |
palette_share_flag[ x0 ][ y0 ] | |
if( palette_share_flag[ x0 ][ y0 ] ) { | (6.a) |
palette_size = previousPaletteSize | (6.b) |
... | |
} else { | |
... | |
for( i = 0; i < previousPaletteStuffingSize && !palette_last_group && numPredPreviousPalette < max_palette_size; i++ ) { |
|
... | |
if( palette_all_zeros_in_group ) | |
i += 4 | |
else { | |
... | |
for( idx = i; idx <= lastIdx && numPredPreviousPalette < max_palette_size; idx++ ) { |
|
if ( idx = = lastIdx && numOnesInGroup == 0 ) | |
previous_palette_entry_flag[ idx ] = 1 | |
else | |
previous_palette_entry_flag[ idx ] | (6.c) |
if ( previous_palette_entry_flag[ idx ] ) { | |
... | |
} | |
} | |
... | |
} | |
} | |
if( numPredPreviousPalette < max_palette_size) | |
num_signalled_palette_entries | (6.d) |
for( cIdx = 0; cIdx < 3; cIdx++ ) | |
for( i = 0; i < num_signalled_palette_entries; i++ ) | |
palette_entries[ cIdx ][ numPredPreviousPalette + i ] | |
palette_size = numPredPreviousPalette + num_signalled_palette_entries | (6.e) |
} | |
... | |
} |
palette_coding( x0, y0, nCbS ) { | 주해 |
... | |
if( palette_size == 0 ) { /* PCM */ | (7.a) |
while( !byte_aligned( ) ) | |
pcm_alignment_zero_bit | |
pcm_sample( x0, y0, log2CbSize ) | |
} | (7.b) |
else { /* if( palette_size > 0 ) */ | |
palette_escape_val_present_flag | (7.c) |
... | |
} |
구문 플래그 "palette_transpose_flag"의 시그널링은 palette_size 또는 indexMax가 양의 정수, palette_transpose_min_size와 같거나 그보다 큰 경우에만 또한 송신될 수 있다. 예를 들면, 양의 정수는 1, 2 또는 0일 수 있다. palette_transpose_flag가 시그널링되지 않을 경우, "palette_transpose_flag"는 0(즉, OFF)으로 추론되고, 이것은 팔레트가 전치되지 않을 것임을 암시한다. 표 8은 본 발명의 실시형태를 통합한 예시적인 팔레트 코딩 구문 테이블을 보인 것이다. 구문 요소 indexMax는 현재 블록의 최대 팔레트 인덱스에 대응하고, indexMax는 팔레트 크기와 관계된다. 만일 현재 블록이 주해 (8.a)로 나타낸 바와 같이 임의의 이스케이프 샘플을 갖고 있으면, indexMax는 주해 (8.b)로 나타낸 바와 같이 팔레트 크기와 동일하다. 만일 현재 블록이 이스케이프 샘플을 갖고 있지 않으면, indexMax는 주해 (8.c)로 나타낸 바와 같이 (팔레트 크기 - 1)과 동일하다. palette_size 또는 indexMax가 주해 (8.d)로 나타낸 바와 같이 양의 정수와 같거나 그보다 큰 경우, 주해 (8.e)로 나타낸 바와 같이 palette_transpose_flag가 시그널링된다. PCM이 호출되거나 palette_size가 0과 같을 때, 최종 코딩 팔레트 테이블 및 최종 코딩 팔레트 크기의 갱신은 표 5에 나타낸 바와 같이 무의미한 데이터를 갱신하지 않기 위해 스킵될 수 있다.
palette_coding( x0, y0, nCbS ) { | 주해 |
... | |
palette_escape_val_present_flag | |
if( palette_escape_val_present_flag ) | (8.a) |
indexMax = palette_size | (8.b) |
else | |
indexMax = palette_size - 1 | (8.c) |
if (palette_size >= palette_transpose_min_size) or if (indexMax >= palette_transpose_min_size) |
(8.d) |
palette_transpose_flag | (8.e) |
... | |
... | |
} |
구문 플래그 "palette_transpose_flag"의 시그널링은 palette_size 또는 indexMax가 양의 정수 palette_transpose_min_size와 같거나 그보다 더 큰지 여부에 따라서 조건부로 송신될 수 있다. 구문 플래그 "palette_transpose_flag"의 위치는 palette_size가 결정된 위치 뒤로 이동된다. 양의 정수는 1, 2 또는 0과 동일할 수 있다. 구문 플래그 "palette_transpose_flag"가 시그널링되지 않을 경우, "palette_transpose_flag"는 0(즉, OFF)으로 추론된다. 다시 말해서, 팔레트는 전치되지 않을 것이다.
palette_size가 0과 같을 때, 최종 코딩 팔레트 테이블 및 최종 코딩 팔레트 크기의 갱신은 표 5에 나타낸 바와 같이 무의미한 데이터를 갱신하지 않기 위해 스킵될 수 있다.
도 2는 팔레트 전치 플래그가 최대 인덱스 값 또는 팔레트 크기에 따라 조건부로 시그널링되는, 본 발명의 실시형태에 따른 팔레트 코딩의 코딩 효율을 개선하는 코딩 시스템의 예시적인 흐름도이다. 시스템은 단계 210에서 현재 코딩 유닛과 연관된 입력 데이터를 수신한다. 인코딩을 위해, 상기 현재 코딩 유닛과 연관된 입력 데이터는 코딩될 현재 코딩 유닛의 비디오 샘플에 대응한다. 디코딩을 위해, 상기 현재 코딩 유닛과 연관된 입력 데이터는 현재 코딩 유닛과 연관된 코딩 데이터에 대응한다. 상기 현재 코딩 유닛과 연관된 입력 데이터는 메모리(예를 들면, 컴퓨터 메모리, 버퍼(RAM 또는 DRAM) 또는 다른 매체)로부터 또는 프로세서로부터 검색될 수 있다. 현재 팔레트에 대한 최대 인덱스 값 또는 팔레트 크기는 단계 220에서 결정된다. 상기 최대 인덱스 값 또는 팔레트 크기는 문턱 크기 이상이고, 팔레트 전치 플래그는 단계 230에서 인코더 측에서 시그널링되거나 디코더 측에서 파싱된다. 그 다음에, 현재 코딩 유닛은 단계 240에서 현재 팔레트에 따른 팔레트 코딩을 이용하여 인코딩 또는 디코딩되고, 이때 현재 팔레트가 전치되는지 여부는 팔레트 전송 플래그에 의해 표시된다.
도 3은 최종 팔레트 및 최종 팔레트 크기가 조건부로 현재 팔레트 크기를 가진 현재 팔레트에 의해 갱신되는, 본 발명의 실시형태에 따른 팔레트 코딩의 코딩 효율을 개선하는 코딩 시스템의 예시적인 흐름도이다. 시스템은 단계 310에서 현재 코딩 유닛과 연관된 입력 데이터를 수신한다. 인코딩을 위해, 상기 현재 코딩 유닛과 연관된 입력 데이터는 코딩될 현재 코딩 유닛의 비디오 샘플에 대응한다. 디코딩을 위해, 상기 현재 코딩 유닛과 연관된 입력 데이터는 현재 코딩 유닛과 연관된 코딩 데이터에 대응한다. 상기 현재 코딩 유닛과 연관된 입력 데이터는 메모리(예를 들면, 컴퓨터 메모리, 버퍼(RAM 또는 DRAM) 또는 다른 매체)로부터 또는 프로세서로부터 검색될 수 있다. 그 다음에, 현재 코딩 유닛은 단계 320에서 현재 팔레트 크기를 가진 현재 팔레트에 따른 팔레트 코딩을 이용하여 인코딩 또는 디코딩된다. 최종 팔레트 및 최종 팔레트 크기는 단계 330에서 조건부로 현재 팔레트 크기를 가진 현재 팔레트에 의해 갱신된다. 최종 팔레트 및 최종 팔레트 크기는 단계 340에서 다음 코딩 유닛의 팔레트 인코딩 또는 팔레트 디코딩에 적용된다.
전술한 흐름도는 본 발명의 실시형태를 설명하기 위한 예로서 소용되는 것으로 의도된다. 이 기술에 숙련된 사람이라면 본 발명의 정신으로부터 벗어나지 않고 개별 단계들을 수정하거나 단계들을 분할 또는 결합함으로써 본 발명을 실시할 수 있을 것이다.
전술한 설명은 이 기술에 통상의 지식을 가진 사람이 특수 응용 및 그 필요조건과 관련하여 제공된 것처럼 본 발명을 실시할 수 있도록 하기 위해 제시된다. 이 기술에 숙련된 사람이라면 전술한 실시형태에 대한 각종 수정이 가능할 것이고, 여기에서 규정하는 일반적인 원리는 다른 실시형태에도 적용될 수 있다. 그러므로, 본 발명은 여기에서 도시하고 설명한 특정 실시형태로 제한되지 않고, 여기에서 설명한 원리 및 신규 특징과 일치하는 최광의의 범위로 해석되어야 한다. 전술한 상세한 설명에 있어서, 각종의 특정 세부는 본 발명의 완전한 이해를 제공하기 위해 예시된 것이다. 그럼에도 불구하고, 본 발명이 실시될 수 있다는 것을 이 기술에 숙련된 사람이라면 이해할 것이다.
전술한 바와 같은 본 발명의 실시형태는 각종의 하드웨어, 소프트웨어 코드 또는 이들의 조합으로 구현될 수 있다. 예를 들면, 본 발명의 실시형태는 여기에서 설명한 처리를 수행하도록 비디오 압축 칩에 집적된 하나 이상의 전자 회로 또는 비디오 압축 소프트웨어에 통합된 프로그램 코드일 수 있다. 본 발명의 실시형태는 또한 여기에서 설명한 처리를 수행하도록 디지털 신호 프로세서(DSP)에서 실행되는 프로그램 코드일 수 있다. 본 발명은 컴퓨터 프로세서, 디지털 신호 프로세서, 마이크로프로세서 또는 현장 프로그램가능 게이트 어레이(FPGA)에 의해 수행되는 다수의 기능을 또한 수반할 수 있다. 이러한 프로세서들은 본 발명에 의해 구현되는 특수 방법들을 규정하는 기계 판독가능 소프트웨어 코드 또는 펌웨어 코드를 실행함으로써, 본 발명에 따른 특정 태스크를 수행하도록 구성될 수 있다. 상기 소프트웨어 코드 또는 펌웨어 코드는 상이한 프로그래밍 언어 및 상이한 포맷 또는 스타일로 개발될 수 있다. 상기 소프트웨어 코드는 다른 타겟 플랫폼용으로 또한 컴파일될 수 있다. 그러나, 소프트웨어 코드의 다른 코드 포맷, 스타일 및 언어, 및 본 발명에 따른 태스크를 수행하도록 코드를 구성하는 다른 수단은 본 발명의 정신 및 범위로부터 벗어나지 않을 것이다.
본 발명은 그 정신 또는 본질적 특성으로부터 벗어나지 않고 다른 특정 형태로 구현될 수 있다. 전술한 예들은 모든 점에서 예시하는 것이지 제한하는 것이 아닌 것으로 생각하여야 한다. 그러므로, 본 발명의 범위는 전술한 상세한 설명보다는 첨부된 특허 청구범위에 의해 규정된다. 특허 청구범위의 균등물의 수단 및 범위 내에 있는 모든 변화들은 본 발명의 범위 내에 포함되어야 한다.
Claims (17)
- 비디오 코딩 시스템을 위한 팔레트 코딩을 이용하여 비디오 데이터의 블록을 코딩하는 방법에 있어서,
현재 코딩 유닛과 연관된 입력 데이터를 수신하는 단계;
현재 팔레트를 위한 최대 인덱스 값 또는 팔레트 크기를 결정하는 단계;
상기 최대 인덱스 값 또는 상기 팔레트 크기가 문턱 크기 이상인 경우, 인코더 측에서 팔레트 전치 플래그를 시그널링하거나 또는 디코더 측에서 상기 팔레트 전치 플래그를 파싱하는 단계; 및
상기 현재 팔레트에 따른 팔레트 코딩을 이용하여 상기 현재 코딩 유닛을 인코딩 또는 디코딩하는 단계
를 포함하고,
상기 현재 팔레트가 전치되는지 여부는 상기 팔레트 전치 플래그에 의해 표시되는 것인, 비디오 데이터의 블록을 코딩하는 방법. - 제1항에 있어서, 상기 최대 인덱스 값 또는 상기 팔레트 크기는 하나 이상의 다른 구문 요소(syntax element)에 기초하여 도출되거나, 구문 테이블에서 명시적으로 시그널링되는 것인, 비디오 데이터의 블록을 코딩하는 방법.
- 제2항에 있어서, 상기 팔레트 전치 플래그는 상기 최대 인덱스 값 또는 상기 팔레트 크기 후의 구문 테이블의 위치에서 시그널링되는 것인, 비디오 데이터의 블록을 코딩하는 방법.
- 제2항에 있어서, 상기 팔레트 크기가 도출된 때, 상기 팔레트 크기는, 이전에 사용한 팔레트에 의해 예측된 팔레트 엔트리들의 제1 갯수에 대응하는 제1 구문 요소 및 시그널링된 팔레트 엔트리들의 제2 갯수에 대응하는 제2 구문 요소에 기초하여 결정되는 것인, 비디오 데이터의 블록을 코딩하는 방법.
- 제2항에 있어서, 상기 팔레트 크기가 도출된 때, 상기 팔레트 크기는, 팔레트 공유 플래그, 이전에 사용한 팔레트에 의해 예측된 팔레트 엔트리들의 제1 갯수 및 시그널링된 팔레트 엔트리들의 제2 갯수를 위한 구문 시그널링 후에 결정되는 것인 비디오 데이터의 블록을 코딩하는 방법.
- 제1항에 있어서, 상기 팔레트 전치 플래그를 이용할 수 없는 경우, 상기 팔레트 전치 플래그는 팔레트 전치 없음에 대응하는 0으로서 추론되는 것인, 비디오 데이터의 블록을 코딩하는 방법.
- 제1항에 있어서, 상기 문턱 크기는 0, 1 또는 2와 같은 것인, 비디오 데이터의 블록을 코딩하는 방법.
- 제1항에 있어서, 상기 팔레트 크기가 0인 경우, 최종 팔레트 및 최종 팔레트 크기는 현재 팔레트 크기를 가진 상기 현재 팔레트에 의해 갱신되지 않는 것인, 비디오 데이터의 블록을 코딩하는 방법.
- 비디오 코딩 시스템을 위한 팔레트 코딩을 이용하여 비디오 데이터의 블록을 코딩하는 방법에 있어서,
현재 코딩 유닛과 연관된 입력 데이터를 수신하는 단계;
현재 팔레트 크기를 가진 현재 팔레트에 따른 팔레트 코딩을 이용하여 상기 현재 코딩 유닛을 인코딩 또는 디코딩하는 단계;
최종 팔레트 및 최종 팔레트 크기를, 조건부로 상기 현재 팔레트 크기를 가진 상기 현재 팔레트에 의해 갱신하는 단계; 및
상기 최종 팔레트 및 상기 최종 팔레트 크기를 다음 코딩 유닛의 팔레트 인코딩 또는 팔레트 디코딩에 적용하는 단계
를 포함한, 비디오 데이터의 블록을 코딩하는 방법. - 제9항에 있어서, 상기 최종 팔레트 및 최종 팔레트 크기를 현재 팔레트 크기를 가진 현재 팔레트에 의해 갱신하는 단계는, 상기 현재 코딩 유닛이 펄스-코드 변조(pulse-coded modulation; PCM) 모드를 이용하여 코딩되거나 현재 팔레트 크기가 0인 경우, 스킵되는 것인, 비디오 데이터의 블록을 코딩하는 방법.
- 비디오 코딩 시스템을 위한 팔레트 코딩을 이용하여 비디오 데이터의 블록을 코딩하는 방법에 있어서,
현재 코딩 유닛과 연관된 입력 데이터를 수신하는 단계;
현재 팔레트의 팔레트 크기를 결정하는 단계;
상기 팔레트 크기가 0인 경우, 펄스-코드 변조(pulse-coded modulation; PCM) 모드를 이용하여 상기 현재 코딩 유닛을 인코딩 또는 디코딩하는 단계
를 포함한, 비디오 데이터의 블록을 코딩하는 방법. - 제11항에 있어서, 인트라 코딩된 코딩 유닛에 대응하는 펄스-코드 변조(PCM) 모드와 연관된 모든 구문 요소가 생략되는 것인, 비디오 데이터의 블록을 코딩하는 방법.
- 비디오 코딩 시스템을 위한 팔레트 코딩을 이용하여 비디오 데이터의 블록을 코딩하는 방법에 있어서,
현재 코딩 유닛과 연관된 입력 데이터를 수신하는 단계;
현재 팔레트를 위한 팔레트 크기를 결정하는 단계;
상기 팔레트 크기에 따라 팔레트 공유 플래그 - 상기 팔레트 공유 플래그는 상기 현재 코딩 유닛에 대하여 이전에 사용한 팔레트를 공유할 것인지 여부를 표시하는 것임 - 를 시그널링 또는 파싱하는 단계;
상기 팔레트 공유 플래그가 팔레트 공유를 표시하는 경우 상기 이전에 사용한 팔레트를 현재 팔레트로서 사용하고, 상기 팔레트 공유 플래그가 팔레트 공유 없음을 표시하는 경우 상기 이전에 사용한 팔레트와는 상이한 적어도 하나의 엔트리에 의해 상기 현재 팔레트를 도출하는 단계; 및
상기 현재 팔레트에 따른 팔레트 코딩을 이용하여 상기 현재 코딩 유닛을 인코딩 또는 디코딩하는 단계
를 포함한, 비디오 데이터의 블록을 코딩하는 방법. - 제13항에 있어서, 상기 팔레트 공유 플래그는, 현재 팔레트 크기가 이전 팔레트 크기 이상인 경우에 시그널링 또는 파싱되는 것인, 비디오 데이터의 블록을 코딩하는 방법.
- 제13항에 있어서, 상기 팔레트 공유 플래그를 이용할 수 없는 경우, 상기 팔레트 공유 플래그는 팔레트 공유 없음에 대응하는 0으로서 추론되는 것인, 비디오 데이터의 블록을 코딩하는 방법.
- 비디오 코딩 시스템을 위한 팔레트 코딩을 이용하여 비디오 데이터의 블록을 코딩하는 방법에 있어서,
현재 코딩 유닛과 연관된 입력 데이터를 수신하는 단계;
팔레트 공유 플래그 - 상기 팔레트 공유 플래그는 상기 현재 코딩 유닛을 위해 이전에 사용한 팔레트를 공유할 것인지 여부를 표시하는 것임 - 를 결정하는 단계;
상기 팔레트 공유 플래그가 팔레트 공유 없음을 표시하는 경우, 인코더 측에서 팔레트 전치 플래그를 시그널링하거나, 디코더 측에서 상기 팔레트 전치 플래그를 파싱하는 단계; 및
현재 팔레트에 따른 팔레트 코딩을 이용하여 상기 현재 코딩 유닛을 인코딩 또는 디코딩하는 단계
를 포함하고,
상기 현재 팔레트가 전치되는지 여부는 상기 팔레트 전치 플래그에 의해 표시되는 것인, 비디오 데이터의 블록을 코딩하는 방법. - 제16항에 있어서, 상기 팔레트 공유 플래그를 이용할 수 없는 경우, 상기 팔레트 공유 플래그는 팔레트 공유 없음에 대응하는 0으로서 추론되는 것인, 비디오 데이터의 블록을 코딩하는 방법.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462060810P | 2014-10-07 | 2014-10-07 | |
US62/060,810 | 2014-10-07 | ||
US14/821,100 | 2015-08-07 | ||
US14/821,100 US9596479B2 (en) | 2014-10-07 | 2015-08-07 | Method of pulse-code modulation and palette coding for video coding |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160041779A KR20160041779A (ko) | 2016-04-18 |
KR101737221B1 true KR101737221B1 (ko) | 2017-05-17 |
Family
ID=54185843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150138227A KR101737221B1 (ko) | 2014-10-07 | 2015-09-30 | 비디오 코딩을 위한 펄스-코드 변조 및 팔레트 코딩 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9596479B2 (ko) |
EP (1) | EP3007442B1 (ko) |
JP (1) | JP6316785B2 (ko) |
KR (1) | KR101737221B1 (ko) |
CN (1) | CN105491383B (ko) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10009632B2 (en) * | 2014-03-05 | 2018-06-26 | Qualcomm Incorporated | Flicker detection and mitigation in video coding |
US10097848B2 (en) | 2014-05-23 | 2018-10-09 | Hfi Innovation Inc. | Methods for palette size signaling and conditional palette escape flag signaling |
EP3198875B1 (en) * | 2014-11-06 | 2021-04-21 | MediaTek Inc. | Method for palette predictor update |
WO2016127889A1 (en) * | 2015-02-13 | 2016-08-18 | Mediatek Inc. | Method and apparatus for palette index coding in video and image compression |
WO2016192678A1 (en) * | 2015-06-03 | 2016-12-08 | Mediatek Inc. | Methods for palette coding of image and video data |
US10097842B2 (en) * | 2015-09-18 | 2018-10-09 | Qualcomm Incorporated | Restriction of escape pixel signaled values in palette mode video coding |
WO2020098803A1 (en) * | 2018-11-15 | 2020-05-22 | Beijing Bytedance Network Technology Co., Ltd. | Harmonization between affine mode and other inter coding tools |
US11012701B2 (en) | 2019-02-22 | 2021-05-18 | Tencent America LLC | Residual coding for transform skip mode and block differential pulse-code modulation |
SG11202108938TA (en) * | 2019-02-24 | 2021-09-29 | 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 |
US11202101B2 (en) * | 2019-03-13 | 2021-12-14 | Qualcomm Incorporated | Grouped coding for palette syntax in video coding |
CN114175662B (zh) | 2019-07-20 | 2023-11-24 | 北京字节跳动网络技术有限公司 | 调色板模式使用指示的条件相关编解码 |
WO2021050715A1 (en) | 2019-09-12 | 2021-03-18 | Bytedance Inc. | Using palette predictor in video coding |
WO2021136486A1 (en) * | 2020-01-03 | 2021-07-08 | Beijing Bytedance Network Technology Co., Ltd. | Palette size signaling in video coding |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004054880A (ja) | 2002-07-18 | 2004-02-19 | Ulead Systems Inc | 色域圧縮の実施方法 |
JP2009524306A (ja) | 2006-01-20 | 2009-06-25 | オーセ プリンティング システムズ ゲゼルシャフト ミット ベシュレンクテル ハフツング | インデクシングされたカラーマネージメントリソースを用いてドキュメントデータを生成および処理する方法、コンピュータプログラム製品および装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3902968B2 (ja) * | 2002-03-26 | 2007-04-11 | キヤノン株式会社 | 画像処理装置及びその制御方法及びコンピュータプログラム及び記憶媒体 |
AU2006246497B2 (en) * | 2006-11-30 | 2010-02-11 | Canon Kabushiki Kaisha | Method and apparatus for hybrid image compression |
US8503527B2 (en) * | 2008-10-03 | 2013-08-06 | Qualcomm Incorporated | Video coding with large macroblocks |
US9654777B2 (en) * | 2013-04-05 | 2017-05-16 | Qualcomm Incorporated | Determining palette indices in palette-based video coding |
US9558567B2 (en) * | 2013-07-12 | 2017-01-31 | Qualcomm Incorporated | Palette prediction in palette-based video coding |
GB2521606A (en) * | 2013-12-20 | 2015-07-01 | Canon Kk | Method and apparatus for transition encoding in video coding and decoding |
US10009632B2 (en) * | 2014-03-05 | 2018-06-26 | Qualcomm Incorporated | Flicker detection and mitigation in video coding |
US9826242B2 (en) * | 2014-03-14 | 2017-11-21 | Qualcomm Incorporated | Palette-based video coding |
US10362336B2 (en) * | 2014-03-25 | 2019-07-23 | Qualcomm Incorporated | Palette predictor signaling with run length code for video coding |
US9654806B2 (en) * | 2014-03-26 | 2017-05-16 | Qualcomm Incorporated | Determining palette size, palette entries and filtering of palette coded blocks in video coding |
US10382749B2 (en) * | 2014-05-23 | 2019-08-13 | Qualcomm Incorporated | Coding run values based on palette index in palette-based video coding |
US11323733B2 (en) * | 2014-05-23 | 2022-05-03 | Qualcomm Incorporated | Predictor palette initialization in palette-based video coding |
US10291940B2 (en) * | 2014-05-23 | 2019-05-14 | Qualcomm Incorporated | Coding runs with escape in palette-based video coding |
US10687064B2 (en) | 2014-08-04 | 2020-06-16 | Qualcomm Incorporated | Palette mode encoding and decoding with inferred pixel scan order |
US9544607B2 (en) * | 2014-08-25 | 2017-01-10 | Hfi Innovation Inc. | Method of palette index signaling for image and video coding |
US9877029B2 (en) * | 2014-10-07 | 2018-01-23 | Qualcomm Incorporated | Palette index binarization for palette-based video coding |
-
2015
- 2015-08-07 US US14/821,100 patent/US9596479B2/en active Active
- 2015-09-01 CN CN201510555246.XA patent/CN105491383B/zh active Active
- 2015-09-10 EP EP15184681.3A patent/EP3007442B1/en active Active
- 2015-09-24 JP JP2015187091A patent/JP6316785B2/ja active Active
- 2015-09-30 KR KR1020150138227A patent/KR101737221B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004054880A (ja) | 2002-07-18 | 2004-02-19 | Ulead Systems Inc | 色域圧縮の実施方法 |
JP2009524306A (ja) | 2006-01-20 | 2009-06-25 | オーセ プリンティング システムズ ゲゼルシャフト ミット ベシュレンクテル ハフツング | インデクシングされたカラーマネージメントリソースを用いてドキュメントデータを生成および処理する方法、コンピュータプログラム製品および装置 |
Non-Patent Citations (2)
Title |
---|
PoLin Lai, et al., ‘Description of screen content coding technology proposal by MediaTek’, (JCTVC--Q0033), JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 17th Meeting: Valencia, ES, 27 March - 4 |
Rajan Joshi, et al., ‘High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 1’, (JCTVC-R1005_v2), JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 18th Meeting: Sapporo, JP, 2014.07.09.* |
Also Published As
Publication number | Publication date |
---|---|
KR20160041779A (ko) | 2016-04-18 |
JP2016076924A (ja) | 2016-05-12 |
US9596479B2 (en) | 2017-03-14 |
US20160100184A1 (en) | 2016-04-07 |
JP6316785B2 (ja) | 2018-04-25 |
CN105491383B (zh) | 2018-12-11 |
CN105491383A (zh) | 2016-04-13 |
EP3007442A1 (en) | 2016-04-13 |
EP3007442B1 (en) | 2018-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101737221B1 (ko) | 비디오 코딩을 위한 펄스-코드 변조 및 팔레트 코딩 방법 | |
CA2948683C (en) | Methods for palette size signaling and conditional palette escape flag signaling | |
EP2991349B1 (en) | Method of palette index signaling for image and video coding | |
US10554974B2 (en) | Method and apparatus enabling adaptive multiple transform for chroma transport blocks using control flags | |
US11032568B2 (en) | Method of video coding using prediction based on intra picture block copy | |
US10477214B2 (en) | Method and apparatus for scaling parameter coding for inter-component residual prediction | |
AU2019202043B2 (en) | Method and apparatus for palette coding of monochrome contents in video and image compression | |
EP3087742B1 (en) | Method and apparatus for syntax redundancy removal in palette coding | |
KR101982829B1 (ko) | 팔레트 테이블 예측 및 시그널링을 위한 방법과 장치 | |
CA3000758C (en) | Method and apparatus of palette index map coding for screen content coding | |
EP4074036A1 (en) | Methods and apparatus for restricted secondary transform and signaling thereof in image coding | |
US10904566B2 (en) | Method and apparatus for index map coding in video and image compression | |
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 |