KR101910376B1 - 연결된 rom-ram 테이블에 기초하여 산술 코딩을 수행하는 방법 및 장치 - Google Patents

연결된 rom-ram 테이블에 기초하여 산술 코딩을 수행하는 방법 및 장치 Download PDF

Info

Publication number
KR101910376B1
KR101910376B1 KR1020167032976A KR20167032976A KR101910376B1 KR 101910376 B1 KR101910376 B1 KR 101910376B1 KR 1020167032976 A KR1020167032976 A KR 1020167032976A KR 20167032976 A KR20167032976 A KR 20167032976A KR 101910376 B1 KR101910376 B1 KR 101910376B1
Authority
KR
South Korea
Prior art keywords
value
bit
boundary value
section
significant bit
Prior art date
Application number
KR1020167032976A
Other languages
English (en)
Other versions
KR20170002479A (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 KR20170002479A publication Critical patent/KR20170002479A/ko
Application granted granted Critical
Publication of KR101910376B1 publication Critical patent/KR101910376B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • 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
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • 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/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은, 데이터 심볼에 대한 산술 디코딩을 수행하는 방법으로서, 디코딩 테이블 인덱스를 생성하는 단계; ROM 테이블로부터 심볼에 할당된 구간 내 지점과 구간 길이 사이의 비율의 상위 경계 값 및 하위 경계 값을 획득하는 단계; 상기 상위 경계 값 및 상기 하위 경계 값에 기초하여, RAM 테이블로부터 바이섹션 탐색을 위한 초기값을 획득하는 단계; 및 구간 내에서 시퀀스 값을 탐색하는 단계를 포함하되, 상기 구간은 상기 초기값에 기초하여 결정되는 것을 특징으로 하는 방법을 개시한다.

Description

연결된 ROM-RAM 테이블에 기초하여 산술 코딩을 수행하는 방법 및 장치{METHOD AND APPARATUS FOR PERFORMING ARITHMETIC CODING ON BASIS OF CONCATENATED ROM-RAM TABLE}
본 발명은 비디오 신호를 처리하기 위한 방법 및 장치에 관한 것으로서, 보다 상세하게는, 연결된(concatenated) ROM-RAM 테이블에 기초하여 산술 코딩을 수행하는 기술에 관한 것이다.
엔트로피 코딩은 압축된 데이터 시퀀스로 삽입되는 비트의 수를 최적으로 정의하기 위해 사용되는 과정이다. 따라서, 이 과정은 어떠한 종류의 데이터 및 미디어 압축에 있어서도 기본 기술이 되며, 최종 압축 효율 및 연산의 복잡도에 큰 영향을 미친다. 산술 코딩은 최적의 엔트로피 코딩 기술로서 상대적으로 높은 복잡도를 가지지만, 최근에 널리 채택되고 있으며, H.264/AVC, H.265/HEVC, VP8, 및 VP9 비디오 코딩 규격의 일부가 되었다. 하지만, UHD 및 고 프레임 비율 비디오와 같은 응용 분야에서의 매우 고도로 압축된 데이터 처리율에 대한 손상이 증가함에 따라, 새로운 형태의 빠른 엔트로피 코딩이 필요하게 되었다.
이진화를 위해서는 코딩될 모든 데이터가 순차적으로 분해되어야 한다는 문제가 있으며, 이로 인해 클럭 속도가 높을 때만 빠르게 수행될 수 있다.
좁은 레지스터들이 정밀도의 손실을 피하기 위해 개별 데이터 비트를 가능한 한 빨리 추출하는 것을 필요로 하며, 이로 인해 직렬화의 형태를 취할 수 밖에 없다. 그리고, 복잡한 곱셈 근사가 직렬화된 형태로 정의되며 빠른 곱셈은 매우 값 비싼 시스템을 요한다는 문제가 있다.
또한, 코딩 기기가 바이섹션(bisection)이나 또 다른 형태의 이진 트리 탐색을 사용하는 경우, 디코딩 과정을 이진 결정으로 순차적 분해하게 되며, 코딩 시스템이 이진 산술 코딩의 속도에 대한 상당한 개선을 가져오지 못하는 문제가 있다.
또한, 산술 코딩에서 심볼에 대한 정보가 비트에 대해 직접적으로 정의되지 않고 요소 Dk 와 Lk 사이의 비로 정의되는 문제가 있다.
본 발명의 일 실시예는 테이블 색인(lookup)을 사용하여 산술 코딩의 처리율을 증가시키는 방법을 제공한다.
또한, 본 발명의 일 실시예는 연결된 ROM-RAM 테이블 색인을 가지는 디코더를 제공한다.
또한, 본 발명의 일 실시예는 RAM 기반 테이블을 크고 비싸지 않은 ROM 테이블과 보다 작은 RAM 테이블의 연결된 형태로 대체하는 방법을 제공한다.
또한, 본 발명의 일 실시예는 분할 근사를 위해 테이블 색인을 활용하는 방법을 제공한다.
본 발명에 따르면, 테이블 색인을 사용함으로써 산술 코딩의 처리율이 증가될 수 있다.
또한, 본 발명에 따르면, 연결된 ROM-RAM 테이블 색인을 가지는 디코더는 압축 효율 및 연산의 복잡도를 향상시킬 수 있다.
또한, 본 발명에 따르면, 연결된 ROM-RAM 테이블 색인을 가지는 디코더는 산술 코딩의 어떠한 형태에도 적용될 수 있다.
또한, 본 발명에 따르면, 연결된 ROM-RAM 테이블 색인을 가지는 디코더는 매우 빠른 디코딩을 가능하게 한다.
도 1 및 2는 본 발명이 적용되는 일실시예들로써, 비디오 신호를 처리하는 인코더 및 디코더의 개략적인 블록도를 도시한다.
도 3은 본 발명이 적용되는 일실시예로써, 산술 코딩 구간 데이터를 업데이트하기 위해 필요한 연산 집합을 예시하는 흐름도이다.
도 4 및 5는 본 발명이 적용되는 일실시예들로써, 이진 산술 코딩을 기반으로 하여 비디오 신호를 처리하는 인코더 및 디코더의 개략적 블록도를 나타낸다.
도 6 및 7은 본 발명이 적용되는 일실시예들로써, 대용량 데이터 알파벳(large data alphabet) 및 긴 레지스터(long register)를 사용하여 설계된 산술 코딩 시스템의 인코더 및 디코더의 개략적인 블록도를 나타낸다.
도 8은 본 발명이 적용되는 일실시예로써, P 비트 레지스터 상에 Dk 및 Lk의 이진 표현 다이어그램을 나타낸다.
도 9는 본 발명이 적용되는 일실시예로써, 연결된 ROM-RAM 테이블을 포함하는 산술 디코더의 개략적인 블록도를 나타낸다.
도 10은 본 발명이 적용되는 일실시예로써, 데이터 심볼을 디코딩하는 방법을 예시하는 흐름도이다.
도 11은 본 발명이 적용되는 일실시예로써, 연결된 ROM-RAM 테이블을 사용하여 산술 디코딩을 수행하는 방법을 예시하는 흐름도이다.
발명의 실시를 위한 최선의 형태
본 발명은, 데이터 심볼에 대한 산술 디코딩을 수행하는 방법으로서, 디코딩 테이블 인덱스를 생성하는 단계; ROM 테이블로부터 심볼에 할당된 구간 내 지점과 구간 길이 사이의 비율의 상위 경계 값 및 하위 경계 값을 획득하는 단계; 상기 상위 경계 값 및 상기 하위 경계 값에 기초하여, RAM 테이블로부터 바이섹션 탐색을 위한 초기값을 획득하는 단계; 및 구간 내에서 시퀀스 값을 탐색하는 단계를 포함하되, 상기 구간은 상기 초기값에 기초하여 결정되는 것을 특징으로 하는 방법을 제공한다.
본 발명은, 상기 구간 길이의 최상위 1 비트의 위치를 결정하는 단계; 상기 위치에 1 비트를 더한 위치로부터 시작하여 상기 최상위 1 비트 이후의 상기 구간 길이의 최상위 비트를 추출하는 단계; 및 상기 위치로부터 시작하여 상기 구간 베이스의 최상위 비트를 추출하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명은, 상기 구간 길이의 최상위 비트와 심볼에 할당된 구간 내 상기 지점의 최상위 비트를 결합함으로써 디코딩 테이블 인덱스를 생성하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명에서, 상기 상위 경계 값은 심볼에 할당된 구간 내 지점의 최대값과 상기 구간 길이의 최소값 사이의 비율에 기초하여 결정되는 것을 특징으로 한다.
본 발명에서, 상기 하위 경계 값은 심볼에 할당된 구간 내 지점의 최소값과 상기 구간 길이의 최대값 사이의 비율에 기초하여 결정되는 것을 특징으로 한다.
본 발명에서, 상기 상위 경계 값과 상기 하위 경계 값은 곱셈 근사에 대응되는 비트 쉬프트 연산에 기초하여 결정되는 것을 특징으로 한다.
본 발명은, 데이터 심볼에 대한 산술 디코딩을 수행하는 장치에 있어서, 디코딩 테이블 인덱스를 생성하도록 구성된 인덱스 생성 유닛; ROM 테이블로부터 심볼에 할당된 구간 내 지점과 구간 길이 사이의 비율의 상위 경계 값 및 하위 경계 값을 획득하고 상기 상위 경계 값 및 상기 하위 경계 값에 기초하여, RAM 테이블로부터 바이섹션(bisection) 탐색을 위한 초기값을 획득하도록 구성된 연결된 ROM-RAM 테이블 유닛; 및 구간 내에서 시퀀스 값을 탐색하도록 구성된 바이섹션 탐색 유닛을 포함하되, 상기 구간은 상기 초기값에 기초하여 결정되는 것을 특징으로 하는 장치를 제공한다.
발명의 실시를 위한 형태
이하, 첨부된 도면을 참조하여 본 발명의 실시예의 구성과 그 작용을 설명하며, 도면에 의해서 설명되는 본 발명의 구성과 작용은 하나의 실시예로서 설명되는 것이며, 이것에 의해서 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.
아울러, 본 발명에서 사용되는 용어는 가능한 한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 특정한 경우는 출원인이 임의로 선정한 용어를 사용하여 설명한다. 그러한 경우에는 해당 부분의 상세 설명에서 그 의미를 명확히 기재하므로, 본 발명의 설명에서 사용된 용어의 명칭만으로 단순 해석되어서는 안 될 것이며 그 해당 용어의 의미까지 파악하여 해석되어야 함을 밝혀두고자 한다.
또한, 본 발명에서 사용되는 용어들은 발명을 설명하기 위해 선택된 일반적인 용어들이나, 유사한 의미를 갖는 다른 용어가 있는 경우 보다 적절한 해석을 위해 대체 가능할 것이다. 예를 들어, 신호, 데이터, 샘플, 픽쳐, 프레임, 블록 등의 경우 각 코딩 과정에서 적절하게 대체되어 해석될 수 있을 것이다. 또한, 범위, 길이, 구간(또는 코딩 구간, 산술 코딩 구간), 및 구간 길이는 각각의 산술 코딩 과정에서 적절히 대체되어 해석될 수 있을 것이다.
도 1 및 2는 본 발명이 적용되는 일실시예들로써, 비디오 신호를 처리하는 인코더 및 디코더의 개략적인 블록도를 나타낸다.
도 1의 인코더(100)는 변환 유닛(110), 양자화 유닛(120), 및 엔트로피 인코딩 유닛(130)을 포함한다. 도 2의 디코더(200)는 엔트로피 디코딩 유닛(210), 역양자화 유닛(220), 및 역변환 유닛(230)을 포함한다.
상기 인코더(100)는 비디오 신호를 수신하여 상기 비디오 신호로부터 예측된 신호를 차감함으로써 예측 에러를 생성한다.
생성된 상기 예측 에러는 변환 유닛(110)으로 전송된다. 상기 변환 유닛(110)은 예측 에러에 변환 방식을 적용함으로써 변환 계수를 생성한다.
상기 양자화 유닛(120)은 상기 생성된 변환 계수를 양자화하여 상기 양자화된 계수를 엔트로피 인코딩 유닛(130)으로 전송한다.
상기 엔트로피 인코딩 유닛(130)은 상기 양자화된 계수에 대한 엔트로피 코딩을 수행하며 엔트로피 코딩된 신호를 출력한다. 이 경우, 상기 엔트로피 코딩은 압축된 데이터 시퀀스로 들어가는 비트의 개수를 최적으로 정의하기 위해 사용되는 과정이다. 최적의 엔트로피 코딩 기술 중 하나인 산술 코딩은 다중 심볼을 단일한 실수로 나타내는 방법이다.
본 발명은 테이블 색인을 사용함으로써, 또한, 보다 특정적으로는, RAM 기반 테이블을 연속된 크고 비싸지 않은 ROM 테이블 및 보다 작은 RAM 테이블로 대체함으로써 산술 코딩 기술의 처리율(초 당 처리되는 비트들)을 향상시키는 방법 상의 개선을 정의한다.
본 발명의 일 측면에서, 상기 엔트로피 인코딩 유닛(130)은 각각의 데이터 심볼에 대해 곱셈 근사를 사용하여 구간을 업데이트하고, 비트 시프트 연산 및 업데이트된 구간 내에서의 덧셈을 사용하여 곱셈 결과에 대한 곱셈 근사를 계산할 수 있다.
상기 계산 과정에서, 상기 엔트로피 인코딩 유닛(130)은 길이의 최상위 1 비트의 위치를 결정할 수 있으며, 근사된 길이를 획득하기 위해 상기 최상위 1 비트 이후의 길이의 최상위 비트 중 일부를 추출할 수 있다. 이러한 경우에, 상기 구간은 근사된 길이 및 곱셈 결과의 결과로 나타나는 비트들을 기반으로 업데이트된다.
도 2의 디코더(200)는 도 1의 인코더(100)에 의해 출력된 신호를 수신한다.
상기 엔트로피 디코딩 유닛(210)은 수신된 신호에 대한 엔트로피 디코딩을 수행할 수 있다. 예를 들어, 상기 엔트로피 디코딩 유닛(210)은 코드 값의 위치 정보를 포함하는 신호를 수신하고, 상기 코드 값의 위치 정보에 대응되는 심볼을 확인하고, 확인된 심볼을 디코딩할 수 있다.
본 발명의 또 다른 측면에서, 상기 엔트로피 디코딩 유닛(210)은 구간 길이의 최상위 비트와 코드 값의 최상위 비트를 결합함으로써 디코딩 테이블 인덱스를 생성할 수 있다.
이러한 경우에, 구간 길이의 최상위 비트는 상기 최상위 1 비트 이후에 상기 위치에 1비트를 더한 지점에서 출발하여 추출될 수 있으며, 상기 코드 값의 최상위 비트는 구간 길이의 최상위 1 비트의 위치에서 출발하여 추출될 수 있다.
한편, 상기 역양자화 유닛(220)은 상기 엔트로피 디코딩된 신호로부터 양자화 단계 크기에 대한 정보를 기반으로 변환 계수를 획득한다.
상기 역변환 유닛(230)은 상기 변환 계수에 대한 역변환을 수행함으로써 예측 에러를 획득한다. 상기 예측 에러를 예측 신호에 더함으로써 복원된 신호가 생성된다.
도 3은 본 발명이 적용되는 일실시예로써, 산술 코딩 구간 데이터를 업데이트하기 위해 필요한 연산 집합을 예시하는 흐름도이다.
본 발명이 적용되는 산술 코딩기는 데이터 소스 유닛(310), 데이터 모델링 유닛(320), 1차 지연 유닛(330) 및 2차 지연 유닛(340)을 포함할 수 있다.
상기 데이터 소스 유닛(310)은 다음의 수학식 1과 같이 M개의 심볼들의 알파벳으로부터 각각 N개의 무작위적 심볼들의 시퀀스를 생성할 수 있다.
Figure 112016115256146-pct00001
이 경우, 본 발명은 상기 데이터 심볼들이 다음의 수학식 2와 같이 영이 아닌 확률을 가지면서 모두 독립적이며 동일하게 분포된 것으로 가정한다.
Figure 112016115256146-pct00002
또한, 본 발명은 다음 수학식 3 과 같이 누적 확률 분포를 정의할 수 있다.
Figure 112016115256146-pct00003
이 경우, c(s)는 엄격하게 단조적(monotonic)이며, c(0) = 0 이고 c(M ) = 1이다.
이러한 조건들이 실제의 복잡한 매체 신호에서 발견되는 것과 크게 다른 것으로 보일 수도 있지만, 사실 상 모든 엔트로피 코딩 도구들이 이러한 가정으로부터 도출된 기술에 기반하고 있으며, 따라서 본 발명은 이러한 단순한 모델로 제한된 구현을 제공할 수 있다.
산술 코딩은 주로 실수 직선 상의 [bk, bk + lk ) 형태의 반개방 구간을 업데이트하는 단계들로 구성되며, 이 때 bk 는 구간 베이스를 나타내고 lk 는 그 길이를 나타낸다. 이들 구간은 각각의 데이터 심볼 sk 에 따라 업데이트되며, 초기 조건 b1 = 0 및 l1 = 1 에서 시작하여 다음 수학식 4 및 5 를 사용하여 k = 1, 2, . . . , N 에 대해 재귀적으로 업데이트된다.
Figure 112016115256146-pct00004
Figure 112016115256146-pct00005
이 경우, 상기 구간들은 다음 수학식 6 과 같이 점진적으로 내부에 포함될 수 있다.
Figure 112016115256146-pct00006
상기 설명한 것과 같이, 도 3 을 참조하면, 상기 데이터 모델링 유닛(320)은 N 개의 무작위 심볼들 Sk 의 시퀀스를 수신할 수 있으며 상기 누적 확률 분포 C(Sk) 및 심볼 확률 p(Sk)을 출력할 수 있다.
구간 길이 lk+1 는 데이터 모델링 유닛(320)으로부터 출력된 Sk 및 1 차 지연 유닛(330)으로부터 출력된 lk 의 곱셈 연산에 의해 획득될 수 있다.
또한, 상기 구간 베이스 bk+1 는 2 차 지연 유닛(340)으로부터 출력된 bk 의 덧셈 연산 및 C(Sk)와 lk 의 곱셈으로부터 획득될 수 있다.
본 발명이 적용되는 산술 코딩은 곱셈과 덧셈의 산술 연산들로 정의될 수 있다. 이 경우, bk 및 lk 는 무한 정밀도(infinite precision)로 나타낼 수 있으나, 이는 처음에 직관적으로 간단한 버전에서 표현을 도입하기 위해 사용된다. 이후에 본 발명은 유한 정밀도(finite precision) 동작을 사용하여 산술 코딩을 근사하게 구현하는 방법을 제공한다.
최종 구간 [bN+1, bN+1 + lN+1)이 계산된 이후에 산술 인코딩된 메시지는 코드 값
Figure 112016115256146-pct00007
에 의해 정의된다. 최대 1 + log2(lN+1) 비트를 사용하여 나타낼 수 있는 값이 하나 존재한다는 것이 증명될 수 있다.
코드 값
Figure 112016115256146-pct00008
를 사용하여 시퀀스 S 를 디코딩하기 위해, 본 발명은 다시 초기 조건 b1 = 0 및 l1 = 1 에서 시작하여, 다음 수학식 7 내지 9 를 사용하여 sk, lk, 및 bk 를 점진적으로 획득한다.
Figure 112016115256146-pct00009
Figure 112016115256146-pct00010
Figure 112016115256146-pct00011
이러한 디코딩 과정이 올바른지의 여부는 모든 구간들이 내부에 포함되고,
Figure 112016115256146-pct00012
인 특성으로부터, 또한 상기 디코더가 상기 인코더에 의해 수행된 동작을 완벽하게 재생한다는 가정에 의해 결론을 내릴 수 있다.
실제적인 산술 코딩의 구현을 위해, 본 발명은 모든 덧셈이 무한 정밀도로 수행되지만 곱셈은 유한 정밀도를 사용하여 일부 특성이 보존되도록 근사된다는 사실을 고려할 수 있다. 본 명세서에서는 본 발명을 이해를 위해 필요한 내용만 다룰 것이다. 예를 들어, 구간 재정규화는 본 발명을 설명함에 있어서 필요한 부분이지만, 이는 본 발명에 영향을 미치지 않으므로 본 명세서에서 설명되지 않을 것이다.
본 발명은 심볼 Bk, Lk, 및 Dk 를 사용하여 각각 bk, lk
Figure 112016115256146-pct00013
의 유한 정밀도 값(통상적으로 정수 값으로 크기가 조정됨)을 나타낼 수 있다. 인코딩의 측면들은 다음 수학식 10 과 11 에 의해 정의될 수 있다.
Figure 112016115256146-pct00014
Figure 112016115256146-pct00015
이 경우, 곱셈 값을 둘러싸는 이중 대괄호(double brackets)는 상기 곱셈이 유한 정밀도 근사(finite precision approximations)에 의한 것임을 나타낸다.
p(s) = c(s + 1) - c(s) (s = 1, 2, ..., M)이므로 상기 수학식 10 은 수학식 4 에 대응된다.
따라서, 상기 디코딩 과정은 다음의 수학식 12 내지 14 와 같이 정의될 수 있다.
Figure 112016115256146-pct00016
Figure 112016115256146-pct00017
Figure 112016115256146-pct00018
산술 디코딩의 중요한 측면 중 하나는, 일부 매우 간단한 경우를 제외하고, 수학식 (7)에서 sk 를 직접적으로 찾아 내는 방법이 없으며, 일부 유형의 탐색이 필요하다는 것이다. 예를 들어, c(s)는 엄격하게 단조적이기 때문에 본 발명은 바이섹션 탐색을 사용할 수 있으며 sk 를 O(log2M) 번의 테스트로 찾을 수 있다. 이는 평균적 탐색 성능 또한 심볼 확률의 분포를 이용하는 탐색 기술을 사용함으로써 개선될 수 있다.
도 4 및 5 는 본 발명이 적용되는 일실시예들로써, 이진 산술 코딩을 기반으로 하여 비디오 신호를 처리하는 인코더 및 디코더의 개략적 블록도를 나타낸다.
본 발명이 적용된 산술 코딩의 구현은 다음과 같은 요소들에 기반할 수 있다.
첫 번째로, 곱셈과 같은 산술 연산은 상대적으로 비용이 높아 이들 연산은 개략적 근사 및 테이블 색인 방식으로 대체될 수 있다.
두 번째로, 곱셈 결과를 제거한다고 해도, 본 발명은 중간 결과 및 덧셈을 유지하기 위해 프로세서 레지스터를 필요로 할 수 있다. 보다 간단한 하드웨어 구현을 위해, 8 또는 16 비트뿐인 레지스터가 이용될 수 있다.
세 번째로, 디코더는 수학식 (12)의 탐색을 구현해야 하기 때문에 인코더에 비해 매우 느릴 수 있으며, 이러한 복잡도는 알파벳 크기 M 이 커질수록 증가한다.
이러한 문제점들을 모두 해결한 코딩의 한 형태가 이진 산술 코딩이며, 이는 이진 입력 알파벳(즉, M = 2)에만 적용되었다. 어떠한 알파벳으로부터의 데이터 심볼도 이진 심볼의 시퀀스로 변환(이진화)될 수 있으므로, 이는 실제적으로 근본적인 제한은 아니다. 도 4 및 5 는 이러한 유형의 코딩을 구현하는 인코더와 디코더를 각각 보여 준다.
상기 인코더(400)는 이진화 유닛(410), 지연 유닛(420), 확률 추정 유닛(430) 및 엔트로피 인코딩 유닛(440)을 포함한다. 또한, 상기 디코더(500)는 엔트로피 디코딩 유닛(510), 지연 유닛(520), 확률 추정 유닛(530) 및 집적 유닛(540)을 포함한다.
상기 이진화 유닛(410)은 데이터 심볼의 시퀀스를 수신하고 이진화를 수행함으로써 이진화된 값 0 또는 1 로 구성된 이진 데이터 스트링을 출력할 수 있다. 상기 출력된 이진 데이터 스트링은 지연 유닛(420)을 통해 확률 추정 유닛(430)으로 전송된다. 상기 확률 추정 유닛(430)은 엔트로피-인코딩을 위한 확률 추정을 수행한다.
상기 엔트로피 인코딩 유닛(440)은 출력된 비트 스트링 및 출력된 압축 데이터 비트에 대한 엔트로피 인코딩을 수행한다.
상기 디코더(500)는 상기 인코딩 과정을 역으로 수행할 수 있다.
그러나, 도 4 및 5 의 코딩 시스템은 다음과 같은 문제를 가질 수 있다.
먼저, 이진화를 위해서는 코딩될 모든 데이터가 순차적으로 분해되어야 하며, 이로 인해 클럭 속도가 높을 때만 빠르게 수행될 수 있다. 그리고, 좁은 레지스터들(narrow registers)이 정밀도의 손실을 피하기 위해 개별 데이터 비트를 가능한 한 빨리 추출하는 것을 필요로 하며, 이로 인해 직렬화의 형태를 취할 수 밖에 없다.
본 발명이 해결하고자 하는 부분은 수학식 12 를 이용하여 sk 를 탐색하는데 있어서의 복잡도이다. 코딩 시스템이 바이섹션 또는 또 다른 형태의 이진-트리 탐색을 사용하는 경우, 상기 코딩 시스템은 디코딩 과정을 이진 결정들로 순차적 분해하여야 하는 문제를 가질 수 있으며, 이는 이진 산술 코딩의 속도에 대한 상당한 개선을 가져올 수 없다.
따라서, 본 발명은 어떠한 형태의 산술 코딩에도 적용될 수 있는 시스템을 제안하고자 하며, 이는 도 6 및 7 의 인코더 및 디코더를 통해 설명하도록 한다.
도 6 및 7 은 본 발명이 적용되는 일실시예들로써, 대용량 데이터 알파벳(large data alphabet) 및 긴 레지스터(long register)를 사용하여 설계된 산술 코딩 시스템의 인코더 및 디코더의 개략적인 블록도를 나타낸다.
도 6 및 7 을 참조하면, 상기 인코더(600)는 지연 유닛(620), 확률 추정 유닛(630) 및 엔트로피 인코딩 유닛(640)을 포함한다. 또한, 상기 디코더(700)는 엔트로피 디코딩 유닛(710), 지연 유닛(720) 및 확률 추정 유닛(730)을 포함한다. 여기서, 상기 엔트로피 인코딩 유닛(640)은 대용량 용량의 데이터 알파벳(large data alphabet)을 직접 수신하여, 대용량 용량의 데이터 알파벳 및 긴 레지스터(long register)를 기반으로 이진 워드(binary word)의 압축된 데이터를 생성할 수 있다.
데이터 심볼에 대한 산술 코딩을 위해, 먼저 엔트로피 인코딩 유닛(640)이 각각의 데이터 심볼에 대한 구간을 생성할 수 있다. 이러한 경우에, 상기 구간은 시작 지점 및 구간의 길이를 기반으로 표현될 수 있다.
상기 엔트로피 인코딩 유닛(640)은 곱셈 근사를 사용하여 각각의 데이터 심볼에 대하여 구간을 업데이트할 수 있다. 이러한 경우에, 상기 곱셈 결과에 대한 곱셈 근사는 음수를 포함하는 인자(factor)의 최적화에 의해 수행될 수 있다. 또한, 곱셈 결과에 대한 곱셈 근사의 크기가 레지스터 비트의 개수로 조정될 수 있다.
이 후에, 상기 엔트로피 인코딩 유닛(640)은 비트 시프트 연산 및 상기 업데이트된 구간 내에서의 덧셈을 사용하여 곱셈 결과의 곱셈 근사를 계산할 수 있다. 이러한 경우, 상기 인코더는 길이의 최상위 1 비트의 위치를 결정하고, 근사화된 길이를 획득하기 위해 상기 최상위 1 비트 이후에 길이의 상위 비트 중 일부를 추출할 수 있다. 상기 구간은 상기 근사화된 길이 및 결과적으로 나타나는 곱셈 결과의 비트를 기반으로 업데이트될 수 있다.
상기 과정을 통해, 대용량 데이터 알파벳(large data alphabet)과 긴 레지스터(long register)를 사용함으로써 산술 코딩의 매 초당 처리된 비트들이 증가될 수 있다.
또한, 도 4 및 5 의 설명은 상기 인코더(600) 및 상기 디코더(700)의 기능 유닛들에 적용될 수 있다.
도 8 은 본 발명이 적용되는 일실시예로써, P 비트 레지스터 상에 Dk 및 Lk의 이진 표현 다이어그램을 나타낸다.
본 발명에서, 허프만(Huffman) 코드의 디코딩을 가속시키기 위해 사용하는 방식 중 하나는 테이블 색인을 사용하는 것이다. 즉, 한 번에 하나의 비트를 읽어 새로운 코드 트리로 이동하는 대신, 여러 비트들을 읽고 읽혀진 비트들은 기산출된 테이블의 인덱스를 생성하기 위해 이용된다. 허프만 코드는 코딩된 심볼에 대해 정수 개의 비트를 생성함으로써 읽혀질 다음 비트들의 집합을 쉽게 정의할 수 있다. 그러나, 이러한 내용들은 산술 코딩에는 적합하지 않을 수 있다.
산술 코딩은 심볼에 대한 정보가 비트들에 대해 정의되지 않고 Dk 와 Lk 사이의 비로 정의될 수 있다.
본 발명은 Dk 를 정규화하기 위해 나눗셈을 사용할 수 있다.
Figure 112016115256146-pct00019
Figure 112016115256146-pct00020
수학식 15 에서, E 는 분수 Dk/Lk 의 양자화된 버전이다. 본 발명은 수학식 15 의 E 로부터 수학식 16 의 바이섹션 탐색(bisection search)을 위한 초기값을 찾을 수 있으며 이는 Kt 개의 원소를 가지는 테이블에 저장될 수 있고, 보다 빠른 디코딩을 가능하게 한다. 상기 테이블 항목은 하기 수학식들에 의해 결정될 수 있다.
Figure 112016115256146-pct00021
Figure 112016115256146-pct00022
Figure 112016115256146-pct00023
이므로, 디코딩을 교정하기 위해 하나의 테이블이면 충분하다. 상기 '하나의 테이블'은 주기적으로 업데이트되는 RAM 에 저장되어야 하므로 RAM 테이블로 정의될 수 있다. 또한, 테이블 색인은 바이섹션 탐색(bisection search)을 초기화하기 위한 것뿐이므로, 모델이 업데이트될 때마다 테이블을 계산하는 오버헤드는 작을 수 있다.
테이블 색인 디코딩(table look-up decoding)에서의 제한 사항(constraint)은 낮은 복잡도의 하드웨어 플랫폼에서 나눗셈이 32 비트 레지스터를 사용한다 하더라도 비싸다는 것이다.
따라서, 본 발명은 테이블 기반 디코딩 방법을 제안하며, 구체적으로 나눗셈 근사를 위해 테이블 색인을 사용하는 방법을 제공한다. 본 발명은 테이블 인덱스를 생성하기 위해 Dk 및 Lk 로부터 추출되는 특별한 부분 집합을 정의할 수 있다. 여기서, 상기 테이블 인덱스는 추가적인 탐색이 필요한 심볼의 범위를 알려 주는 테이블 요소들을 포함할 수 있다.
이하에서는, 본 발명의 일실시예인 테이블 인덱스 및 항목들을 생성하는 방법을 설명할 것이다.
다음 수학식 19 에 기초하여, 본 발명은 D kL k 의 비가 0 이 아닌 최상위 비트(most significant nonzero bits)에 의해 대부분 정의될 수 있음을 확인할 수 있다.
Figure 112016115256146-pct00024
도 8 을 참조하면, P 비트 정수로 저장되는 D kL k 의 이진 표현을 보여 준다. 본 발명은 빠른 프로세서 연산을 사용하여 L k 의 최상위 1 비트의 위치 Q 를 찾아낼 수 있다. 이를 통해, 본 발명은 도 8 에 도시된 것과 같이, L k 로부터 T 개의 비트 u 1 u 2u T 을 추출하고, D k 로부터 T + 1 개의 비트 υ 0 υ 1 υ 2 υ T 을 추출할 수 있다. 이러한 비트들은 이진 표현 u 1 u 2 u T υ 0 υ 1 υ 2 υ T 로써 정수 Z 을 생성하기 위해 사용될 수 있으며, 이는 22T+1 개의 항목을 가지는 디코딩 테이블의 인덱스로 사용될 수 있다.
비트 위치 Q 가 주어지면, 나눗셈 (Dk/Lk)의 상위 경계 값과 하위 경계 값은 수학식 20 에 의해 정의될 수 있다.
Figure 112016115256146-pct00025
여기서, Emin 은 나눗셈 (Dk/Lk)의 상위 경계 값을 의미하며 Emax 는 나눗셈 (Dk/Lk)의 하위 경계 값을 의미한다. 예를 들어, Emin 은 [Dmin/Lmax]로 정의될 수 있으며, Emax 는 [Dmax/Lmin]로 정의될 수 있다. 따라서, Emin 및 Emax 는 수학식 21 및 22 로써 표현될 수 있다.
Figure 112016115256146-pct00026
Figure 112016115256146-pct00027
여기서, 'a'는 곱셈 근사에 대응되는 비트 시프트(bit shift)를 나타낸다. 이러한 값들을 RAM-테이블의 인덱스로 사용함으로써, 바이섹션 탐색(bisection search)을 위한 초기값이 수학식 23 및 24 에서와 같이 획득될 수 있다.
Figure 112016115256146-pct00028
Figure 112016115256146-pct00029
이에 따라, 본 발명은 다음과 같은 심볼 디코딩 과정을 제공할 수 있다.
상기 디코더는 L k 의 최상위 1 비트의 비트 위치 Q 를 결정하고, 비트 위치 Q+1 로부터 시작하여, L k 의 T 개의 최상위 비트들을 추출할 수 있다. 또한, 비트 위치 Q 로부터 시작하여, 상기 디코더는 D k 의 T+1 개의 최상위 비트들을 추출할 수 있다.
이 후, 상기 디코더는 상기 2T + 1 개의 비트를 결합하여 테이블 인덱스 Z 를 형성할 수 있다. 상기 디코더는 상기 테이블로부터 Emin 및 Emax 를 획득하고, 구간 [smin(Z), smax(Z)]에서만 다음 수학식 25 를 만족하는 s 의 값을 탐색할 수 있다.
Figure 112016115256146-pct00030
도 9는 본 발명이 적용되는 일실시예로써, 연결된 ROM-RAM 테이블을 포함하는 산술 디코더의 개략적인 블록도를 나타낸다.
본 발명이 적용되는 디코더는 인덱스 생성 유닛(910), 연결된 ROM-RAM 테이블 유닛(920), 바이섹션 탐색 유닛(930) 및 데이터 모델 유닛(940)을 포함한다. 상기 연결된 ROM-RAM 테이블 유닛(920)은 ROM 테이블(921) 및 RAM 테이블(922)을 포함한다.
상기 인덱스 생성 유닛(910)은 Dk와 Lk를 수신하고 Dk 및 Lk로부터 특정한 비트의 집합을 추출할 수 있다. 또한, 상기 인덱스 생성 유닛(910)은 상기 특정한 비트의 집합을 기반으로 디코딩 테이블에 대한 인덱스 Z를 생성할 수 있다. 이러한 경우에, 상기 인덱스 Z는 LK의 T개의 최상위 비트 및 Dk의 T+1개의 최상위 비트를 기반으로 형성될 수 있다.
상기 생성된 인덱스 Z는 상기 연결된 ROM-RAM 테이블 유닛(920)으로 전송될 수 있다. 상기 전송된 인덱스 Z는 상기 연결된 ROM-RAM 테이블 유닛(920)의 ROM 테이블(921)에 저장될 수 있다. 나눗셈 (Dk/Lk)의 상부 경계 및 하부 경계, Emax와 Emin, 는 ROM 테이블(921)로부터 획득될 수 있으며, RAM 테이블(922)로 전송될 수 있다. 예를 들어, Emax 및 Emin은 수학식 21 및 22를 기반으로 획득될 수 있다.
상기 RAM 테이블(922)은 ROM 테이블(921)로부터 Emax 및 Emin을 수신하고, 바이섹션 탐색을 위한 초기값을 출력할 수 있다. 이러한 값들을 RAM 테이블에 대한 인덱스로 사용하여, 바이섹션 탐색의 초기값, Smax 및 Smin가 획득될 수 있다. 이러한 경우, 수학식 23 및 24가 사용될 수 있다.
상기 바이섹션 탐색 유닛(930)은 해당 구간 [Smin(Emin), Smax(Emax)]에서 s의 값만을 탐색하여, s의 값을 출력할 수 있다. 이러한 경우, 상기 s의 값은 수학식 25를 만족한다.
보다 큰 테이블을 사용함으로써 보다 나은 근사를 얻을 수 있다는 것은 명백하며, 충분히 큰 테이블에 대해 Emin = Emax의 결과를 얻을 수 있을 것이며, 이는 이들이 실제 나눗셈 값과 같은 효율로써 탐색 범위를 좁혀갈 수 있다는 것을 의미한다.
상기 연결된 ROM-RAM 테이블은 업데이트를 요하지 않으며 ROM 에 저장될 수 있으므로 ROM 테이블이라 불릴 수 있다. 또한, RAM 테이블 내의 항목의 개수가 알려지면, Emin 및 Emax 의 해당 최상위 비트들 만이 저장될 필요가 있다. 예를 들어, RAM 테이블 내의 항목들의 개수가 256 인 경우에는, Emin 및 Emax 의 최상위 8 비트만을 저장하는 것으로 충분할 수 있다.
도 10 은 본 발명이 적용되는 일실시예로써, 데이터 심볼을 디코딩하는 방법을 예시하는 흐름도이다.
본 발명이 적용되는 디코더는 코드 값의 위치 정보를 포함하는 비트스트림을 수신할 수 있다(S1010).
예를 들어, 상기 위치 정보는 초기 범위 및 구간 정보 중 적어도 하나를 포함할 수 있다.
또한, 상기 디코더는 코드 값의 위치 정보에 대응되는 심볼을 확인하고(S1020), 확인된 심볼을 디코딩할 수 있다(S1030).
이때, 각 심볼의 확률에 따라 범위가 분할될 수 있고, 분할된 범위 내에 어떠한 심볼이 포함되어 있는지를 확인함으로써 심볼을 디코딩할 수 있다.
도 11은 본 발명이 적용되는 일실시예로써, 연결된 ROM-RAM 테이블을 사용하여 산술 디코딩을 수행하는 방법을 예시하는 흐름도이다.
본 발명이 적용되는 상기 디코더는 구간 길이의 최상위 1 비트의 위치를 결정할 수 있다(S1110).
또한, 상기 디코더는 최상위 1 비트 이후에 상기 위치에 1 비트를 더한 위치에서 시작하여 구간 길이의 최상위 비트를 추출할 수 있으며(S1120), 상기 위치에서 출발하여 코드 값의 최상위 비트를 추출할 수 있다(S1130).
이 후, 상기 디코더는 상기 구간 길이의 최상위 비트와 상기 코드 값의 최상위 비트를 결합함으로써 디코딩 테이블 인덱스를 생성할 수 있다(S1140).
상기 디코더는 ROM 테이블로부터 분할의 상부 및 하부 경계를 획득할 수 있으며(S1150), 상기 상부 및 하부 경계를 기반으로 RAM 테이블로부터 바이섹션 탐색에 대한 초기값들을 획득할 수 있다(S1160). 이때, 상기 연결된 ROM-RAM 테이블은 S1150 및 S1160 의 과정에서 사용될 수 있다.
이 후, 상기 디코더는 해당 구간 내의 시퀀스의 값을 탐색할 수 있다(S1170).
상기 기술된 것과 같이, 본 발명에서 설명한 실시예들은 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 예를 들어, 상기 도 1 내지 도 7 및 도 9 에서 도시한 기능 유닛들은 컴퓨터, 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다.
또한, 본 발명이 적용되는 디코더 및 인코더는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VoD) 서비스 제공 장치, 인터넷 스트리밍 서비스 제공 장치, 3 차원(3D) 비디오 장치, 화상 전화 비디오 장치, 및 의료용 비디오 장치 등에 포함될 수 있으며, 비디오 신호 및 데이터 신호를 처리하기 위해 사용될 수 있다.
또한, 본 발명이 적용되는 처리 방법은 컴퓨터로 실행되는 프로그램의 형태로 생산될 수 있으며, 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 본 발명에 따른 데이터 구조를 가지는 멀티미디어 데이터도 또한 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터로 읽을 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 상기 컴퓨터가 판독할 수 있는 기록 매체는, 예를 들어, 블루레이 디스크(BD), 범용 직렬 버스(USB), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학적 데이터 저장 장치를 포함할 수 있다. 또한, 상기 컴퓨터가 판독할 수 있는 기록 매체는 반송파(예를 들어, 인터넷을 통한 전송)의 형태로 구현된 미디어를 포함한다. 또한, 인코딩 방법으로 생성된 비트 스트림이 컴퓨터가 판독할 수 있는 기록 매체에 저장되거나 유무선 통신 네트워크를 통해 전송될 수 있다.
이상, 전술한 본 발명의 바람직한 실시예는, 예시의 목적을 위해 개시된 것으로, 당업자라면 이하 첨부된 특허청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 다양한 다른 실시예들을 개량, 변경, 대체 또는 부가 등이 가능할 것이다.

