KR101887798B1 - 비디오 코딩에서의 신택스에 대한 이진화 및 컨텍스트 적응 코딩의 방법 및 장치 - Google Patents

비디오 코딩에서의 신택스에 대한 이진화 및 컨텍스트 적응 코딩의 방법 및 장치 Download PDF

Info

Publication number
KR101887798B1
KR101887798B1 KR1020167035475A KR20167035475A KR101887798B1 KR 101887798 B1 KR101887798 B1 KR 101887798B1 KR 1020167035475 A KR1020167035475 A KR 1020167035475A KR 20167035475 A KR20167035475 A KR 20167035475A KR 101887798 B1 KR101887798 B1 KR 101887798B1
Authority
KR
South Korea
Prior art keywords
index
equal
palette
threshold
binary string
Prior art date
Application number
KR1020167035475A
Other languages
English (en)
Other versions
KR20170008288A (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 KR20170008288A publication Critical patent/KR20170008288A/ko
Application granted granted Critical
Publication of KR101887798B1 publication Critical patent/KR101887798B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic 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/93Run-length coding

Abstract

비디오 코딩 시스템에서 생성되는 소스 심볼에 대한 엔트로피 코딩 및 디코딩을 위한 방법 및 장치가 개시된다. 본 발명에 따르면, 현재 심볼 값에 대한 임의의 정제 비트 및 MSB(최상위 비트) 인덱스가 먼저 결정된다. 1진 코드 또는 트렁케이트된 1진 코드를 사용하여 현재 심볼 값의 MSB 인덱스에 관련되는 프리픽스 부분을 이진화함으로써 제1 이진 스트링이 생성된다. 또한, 제2 이진 스트링은 임의의 정제 비트가 존재하는 경우 트렁케이트된 이진 코드를 사용하여 또는 고정 길이 코드를 사용하여, 현재 심볼 값의 하나 이상의 정제 비트에 대응하는 서픽스 부분을 이진화함으로써 생성된다. 제1 이진 스트링은 CABAC(콘텍스트 적응 이진 산술 코딩)을 사용하여 코딩되고 제2 이진 스트링은 제2 이진 스트링이 존재하면 CABAC을 사용하여 또한 코딩된다.

Description

비디오 코딩에서의 신택스에 대한 이진화 및 컨텍스트 적응 코딩의 방법 및 장치{METHOD AND APPARATUS OF BINARIZATION AND CONTEXT-ADAPTIVE CODING FOR SYNTAX IN VIDEO CODING}
관련 출원에 대한 교차 참조
본 발명은 2014년 6월 20일자로 출원된, 미국 특허 가출원 제62/014,970호, 2014년 6월 20일자로 출원된, 미국 특허 가출원 제62/017,401호, 2014년 6월 3일자로 출원된 미국 특허 가출원 제62/020,518호, 및 2014년 7월 7일자로 출원된, 미국 특허 가출원 제62/021,287호에 대한 우선권을 주장한다. 상기 미국 특허 가출원은 참조에 의해 그 전체가 본원에 통합된다.
발명의 분야
본 발명은 비디오 코딩에 관련되는 신택스에 대한 엔트로피 코딩에 관한 것이다. 특히, 본 발명은 비디오 코딩에 관련되는 신택스의 이진화 및 컨텍스트 적응 코딩(context-adaptive coding)에 관한 것이다.
발명의 배경
고효율 비디오 코딩(High Efficiency Video Coding; HEVC)은 최근 몇 년 동안 개발되어 온 새로운 코딩 표준이다. 고효율 비디오 코딩(HEVC) 시스템에서, H.264/AVC의 고정된 사이즈의 매크로 블록은, 코딩 유닛(coding unit; CU)으로 칭해지는 유연한 블록으로 대체된다. CU 내의 픽셀은 코딩 효율성을 향상시키기 위해 동일한 코딩 파라미터를 공유한다. CU는, HEVC에서 코딩 트리 유닛(coded tree unit; CTU)으로 또한 칭해지는 최대 CU(largest CU; LCU)로 시작할 수도 있다. 코딩 유닛의 개념 외에, HEVC에서는, 예측 유닛(prediction unit PU)의 개념이 또한 소개된다. 일단 CU 계층 트리(CU hierarchical tree)의 분할이 이루어지면, 각각의 리프(leaf) CU는, 예측 타입 및 PU 구획(partition)에 따라 하나 이상의 예측 유닛(PU)으로 더 분할된다.
콘텍스트 기반 적응 이진 산술 코딩(Context-based adaptive binary arithmetic coding; CABAC)은, H.264 및 HEVC와 같은 고급 비디오 코딩에서 널리 사용되어 온 고효율 엔트로피 코딩 툴이다. 예를 들면, HEVC 표준의 다양한 신택스 엘리먼트는 CABAC 모드에서 코딩되는데, 이 경우, 기저의 신택스 엘리먼트와 관련되는 콘텍스트에 기초하여 엔트로피 코딩이 이진화된 신택스 엘리먼트에 적응적으로 적용된다. 도 1은 CABAC 프로세스의 예시적인 블록도를 예시한다. CABAC 엔진의 산술 코더가 이진 심볼 값만을 인코딩할 수 있기 때문에, CABAC 프로세스는 이진화기(binarizer; 110)를 사용하여 신택스 엘리먼트의 값을 이진 스트링으로 변환하는 것을 필요로 한다. 변환 프로세스는 일반적으로는 이진화로 칭해진다. 코딩 프로세스 동안, 상이한 콘텍스트에 대한 코딩된 심볼로부터 확률 모델이 점차적으로 구축된다. 콘텍스트 모델러(context modeler; 120)는 모델링 목적을 서빙한다. 정상적인 콘텍스트 기반 코딩 동안, 이진 산술 코더에 대응하는 정규 코딩 엔진(regular coding engine; 130)이 사용된다. 다음 번 이진 심볼을 코딩하기 위한 모델링 콘텍스트의 선택은 코딩된 정보에 의해 결정될 수 있다. 심볼은 또한 콘텍스트 모델링 단계 없이 인코딩될 수 있고, 감소된 복잡도를 위해, 바이패스 모드로 일반적으로 칭해지는 동일한 확률 분포를 취할 수 있다. 바이패스된 심볼에 대해, 바이패스 코딩 엔진(140)이 사용될 수도 있다. 도 1에서 도시되는 바와 같이, 스위치(S1, S2 및 S3)는 정규 CABA 모드와 바이패스 모드 사이에서 데이터 흐름을 지향시키기 위해 사용된다. 정규 CABAC 모드가 선택되는 경우, 스위치는 상부 콘택 쪽으로 플립된다. 바이패스 모드가 선택되는 경우, 스위치는, 도 1에서 도시되는 바와 같이, 하부 콘택 쪽으로 플립된다.
JCT 표준화 기구는 HEVC 스크린 컨텐츠 코딩(screen content coding; SCC) 확장안을 현재 개발 중에 있다. 연속적인 컬러 톤을 갖는 종래의 자연 비디오(natural video)와는 대조적으로, 스크린 컨텐츠 비디오는 약간의 파일럿 컬러 및 예리한 에지 및 경계를 종종 포함한다. 여러 신규의 툴이 미래의 HEVC SCC 확장안에 채택될 가능성에 대해 현재 연구 중에 있다.
HEVC 범위 확장안(range extension; RExt)의 초기 개발 동안, 팔레트(palette) 기반의 코딩을 중점적으로 다루기 위해 여러 제안이 개시되었다. 예를 들면, JCTVC-N-0247(ITU-T SG 16 WP 3과 ISO/IEC JTC 1/SC 29/WG 11의 비디오 부호화 연합팀(Joint Collaborative Team on Video Coding; JCT-VC) 14차 미팅 : 대서양 표준시(AT) 2013년 7월 25~8월 2일, 비엔나(Vienna), 문서: JCTVC-N0247의 Guo 등의 "RCE3: Results of Test 3.1 on Palette Mode for Screen Content Coding") 및 JCTVC-O0218(ITU-T SG 16 WP 3과 ISO/IEC JTC 1/SC 29/WG 11의 비디오 부호화 연합팀(JCT-VC)의 15차 미팅: 차모르 표준시(CH) 2013년 10월 23일~11월 1일, 제네바(Geneva), 문서: JCTVC-O0218의 Guo 등의 "Evaluation of Palette Mode Coding on HM-12.0+RExt-4.1")에서는, 팔레트 예측 및 공유화 기술(sharing technique)이 개시된다. JCTVC-N0247 및 JCTVC-O0218에서, 각각의 컬러 성분의 팔레트는 구축되고 송신된다. 팔레트는 비트레이트를 감소시키기 위해 자신의 좌측 이웃 CU로부터 예측될 수 있다(또는 공유될 수 있다). 그 다음, 주어진 블록 내의 모든 픽셀은 그들의 팔레트 인덱스를 사용하여 코딩된다. JCTVC-N0247에 따른 인코딩 프로세스의 예가 다음과 같이 나타내어진다.
1. 팔레트의 송신: 컬러 인덱스 테이블 사이즈가 먼저 송신되고 팔레트 엘리먼트가 후속한다.
2. 픽셀 값의 송신: CU의 픽셀은 래스터 스캔 순서로 인코딩된다. 하나 이상의 픽셀의 각각의 그룹에 대해, "인덱스" 모드가 사용되고 있는지 또는 "위에 것 카피(Copy-Above)" 모드가 사용되고 있는지의 여부를 나타내기 위해 런 기반의 모드에 대한 플래그가 먼저 송신된다.
2.1 Index_Mode: Index_Mode에서, 팔레트 인덱스가 먼저 시그널링되고 런 값을 나타내는 "palette_run"(예를 들면, M)이 후속한다. 런 값은, 총 M 개의 샘플 모두가 Index_Mode를 사용하여 코딩된다는 것을 나타낸다. 현재의 위치 및 후속하는 M 개의 위치에 대해 다른 추가적인 정보가 송신될 필요가 없는데, 이들이 비트스트림에서 시그널링된 것과 동일한 팔레트 인덱스를 가지기 때문이다. 팔레트 인덱스(예를 들면, i)는 또한, 모두 세 개의 컬러 성분에 의해 공유될 수도 있는데, 이것은, YUV 컬러 공간의 경우에 재구성된 픽셀 값이 (Y, U, V) = (paletteY[i], paletteU[i], paletteV[i])이다는 것을 의미한다.
2.2 Copy_Above_Mode: Copy_Above_Mode에서는, 후속하는 N 개의 위치(현재의 위치를 포함함)에 대해, 팔레트 인덱스가 위쪽 행(row)의 대응하는 팔레트 인덱스와 동일하다는 것을 나타내기 위해, 값 "copy_run"(예를 들면, N)이 송신된다.
3. 잔차의 송신: 단계 2에서 송신되는 팔레트 인덱스는 픽셀 값으로 되변환되고(converted back) 예측치로서 사용된다. 잔차 정보는 HEVC 잔차 코딩을 사용하여 송신되고 재구성을 위해 예측치에 추가된다.
스크린 컨텐츠 코딩에서 뿐만 아니라 일반적인 비디오 코딩에서 팔레트 모드 코딩 블록(palette mode coded block)에 대해 생성되는 신택스 엘리먼트와 관련되는 코딩 효율성을 더 향상시키기 위한 방법을 개발하는 것이 바람직하다.
발명의 개요
비디오 코딩 시스템에서 생성되는 소스 심볼에 대한 엔트로피 코딩 및 디코딩을 위한 방법 및 장치가 개시된다. 본 발명에 따르면, 현재 심볼 값에 대한 MSB(most significant bit; 최상위 비트) 인덱스 및 임의의 정제 비트(refinement bit)가 먼저 결정된다. 1진 코드(unary code) 또는 트렁케이트된 1진 코드(truncated unary code)를 사용하여 현재 심볼 값의 MSB 인덱스에 관련되는 프리픽스(prefix) 부분을 이진화함으로써 제1 이진 스트링이 생성된다. 또한, 제2 이진 스트링은, 임의의 정제 비트가 존재하면 트렁케이트된 이진 코드를 사용하여 또는 고정 길이 코드를 사용하여, 현재 심볼 값의 하나 이상의 정제 비트에 대응하는 서픽스(suffix) 부분을 이진화함으로써 생성된다. 제1 이진 스트링은 CABAC(콘텍스트 적응 이진 산술 코딩)을 사용하여 코딩되고 제2 이진 스트링은 제2 이진 스트링이 존재하면 CABAC을 사용하여 또한 코딩된다.
프리픽스 부분은 MSB 인덱스에 1을 더한 것에 대응할 수도 있다. 또한, 프리픽스 부분은, x가 제로보다 크면 (floor(log2(x) + 1)과 동일할 수도 있고, 프리픽스 부분은 x가 0과 동일하면 0과 동일한데, 이 경우 x는 현재 심볼 값을 나타내고, floor(y)는 y 이하의 가장 큰 정수를 출력하는 바닥 함수(floor function)이고, log2()는 밑이 2인 로그 함수이다. 제1 이진 스트링의 빈(bin)은, 빈이 임계 값 T 이하의 빈 인덱스를 가지면 정규 CABAC 모드에서 코딩될수 있고, 빈이 임계 값 T보다 더 큰 빈 인덱스를 가지면 바이패스 모드에서 코딩될 수 있다.
하나의 실시형태에서, 현재 소스 심볼은 SCC(스크린 컨텐츠 코딩)를 위한 팔레트 모드 코딩 블록 내의 연속적인 반복 팔레트 인덱스의 런길이(runlength)에서 1을 뺀 것을 나타낸다. 제1 이진 스트링은, (floor(log2((MaxPaletteRun)) + 1)과 동일한 최대 값을 갖는 트렁케이트된 1진 코드를 사용하여 프리픽스 부분을 이진화함으로써 유도되는데, 여기서, MaxPaletteRun은 현재 코딩 유닛(CU) 내의 나머지 아직 코딩되지 않은 픽셀의 수에서 1을 뺀 것과 동일하다. 제2 이진 스트링은, (MaxPaletteRun - (1 << (palette_run_msb_id_plus1-1)))과 동일한 최대 값을 갖는 트렁케이트된 이진 코드를 사용하여 서픽스 부분을 이진화함으로써 유도되는데, 여기서, MaxPaletteRun은 현재 CU 내의 나머지 아직 코딩되지 않은 픽셀의 수에서 1을 뺀 것과 동일하고 palette_run_msb_id_plus1은 프리픽스 부분의 값을 나타낸다.
CABAC은 연속적인 반복 팔레트 인덱스의 런 타입을 조건으로 할 수도 있고 정규 CABAC 모드는 제1 이진 스트링 또는 제2 이진 스트링의 하나 이상의 빈에 적용된다. 예를 들면, 현재 소스 심볼은, 위쪽 행의 연속적인 제1 인덱스의 제1 런길이에서 1을 뺀 것을 나타내는 신택스 Copy_Above_Mode, 또는 동일한 행의 연속적인 제2 인덱스의 제2 런길이에서 1을 뺀 것을 나타내는 신택스 Index_Mode에 대응할 수도 있다. 0과 동일한 빈 인덱스를 갖는 제1 이진 스트링의 빈은 세 개의 콘텍스트를 갖는 정규 CABAC 모드에서 코딩된다. 또한, 팔레트 인덱스가 제1 임계치(T1) 미만이면 제1 콘텍스트가 선택될 수 있고, 팔레트 인덱스가 제1 임계치(T1) 이상이고 제2 임계치(T2) 미만이면 제2 콘텍스트가 선택될 수 있고, 팔레트 인덱스가 제2 임계치(T2) 이상이면 제3 콘텍스트가 선택될 수 있으며, 제2 임계치(T2)는 제1 임계치(T1)보다 더 크다. 예를 들면, 제1 임계치(T1)는 2와 동일할 수 있고 제2 임계치(T2)는 4 또는 8과 동일할 수 있다.
현재 소스 심볼은 또한, 2차원의 부호가 있는 또는 부호가 없는 소스 벡터의 제1 성분 또는 제2 성분의 절대 값에 대응할 수도 있다. 또한, 프리픽스 부분은 서픽스 부분 및 임의의 부호 비트 이전에 인코딩된다.
본 발명의 다른 실시형태에서, 현재 블록을 통한 스캐닝 순서로 현재 팔레트 인덱스와 동일한 팔레트 인덱스를 갖는 연속적인 픽셀의 수가 인덱스 모드에 대해 결정된다. 연속적인 픽셀의 수에서 1을 뺀 것은 이진화 방법을 사용하여 빈 스트링으로 변환된다. 빈 스트링은, 현재 팔레트 인덱스에 의존하여 적응적으로 선택되는 콘텍스트에 따라 빈 스트링의 적어도 하나의 빈에 정규 CABAC 모드를 적용함으로써 콘텍스트 적응 이진 산술 코딩(CABAC)을 사용하여 인코딩된다. 대응하는 디코딩 프로세스가 또한 개시된다. 예를 들면, 디코더는, 인덱스 모드에 대응하는 현재 소스 심볼에 대한 현재 블록의 압축된 데이터를 포함하는 입력 코딩된 비트스트림(input coded bitstream)을 수신할 수도 있다. 현재 런 모드와 관련되는 현재 팔레트 인덱스가 결정될 수 있다. 그 다음, 현재 팔레트 인덱스에 의존하여 적응적으로 선택되는 콘텍스트에 따라 빈 스트링의 적어도 하나의 빈에 정규 CABAC 모드를 적용함으로써 콘텍스트 적응 이진 산술 코딩(CABAC)을 사용하여 빈 스트링이 디코딩된다. 빈 스트링은, 이진화 방법을 사용하여 현재 팔레트 인덱스와 동일한 팔레트 인덱스를 갖는 연속적인 픽셀의 수에 관련되는 런길이 값으로 변환된다. 런길이 값은 연속적인 픽셀의 수에서 1을 뺀 것에 대응한다. 디코더측의 경우, 현재 팔레트 인덱스는, 재구성된 팔레트 인덱스 또는 입력 코딩된 비트스트림으로부터의 파싱된 팔레트 인덱스에 대응할 수도 있다.
도면의 간단한 설명
도 1은 CABAC(콘텍스트 적응 이진 산술 코딩)을 위한 예시적인 블록도를 예시하는데, 이 경우 소스 신택스는 정규 CABAC 모드 또는 바이패스 모드를 사용하여 적응적으로 코딩될 수 있다.
도 2는 본 발명의 한 실시형태에 따른 소스 심볼에 대한 엔트로피 인코딩 시스템의 예시적인 플로우차트를 예시하는데, 이 경우 소스 심볼은 프리픽스 부분 및 서픽스 부분에서 표현되고 프리픽스 부분 및 서픽스 부분에 대한 이진 스트링은 CABAC을 사용하여 코딩된다.
도 3은 본 발명의 한 실시형태에 따른 소스 심볼에 대한 엔트로피 디코딩 시스템의 예시적인 플로우차트를 예시하는데, 이 경우 소스 심볼은 프리픽스 부분 및 서픽스 부분에서 표현되고 프리픽스 부분 및 서픽스 부분에 대한 이진 스트링은 CABAC을 사용하여 코딩된다.
상세한 설명
하기의 설명은 본 발명을 수행하는 최상으로 고려되는 모드로 이루어진다. 이 설명은 본 발명의 일반적인 원칙을 설명하는 목적을 위해 이루어진 것으로 제한적인 의미로 간주되어선 안된다. 본 발명의 범위는 첨부의 특허청구범위를 참조함으로써 최상으로 결정된다.
본 발명은, 비디오 코딩과 같은 소스 데이터 압축 시스템에서 생성되는 소스 심볼에 대한 범용 엔트로피 코딩 방법을 개시한다. 방법은 소스 심볼과 관련되는 부호가 없는 값을 다음의 두 부분으로 이루어지는 이진 형태로 표현한다: 그 값의 최상위 비트(MSB) 부분 및 정제 비트 부분. 인덱스는 MSB 부분에서 각각의 멤버에 할당된다. 결과적으로 나타나는 코드워드는 프리픽스 부분 및 서픽스 부분의 사슬 연결(concatenation)이다. 프리픽스 부분은 심볼 값의 MSB 인덱스에 관련된다. 하나의 실시형태에서, MSB 부분은 floor(log2(x))에 따라 결정될 수 있는데, 이 경우 x는 소스 심볼과 관련되는 부호가 없는 값에 대응하고 floor(y)는 y 이하의 가장 큰 정수를 출력하는 바닥 함수이고 log2(x)는 밑이 2인 로그 함수이다. 이 예에서, 대응하는 MSB 부분은 x=0에 대해서는 의미가 없을 것이다. 따라서, msb_id_plus1로 표기되는, MSB 부분에 1을 더한 것을 나타내는 용어가 도입된다. 부호가 없는 심볼 x의 MSB에 1을 더한 것인 msb_id_plus1은 다음에 따라 유도될 수 있다:
Figure 112016124212823-pct00001
.
프리픽스 부분은, 최대 신택스 값이 알려진 경우, 1진 코드 또는 트렁케이트된 1진 코드와 같은 가변 길이 코드를 사용하여 코딩될 수 있다. 주어진 심볼 값에 대해, 서픽스 부분은 존재할 수도 있거나 또는 존재하지 않을 수도 있다. 서픽스 부분은 정제 비트를 나타내고 서픽스 부분은 msb_id_plus1 > 1인지를 나타낸다. refinement_bits로 표기되는 정제 비트의 값은 고정 길이의 이진 코드 또는 트렁케이트된 이진 코드를 사용하여 이진화될 수 있다. 예를 들면, 정제 비트의 값은, 최대 신택스 값이 알려진 경우 트렁케이트된 이진 코드에 의해 또는 (msb_id_plus1-1)과 동일한 스트링 길이를 갖는 스트링에 의해 표현될 수 있다. 디코딩된 신택스 값 x는, 다음에 따라, 디코딩된 프리픽스 부분(즉, msb_id_plus1-1)) 및 디코딩된 서픽스 부분(즉, refinement_bits)에 기초하여 유도될 수 있다:
Figure 112016124212823-pct00002
테이블 1은 본 발명의 실시형태를 통합하는 이진화 프로세스에 따라 심볼 값 0-31에 대응하는 코드워드 빈 스트링(이진 스트링으로도 또한 칭해짐)의 예를 예시한다. msb_id_plus1 값은 식 (1)에 따라 유도된다. 정제 비트의 길이는 (msb_id_plus1-1)에 따라 결정된다. 본 발명에 따른 이진화 프로세스는, 부호 정보를 더한 부호가 있는 심볼 값의 절대 값에 상기 이진화 프로세스를 적용함으로써, 부호가 있는 소스 심볼에 또한 적용될 수도 있다. 또한, 이진화 프로세스는 이진화 프로세스를 각각의 벡터 성분에 사용함으로써 벡터와 같은 다차원 소스 데이터에 적용될 수 있다.
Figure 112016124212823-pct00003
msb_id_plus1에 대한 결과적으로 나타나는 빈 스트링은, 본 발명에 따라 콘텍스트 적응 이진 산술 코딩(CABAC)에 의해 코딩될 수 있다. 프리픽스 부분은 더 복잡한 콘텍스트 모델링 스킴(scheme)을 이용하여 CABAC에서 코딩될 수 있다. 정제 비트 및 부호 비트는 더 간단한 콘텍스트 모델링 스킴을 이용하여 또는 본 발명에 따른 바이패스 모드에서 코딩될 수 있다. 하나의 실시형태에서, 프리픽스 빈 스트링은, 임계 값 T 이하의 빈 인덱스 값을 갖는 빈의 경우에는 CABAC에서, 그리고 그렇지 않은 경우에는 바이패스 모드에서 코딩된다. 하나의 실시형태에서, 콘텍스트 선택은 빈 인덱스에 따른다. 또한, 인접한 인덱스 값을 갖는 몇몇 빈은 동일한 콘텍스트를 공유할 수 있다. 다른 실시형태에서, T는 비트스트림 파서 스루풋 제약 사항(constraint) 및 코딩 효율성 요건에 따라 적응적으로 선택될 수 있다. 더 낮은 임계치 때문에, T는 더 많은 심볼이 바이패스 모드에서 코딩되게 할 것이고, 이것은 감소된 코딩 효율성을 대가로 비트스트림 파서 스루풋을 증가시킬 것이다. 임계치 T는 또한, 현재 코딩 유닛(CU) 내의 코딩된 CABAC 빈의 소비에 따라 조정될 수 있다. 예를 들면, 현재 코딩 유닛에서 더 적은 CABAC 코딩된 빈이 바람직하면, 더 적은 임계치 T가 사용될 수 있다. 몇몇 실시형태에서, T는 CU 사이즈에 따라 적응적으로 선택된다. 예를 들면, 팔레트 코딩이 CU에 적용되면, 더 큰 CU 사이즈는, 런 모드에 대한 더 긴 런길이로 나타날 것이다. 이 경우, 더 나은 코딩 효율성을 지지하기 위해 더 큰 임계치가 사용될 수도 있다.
본 발명은, 다양한 코딩 통계치에 대응하는 상이한 신택스 타입의 엔트로피 코딩에 유용한 범용 코딩 툴로서 개발된다. 본 발명은, 인트라 블록 카피(Intra block copying; IntraBC), 팔레트 코딩, 및 인트라 스트링 카피를 비롯한, 신규의 코딩 툴로부터 유래하는 다양한 신규의 신택스 타입 및 혼합된 비디오 콘텐츠 타입을 갖는 스크린 컨텐츠 코딩에 대해 특히 유익하다. 테이블 2는, 본 발명의 실시형태를 통합하는 콘텍스트 기반의 코딩을 사용하여 부호가 없는 소스 심볼을 코딩/디코딩하기 위한 예시적인 신택스 테이블을 예시한다. 입력 파라미터 syntaxType에 의해 특정되는 상이한 신택스 타입에 대해 상이한 콘텍스트 모델링 스킴이 활용될 수 있다. 테이블 2에서 도시되는 바와 같이, 신택스 msb_id_plus1에 의해 표현되는 프리픽스 부분이 먼저 시그널링된다. msb_id_plus1의 값이 1보다 더 크면, 신택스 refinement_bits가 시그널링된다. 다시 말하면, msb_id_plus1가 0 또는 1의 값을 가지면, 서픽스 부분은 시그널링되지 않을 것이다.
Figure 112016124212823-pct00004
상기에서 개시되는 MSB에 대한 콘텍스트 기반의 코딩은 코딩 프로세스 동안 생성되는 다양한 신택스 엘리먼트에 적용될 수 있다. 예를 들면, HEVC RExt에서 명시되는 바와 같은 스크린 컨텐츠 코딩(SCC)에서, 블록의 컬러 인덱스는 "런(Run)" 모드를 사용하여 코딩될 수도 있다. "런" 모드가 선택되는 경우, 현재 팔레트 런 모드에 대한 연속적인 반복 픽셀의 수에서 1을 뺀 것이 시그널링된다. 앞서 언급된 바와 같이, Index_Mode 및 Copy_Above_Mode에 의해 나타내어지는 두 개의 "런" 모드가 존재한다. 하나의 실시형태에서, 최대 런 값 MaxPaletteRun을 갖는 프리픽스 부분 및 서픽스 부분 둘 다를 코딩하기 위한 트렁케이트된 시그널링, 이 경우 MaxPaletteRun은 현재 코딩 유닛(CU) 내의 나머지 아직 코딩되지 않은 픽셀의 수에서 1을 뺀 것과 동일하다. 결과적으로 나타나는 프리픽스 신택스 palette_run_msb_id_plus1은, cMax = floor(log2((MaxPaletteRun)) + 1인 트렁케이트된 1진 코드를 사용하여 코딩되는데, 이 경우 바닥 함수 floor(x)는 x 이하의 가장 큰 정수를 출력한다. 서픽스 신택스 palette_run_refinement_bits는 cMax = MaxPaletteRun- (1 << (palette_run_msb_id_plus1-1))인 트렁케이트된 이진 코드를 사용하여 코딩된다. 또한, 프리픽스 palette_run_msb_id_plus1은 콘텍스트 기반의 코딩을 사용하여 코딩될 수 있는데, 이 경우 콘텍스트는 빈 인덱스에 기초하여 형성된다. 두 개의 별개의 콘텍스트 세트는, 각각 Copy_Above_Mode 및 Index_Mode에 동일한 palette_run_type_flag에 대해 활용될 수 있다.
바이패스 모드는 임계치 Tr보다 더 큰 인덱스 값을 갖는 빈을 코딩하기 위해 사용될 수 있다. 예를 들면, Tr은 4 또는 6과 동일할 수 있다. palette_run_type_flag가 Index_Mode와 동일하고 현재 팔레트 인덱스가 더 큰 경우에 팔레트 런 길이에서 1을 뺀 것이 종종 0과 동일하기 때문에, 빈 인덱스 0에 대한 콘텍스트 모델링은 또한, Index_Mode 런 타입에 대해 현재 팔레트 인덱스 paletteIndex를 조건으로 할 수 있다. 하나의 실시형태에서, (paletteIndex < T1)의 경우 제1 콘텍스트가 선택되고(즉, 콘텍스트 인덱스 = 0), (T1 <= paletteIndex < T2)의 경우 제2 콘텍스트가 선택되고(즉, 콘텍스트 인덱스 =1), (T2 <= paletteIndex)의 경우 제3 제3 콘텍스트가 선택된다(즉, 콘텍스트 인덱스 =1). 임계치 T2는 임계치 T1보다 더 크다. T1 및 T2에 대한 값은 적절히 선택될 수 있다. 예를 들면, T1은 2와 동일할 수 있고 T2는 4 또는 8과 동일할 수 있다.
테이블 3은 프리픽스 palette_run_msb_id_plus1의 콘텍스트 기반의 코딩을 위한 콘텍스트 선택의 예시적인 매핑 테이블을 예시한다. 콘텍스트 선택은 파싱된 팔레트 인덱스를 조건으로 할 수 있는데, 파싱된 팔레트 인덱스는 중복성(redundancy)을 제거한 코딩된 수정된 팔레트 인덱스에 대응한다. 콘텍스트 선택은 또한 재구성된 팔레트 인덱스를 조건으로 할 수도 있는데, 재구성된 팔레트 인덱스는 팔레트 테이블에 의해 활용되는 실제 팔레트 인덱스에 대응한다. 하나의 실시형태에서, palette_run_type_flag가 Copy_Index_Mode와 동일하고 파싱된 팔레트 인덱스 값이 임계치 Ts보다 더 크면, 팔레트 런 코딩은 스킵될 수 있다. 이 경우, 팔레트 런 길이에서 1을 뺀 것은 0인 것으로 추론된다. 하나의 실시형태에서, Ts는 현재 CU 내의 팔레트 컬러의 수로부터 유도된다. 임계 값 Tr, T1, T2, 또는 Ts는 SPS(시퀀스 파라미터 세트), PPS(픽쳐 파라미터 세트), 슬라이스 헤더 및/또는 팔레트 모드 코딩된 CU에서 시그널링될 수 있다.
Figure 112016124212823-pct00005
신택스 엘리먼트와 관련되는 MSB 인덱스에 대한 콘텍스트 기반의 코딩의 다른 예에서, 결과적으로 나타나는 프리픽스 신택스 palette_index_msb_id_plus1는 cMax = floor(log2((MaxPaletteIdx)) + 1인 트렁케이트된 1진 코드를 사용하여 코딩되고 서픽스 신택스 palette_index_refinement_bits는 cMax = MaxPaletteIdx - (1 << (palette_index_msb_id_plus1-1))인 트렁케이트된 이진 코드에 의해 코딩된다. 프리픽스 palette_index_msb_id_plus1을 엔트로피 코딩하기 위한 콘텍스트 모델링은 빈 인덱스를 조건으로 할 수 있다. 프리픽스 palette_index_msb_id_plus1을 엔트로피 코딩하기 위한 콘텍스트 모델링은 또한 MaxPaletteIdx를 조건으로 할 수 있다. MaxPaletteIdx는, 중복성을 제거한 최대 수정된 팔레트 인덱스에 대응하는 최대 파싱된 팔레트 인덱스를 나타낸다. 다른 실시형태에서, MaxPaletteIdx는, 팔레트 테이블에 의해 활용되는 최대 실제 팔레트 인덱스에 대응하는 최대 재구성된 팔레트 인덱스를 나타낸다. 테이블 4는 프리픽스 palette_index_msb_id_plus1의 콘텍스트 기반의 코딩을 위한 콘텍스트 선택의 예시적인 매핑 테이블을 예시하는데, 이 경우 상이한 콘텍스트 세트는 cMax = floor(log2((MaxPaletteIdx)) + 1의 상이한 값을 갖는 CU에 대해 활용될 수도 있다.
Figure 112016124212823-pct00006
상기에서 개시되는 콘텍스트 기반의 코딩은 또한, HEVC RExt와 관련되는 스크린 컨텐츠 코딩(SCC)을 위한 인트라 스트링 카피(IntraBC)에서 활용되는 참조 스트링과 관련되는 다른 신택스 엘리먼트에 적용될 수 있다. 예를 들면, 본 발명에 따른 콘텍스트 기반의 코딩은, 신택스 엘리먼트 dictionary_pred_length_minus1, dictionay_pred_offset_minus1, 및 (dictionay_pred_offsetX, dictionay_pred_offsetY)의 길이에서 1을 뺀 것, 오프셋에서 1을 뺀 것, 및 오프셋 벡터를 각각 나타내기 위한 MSB 인덱스에 적용될 수 있다. 길이를 코딩하는 경우, 나머지 아직 코딩되지 않은 픽셀의 수에서 1을 뺀 것과 동일한 최대 런 값을 갖는 프리픽스 및 서픽스를 코딩하기 위해 트렁케이트된 시그널링이 활용될 수 있다. 오프셋 벡터를 코딩하는 경우, 본 발명에 따른 콘텍스트 기반의 코딩은 각각의 벡터 성분의 절대 값에 적용될 수 있다. 테이블 5 내지 7은, 상기에서 언급된 신택스 엘리먼트의 길이에서 1을 뺀 것, 오프셋에서 1을 뺀 것, 및 오프셋 벡터 (x, y) 각각에 대한 콘텍스트 선택을 위한 예시적인 매핑 테이블을 예시한다.
Figure 112016124212823-pct00007
Figure 112016124212823-pct00008
Figure 112016124212823-pct00009
인덱스 모드의 경우, 현재 팔레트 인덱스 및 런길이가 시그널링된다. 팔레트 인덱스는, 보통은, 관련된 런길이 이전에 시그널링된다. 본 발명의 다른 실시형태에서, 관련된 런길이는 팔레트 인덱스에 기초하여 콘텍스트 적응 코딩된다. 예를 들면, 현재 블록을 통한 스캐닝 순서로 현재 팔레트 인덱스와 동일한 팔레트 인덱스를 갖는 연속적인 픽셀의 수가 인덱스 모드에 대해 결정된다. 연속적인 픽셀의 수에서 1을 뺀 것은 이진화 방법을 사용하여 빈 스트링으로 변환된다. 빈 스트링은, 동일한 팔레트 인덱스에 의존하여 적응적으로 선택되는 콘텍스트에 따라 빈 스트링의 적어도 하나의 빈에 정규 CABAC 모드를 적용함으로써 콘텍스트 적응 이진 산술 코딩(CABAC)을 사용하여 인코딩된다. 대응하는 디코딩 프로세스는, 인코더에 의해 수행되는 단계의 역 단계를 수행할 것이다. 예를 들면, 디코더는, 인덱스 모드에 대응하는 현재 소스 심볼에 대한 현재 블록의 압축된 데이터를 포함하는 입력 코딩된 비트스트림을 수신할 수도 있다. 현재 런 모드와 관련되는 현재 팔레트 인덱스가 결정될 수 있다. 그 다음, 현재 팔레트 인덱스에 의존하여 적응적으로 선택되는 콘텍스트에 따라 빈 스트링의 적어도 하나의 빈에 정규 CABAC 모드를 적용함으로써 콘텍스트 적응 이진 산술 코딩(CABAC)을 사용하여 빈 스트링이 디코딩된다. 빈 스트링은, 이진화 방법을 사용하여 현재 팔레트 인덱스와 동일한 팔레트 인덱스를 갖는 연속적인 픽셀의 수에 관련되는 런길이 값으로 변환된다. 런길이 값은 연속적인 픽셀의 수에서 1을 뺀 것에 대응한다. 코딩된 연속적인 픽셀은 현재 블록을 통한 스캐닝 순서로 현재 팔레트 인덱스를 사용하여 재구성될 수 있다. 디코더측에서, 현재 팔레트 인덱스는, 재구성된 팔레트 인덱스 또는 입력 코딩된 비트스트림으로부터의 파싱된 팔레트 인덱스에 기초할 수도 있다.
도 2는 본 발명의 한 실시형태에 따른 소스 심볼에 대한 엔트로피 인코딩 시스템의 예시적인 플로우차트를 예시하는데, 이 경우 소스 심볼은 프리픽스 부분 및 서픽스 부분에서 표현되고 프리픽스 부분 및 서픽스 부분에 대한 이진 스트링은 CABAC을 사용하여 코딩된다. 시스템은 단계 210에서 도시되는 것과 같은 심볼 값의 세트에 속하는 현재 심볼 값을 갖는 현재 소스 심볼을 수신한다. 입력 데이터는 코딩될 현재 블록의 컬러 인덱스 또는 픽셀 데이터에 대응한다. 입력 데이터는 메모리(예를 들면, 컴퓨터 메모리, 버퍼(RAM 또는 DRAM) 또는 다른 매체)로부터 또는 프로세서로부터 검색될(retrieved) 수도 있다. 단계 220에서, 현재 심볼 값에 대한 MSB(최상위 비트) 인덱스 및 임의의 정제 비트가 결정된다. 단계 230에서, 1진 코드 또는 트렁케이트된 1진 코드를 사용하여 현재 심볼 값의 MSB 인덱스에 관련되는 프리픽스 부분을 이진화함으로써 제1 이진 스트링이 유도된다. 단계 240에서, 임의의 정제 비트가 존재하는 경우 트렁케이트된 이진 코드를 사용하여 또는 고정 길이 코드를 사용하여, 현재 심볼 값의 하나 이상의 정제 비트에 대응하는 서픽스 부분을 이진화함으로써, 제2 이진 스트링이 유도된다. 단계 250에서, 제1 이진 스트링은 CABAC(콘텍스트 적응 이진 산술 코딩)을 사용하여 인코딩되고, 제2 이진 스트링이 존재하는 경우 제2 이진 스트링도 또한 CABAC을 사용하여 인코딩된다.
도 3은 본 발명의 한 실시형태에 따른 소스 심볼에 대한 엔트로피 디코딩 시스템의 예시적인 플로우차트를 예시하는데, 이 경우 소스 심볼은 프리픽스 부분 및 서픽스 부분에서 표현되고 프리픽스 부분 및 서픽스 부분에 대한 이진 스트링은 CABAC을 사용하여 코딩된다. 단계 310에서, 시스템은 현재 소스 심볼에 대한 압축된 데이터를 포함하는 입력 코딩된 비트스트림을 수신한다. 입력 코딩된 비트스트림은 메모리(예를 들면, 컴퓨터 메모리, 버퍼(RAM 또는 DRAM) 또는 다른 매체)로부터 또는 프로세서로부터 검색될 수도 있다. 단계 320에서, 코딩된 비트스트림은, 제1 이진 스트링 및 임의의 제2 이진 스트링을 복원하기 위해 CABAC(콘텍스트 적응 이진 산술 코딩)을 사용하여 디코딩된다. 단계 330에서, 1진 코드 또는 트렁케이트된 1진 코드를 사용하여 제1 이진 스트링을 디코딩함으로써, 현재 소스 심볼의 현재 심볼 값의 MSB(최상위 비트) 인덱스에 관련되는 프리픽스 부분이 복원된다. 단계 340에서, 임의의 제2 이진 스트링이 존재하는 경우 트렁케이트된 이진 코드를 사용하여 또는 고정 길이 코드를 사용하여 제2 이진 스트링을 디코딩함으로써, 현재 심볼 값의 하나 이상의 정제 비트에 대응하는 서픽스 부분이 복원된다. 단계 350에서, 현재 소스 심볼은 임의 정제 비트가 존재하는 경우 현재 심볼 값의 임의의 정제 비트 및 MSB 인덱스에 기초하여 복원된다.
도시되는 플로우차트는, 본 발명에 따른, 프리픽스 부분 및 서픽스 부분을 사용하여 엔트로피 코딩하는 예시적인 예를 예시하도록 의도된다. 기술분야의 숙련된 자는, 본 발명의 취지를 벗어나지 않으면서 본 발명을 실시하기 위해, 각각의 단계를 수정하거나, 단계를 재정렬하거나, 단계를 분할하거나, 또는 단계를 결합할 수도 있다. 본 개시에서는, 본 발명의 실시형태를 구현하기 위한 예를 예시하기 위해 특정 신택스 및 의미론(semantics)이 사용되었다. 당업자는, 신택스 및 의미론을 본 발명의 취지를 벗어나지 않으면서 등가의 신택스 및 의미론을 대체함으로써 본 발명을 실시할 수도 있다.
상기의 설명은 기술분야에서 숙련된 자가 본 발명을 특정 애플리케이션 및 그 요건의 맥락에서 제공되는 대로 실시하는 것을 가능하게 하기 위해 제시된다. 설명된 실시형태에 대한 다양한 수정이 기술분야에서 숙련된 자에게는 명확할 것이고, 본원에서 정의되는 일반적인 원리는 다른 실시형태에 적용될 수도 있다. 따라서, 본 발명은 도시되고 설명된 특정 실시형태로 제한되도록 의도되는 것이 아니라, 본원에서 개시되는 원칙 및 신규한 특징과 일치하는 최광의의 범위를 부여받도록 의도된다. 상기 상세한 설명에서는, 본 발명의 완전한 이해를 제공하기 위해 다양한 특정 상세가 예시된다. 그럼에도 불구하고, 본 발명은 실시될 수도 있다는 것이 기술분야에서 숙련된 자에 의해 이해될 것이다.
상기에서 설명되는 바와 같은 본 발명의 실시형태는 다양한 하드웨어, 소프트웨어 코드, 또는 양자의 조합으로 구현될 수도 있다. 예를 들면, 본 발명의 한 실시형태는, 본원에서 설명되는 프로세싱을 수행하기 위한, 비디오 압축 칩에 집적되는 하나 이상의 전자 회로이거나 또는 비디오 압축 소프트웨어에 통합되는 프로그램 코드일 수 있다. 본 발명의 한 실시형태는 또한, 본원에서 설명되는 프로세싱을 수행하기 위한, 디지털 신호 프로세서Digital Signal Processor; (DSP) 상에서 실행될 프로그램 코드일 수도 있다. 본 발명은 또한, 컴퓨터 프로세서, 디지털 신호 프로세서, 마이크로프로세서, 또는 필드 프로그래머블 게이트 어레이(field programmable gate array; FPGA)에 의해 수행될 다수의 기능을 수반할 수도 있다. 이들 프로세서는, 본 발명에 의해 구체화되는 특정 방법을 정의하는 머신 판독가능 소프트웨어 코드 또는 펌웨어 코드를 실행함으로써, 본 발명에 따른 특정 작업을 수행하도록 구성될 수 있다. 소프트웨어 코드 또는 펌웨어 코드는 상이한 프로그래밍 언어 및 상이한 포맷 또는 스타일로 개발될 수도 있다. 소프트웨어 코드는 또한 상이한 타겟 플랫폼에 대해 컴파일될 수도 있다. 그러나, 소프트웨어 코드의 상이한 코드 포맷, 스타일 및 언어와 본 발명에 따른 작업을 수행하기 위해 코드를 구성하는 다른 수단은 본 발명의 취지와 범위로부터 벗어나지 않을 것이다.
본 발명은 본 발명의 취지 또는 본질적 특성으로부터 벗어나지 않으면서, 다른 특정 형태로 구체화될 수도 있다. 설명된 예는 제한적인 것이 아니라 모든 관점에서 단지 예시로서 간주되어야 한다. 따라서, 본 발명의 범위는 상기의 설명보다는 첨부된 특허청구범위에 의해 나타내어진다. 특허청구범위의 의미 및 그 등가적 범위 내에 있는 모든 변형예는 특허청구범위 범위 내에 포괄되어야 한다.

Claims (29)

  1. 비디오 코딩 시스템에서 생성되는 소스 심볼에 대한 엔트로피 코딩의 방법으로서,
    심볼 값의 세트에 속하는 현재 심볼 값을 갖는 현재 소스 심볼을 수신하는 단계;
    상기 현재 심볼 값에 대한 MSB(most significant bit; 최상위 비트) 인덱스 및 임의의 정제 비트(refinement bit)를 결정하는 단계;
    1진 코드(unary code) 또는 트렁케이트된 1진 코드(truncated unary code)를 사용하여 상기 현재 심볼 값의 상기 MSB 인덱스에 관련되는 프리픽스(prefix) 부분을 이진화함으로써 제1 이진 스트링을 유도하는 단계;
    임의의 정제 비트가 존재하면 고정 길이 코드 또는 트렁케이트된 이진 코드를 사용하여 상기 현재 심볼 값의 하나 이상의 정제 비트에 대응하는 서픽스(suffix) 부분을 이진화함으로써 제2 이진 스트링을 유도하는 단계; 및
    CABAC(context-adaptive binary arithmetic coding; 콘텍스트 적응 이진 산술 코딩)을 사용하여 상기 제1 이진 스트링을 인코딩하고, 상기 제2 이진 스트링이 존재하면 상기 CABAC을 사용하여 상기 제2 이진 스트링을 인코딩하는 단계
    를 포함하고,
    상기 현재 소스 심볼은 SCC(screen content coding; 스크린 컨텐츠 코딩)를 위한 팔레트(palette) 모드 코딩 블록 내의 연속적인 반복 팔레트 인덱스의 런길이(runlength)에서 1을 뺀 것을 나타내고,
    상기 현재 소스 심볼은 위쪽 행 내의 동일한 인덱스 패턴의 제1 런길이에서 1을 뺀 것을 나타내는 신택스 Copy_Above_Mode, 또는 동일한 행 내의 연속적인 제2 인덱스의 제2 런길이에서 1을 뺀 것을 나타내는 신택스 Index_Mode에 대응하고,
    상기 현재 소스 심볼이 상기 신택스 Index_Mode에 대응할 때, 제로와 동일한 빈 인덱스를 갖는 상기 제1 이진 스트링의 빈은 세 개의 콘텍스트를 갖는 정규 CABAC 모드에서 코딩되고, 상기 팔레트 인덱스가 제1 임계치(T1) 미만이면 제1 콘텍스트가 선택되며, 상기 팔레트 인덱스가 제1 임계치(T1) 이상이고 제2 임계치(T2) 미만이면 제2 콘텍스트가 선택되고, 상기 팔레트 인덱스가 제2 임계치(T2) 이상이면 제3 콘텍스트가 선택되며, 상기 제2 임계치(T2)는 상기 제1 임계치(T1)보다 더 큰 것인, 소스 심볼에 대한 엔트로피 코딩의 방법.
  2. 제1항에 있어서,
    상기 프리픽스 부분은 상기 MSB 인덱스에 1을 더한 것에 대응하는, 엔트로피 코딩의 방법.
  3. 제2항에 있어서,
    상기 프리픽스 부분은 x가 제로보다 크면 (floor(log2(x) + 1)과 동일하고, 상기 프리픽스 부분은 x가 제로와 동일하면 제로와 동일하며, 여기서, x는 상기 현재 심볼 값을 나타내고, floor(y)는 y 이하의 가장 큰 정수를 출력하는 바닥 함수(floor function)이고, log2()는 밑이 2인 로그 함수인, 엔트로피 코딩의 방법.
  4. 제1항에 있어서,
    상기 제1 이진 스트링의 빈(bin)은, 상기 빈이 임계 값 T 이하의 빈 인덱스를 가지면 정규(regular) CABAC 모드에서 코딩되고, 상기 빈이 상기 임계 값 T보다 더 큰 상기 빈 인덱스를 가지면 바이패스 모드에서 코딩되는, 엔트로피 코딩의 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 제1 이진 스트링은 (floor(log2((MaxPaletteRun)) + 1)과 동일한 최대 값을 갖는 트렁케이트된 1진 코드를 사용하여 상기 프리픽스 부분을 이진화함으로써 유도되고, 여기서, floor(y)는 y 이하의 가장 큰 정수를 출력하는 바닥 함수이며, log2()는 밑이 2인 로그 함수이고, MaxPaletteRun은 현재 코딩 유닛(coding unit; CU) 내의 나머지 아직 코딩되지 않은 픽셀의 수에서 1을 뺀 것과 동일한, 엔트로피 코딩의 방법.
  7. 제1항에 있어서,
    상기 제2 이진 스트링은 (MaxPaletteRun - (1 << (palette_run_msb_id_plus1-1)))과 동일한 최대 값을 갖는 상기 트렁케이트된 이진 코드를 사용하여 상기 서픽스 부분을 이진화함으로써 유도되고, 여기서, MaxPaletteRun은 현재 코딩 유닛(CU) 내의 나머지 아직 코딩되지 않은 픽셀의 수에서 1을 뺀 것과 동일하며, palette_run_msb_id_plus1은 상기 프리픽스 부분의 값을 나타내는, 엔트로피 코딩의 방법.
  8. 제1항에 있어서,
    상기 CABAC은 상기 연속적인 반복 팔레트 인덱스의 런 타입을 조건으로 하고, 정규 CABAC 모드는 상기 제1 이진 스트링 또는 상기 제2 이진 스트링의 하나 이상의 빈에 적용되는, 엔트로피 코딩의 방법.
  9. 삭제
  10. 삭제
  11. 제1항에 있어서,
    상기 제1 임계치(T1)는 2와 동일하고 상기 제2 임계치(T2)는 4 또는 8과 동일한, 엔트로피 코딩의 방법.
  12. 제1항에 있어서,
    상기 현재 소스 심볼은 2차원의 부호가 있는 또는 부호가 없는 소스 벡터의 제1 성분 또는 제2 성분의 절대 값에 대응하는, 엔트로피 코딩의 방법.
  13. 제12항에 있어서,
    상기 프리픽스 부분은 상기 서픽스 부분 및 임의의 부호 비트 이전에 인코딩되는, 엔트로피 코딩의 방법.
  14. 비디오 코딩 시스템에서 생성되는 소스 심볼에 대한 엔트로피 디코딩의 방법으로서,
    현재 소스 심볼에 대한 압축된 데이터를 포함하는 입력 코딩된 비트스트림(input coded bitstream)을 수신하는 단계;
    제1 이진 스트링 및 임의의 제2 이진 스트링을 복원하기 위해 CABAC(콘텍스트 적응 이진 산술 코딩)을 사용하여, 상기 코딩된 비트스트림을 디코딩하는 단계;
    1진 코드 또는 트렁케이트된 1진 코드를 사용하여 상기 제1 이진 스트링을 디코딩함으로써, 상기 현재 소스 심볼의 현재 심볼 값의 MSB(최상위 비트) 인덱스에 관련되는 프리픽스 부분을 복원하는 단계;
    임의의 제2 이진 스트링이 존재하면 고정 길이 코드 또는 트렁케이트된 이진 코드를 사용하여 상기 제2 이진 스트링을 디코딩함으로써 상기 현재 심볼 값의 하나 이상의 정제 비트에 대응하는 서픽스 부분을 복원하는 단계; 및
    임의의 정제 비트가 존재하면 상기 현재 심볼 값의 상기 MSB 인덱스 및 임의의 정제 비트에 기초하여 상기 현재 소스 심볼을 복원하는 단계
    를 포함하고,
    상기 현재 소스 심볼은 SCC(스크린 컨텐츠 코딩)를 위한 팔레트 모드 코딩 블록 내의 연속적인 반복 팔레트 인덱스의 런길이에서 1을 뺀 것을 나타내고,
    상기 현재 소스 심볼은 위쪽 행 내의 동일한 인덱스 패턴의 제1 런길이에서 1을 뺀 것을 나타내는 신택스 Copy_Above_Mode, 또는 동일한 행 내의 연속적인 제2 인덱스의 제2 런길이에서 1을 뺀 것을 나타내는 신택스 Index_Mode에 대응하고,
    상기 현재 소스 심볼이 상기 신택스 Index_Mode에 대응할 때, 제로와 동일한 빈 인덱스를 갖는 상기 제1 이진 스트링의 빈은 세 개의 콘텍스트를 갖는 정규 CABAC 모드에서 코딩되고, 상기 팔레트 인덱스가 제1 임계치(T1) 미만이면 제1 콘텍스트가 선택되며, 상기 팔레트 인덱스가 제1 임계치(T1) 이상이고 제2 임계치(T2) 미만이면 제2 콘텍스트가 선택되고, 상기 팔레트 인덱스가 제2 임계치(T2) 이상이면 제3 콘텍스트가 선택되며, 상기 제2 임계치(T2)는 상기 제1 임계치(T1)보다 더 큰 것인, 소스 심볼에 대한 엔트로피 디코딩의 방법.
  15. 제14항에 있어서,
    상기 프리픽스 부분은 상기 MSB 인덱스에 1을 더한 것에 대응하는, 엔트로피 디코딩의 방법.
  16. 제15항에 있어서,
    상기 프리픽스 부분은, x가 제로보다 크면 (floor(log2(x) + 1)과 동일하고, 상기 프리픽스 부분은, x가 제로와 동일하면 제로와 동일하며, 여기서, x는 상기 현재 심볼 값을 나타내고, floor(y)는 y 이하의 가장 큰 정수를 출력하는 바닥 함수이며, log2()는 밑이 2인 로그 함수인, 엔트로피 디코딩의 방법.
  17. 제14항에 있어서,
    상기 제1 이진 스트링의 빈은, 상기 빈이 임계 값 T 이하의 빈 인덱스를 가지면 정규 CABAC 모드에서 코딩되고, 상기 빈이 상기 임계 값 T보다 더 큰 상기 빈 인덱스를 가지면 바이패스 모드에서 코딩되는, 엔트로피 디코딩의 방법.
  18. 삭제
  19. 제14항에 있어서,
    상기 제1 이진 스트링은 (floor(log2((MaxPaletteRun)) + 1)과 동일한 최대 값을 갖는 트렁케이트된 1진 코드를 사용하여 상기 프리픽스 부분을 이진화함으로써 유도되고, 여기서, floor(y)는 y 이하의 가장 큰 정수를 출력하는 바닥 함수이며, log2()는 밑이 2인 로그 함수이고, MaxPaletteRun은 현재 코딩 유닛(CU) 내의 나머지 아직 코딩되지 않은 픽셀의 수에서 1을 뺀 것과 동일한, 엔트로피 디코딩의 방법.
  20. 제14항에 있어서,
    상기 제2 이진 스트링은 (MaxPaletteRun - (1 << (palette_run_msb_id_plus1-1)))과 동일한 최대 값을 갖는 상기 트렁케이트된 이진 코드를 사용하여 상기 서픽스 부분을 이진화함으로써 유도되고, 여기서, MaxPaletteRun은 현재 코딩 유닛(CU) 내의 나머지 아직 코딩되지 않은 픽셀의 수에서 1을 뺀 것과 동일하며, palette_run_msb_id_plus1은 상기 프리픽스 부분의 값을 나타내는, 엔트로피 디코딩의 방법.
  21. 제14항에 있어서,
    상기 CABAC은 상기 연속적인 반복 팔레트 인덱스의 런 타입을 조건으로 하고, 정규 CABAC 모드는 상기 제1 이진 스트링 또는 상기 제2 이진 스트링의 하나 이상의 빈에 적용되는, 엔트로피 디코딩의 방법.
  22. 제21항에 있어서,
    상기 팔레트 인덱스는 파싱되거나 재구성되는, 엔트로피 디코딩의 방법.
  23. 삭제
  24. 삭제
  25. 제14항에 있어서,
    상기 제1 임계치(T1)는 2와 동일하고 상기 제2 임계치(T2)는 4 또는 8과 동일한, 엔트로피 디코딩의 방법.
  26. 제14항에 있어서,
    상기 현재 소스 심볼은 2차원의 부호가 있는 또는 부호가 없는 소스 벡터의 제1 성분 또는 제2 성분의 절대 값에 대응하는, 엔트로피 디코딩의 방법.
  27. 삭제
  28. 삭제
  29. 삭제
KR1020167035475A 2014-06-20 2015-06-18 비디오 코딩에서의 신택스에 대한 이진화 및 컨텍스트 적응 코딩의 방법 및 장치 KR101887798B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201462014970P 2014-06-20 2014-06-20
US62/014,970 2014-06-20
US201462017401P 2014-06-26 2014-06-26
US62/017,401 2014-06-26
US201462020518P 2014-07-03 2014-07-03
US62/020,518 2014-07-03
US201462021287P 2014-07-07 2014-07-07
US62/021,287 2014-07-07
PCT/CN2015/081751 WO2015192779A1 (en) 2014-06-20 2015-06-18 Method and apparatus of binarization and context-adaptive coding for syntax in video coding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020187004798A Division KR101943805B1 (ko) 2014-06-20 2015-06-18 비디오 코딩에서의 신택스에 대한 이진화 및 컨텍스트 적응 코딩의 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20170008288A KR20170008288A (ko) 2017-01-23
KR101887798B1 true KR101887798B1 (ko) 2018-08-10

Family

ID=54934881

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167035475A KR101887798B1 (ko) 2014-06-20 2015-06-18 비디오 코딩에서의 신택스에 대한 이진화 및 컨텍스트 적응 코딩의 방법 및 장치
KR1020187004798A KR101943805B1 (ko) 2014-06-20 2015-06-18 비디오 코딩에서의 신택스에 대한 이진화 및 컨텍스트 적응 코딩의 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020187004798A KR101943805B1 (ko) 2014-06-20 2015-06-18 비디오 코딩에서의 신택스에 대한 이진화 및 컨텍스트 적응 코딩의 방법 및 장치

Country Status (7)

Country Link
US (2) US10382759B2 (ko)
EP (1) EP3138288B1 (ko)
JP (2) JP6352452B2 (ko)
KR (2) KR101887798B1 (ko)
CN (2) CN110691244B (ko)
CA (2) CA3077920C (ko)
WO (1) WO2015192779A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9503717B2 (en) * 2012-01-09 2016-11-22 Texas Instruments Incorporated Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
GB2521828A (en) * 2013-12-23 2015-07-08 Sony Corp Data encoding and decoding
KR20160037111A (ko) * 2014-09-26 2016-04-05 주식회사 케이티 비디오 신호 처리 방법 및 장치
WO2016064123A1 (ko) * 2014-10-20 2016-04-28 주식회사 케이티 비디오 신호 처리 방법 및 장치
CN111800632B (zh) * 2015-01-15 2024-03-29 株式会社Kt 对编码视频信号解码的方法和对视频信号编码的方法
WO2016122251A1 (ko) * 2015-01-29 2016-08-04 주식회사 케이티 비디오 신호 처리 방법 및 장치
WO2016122253A1 (ko) * 2015-01-29 2016-08-04 주식회사 케이티 비디오 신호 처리 방법 및 장치
US20160234494A1 (en) * 2015-02-10 2016-08-11 Qualcomm Incorporated Restriction on palette block size in video coding
EP3282706A4 (en) * 2015-04-02 2019-01-30 KT Corporation METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNAL
CN107770541A (zh) * 2016-08-21 2018-03-06 上海天荷电子信息有限公司 设截断值对一组编码参数进行编码的数据压缩方法和装置
CN108989825B (zh) * 2018-07-18 2021-05-07 北京奇艺世纪科技有限公司 一种算术编码方法、装置及电子设备
CN116684643A (zh) * 2018-12-06 2023-09-01 Lg电子株式会社 解码设备、编码设备和数据发送设备
CN113228685B (zh) * 2018-12-19 2023-08-04 Lg电子株式会社 用于基于二次变换编码图像的方法及其装置
CN113841237A (zh) 2019-05-30 2021-12-24 三菱电机株式会社 功率半导体模块以及电力变换装置
US11284073B2 (en) * 2019-07-08 2022-03-22 Hyundai Motor Company Method and apparatus for intra prediction coding of video data involving matrix based intra-prediction
US11076151B2 (en) * 2019-09-30 2021-07-27 Ati Technologies Ulc Hierarchical histogram calculation with application to palette table derivation
KR20230070534A (ko) * 2019-10-09 2023-05-23 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 광 흐름에 의한 예측 개선, 양방향 광 흐름 및 디코더 측 움직임 벡터 개선을 위한 방법들 및 장치들
CN114079780A (zh) * 2020-08-20 2022-02-22 腾讯科技(深圳)有限公司 视频解码方法、视频编码方法、装置、设备及存储介质
CN112532990B (zh) * 2020-11-23 2024-03-08 绍兴文理学院 一种串长度参数编码、解码方法和装置
CN115086664A (zh) * 2021-03-13 2022-09-20 腾讯科技(深圳)有限公司 未匹配像素的解码方法、编码方法、解码器以及编码器
CN113422964A (zh) * 2021-06-04 2021-09-21 绍兴市北大信息技术科创中心 一种串长度参数编解码方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009534886A (ja) 2006-04-18 2009-09-24 トムソン ライセンシング 算術符号化方法及びデバイス

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1988703A1 (en) * 2007-05-02 2008-11-05 TTPCOM Limited Image transformation
CN101350882B (zh) * 2007-07-17 2010-04-14 鸿富锦精密工业(深圳)有限公司 图片增色系统及方法
US7903873B2 (en) * 2007-09-13 2011-03-08 Microsoft Corporation Textual image coding
US8457425B2 (en) * 2009-06-09 2013-06-04 Sony Corporation Embedded graphics coding for images with sparse histograms
WO2012134246A2 (ko) * 2011-04-01 2012-10-04 엘지전자 주식회사 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치
EP4220966A1 (en) 2011-06-24 2023-08-02 Sun Patent Trust Image decoding device,
CN105554510B (zh) 2011-06-28 2019-06-28 三星电子株式会社 对视频进行解码的方法和设备
EP2988511A1 (en) 2011-08-04 2016-02-24 MediaTek Inc. Method and apparatus for reordered binarization of syntax elements in cabac
WO2013106987A1 (en) 2012-01-16 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of bypass coding and reducing contexts for some syntax elements
US20130336386A1 (en) * 2012-06-18 2013-12-19 Qualcomm Incorporated Sample adaptive offset (sao) coding
CN102750385B (zh) * 2012-06-29 2014-05-07 南京邮电大学 基于标签检索的相关性—质量排序图像检索方法
US11259020B2 (en) * 2013-04-05 2022-02-22 Qualcomm Incorporated Determining palettes in palette-based video coding
KR102275639B1 (ko) * 2013-10-14 2021-07-08 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 영상 코딩 및 디코딩에 대한 기본 색상 인덱스 맵 모드의 특징
US9826242B2 (en) 2014-03-14 2017-11-21 Qualcomm Incorporated Palette-based video coding
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
US10158866B2 (en) 2014-09-26 2018-12-18 Qualcomm Incorporated Parsing dependency reduction for palette index coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009534886A (ja) 2006-04-18 2009-09-24 トムソン ライセンシング 算術符号化方法及びデバイス

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
S-T Hsiang et al: "AHG8: Coding the prediction difference of the intra BC vectors", no. JCTVC-Q0095-v4, 28 March 2014.
S-T Hsiang et al: "Modified method for Coding mvd in the CABAC mode", MPEG Meetings, no. m21768, 23 November 2011.

Also Published As

Publication number Publication date
US11082695B2 (en) 2021-08-03
JP6661699B2 (ja) 2020-03-11
CN110691244B (zh) 2022-07-08
EP3138288B1 (en) 2020-12-23
JP2017525220A (ja) 2017-08-31
US10382759B2 (en) 2019-08-13
JP2018170771A (ja) 2018-11-01
US20180205951A1 (en) 2018-07-19
CN110691244A (zh) 2020-01-14
CA2950818A1 (en) 2015-12-23
KR20180021229A (ko) 2018-02-28
CA2950818C (en) 2020-12-22
CA3077920A1 (en) 2015-12-23
KR20170008288A (ko) 2017-01-23
EP3138288A4 (en) 2018-03-28
KR101943805B1 (ko) 2019-01-29
US20190306508A1 (en) 2019-10-03
EP3138288A1 (en) 2017-03-08
CN106416246B (zh) 2019-09-17
WO2015192779A1 (en) 2015-12-23
CN106416246A (zh) 2017-02-15
JP6352452B2 (ja) 2018-07-04
CA3077920C (en) 2021-11-09

Similar Documents

Publication Publication Date Title
KR101887798B1 (ko) 비디오 코딩에서의 신택스에 대한 이진화 및 컨텍스트 적응 코딩의 방법 및 장치
US10506234B2 (en) Method of run-length coding for palette predictor
US10819981B2 (en) Method and apparatus for entropy coding of source samples with large alphabet
CN107005717B (zh) 索引映射编解码中的跳出像素编解码方法
CN110519604B (zh) 索引映射编解码中的跳出像素编解码方法
US20180076826A1 (en) Methods and apparatus for unified significance map coding
KR101982829B1 (ko) 팔레트 테이블 예측 및 시그널링을 위한 방법과 장치
CN107251555B (zh) 编解码视频数据的方法和装置
CN108141621B (zh) 编解码视频数据的方法及装置
WO2013063800A1 (en) Methods and apparatuses of solving mdcs parsing issue

Legal Events

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