KR20140132350A - 이진 산술 코딩 방식 - Google Patents
이진 산술 코딩 방식 Download PDFInfo
- Publication number
- KR20140132350A KR20140132350A KR1020147024402A KR20147024402A KR20140132350A KR 20140132350 A KR20140132350 A KR 20140132350A KR 1020147024402 A KR1020147024402 A KR 1020147024402A KR 20147024402 A KR20147024402 A KR 20147024402A KR 20140132350 A KR20140132350 A KR 20140132350A
- Authority
- KR
- South Korea
- Prior art keywords
- mps
- binary arithmetic
- lps
- negative integer
- max
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
- H03M7/4012—Binary arithmetic codes
- H03M7/4018—Context adapative binary arithmetic codes [CABAC]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
- H03M7/4012—Binary arithmetic codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
- H03M7/4037—Prefix coding
- H03M7/4081—Static prefix 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
이진 산술 코딩 방식은 특히 낮은 계산 복잡도로 음이 아닌 정수 값을 인코딩하고 디코딩하는 기능에 의해 확장된다. 음이 아닌 정수 값의 단항 이진화와 함께 단일 재규격화 사이클 내에서 다수의 MPS(가장 확률이 높은 심볼)를 처리한다. 그것은 재규격화 전에 다수의 MPS의 결정을 포함한다. 정수가 아닌 값이 재규격화 전에 다수의 MPS보다 작을 경우, 그것은 모든 MPS가 재규격화 사이클을 트리거하지 않고 인코딩될 수 있음을 초래한다. 그런 다음 한 LPS는 인코딩된다. 이것은 계수의 음이 아닌 정수 값의 단항 이진화를 이용하는데 효과적이다.
Description
본 출원은 예를 들어 코딩 변환 계수 레벨에 이용되는 이진 산술 코딩에 관한 것이다.
산술 코딩 방식에 대한 예로서 H.264에서 사용된 CABAC가 있다.
본 발명의 목적은 보다 효율적인 이진 산술 코딩 방식을 제공하는 것이다.
이러한 목적은 첨부된 독립항의 발명의 대상(subject matter)에 의해 달성된다.
유익한 구현은 종속항의 주제이다. 더욱이, 바람직한 실시예는 도면과 관련하여 아래에 설명된다.
도 1은 변환 계수의 블록과 이 사이에서 정의된 스캔 순서에 대한 예를 도시한다.
도 2는 변환 계수 레벨의 이진화를 위한 예를 도시한다.
도 3은 각각의 변환 계수 레벨이 실제로 해당 변환 계수에 의해 추정되는 확률을 각각의 가능한 변환 계수 레벨 x에 관련시킨 예시적인 그래프를 도시한다.
도 2는 변환 계수 레벨의 이진화를 위한 예를 도시한다.
도 3은 각각의 변환 계수 레벨이 실제로 해당 변환 계수에 의해 추정되는 확률을 각각의 가능한 변환 계수 레벨 x에 관련시킨 예시적인 그래프를 도시한다.
다음의 이진 산술 코딩 방식에서, 종래의 현재 기술 레벨의 테이블 기반 이진 산술 인코딩 및 디코딩 방식은 특히 낮은 계산 복잡도로 음이 아닌 정수를 인코딩하고 디코딩하기 위한 기능에 의해 확장된다. 그것은 음이 아닌 정수 값의 단항 이진화와 함께 이진 산술 인코딩 및 디코딩 엔진의 단일 재규격화 주기 내에서 다수의 MPS를 처리하는 기술을 이용한다. 종래의 빈(bin)을 인코딩하고 디코딩할 능력이 유지되고, 다음의 실시예에서 설명되는 바와 같이 새로운 알고리즘을 이용하여 음이 아닌 정수의 인코딩 및 디코딩과 임의로 인터리빙될 수 있다. 더욱이, 음이 아닌 정수에 대해 생성된 코드 길이는 Exponential-Golomb 코드 또는 Golomb-Rice 코드 또는 둘 다의 조합의 길이와 유사하도록 구성될 수 있다.
아래에 설명된 코딩 방식 및 이의 실시예의 원리 및 이점을 이해하기 위해, 다음과 같은 타입의 테이블 기반의 이진 산술 인코더/디코더 쌍이 상상된다. 주어진 빈의 대표적인 LPS/LPB 확률 PLPS로부터 대응하는 코드 간격 폭 RLPS으로의 매핑, 즉, 현재 간격 폭 R 및 현재 간격 오프셋 L에 의해 정의되고, 예를 들어 코드 간격의 하한계(lower bound)를 식별하는 이진 산술 코딩 엔진의 내부 상태의 간격 세분화(interval subdivision)는 테이블 룩업을 이용함으로써 실현된다. 테이블 기반의 이진 산술 코딩 엔진에 대해 K 대표적인 간격 폭 값{Q0, ..., QK- 1}은 R을 나타내는데 이용되었고, S 대표적인 확률 값{P0, ..., PS- 1}은 확률 추정치 p를 나타내는데 이용되었으며, LPS는 이와 관련될 수 있다고 상상한다. 따라서, 빈의 산술 인코딩 및 디코딩은 현재 간격 폭 R을 {0, ..., K-1}에서의 값으로 양자화 인덱스 q에 매핑하고, 대응하는 부분 간격 폭 값Qq과 인덱스로서 q 및 p_state를 이용하는 룩업 테이블 Rtab로부터의 현재 빈과 관련된 LPS에 대한 확률 추정치 Pp_state의 곱에 대한 곱 값(product value)을 액세스함으로써 간격 세분화를 수행하는 하위 단계를 포함할 수 있다.
이진 산술 인코딩 엔진은 빈을 코딩할 시에 다음의 단계를 수행할 수 있다:
1. valLPS, p_state, 및 bin을 수신함.
2. R의 양자화:
q_index = Qtab[R>>q] (또는 어떤 다른 형식의 양자화; K 양자화 레벨이 이용 가능함)
3. RLPS 및 RMPS의 결정:
RLPS = Rtab [p_state][q_index] (Rtab은 p[p_state]·Q[q_index])에 대한 미리 계산된 값을 저장하였다는 것을 주목한다)
RMPS = R - RLPS(즉, 인코더는 간격을 두 부분으로 나눈다)
4. 새로운 부분 간격의 계산:
(bin = 1 - valMPS)이면 {
L ← L + RMPS(즉, L로부터 바로 확장하는 현재 간격R의 하위 부분은 MPS와 관련됨)
R ← RLPS}
그 밖에
R ← RMPS
5. L 및 R의 재규격화, 비트를 기록,
( R < Rmin) {
R ← R << 1
L ← L << 1
1 비트를 비트스트림에 기록}
여기서
q_index는 Qtab에서 판독된 양자화 값의 인덱스를 나타내고,
p_state는 현재 상태를 나타내고,
RLPS는 LPS에 대응하는 간격 폭을 나타내고,
RMPS는 MPS에 대응하는 간격 폭을 나타내고,
Rmin는 R에 대해 최소 허용된 값을 나타내고,
valMPS은 MPS에 대응하는 비트의 값을 나타내며,
V는 현재의 부분 간격의 내부로부터의 값을 나타낸다.
다음에서, 음수가 아닌 정수 값의 인코딩 및 디코딩을 수행하는 위의 이진 산술 인코더/디코더 쌍에 대한 확장이 설명된다. 이를 달성하기 위해, 하나의 LPS가 뒤따르는 음이 아닌 정수 값과 동일한 다수의 MPS로 이루어지는 음이 아닌 정수 값의 단항 표현이 형성된다. 음이 아닌 정수 값의 인코딩 및 디코딩을 위해, 2의 s 제곱은 멀티 MPS 인코딩 및 디코딩을 수행하기 위해 인코딩 및 디코딩 프로세스 동안에 도출하는 대신에 음이 아닌 정수 값의 분포에 따라 초기 RLPS로 선택된다. 인코딩 및 디코딩 프로세스 동안, 이러한 매개 변수는 재규격화 사이클이 수행될 때마다 미리 정의된 규칙에 따라 갱신된다. 이러한 미리 정의된 규칙은 1씩 s를 간단히 감소시킬 수 있는데, 이는 현재의 정수 값의 코딩 프로세스의 시작 이후 uth 재규격화 사이클 후 처음 수행되고 나서, 미리 정의된 최소값 smin을 달성할 때까지 각각의 추가의 재규격화에서 수행된다.
이진 산술 인코딩 엔진은 음이 아닌 정수 값을 인코딩하기 위해 다음의 단계를 수행할 수 있다:
1. 인코딩되는 음이 아닌 정수 값 c와 RLPS를 도출하는데 이용되는 관련된 매개 변수 s를 수신한다(RLPS는 명시적으로 이용되지 않고, 암묵적으로만 이용된다).
2. 현재 정수 값에 대한 재규격화 카운트를 0으로 초기화한다:
nrenorm ← 0
3. 재규격화 cmps 전에 MPS의 수의 결정:
cmps ← 1 + (( R - Rmin )>> s)
4. 모든 MPS가 인코딩될 때까지 루프:
(c >= cmps)이면 {
R ← R - (cmps << s)
R ← R << 1
L ← L << 1
1 비트를 비트스트림에 기록
(nrenorm >= u && s > smin)이면 {
s ← s - 1 }
c ← c - cmps
nrenorm = nrenorm + 1
단계 3으로 계속. }
그 밖에
R ← R - ( c << s )
c = 0
5. 종단 LPS와 L 및 R의 최종 재규격화의 인코딩, 비트 기록:
numRenorm = log2(Rmin)-s
L ← (L + R - (1 << s)) << numRenorm
R ← Rmin
"numRenorm" 비트를 비트스트림에 기록
여기서
c는 인코딩되는 정수 값을 나타낸다.
cmps는 재규격화 사이클이 필요할 때까지 인코딩될 수 있는 mps의 수를 나타낸다.
Rmin은 R에 대해 최소 허용된 값을 나타낸다(2의 거듭 제곱이어야 한다).
단계 4에서, 재규격화 cmps까지 mps의 최대 수는 인코딩될 값c과 비교된다. c가 cmps보다 작으면, 이것은 모든 mps가 나중에 재규격화 사이클을 트리거하지 않고 인코딩될 수 있음을 나타낸다. 그렇지 않으면, (c는 cmps보다 크거나 같다), 정확히 말하면, cmps mps는 재규격화가 필요하기 전에 인코딩될 수 있다. 이러한 재규격화가 적용된 후, c는 cmps에 의해 감소되고, 절차는 단계 3에서 계속된다. 모든 mps가 이러한 절차로 인코딩된 후, 하나의 LPS를 인코딩하는 것에 대응하는 단계 5가 적용된다. 재규격화는 RLPS가 임의의 값을 취할 수 있는 경우에서보다 덜 복잡하다. RLPS가 2의 거듭 제곱이므로(지수가 RLPS에서 그것을 계산할 필요없이 매개 변수 s로 이용할 수 있다), 재규격화 사이클의 수 numBits는 log2(RMIN)-s로 계산된다. 따라서, R은 그것을 R ← (1<<s) << (log2(RMIN)-s)에 의해 계산하는 대신에 RMIN에 즉시 설정될 수 있다.
따라서, 이진 산술 디코딩 엔진은 음이 아닌 정수 값을 디코딩할 시에 다음의 단계를 수행할 수 있다:
1. 음이 아닌 정수 값 c와 RLPS를 도출하는데 이용되는 관련된 매개 변수 s를 디코딩하기 위한 요청을 수신한다(RLPS는 명시적으로 이용되지 않고, 암묵적으로만 이용된다).
2. 현재 정수 값을 0으로 초기화한다:
c ← 0
3 현재 정수 값에 대한 재규격화 카운트를 0으로 초기화한다:
nrenorm ← 0
4. LPS가 발생하기 전에 mps cmax의 수의 결정:
cmax = (R - 1 - V) >> s
5. 재규격화가 발생하기 전에 mps cmps의 최대 수의 결정:
cmps = 1 + ( ( R - Rmin) >> s )
6. 모든 MPS가 디코딩될 때까지 루프:
(cmax > 0)이면 {
(cmax > cmps)이면 {
R ← R - (cmps << s)
R ← R << 1
비트 ← 비트스트림에서 1 비트를 판독
V ← (V << 1) + 비트
c ← c + cmps
(nrenorm >= u && s > smin)이면 {
s ← s - 1}
nrenorm = nrenorm + 1
} 그 밖에 {
c ← c + cmax
R ← R - (cmax << s)}
단계 4로 계속. }
7. 종단 LPS를 디코딩:
numRenorm = log2(Rmin)-s
V ← (V - R + (1 << s)) << numRenorm
비트 ← 비트스트림에서 "numRenorm" 비트를 판독
V ← V + 비트
R ← Rmin
여기서
c는 디코딩되는 정수 값을 나타낸다.
cmax는 LPS가 발생할 때까지 디코딩될 수 있는 MPS의 수를 나타낸다.
cmps는 재규격화 사이클이 필요할 때까지 디코딩될 수 있는 MPS의 수를 나타낸다.
Rmin은 R에 대해 최소 허용된 값을 나타낸다(2의 거듭 제곱이어야 한다).
V는 현재의 부분 간격의 내부에서의 값을 나타낸다.
일반적으로, 매개 변수 s에 대한 양호한 선택은 log2(Rmin) 마이너스 k인 것으로 밝혀졌다.
그 다음, 최종 재규격화(종단 LPS에 뒤따르는 것)가 수정되는 실시예가 설명된다. 설명된 실시예에서, 최종 재규격화는 결과적으로 R을 Rmin로 설정한다(인코더에서는 단계 5 및 디코더에서는 단계 7을 참조). 다음 인코딩 또는 디코딩된 빈 후에, R이 (MPS 또는 LPS가 발생한 여부와 관계없이) 적어도 1만큼 감소되기 때문에 재규격화는 어떤 경우에 필요하다. 이러한 재규격화는 다음과 같은 발명의 단계를 이용하여 이전의 재규격화와 조합될 수 있다.
인코더에서의 단계 5는 다음으로 대체된다:
5. 종단 LPS와 L 및 R의 최종 재규격화의 인코딩, 비트 기록:
numRenorm = 1 + log2(Rmin)-s
L ← (L + R - (1 << s)) << numRenorm
R ← 2*(Rmin - 1)
"numRenorm" 비트를 비트스트림에 기록
디코더에서의 단계 7은 다음으로 대체된다:
7. 종단 LPS를 디코딩:
numRenorm = 1 + log2(Rmin)-s
V ← (V - R + (1 << s)) << numRenorm
비트 ← 비트스트림에서 "numRenorm" 비트를 판독
V ← V + 비트
R ← 2*(Rmin - 1)
이러한 수정은 최종 LPS 후에 재규격화의 수를 1씩 증가시키고, 그 후, R은 그것이 Rmax를 초과하지 않게 하기 위해 2씩 감소된다(Rmax은 최대 값 R이 취할 수 있는 것이다). 2씩의 R의 이러한 감소는 (2와 동일한 RLPS을 가진 MPS가 인코딩된 것처럼) 약간의 비트 레이트 오버헤드에 대응한다. 이점으로, 1씩의 재규격화 사이클의 수의 인위적인 증가는 추가적인 계산 복잡성 없이 제공되며, 따라서 저장된다. 즉, 이러한 수정이 없는 경우와 비교하면, 재규격화는 별도로 발생하고, 재규격화에 필요한 모든 계산 단계를 필요로 한다.
그 다음, R의 값에 따라 인코딩 또는 디코딩 절차를 실행하기 전에 매개 변수 u가 수정되는 실시예가 설명된다. 임계값 Rthr은 u가 1씩 증가되어야 하는지의 여부를 판단하기 위해 정의되고 이용된다. 인코더 및 디코더에서, 단계 1 전에 다음의 단계가 실행된다:
단계 0: (R < Rthr)이면 {
u ← u + 1}
이것은 R이 임계값 Rthr 아래인 경우에 1 재규격화 사이클만큼 s를 감소시키는 프로세스를 지연하는 것에 대응한다. 이점으로, Rmin에 가까운 R의 값에 대해, s가 초기에 감소되는 것이 방지된다. R이 Rmin와 같고, R이 음이 아닌 정수 값의 인코딩 또는 디코딩의 시초에서 Rmax와 같은 두 극단적인 경우와 u = 0를 상상한다. R이 Rmin와 같은 경우에, 제 1 MPS 직후, 재규격화는 트리거되고, s는 1씩 감소된다. 이것은 결과적으로 1씩 감소되는 s를 이용하여 제 1 MPS 후에 모든 MPS를 인코딩한다. R이 (우연히) Rmin 대신에 Rmax와 같지 않으면, 많은 MPS는 제 1 재규격화 사이클 전에 인코딩되고 나서, s는 처음 1씩 감소되었다. 본 실시예의 기술을 이용함으로써, s의 제 1 변화 전의 MPS의 평균 수는 증가된다.
그 다음, 최대값 cm이 음이 아닌 정수에 대해 정의되는 실시예가 설명된다. c가 cm과 같은 경우에, 최종 LPS는 인코딩 또는 디코딩되지 않는다. 이것은 절단된 단항 표현(truncated unary representation)에 대응한다. 인코더에서, 단계 5는 원래 인코딩되는 음이 아닌 정수 값이 cm와 같은 경우에는 스킵될 필요가 있다. 디코더에서, 단계 7은 (단계 7이 입력될 때에) c가 cm과 동일하고, 더욱이, 단계 4가 다음으로 것으로 치환되는 경우에 스킵될 필요가 있다:
4. LPS가 발생하기 전에 mps cmax의 수의 결정:
cmax = (R - 1 - V) >> s
(c + cmax > cm)이면 {
cmax ← cm - c }
바람직한 실시예에서, 위의 실시예는 현재 HEVC 변환 계수 코딩 부분에 사용되는 Golomb-Rice 코드 워드 및 Exponential-Golomb 코드 워드의 연결(concatenation)을 대체하는데 이용될 수 있다. 이러한 경우에, 절대 변환 계수 레벨이 2보다 크면, 이의 값 마이너스 3은 Golomb-Rice 코드 및 Exponential-Golomb 코드의 연결을 이용하여 이진화되고 인코딩된다. 본 실시예에서, 이러한 값 마이너스 3은 상술한 방식 중 어느 하나를 이용하여 인코딩된다. RMIN은 이 예에서 256으로 설정될 수 있다. HEVC에서 2 보다 큰 각각의 절대 변환 계수 레벨 에 대해 도출된 2개의 매개 변수는 Golomb-Rice 코드 워드가 종료되고, Exponential-Golomb 코드 워드가 추가되는 어떤 값에서 결정하는 컷오프 값(cutoff value) w 및 Golomb-Rice 매개 변수 k이다. 본 실시예에서, 위의 방식은 3과 같은 k를 가진 변환 계수를 위해 이용되고, 이 경우에, s는 5로 설정될 수 있고, nrenorm은 0으로 설정될 수 있다.
변환 계수 레벨, 즉 양자화된 변환 계수의 양자화 레벨을 코딩할 시에 위의 실시예를 이용하는 상술한 가능성을 예시하기 위해, 도면에 대한 참조가 행해진다. 그러나, 이에 앞서, 위의 실시예는 또한 다른 종류의 비부호 정수 값으로 대체할 수 있다는 것이 주목되어야 한다.
미리 아래에 제시된 설명은 화상의 변환 블록과 같은 변환 블록을 형성하기 위해 2차원적으로 배열되는 바와 같이 변환 계수가 코딩되는 것으로 추정한다. 그러나, 방금 언급된 바와 같이, 본 출원은 이미지 및/또는 비디오 코딩으로 제한되지 않는다. 따라서, 아래에 언급되는 변환 계수는 대안적으로 예를 들어 오디오 코딩 등에 이용되는 1차원 변환의 변환 계수일 수 있다.
도 1 내지 3은 변환 블록의 변환 계수의 일례와 상술한 실시예 중 어느 하나를 이용하여 이들의 엔트로피 코딩의 방식을 도시한다.
도 1은 변환 계수(12)의 블록(10)을 예시적으로 도시한다. 본 실시예에서, 변환 계수는 2차원적으로 배열된다. 특히, 이것은 다른 2차원 배열이 또한 가능하지만 열 및 행으로 규칙적으로 배열되는 것으로 예시적으로 도시된다. 변환 계수(12) 또는 변환 블록(10)으로 이어지는 변환은 DCT 또는 일부 다른 변환일 수 있으며, 이는 예를 들어 화상의 (변환) 블록, 또는 공간적으로 배열된 값의 일부 다른 블록을 서로 다른 공간 주파수의 성분으로 분해한다. 도 1의 본 예에서, 변환 계수(12)는 서로 수직인 방향과 같은 서로 다른 공간적 방향 x,y을 따라 측정된 주파수 fx(i), fy(j)의 주파수 쌍(fx(i), fy(j))에 대응하도록 열 i 및 행 j으로 2차원적으로 배열되며, 여기서 fx /y(i) < fx /y(i + 1) 및 (i,j)는 변환 블록(10)의 각각의 계수의 위치이다.
종종 낮은 주파수에 대응하는 변환 계수(12)는 높은 주파수에 대응하는 변환 계수에 비해 더 높은 변환 계수 레벨을 갖는다. 따라서, 변환 블록(10)의 가장 높은 주파수 성분에 가까운 종종 많은 변환 계수는 0으로 양자화되고 코딩될 필요가 없을 수 있다. 따라서, 스캔 순서(14)는 2차원으로 배열되는 변환 계수(12 (i,j))를 순서, 즉 (i,j) → k에서 계수의 시퀀스로 1차원으로 배열하는 변환 계수(12) 사이에서 정의될 수 있음으로써, 변환 계수 레벨은 이러한 순서에 따라 단조롭게 감소하는 경향을 가질 가능성이 있으며, 즉 계수 k의 계수 레벨이 계수 k+1의 계수 레벨보다 클 가능성이 있다.
예를 들면, 지그재그(zigzag) 또는 래스터 스캔은 변환 계수(12) 사이에서 정의될 수 있다. 스캔에 따르면, 블록(10)은 예를 들어 DC 성분 변환 계수(상부 왼쪽 계수)로부터 가장 높은 주파수 변환 계수(하부 오른쪽 계수)로 대각선으로 스캔될 수 있고, 그 역으로 스캔될 수도 있다. 대안적으로, 방금 언급된 극단의 성분 변환 계수 사이의 변환 계수의 행 방향(row-wise) 또는 열 방향 스캔이 이용될 수 있다.
아래에 더 설명되는 바와 같이, 변환 블록을 코딩할 시에, 스캔 순서(14)에서 마지막 0이 아닌 변환 계수 L의 위치는 먼저 비트스트림으로 코딩될 수 있고, 그 후 선택적으로 그 방향 또는 시계 반대 방향으로 스캔 경로(14)를 따라 DC 변환 계수로부터 마지막 0이 아닌 변환 계수 L로 변환 계수를 단순히 코딩할 수 있다.
변환 계수(12)는 부호화되거나 부호화되지 않을 수 있는 변환 계수 레벨을 가질 수 있다. 예를 들면, 변환 계수(12)는 각각이 각각의 변환 계수 레벨과 관련되는 가능한 양자화 값의 세트 상으로 후속 양자화에 의한 상술한 변환에 의해 획득될 수 있다. 변환 계수를 양자화하기 위해, 즉 변환 계수를 변환 계수 레벨로 매핑하기 위해 이용되는 양자화 함수는 선형 또는 비선형일 수 있다. 다시 말하면, 각각의 변환 계수(12)는 가능한 레벨의 간격에서 변환 계수 레벨을 갖는다. 도 2는 예를 들어 변환 계수 레벨 x가 레벨 [0, 2N-1]의 범위 내에 정의되는 예를 도시한다. 대안적인 실시예에 따르면, 간격 범위의 상계(upper bound)가 없을 수 있다. 더욱이, 도 2는 또한 부호화될 수 있지만 양의 변환 계수 레벨만을 도시한다. 변환 계수(12) 및 이의 코딩의 부호에 관하여, 서로 다른 가능성이 이러한 부호의 코딩에 대해 존재한다는 것이 주목되어야 하며, 이러한 모든 가능성은 실시예의 범위 내에 있어야 한다. 도 2에 관하여. 이것은 또한 변환 계수 레벨의 범위 간격의 하계(lower bound)가 없을 수 있다는 것을 의미한다.
어떤 경우에, 변환 계수(12)의 변환 계수 레벨을 코딩하기 위해, 서로 다른 이진화 방식은 범위 간격(20)의 서로 다른 부분 또는 간격(16, 18)을 커버하기 위해 이용될 수 있다. 더 정확하게는, 제 1 레벨 간격(16)의 최대 레벨과 동일한 것을 제외하고는 제 1 레벨 간격(16) 내의 변환 계수 레벨은 제 1 이진화 방식에 따라 하나 이상의 빈의 세트로 간단히 이진화될 수 있다. 그러나, 제 2 레벨 간격(18) 내에 있는 변환 계수 레벨은 제 1 및 2 이진화 방식의 빈 세트의 조합으로 매핑된다.
도 2에 도시된 바와 같이. 제 2 레벨 간격(18)은 제 1 레벨 간격(16) 위에 있지만, 도 2의 예에서는 2인 제 1 레벨 간격(16)의 최대 레벨에서 후자와 중첩한다. 제 2 레벨 간격(18) 내에 있는 변환 계수 레벨에 대해, 각각의 레벨은 제 1 이진화 방식에 따라 제 1 레벨 간격의 최대 레벨에 대응하는 제 1 빈 세트, 및 제 2 이진화 방식에 따라 제 2 레벨 간격(18) 내의 변환 계수 레벨의 위치에 따른 제 2 빈 세트의 조합으로 매핑된다.
다시 말하면, 제 1 이진화 방식은 제 1 레벨 간격(16)에 의해 커버된 레벨을 제 1 빈 시퀀스의 세트 상으로 매핑한다. 제 1 이진화 방식의 빈 시퀀스의 세트 내의 빈 시퀀스의 길이는 단지 0 및 1과 같은 두 변환 계수 레벨을 커버하는 제 1 레벨 간격(16)의 경우에 단지 하나의 이진 심볼일 수 있다. 본 출원의 실시예에 따르면, 제 1 이진화 방식은 간격(16) 내의 레벨의 절단된 단항 이진화이다.
제 2 이진화 방식은 제 2 레벨 간격(18) 내의 레벨을 가변 길이의 제 2 빈 시퀀스의 세트 상으로 매핑한다. 특히, 제 2 이진화 방식은 간격(18) 내의 레벨, 즉 x - 제 1 간격의 최대 레벨을 이진 단항 이진화 또는 알파벳으로 MPS 및 LPS를 이용하는 절단된 단항 이진화 상으로 매핑한다.
그 다음, 후자의 이진화의 빈 문자열은 위의 실시예 중 어느 하나에 따라 코딩될 수 있다.
도 3에 도시된 바와 같이. 변환 계수는 통상적으로 어떤 변환 계수 레벨의 어떤 통계 또는 발생 확률을 나타낸다. 도 3은 각각의 변환 계수 레벨이 실제로 해당 변환 계수에 의해 추정되는 확률을 각각의 가능한 변환 계수 레벨 x에 관련시킨 그래프를 도시한다. 더 정확히 하기 위해, 도 3은 서로 다른 컨텍스트의 두 계수에 대해 2개의 이러한 관련 또는 확률 곡선을 도시한다. 즉, 도 3은 이웃한 변환 계수는 변환 계수 값에 의해 결정된 바와 같은 컨텍스트에 따라 변환 계수가 차별화될 것으로 추정한다. 이러한 컨텍스트에 따라, 도 3은 각각의 변환 계수 레벨과 확률 값을 관련시키는 확률 곡선이 해당 변환 계수의 컨텍스트에 의존할 수 있음을 보여준다.
실시예에 따르면, 제 1 이진화 방식(16)의 빈 시퀀스의 빈은 컨텍스트 적응 방법으로 엔트로피 코딩된다. 즉, 컨텍스트는 빈과 관련되고, 선택된 컨텍스트와 관련된 알파벳 확률 분포는 각각의 빈을 엔트로피 코딩하기 위해 이용된다. 제 2 이진화 방식의 빈 시퀀스의 빈, 즉 MPS 또는 LPS는 위의 실시예에 따라 데이터 스트림에 삽입된다.
이러한 측정에 의해, 제 1 이진화 방식의 심볼을 엔트로피 코딩하는데에 사용되는 컨텍스트는 실제 알파벳 (빈) 통계에 대한 추정된 이진 확률 분포의 양호한 적응을 허용하도록 적절하게 선택될 수 있다. 즉, 이러한 컨텍스트를 갖는 빈이 인코딩/디코딩될 때마다 엔트로피 코딩 방식은 컨텍스트의 알파벳 확률 분포의 현재 추정을 업데이트하여, 실제 빈 통계에 근사하도록 구성될 수 있다. 어떤 컨텍스트와 빈의 너무 드문 관련을 피하기 위해 너무 많은 서로 다른 컨텍스트를 갖지 않으면서, 이러한 근사치는 컨텍스트가 적절하게 선택되는 경우에 더욱 빠르게 이루어지며, 이는 충분히 괜찮다. 이러한 컨텍스트는 이웃 템플릿(22)에서 (단순히 내부(16) 내에 포함될 수 있는) 이전에 코딩/디코딩된 변환 계수에 기초하여 결정될 수 있다.
마찬가지로, 위의 실시예에서, 가능한 한 가까운 제 2 간격 내의 실제 알파벳 통계에 근사하기 위해, RLPS, 즉, s (및 선택적으로, u 및/또는 Rthr)가 이에 따라 설정될 수 있다. 예를 들면, 이것은 컨텍스트, 즉 이웃한 변환 계수 레벨의 값으로부터 달라지거나 결정될 수 있다. 이러한 결정은 템플릿(22) 또는 이웃한 변환 계수 위치를 수집하는 어떤 다른 템플릿에서와 같은 이전에 코딩/디코딩된 계수에서 제 2 간격(18) 내의 확률 곡선의 종속성의 상관 관계에 꼭 대응해야 한다.
즉, 산술 코딩을 위한 위의 실시예를 도 1 내지 3에 따른 변환 계수의 코딩에 적용할 시에, 인코더는
하나 이상의 별도의 스캔, 모든 계수의 제 1 빈에 대한 스캔, 0보다 큰 모든 계수의 제 2 빈에 대한 스캔, 및 1보다 큰 모든 계수의 제 3 빈에 대한 스캔에서, 예를 들어 스캔 경로(14)를 따라 컨텍스트 적응 이진(context-adaptively binary)이 k가 2일 수 있는 x 또는 k(무엇이든 작은 것)의 제 1 이진화의 빈을 산술적으로 코딩하도록 구성될 수 있으며; 그렇게 함으로써, 컨텍스트는 이웃(neighborhood), 즉 이미 코딩된 이웃한 계수 위치(22)의 계수 레벨 또는 제 1 이진화 빈으로부터 도출될 수 있고; 컨텍스트 적응성은 동일한 컨텍스트의 이미 코딩된 빈에 기초하여 산술 코딩에 이용되는 RLPS에 대한 확률 추정치를 갱신하는 것을 포함할 수 있고; 서로 다른 컨텍스트는 서로 다른 크기의 변환 블록 및 동일한 변환 블록의 서로 다른 영역을 위해 이용될 수 있으며;
별도의 스캔에서, k보다 크거나 같은 모든 계수에 대해, 스캔 경로(14)를 따라 이진은 위의 실시예에 따라 x 마이너스 k를 산술적으로 코딩한다.
산술 코딩을 위한 위의 실시예를 도 1 내지 3에 따른 변환 계수의 코딩에 적용할 시에, 디코더는
하나 이상의 별도의 스캔, 모든 계수의 제 1 빈에 대한 스캔, 0보다 큰 모든 계수의 제 2 빈에 대한 스캔, 및 1보다 큰 모든 계수의 제 3 빈에 대한 스캔에서, 예를 들어 스캔 경로(14)를 따라 컨텍스트 적응 이진이 k가 2일 수 있는 x 또는 k(무엇이든 작은 것)의 제 1 이진화의 빈을 산술적으로 디코딩하도록 구성될 수 있으며; 그렇게 함으로써, 컨텍스트는 이웃, 즉 이미 코딩된 이웃한 계수 위치(22)의 계수 레벨 또는 제 1 이진화 빈으로부터 도출될 수 있고; 컨텍스트 적응성은 동일한 컨텍스트의 이미 코딩된 빈에 기초하여 산술 코딩에 이용되는 RLPS에 대한 확률 추정치를 갱신하는 것을 포함할 수 있고; 서로 다른 컨텍스트는 서로 다른 크기의 변환 블록 및 동일한 변환 블록의 서로 다른 영역을 위해 이용될 수 있으며;
별도의 스캔에서, k보다 크거나 같은 모든 계수에 대해, 스캔 경로(14)를 따라 이진은 위의 실시예에 따라 x 마이너스 k를 산술적으로 디코딩함으로써, c를 획득하고, x를 c 플러스 k로 재구성한다.
스캔 방향, 즉 DC에서 최대 주파수로의 방향 및 그 반대로의 방향이 스캔에 따라 변경될 수 있다.
대안적으로 제 1 이진화가 스킵될 수 있다. 그 후, 계수 레벨은 직접 c로 사용되고, 위의 실시예를 이용하여 코딩/디코딩된다.
물론, 위에 코딩된 음이 아닌 정수 값은, 함께 일반적인 정수 값의 표현의 코딩을, 둘 다 별도로 또는 산술 코딩 방식으로 코딩될 수 있는 대응하는 부호 플래그와 함께 상술한 방법으로 음이 아닌 값을 코딩함으로써 달성하기 위해 부호 플래그에 의해 확장될 수 있다.
일부 양태가 장치와 관련하여 설명되었지만, 이러한 양태는 또한 블록 또는 장치가 방법 단계 또는 방법 단계의 특징에 대응하는 방법의 설명을 나타내는 것이 분명하다. 유사하게, 방법 단계와 관련하여 설명된 양태는 또한 대응하는 장치의 대응하는 블록 또는 항목 또는 특징에 대한 설명을 나타낸다. 방법 단계 중 일부 또는 모두는 예를 들어 마이크로 프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 실행될 수 있다. 일부 실시예에서, 가장 중요한 방법 단계 중 일부 하나 이상은 이러한 장치에 의해 실행될 수 있다.
어떤 구현 요구 사항에 따라, 본 발명의 실시예는 하드웨어 또는 소프트웨어로 구현될 수 있다. 구현은 디지털 저장 매체, 예를 들어 플로피 디스크, DVD, Blu-Ray, CD, ROM, PROM, EPROM, EEPROM 또는 FLASH 메모리를 이용하여 수행될 수 있으며, 이러한 매체는 각각의 방법이 수행되도록 프로그램 가능한 컴퓨터 시스템과 협력하는(또는 협력할 수 있는) 전자적으로 판독 가능한 제어 신호를 저장한다. 따라서, 디지털 저장 매체는 컴퓨터 판독할 수 있다.
본 발명에 따른 일부 실시예는 본 명세서에서 설명된 방법 중 하나가 수행되도록 프로그램 가능한 컴퓨터 시스템과 협력할 수 있는 전자적으로 판독 가능한 제어 신호를 갖는 데이터 캐리어를 포함한다.
일반적으로, 본 발명의 실시예는 프로그램 코드를 가진 컴퓨터 프로그램 제품으로 구현될 수 있으며, 프로그램 코드는 컴퓨터 프로그램 제품이 컴퓨터 상에서 실행될 때 방법 중 하나를 수행하기 위해 동작할 수 있다. 프로그램 코드는 예를 들어 기계 판독 가능한 캐리어 상에 저장될 수 있다.
다른 실시예는 본 명세서에서 설명되고, 기계 판독 가능 캐리어 상에 저장된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함한다.
그래서, 다시 말하면, 본 발명의 방법의 실시예는 컴퓨터 프로그램이 컴퓨터 상에서 실행될 때 본 명세서에 설명된 방법 중 하나를 수행하기 위해 프로그램 코드를 갖는 컴퓨터 프로그램이다.
그래서, 본 발명의 방법의 추가의 실시예는 데이터 캐리어(또는 디지털 저장 매체, 또는 컴퓨터 판독 가능한 매체)이며, 이러한 데이터 캐리어는 기록되고, 본 명세서에서 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함한다. 데이터 캐리어, 디지털 저장 매체 또는 기록된 매체는 일반적으로 유형(tangible) 및/또는 비일시적(non-transitionary)이다.
그래서, 본 발명의 방법의 추가의 실시예는 본 명세서에서 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 나타내는 데이터 스트림 또는 신호의 시퀀스이다. 데이터 스트림 또는 신호의 시퀀스는 예를 들어 데이터 통신 접속, 예를 들어 인터넷을 통해 전송되도록 구성될 수 있다.
추가의 실시예는 본 명세서에서 설명된 방법 중 하나를 수행하도록 구성되거나 적응되는 처리 수단, 예를 들어 컴퓨터 또는 프로그램 가능한 논리 장치를 포함한다.
추가의 실시예는 본 명세서에서 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 설치한 컴퓨터를 포함한다.
본 발명에 따른 추가의 실시예는 본 명세서에서 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 (예를 들어, 전자적 또는 광학적으로) 수신기로 전송하도록 구성된 장치 또는 시스템을 포함한다. 수신기는 예를 들어 컴퓨터, 모바일 장치, 메모리 장치 등일 수 있다. 장치 또는 시스템은 예를 들어 컴퓨터 프로그램을 수신기로 전송하는 파일 서버를 포함할 수 있다.
일부 실시예에서, 프로그램 가능한 논리 장치(예를 들어 필드 프로그램 가능한 게이트 어레이)는 본 명세서에서 설명된 방법의 기능의 일부 또는 모두를 수행하기 위해 이용될 수 있다. 일부 실시예에서, 필드 프로그램 가능한 게이트 어레이는 본 명세서에서 설명된 방법 중 하나를 수행하기 위해 마이크로 프로세서와 협력할 수 있다. 일반적으로, 방법은 바람직하게는 임의의 하드웨어 장치에 의해 수행된다.
상술한 실시예는 단지 본 발명의 원리에 대한 예시이다. 본 명세서에서 설명된 배치의 수정 및 변형과 상세 사항은 당업자에게는 자명할 것으로 이해된다. 따라서, 본 명세서에서 실시예의 설명에 의해 제시된 특정 상세 사항에 의해서가 아니라 첨부된 청구 범위에 의해서만 제한되는 것으로 의도된다.
Claims (33)
- 비트스트림으로부터 음이 아닌 정수 값을 디코딩하기 위한 이진 산술 디코더로서,
상기 이진 산술 디코더는 상기 음이 아닌 정수 값 c를 상기 음이 아닌 정수 값과 동일한 다수의 MPS를 포함하는 이진 심볼 시퀀스로 매핑하는 상기 음이 아닌 정수 값의 이진 단항 표현을 이용하도록 구성되고, 상기 이진 산술 디코더의 현재 상태는 간격 폭 R에 의해 정의된 현재 간격, 및 현재 간격의 내부에서의 값 V에 의해 정의되며, 상기 이진 산술 디코더는 반복(iteration)을 이용하여 상기 음이 아닌 정수 값의 상기 다수의 MPS를 반복적으로 디코딩하도록 구성되며, 상기 반복은
LPS가 2s로 R 및 V의 차를 측정함으로써 LPS에 대응하는 부분 간격 폭 RLPS으로 2s를 이용하여 발생할 때까지 디코딩될 수 있는 MPS의 최대수 cmax를 결정하고;
재규격화가 2s로 R 및 Rmin의 차를 측정함으로써 LPS에 대응하는 부분 간격 폭 RLPS으로 2s를 이용하여 발생할 때까지 디코딩될 수 있는 MPS의 최대수 cmps를 결정하고, Rmin은 R에 대한 최소 허용된 값을 나타내고, 2의 거듭 제곱이며;
cmax가 0보다 크고, cmax가 cmps보다 크면,
cmps × 2s만큼 R을 감소시켜, c의 MPS의 cmps를 디코딩하고;
2의 미리 정해진 거듭 제곱인 재규격화 인수를 이용하여 R을 증가시키고, 비트스트림으로부터 비트 bit를 판독하고, 재규격화 인수를 이용하여 V를 증가시켜, bit의 값을 가산하는 것을 포함함으로써 재규격화를 수행하며;
cmax가 0보다 크고, cmax가 cmps보다 작으면,
cmax × 2s만큼 R을 감소시켜, c의 MPS의 cmps를 디코딩하는 것을 포함하는 이진 산술 디코더. - 제 1 항에 있어서,
상기 이진 산술 디코더는 상기 반복이
cmax가 0보다 크고, cmax가 cmps와 같으면,
cmax × 2s만큼 R을 감소시켜, c의 MPS의 cmps를 디코딩하는 것을 포함하도록 구성되는 이진 산술 디코더. - 제 1 항 또는 제 2 항에 있어서,
상기 이진 산술 디코더는 상기 음이 아닌 정수 값의 상기 다수의 MPS를 반복적으로 디코딩할 시에 상기 음이 아닌 정수 값의 모든 c MPS가 디코딩되었을 때까지 상기 반복을 사이클링하도록 구성되는 이진 산술 디코더. - 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
반복 디코딩 전에 c를 0으로 초기화하고, 반복 디코딩 시에 cmax가 0보다 크고, cmax가 cmps보다 클 경우에는 c를 cmps만큼 증가시키고, cmax가 0보다 크고, cmax가 cmps보다 작을 경우에는 c를 cmax만큼 증가시키도록 더 구성되는 이진 산술 디코더. - 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
상기 이진 산술 디코더는 상기 이진 심볼 시퀀스가 상기 음이 아닌 정수 값과 동일하고 LPS가 뒤따르는 다수의 MPS를 포함하도록 구성되고, 상기 이진 산술 디코더는
log2(Rmin)와 s의 차이에 기초하여 재규격화 수를 결정하고;
MPS에 대응하고, 2의 재규격화 수의 제곱과 곱해지는 V와 부분 간격 폭 RMPS의 차를 이용하여 V를 갱신하고;
비트스트림으로부터 비트의 재규격화 수를 판독하여 이를 V에 가산하며;
Rmin 또는 Rmin의 미리 정해진 함수이도록 R을 설정함으로써 상기 음이 아닌 정수 값의 LPS를 디코딩하도록 더 구성되는 이진 산술 디코더. - 제 5 항에 있어서,
상기 이진 산술 디코더는 상기 이진 심볼 시퀀스가 상기 음이 아닌 정수 값과 동일하고, c가 최대값 cm보다 작을 경우에는 LPS가 뒤따르고, c가 최대값 cm과 동일한 경우에는 LPS가 뒤따르지 않는 다수의 MPS를 포함하도록 구성되고, 상기 이진 산술 디코더는 최대 수 cmax를 결정할 시에 cmax가 cm-c보다 크지 않게 cmax를 제한하도록 더 구성되는 이진 산술 디코더. - 제 5 항 또는 제 6 항에 있어서,
상기 이진 산술 디코더는 1 + log2(Rmin) - s이도록 재규격화 수를 결정하고, 2*(Rmin - 1)이도록 R을 설정하기 위해 구성되는 이진 산술 디코더. - 제 5 항 또는 제 6 항에 있어서,
상기 이진 산술 디코더는 log2(Rmin) - s이도록 재규격화 수를 결정하고, Rmin이도록 R을 설정하기 위해 구성되는 이진 산술 디코더. - 제 5 항 내지 제 8 항 중 어느 한 항에 있어서,
상기 이진 산술 디코더는, MPS에 대응하고, 2의 재규격화 수의 제곱과 곱해지는 V와 부분 간격 폭 RMPS의 차를 이용하여 V를 갱신할 시에, 비트 위치의 재규격화 수만큼 V-RMPS의 왼쪽 시프트를 수행하도록 구성되는 이진 산술 디코더. - 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
상기 이진 산술 디코더는 연속적인 반복 사이에서 s를 변경하도록 구성되는 이진 산술 디코더. - 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
상기 이진 산술 디코더는 재규격화의 uth 성능에서 미리 정해진 방식으로 s를 감소시키도록 구성되는 이진 산술 디코더. - 제 1 항 내지 제 11 항 중 어느 한 항에 있어서,
상기 이진 산술 디코더는 s가 최소값 smin에 아직 도달하지 않은 경우에 재규격화의 uth 성능에서 미리 정해진 방식으로 s를 감소시키도록 구성되는 이진 산술 디코더. - 제 11 항 또는 제 12 항에 있어서,
상기 이진 산술 디코더는 R이 임계값 Rthr보다 작은 경우에 초기에 uth를 1만큼 증가하도록 구성되는 이진 산술 디코더. - 제 1 항 내지 제 13 항 중 어느 한 항에 있어서,
s는 둘 다 포괄적으로 3과 7 사이에 있고, Rmin는 둘 다 포괄적으로 128 및 512 사이에 있는 이진 산술 디코더. - 음이 아닌 정수 값을 비트스트림으로 인코딩하기 위한 이진 산술 인코더로서,
상기 이진 산술 인코더는 상기 음이 아닌 정수 값 c를 상기 음이 아닌 정수 값과 동일한 다수의 MPS를 포함하는 이진 심볼 시퀀스로 매핑하는 상기 음이 아닌 정수 값의 이진 단항 표현을 이용하도록 구성되고, 상기 이진 산술 인코더의 현재 상태는 간격 폭 R에 의해 정의된 현재 간격 및 간격 오프셋 L에 의해 정의되며, 상기 이진 산술 인코더는 반복을 이용하여 상기 음이 아닌 정수 값의 상기 다수의 MPS를 반복적으로 인코딩하도록 구성되며, 상기 반복은
재규격화가 2s로 R 및 Rmin의 차를 측정함으로써 LPS에 대응하는 부분 간격 폭 RLPS으로 2s를 이용하여 발생할 때까지 인코딩될 수 있는 MPS의 최대수 cmps를 결정하고, Rmin은 R에 대한 최소 허용된 값을 나타내고, 2의 거듭 제곱이며;
c가 cmps보다 크면,
cmps × 2s만큼 R을 감소시켜, c의 MPS의 cmps를 코딩하고;
각각 2의 미리 정해진 거듭 제곱인 재규격화 인수를 이용하여 R 및 L을 증가시키고, 비트를 비트스트림에 기록하는 것을 포함함으로써 재규격화를 수행하며;
c가 cmps보다 작으면,
c × 2s만큼 R을 감소시켜, c의 모든 c MPS를 코딩하는 것을 포함하는 이진 산술 인코더. - 제 15 항에 있어서,
상기 이진 산술 인코더는 상기 반복이
c가 cmps와 같으면,
cmps × 2s만큼 R을 감소시켜, c의 MPS의 cmps를 코딩하며;
각각 2의 미리 정해진 거듭 제곱인 재규격화 인수를 이용하여 R 및 L을 증가시키고, 비트를 비트스트림에 기록하는 것을 포함함으로써 재규격화를 수행하는 것을 포함하도록 구성되는 이진 산술 인코더. - 제 15 항 또는 제 16 항에 있어서,
상기 이진 산술 인코더는 상기 음이 아닌 정수 값의 상기 다수의 MPS를 반복적으로 인코딩할 시에 상기 음이 아닌 정수 값의 모든 c MPS가 인코딩되었을 때까지 상기 반복을 사이클링하도록 구성되는 이진 산술 인코더. - 제 15 항 내지 제 17 항 중 어느 한 항에 있어서,
반복 인코딩 전에 상기 음이 아닌 정수 값과 동일하도록 c를 초기화하고, c가 cmps보다 클 경우에는 c를 cmps만큼 감소시키도록 더 구성되는 이진 산술 인코더. - 제 15 항 내지 제 18 항 중 어느 한 항에 있어서,
상기 이진 산술 인코더는 상기 이진 심볼 시퀀스가 상기 음이 아닌 정수 값과 동일하고 LPS가 뒤따르는 다수의 MPS를 포함하도록 구성되고, 상기 이진 산술 인코더는
log2(Rmin)와 s의 차이에 기초하여 재규격화 수를 결정하고;
MPS에 대응하고, 2의 재규격화 수의 제곱과 곱해지는 L과 부분 간격 폭 RMPS의 합을 이용하여 L을 갱신하고;
비트의 재규격화 수를 비트스트림에 기록하며;
Rmin 또는 Rmin의 미리 정해진 함수이도록 R을 설정함으로써 상기 음이 아닌 정수 값의 LPS를 인코딩하도록 더 구성되는 이진 산술 인코더. - 제 19 항에 있어서,
상기 이진 산술 인코더는 상기 이진 심볼 시퀀스가 상기 음이 아닌 정수 값과 동일하고, c가 최대값 cm보다 작을 경우에는 LPS가 뒤따르고, c가 최대값 cm과 동일한 경우에는 LPS가 뒤따르지 않는 다수의 MPS를 포함하도록 구성되는 이진 산술 인코더. - 제 19 항 또는 제 20 항에 있어서,
상기 이진 산술 인코더는 1 + log2(Rmin) - s이도록 재규격화 수를 결정하고, 2*(Rmin - 1)이도록 R을 설정하기 위해 구성되는 이진 산술 인코더. - 제 19 항 또는 제 20 항에 있어서,
상기 이진 산술 인코더는 log2(Rmin) - s이도록 재규격화 수를 결정하고, Rmin이도록 R을 설정하기 위해 구성되는 이진 산술 인코더. - 제 19 항 내지 제 22 항 중 어느 한 항에 있어서,
상기 이진 산술 인코더는, MPS에 대응하고, 2의 재규격화 수의 제곱과 곱해지는 L과 부분 간격 폭 RMPS의 합을 이용하여 L을 갱신할 시에, 비트 위치의 재규격화 수만큼 L+RMPS의 왼쪽 시프트를 수행하도록 구성되는 이진 산술 인코더. - 제 19 항 내지 제 23 항 중 어느 한 항에 있어서,
상기 이진 산술 인코더는 연속적인 반복 사이에서 s를 변경하도록 구성되는 이진 산술 인코더. - 제 19 항 내지 제 24 항 중 어느 한 항에 있어서,
상기 이진 산술 인코더는 재규격화의 uth 성능에서 미리 정해진 방식으로 s를 감소시키도록 구성되는 이진 산술 인코더. - 제 19 항 내지 제 25 항 중 어느 한 항에 있어서,
상기 이진 산술 인코더는 s가 최소값 smin에 아직 도달하지 않은 경우에 재규격화의 uth 성능에서 미리 정해진 방식으로 s를 감소시키도록 구성되는 이진 산술 인코더. - 제 25 항 또는 제 26 항에 있어서,
상기 이진 산술 인코더는 R이 임계값 Rthr보다 작은 경우에 초기에 uth를 1만큼 증가하도록 구성되는 이진 산술 인코더. - 제 19 항 내지 제 27 항 중 어느 한 항에 있어서,
s는 둘 다 포괄적으로 3과 7 사이에 있고, Rmin는 둘 다 포괄적으로 128 및 512 사이에 있는 이진 산술 인코더. - 제 19 항 내지 제 28 항 중 어느 한 항에 있어서,
상기 이진 산술 인코더는 상기 이진 단항 이진화를 이용하여 상기 음이 아닌 정수 값을 이진화하도록 구성되는 이진 산술 인코더. - 비트스트림으로부터 음이 아닌 정수 값을 이진 산술 디코딩하는 방법으로서,
상기 방법은 상기 음이 아닌 정수 값 c를 상기 음이 아닌 정수 값과 동일한 다수의 MPS를 포함하는 이진 심볼 시퀀스로 매핑하는 상기 음이 아닌 정수 값의 이진 단항 표현을 이용하고, 상기 방법의 현재 상태는 간격 폭 R에 의해 정의된 현재 간격, 및 현재 간격의 내부에서의 값 V에 의해 정의되며, 상기 방법은 반복을 이용하여 상기 음이 아닌 정수 값의 상기 다수의 MPS를 반복적으로 디코딩하는 단계를 포함하며, 상기 반복은
LPS가 2s로 R 및 V의 차를 측정함으로써 LPS에 대응하는 부분 간격 폭 RLPS으로 2s를 이용하여 발생할 때까지 디코딩될 수 있는 MPS의 최대수 cmax를 결정하고;
재규격화가 2s로 R 및 Rmin의 차를 측정함으로써 LPS에 대응하는 부분 간격 폭 RLPS으로 2s를 이용하여 발생할 때까지 디코딩될 수 있는 MPS의 최대수 cmps를 결정하고, Rmin은 R에 대한 최소 허용된 값을 나타내고, 2의 거듭 제곱이며;
cmax가 0보다 크고, cmax가 cmps보다 크면,
cmps × 2s만큼 R을 감소시켜, c의 MPS의 cmps를 디코딩하고;
2의 미리 정해진 거듭 제곱인 재규격화 인수를 이용하여 R을 증가시키고, 비트스트림으로부터 비트 bit를 판독하고, 재규격화 인수를 이용하여 V를 증가시켜, bit의 값을 가산하는 것을 포함함으로써 재규격화를 수행하며;
cmax가 0보다 크고, cmax가 cmps보다 작으면,
cmax × 2s만큼 R을 감소시켜, c의 MPS의 cmps를 디코딩하는 것을 포함하는 이진 산술 디코딩하는 방법. - 음이 아닌 정수 값을 비트스트림으로 이진 산술 인코딩하는 방법으로서,
상기 방법은 상기 음이 아닌 정수 값 c를 상기 음이 아닌 정수 값과 동일한 다수의 MPS를 포함하는 이진 심볼 시퀀스로 매핑하는 상기 음이 아닌 정수 값의 이진 단항 표현을 이용하고, 상기 방법의 현재 상태는 간격 폭 R에 의해 정의된 현재 간격 및 간격 오프셋 L에 의해 정의되며, 상기 방법은 반복을 이용하여 상기 음이 아닌 정수 값의 상기 다수의 MPS를 반복적으로 인코딩하는 단계를 포함하며, 상기 반복은
재규격화가 2s로 R 및 Rmin의 차를 측정함으로써 LPS에 대응하는 부분 간격 폭 RLPS으로 2s를 이용하여 발생할 때까지 인코딩될 수 있는 MPS의 최대수 cmps를 결정하고, Rmin은 R에 대한 최소 허용된 값을 나타내고, 2의 거듭 제곱이며;
c가 cmps보다 크면,
cmps × 2s만큼 R을 감소시켜, c의 MPS의 cmps를 코딩하고;
각각 2의 미리 정해진 거듭 제곱인 재규격화 인수를 이용하여 R 및 L을 증가시키고, 비트를 비트스트림에 기록하는 것을 포함함으로써 재규격화를 수행하며;
c가 cmps보다 작으면,
c × 2s만큼 R을 감소시켜, c의 모든 c MPS를 코딩하는 것을 포함하는 이진 산술 인코딩하는 방법. - 컴퓨터 상에서 실행할 때 제 30 항 또는 제 31 항에 따른 방법을 수행하기 위해 프로그램 코드를 갖는 컴퓨터 프로그램.
- 컴퓨터 상에서 실행할 때 제 30 항 또는 제 31 항에 따른 방법을 수행하기 위해 프로그램 코드를 갖는 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능한 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261592383P | 2012-01-30 | 2012-01-30 | |
US61/592,383 | 2012-01-30 | ||
PCT/EP2013/051045 WO2013113580A1 (en) | 2012-01-30 | 2013-01-21 | Binary arithmetic coding scheme |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140132350A true KR20140132350A (ko) | 2014-11-17 |
KR101647244B1 KR101647244B1 (ko) | 2016-08-09 |
Family
ID=47628129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147024402A KR101647244B1 (ko) | 2012-01-30 | 2013-01-21 | 이진 산술 코딩 방식 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9312881B2 (ko) |
EP (1) | EP2810371B1 (ko) |
JP (1) | JP5933037B2 (ko) |
KR (1) | KR101647244B1 (ko) |
HU (1) | HUE036645T2 (ko) |
PL (1) | PL2810371T3 (ko) |
WO (1) | WO2013113580A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5809292B2 (ja) | 2011-01-14 | 2015-11-10 | ジーイー ビデオ コンプレッション エルエルシー | エントロピー符号化および復号化スキーム |
WO2021058655A1 (en) * | 2019-09-24 | 2021-04-01 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Arithmetic encoders and decoders, video encoders and decoders, methods for encoding or decoding symbols, and methods for encoding or decoding video content |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010251946A (ja) * | 2009-04-14 | 2010-11-04 | Ntt Docomo Inc | 画像符号化装置、方法およびプログラム、並びに、画像復号装置、方法およびプログラム |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5313204A (en) * | 1991-04-25 | 1994-05-17 | Mitsubishi Denki Kabushiki Kaisha | Encoding and decoding devices with predictor and detector |
EP2296282B1 (de) * | 2002-05-02 | 2013-11-06 | Fraunhofer-Gesellschaft zur Förderung der Angewandten Forschung e.V. | Verfahren und Anordnung zur arithmetischen Enkodierung und Dekodierung mit Verwendung mehrerer Nachschlagtabellen |
US7738552B2 (en) * | 2002-12-06 | 2010-06-15 | Broadcom Company | Processing data streams |
KR100718134B1 (ko) * | 2005-07-21 | 2007-05-14 | 삼성전자주식회사 | 비트율에 적응적인 영상 데이터 이진 산술 부호화/복호화장치 및 방법 |
JP4547503B2 (ja) * | 2006-03-07 | 2010-09-22 | 国立大学法人徳島大学 | 算術符号化装置、算術符号化方法、算術符号化プログラム及びプログラムを格納したコンピュータで読み取り可能な記録媒体 |
US7710296B2 (en) * | 2007-09-19 | 2010-05-04 | Texas Instruments Incorporated | N-bin arithmetic coding for context adaptive binary arithmetic coding |
US8782379B2 (en) * | 2007-09-27 | 2014-07-15 | Qualcomm Incorporated | H.264 video decoder CABAC core optimization techniques |
US7982641B1 (en) * | 2008-11-06 | 2011-07-19 | Marvell International Ltd. | Context-based adaptive binary arithmetic coding engine |
JP2010251956A (ja) * | 2009-04-14 | 2010-11-04 | Konica Minolta Business Technologies Inc | 画像処理装置、画像処理装置の制御方法、および画像処理装置の制御プログラム |
WO2012048053A2 (en) * | 2010-10-05 | 2012-04-12 | Massachusetts Institute Of Technology | System and method for optimizing context-adaptive binary arithmetic coding |
TWI487295B (zh) * | 2011-05-17 | 2015-06-01 | Univ Nat Cheng Kung | 高產出平行化avc/h.264前後文適應性二位元算數解碼器之方法 |
-
2013
- 2013-01-21 KR KR1020147024402A patent/KR101647244B1/ko active IP Right Grant
- 2013-01-21 HU HUE13701745A patent/HUE036645T2/hu unknown
- 2013-01-21 WO PCT/EP2013/051045 patent/WO2013113580A1/en active Application Filing
- 2013-01-21 EP EP13701745.5A patent/EP2810371B1/en active Active
- 2013-01-21 PL PL13701745T patent/PL2810371T3/pl unknown
- 2013-01-21 JP JP2014555146A patent/JP5933037B2/ja active Active
-
2014
- 2014-07-30 US US14/446,977 patent/US9312881B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010251946A (ja) * | 2009-04-14 | 2010-11-04 | Ntt Docomo Inc | 画像符号化装置、方法およびプログラム、並びに、画像復号装置、方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
KR101647244B1 (ko) | 2016-08-09 |
EP2810371A1 (en) | 2014-12-10 |
PL2810371T3 (pl) | 2018-06-29 |
JP5933037B2 (ja) | 2016-06-08 |
JP2015511443A (ja) | 2015-04-16 |
HUE036645T2 (hu) | 2018-07-30 |
US9312881B2 (en) | 2016-04-12 |
US20140333458A1 (en) | 2014-11-13 |
WO2013113580A1 (en) | 2013-08-08 |
EP2810371B1 (en) | 2017-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11671599B2 (en) | Data encoding and decoding | |
US11463698B2 (en) | Selection of the maximum dynamic range of transformed data and the data precision of transform matrices according to the bit depth of input data | |
US11290751B2 (en) | Data encoding and decoding | |
KR101571618B1 (ko) | 마지막 유효 계수의 위치를 코딩 및 디코딩하는 방법 및 장치 | |
US9544599B2 (en) | Context adaptive data encoding | |
WO2013068733A1 (en) | Context adaptive data encoding | |
KR101647244B1 (ko) | 이진 산술 코딩 방식 | |
WO2013068732A1 (en) | Context adaptive data encoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190730 Year of fee payment: 4 |