Claims (12)

  1. 데이터 심볼에 대한 산술 디코딩을 수행하는 방법에 있어서,
    디코딩 테이블 인덱스를 생성하는 단계;
    ROM 테이블로부터 심볼에 할당된 구간 내 지점과 구간 길이 사이의 비율(Dk/Lk)의 상위 경계 값 및 하위 경계 값(Emax 및 Emin)을 획득하는 단계, 여기서 상기 상위 경계 값과 상기 하위 경계 값은 곱셈 근사에 대응되는 비트 쉬프트 연산에 기초하여 결정됨;
    상기 상위 경계 값 및 상기 하위 경계 값에 기초하여, RAM 테이블로부터 바이섹션(bisection) 탐색을 위한 초기값을 획득하는 단계, 여기서 상기 초기값은 상기 비트 쉬프트를 상기 RAM 테이블의 인덱스로 사용함으로서 획득됨; 및
    구간 내에서 시퀀스 값을 탐색하는 단계를 포함하되,
    상기 구간은 상기 초기값에 기초하여 결정되는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 구간 길이의 최상위 1 비트의 위치를 결정하는 단계;
    상기 위치에 1 비트를 더한 위치로부터 시작하여 상기 최상위 1 비트 이후의 상기 구간 길이의 최상위 비트를 추출하는 단계; 및
    상기 위치로부터 시작하여 상기 구간 베이스의 최상위 비트를 추출하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서,
    상기 구간 길이의 최상위 비트와 심볼에 할당된 구간 내 상기 지점의 최상위 비트를 결합함으로써 디코딩 테이블 인덱스를 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 상위 경계 값은 심볼에 할당된 구간 내 지점의 최대값과 상기 구간 길이의 최소값 사이의 비율에 기초하여 결정되는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    상기 하위 경계 값은 심볼에 할당된 구간 내 지점의 최소값과 상기 구간 길이의 최대값 사이의 비율에 기초하여 결정되는 것을 특징으로 하는 방법.
  6. 삭제
  7. 데이터 심볼에 대한 산술 디코딩을 수행하는 장치에 있어서,
    디코딩 테이블 인덱스를 생성하도록 구성된 인덱스 생성 유닛;
    ROM 테이블로부터 심볼에 할당된 구간 내 지점과 구간 길이 사이의 비율의 상위 경계 값 및 하위 경계 값을 획득하고 상기 상위 경계 값 및 상기 하위 경계 값에 기초하여, RAM 테이블로부터 바이섹션(bisection) 탐색을 위한 초기값을 획득하도록 구성된 연결된 ROM-RAM 테이블 유닛; 및
    구간 내에서 시퀀스 값을 탐색하도록 구성된 바이섹션 탐색 유닛을 포함하되,
    상기 상위 경계 값과 상기 하위 경계 값은 곱셈 근사에 대응되는 비트 쉬프트 연산에 기초하여 결정되고,
    상기 초기값은 상기 비트 쉬프트를 상기 RAM 테이블의 인덱스로 사용함으로서 획득되고,
    상기 구간은 상기 초기값에 기초하여 결정되는 것을 특징으로 하는 장치.
  8. 제 7 항에 있어서,
    상기 구간 길이의 최상위 1 비트의 위치를 결정하고;
    상기 위치에 1 비트를 더한 위치로부터 시작하여 상기 최상위 1 비트 이후의 상기 구간 길이의 최상위 비트를 추출하며;
    상기 위치로부터 시작하여 코드 값의 최상위 비트를 추출하도록 구성된 엔트로피 디코딩 유닛을 더 포함하는 것을 특징으로 하는 장치.
  9. 제 8 항에 있어서,
    상기 디코딩 테이블 인덱스는 상기 구간 길이의 최상위 비트와 상기 코드 값의 최상위 비트를 결합함으로써 생성되는 것을 특징으로 하는 장치.
  10. 제 7 항에 있어서,
    상기 상위 경계 값은 코드 값의 최대값과 상기 구간 길이의 최소값 사이의 비율에 기초하여 결정되는 것을 특징으로 하는 장치.
  11. 제 7 항에 있어서,
    상기 하위 경계 값은 코드 값의 최소값과 상기 구간 길이의 최대값 사이의 비율에 기초하여 결정되는 것을 특징으로 하는 장치.
  12. 삭제
