KR101353170B1 - 완전히 활용되지 않는 코드 공간을 압축하는데 산술 스테이지를 이용하는 인코더 및 디코더 - Google Patents

완전히 활용되지 않는 코드 공간을 압축하는데 산술 스테이지를 이용하는 인코더 및 디코더 Download PDF

Info

Publication number
KR101353170B1
KR101353170B1 KR1020127010948A KR20127010948A KR101353170B1 KR 101353170 B1 KR101353170 B1 KR 101353170B1 KR 1020127010948 A KR1020127010948 A KR 1020127010948A KR 20127010948 A KR20127010948 A KR 20127010948A KR 101353170 B1 KR101353170 B1 KR 101353170B1
Authority
KR
South Korea
Prior art keywords
code
arithmetic
significant bit
encoder
decoder
Prior art date
Application number
KR1020127010948A
Other languages
English (en)
Other versions
KR20120073307A (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 KR20120073307A publication Critical patent/KR20120073307A/ko
Application granted granted Critical
Publication of KR101353170B1 publication Critical patent/KR101353170B1/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
    • 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • 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/3082Vector 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

산술 인코더를 이용하여 팩토리얼 펄스 코더의 출력의 MSB 부분들을 인코딩하고, 제1 레벨 소스 인코더, 예를 들면 MDCT의 출력을 인코딩하는 인코더/디코더 아키텍쳐. 신호의 부분들(예를 들면, 프레임들)의 서브-파트들(예를 들면, 주파수 대역들)은 신호 에너지와 관련된 측정(예를 들면, 신호 에너지 자체)에 기초하여 증가하는 순서로 적합하게 소팅된다. 팩토리얼 펄스 코딩 상에 산술 인코딩을 오버레이하는 시스템에서, 결과적으로 비트들은 더 높은 신호 에너지 컨텐트를 가지는 대역들에게 재할당되어 더 높은 신호 품질 및 더 높은 비트 활용 효율을 만들어낸다.

Description

완전히 활용되지 않는 코드 공간을 압축하는데 산술 스테이지를 이용하는 인코더 및 디코더{ENCODER AND DECODER USING ARITHMETIC STAGE TO COMPRESS CODE SPACE THAT IS NOT FULLY UTILIZED}
본 발명은 일반적으로는 효율적인 디지털 인코딩 및 디코딩에 관한 것이다.
지난 20년간 마이크로프로세서 속도는 몇 자릿수만큼 증가되었고 디지털 신호 프로세서들(DSPs)은 유비쿼터스하게 되었다. 아날로그 통신에서 디지털 통신으로 변환하는 것은 실행가능하고 매력적이게 되었다. 디지털 통신은 대역폭을 더 효율적으로 활용할 수 있다는 주요한 장점을 제공하고 에러 정정 기술들이 이용될 수 있도록 허용한다. 그러므로, 디지털 기술을 이용함으로써, 주어진 할당된 스펙트럼 공간을 통해 더 많은 정보를 전송하고 정보를 더 신뢰성 있게 전송할 수 있다. 디지털 통신은 무선 링크들(무선) 또는 물리적 네트워크 매체(예를 들면, 광섬유들, 구리 네트워크들)를 이용할 수 있다.
디지털 통신은 예를 들면 오디오, 비디오 또는 텔리메트리(telemetry)와 같은 다양한 타입들의 통신에 이용될 수 있다. 디지털 통신 시스템은 전송 디바이스 및 수신 디바이스를 포함한다. 양방향 통신을 지원하는 시스템에서, 각 디바이스는 전송 및 수신 회로들 양쪽 모두를 가지고 있다. 디지털 전송 또는 수신 디바이스에서, 입력(예를 들면, 마이크로폰, 카메라, 센서)을 통해 입력되는 스테이지와 반송파를 변조하는데 이용되고 송신되는 스테이지 사이에서 데이터가 통과되는 복수의 스테이지로 된 프로세스들이 있다. (1) 입력되고 그리고나서 디지털화된 이후에, (2) 일부 초기 노이즈 필터링이 적용되고, 이어서 (3) 소스 인코딩, 및 (4) 최종적으로 채널 인코딩이 수행된다. 연속되는 페이지들에 기재될 본 발명은 소스 인코딩 스테이지에 드는 것으로 간주될 수 있다.
소스 인코딩의 주요한 목표는 감지되는 품질을 가능한 정도까지 유지하면서도 비트 레이트를 줄이는 것이다. 상이한 타입들의 미디어에 대해 상이한 표준들이 개발되어 왔다. 예를 들면, JPEG 표준이 정지 이미지들에 적용되는데 대해 IS-127 표준이 오디오에 적용된다. 실용성에 대한 양보로, 소스 인코더들은 종종 DSP 레지스터 길이 또는 심지어 DSP 레지스터 길이의 배수의 배수(예를 들면, 128비트)에 대응하는 벡터 길이들을 이용하여 설계된다. 이제, 각 어플리케이션에 대해, 할당된 채널 대역폭 상에 일부 제한이 있다. 이러한 제한에 기초하여, 소스 인코더/디코더의 설계자는 인코딩될 미디어의 각 부분의 모든 자유도의 정도들을 감안하여 특정 개수의 가능한 코드들을 결정할 것이다. 예를 들면, 오디오 인코딩의 경우에, 확립되는 특정 프레임 크기(예를 들면, 160개의 샘플들 길이), 각 오디오 프레임에서의 허용된 오디오 펄스들의 특정 개수, 및 펄스들에게 할당되는 전체 진폭 퀀타(quanta)의 특정 개수가 있을 수 있다. 설계자에 의해 수행되는 선택들은 할당된 대역폭 내에서 유지하면서도 인지 품질(perceptual quality)을 최대화시키려는 것이다. 모든 것들이 이산적이고 양자화되므로, 고유한 프레임들의 전체 개수를 계산할 수 있다. 그 프레임 동안에 오디오에 가장 잘 대응하는 하나의 고유한 프레임을 식별하기에 충분한 정보를 오디오 프레임의 시간 인터벌 동안에 채널을 통해 전송할 수 있어야 하기 때문에, 각 프레임에 대한 고유한 가능성들의 전체 개수는 할당된 대역폭과 밀접하게 관련된다. 고유한 프레임들의 전체 개수가 더 커질수록, 하나의 특정 프레임을 고유하게 식별하는데 더 많은 정보가 요구된다. 이제, 고유한 프레임들의 전체 개수 (n)가 2의 거듭제곱이 아닌, 즉 n≠2k일 경우가 있을 수 있고, 여기에서 k는 정수이다. 예를 들면, n<2k라고 가정하고, 이 경우에, 각 프레임을 표현하는데 k 비트 정수를 이용한다면, 결코 전송되지 않을 2k 근처의 더 높은 값의 정수들의 일부 범위가 항상 존재할 것이다. 이것은 시스템의 비효율성을 나타내는데, 이는 k개의 비트들을 할당했지만 k개의 비트들이 완전하게 활용되지 않기 때문이다.
미국특허 제7,230,550호는 멀티-비트 코드워드들의 세트를 최상위 비트(MSB) 부분들 및 최하위 비트(LSB) 부분들로 분할하고 MSB 부분들 및 LSB 부분들을 그 세트를 표현하는데 필요한 전체 비트 크기를 줄이는 방식으로 조합함으로써 상기 언급된 비효율성을 어드레싱하는 방법을 개시하고 있다. 불행하게도, 높은 대역폭, 하이파이(high fidelity) 시스템에서 요구될 수 있는 바와 같이 다수의 코드워드들이 이러한 방식으로 처리되어야 하는 경우에, '550 특허의 방법은 높은 정밀도의 승산 연산들이 수행될 것을 요구할 것이다. 이것은 계산상 비용이 많이 들고 따라서 불리하다.
상기 예는 오디오와 관련하고 프레임들을 설명하고 있지만, 더 일반적으로는, 상이한 타입들의 미디어(예를 들면, 이미지, 비디오, 텔리메트리 및 오디오)는 n개의 가능한 코드들 중 하나에 의해 특성화될 수 있고(전체적으로 또는 부분적으로), 여기에서 n은 정수(대역폭 제한들에 기초하여 선택될 수 있음)이지만 2의 거듭제곱은 아니며, 예를 들면 n≠2k(k는 정수임)이다. 유사하게, 그러한 일반화된 경우에도 비효율성이 또한 발생할 것이다.
유사한 참조번호들이 수 개의 도면들 전체에 걸쳐 동일하거나 기능적으로 유사한 구성요소들을 지칭하고 이하의 상세한 설명과 함께 명세서에 포함되며 그 일부를 형성하는 첨부된 도면들은, 다양한 실시예들을 추가적으로 예시하고 본 발명에 따라 다양한 원리들 및 장점들을 모두 설명하는 데 도움이 된다.
도 1은 본 발명의 실시예에 따른 통신 시스템의 블록도이다.
도 2는 도 1에 도시된 통신 시스템에 이용된 디바이스의 송신기의 블록도이다.
도 3은 도 1에 도시된 통신 시스템에 이용된 디바이스의 수신기의 블록도이다.
도 4는 선행 인코더에 의해 생성된 코드들(예를 들면, FPC 코드들)의 최상위 비트 부분들(MSB들)을 코딩하기 위한 산술 코더의 플로우차트이다.
도 5는 또 하나의 인코더에 의해 생성된 코드들(예를 들면, FPC 코드들)의 MSB들을 표현하는 산술 코드들을 디코딩하기 위한 산술 디코더의 플로우차트이다.
도 6은 유한 정밀도 산술(finite precision arithmetic)로 산술 코딩 시에 요구되는 여분 비트들의 개수를 나타내는 산술 코더 코딩 효율 항을 결정하기 위한 프로세스의 플로우차트이다.
도 7은 팩토리얼 펄스 코딩과 조합하여 산술 코딩을 이용하는 오디오 인코딩 방법의 플로우차트이다.
본 기술분야의 숙련자들은 도면의 구성요소들이 단순성 및 명료성을 위해 예시되어 있고 반드시 일정한 비례로 그려진 것은 아니라는 것을 잘 알고 있을 것이다. 예를 들면, 도면들의 일부 구성요소들의 치수들은 다른 구성요소들에 비해 과장되어 본 발명의 실시예들의 이해를 개선시키는데 도움을 줄 수 있다.
본 발명에 따른 실시예들을 상세하게 설명하기에 앞서서, 본 실시예들은 주로 인코더들 및 디코더들과 관련된 방법 단계들 및 장치 컴포넌트들의 조합에 있다는 것을 알아야 한다. 따라서, 장치 컴포넌트들 및 방법 단계들은 적절한 경우에 도면들에서 관례적인 심볼들에 의해 표현되었고, 본 설명의 이익을 얻은 본 기술분야의 통상의 기술자들에게 용이하게 명백한 세부사항들로 본 명세를 모호하지 않게 하도록 본 발명의 실시예들을 이해하는 것과 관련된 특정 세부사항들만을 도시하고 있다.
본 문헌에서, 제1 및 제2, 상부 및 하부, 등과 같은 관계 용어들은 그러한 실체들 또는 액션들 사이에 임의의 그러한 실제적인 관계 또는 순서를 반드시 요구하거나 함축하지는 않고 하나의 실체 또는 액션을 또 하나의 실체 또는 액션으로부터 구별하는 데에만 이용될 수 있다. 용어들 "포함한다(comprises)", "포함하는(comprising)", 또는 그 임의의 다른 어미 변화는 비-배타적 포함을 커버하려는 것으로, 하나의 구성요소들의 리스트를 포함하거나 구비하는 프로세스, 방법, 제품, 또는 장치는 단지 이들 구성요소들만을 포함하는 것이 아니라, 명시적으로 리스트되지 않거나 그러한 프로세스, 방법, 제품 또는 장치에 내재된 다른 구성요소들을 포함할 수 있다. "포함하는(comprise a...)에 뒤따르는 구성요소는, 더 이상의 제한이 없다면, 그 구성요소를 포함하거나 구비하는 프로세스, 방법, 제품, 또는 장치에 추가적인 동일한 구성요소들의 존재를 배제하는 것은 아니다.
여기에 기재된 본 발명의 실시예들은 하나 이상의 종래의 프로세서들, 및 그 하나 이상의 프로세서들을, 일부 비-프로세서 회로들과 조합하여 여기에 기재된 인코더들 및 디코더들의 기능들 중 일부, 대부분 또는 모두를 구현하도록 제어하는 고유 저장된 프로그램 명령들을 포함할 수 있다는 것은 자명하다. 비-프로세서 회로들은 무선 수신기, 무선 송신기, 신호 드라이버들, 클럭 회로들, 전원 회로들, 및 사용자 입력 디바이스들을 포함할 수 있지만, 이들에 제한되지 않는다. 그럼으로써, 이들 기능들은 인코딩 및 디코딩을 수행하는 방법의 단계들로서 해석될 수 있다. 대안으로, 일부 또는 모든 기능들은 어떠한 저장된 프로그램 명령들도 가지지 않은 상태 머신에 의해, 또는 각 기능 및 그 기능들 중 특정 기능들의 일부 조합들이 주문형 로직(custom logic)으로 구현되는 하나 이상의 어플리케이션 특정 집적 회로들(ASICs)에서 구현될 수 있다. 물론, 2가지 접근법들의 조합도 이용될 수 있다. 그러므로, 이들 기능들에 대한 방법들 및 수단이 여기에 기재되었다. 또한, 본 기술분야의 통상의 기술자라면, 예를 들면 가용 시간, 현재 기술 및 경제적 고려들에 의해 동기가 되는 아마도 상당한 노력 및 다수의 설계 선택들에도 불구하고, 여기에 개시된 개념들 및 원리들에 의해 유도되는 경우에, 그러한 소프트웨어 명령들 및 프로그램들, 및 IC들을 최소의 실험으로 용이하게 생성할 수 있을 것으로 예상된다.
도 1은 본 발명의 실시예에 따른 통신 시스템(100)의 블록도이다. 통신 시스템(100)은 통신 네트워크 또는 피어-투-피어 채널(106)을 통해 통신가능하게 결합된 제1 통신 디바이스(102) 및 N번째 통신 디바이스(104)를 포함한다. 통신 디바이스들(102, 104)의 적어도 하나는 송신기를 포함하고, 통신 디바이스들(102, 104)의 적어도 하나는 수신기를 포함한다. 일부 실시예들은 양쪽 통신 디바이스들(102, 104) 모두가 양쪽 송신기 및 수신기 모두를 포함하는 양방향 통신을 제공한다.
도 2는 도 1에 도시된 통신 시스템에 이용된 디바이스(102, 104)의 송신기(200)의 블록도이다. 송신기는 송신되는 정보 타입에 따라 상이한 형태들을 취할 수 있는 입력(202)을 포함한다. 오디오의 경우에, 입력(202)은 마이크로폰의 형태를 적합하게 취하고, 비디오의 경우에, 입력(202)은 이미지 센서의 형태를 적합하게 취하며, 텔리메트리의 경우에, 입력은 센서의 형태를 취할 수 있다.
입력(202)은 신호 컨디셔너(204)에 결합된다. 신호 컨디셔닝은 예를 들면 아날로그-도메인 필터링 및/또는 증폭을 포함할 수 있다.
이러한 신호 컨디셔너(204)는 신호 컨디셔너(204)로부터 수신된 신호를 디지털화하는 아날로그-대-디지털 컨버터(A/D)(206)에 결합된다.
A/D(206)는 디지털-도메인에서 추가적인 필터링을 수행하는데 이용되는 디지털 필터(208)에 결합된다.
디지털 필터는 제1-레벨 소스 인코더(210)에 결합된다. 제1 레벨 소스 인코더(210)는 예를 들면, 대수 부호 여진 선형 예측(ACELP) 인코더(오디오 인코더의 하나의 타입임), 변형된 이산 코사인 변환(MDCT) 인코더(다수의 상이한 타입들의 신호들에 적용될 수 있음), 또는 사전-인코더 또는 사전-처리 스테이지로서 작용할 수도 있는 임의의 타입의 신호 인코더를 포함할 수 있다. 이제, 제1-레벨 소스 인코더는 통상적으로는 착신(incoming) 데이터를 이산 블록들(예를 들면, 규정된 지속기간(특정 개수의 샘플들에 대응함)의 오디오 프레임들, 또는 이미지의 작은 블록들)로 세그먼팅하고, 한번에 하나씩 이들 블록들을 인코딩할 것이다. (이것은 선행 프레임들 또는 블록들에 대한 차이 인코딩을 배제하지 않는다는 점에 유의하라.) 시스템의 이러한 시점에서, 모든 것이 양자화되고 이산화되어, 각 이산 블록에 대해 유한한 개수의 상이한 가능 신호 벡터들이 있다. 이산화 및 양자화의 레졸루션(resolution)은 시스템을 구현하는데 이용되는 디지털 신호 프로세서(DSP)의 레지스터의 길이와 같은 그러한 실제적인 고려사항들에 기초하여 설계될 수 있다. 제1 레벨 소스 인코더(210)의 다른 양태들뿐만 아니라 이산화 및 양자화는 또한 적합하게는 인지 고려사항에 기초하거나, 더 일반적으로 말하면 송신된 신호 품질 요구조건들에 기초한다. 송신기(200)의 원단(far end)에서, 즉 채널로의 출력(228)에서, 또한 수용되어야만 하는 또 하나의 제한, 즉 최대 채널 대역폭이 있다. 신호 품질 고려사항들과 가용한 대역폭 사이에서 뛰어난 균형을 달성하는 것은 일반적으로, 가능한 신호 벡터들의 개수가 2의 정수 거듭제곱이 되지 않을 수 있는 소스 인코더(210, 212)의 설계로 유도할 것이다(즉, n≠2k, 여기에서 n은 가능한 신호 벡터들의 개수이고 k는 임의의 정수임). 이러한 통상적인 상황에서, 각 이산 데이터 블록에 대해 n개의 가능한 신호 벡터들 중 하나를 식별하기 위해 k 비트 코드 워드를 송신한다면 시스템에 뚜렷한 비효율성이 있을 것이다. 정보 이론의 통상의 기술자들에게 명백한 이러한 비효율성은 n<2k이므로 k 비트 정수(코드 워드)의 특정 값들이 결코 전송되지 않을 것이지만 그럼에도 불구하고 모든 k 비트들이 전송되는 것이 요구되기 때문에 발생한다. 이러한 상황에서, n개의 신호 벡터들의 하나를 표현하는 k 비트 코드 워드들은 "비-정수" 길이를 가지고 있다고 말해진다.
다시, 도 2를 참조하면, 제1 레벨 소스 인코더(210)는 팩토리얼 펄스 코더(FPC, 212)에 결합된다는 것을 알 수 있다. FPC는 n개의 비트 신호 벡터들을 표현하는 k 비트 코드 워드들을 생성할 수 있는 하나의 타입의 코더이다. 앞선 팩토리얼 펄스 코더는 본 발명과 공통으로 양도된 Weimin Peng 등에 허여된 미국특허 제6,236,960호에 기술되어 있다. 기본적인 FPC는 모든 가능한 신호 벡터들의 순서화(ordering)를 확립하고 그 순서화에서 특정 신호 벡터를 지시하는 정수 코드워드를 생성함으로써 작동한다. 특정 신호 벡터는 비-제로 위치들, 크기들 및 부호들의 특정 고유한 조합에 의해 특성화된다. 그러므로, 신호 벡터를 송신하는 대신에, 정수 코드워드가 송신된다. 발명의 명칭이 "Apparatus and Method for Low Complexity Combinatorial Coding of Signals"인 미국특허 제7,461,106호는 인코딩 및 디코딩의 계산상 비용을 줄이기 위해 '960 특허에서 기재된 조합 함수들의 근사화들을 이용하는 FPC의 진척들을 제공한다. 비-정수 길이 코드 워드들로 인한 상기 기재된 비효율성은 FPC(212)의 출력에서 지속된다. 비효율성은 바로 기재될 송신기의 후속 스테이지들의 제공에 의해 어드레싱된다.
팩토리얼 펄스 코더(212)는 MSB/LSB 파서(214)에 결합된다. MSB/LSB 파서(214)는 FPC(212)로부터 수신된 각 멀티-비트 코드를 최상위 비트들 부분(MSB) 및 최하위 비트들 부분(LSB)으로 분할한다. 이러한 시점에서 코드 워드들을 분할하는 것은 상기 언급된 비효율성을 어드레싱하는 제1 스테이지이다. LSB 부분들은 모든 가능한 값들을 취할 수 있고, 따라서 이들 비트들은 더 완전하게 활용될 것이다. MSB는 완전하게 활용되지 않을 수 있고, 따라서 MSB 및 LSB를 별도로 분할함으로써, 비효율성은 MSB에서 분리된다. 본 발명의 대안 실시예들에 따르면, FPC 코딩 대신에, 또 하나의 타입의 조합 인코딩 및 디코딩이 이용된다. 다른 타입들의 조합 인코딩 및 디코딩을 이용하는 경우에, 유사한 이점들이 얻어질 수 있다.
본 발명의 대안 실시예들에 따르면, FPC로부터 수신된 코드 워드들은 모두 동일한 길이(예를 들면, k 비트 길이)인 것은 아니다. 그러한 경우에, 하나의 옵션에 따르면, MSB 부분으로 그룹화되는 비트들의 개수는 고정되고, LSB 부분으로 그룹화되는 비트들의 개수는 가변되도록 허용된다. 코드 워드들이 그 길이가 가변될 수 있는 하나의 어플리케이션은, 제1 레벨 소스 인코더(210)가 분리된 오디오 주파수 대역들을 분리되게 코딩하고 각각에 대해 상이한 개수의 비트들을 할당하는 오디오 통신 시스템이다. 상이한 오디오 대역들은 이들이 커버하는 주파수 범위 및/또는 이들이 포함하는 스펙트럼 에너지에 기초하여 인지되는 오디오 품질에 상이한 영향을 미치기 때문에, 이것이 정당화될 것이다.
다시, 도 2를 참조하면, MSB/LSB 파서(214)는 복수 MSB 버퍼(216) 및 복수 LSB 버퍼(218)에 결합되어 있다는 것을 알 수 있다. LSB 부분들은 완전하게 활용되기 때문에, 이들은 간단하게 함께 결부될 수 있다(concatenated). 예를 들어, 오디오 어플리케이션에서, 하나의 오디오 프레임 주기 동안에 주파수 대역들의 세트의 모두로부터 도출된 LSB 부분들을 함께 결부시킬 수 있다. 복수 LSB 버퍼(218)는 복수 LSB 부분들을 함께 결부시키는 컨캐터네이터(concatenator, 222)에 결합된다.
복수 MSB 버퍼(216)는 산술 인코더(220)에 결합된다. 개념적으로는, 산술 인코더는 심볼 시퀀스들을 범위 제로 내지 1의 범위의 특정 서브-범위(확률 영역)에 고유하게 매핑하는데 이용될 수 있다. 제1 심볼은 (0,1] 범위를 상이한 심볼 값들의 개수(예를 들면, 이진수에 대해 2)와 동일한 다수의 서브-범위들로 분할하는데 이용된다. 서브-범위의 크기는 연관된 심볼 값의 확률(예를 들면, 제로의 25% 가능성, 및 1의 75% 가능성)에 비례할 수 있다. 하나의 서브-범위는 심볼의 아이덴터티(값)에 기초하여 선택된다. 각각의 연속적인 심볼은 그 프리픽스(그에 선행하는 심볼들의 서브-시퀀스)를 이용하여 식별된 서브-범위를 추가로 다시 분할(subdivide)하는데 이용된다. 그리고나서, 각 서브-범위 내에 들어가는 분수의 이진 표현(예를 들면, 3/4를 나타내는 11)이 코드로서 이용되어, 서브-범위에 매핑하는 심볼 시퀀스를 표현한다. 하나의 타입의 산술 인코더는 발명의 명칭이 "Arithmetic Encoding For ACELP Encoders"이고 동시 계류 중인 특허 출원 일련번호 XX/XXX,XXX(도켓번호 CML07096)에서 교시되어 있다. 그 경우에, 오디오 데이터는 이진 시퀀스들, 즉 각 심볼이 제로 또는 1 중 어느 하나인 시퀀스들로 변형되었다. 본 발명에 이용되는 산술 인코더(220)는 심볼들이 정수 값으로 되어 있고 0 내지 Gi MAX - i번째 MSB 부분의 최대값 - 의 범위로 될 수 있다는 점에서 더 복잡하다. 이 경우에, 각 심볼이 선행하는 범위(또는 서브-범위)를 2개의 서브-범위들로 분할하는데 이용되기보다는, 각 심볼은 선행하는 범위(또는 서브-범위)를 Gi MAX 개수의 서브-범위들로 분할하는데 이용된다. 산술 인코더의 플로우차트는 도 4에 도시되어 있고 이하에 설명된다. 산술 인코더(220)의 출력은 복수 MSB 버퍼(216)로부터 수신되었던 MSB 부분들의 시퀀스를 표현하는 코드("산술 코드")이다.
다시, 도 2를 참조하면, 산술 인코더(220) 및 컨캐터네이터(222)는 패킷 어셈블러(224)에 결합된다. 패킷 어셈블러(224)는 채널로의 출력(228)에 결합되는 채널 인코더(226)에 결합된다. 스펙트럼 대역 에너지들과 같은 다른 정보도 또한 패킷 어셈블러에 제공될 수 있다.
도 3은 도 1에 도시된 통신 시스템에 이용된 디바이스(102, 104)의 수신기(300)의 블록도이다. 송신기(200)에 의해 전송된 패킷들은 파서(306)에 결합된 채널 디코더(304)에 결합되는 채널로부터의 입력(302)에서 수신된다. 패킷 파서(306)는 n-LSB 레지스터(312) 및 산술 코드 레지스터(308)에 결합된다. 패킷 파서(306)는 결부된 LSB들을 추출하고, 이들을 n-LSB 레지스터(312)에 전달한다. 패킷 파서(306)는 또한 산술 코드를 추출하고, 이를 산술 디코더(310)에게 전달한다. 산술 디코더(310)는 n-MSB 레지스터(314)에 결합된다. 산술 디코더(310)는 인코딩과 반대로 수행하고, MSB 부분들의 시퀀스를 n-MSB 레지스터(314)에 출력한다. 산술 디코더(310)의 플로우차트는 도 5에 도시되어 있고 이하에 설명된다.
n-LSB 레지스터(312) 및 n-MSB 레지스터(314)는 멀티플렉서(316)에 결합된다. 멀티플렉서(316)는 FPC 레지스터에 결합된다. 멀티플렉서(316)는 대응하는 MSB들 및 LSB들을 재연관시켜 팩토리얼 펄스 코드 레지스터(318)에 전달되는 완전한 FPC 코드 워드들을 재구성한다. FPC 레지스터(318)는 이번에는 팩토리얼 펄스 디코더(320)에 결합된다. 팩토리얼 펄스 디코더(320)는 제1 레벨 소스 인코더(210)의 코딩된 출력을 재구성하고, 이를 제1 레벨 소스 디코더(322)에 전달하고, 이 제1 레벨 소스 디코더는 원래의 정보(예를 들면, 오디오, 이미지 데이터)를 재구성한다. 제1 레벨 소스 디코더(322)는 출력(326, 예를 들면, 디스플레이, 오디오 스피커)에 결합되는 디지털-대-아날로그 컨버터(D/A, 324)에 결합된다.
도 4는 선행하는 인코더(예를 들면, 팩토리얼 펄스 인코더)에 의해 출력된 코드들의 MSB 부분들을 인코딩하는데 이용되는 산술 인코더(220)의 플로우차트이다. 블록 402에서, 인덱스 i, 인덱스 j, 변수 x, 변수 y, 및 변수 rl, 변수 n, 및 변수 n-tilda가 초기화된다. MSB 부분들의 시퀀스에서 하나의 MSB 부분을 식별하는 변수 i는 그 시퀀스에서 제1 MSB 부분을 지시하기 위해, 제로로 초기화된다. 산술 인코더(310)에 의해 생성되는 코드 워드의 연속적인 비트들을 지시하는 변수 j는 -2로 초기화된다(처음 2개의 코드 비트들은 이용되지 않는다). 산술 코드 공간 범위에서 위치를 표현하는 변수 x는 제로로 초기화된다. 서브-범위의 폭을 표현하는 재-스케일링가능한(re-scalable) 변수인 변수 y는 2W로 초기화된다. 개념적으로는, 코드 공간은 범위 (0,1]로 생각될 수 있지만, 실제로는 코드 공간은 범위 0 내지 2W로 표현된다. W는 또한 효과적으로는 산술 인코더(310)에 의해 이용되는 산술(arithmetic)의 정밀도를 대응하는 정밀도 파라미터이다. W는 도 4-6에 도시된 플로우차트들에서 고정되어 있지만, 다르게는 W는 각각의 i번째 심볼에 대해 독립적으로 설정될 수 있다. rl 런-렝스(run-length) 변수는 제로로 초기화된다. n은 Gi MAX로 초기화되고, i는 그 초기값 0으로 설정된다. Gi MAX는 i번째 MSB 부분의 최대값이다. MSB 부분들은 제1 레벨 소스 인코더(210)의 설계에 따라 상이한 최대값들을 가질 수 있다. 예를 들면, 상이한 주파수 대역들을 코딩하기 위해 할당된 상이한 비트들은 Gi MAX의 상이한 값들로 유도될 수 있다. n-tilda는 Gi, i번째 MSB의 실제 값으로 초기화된다.
블록 402 이후에, 결정 블록(404)은 코딩될 모든 MSB 부분들이 처리되었는지를 테스트하는 루프 종료 기준이다. 결과가 부정이면(처리될 더 많은 MSB 부분들이 있다는 것을 의미함), 플로우차트는 블록 406으로 계속된다. 블록 406의 제1 단계는 다음 서브-범위 크기를 계산하는 것이다. 다음 서브-범위 크기는 이 시점에서 각각 n-tilda 및 n에 의해 표현되는, Gi(i번째 MSB 부분) 및 Gi MAX(i번째 MSB 부분의 최대값)의 값에 의해 결정되는 선행하는 서브-범위 크기의 분수(fraction)이다. 서브-범위의 크기를 계산하는데 이용되는 공식은 이하와 같다.
Figure 112012033906907-pct00001
상기 공식이 평가된 후, i가 증가되고 n 및 n-tilda는 각각 Gi MAX 및 Gi로 설정된다.
다음으로, 블록 408에서, 변수 x에 의해 표현되는 코드 공간에서의 위치는 n-tilda 및 n의 새로운 값들의 비율에 비례하는 선행하는 서브-범위 크기의 분수의 반올림된 값만큼 증가된다. 환언하면, Gi가 Gi MAX에 더 근접할수록, 코드 공간에서의 새로운 위치가 더 높게 된다. 또한, 블록 408에서, 변수 y에 의해 표현되는 서브-범위 크기는 이제 블록 406에서 계산된 새로운 값으로 설정되고 그것에 변수 z가 설정되었다.
다음으로, 결정 블록 410은 변수 y의 값이 2W보다 작은지를 테스트한다. 그렇다면, 플로우차트는 블록 412로 분기한다. 결정 블록 404의 결과가 긍정이었다면, 플로우차트는 또한 블록 412로 분기한다는 점에 유의하라.
블록 412에서, 서브-범위 크기를 표현하는 변수 y는 인자 2에 의해 재스케일링된다(이진 산술에서 좌측 비트 시프트에 의해 달성될 수 있음). 또한, 블록 412에서, 산출된 값 변수 e는 2W로 나누어진 코드 공간 위치 x의 플로어(floor) 함수와 동일하게 설정된다. 다음으로, 블록 412에서, y의 재스케일링과 대응하여, 코드 공간의 위치의 값은 x mod 2W의 값의 2배로 재설정된다.
다음으로, 결정 블록 414는 산출된 값 변수가 1과 동일한지를 테스트한다. 그렇다면, 플로우차트는 블록 416으로 계속되어, 런 렝스 변수 rl이 증가되고 그런 후에 플로우차트는 다시 결정 블록 410으로 분기한다. 결정 블록 410의 결과가 부정인 경우, 플로우차트는 다시 결정 블록 404로 분기한다.
결정 블록 414의 결과가 부정인 경우, 플로우차트는 결정 블록 418로 분기한다. 결정 블록 418은 산출된 변수 값이 1보다 큰지를 테스트한다. 그렇다면, 플로우차트는 블록 420으로 계속된다. 블록 420에서, 다음 비트 변수 nb가 1만큼 증가되고, 런 비트 변수 rb는 제로와 동일하게 설정되며, 산출된 변수 값 e는 2만큼 감소된다. 한편, 결정 블록 418의 결과가 부정인 경우, 플로우차트는 블록 422로 분기하여, 런 비트 변수 rb는 1과 동일하게 설정된다. 블록 420 또는 422 중 어느 하나의 이후에, 플로우차트는 블록 424에 도달한다. 블록 424에서, 연속적인 코드 비트들을 지시하는 변수 j가 1만큼 증가되고, j번째 코드 비트 Vj는 다음 비트 변수 nb와 동일하게 설정되며, nb 변수는 산출된 변수 e와 동일하게 설정된다.
다음으로, 결정 블록 426은 런 렝스 변수 rl이 제로보다 큰지를 테스트한다. 그렇다면, 플로우차트는 변수 j가 증가되고 j번째 코드 비트 Vj가 런 비트 변수 rb와 동일하게 설정되며 런 렝스 변수가 감소되는 블록 428을 실행한다. 블록 428의 각 실행 이후에, 플로우차트는 블록 426으로 루프 백한다. 블록 426의 결과가 부정인 경우에, 플로우차트는 루프를 탈출하고 결정 블록 430에 도달한다.
결정 블록 430은 i=M인지, 즉 코딩될 MSB 부분들의 시퀀스에서 임의의 잔여 MSB 부분들이 있는지를 테스트한다. 처리될 더 많은 MSB 부분들이 남아있는 경우에, 플로우차트는 결정 블록 410으로 루프 백하고, 상기 설명된 바와 같이 실행을 계속한다. 블록 430에서 처리될 더 이상의 MSB 부분들이 없다고 결정된 경우에, 플로우차트는 결정 블록 432로 분기한다. 결정 블록 432는 변수 j가 산술 코드의 길이를 나타내는 L과 동일한지를 테스트한다. 그렇지 않다면, 플로우차트는 j번째 코드 비트 Vj가 1과 동일하게 설정되고 j가 1만큼 증가되는 블록 434를 실행한다. 블록 434로부터, 플로우차트는 결정 블록 432로 루프 백한다. 블록 432의 결과가 긍정인 경우, 산술 코드는 완전하고 플로우차트가 종료한다.
도 5는 또 하나의 인코더(예를 들면, 팩토리얼 펄스 코더)에 의해 생성된 코드들의 MSB 부분들을 디코딩하는데 이용되는 산술 디코더(310)의 플로우차트이다. 블록 502에서, 디코딩될 연속적인 심볼들을 참조하는 인덱스 i가 제로로 초기화되고(제1 심볼을 지시하기 위해), 연속적인 코드 비트들을 지시하는 정수 j는 제로로 초기화되며(제1 코드 비트를 지시하기 위해), 산술 코드 공간에서 위치를 지정하는 변수 x는 제로로 초기화되고(x는 코드 비트 값들에 기초하여 구축될 것임), 코드 공간에서 간격 폭을 지정하는 변수 y는 1로 초기화되며, 변수 n은 Gi MAX와 동일하게 설정된다. 블록 504는 결정 블록으로서, 그 결과는 y가 2W보다 작은지 여부에 좌우된다. W는 디코더(310)에 의해 이용되는 고정된 정밀도이다. 처음에, 플로우차트가 변수 j가 고정된 길이 파라미터 L보다 작은지를 테스트하는 결정 블록 506으로 분기하도록 결정 블록 504의 결과는 긍정일 것이다. L은 산술 코드의 길이를 나타낸다. 처음에, 플로우차트가 블록 508로 분기하도록 결정 블록의 결과는 긍정일 것이다(j<L). 블록 508에서, X의 값은 2에 의해 승산되고(하나의 자리만큼 좌측 시프트됨), 코드 비트의 값이 가산된다. (X는 제로로 초기화되었기 때문에 처음에 X는 단순히 코드 비트의 값으로 설정된다는 점에 유의하라.) 모든 코드 비트들을 처리한 후에, 블록 506의 결과가 부정이 되는 경우에, 플로우차트는 x가 단순히 2에 의해 승산되는(코드 비트를 가산하지 않음) 블록 510으로 분기한다. 블록 508 또는 블록 510 중 어느 하나의 이후에, 플로우차트는 y가 2에 의해 승산되는 블록 512에 도달한다. 블록 512 이후에, 플로우차트는 블록 504로 루프 백하여, y가 2W보다 작은지를 다시 테스트한다. 모든 코드 비트들을 처리하고 아마도 블록 510에서 x를 좌측 시프팅하며 추가적으로 블록 512에서 y를 좌측 시프트한 후에, 블록 504에서 y가 2W를 초과하는 것으로 결정되는 경우에, 플로우차트는 블록 514로 분기한다. 블록 514에서, 변수 n-tilda(인코딩된 심볼에 대한 임시 변수)는 (2xn+n-1)/2y의 플로어 함수와 동일하게 설정된다. 블록 516에서, 코드 공간에서 폭을 일시적으로 저장하는 변수 z는 z에 대해 상기 주어진 수학식에 따라 설정된다.
또한, 블록 516에서, Gi, i번째 코드 워드는 n-tilda와 동일하게 설정되고, 인덱스 i는 1만큼 증가되며, 변수 n은 i번째 Gi max 값과 동일하게 설정된다. 블록 518에서, 변수 x는 round(y*n-tilda/n) -기본적으로 선행 코드 비트에 기인할 수 있는 코드 공간의 "높이"(위치)의 부분을 제거함 - 의 값만큼 감소되어 설정된다. 또한, 블록 518에서, 코드 공간에서 간격을 나타내는 변수 y는 선행하는 코드 비트들에 의해 선택된 코드 공간에서의 간격을 표현하는 z로 재설정된다. 결정 블록 520은 i가 이제 M과 동일한지, 즉 모든 심볼들이 디코딩되었는지를 테스트한다. 그렇지 않은 경우, 플로우차트는 블록 504로 리턴한다. 반면에 모든 심볼들이 복원되었다면, 플로우차트는 종료한다.
상기 인코더의 설명과 관련하여, 산술 코드 워드가 L 비트의 길이인 것으로 언급되었다는 것을 상기하라. 이론적으로, MSB들의 개수 M, Gi max까지의 범위가 되는 Gi를 표현하기 위해, L은 2L이 Gi max 값들의 시퀀스의 곱을 초과하도록 설정되는 것으로 충분할 것이다. 실제로, 유한 정밀도 산술을 이용하여(예를 들면, 32비트와 같은 폭의 프로세서 레지스터를 이용하여) 산술 코딩이 수행되는 경우에, 여분 코드 비트들에 대한 필요성이 발생한다. 여분 코드 비트들의 개수에 대한 산술 코딩을 위한 루스 바운드(Loose Bound for Arithmetic Coding; LBAC)(과대 평가)는 이하의 수학식에 의해 주어진다.
Figure 112012033906907-pct00002
상기에 의해 주어진 여분 비트들의 개수는 실제로 1보다 작게 평가할 수 있고, 그 경우에 단지 하나의 여분 비트만이 요구된다는 점에 유의하라. 또한, 상기 수학식은 M보다 작은 Gi max 값들의 부분 시퀀스에 대해 증가적으로 평가될 수 있다는 점에 유의하라.
산술 코딩을 위한 타이트 바운드(Tight Bound for Arithmetic Coding; TBAC)(더 정확함)는 가상적 심볼 시퀀스에서 각 심볼 위치에 의해 선택될 수 있는 코드 공간의 최소 서브-범위를 회귀적으로 선택하는 것을 수반하는 프로세스에 의해 결정될 수 있다. 최소 서브-범위의 크기는 각 i번째 심볼 위치에 대하여 Gi max와 관련된다. 도 6은 TBAC를 결정하는 프로세스에 대한 플로우차트를 도시하고 있다. 블록 602에서, 연속적인 최대 MSB 부분 값들 Gi max를 지시하는 변수 i는 제로로 초기화되고, 코드 공간 서브-범위 폭 변수 y는 2W로 초기화되며, 여기에서 W는 정밀도 파라미터이고, y의 재스케일링들(좌측 시프트들)의 횟수를 카운팅하는 변수 k가 제로로 초기화되며, log2 도메인에서 Gi max 값들의 곱에 관련된 변수 s는 제로로 초기화되고, Gi max 값들을 저장하는데 이용되는 임시 변수 n은 제로번째 Gi max 값 G0 max로 초기화된다.
결정 블록 604는 최종 (M번째) Gi max 값이 처리되었는지를 테스트한다. TBAC 플로우차트는 MSB 부분 값들의 전체 시퀀스보다 적은 것에 대해 실행될 수 있고, 그 경우에 블록 604에서 M은 MSB 부분 값들의 전체 개수보다 작을 것이다. i가 M과 동일하지 않은 경우에, 플로우차트는 블록 606으로 진행하여, 코드 공간 서브-범위 폭을 표현하는 임시 변수 z가 그 값에 따라 i번째 심볼 Gi에 할당될 수 있는 모든 서브-범위 폭들 중 최소 서브-범위 폭과 동일하게 설정된다. 플로우차트에 도시된 바와 같이, z에 대한 수학식은 이하에 의해 주어진다.
Figure 112012033906907-pct00003
실제로, z는 n(Gi max)와 역으로 관련되고 이하와 같다는 것을 알 수 있다.
Figure 112012033906907-pct00004
또한, 블록 606에서, s는 log2(n)만큼 증가되고, i는 1만큼 증가되며, n은 Gi max의 새로운 값으로 설정된다. 블록 608에서, y는 z와 동일하게 설정된다. 다음으로, 결정 블록 610은 y가 2W보다 작은지를 테스트한다. 그렇다면, 플로우차트는 2에 의해 y를 승산하고(y를 좌측 시프트함) 1만큼 k를 증가시키는 블록 612를 통해 루프한다. 블록 610에서 y가 2W보다 작지 않은 것으로 결정되는 경우에, 플로우차트는 결정 블록 604로 다시 루프 백한다. 블록 604에서 i=M인 것으로 결정되는 경우에, 플로우차트는 블록 614로 진행하고, 여분 요구되는 코드 비트들의 개수 η는 k+w-s-log2(y)와 동일하게 설정된다.
도 7은 산술 코딩과 조합한 팩토리얼 펄스 코딩을 이용하여, 스펙트럼 에너지와 관련된 측정에 따라 소팅되는 주파수 대역들의 시퀀스를 코딩하는 효율적인 오디오 코더의 플로우차트이다. 방법은 비-정수 길이를 가지는 FPC 코드 워드들이 산술 코딩을 이용하여 효율적으로 인코딩될 수 있게 하면서도, 동시에 초기 할당으로부터 유보(save)된 비트들이 다른 대역들에게 재분배되는 것을 허용한다. 도 7에서는 오디오 대역들이 참조되었지만, 이 프로세스는 다른 타입들의 정보를 인코딩하는 것에도 동일하게 적용가능하다는 점에 유의해야 한다. 다른 어플리케이션들에서, 또 다른 버전의 신호 에너지가 스펙트럼 에너지 대신에 이용될 수 있다.
블록 702는 이하에 도시된 프로세스가 연속적인 오디오 프레임들에 대해 반복된다는 것을 나타낸다. 도 7에 명시적으로 도시되어 있지 않지만, 프로세스는 연속적인 오디오 프레임들로부터 추출된 정보를 차별되게 인코딩하도록 적용될 수 있다.
블록 704에서, 분리된 프로세스(도시되지 않음)가 호출되어, 주파수 대역들의 시퀀스로의 비트들의 초기 할당을 수행한다. (이 시점에서, 신호가 주파수 도메인으로 변환되었고 주파수 도메인 계수들은 다수의 대역들로 분리된 것으로 가정된다.) 비트들을 주파수 대역들에게 할당하기 위한 주지된 프로세스들이 이용될 수 있다. 하나의 그러한 주지된 방법은 X. Wei, M. Shaw, M. Varley의 "Optimum Bit Allocation and Decomposition for High Quality Audio Coding", icassp, vol.1, pp. 315, 1997 IEEE International Conference on Acoustic, Speech, and Signal Processing(ICASSP'97) - Volume 1, 1997에 기재되어 있다. 주파수 대역에 할당된 비트들의 개수는 주파수 대역에서 에너지의 함수일 수 있다. 다른 타입들의 정보(에를 들면, 이미지, 비디오, 텔리메트리)의 경우에, 부분들(오디오 프레임들과 유사함)은 서브-파트들(예를 들면, 주파수 대역들, 또는 다른 타입 분할들)로 다시 분할될 것이다.
블록 706에서, 대역들은 스펙트럼 에너지와 관련된 측정에 따라 재순서화(소팅)된다. 측정은 스펙트럼 에너지 자체일 수 있다. 다르게는, 가중된 스펙트럼 에너지는 각 대역에 대한 스펙트럼 에너지를, 그 대역과 연관된 사전 프로그래밍된 가중치와 승산함으로써 도달될 수 있다. 더 낮은 스펙트럼 에너지를 가지는 대역들이 순서화의 시작 근처에 배치되도록, 주파수 대역들을 재순서화하는데 일부 장점이 있다. 그러한 순서화의 결과는 비트들이 더 높은 에너지 컨텐트를 가지는 대역들로 재할당되는 경향이 있다는 것이고, 결과적으로 그러한 대역들의 표현의 더 높은 충실도(fidelity)로 나타난다.
블록 708은 각 j번째 주파수 대역(새로운 순서화에 따라 순서대로 취해짐)에 대해 반복되는 루프의 최상부를 표시한다. 블록 710에서, j번째 대역에서 스펙트럼을 표현하도록 인코딩될 수 있는 단위-크기 펄스 퀀타(unit-magnitude pulse quanta)의 개수가 계산된다. 이것은 펄스 퀀타의 개수가 정수값 m에서 설정되는 경우에 모든 가능한 펄스 구성들을 열거하는 수학식을 이용함으로써 계산된다. 팩토리얼 펄스 코딩 시스템에서, 가능한 펄스 구성들의 개수 N은 최고 코드값과 동일하다. 하나의 그러한 수학식은 본 발명과 공통으로 양도되고 팩토리얼 펄스 코딩 방법을 교시하는 미국특허 제6,236,960호의 수학식 15에서 제공된다. 명시적으로 기록된 '960 특허의 수학식 15는 이하와 같다.
Figure 112012033906907-pct00005
여기에서, n은 j번째 대역에서 주파수 빈(frequency bin)들의 개수이고, m은 펄스 퀀타의 개수이며, i는 가산 인덱스이다.
더 진보되고 덜 계산상으로 집중적인 버전의 팩토리얼 펄스 코딩으로부터의 유사한 수학식은 논문 Udar Mittal, James P. Ashley, 및 Edgardo M. Cruz-Zeno의, "Low Complexity Factorial Pulse Coding Of MDCT Coefficients Using Approximation Of Combinational Functions", ICASSP, 2007의 수학식 21에 의해 제공된다. 이들 또는 유사한 수학식들 중 어느 하나가 이용되든지 간에, 이들은 N의 항들로 m을 얻기 위해 인버팅될 필요가 없고, 오히려 이들은 계산된 값들의 룩업 테이블을 이용하거나 이분법(bisection method)과 같은 루트 파인딩(root finding) 방법을 이용하여 해가 구해질 수 있다. 이들 수학식들은 연속적이지 않고, 그러므로 그들의 해를 구할 때, 이러한 컨텍스트에서, 문제의 j번째 주파수 대역에 대한 비트 할당보다 작은 수학식에 의해 생성되는 N의 최대값인 N의 값을 생성하는 m의 값을 구한다. log2(N)의 값은 초기 비트 할당을 위해 가능한 비트들의 개수이다. 따라서, 일반적으로 주어진 주파수 대역에 대한 비트 할당에서 일부 과도한 개수의 비트들이 있을 것이다. 솔루션 프로세스의 후자의 양태는 플로우차트의 블록 712에서 참조된다.
대역들에서 에너지의 측정에 기초하여 비트들이 대역들에 할당되는 경우에, 그 대역에 대해 할당된 비트들의 개수에 대응하는 펄스 퀀타의 개수 m은 또한 대역들에서의 에너지와 관련된다. 이것이 적용되는 경우에, 대역 에너지에 기초하여 대역들을 재순서화하는 것 대신에, 펄스 퀀타의 개수 m에 기초한 메트릭에 기초하여 대역들을 재순서화할 수 있다. 하나의 옵션은 m 자체에 기초하여 대역들을 재순서화하는 것이다. 대역들은 m의 증가하는 순서로 재순서화될 수 있다. 그렇게 하는 것은, 비트들이 더 높은 에너지(더 많은 정보 컨텐트)를 가지는 대역들에게 재할당되는 경향이 있을 것임을 의미한다. 또 하나의 옵션은 재순서화를 메트릭 log2(N(n,m+1))-log2(N(n,m))에 기초하는 것이고, 여기에서 N 및 m은 상기 수학식에서 정의된 바와 같다. 이러한 메트릭은 펄스 퀀타 m을 1만큼 증가시키는 것과 연관되어 분수 비트(fractional bit)가 증가하는 방법을 정량한다(quantify). 이러한 후자의 메트릭이 이용되는 경우에, 대역들은 메트릭에 기초하여 감소하는 순서로 재순서화될 수 있다. 이러한 재순서화의 결과는, 통상적으로 다수의 비트들(반드시 전체 개수일 필요는 없음)이 m의 낮은 값들(낮은 에너지)을 가지는 대역들로부터 m의 높은 값들(높은 에너지)을 가지는 대역들로 재할당될 것이라는 점이고, 여기에서 이들은 그들이 취해졌던 대역에서 이용되었던 경우보다 m의 허용가능한 값을 증가시키는데 실질적으로 더 큰 영향을 미칠 것이다.
블록 714에서, 블록 712에서 구해진 최고 코드 값 N의 최상위 비트(MSB) 부분(Gj max로 지칭됨)이 선택된다. (유의할 점은, 대역 인덱스가 i에서 j로 변경되어 상기 수학식들에서의 가산 인덱스와의 혼동을 피하고 있다는 점이다.) (본 발명의 일부 실시예들에 따르면, 모든 주파수 대역들에 대한 MSB 부분의 길이는 소정 비트들의 개수로 고정된다. 이것이 수행된다면, N의 전체 비트 길이가 소정 비트들의 개수보다 작거나 같은 경우들에서, 전체 값 N은 특정 대역에 대하여 MSB로서 간주된다.)
블록 716에서, 서브-프로세스가 호출되어, 이 대역까지의 MSB들의 산술 코딩이 초기 할당을 넘어 추가적인 비트들을 요구하는지를 결정한다. 여기에서 참조되는 서브-프로세스는 상기 설명되고 후자의 경우에 도 6을 참조하여 설명된 LBAC 또는 TBAC를 평가한다. 결정 블록 718은 추가 비트들이 요구되는지를 테스트한다. 산술 코딩 효율에 의해 결정된 여부 비트들의 개수가, 팩토리얼 펄스 코딩 열거 공식들 중 하나를 이용하여 펄스 퀀타의 개수 m을 확립한 이후에 남아있는 여분 비트들의 개수를 초과한다면, 추가적인 비트들이 요구될 것이다. 블록 718에서 추가적인 비트들이 요구되는 것으로 결정된 경우에, 플로우차트는 블록 720으로 분기하여, m을 더 낮은 값으로 재설정한다. 예를 들면, m은 고정된 양만큼, 또는 m과 관련된 수식 및 여분 비트들의 요구되는 개수에 기초하여 감소될 수 있다. m이 감소된 후, 블록 722에서, 최고 코드 값 N이 재계산되고, MSB 부분 Gj max가 선택된다. 블록 722 이후에, 플로우차트는 산술 코딩 효율을 재계산하고 j번째 대역까지 MSB들을 산술 인코딩하는데 요구되는 전체 비트들의 개수가 할당 이내에 들어 있는지를 재체크하기 위해, 블록 716으로 루프 백한다. 결정 블록 718의 결과가 부정이고, 즉 어떠한 추가적인 비트들도 요구되지 않으며 펄스 퀀타의 개수의 어떠한 조정도 요구되지 않는다는 것을 의미하는 경우에, 플로우차트는 블록 724로 분기하여, 원래의 할당으로부터 남아있는 여분(나머지) 비트들이 다른 대역들에게 분배된다. 여분 비트들을 다른 대역들에게 할당하는 방식은 가변될 수 있다. 하나의 방법은 비트들을 잔여 대역들 사이에서 고루게 분할하는 것이다. 또 하나의 방식은 더 많은 스펙트럼 에너지를 포함하는 순서화의 끝에 더 근접한 대역들이 비교적 더 많은 비트들을 수신하도록 분배를 스큐잉하는 것이다.
블록 726에서, 대역을 표현하도록 팩토리얼 펄스 코딩 코드 워드가 계산된다. 이것은 상기 언급된 '960 특허 또는 상기 언급된 논문 Udar Mittal, James P. Ashley, 및 Edgardo M. Cruz-Zeno, "Low Complexity Factorial Pulse Coding Of MDCT Coefficients Using Approximation Of Combinatorial Functions", ICASSP, 2007의 교시 내용들에 따라 수행될 수 있다. 블록 728에서, 코드 워드의 MSB가 선택되고, 블록 730에서, 산술 코더 서브-프로세스가 호출되어 MSB들을 표현하는 산술 코드를 생성하기 시작한다(또는, 제1 실행 이후에 블록 730의 실행의 경우에는 계속된다). 도 4를 참조하여 설명된 산술 인코더가 이용될 수 있다. 그러므로, 도 4에 도시된 프로세스는, 각각의 새로운 MSB(Gi) 값이 도 7에 도시된 프로세스에 의해 생성됨에 따라 증가적으로 실행될 것이다. 블록 732에서, FPC 코드 워드의 최하위 비트가 컨캐터네이터에 출력된다.
결정 블록 734는 처리될 더 많은 대역들이 남아있는지를 테스트한다. 그렇다면, 블록 736에서, 프로세스는 순서화에서 후속 대역으로 증가되고, 플로우차트는 다음 주파수 대역을 처리하기 시작하도록 블록 710으로 루프 백한다. 블록 734에서 모든 대역들이 처리되었던 것으로 결정된 경우에, 플로우차트는 블록 738로 분기하여, 대역들의 스펙트럼 에너지들 및/또는 다른 정보가 패킷 어셈블러에 출력된다.
이하의 예들은 대역들의 재순서화를 가지는 경우 및 그렇지 않은 경우의 대역들 사이의 비트 재할당을 예시한다. 첫번째로, 주파수 대역들이 재순서화되어 있지 않고 j번째 및 j번째+1 주파수 대역들에 24.0 및 20.5 비트들이 각각 할당되어 있다고 가정하자. 또한, 주파수 대역폭(위치들의 수)은 j번째 및 j번째+1 주파수 대역들에 대해 n=20에서 고정되어 있다고 가정하자. j번째 주파수 대역에 대해, 24.0의 초기 비트 할당 아래에 유지되는 동안에 이용될 수 있는 펄스 퀀타의 최대 개수 m이 6이라고 결정될 수 있고, j번째 대역에서 6개의 펄스 퀀타를 코딩하는데 요구되는 비트들의 개수가 log2(N(20,6))=22.48 비트들인 것으로 결정될 수 있다. 이러한 예에서, m=6은 24.0 비트들의 비트 예산(bit budget) 하에 log2(N(n,m))을 유지하는 최대 정수이고, 하나의 펄스 퀀타의 증가, m=7은 log2(N(20,7))=25.02 비트들을 요구할 것이다. 이제, 24.0-22.48=1.52 비트의 비트 잉여를 j번째 +1 주파수 대역으로 이동시킴으로써, j번째+1 주파수 대역에 대한 비트 예산을 20.5+1.52=22.02 비트로 증가시킨다. j번째+1 대역에 대한 펄스 퀀타의 개수 m을 계산할 때, log2(N(20,5))=19.72 비트를 이용하여 m=5 펄스들을 코딩할 수 있다는 것을 안다.
이러한 시점에서, 우리는 쉽사리 2개의 관찰들을 수행할 수 있다. 첫 번째로, j번째로부터 j번째+1 주파수 대역들로의 1.52 비트들의 재할당은 어떠한 긍정적인 영향도 미치지 않았다. 즉, 추가된 비트들은 j번째 +1 주파수 대역에서 펄스 퀀타의 개수 m의 증가를 허용하지 않았다. 두 번째로, j번째 +1 주파수 대역이 대역들의 시퀀스에서 최종 대역이었다고 가정하면, 비트 잉여(22.02-19.72=2.30 비트)가 허비될 수 있다.
이제, 본 발명의 실시예에 따라, 대역 에너지의 일부 함수에 기초한 주파수 대역들의 재순서화가 있는 예를 고려해보자. j번째 및 j번째+1 주파수 대역들이 대역들의 시퀀스에서 최종 대역들이고 소팅은 대역 에너지의 단조롭게 증가하는 함수에 기초하여 수행된다고 가정하고, 그리고 더 많은 에너지를 가지는 대역들에게 더 많은 대역들이 할당된다고 가정하면, 이들 대역들이 최대 개수의 비트들을 포함할 것이라고 가정할 수 있다. 예를 들면, 이들 대역들에게 할당된 비트들은 각각 60.5 및 64.0 비트이라고 가정하자. 이전 예에서와 같이, 주파수 대역폭은 n=20에서 고정되어 있다고 가정하자. j번째 주파수 대역에 대해, 펄스 퀀타의 최대 개수 m은 m=33인 것으로 결정될 수 있고 33개의 펄스 퀀타를 코딩하는데 요구되는 비트들의 개수는 log2(N(20,33))=59.80 비트인 것으로 결정될 수 있다. 60.5-59.80=0.70 비트의 비트 잉여를 j번째+1 주파수 대역에게 재할당함으로써, 대역에 대한 비트 예산을 64.0+0.70=64.70 비트로 증가시킨다. j번째 +1 대역에 대한 펄스 퀀타의 개수 m을 계산할 때, log2(N(20,39))=64.18 비트를 이용하여 m=39 펄스들을 코딩할 수 있다는 것을 안다. 이 경우에, 이전의 경우와 비교하여, 제2 대역에 추가된 비트들은 m이 증가되는 것을 허용하고, 그럼으로써 신호 품질의 향상에 기여한다.
일반적으로 말하면, 비트들의 개수가 증가함에 따라, 추가적인 펄스 퀀타를 코딩하는데 요구되는 비트들의 개수가 감소되는 것이 적용된다. 그러므로, 잉여 비트들의 재할당은 에너지의 일부 함수에 기초한 재순서화를 포함할 때 덜 문제가 되고, 또한 모든 대역들을 코딩한 이후의 허비된 비트들에 대한 가능성은 더 높은 에너지 대역들에서 펄스 퀀타 당 더 낮은 비용으로 인해 낮아진다.
상기 설명된 실시예들에서, 재순서화된 시퀀스에서 처음으로 처리된 대역들에 대한 실제 할당은 블록 704에서 수행된 초기 할당보다 더 적은 경향이 있고, 비트들은 재순서화에서 나중에 배치되는 대역들에게 재할당된다. 또한, 상기 설명된 블록들 710-712에 따르면, m 펄스 퀀타를 코딩하는데 요구되는 비트들의 개수 log2(N)이 초기 할당보다 더 적도록, 펄스 퀀타의 개수 m이 최대값으로 설정되었다. 대안 실시예들에 따르면, 더 높은 에너지 또는 더 높은 개수의 펄스 퀀타 또는 메트릭 log2(N(m+1))-log2(N(m))의 더 낮은 값들을 가지는 대역들이 처음에 오도록 대역들의 재순서화 순서가 반전될 수 있다. 그러한 실시예들에서, 대응하는 N이 초기 비트 할당 아래의 가능한 최대 개수가 되도록 m의 값을 구하기보다는, log2(N)의 대응하는 값이 초기 비트 할당보다 큰 초기 비트 할당(예를 들면, 최소값 log2(N(m)))보다 크도록 m의 값을 구할 수 있다. 그러한 실시예에 대해, log2(N)의 이러한 값은 가능한 비트들의 개수일 것이다. 그러한 실시예들에서, 순서화에서 더 앞의 대역들에게 여분 비트들을 분배하기보다는, log2(N(m))의 값과 초기 비트 할당 사이의 차이(나머지)를 보상하기 위해 순서화에서 더 아래의 대역들로부터 비트들을 취할 수 있다. 특정 실시예들에서 수행된 재순서화는 우선 순위에 기초하고 있지만, 증가하는 우선 순위 또는 감소하는 우선 순위 중 어느 하나의 순서로 될 수 있다.
대역들의 스펙트럼 에너지들 및/또는 다른 정보(예를 들면, 대역 가중치들)가 수신기에 전송될 것이고, 따라서 수신기의 디코더는 인코더에 의해 수행되었던 순서화 및 비트 할당을 재구성할 수 있으며, 따라서 디코더는 그것이 수신하는 코딩된 정보를 적절하게 해석할 수 있다. 수신기는 또한 블록들 702-704를 순서대로 실행하여, Gj max의 값들을 획득할 것이다. 그리고나서, 송신기로부터 수신된 LSB들과 하나의 결부된 시퀀스로 나중에 재통합될 FPC 코드 워드들의 MSB들을 재획득하기 위해, 채널을 통해 수신된 Gj의 값들과 함께 Gj max의 값들은 수신기에 의해 도 5를 참조하여 상기 설명된 산술 디코딩을 수행하는데 이용될 것이다. 그리고나서, FPC 코드 워드들은 대역 스펙트럼 에너지 분배들을 재구성하기 위해 디코딩될 것이다.
상기 명세서에서, 본 발명의 특정 실시예들이 설명되었다. 그러나, 본 기술분야의 통상의 기술자들이라면, 이하의 청구항들에 제시된 본 발명의 범주에서 벗어나지 않고서도 다양한 변형들 및 변경들이 만들어질 수 있다는 것을 잘 알고 있을 것이다. 예를 들면, 본 발명으로부터 이익을 얻을 수 있는 코딩 방법의 하나의 예로서 팩토리얼 펄스 코딩이 인용되었지만, 다수의 다른 조합(combinatorial) 코딩 스킴들이 또한 적절히 이익을 얻을 수 있다.
따라서, 명세서 및 도면들은 제한적 의미라기보다는 예시적인 것으로 간주되어야 하고, 모든 그러한 변형들은 본 발명의 범주 내에 포함된다고 할 것이다. 이점들, 장점들, 문제들에 대한 해결책들, 및 임의의 이점, 장점 또는 해결책이 발생하거나 더 현저해지게 할 수 있는 임의의 구성요소(들)는 임의의 하나 또는 모든 청구항들의 결정적인, 또는 필수적인, 또는 본질적인 특징들 또는 구성요소들로서 간주되어서는 안 된다. 본 발명은 본 출원의 계류 동안에 만들어지는 임의의 보정을 포함하는 첨부된 청구항들 및 발행된 이들 청구항들의 모든 등가물들에 의해서만 정의된다.

Claims (17)

  1. 통신 디바이스로서,
    제1 멀티-비트 코드들의 시퀀스를 생성하도록 적응된 제1 인코더 스테이지; 및
    제2 인코더 스테이지
    를 포함하고,
    상기 제2 인코더 스테이지는,
    적어도 K번째 제1 멀티-비트 코드를 K번째 최상위 비트 코드 및 K번째 최하위 비트 코드로 분할하고,
    산술 인코더를 이용하여 상기 K번째 최상위 비트 코드를, 상기 제1 멀티-비트 코드들의 시퀀스 중 적어도 하나의 제1 멀티-비트 코드의 적어도 일부와 결합하도록
    적응된 통신 디바이스.
  2. 제1항에 있어서, 상기 제2 인코더 스테이지는,
    상기 제1 멀티-비트 코드들의 각각을 분할하여, 최상위 비트 코드들의 시퀀스 및 최하위 비트 코드들의 시퀀스를 생성하도록 적응된 통신 디바이스.
  3. 제2항에 있어서, 상기 제2 인코더 스테이지는 또한, 상기 최하위 비트 코드들의 시퀀스를 결부하도록(concatenate) 적응된 통신 디바이스.
  4. 제1항에 있어서, 상기 산술 인코더는, 상기 제1 멀티-비트 코드들의 시퀀스 중 상기 적어도 하나의 제1 멀티-비트 코드의 상기 적어도 일부 및 상기 K번째 최상위 비트 코드의 최대 가능한 값들 Gj max의 세트의 함수인 코드워드를 생성하는 통신 디바이스.
  5. 제4항에 있어서, 상기 코드워드는 이하의 수학식,
    Figure 112013068491938-pct00006

    에 의해 주어지는 코딩 효율 항을 포함하는 길이를 가지고 있고,
    여기에서, i는 심볼 인덱스이며 상기 K번째 최상위 비트 코드와, 상기 제1 멀티-비트 코드들의 시퀀스 중 상기 적어도 하나의 제1 멀티-비트 코드의 상기 적어도 일부를 참조하고,
    M은 상기 제1 멀티-비트 코드들의 시퀀스 중 상기 적어도 하나의 제1 멀티-비트 코드의 상기 적어도 일부의 전체 개수이며,
    W는 상기 산술 인코더에 의해 코드 공간 간격들을 표현하는 데 이용되는 비트들의 개수인 통신 디바이스.
  6. 제4항에 있어서, 상기 코드워드는, 가설적 심볼 시퀀스(hypothetical symbol sequence)에서 각 심볼 위치에 의해 선택될 수 있는 산술 코드 공간의 최소 서브-범위를 회귀적으로(recursively) 선택함으로써 결정되는 길이를 가지고 있고, 상기 최소 서브-범위의 크기는 각 i번째 심볼 위치에 대하여 Gi max와 역으로 관련되는(inversely related) 통신 디바이스.
  7. 제1항에 있어서, 상기 제1 인코더 스테이지는 조합 코더(combinatorial coder)를 포함하는 통신 디바이스.
  8. 제7항에 있어서, 상기 조합 코더는 팩토리얼 펄스 코더(factorial pulse coder)를 포함하는 통신 디바이스.
  9. 제1항에 있어서, 상기 산술 인코더는 이하의 수학식,
    Figure 112013068491938-pct00007

    을 이용하여 선행하는 서브-범위로부터 후속 서브-범위의 크기를 계산하고,
    여기에서, z는 상기 후속 서브-범위의 크기이며,
    y는 상기 선행하는 서브-범위의 크기이고,
    Gi는 상기 제1 멀티-비트 코드들의 시퀀스 중 상기 적어도 하나의 제1 멀티-비트 코드의 상기 적어도 일부 및 상기 K번째 최상위 비트 코드를 포함하는 심볼 시퀀스에서 i번째 심볼의 값이며,
    Gi max는 상기 i번째 심볼에 대한 최대 가능한 값인 통신 디바이스.
  10. 통신 디바이스로서,
    디코더
    를 포함하며, 상기 디코더는,
    복수의 최하위 비트 코드들, 및 복수의 최상위 비트 코드들을 나타내는 산술 코드를 수신하고,
    상기 산술 코드를 산술적으로 디코딩하여 상기 최상위 비트 코드들을 획득하며,
    상기 최하위 비트 코드들을 상기 최상위 비트 코드들과 조합하여 완전한 코드들을 재구성하도록
    적응된 통신 디바이스.
  11. 제10항에 있어서, 상기 디코더는 이하의 수학식,
    Figure 112012033906907-pct00008

    을 평가함으로써 인코딩된 최상위 비트 코드들을 복원하도록 적응되고,
    여기에서,
    Figure 112012033906907-pct00009
    는 인코딩된 최상위 비트 코드이고,
    x는 산술 코드 공간에서 위치를 나타내고,
    y는 상기 산술 코드 공간에서 간격 폭을 나타내며,
    n은 상기 인코딩된 최상위 비트 코드의 최대 가능한 값을 나타내는 통신 디바이스.
  12. 제9항에 있어서, 상기 산술 코드는 이하의 수학식,
    Figure 112012033906907-pct00010

    에 의해 주어지는 코딩 효율 항을 포함하는 길이를 가지고 있고,
    여기에서, M은 최상위 비트 코드들의 개수이며,
    W는 산술 코드 공간 간격들을 표현하는 데 이용되는 비트들의 개수인 통신 디바이스.
  13. 제9항에 있어서, 상기 산술 코드는, 가설적 심볼 시퀀스에서 각 심볼 위치에 의해 선택될 수 있는 산술 코드 공간의 최소 서브-범위를 회귀적으로 선택함으로써 결정되는 길이를 가지고 있고, 상기 최소 서브-범위의 크기는 각 i번째 심볼 위치에 대하여 최대 가능한 최상위 비트 코드 Gi max와 역으로 관련되는 통신 디바이스.
  14. 제10항에 있어서, 상기 디코더는, 상기 완전한 코드들을 디코딩하고 조합 디코더 출력을 생성하도록 적응된 조합 디코더를 더 포함하는 통신 디바이스.
  15. 제14항에 있어서, 상기 조합 디코더는 팩토리얼 펄스 디코더를 포함하는 통신 디바이스.
  16. 제15항에 있어서, 상기 팩토리얼 펄스 디코더 출력을 수신하고 신호의 일부를 재생하도록 적응된 제1 레벨 소스 디코더를 더 포함하는 통신 디바이스.
  17. 제16항에 있어서, 상기 제1 레벨 소스 디코더는 MDCT 디코더인 통신 디바이스.
KR1020127010948A 2009-10-28 2010-10-21 완전히 활용되지 않는 코드 공간을 압축하는데 산술 스테이지를 이용하는 인코더 및 디코더 KR101353170B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/607,418 US7978101B2 (en) 2009-10-28 2009-10-28 Encoder and decoder using arithmetic stage to compress code space that is not fully utilized
US12/607,418 2009-10-28
PCT/US2010/053521 WO2011056446A1 (en) 2009-10-28 2010-10-21 Encoder and decoder using arithmetic stage to compress code space that is not fully utilized

Publications (2)

Publication Number Publication Date
KR20120073307A KR20120073307A (ko) 2012-07-04
KR101353170B1 true KR101353170B1 (ko) 2014-01-17

Family

ID=43533556

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127010948A KR101353170B1 (ko) 2009-10-28 2010-10-21 완전히 활용되지 않는 코드 공간을 압축하는데 산술 스테이지를 이용하는 인코더 및 디코더

Country Status (6)

Country Link
US (1) US7978101B2 (ko)
EP (2) EP2462698A1 (ko)
KR (1) KR101353170B1 (ko)
CN (1) CN102687403B (ko)
BR (1) BR112012010017A2 (ko)
WO (1) WO2011056446A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8207875B2 (en) 2009-10-28 2012-06-26 Motorola Mobility, Inc. Encoder that optimizes bit allocation for information sub-parts
EP2727105B1 (en) * 2011-06-30 2015-08-12 Telefonaktiebolaget LM Ericsson (PUBL) Transform audio codec and methods for encoding and decoding a time segment of an audio signal
US8731081B2 (en) * 2011-12-07 2014-05-20 Motorola Mobility Llc Apparatus and method for combinatorial coding of signals
US9524725B2 (en) * 2012-10-01 2016-12-20 Nippon Telegraph And Telephone Corporation Encoding method, encoder, program and recording medium
DE102014204620A1 (de) * 2014-03-13 2015-09-17 Conti Temic Microelectronic Gmbh Verfahren und Vorrichtung zur Begrenzung einer Datenpaketgröße eines komprimierten Datenpaketes
US9990931B2 (en) 2014-08-15 2018-06-05 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
US9620136B2 (en) 2014-08-15 2017-04-11 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
US9336788B2 (en) 2014-08-15 2016-05-10 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
US9672838B2 (en) 2014-08-15 2017-06-06 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
GB2545503B (en) 2015-12-18 2020-04-08 Imagination Tech Ltd Lossy data compression
US10419781B2 (en) * 2016-09-20 2019-09-17 Qualcomm Incorporated Storing and retrieving high bit depth image data
WO2019091573A1 (en) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding and decoding an audio signal using downsampling or interpolation of scale parameters
EP3483884A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Signal filtering
EP3483883A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio coding and decoding with selective postfiltering
EP3483882A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Controlling bandwidth in encoders and/or decoders
EP3483880A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Temporal noise shaping
WO2019091576A1 (en) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoders, audio decoders, methods and computer programs adapting an encoding and decoding of least significant bits
EP3483879A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Analysis/synthesis windowing function for modulated lapped transformation
EP3483886A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Selecting pitch lag
EP3483878A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio decoder supporting a set of different loss concealment tools
CN110557221A (zh) * 2018-05-31 2019-12-10 索尼公司 电子设备、通信方法、解码方法及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009027606A1 (fr) 2007-08-24 2009-03-05 France Telecom Codage/decodage par plans de symboles, avec calcul dynamique de tables de probabilites

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5602961A (en) 1994-05-31 1997-02-11 Alaris, Inc. Method and apparatus for speech compression using multi-mode code excited linear predictive coding
US5692102A (en) 1995-10-26 1997-11-25 Motorola, Inc. Method device and system for an efficient noise injection process for low bitrate audio compression
US6236960B1 (en) * 1999-08-06 2001-05-22 Motorola, Inc. Factorial packing method and apparatus for information coding
KR100869657B1 (ko) * 2001-03-05 2008-11-21 코닌클리케 필립스 일렉트로닉스 엔.브이. 신호를 압축하는 장치 및 방법
US6662154B2 (en) 2001-12-12 2003-12-09 Motorola, Inc. Method and system for information signal coding using combinatorial and huffman codes
US6700513B2 (en) * 2002-05-14 2004-03-02 Microsoft Corporation Method and system for compressing and decompressing multiple independent blocks
US7230550B1 (en) 2006-05-16 2007-06-12 Motorola, Inc. Low-complexity bit-robust method and system for combining codewords to form a single codeword
EP2060124A2 (en) * 2006-08-30 2009-05-20 Koninklijke Philips Electronics N.V. Device and method for coding a data signal and device and method for decoding a data signal
US7461106B2 (en) * 2006-09-12 2008-12-02 Motorola, Inc. Apparatus and method for low complexity combinatorial coding of signals
US20100088090A1 (en) 2008-10-08 2010-04-08 Motorola, Inc. Arithmetic encoding for celp speech encoders

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009027606A1 (fr) 2007-08-24 2009-03-05 France Telecom Codage/decodage par plans de symboles, avec calcul dynamique de tables de probabilites

Also Published As

Publication number Publication date
EP2462698A1 (en) 2012-06-13
CN102687403B (zh) 2015-05-20
US7978101B2 (en) 2011-07-12
WO2011056446A1 (en) 2011-05-12
CN102687403A (zh) 2012-09-19
BR112012010017A2 (pt) 2016-05-24
EP3065301A1 (en) 2016-09-07
US20110095920A1 (en) 2011-04-28
KR20120073307A (ko) 2012-07-04

Similar Documents

Publication Publication Date Title
KR101353170B1 (ko) 완전히 활용되지 않는 코드 공간을 압축하는데 산술 스테이지를 이용하는 인코더 및 디코더
KR101353216B1 (ko) 팩토리얼 펄스 코더를 위한 산술 인코딩
ES2378462T3 (es) Codificación entrópica por adaptación de codificación entre modalidades de nivel y de longitud/nivel de cadencia
US7433824B2 (en) Entropy coding by adapting coding between level and run-length/level modes
JP5688861B2 (ja) レベル・モードとラン・レングス/レベル・モードの間での符号化を適応させるエントロピー符号化
KR20080025404A (ko) 디지털 미디어 스펙트럼 데이터의 효율적인 코딩을 위해사용되는 사전 내의 코드워드의 수정
KR20170118236A (ko) 오디오/비디오 샘플 벡터의 피라미드 벡터 양자화 인덱싱 및 디인덱싱을 위한 방법 및 장치
JP2009031519A (ja) ベクトル量子化符号化装置、ベクトル量子化復号化装置、それらの方法、それらのプログラム、及びそれらの記録媒体
WO2013146895A1 (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
FPAY Annual fee payment

Payment date: 20170103

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171229

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 6