KR1020167032976A 2014-06-29 2015-06-29 연결된 rom-ram 테이블에 기초하여 산술 코딩을 수행하는 방법 및 장치 KR101910376B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462018645P 2014-06-29 2014-06-29
US62/018,645 2014-06-29
PCT/KR2015/006622 WO2016003131A1 (ko) 2014-06-29 2015-06-29 연결된 rom-ram 테이블에 기초하여 산술 코딩을 수행하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20170002479A KR20170002479A (ko) 2017-01-06
KR101910376B1 true KR101910376B1 (ko) 2019-01-04

Family

ID=55019597

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167032976A KR101910376B1 (ko) 2014-06-29 2015-06-29 연결된 rom-ram 테이블에 기초하여 산술 코딩을 수행하는 방법 및 장치

Country Status (6)

Country Link
US (1) US10455247B2 (ko)
EP (1) EP3163877A4 (ko)
JP (1) JP6509916B2 (ko)
KR (1) KR101910376B1 (ko)
CN (1) CN106537913A (ko)
WO (1) WO2016003131A1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004028165A2 (en) 2002-09-20 2004-04-01 Docomo Communications Laboratories Usa, Inc. Method and apparatus for arithmetic coding and decoding

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030023919A1 (en) * 2001-07-12 2003-01-30 Yuan Warm Shaw Stop iteration criterion for turbo decoding
JP3801501B2 (ja) * 2001-12-18 2006-07-26 三菱電機株式会社 符号化装置及び復号装置及び符号化・復号装置及び符号化方法及び復号方法及び符号化・復号方法及びプログラム
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
KR100703773B1 (ko) 2005-04-13 2007-04-06 삼성전자주식회사 향상된 코딩 효율을 갖는 엔트로피 코딩 및 디코딩 방법과이를 위한 장치, 이를 포함하는 비디오 코딩 및 디코딩방법과 이를 위한 장치
US7262722B1 (en) 2006-06-26 2007-08-28 Intel Corporation Hardware-based CABAC decoder with parallel binary arithmetic decoding
CN101190136B (zh) * 2006-11-28 2012-07-18 深圳迈瑞生物医疗电子股份有限公司 实时产生滤波器系数的方法和装置
US7982641B1 (en) 2008-11-06 2011-07-19 Marvell International Ltd. Context-based adaptive binary arithmetic coding engine
KR20100136890A (ko) * 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
KR101063426B1 (ko) 2009-08-26 2011-09-07 주식회사 코아로직 이진 산술 복호화 방법 및 장치
SG182466A1 (en) * 2010-01-12 2012-08-30 Fraunhofer Ges Forschung Audio encoder, audio decoder, method for encoding and audio information, method for decoding an audio information and computer program using a modification of a number representation of a numeric previous context value
JPWO2013046504A1 (ja) * 2011-09-29 2015-03-26 パナソニックIpマネジメント株式会社 算術復号装置、画像復号装置、および算術復号方法
EP2779643A4 (en) * 2011-11-08 2015-09-02 Samsung Electronics Co Ltd METHOD AND DEVICE FOR VIDEO ARITHMETIC ENCODING, AND METHOD AND DEVICE FOR VIDEO ARITHMETIC DECODING

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004028165A2 (en) 2002-09-20 2004-04-01 Docomo Communications Laboratories Usa, Inc. Method and apparatus for arithmetic coding and decoding

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Amir Said. Introduction to Arithmetic Coding - Theory and Practice. Imaging Systems Laboratory HP Laboratories Palo Alto HPL-2004-76. 2004.04.21.*
H. 265: High efficiency video coding. Recommendation ITU-T H.265, 2013.04.*
Yuan Xie, et al. A code decompression architecture for VLIW processors. 34th ACM/IEEE International Symposium on Microarchitecture. 2001.*

Also Published As

Publication number Publication date
KR20170002479A (ko) 2017-01-06
US10455247B2 (en) 2019-10-22
JP6509916B2 (ja) 2019-05-08
CN106537913A (zh) 2017-03-22
EP3163877A4 (en) 2018-03-07
EP3163877A1 (en) 2017-05-03
JP2017525266A (ja) 2017-08-31
US20170142437A1 (en) 2017-05-18
WO2016003131A1 (ko) 2016-01-07

Similar Documents

Publication Publication Date Title
JP6215304B2 (ja) 映像コーディングにおける基準インデックスコーディングのためのバイパスビン
KR102272992B1 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
US7982641B1 (en) Context-based adaptive binary arithmetic coding engine
KR100694098B1 (ko) 산술 복호 방법 및 그 장치
KR20180074773A (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
KR101688452B1 (ko) 변환 계수 인코딩 및 디코딩 방법 및 장치
TW201547256A (zh) 在一視訊寫碼處理中之係數階寫碼
TW202103457A (zh) 用於音訊/視訊樣本向量之錐型向量量化檢索/解檢索之方法及裝置
US20170064328A1 (en) Video encoding method and apparatus and video decoding method and apparatus
KR20200121916A (ko) 산술 인코딩 또는 산술 디코딩 방법 및 장치
US11475600B2 (en) Method and device for digital data compression
KR101898664B1 (ko) 제한된 캐리 연산에 의한 산술 코딩을 수행하기 위한 방법 및 장치
US20130082850A1 (en) Data encoding apparatus, data decoding apparatus and methods thereof
JP2012089917A (ja) 符号化装置および方法、並びにプログラム
US20140269896A1 (en) Multi-Frame Compression
KR101910376B1 (ko) 연결된 rom-ram 테이블에 기초하여 산술 코딩을 수행하는 방법 및 장치
JP4918103B2 (ja) 符号化方法、復号方法、それらの装置、プログラム及び記録媒体
US20160323603A1 (en) Method and apparatus for performing an arithmetic coding for data symbols
JPH04343576A (ja) 高能率符号化方法と高能率符号の復号方法
JP2924416B2 (ja) 高能率符号化方法
KR101136858B1 (ko) 동영상 압축 표준에서의 인코딩 장치 및 방법
JP2005283692A (ja) オーディオ信号圧縮方法

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