KR101419151B1 - 영역-의존 산술 코딩 매핑 규칙을 이용하는 오디오 인코더, 오디오 디코더, 오디오 정보를 인코딩하기 위한 방법, 오디오 정보를 디코딩하기 위한 방법 및 컴퓨터 프로그램 - Google Patents

영역-의존 산술 코딩 매핑 규칙을 이용하는 오디오 인코더, 오디오 디코더, 오디오 정보를 인코딩하기 위한 방법, 오디오 정보를 디코딩하기 위한 방법 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR101419151B1
KR101419151B1 KR1020127012935A KR20127012935A KR101419151B1 KR 101419151 B1 KR101419151 B1 KR 101419151B1 KR 1020127012935 A KR1020127012935 A KR 1020127012935A KR 20127012935 A KR20127012935 A KR 20127012935A KR 101419151 B1 KR101419151 B1 KR 101419151B1
Authority
KR
South Korea
Prior art keywords
value
spectral
decoded
frequency
domain
Prior art date
Application number
KR1020127012935A
Other languages
English (en)
Other versions
KR20120074312A (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 KR20120074312A publication Critical patent/KR20120074312A/ko
Application granted granted Critical
Publication of KR101419151B1 publication Critical patent/KR101419151B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • G10L19/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • G10L19/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • G10L19/02Speech 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 using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0204Speech 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 using spectral analysis, e.g. transform vocoders or subband vocoders using subband decomposition
    • G10L19/0208Subband vocoders

Abstract

인코딩된 오디오 정보(2210)에 기초하여 디코딩된 오디오 정보(2212)를 제공하기 위한 오디오 디코더(2200)는 다수의 디코딩된 스펙트럼 값들(2224)을 상기 스펙트럼 값들의 산술적으로-인코딩된 표현(2222)에 기초하여 제공하기 위한 산술 디코더(2220), 및 디코딩된 오디오 정보를 획득하기 위해 디코딩된 스펙트럼 값들(2224)을 사용하여 시간-도메인 오디오 표현을 제공하기 위한 주파수-도메인-대-시간-도메인 컨버터(2230)를 포함한다. 상기 산술 디코더는 컨텍스트 상태에 의존하여 코드 값의 심볼 코드로의 매핑을 기술하는 매핑 규칙을 선택하도록 구성된다. 상기 산술 디코더는 다수의 이전에 디코딩된 스펙트럼 값들에 의존하여 그리고 디코딩될 스펙트럼 값이 제 1 미리 결정된 주파수 영역 또는 제 2 미리 결정된 주파수 영역 내에 있는지 여부에 의존하여 현재 컨텍스트 상태를 기술하는 수치 현재 컨텍스트 값(numeric current context value)을 결정하도록 구성된다.
오디오 인코더는 입력 오디오 정보에 기초하여 인코딩된 오디오 정보를 제공한다.

Description

영역-의존 산술 코딩 매핑 규칙을 이용하는 오디오 인코더, 오디오 디코더, 오디오 정보를 인코딩하기 위한 방법, 오디오 정보를 디코딩하기 위한 방법 및 컴퓨터 프로그램{AUDIO ENCODER, AUDIO DECODER, METHOD FOR ENCODING AN AUDIO INFORMATION, METHOD FOR DECODING AN AUDIO INFORMATION AND COMPUTER PROGRAM USING A REGION-DEPENDENT ARITHMETIC CODING MAPPING RULE}
본 발명에 따른 실시예들은 인코딩된 오디오 정보에 기초하여 디코딩된 오디오 정보를 제공하기 위한 오디오 디코더, 입력 오디오 정보에 기초하여 인코딩된 오디오 정보를 제공하기 위한 오디오 인코더, 인코딩된 오디오 정보에 기초하여 디코딩된 오디오 정보를 제공하기 위한 방법, 입력 오디오 정보에 기초하여 인코딩된 오디오 정보를 제공하기 위한 방법 및 컴퓨터 프로그램에 관한 것이다.
본 발명에 따른 실시예들은 향상된 스펙트럼 무잡음(noiseless) 코딩에 관한 것이며, 향상된 스펙트럼 무잡음 코딩은, 예를 들어, 소위 통합 스피치-및-오디오 코더(USAC)와 같은 오디오 인코더 또는 디코더에서 이용될 수 있다.
다음에서, 본 발명의 배경기술은 본 발명에 대한 이해 및 본 발명의 장점들을 용이하게 하기 위해 간단하게 설명될 것이다. 지난 10년 동안, 양호한 비트레이트 효율성으로 오디오 컨텐트들을 디지털적으로 저장 및 배포할 가능성을 만드는데 많은 노력들이 이루어졌다. 이러한 방향에서 하나의 중요한 성취는 국제 표준 ISO/IEC 14496-3의 정의이다. 이러한 표준의 파트 3은 오디오 컨텐트들의 인코딩 및 디코딩과 관련되며, 파트 3의 서브파트 4는 일반적인 오디오 코딩에 관련된다. ISO/IEC 14496 파트 3, 서브파트 4는 일반적인 오디오 컨텐트의 인코딩 및 디코딩을 위한 개념을 정의한다. 또한, 품질을 향상시키고 그리고/또는 요구되는 비트 레이트를 감소시키기 위해 추가적인 향상들이 제안되었다.
상기 표준에 기술된(described) 개념에 따르면, 시간-도메인 오디오 신호는 시간-주파수 표현(representation)으로 변환(conversion)된다. 시간-도메인으로부터 시간-주파수-도메인으로의 변환은 전형적으로 시간-도메인 샘플들의, 또한 "프레임들"로서 지정(designate)되는, 변환 블록들을 사용하여 수행된다. 오버랩(overlap)은 효율적으로 인공물(artifact)들을 회피하도록(또는 적어도 감소시키도록) 할 수 있기 때문에, 예를 들어, 프레임의 절반만큼 시프트된, 오버래핑 프레임들을 사용하는 것이 바람직하다는 것이 알려져 있다. 또한, 시간적으로 제한된 프레임들의 이러한프로세싱으로부터 발생하는 인공물들을 회피하기 위해 윈도잉(windowing)이 수행되어야 한다는 것이 알려져 있다.
입력 오디오 신호의 윈도잉된 부분을 시간-도메인으로부터 시간-주파수 도메인으로 변환함으로써, 에너지 압축(energy compacting)이 많은 경우들에서 획득되며, 그 결과 스펙트럼 값들 중 일부는 다수의 다른 스펙트럼 값들보다 상당하게 더 큰 크기를 포함한다. 그에 따라, 많은 경우들에서, 스펙트럼 값들의 평균 크기를 상당하게 초과하는, 크기를 갖는 상대적으로 적은 개수의 스펙트럼 값들이 존재한다. 에너지 압축을 야기하는 시간-도메인 대 시간-주파수 도메인 변환의 전형적인 예는 소위 수정된-이산-코사인-변환(MDCT)이다.
스펙트럼 값들은 종종 음향심리(psychoacoustic) 모델에 따라 스케일링되고 양자화되며, 그 결과 양자화 에러들은 음향심리적으로 보다 중요한 스펙트럼 값들에 대하여 상대적으로 더 작으며 음향심리적으로 덜-중요한 스펙틀럼 값들에 대하여 상대적으로 더 크다. 스케일링되고 양자화된 스펙트럼 값들은 이러한 스펙트럼 값들의 비트레이트-효율적인 표현을 제공하기 위해 인코딩된다.
예를 들어, 양자화된 스펙트럼 계수들의 소위 호프만 코딩의 이용은 국제 표준 ISO/IEC 14496-3:2005(E), part 3, subpart 4에 기술되어 있다.
그러나, 스펙트럼 값들의 코딩 품질이 요구되는 비트레이트에 상당한 영향을 가진다는 것이 알려져 있다. 또한, 종종 휴대용 소비자 디바이스에서 구현되고 그러므로 저렴하고 저전력을 소비해야 하는, 오디오 디코더의 복잡성은 스펙트럼 값들을 인코딩하기 위해 이용되는 코딩에 의존한다는 것이 알려져 있다.
이러한 상황에서, 비트레이트-효율성 및 자원 효율성 간의 향상된 트레이드-오프(trade-off)를 제공하는, 오디오 컨텐트의 인코딩 및 디코딩을 위한 개념에 대한 필요성이 존재한다.
본 발명에 따른 일 실시예는 인코딩된 오디오 정보에 기초하여 디코딩된 오디오 정보를 제공하기 위한 오디오 디코더를 생성한다. 상기 오디오 디코더는 다수의 디코딩된 스펙트럼 값들을 상기 스펙트럼 값들의 산술적으로-인코딩된 표현(representation)에 기초하여 제공하기 위한 산술 디코더를 포함한다. 상기 오디오 디코더는 또한 상기 디코딩된 오디오 정보를 획득하기 위해 상기 디코딩된 스펙트럼 값들을 사용하여 시간-도메인 오디오 표현을 제공하기 위한 주파수-도메인-대-시간-도메인 변환기(converter)를 포함한다. 상기 산술 디코더는 컨텍스트 상태에 의존하여(in dependence on) (인코딩된 오디오 정보를 표현하는 비트스트림으로부터 추출될 수 있는) 코드 값의 (디코딩된 스펙트럼 값, 또는 그것의 최상위(most significant) 비트플레인(bitplane)을 표현하는 수치(numeric) 값일 수 있는) 심볼 코드로의 매핑을 기술(describing)하는 매핑 규칙을 선택하도록 구성된다. 상기 산술 디코더는 다수의 이전에 디코딩된 스펙트럼 값들에 의존하여 그리고 디코딩될 스펙트럼 값이 제 1 미리 결정된 주파수 영역 또는 제 2 미리 결정된 주파수 영역 내에 있는지 여부에 의존하여 현재 컨텍스트 상태를 기술하는 수치 현재 컨텍스트 값(numeric current context value)을 결정하도록 구성된다.
현재 디코딩될 스펙트럼 값이 있는, 주파수 영역의 고려는 컨텍스트 계산을 위해 요구되는 계산적 노력을 상당하게 증가시키지 않고 컨텍스트 계산의 품질의 상당한 향상을 가능하게 한다는 것이 알려져 있다. 또한, 현재 디코딩될 스펙트럼 값의 이웃에 있는 이전에 디코딩된 스펙트럼 값들 간의 통계적 의존성들이 주파수에 걸쳐 변화한다는 사실을 고려함으로써, 컨텍스트는 높은 코딩 효율성을 가능하게 하도록 그리고 상대적으로 낮은 주파수들과 연관되는 스펙트럼 값들의 디코딩 및 상대적으로 높은 주파수들과 연관되는 스펙트럼 값들의 디코딩 모두를 가능하게 하도록 선택될 수 있다. (전형적으로 현재 디코딩될 스펙트럼 값의 직접적인(direct) 또는 간접적인(indirect) 이웃으로부터) 현재 디코딩될 스펙트럼 값 및 이전에 디코딩된 스펙트럼 값들 간의 통계적 의존성들의 세부사항(detail)들에 대한 컨텍스트의 양호한 적응(adaptation)은 계산적 노력을 적정하게 적게 유지하면서 코딩 효율성을 증가시킬 가능성을 향상시킨다. 현재 디코딩될 스펙트럼 값의 주파수 인덱스가 산술 디코딩 프로세스에서 자연적으로 알려지기 때문에, 주파수 영역의 고려는 매우 적은 노력으로 가능하다는 것이 알려져 있다. 그리하여, 컨텍스트의 선택적인 적응은 거의 계산적 노력없이 수행될 수 있으며, 여전히 코딩 효율성의 향상을 가져오게 된다.
선호되는(preferred) 일 실시예에서, 산술 디코더는 디코딩될 스펙트럼 값이 제 1 미리 결정된 주파수 영역 또는 제 2 미리 결정된 주파수 영역 내에 있는지 여부에 의존하여 선택적으로 수치 현재 컨텍스트 값을 수정하도록 구성된다. 수치 현재 컨텍스트 값의 이전의 계산(또는 다른 결정)에 더하여, 수치 현재 컨텍스트 값의 선택적인 수정은 수치 현재 컨텍스트 값의 "정규(normal)" 계산(또는 다른 결정)과 현재 디코딩될 스펙트럼 값들이 있는 주파수 영역의 고려의 조합을 가능하게 한다. 수치 현재 컨텍스트 값의 "정규" 계산은 수치 현재 컨텍스트 값의 영역-의존적 적응으로부터 분리되어 처리될 수 있으며, 이것은 전형적으로 알고리즘의 복잡성 및 계산적 노력을 감소시킨다. 또한, 오직 이러한 개념을 이용하여 용이하게 수치 현재 컨텍스트 값의 "정규" 계산을 포함하는 시스템들을 업그레이드하는 것이 가능하다.
선호되는 일 실시예에서, 산술 디코더는 디코딩될 스펙트럼 값이 제 1 미리 결정된 주파수 영역 또는 제 2 미리 결정된 주파수 영역 내에 있는지 여부에 의존하여, 수치 현재 컨텍스트 값이 다수의 이전에 디코딩된 스펙트럼 값들의 조합 또는 다수의 이전에 디코딩된 스펙트럼 값들로부터 유도되는(derived) 다수의 중간 값들의 조합에 기반하도록, 그리고 수치 현재 컨텍스트 값이 다수의 이전에 디코딩된 스펙트럼 값들의 조합에 기반하여 또는 다수의 이전에 디코딩된 스펙트럼 값들로부터 유도되는 다수의 중간 값들의 조합에 기반하여 획득되는 값을 초과하여 선택적으로 증가하도록, 수치 현재 컨텍스트 값을 결정하도록 구성된다. 현재 디코딩될 스펙트럼 값이 있는 주파수 영역에 의존하여 수치 현재 컨텍스트 값의 선택적인 증가는 계산적 노력을 적게 유지하면서 동시에 수치 현재 컨텍스트 값의 효율적인 평가를 가능하게 한다는 것이 알려져 있다.
선호되는 일 실시예에서, 산술 디코더는 수치 현재 컨텍스트 값을 결정하기 위해 적어도 제 1 주파수 영역 및 제 2 주파수 영역 사이에서 구별하도록 구성되고, 제 1 주파수 영역은 오디오 컨텐트의 주어진 시간 부분(예를 들어, 프레임 또는 서브프레임)과 연관되는 스펙트럼 값들의 적어도 15%를 포함하고, 상기 제 1 주파수 영역은 낮은-주파수 영역이며 (오디오 컨텐트의 주어진 (현재) 시간 부분과 연관되는 스펙트럼 값들의 세트 내에서) 가장 낮은 주파수를 갖는 연관된 스펙트럼 값을 포함한다. 스펙트럼 값들 간의 통계적 의존성들이 이러한 낮은-주파수 영역에 걸쳐 강한 변화를 포함하지 않기 때문에, 양호한 컨텍스트 적응은 제 1 주파수 영역으로서 (스펙트럼 값들의 적어도 15%를 포함하는) 스펙트럼의 하위 부분을 일반적으로 고려함으로써 달성될 수 있다는 것이 알려져 있다. 그에 따라, 상이한 영역들의 개수는 충분히 작게 유지될 수 있으며, 이는 과도한 개수의 상이한 매핑 규칙들의 사용을 회피하는데 도움을 준다. 그러나, 몇몇 실시예들에서 보다 많이 연장된(extended) 제 1 스펙트럼 영역의 선택이 선호되더라도, 제 1 주파수 영역이 적어도 하나의 스펙트럼 값, 적어도 2개의 스펙트럼 값들 또는 적어도 3개의 스펙트럼 값들을 포함한다면 그것은 충분할 수 있다.
선호되는 일 실시예에서, 산술 디코더는 수치 현재 컨텍스트 값을 결정하기 위해 적어도 제 1 주파수 영역 및 제 2 주파수 영역 사이에서 구별하도록 구성되고, 상기 제 2 주파수 영역은 오디오 컨텐트의 주어진 시간 부분(예를 들어, 프레임 또는 서브프레임)과 연관되는 스펙트럼 값들의 적어도 15%를 포함하고, 상기 제 2 주파수 영역은 높은-주파수 영역이며 (오디오 컨텐트의 주어진 (현재) 시간 부분과 연관되는 스펙트럼 값들의 세트 내에서) 가장 높은 주파수를 갖는 연관된 스펙트럼 값을 포함한다. 스펙트럼 값들 간의 통계적 의존성들이 이러한 높은-주파수 영역에 걸쳐 강한 변화를 포함하지 않기 때문에, 양호한 컨텍스트 적응은 제 2 주파수 영역으로서 (스펙트럼 값들의 적어도 15%를 포함하는) 스펙트럼의 상위 부분을 일반적으로 고려함으로써 달성될 수 있다는 것이 알려져 있다. 그에 따라, 상이한 영역들의 개수는 충분히 작게 유지될 수 있으며, 이는 과도한 개수의 상이한 매핑 규칙들의 사용을 회피하는데 도움을 준다. 그러나, 몇몇 실시예들에서 보다 많이 연장된 제 1 스펙트럼 영역의 선택이 선호되더라도, 제 2 주파수 영역이 적어도 하나의 스펙트럼 값, 적어도 2개의 스펙트럼 값들 또는 적어도 3개의 스펙트럼 값들을 포함한다면 그것은 충분할 수 있다.
선호되는 일 실시예에서, 산술 디코더는 디코딩될 스펙트럼 값이 적어도 3개의 주파수 영역들 중 어디에 있는지에 대한 결정에 의존하여 수치 현재 컨텍스트 값을 결정하기 위해 적어도 제 1 주파수 영역, 제 2 주파수 영역 및 제 3 주파수 영역 사이에서 구별하도록 구성된다. 이러한 경우에, 제 1 주파수 영역, 제 2 주파수 영역 및 제 3 주파수 영역 각각은 다수의 연관된 스펙트럼 값들을 포함한다. 전형적인 오디오 신호들에 대하여, 적어도 3개의 상이한 주파수 영역들을 구별하는 것이 추천할만 하다는 것이 알려져 있으며, 이는 전형적으로 스펙트럼 값들 간의 상이한 통계적 의존성들이 존재하는 적어도 3개의 주파수 영역들이 존재하기 때문이다. 협-대역(narrow-band) 오디오 신호들(예를 들어, 300 Hz 내지 3 KHz 사이의 주파수 범위를 가지는 오디오 신호들)에 대하여도 3개 이상의 주파수 영역들 사이에서 구별하는 것이 (필수적이지는 않더라도) 추천할만 하다는 것이 알려져 있다. 또한, 더 높은 대역폭을 갖는 오디오 신호들에 대하여, 3개 이상의 연장된 주파수 영역들(이들 각각은 자신과 연관된 하나보다 많은 스펙트럼 값을 가짐)을 구별하는 것이 (필수적이지는 않더라도) 추천할만 하다는 것이 알려져 있다.
선호되는 일 실시예에서, 오디오 정보의 (현재) 시간 부분의 스펙트럼 값들의 적어도 1/8은 상기 제 1 주파수 영역과 연관되고, 상기 오디오 정보의 (현재) 시간 부분의 스펙트럼 값들의 적어도 1/5은 상기 제 2 주파수 영역과 연관되고, 상기 오디오 정보의 (현재) 시간 부분의 스펙트럼 값들의 적어도 1/4은 상기 제 3 주파수 영역과 연관된다. 충분하게 큰 주파수 영역들을 가지는 것이 추천할만 하다는 것이 알려져 있으며, 이는 이러한 충분하게 큰 주파수 영역들이 코딩 효율성 및 계산 복잡성 사이의 양호한 절충을 가져오기 때문이다. 또한, 매우 작은 주파수 영역들(예를 들어, 자신과 연관된 오직 하나의 스펙트럼 값을 포함하는 주파수 영역들)의 사용은 계산적으로 비효율적이며 코딩 효율성까지 저하시킬 수 있다는 것이 알려져 있다. 또한, 오직 2개의 주파수 영역들을 사용할 때라도 충분하게 큰 주파수 영역들(예를 들어, 자신과 연관된 적어도 2개의 스펙트럼 값들을 포함하는 주파수 영역들)의 선택은 추천할만 하다는 것을 유의하도록 한다.
선호되는 일 실시예에서, 산술 디코더는 적어도 제 1 피가수(summand) 및 제 2 피가수를 포함하는 합(sum)을 계산하고, 합산의 결과로서 수치 현재 컨텍스트 값을 획득하도록 구성된다. 이러한 경우에, 상기 제 1 피가수는 이전에 디코딩된 스펙트럼 값들의 크기들을 기술하는 다수의 중간 값들의 조합에 의해 획득되며, 상기 제 2 피가수는 다수의 주파수 영역들 중에서, 어떤 주파수 영역과 (현재) 디코딩될 스펙트럼 값이 연관되는지를 기술한다. 이러한 접근을 이용하여, 이전에 디코딩된 스펙트럼 값들에 관한 크기 정보에 기반하는 컨텍스트 계산 및 현재 디코딩될 스펙트럼 값이 연관되는 영역에 의존하는 컨텍스트 적응 간의 분리가 달성될 수 있다. 이전에 디코딩된 스펙트럼 값들의 크기들은 현재 디코딩될 스펙트럼 값의 환경에 관한 중요한 표시(indication)라는 것이 알려져 있다. 그러나, 이전에 디코딩된 스펙트럼 값들의 크기들의 평가에 기반하는, 통계적 의존성들의 평가가 현재 디코딩될 스펙트럼 값이 연관되는 주파수 영역을 고려함으로써 향상될 수 있다는 것이 또한 알려져 있다. 그러나, 영역 정보를 합계 값으로서 수치 현재 컨텍스트 값으로 포함시키는 것이 계산적으로 충분하며, 이러한 간단한 메커니즘조차 수치 현재 컨텍스트 값의 양호한 향상을 가져온다는 것이 알려져 있다.
선호되는 일 실시예에서, 산술 디코더는 다수의 상이한 주파수 영역들 중에서 어떤 주파수 영역에 디코딩될 스펙트럼 값이 있는지의 결정에 의존하여 수치 현재 컨텍스트 값의 이진 표현의 하나 이상의 미리 결정된 비트 위치들을 수정하도록 구성된다. 영역 정보를 위한 전용 비트 위치들의 사용은 수치 현재 컨텍스트 값에 의존하여 매핑 규칙의 선택을 용이하게 한다는 것이 알려져 있다. 예를 들어, 현재 디코딩될 스펙트럼 값이 연관되는 주파수 영역의 기술을 위해 수치 현재 컨텍스트 값의 미리 결정된 비트 위치를 이용함으로써, 매핑 규칙의 선택은 단순화될 수 있다. 예를 들어, 현재 디코딩될 스펙트럼 값이 연관되는 주파수 영역과 관계없이, 전형적으로 동일한 매핑 규칙이 현재 디코딩될 스펙트럼 값의 (스펙트럼 값들과 관련하여) 주어진 이웃이 존재시에 이용될 수 있는 다수의 컨텍스트 상황들이 존재한다. 이러한 경우들에서, 현재 디코딩될 스펙트럼 값이 연관되는, 주파수 영역에 관한 정보가 고려되지 않고 남겨질 수 있으며, 이는 상기 정보의 인코딩을 위해 미리 결정된 비트 위치를 이용함으로써 용이하게 된다.
그러나, 다른 경우들, 즉, 현재 디코딩될 스펙트럼 값의 (스펙트럼 값들과 관련하여) 상이한 환경 컨스텔레이션(constellation)들에 대한 다른 경우들에서, 현재 디코딩될 스펙트럼 값들로 연관되는 주파수 영역에 관한 정보는 매핑 규칙을 선택할 때 이용될 수 있다.
선호되는 일 실시예에서, 산술 디코더는 수칙 현재 컨텍스트 값에 의존하여 매핑 규칙을 선택하도록 구성되며, 그 결과 다수의 상이한 수치 현재 컨텍스트 값들이 동일한 매핑 규칙의 선택을 야기한다. 현재 디코딩될 스펙트럼 값이 연관되는 주파수 영역을 고려하는 개념은 동일한 매핑 규칙이 다수의 상이한 수치 현재 컨텍스트 값들과 연관되는 개념과 결합될 수 있다는 것이 알려져 있다. 모든 경우들에서, 현재 디코딩될 스펙트럼 값으로 연관되는, 주파수를 고려하는 것이 필요하지는 않지만, 적어도 몇몇 경우들에서, 현재 디코딩될 스펙트럼 값이 연관되는, 주파수 영역에 관한 정보를 고려하는 것이 추천할만 하다는 것이 알려져 있다.
선호되는 일 실시예에서, 산술 디코더는 수치 현재 컨텍스트 값에 의존하여 매핑 규칙의 2-단계 선택을 수행하도록 구성된다. 이러한 경우에, 산술 디코더는 수치 현재 컨텍스트 값이 다이렉트-히트(direct-hit) 테이블의 엔트리에 의해 기술되는 중요 상태 값(significant state value)과 동일한지 여부를, 제 1 선택 단계에서, 체크하도록 구성된다. 산술 디코더는, 수치 현재 컨텍스트 값이 상기 다이렉트-히트 테이블의 엔트리들에 의해 기술되는 중요 상태 값들과 상이한 경우에만 실행되는 제 2 선택 단계에서, 다수의 구간(interval)들 중에서 어떤 구간에 상기 수치 현재 컨텍스트 값이 있는지를 결정하도록 또한 구성된다. 이러한 경우에, 산술 디코더는 상기 제 1 선택 단계 및/또는 상기 제 2 선택 단계의 결과에 의존하여 상기 매핑 규칙을 선택하도록 구성된다. 산술 디코더는 디코딩될 스펙트럼 값이 제 1 주파수 영역에 있는지 또는 제 2 주파수 영역에 있는지 여부에 의존하여 상기 매핑 규칙을 선택하도록 또한 구성된다. 수치 현재 컨텍스트 값의 계산을 위한 위에서-논의된 개념과 2-단계 매핑 규칙 선택의 결합은 특정한 장점들을 가져온다는 것이 알려져 있다. 예를 들어, 이러한 개념을 이용하여, 상이한 주파수 영역들에서 디코딩되고 배치될 스펙트럼 값들에 대하여, 제 1 선택 단계에서 매핑 규칙이 연관되는, 상이한 "다이렉트-히트" 컨텍스트 구성들을 정의하는 것이 가능하다. 또한, 매핑 규칙의 구간-기반 선택이 수행되는, 제 2 선택 단계는 현재 디코딩될 스펙트럼 값이 연관되는 주파수 영역을 고려하기 위해 요구되지 않는(또는 적어도, 필요하지 않은) 이러한 상황들(이전에 디코딩된 스펙트럼 값들의 환경들)의 처리를 위해 적합하다.
선호되는 일 실시예에서, 산술 디코더는 다수의 상이한 주파수 영역들 중에서 어떤 주파수 영역에 디코딩될 스펙트럼 값이 있는지의 결정에 의존하여 수치 현재 컨텍스트 값의 이진 표현의 하나 이상의 최하위(least-significant) 비트 위치들을 선택적으로 수정하도록 구성된다. 이러한 경우에, 산술 디코더는, 상기 제 2 선택 단계에서, 다수의 구간들 중에서 어떤 구간에 상기 수치 현재 컨텍스트 값의 이진 표현이 있는지를 결정하고, 일부(some) 수치 현재 컨텍스트 값들이 상기 디코딩될 스펙트럼 값이 있는 주파수 영역과 독립적으로 동일한 매핑 규칙의 선택을 야기하도록, 그리고 일부 수치 현재 컨텍스트 값들에 대하여 상기 디코딩될 스펙트럼 값이 어떤 주파수 영역에 있는지에 의존하여 매핑 규칙이 선택되도록, 매핑을 선택하도록 구성된다. 주파수 영역이 수치 현재 컨텍스트 값의 이진 표현의 최하위 비트들에서 인코딩되는 메커니즘은 2-단계 매핑 규칙 선택과의 효율적인 협력을 위해 매우 적합하다는 것이 알려져 있다.
본 발명에 따른 일 실시예는 입력 오디오 정보에 기초하여 인코딩된 오디오 정보를 제공하기 위한 오디오 신호 인코더를 생성한다. 상기 오디오 인코더는 주파수-도메인 오디오 표현이 스펙트럼 값들의 세트를 포함하도록, 상기 입력 오디오 정보의 시간-도메인 표현에 기초하여 상기 주파수-도메인 오디오 표현을 제공하기 위한 에너지-압축(energy-compacting) 시간-도메인-대-주파수-도메인 컨버터를 포함한다. 산술 인코더는 가변 길이 코드워드를 사용하여, 스펙트럼 값 또는 스펙트럼 값의 사전처리된(preprocessed) 버전을 인코딩하도록 구성된다. 상기 산술 인코더는 스펙트럼 값 또는 스펙트럼 값의 최상위(most-significant) 비트 플레인(bit plane)의 값을 (인코딩된 형태에서 입력 오디오 정보를 표현하는 비트스트림에 포함될 수 있는) 코드 값으로 매핑하도록 구성된다. 상기 산술 인코더는 컨텍스트 상태에 의존하여 스펙트럼 값 또는 스펙트럼 값의 최상위 비트 플레인의 코드 값으로의 매핑을 기술하는 매핑 규칙을 선택하도록 구성된다. 상기 산술 인코더는 다수의 이전에 인코딩된 스펙트럼 값들에 의존하여 그리고 인코딩될 스펙트럼 값이 제 1 미리 결정된 주파수 영역 또는 제 2 미리 결정된 주파수 영역 내에 있는지 여부에 의존하여 현재 컨텍스트 상태를 기술하는 수치 현재 컨텍스트 값을 결정하도록 구성된다.
오디오 신호 인코더는 위에서 논의된 오디오 신호 디코더와 동일한 연구 결과(findings)에 기반한다. 오디오 컨텐트의 디코딩을 위해 효율적인 것으로 보여진, 컨텍스트의 적응을 위한 메커니즘이 또한 일관적인 시스템을 가능하게 하기 위해 인코더 측에 적용되어야 한다는 것이 알려져 있다.
본 발명에 따른 일 실시예는 인코딩된 오디오 정보에 기초하여 디코딩된 오디오 정보를 제공하기 위한 방법을 제시한다.
본 발명에 따른 또다른 실시예는 입력 오디오 정보에 기초하여 인코딩된 오디오 정보를 제공하기 위한 방법을 제시한다.
본 발명의 다른 실시예는 상기 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 제시한다.
상기 방법들 및 컴퓨터 프로그램은 위에서 설명된 오디오 디코더 및 위에서 설명된 오디오 인코더와 동일한 연구 결과에 기반한다.
본 발명에 따른 실시예들은 후속적으로 첨부된 도면들과 관련하여 설명될 것이다.
도 1은 본 발명의 일 실시예에 따른, 오디오 인코더의 개략적인 블록 다이어그램을 도시한다.
도 2는 본 발명의 일 실시예에 따른, 오디오 디코더의 개략적인 블록 다이어그램을 도시한다.
도 3은 스펙트럼 값을 디코딩하기 위한 알고리즘의 의사-프로그램-코드 표현 "value_decode()"를 도시한다.
도 4는 상태 계산을 위한 컨텍스트의 개략적인 표현을 도시한다.
도 5a는 컨텍스트를 매핑하기 위한 알고리즘의 의사-프로그램-코드 표현 "arith_map_context()"를 도시한다.
도 5b 및 도 5c는 컨텍스트 상태 값을 획득하기 위한 알고리즘의 의사-프로그램-코드 표현 "arith_get_context()"를 도시한다.
도 5d는 상태 변수로부터 누적-빈도들-테이블(cumulative-frequencies-table) 인덱스 값 "pki"를 유도하기 위한 알고리즘의 의사-프로그램-코드 표현 "get_pk(s)"를 도시한다.
도 5e는 상태 값으로부터 누적-빈도들-테이블 인덱스 값 "pki"를 유도하기 위한 알고리즘의 의사-프로그램-코드 표현 "arith_get_pk(s)"를 도시한다.
도 5f는 상태 값으로부터 누적-빈도들-테이블 인덱스 값 "pki"를 유도하기 위한 알고리즘의 의사-프로그램-코드 표현 "get_pk(unsigned long s)"를 도시한다.
도 5g는 가변-길이 코드워드로부터 심볼을 산술적으로 디코딩하기 위한 알고리즘의 의사-프로그램-코드 표현 "arith_decode()"를 도시한다.
도 5h는 컨텍스트를 업데이트하기 위한 알고리즘의 의사-프로그램-코드 표현 "arith_update_context()"를 도시한다.
도 5i는 정의(definition)들 및 변수들의 범례(legend)를 도시한다.
도 6a는 통합-스피치-및-오디오 코딩(USAC: unified-speech-and-audio-coding) 원시(raw) 데이터 블록의 신택스(syntax) 표현을 도시한다.
도 6b는 단일 채널 엘리먼트의 신택스 표현을 도시한다.
도 6c는 채널 쌍(pair) 엘리먼트의 신택스 표현을 도시한다.
도 6d는 "ics" 제어 정보의 신택스 표현을 도시한다.
도 6e는 주파수-도메인 채널 스트림의 신택스 표현을 도시한다.
도 6f는 산술적으로-코딩된 스펙트럼 데이터의 신택스 표현을 도시한다.
도 6g는 스펙트럼 값들의 세트를 디코딩하기 위한 신택스 표현을 도시한다.
도 6h는 데이터 엘리먼트들 및 변수들의 범례를 도시한다.
도 7은 본 발명의 다른 실시예에 따른, 오디오 인코더의 개략적인 블록 다이어그램을 도시한다.
도 8은 본 발명의 다른 실시예에 따른, 오디오 디코더의 개략적인 블록 다이어그램을 도시한다.
도 9는 USAC 드래프트 표준의 워킹 드래프트 3에 따른 무잡음 코딩과 본 발명에 따른 코딩 방식의 차이에 대한 배치(arrangement)를 도시한다.
도 10a는 USAC 드래프트 표준의 워킹 드래프트 4에 따라 사용되는 바와 같은, 상태 계산을 위한 컨텍스트의 개략적인 표현을 도시한다.
도 10b는 본 발명에 따른 실시예들에서 사용되는 바와 같은, 상태 계산을 위한 컨텍스트의 개략적인 표현을 도시한다.
도 11a는 USAC 드래프트 표준의 워킹 드래프트 4에 따른 산술 코딩 방식에서 사용되는 테이블의 개관을 도시한다.
도 11b는 본 발명에 따른 산술 코딩 방식에서 사용되는 테이블의 개관을 도시한다.
도 12a는 본 발명에 따른 그리고 USAC 드래프트 표준의 워킹 드래프트 4에 따른 무잡음 코딩 방식들에 대한 판독-전용 메모리 요구의 그래픽 표현을 도시한다.
도 12b는 본 발명에 따른 그리고 USAC 드래프트 표준의 워킹 드래프트 4에 따르는 개념에 따른 전체 USAC 디코더 데이터 판독-전용 메모리 요구의 그래픽 표현을 도시한다.
도 13a는 USAC 드래프트 표준의 워킹 드래프트 3에 따른 산술 코더 및 본 발명의 일 실시예에 따른 산술 디코더를 사용하는, 통합-스피치-및-오디오-코딩 코더에 의해 사용되는 평균 비트레이트들의 테이블 표현을 도시한다.
도 13b는 USAC 드래프트 표준의 워킹 드래프트 3에 따른 산술 코더 및 본 발명의 일 실시예에 따른 산술 코더를 사용하는, 통합-스피치-및-오디오-코딩 코더에 대한 비트 저장소(reservoir) 제어의 테이블 표현을 도시한다.
도 14는 USAC 드래프트 표준의 워킹 드래프트 3에 따른, 그리고 본 발명의 일 실시예에 따른 USAC 코더에 대한 평균 비트레이트들의 테이블 표현을 도시한다.
도 15는 프레임 기반(frame basis)의 USAC의 최소, 최대 및 평균 비트레이트들의 테이블 표현을 도시한다.
도 16은 프레임 기반의 최상 및 최악 케이스들의 테이블 표현을 도시한다.
도 17a 및 17b는 테이블 "aris_s_hash[387]"의 컨텐트의 테이블 표현을 도시한다.
도 18은 테이블 "ari_gs_hash[225]"의 컨텐트의 테이블 표현을 도시한다.
도 19a 및 19b는 테이블 "ari_cf_m[64][9]"의 컨텐트의 테이블 표현을 도시한다.
도 20a 및 20b는 테이블 "ari_s_hash[387]"의 컨텐트의 테이블 표현을 도시한다.
도 21은 본 발명의 일 실시예에 따른, 오디오 인코더의 개략적인 블록 다이어그램을 도시한다.
도 22는 본 발명의 일 실시예에 따른, 오디오 디코더의 개략적인 블록 다이어그램을 도시한다.
1. 도 7에 따른 오디오 인코더
도 7은 본 발명의 일 실시예에 따른, 오디오 인코더의 개략적인 블록 다이어그램을 도시한다. 오디오 인코더(700)는 입력 오디오 정보(710)를 수신하고, 그에 기반하여, 인코딩된 오디오 정보(712)를 제공하도록 구성된다. 오디오 인코더는 주파수-도메인 오디오 표현(722)이 스펙트럼 값들의 세트를 포함하도록, 입력 오디오 정보(710)의 시간-도메인 표현에 기초하여 주파수-도메인 오디오 표현(722)을 제공하도록 구성되는 에너지-압축 시간-도메인-대-주파수-도메인 컨버터(720)를 포함한다. 오디오 인코더(700)는 또한 (예를 들어, 다수의 가변-길이 코드워드들을 포함할 수 있는) 인코딩된 오디오 정보(712)를 획득하기 위해, 가변-길이 코드워드를 사용하여, (주파수-도메인 오디오 표현(722)을 형성하는 스펙트럼 값들의 세트로부터의) 스펙트럼 값, 또는 스펙트럼 값의 사전처리된 버전을 인코딩하도록 구성되는 산술 인코더(730)를 포함한다.
산술 인코더(730)는 컨텍스트 상태에 의존하여, 스펙트럼 값 또는 스펙트럼 값의 최상위 비트-플레인의 값을 코드 값으로(즉, 가변-길이 코드워드로) 매핑하도록 구성된다. 산술 인코더(730)는 컨텍스트 상태에 의존하여, 스펙트럼 값 또는 스펙트럼 값의 최상위 비트-플레인의 코드 값으로의 매핑을 기술하는 매핑 규칙을 선택하도록 구성된다. 산술 인코더는 다수의 이전에-인코딩된 인접한 스펙트럼 값들에 의존하여 현재 컨텍스트 상태를 결정하도록 구성된다. 이러한 목적을 위해, 산술 인코더는 스펙트럼 값들의 크기들과 관련하여 미리 결정된 조건을, 개별적으로 또는 함께 취해져서, 충족하는, 다수의 이전에-인코딩된 인접한 스펙트럼 값들의 그룹을 검출하고, 상기 검출의 결과에 의존하여 현재 컨텍스트 값을 결정하도록 구성된다.
보여질 수 있는 바와 같이, 스펙트럼 값 또는 스펙트럼 값의 최상위 비트-플레인의 코드 값으로의 매핑은 매핑 규칙(742)를 이용하여 스펙트럼 값 인코딩(740)에 의해 수행될 수 있다. 상태 트래커(state tracker)(750)는 스펙트럼 값들의 크기들과 관련하여 미리 결정된 조건을, 개별적으로 또는 함께 취해져서, 충족하는 다수의 이전에-인코딩된 인접한 스펙트럼 값들의 그룹을 검출하기 위한 그룹 검출기(752)를 포함할 수 있다. 상태 트래커(750)는 또한 바람직하게는 그룹 검출기(752)에 의해 수행된 상기 검출의 결과에 의존하여 현재 컨텍스트 상태를 결정하도록 구성된다. 이에 따라, 상태 트래커(750)는 현재 컨텍스트 상태를 기술하는 정보(754)를 제공한다. 매핑 규칙 선택기(760)는 스펙트럼 값 또는 스펙트럼 값의 최상위 비트-플레인의 코드 값으로의 매핑을 기술하는, 매핑 규칙, 예컨대 누적-빈도들-테이블을 선택할 수 있다. 이에 따라, 매핑 규칙 선택기(760)는 스펙트럼 인코딩(740)으로 매핑 규칙 정보(742)를 제공한다.
전술된 내용을 요약하기 위해, 오디오 인코더(700)는 시간-도메인-대-주파수-도메인 컨버터에 의해 제공되는 주파수-도메인 오디오 표현의 산술 인코딩을 수행한다. 산술 인코딩은 컨텍스트-종속적이며, 그 결과 매핑 규칙(예를 들어, 누적-빈도들-테이블)은 이전에-인코딩된 스펙트럼 값들에 의존하여 선택된다. 이에 따라, 서로에 대하여 그리고/또는 현재-인코딩된 스펙트럼 값에 대하여 시간 및/또는 주파수에서 (또는 적어도, 미리 결정된 환경 내에서) 인접한 스펙트럼 값들(즉, 현재 인코딩된 스펙트럼 값의 미리 결정된 환경 내에 있는 스펙트럼 값들)은 산술 인코딩에 의해 평가되는 확률 분포를 조정하기 위해 산술 인코딩에서 고려된다. 적절한 매핑 규칙을 선택할 때, 스펙트럼 값들의 크기들과 관련하여 미리 결정된 조건을, 개별적으로 또는 함께 취해져서, 충족하는 다수의 이전에-인코딩된 인접한 스펙트럼 값들의 그룹이 존재하는지 여부를 검출하기 위해 검출이 수행된다. 이러한 검출의 결과는 현재 컨텍스트 상태의 선택에서, 즉, 매핑 규칙의 선택에서 적용된다. 특히 작거나 또는 특히 큰 다수의 스펙트럼 값들의 그룹이 존재하는지 여부를 검출함으로써, 시간-주파수 표현일 수 있는, 주파수-도메인 오디오 표현 내에 있는 특별한 특징(feature)들을 인식하는 것이 가능하다. 예를 들어, 다수의 특히 작은 또는 특히 큰 스펙트럼 값들의 그룹과 같은 특별한 특징들은 특정한 컨텍스트 상태가 특히 양호한 코딩 효율성을 제공할 수 있기 때문에 이러한 특정한 컨텍스트 상태가 사용되어야 함을 표시한다. 그리하여, 전형적으로 다수의 이전에-코딩된 스펙트럼 값들의 조합에 기반하여 대안적인 컨텍스트 평가와 결합하여 사용되는, 미리 결정된 조건을 충족하는 인접한 스펙트럼 값들의 그룹의 검출은 입력 오디오 정보가 몇몇 특별한 상태들을 취하는(예를 들어, 큰 마스킹된(masked) 주파수 범위를 포함하는) 경우에 적절한 컨텍스트의 효율적인 선택을 가능하게 하는 메커니즘을 제공한다.
이에 따라, 컨텍스트 계산을 충분히 단순하게 유지하면서 효율적인 인코딩이 달성될 수 있다.
2. 도 8에 따른 오디오 디코더
도 8은 오디오 디코더(800)의 개략적인 블록 다이어그램을 도시한다. 오디오 디코더(800)는 인코딩된 오디오 정보(810)를 수신하고, 그에 기반하여, 디코딩된 오디오 정보(812)를 제공하도록 구성된다. 오디오 디코더(800)는 스펙트럼 값들의 산술적으로-인코딩된 표현(821)에 기초하여 다수의 디코딩된 스펙트럼 값들(822)을 제공하도록 구성되는 산술 디코더(820)를 포함한다. 오디오 디코더(800)는 또한 디코딩된 오디오 정보(812)를 획득하기 위해, 디코딩된 스펙트럼 값들(822)을 수신하고 디코딩된 스펙트럼 값들(822)를 사용하여, 디코딩된 오디오 정보를 구성할 수 있는, 시간-도메인 오디오 표현(812)을 제공하도록 구성되는 주파수-도메인-대-시간-도메인 컨버터(830)를 포함한다.
산술 디코더(820)는 스펙트럼 값들의 산술적으로-인코딩된 표현(821)의 코드 값을 디코딩된 스펙트럼 값들의 하나 이상, 또는 디코딩된 스펙트럼 값들의 하나 이상의 적어도 일부(예를 들어, 최상위 비트-플레인)를 표현하는 심볼 코드로 매핑하도록 구성되는 스펙트럼 값 결정기(824)를 포함한다. 스펙트럼 값 결정기(824)는, 매핑 규칙 정보(828a)에 의해 기술될 수 있는, 매핑 규칙에 의존하여 매핑을 수행하도록 구성될 수 있다.
산술 디코더(820)는 (컨텍스트 상태 정보(826a)에 의해 기술될 수 있는) 컨텍스트 상태에 의존하여 (스펙트럼 값들의 산술적으로-인코딩된 표현(821)에 의해 기술되는) 코드-값의 (하나 이상의 스펙트럼 값들을 기술하는) 심볼 코드로의 매핑을 기술하는 매핑 규칙(예를 들어, 누적-빈도들-테이블)을 선택하도록 구성된다. 산술 디코더(820)는 다수의 이전에-디코딩된 스펙트럼 값들(822)에 의존하여 현재 컨텍스트 상태를 결정하도록 구성된다. 이러한 목적을 위해, 이전에-디코딩된 스펙트럼 값들을 기술하는 정보를 수신하는, 상태 트래커(826)가 사용될 수 있다. 산술 디코더는 또한 스펙트럼 값들의 크기들과 관련하여 미리 결정된 조건을, 개별적으로 또는 함께 취해져서, 충족하는, 다수의 이전에-디코딩된 인접한 스펙트럼 값들의 그룹을 검출하고, 상기 검출의 결과에 의존하여 (예를 들어, 컨텍스트 상태 정보(826a)에 의해 기술되는) 현재 컨텍스트 상태를 결정하도록 구성된다.
스펙트럼 값들의 크기들과 관련하여 미리 결정된 조건을 충족하는 다수의 이전에-디코딩된 인접한 스펙트럼 값들의 그룹의 검출은, 예를 들어, 상태 트래커(826)의 부분인, 그룹 검출기에 의해 수행될 수 있다. 이에 따라, 현재 컨텍스트 상태 정보(826a)가 획득된다. 매핑 규칙의 선택은, 현재 컨텍스트 상태 정보(826a)로부터 매핑 규칙 정보(828a)를 유도하고 매핑 규칙 정보(828a)를 스펙트럼 값 결정기(824)로 제공하는, 매핑 규칙 선택기(828)에 의해 수행될 수 있다.
오디오 신호 디코더(800)의 기능과 관련하여, 다수의 이전에-디코딩된 스펙트럼 값들에 의존하여 결정되는, 현재 컨텍스트 상태에 의존하여 매핑 규칙이 선택되기 때문에, 산술 디코더(820)는, 평균하여(on an average), 디코딩될 스펙트럼 값으로 잘-적응되는 매핑 규칙(예를 들어, 누적-빈도들-테이블)을 선택하도록 구성된다는 것을 유의해야 할 것이다. 이에 따라, 디코딩될 인접한 스펙트럼 값들 간의 통계적 의존성들이 이용될 수 있다. 또한, 스펙트럼 값들의 크기들과 관련하여 미리 결정된 조건을, 개별적으로 또는 함께 취해져서, 충족하는 다수의 이전에-디코딩된 인접한 스펙트럼 값들의 그룹을 검출함으로써, 이전에-디코딩된 스펙트럼 값들의 특별한 조건들(또는 패턴들)로 매핑 규칙을 적응시키는 것이 가능하다. 예를 들어, 다수의 상대적으로 작은 이전에-디코딩된 인접한 스펙트럼 값들의 그룹이 식별되거나, 또는 다수의 상대적으로 큰 이전에-디코딩된 인접한 스펙트럼 값들의 그룹이 식별되는 경우에 특정한 매핑 규칙이 선택될 수 있다. 상대적으로 큰 스펙트럼 값들의 그룹 또는 상대적으로 작은 스펙트럼 값들의 그룹의 존재가, 구체적으로 그러한 조건에 적응되는, 전용되는 매핑 규칙이 이용되어야 한다는 중요한 표시로서 고려될 수 있다는 것이 알려져 있다. 이에 따라, 이러한 다수의 스펙트럼 값들의 그룹의 검출을 이용함으로써 컨텍스트 계산이 용이하게 될 수 있다(또는 가속화(accelarate)될 수 있다). 또한, 위에서-언급된 개념을 적용하지 않고는 손쉽게 고려될 수 없는 오디오 컨텐트의 특성들이 고려될 수 있다. 예를 들어, 스펙트럼 값들의 크기들과 관련하여 미리 결정된 조건을, 개별적으로 또는 함께 취해져서, 충족하는 다수의 스펙트럼 값들의 그룹의 검출은, 정규 컨텍스트 계산을 위해 사용되는 스펙트럼 값들의 세트와 비교할 때, 스펙트럼 값들의 상이한 세트에 기초하여 수행될 수 있다.
추가적인 세부사항들은 아래에서 설명될 것이다.
3. 도 1에 따른 오디오 인코더
다음에서, 본 발명의 일 실시예에 따른 오디오 인코더가 설명될 것이다. 도 1은 이러한 오디오 인코더(100)의 개략적인 블록 다이어그램을 도시한다.
오디오 인코더(100)는 입력 오디오 정보(110)를 수신하고, 이에 기반하여, 인코딩된 오디오 정보를 구성하는, 비트스트림(112)을 제공하도록 구성된다. 오디오 인코더(100)는 선택적으로 프리프로세서(preprocessor)(120)를 포함하며, 프리프로세서는 입력 오디오 정보(110)를 수신하고, 이에 기반하여, 사전처리된 입력 오디오 정보(110a)를 제공하도록 구성된다. 오디오 인코더(100)는 또한 에너지-압축 시간-도메인 대 주파수-도메인 신호 변환기(130)를 포함하며, 상기 변환기(130)는 또한 신호 컨버터로서 지정된다. 신호 컨버터(130)는 입력 오디오 정보(110)를 수신하고, 이에 기반하여, 바람직하게는 스펙트럼 값들의 세트의 형태를 취하는, 주파수-도메인 오디오 정보(132)를 제공하도록 구성된다. 예를 들어, 신호 변환기(130)는 입력 오디오 정보(110, 110a)의 프레임(예를 들어, 시간-도메인 샘플들의 블록)을 수신하고 개별적인 오디오 프레임의 오디오 컨텐트를 표현하는 스펙트럼 값들의 세트를 제공하도록 구성될 수 있다. 추가적으로, 신호 변환기(130)는 입력 오디오 정보(110, 110a)의 다수의 후속적인, 오버래핑 또는 넌-오버래핑, 오디오 프레임들을 수신하고, 이에 기반하여, 스펙트럼 값들의 후속적인 세트들의 시퀀스를 포함하는, 시간-주파수-도메인 오디오 표현을 제공하도록 구성될 수 있으며, 스펙트럼 값들의 하나의 세트는 각각의 프레임과 연관된다.
에너지-압축 시간-도메인 대 주파수-도메인 신호 변환기(130)는 에너지-압축 필터뱅크(filterbank)를 포함하며, 상기 필터뱅크는 상이한, 오버래핑 또는 넌-오버래핑, 주파수 범위들과 연관되는 스펙트럼 값들을 제공한다. 예를 들어, 신호 변환기(130)는 윈도잉 MDCT 변환기(130a)를 포함할 수 있으며, 윈도잉 MDCT 변환기(130a)는 변환 윈도우를 사용하여 입력 오디오 정보(110, 110a)(또는 입력 오디오 정보(110, 110a)의 프레임))를 윈도잉하고 윈도잉된 입력 오디오 정보(110, 110a)(또는 입력 오디오 정보(110, 110a)의 윈도잉된 프레임)의 수정된-이산-코사인-변환을 수행하도록 구성된다. 이에 따라, 주파수-도메인 오디오 표현(132)은 입력 오디오 정보의 프레임과 연관되는 MDCT 계수들의 형태로, 예를 들어, 1024개의 스펙트럼 값들의 세트를 포함할 수 있다.
오디오 인코더(100)는 또한, 선택적으로, 스펙트럼 포스트-프로세서(140)를 포함할 수 있으며, 스펙트럼 포스트-프로세서(140)는 주파수-도메인 오디오 표현(132)을 수신하고, 이에 기반하여, 포스트-프로세싱된 주파수-도메인 오디오 표현(142)을 제공하도록 구성된다. 스펙트럼 포스트-프로세서(140)는, 예를 들어, 시간 잡음 쉐이핑(temporal noise shaping) 및/또는 롱 텀 예측(long term prediction) 및/또는 기술적으로 알려진 임의의 다른 스펙트럼 포스트-프로세싱을 수행하도록 구성될 수 있다. 오디오 인코더는 또한, 선택적으로, 스케일러/양자화기(scaler/quantizer)(150)를 포함하며, 스케일러/양자화기(150)는 주파수-도메인 오디오 표현(132) 또는 주파수-도메인 오디오 표현(132)의 포스트-프로세싱된 버전(142)을 수신하고 스케일링되고 양자화된 주파수-도메인 오디오 표현(152)을 제공하도록 구성된다.
오디오 인코더(100)는 또한, 선택적으로, 음향-심리 모델 프로세서(160)를 포함하며, 음향-심리 모델 프로세서(160)는 입력 오디오 정보(110)(또는 입력 오디오 정보(110)의 포스트-프로세싱된 버전(110a))을 수신하고, 이에 기반하여, 에너지-압축 시간-도메인 대 주파수-도메인 신호 변환기(130)의 제어를 위해, 선택적 스펙트럼 포스트-프로세서(140)의 제어를 위해 그리고/또는 선택적 스케일러/양자화기(150)의 제어를 위해 사용될 수 있는, 선택적 제어 정보를 제공하도록 구성된다. 예를 들어, 음향-심리 모델 프로세서(160)는 입력 오디오 정보를 분석하고, 입력 오디오 정보(110, 110a)의 어떤 컴포넌트들이 특히 오디오 컨텐트의 인간 인식(human perception)을 위해 중요한지 그리고 입력 오디오 정보(110, 110a)의 어떤 컴포넌트들이 오디오 컨텐트의 인식을 위해 덜 중요한지를 결정하도록 구성될 수 있다. 이에 따라, 음향-심리 모델 프로세서(160)는 제어 정보를 제공할 수 있으며, 상기 제어 정보는 스케일러/양자화기(150)에 의한 주파수-도메인 오디오 표현(132, 142)의 스케일링 및/또는 스케일러/양자화기(150)에 의해 적용되는 양자화 분해능(resolution)을 조정하기 위해 오디오 인코더(100)에 의해 사용된다. 결과적으로, 인식적으로 덜-중요한 스케일 인자 밴드들(즉, 인접한 스펙트럼 값들의 그룹들)이 상대적으로 더 작은 스케일링 인자로 스케일링되고 상대적으로 더 낮은 양자화 분해능으로 양자화되는 반면에, 인식적으로 중요한 스케일 인자 밴드들(즉, 오디오 컨텐트의 인간 인식을 위해 특히 중요한 인접한 스펙트럼 값들의 그룹들)은 큰 스케일링 인자로 스케일링되고 상대적으로 높은 분해능으로 양자화된다. 이에 따라, 인식적으로 보다 중요한 주파수들의 스케일링된 스펙트럼 값들은 전형적으로 인식적으로 덜 중요한 주파수들의 스펙트럼 값들보다 상당하게 더 크다.
오디오 인코더는 또한 산술 인코더(170)를 포함하며, 산술 인코더(170)는 주파수-도메인 오디오 표현(132)의 스케일링되고 양자화된 버전(152)(또는 대안적으로, 주파수-도메인 오디오 표현(132)의 포스트-프로세싱된 버전(142), 또는 주파수-도메인 오디오 표현(132) 자체)을 수신하고, 이에 기반하여, 산술 코드워드 정보(172a)를 제공하도록 구성되며, 그 결과 산술 코드워드 정보는 주파수-도메인 오디오 표현(152)을 나타낸다.
오디오 인코더(100)는 또한 비트스트림 페이로드 포매터(formatter)(190)를 포함하며, 비트스트림 페이로드 포매터(190)는 산술 코드워드 정보(172a)를 수신하도록 구성된다. 비트스트림 페이로드 포매터(190)는 또한 전형적으로, 예를 들어, 어떤 스케일 인자들이 스케일러/양자화기(150)에 의해 적용되었는지를 기술하는 스케일 인자 정보와 같은 추가적인 정보를 수신하도록 구성된다. 추가적으로, 비트스트림 페이로드 포매터(190)는 다른 제어 정보를 수신하도록 구성된다. 비트스트림 페이로드 포매터(190)는, 아래에서 논의될, 요구되는 비트스트림 신택스에 따라 비트스트림을 어셈블링(assemble)함으로써 수신된 정보에 기초하여 비트스트림(112)을 제공하도록 구성된다.
다음에서, 산술 인코더(170)에 관한 세부사항들이 설명될 것이다. 산술 인코더(170)는 주파수-도메인 오디오 표현(132)의 다수의 포스트-프로세싱되고 스케일링되고 양자화된 스펙트럼 값들을 수신하도록 구성된다. 산술 인코더는 최상위-비트-플레인-추출기(174)를 포함하며, 최상위-비트-플레인-추출기(174)는 스펙트럼 값으로부터 최상위 비트-플레인 m을 추출하도록 구성된다. 여기에서 최상위 비트-플레인은, 스펙트럼 값의 최상위 비트들인, 하나 또는 더 많은 비트들(예를 들어, 2개 또는 3개의 비트들)을 포함할 수 있다는 것을 유의해야 할 것이다. 그리하여, 최상위 비트-플레인 추출기(174)는 스펙트럼 값의 최상위 비트-플레인 값(176)을 제공한다.
산술 인코더(170)는 또한 제 1 코드워드 결정기(180)를 포함하며, 제 1 코드워드 결정기(180)는 최상위 비트-플레인 값 m을 나타내는 산술 코드워드 acod_m [pki][m]을 결정하도록 구성된다. 선택적으로, 코드워드 결정기(180)는 또한, 예를 들어, 얼마나 많은 더-하위(less-significant) 비트-플레인들이 이용가능한지를 표시하는(그리고, 결과적으로, 최상위 비트-플레인의 수치 가중치(numeric weight)를 표시하는) (또한 여기에서 "ARITH_ESCAPE"으로 지정되는) 하나 이상의 이스케이프(escape) 코드워드들을 제공할 수 있다. 제 1 코드워드 결정기(180)는 누적-빈도들-테이블 인덱스 pki를 갖는(또는 누적-빈도들-테이블 인덱스 pki에 의해 참조되는) 선택된 누적-빈도들-테이블을 사용하여 최상위 비트-플레인 값 m과 연관되는 코드워드를 제공하도록 구성될 수 있다.
어떤 누적-빈도들-테이블이 선택되어야 하는지에 대해 결정하기 위하여, 산술 인코더는 바람직하게는 상태 트래커(182)를 포함하며, 상태 트래커(182)는, 예를 들어, 어떤 스펙트럼 값들이 이전에 인코딩되었는지를 관찰함으로써 산술 인코더의 상태를 트래킹하도록 구성된다. 상태 트래커(182)는 결과적으로 상태 정보(184), 예를 들어, "s" 또는 "t"로 지정되는 상태 값을 제공한다. 산술 인코더(170)는 또한 누적-빈도들-테이블 선택기(186)를 포함하며, 누적-빈도들-테이블 선택기(186)는 상태 정보(184)를 수신하고 선택된 누적-빈도들-테이블을 기술하는 정보(188)를 코드워드 결정기(180)로 제공하도록 구성된다. 예를 들어, 누적-빈도들-테이블 선택기(186)는 64개의 누적-빈도들-테이블들의 세트로부터, 어떤 누적-빈도들-테이블이 코드워드 결정기에 의한 사용을 위해 선택되는지를 기술하는 누적-빈도들-테이블 인덱스 "pki"를 제공할 수 있다. 대안적으로, 누적-빈도들-테이블 선택기(186)는 전체 선택된 누적-빈도들-테이블을 코드워드 결정기로 제공할 수 있다. 그리하여, 코드워드 결정기(180)는 최상위 비트-플레인 값 m의 코드워드 acod_m[pki][m]의 제공을 위해 선택된 누적-빈도들-테이블을 사용할 수 있으며, 그 결과 최상위 비트-플레인 값 m을 인코딩하는 실제 코드워드 acod_m[pki][m]은 m의 값 및 누적-빈도들-테이블 인덱스 pki에 의존하고, 그리고 결과적으로 현재 상태 정보(184)에 의존한다. 코딩 프로세스 및 획득된 코드워드 포맷에 관한 추가적인 세부사항들은 아래에서 설명될 것이다.
산술 인코더(170)는 더-하위 비트-플레인 추출기(189a)를 더 포함하며, 더-하위 비트-플레인 추출기(189a)는, 인코딩될 스펙트럼 값들 중 하나 이상이 오직 최상위 비트-플레인을 사용하여 인코딩가능한 값들의 범위를 초과하는 경우에, 스케일링되고 양자화된 주파수-도메인 오디오 표현(152)으로부터 하나 이상의 더-하위 비트-플레인들을 추출하도록 구성된다. 더-하위 비트-플레인들은, 요구되는 대로, 하나 이상의 비트들을 포함할 수 있다. 이에 따라, 더-하위 비트-플레인 추출기(189a)는 더-하위 비트-플레인 정보(189b)를 제공한다. 산술 인코더(170)는 또한 제 2 코드워드 결정기(189c)를 포함하며, 제 2 코드워드 결정기(189c)는 더-하위 비트-플레인 정보(189d)를 수신하고, 이에 기반하여, 0, 1 또는 더 많은 더-하위 비트-플레인들의 컨텐트를 표현하는 0, 1 또는 더 많은 코드워드들 "acod_r"을 제공하도록 구성된다. 제 2 코드워드 결정기(189c)는 더-하위 비트-플레인 정보(189b)로부터 더-하위 비트-플레인 코드워드들 "acod_r"을 유도하기 위하여 산술 인코딩 알고리즘 또는 임의의 다른 인코딩 알고리즘을 적용하도록 구성될 수 있다.
인코딩될 스케일링되고 양자화된 스펙트럼 값이 상대적으로 작은 경우에 더-하위 비트-플레인이 전혀 없을 수 있도록, 인코딩될 현재 스케일링되고 양자화된 스펙트럼 값이 중간 범위에 있는 경우에 하나의 더-하위 비트-플레인이 존재할 수 있도록, 그리고 인코딩될 스케일링되고 양자화된 스펙트럼 값이 상대적으로 큰 값을 취하는 경우에 하나보다 많은 더-하위 비트-플레인이 존재할 수 있도록, 더-하위 비트-플레인들의 수는 스케일링되고 양자화된 스펙트럼 값들(152)의 값에 의존하여 변할 수 있다는 것을 유의하도록 한다.
전술된 내용을 요약하기 위해, 산술 인코더(170)는 계층적 인코딩 프로세스를 이용하여, 정보(152)에 의해 기술되는, 스케일링되고 양자화된 스펙트럼 값들을 인코딩하도록 구성된다. (예를 들어, 스펙트럼 값마다 1, 2 또는 3개의 비트들을 포함하는) 최상위 비트-플레인은 최상위 비트-플레인 값의 산술 코드워드 "acod_m[pki][m]"을 획득하기 위해 인코딩된다. 하나 이상의 더-하위 비트-플레인들(더-하위 비트-플레인들 각각은, 예를 들어, 1, 2 또는 3개의 비트들을 포함함)은 하나 이상의 코드워드들 "acod_r"을 획득하기 위해 인코딩된다. 최상위 비트-플레인을 인코딩할 때, 최상위 비트-플레인의 값 m은 코드워드 acod_m[pki][m]으로 매핑된다. 이러한 목적을 위해, 64개의 상이한 누적-빈도들-테이블들은 산술 인코더(170)의 상태에 의존하여, 즉, 이전에-인코딩된 스펙트럼 값들에 의존하여 값 m의 인코딩을 위해 이용가능하다. 이에 따라, 코드워드 "acod_m[pki][m]"이 획득된다. 추가적으로, 하나 이상의 더-하위 비트-플레인들이 존재한다면 하나 이상의 코드워드들 "acod_r"이 제공되어 비트스트림에 포함된다.
리셋 설명(Reset description)
오디오 인코더(100)는 선택적으로 비트레이트에서의 향상이 컨텍스트를 리셋함으로써, 예컨대 상태 인덱스를 디폴트 값으로 설정함으로써 획득될 수 있는지를 결정하도록 구성될 수 있다. 이에 따라, 오디오 인코더(100)는 산술 인코딩을 위한 컨텍스트가 리셋되는지 여부를 표시하고, 또한 대응하는 디코더에서의 산술 디코딩을 위한 컨텍스트가 리셋되어야 하는지 여부를 표시하는, 리셋 정보(예를 들어, "arith_reset_flag"로 명명됨)를 제공하도록 구성될 수 있다.
비트스트림 포맷 및 적용되는 누적-빈도들-테이블들에 관한 세부사항들은 아래에서 논의될 것이다.
4. 오디오 디코더
다음에서, 본 발명의 일 실시예에 따른 오디오 디코더가 설명될 것이다. 도 2는 이러한 오디오 디코더(200)의 개략적인 블록 다이어그램을 도시한다.
오디오 디코더(200)는 비트스트림(210)을 수신하도록 구성되며, 비트스트림(210)은 인코딩된 오디오 정보를 나타내며 오디오 인코더(100)에 의해 제공되는 비트스트림(112)과 동일하다. 오디오 디코더(200)는 비트스트림(210)에 기초하여 디코딩된 오디오 정보(212)를 제공한다.
오디오 디코더(200)는 선택적인 비트스트림 페이로드 디-포매터(de-formatter)(220)를 포함하며, 상기 디-포매터(220)는 비트스트림(210)을 수신하고 비트스트림(210)으로부터 인코딩된 주파수-도메인 오디오 표현(222)을 추출하도록 구성된다. 예를 들어, 비트스트림 페이로드 디-포매터(220)는 비트스트림(210)으로부터, 예를 들어, 스펙트럼 값 a의 최상위 비트-플레인 값 m을 나타내는 산술 코드워드 "acod_m[pki][m]" 및 주파수-도메인 오디오 표현의 스펙트럼 값 a의 더-하위 비트-플레인의 컨텐트를 나타내는 코드워드 "acod_r"과 같은 산술적으로-코딩된 스펙트럼 데이터를 추출하도록 구성될 수 있다. 그리하여, 인코딩된 주파수-도메인 오디오 표현(222)은 스펙트럼 값들의 산술적으로-인코딩된 표현을 구성한다(또는 포함한다). 비트스트림 페이로드 디-포매터(220)는 비트스트림으로부터, 도 2에 도시되지 않은, 추가적인 제어 정보를 추출하도록 추가적으로 구성된다. 추가적으로, 비트스트림 페이로드 디-포매터는 선택적으로 비트스트림(210)으로부터 상태 리셋 정보(224)를 추출하도록 구성되며, 상태 리셋 정보(224)는 또한 산술 리셋 플래그(flag) 또는 "arith_reset_flag"로서 지정된다.
오디오 디코더(200)는 산술 디코더(230)를 포함하며, 산술 디코더(230)는 또한 "스펙트럼 무잡음 디코더"로서 지정된다. 산술 디코더(230)는 인코딩된 주파수-도메인 오디오 표현(220) 및, 선택적으로, 상태 리셋 정보(224)를 수신하도록 구성된다. 산술 디코더(230)는 또한 디코딩된 주파수-도메인 오디오 표현(232)을 제공하도록 구성되며, 디코딩된 주파수-도메인 오디오 표현(232)은 스펙트럼 값들의 디코딩된 표현을 포함할 수 있다. 예를 들어, 디코딩된 주파수-도메인 오디오 표현(232)은, 인코딩된 주파수-도메인 오디오 표현(220)에 의해 기술되는, 스펙트럼 값들의 디코딩된 표현을 포함할 수 있다.
오디오 디코더(200)는 또한 선택적인 역 양자화기/리스케일러(inverse quantizer/rescaler)(240)를 포함하며, 역 양자화기/리스케일러(240)는 디코딩된 주파수-도메인 오디오 표현(232)을 수신하고, 이에 기반하여, 역-양자화되고 리스케일링된 주파수-도메인 오디오 표현(242)을 제공하도록 구성된다.
오디오 디코더(200)는 선택적인 스펙트럼 프리-프로세서(250)를 더 포함하며, 스펙트럼 프리-프로세서(250)는 역-양자화되고 리스케일링된 주파수-도메인 오디오 표현(242)을 수신하고, 이에 기반하여, 역-양자화되고 리스케일링된 주파수-도메인 오디오 표현(242)의 사전처리된 버전(252)을 제공하도록 구성된다. 오디오 디코더(200)는 또한 주파수-도메인 대 시간-도메인 신호 변환기(260)를 포함하며, 상기 신호 변환기(260)는 또한 "신호 컨버터"로서 지정된다. 상기 신호 변환기(260)는 역-양자화되고 리스케일링된 주파수-도메인 오디오 표현(242)의 사전처리된 버전(252)(또는 역-양자화되고 리스케일링된 주파수-도메인 오디오 표현(242) 또는 디코딩된 주파수-도메인 오디오 표현(232))을 수신하고, 이에 기반하여, 오디오 정보의 시간-도메인 표현(262)을 제공하도록 구성된다. 주파수-도메인 대 시간-도메인 신호 변환기(260)는, 예를 들어, (예컨대, 오버랩_및_추가(overlap_and_add)와 같은 다른 보조 기능들뿐만 아니라) 역-수정된-이산-코사인 변환(IMDCT) 및 적절한 윈도잉을 수행하기 위한 변환기를 포함할 수 있다.
오디오 디코더(200)는 선택적인 시간-도메인 포스트-프로세서(270)를 더 포함할 수 있으며, 시간-도메인 포스트-프로세서(270)는 오디오 정보의 시간-도메인 표현(262)을 수신하고 시간-도메인 포스트-프로세싱을 이용하여 디코딩된 오디오 정보(212)를 획득하도록 구성된다. 그러나, 포스트-프로세싱이 생략된다면, 시간-도메인 표현(262)은 디코딩된 오디오 정보(212)와 동일할 수 있다.
역 양자화기/리스케일러(240), 스펙트럼 프리-프로세서(250), 주파수-도메인 대 시간-도메인 신호 변환기(260) 및 시간-도메인 포스트-프로세서(260)는 제어 정보에 의존하여 제어될 수 있으며, 상기 제어 정보는 비트스트림 페이로드 디포매터(220)에 의해 비트스트림(210)으로부터 추출된다는 것을 유의하도록 한다.
오디오 디코더(200)의 전체 기능을 요약하기 위해, 디코딩된 주파수-도메인 오디오 표현(232), 예를 들어, 인코딩된 오디오 정보의 오디오 프레임과 연관되는 스펙트럼 값들의 세트는 산술 디코더(230)를 사용하여 인코딩된 주파수-도메인 표현(222)에 기초하여 획득될 수 있다. 후속적으로, MDCT 계수들일 수 있는, 예를 들어, 1024개의 스펙트럼 값들의 세트는 역 양자화되고, 리스케일링되고, 사전처리된다. 이에 따라, 역-양자화되고, 리스케일링되고, 스펙트럼적으로 사전처리된 스펙트럼 값들의 세트(예를 들어, 1024개의 MDCT 계수들)가 획득된다. 그 후에, 오디오 프레임의 시간-도메인 표현은 역-양자화되고, 리스케일링되고, 스펙트럼적으로 사전처리된 주파수-도메인 값들의 세트(예를 들어, MDCT 계수들)로부터 유도된다. 이에 따라, 오디오 프레임의 시간-도메인 표현이 획득된다. 주어진 오디오 프레임의 시간-도메인 표현은 이전의 그리고/또는 후속적인 오디오 프레임들의 시간-도메인 표현들과 결합될 수 있다. 예를 들어, 인접한 오디오 프레임들의 시간-도메인 표현들 간의 트랜지션(transition)들을 평활화(smoothen)하기 위해서 그리고 어라이어싱(aliasing) 소거를 획득하기 위해서 후속적인 오디오 프레임들의 시간-도메인 표현들 간의 오버랩_및_추가가 수행될 수 있다. 디코딩된 시간-주파수 도메인 오디오 표현(232)에 기초하는 디코딩된 오디오 정보(212)의 재구성에 관한 세부사항들에 대하여, 예를 들어, 국제 표준 ISO/IEC 14496-3, 파트 3, 서브-파트 4에 대한 참조가 이루어지며, 상기 표준에서 상세한 논의가 제시된다. 그러나, 다른 더 많은 정교한 오버래핑 및 어라이어싱-소거 방식들이 이용될 수 있다.
다음에서, 산술 디코더(230)에 관한 몇몇 세부사항들이 설명될 것이다. 산술 디코더(230)는 최상위 비트-플레인 결정기(284)를 포함하며, 최상위 비트-플레인 결정기(284)는 최상위 비트-플레인 값 m을 기술하는 산술 코드워드 acod_m [pki][m]을 수신하도록 구성된다. 최상위 비트-플레인 결정기(284)는 산술 코드워드 "acod_m [pki][m]"으로부터 최상위 비트-플레인 값 m을 유도하기 위해 다수의 64개의 누적-빈도들-테이블들을 포함하는 세트 중에서 누적-빈도들-테이블을 사용하도록 구성될 수 있다.
최상위 비트-플레인 결정기(284)는 코드워드 acod_m에 기초하여 스펙트럼 값들의 최상위 비트-플레인의 값들(286)을 유도하도록 구성된다. 산술 디코더(230)는 더-하위 비트-플레인 결정기(288)를 더 포함하며, 더-하위 비트-플레인 결정기(288)는 스펙트럼 값의 하나 이상의 더-하위 비트-플레인들을 나타내는 하나 이상의 코드워드들 "acod_r"을 수신하도록 구성된다. 이에 따라, 더-하위 비트-플레인 결정기(288)는 하나 이상의 더-하위 비트-플레인들의 디코딩된 값들(290)을 제공하도록 구성된다. 산술 디코더(230)는 또한 비트-플레인 결합기(combiner)(292)를 포함하며, 비트-플레인 결합기(292)는 더-하위 비트-플레인들이 현재 스펙트럼 값들에 대하여 이용가능하다면 스펙트럼 값들의 최상위 비트-플레인의 디코딩된 값들(286) 및 스펙트럼 값들의 하나 이상의 더-하위 비트-플레인들의 디코딩된 값들(290)을 수신하도록 구성된다. 이에 따라, 비트-플레인 결합기(292)는, 디코딩된 주파수-도메인 오디오 표현(232)의 일부인, 디코딩된 스펙트럼 값들을 제공한다. 자연스럽게, 산술 디코더(230)는 전형적으로 오디오 컨텐트의 현재 프레임과 연관되는 디코딩된 스펙트럼 값들의 풀(full) 세트를 획득하기 위하여 다수의 스펙트럼 값들을 제공하도록 구성된다.
산술 디코더(230)는 누적-빈도들-테이블 선택기(296)를 더 포함하며, 누적-빈도들-테이블 선택기(296)는 산술 디코더의 상태를 기술하는 상태 인덱스(298)에 의존하여 64개의 누적-빈도들-테이블들 중 하나를 선택하도록 구성된다. 산술 디코더(230)는 상태 트래커(299)를 더 포함하며, 상태 트래커(299)는 이전에-디코딩된 스펙트럼 값들에 의존하여 산술 디코더의 상태를 트래킹하도록 구성된다. 상태 정보는 선택적으로 상태 리셋 정보(224)에 응답하여 디폴트 상태 정보로 리셋될 수 있다. 이에 따라, 누적-빈도들-테이블 선택기(296)는 코드워드 "acod_m"에 의존하여 최상위 비트-플레인 값 m의 디코딩으로의 적용을 위해 선택된 누적-빈도들-테이블의 인덱스(예를 들어, pki) 또는 선택된 누적-빈도들-테이블 자체를 제공하도록 구성된다.
오디오 디코더(200)의 기능을 요약하기 위해, 오디오 디코더(200)는 비트레이트-효율적으로-인코딩된 주파수-도메인 오디오 표현(222)을 수신하고, 이에 기반하여 디코딩된 주파수-도메인 오디오 표현을 획득하도록 구성된다. 인코딩된 주파수-도메인 오디오 표현(222)에 기초하여 디코딩된 주파수-도메인 오디오 표현(232)을 획득하기 위해 사용되는, 산술 디코더(230)에서, 인접한 스펙트럼 값들의 최상위 비트-플레인의 값들의 상이한 조합들의 확률은, 누적-빈도들-테이블을 적용하도록 구성되는, 산술 디코더(230)를 사용함으로써 이용된다. 다시 말하면, 스펙트럼 값들 간의 통계적 의존성들은, 이전에-계산된 디코딩된 스펙트럼 값들을 관찰함으로써 획득되는, 상태 인덱스(298)에 의존하여 64개의 상이한 누적-빈도들-테이블들을 포함하는 세트로부터 상이한 누적-빈도들-테이블들을 선택함으로써 이용된다.
5. 스펙트럼 무잡음 코딩의 툴(tool)을 통한 개관
다음에서, 예를 들어, 산술 인코더(170) 및 산술 디코더(230)에 의해 수행되는, 인코딩 및 디코딩 알고리즘에 관한 세부사항들이 설명될 것이다.
디코딩 알고리즘의 기술에 초점이 맞추어진다. 그러나, 대응하는 는 인코딩 알고리즘이 디코딩 알고리즘의 내용에 따라 수행될 수 있으며, 여기에서 매핑들이 반대로 이루어진다는 것을 유의하도록 한다.
다음에서 논의될, 디코딩은 전형적으로 포스트-프로세싱되고, 스케일링되고, 양자화된 스펙트럼 값들의 소위 "스펙트럼 무잡음 코딩"을 허용하기 위하여 이용된다는 것을 유의하도록 한다. 스펙트럼 무잡음 코딩은, 예를 들어, 에너지-압축 시간-도메인 대 주파수-도메인 변환기에 의해 획득되는, 양자화된 스펙트럼의 리던던시(redundancy)를 추가적으로 감소시키기 위해 오디오 인코딩/디코딩 개념에서 이용된다.
본 발명의 실시예들에서 이용되는, 스펙트럼 무잡음 코딩 방식은 동적으로-적응되는 컨텍스트와 협력하는 산술 코딩에 기반한다. 무잡음 코딩은 양자화된 스펙트럼 값들(의 원래의(original) 또는 인코딩된 표현들)에 의해 제공되며, 예를 들어, 다수의 이전에-디코딩된 이웃 스펙트럼 값들로부터 유도되는 컨텍스트-종속적인 누적-빈도들-테이블들을 사용한다. 여기에서, 시간 및 주파수 모두에서 이웃은 도 4에 도시된 바와 같이 고려된다. 그 다음에 (아래에서 설명될) 누적-빈도들-테이블들은 가변-길이 이진 코드를 생성하기 위해 산술 코더에 의해 사용되고 가변-길이 이진 코드로부터 디코딩된 값들을 유도하기 위해 산술 디코더에 의해 사용된다.
예를 들어, 산술 코더(170)는 각각의 확률들에 의존하여 심볼들의 주어진 세트에 대한 이진 코드를 발생시킨다. 이진 코드는, 상기 심볼들의 세트가 있는, 확률 구간을 코드워드로 매핑시킴으로써 생성된다.
다음에서, 스펙트럼 무잡음 코딩의 툴의 다른 짧은 개관이 제시될 것이다. 스펙트럼 무잡음 코딩은 양자화된 스펙트럼의 리던던시를 추가적으로 감소시키기 위해 이용된다. 스펙트럼 무잡음 코딩 방식은 동적으로 적응되는 컨텍스트와 협력하는 산술 코딩에 기반한다. 무잡음 코딩은 양자화된 스펙트럼 값들에 의해 제공되며, 예를 들어, 7개의 이전에-디코딩된 이웃 스펙트럼 값들로부터 유도되는 컨텍스트 종속적인 누적-빈도들-테이블들을 사용한다.
여기에서, 시간 및 주파수 모두에서 이웃은 도 4에 도시된 바와 같이 고려된다. 그 다음에 누적-빈도들-테이블들은 가변 길이 이진 코드를 생성하기 위해 산술 코더에 의해 사용된다.
산술 코더는 심볼들의 주어진 세트에 대한 이진 코드 및 이들의 각각의 확률들을 발생시킨다. 이진 코드는, 상기 심볼들의 세트가 있는, 확률 구간을 코드워드로 매핑시킴으로써 생성된다.
6. 디코딩 프로세스
6.1 디코딩 프로세스 개관
다음에서, 도 3과 관련하여 스펙트럼 값을 디코딩하는 프로세스의 개관이 제시될 것이며, 도 3은 다수의 스펙트럼 값들을 디코딩하는 프로세스의 의사(pseudo)-프로그램 코드 표현을 도시한다.
다수의 스펙트럼 값들을 디코딩하는 프로세스는 컨텍스트의 초기화(310)를 포함한다. 컨텍스트의 초기화(310)는 함수 "arith_map_context(lg)"를 사용하여 이전 컨텍스트로부터 현재 컨텍스트의 유도를 포함한다. 이전 컨텍스트로부터 현재 컨텍스트의 유도는 컨텍스트의 리셋을 포함할 수 있다. 컨텍스트의 리셋 및 이전 컨텍스트로부터 현재 컨텍스트의 유도 모두는 아래에서 논의될 것이다.
다수의 스펙트럼 값들의 디코딩은 또한 스펙트럼 값 디코딩(312) 및 컨텍스트 업데이트(314)의 반복을 포함하며, 컨텍스트 업데이트는 아래에서 설명되는 함수 "Arith_update_context(a,i,lg)"에 의해 수행된다. 스펙트럼 값 디코딩(312) 및 컨텍스트 업데이트(314)는 lg번 반복되고, 여기에서 lg는 (예를 들어, 오디오 프레임에 대하여) 디코딩될 스펙트럼 값들의 개수를 표시한다. 스펙트럼 값 디코딩(312)은 컨텍스트-값 계산(312a), 최상위 비트-플레인 디코딩(312b) 및 더-하위 비트-플레인 추가(312c)를 포함한다.
상태 값 계산(312a)은 함수가 제 1 상태 값 s를 리턴하는 함수 "arith_get_context(i,lg,arith_reset_flag,N/2)"를 사용하는 제 1 상태 값 s의 계산을 포함한다. 상태 값 계산(312a)은 또한 레벨 값 "lev0" 및 레벨 값 "lev"의 계산을 포함하며, 레벨 값들 "lev0" 및 "lev"는 제 1 상태 값 s를 24 비트만큼 우측으로 시프팅함으로써 획득된다. 상태 값 계산(312a)는 또한 참조번호 312a에서 도 3에 도시된 공식에 따른 제 2 상태 값 t의 계산을 포함한다.
최상위 비트-플레인 디코딩(312b)은 디코딩 알고리즘(312ba)의 반복 실행을 포함하며, 상기 알고리즘(312ba)의 제 1 실행 이전에 변수 j는 0으로 초기화된다.
알고리즘(312ba)은, 아래에서 논의되는, 함수 "arith_get_pk()"를 사용하여, 제 2 상태 값 t에 의존하는 또한 레벨 값들 "lev" 및 lev0에 의존하는 (또한 누적-빈도들-테이블 인덱스로서 서빙되는) 상태 인덱스 "pki"의 계산을 포함한다. 알고리즘(312ba)은 또한 상태 인덱스 pki에 의존하는 누적-빈도들-테이블의 선택을 포함하며, 변수 "cum_freq"는 상태 인덱스 pki에 의존하여 64개의 누적-빈도들-테이블들 중에서 하나의 시작 어드레스로 설정될 수 있다. 또한, 변수 "cfl"은 선택된 누적-빈도들-테이블의 길이로 초기화될 수 있으며, 상기 길이는, 예를 들어, 알파벳에서의 심볼들의 수, 즉, 디코딩될 수 있는 상이한 값들의 수와 동일하다. 8개의 상이한 최상위 비트-플레인 값들 및 이스케이프 심볼이 디코딩될 수 있기 때문에, 최상위 비트-플레인 값 m의 디코딩을 위해 이용가능한 "arith_cf_m[pki=0][9]"로부터 "arith_cf_m[pki=63][9]"의 모든 누적-빈도들-테이블들의 길이들은 9이다. 후속적으로, (변수 "cum_freq" 및 변수 "cfl"에 의해 기술되는) 선택된 누적-빈도들-테이블을 고려하여, 최상위 비트-플레인 값 m은 함수 "arith_decode()"를 실행함으로써 획득될 수 있다. 최상위 비트-플레인 값 m을 유도할 때, 비트스트림(210)의 "acod_m"으로 명명된 비트들이 평가될 수 있다(예를 들어, 도 6g를 볼 것).
알고리즘(312ba)은 또한 최상위 비트-플레인 값 m이 이스케이프 심볼 "ARITH_ESCAPE"와 동일한지 여부를 체크하는 과정을 포함한다. 최상위 비트-플레인 값 m이 상기 산술 이스케이프 심볼과 동일하지 않다면, 알고리즘(312ba)은 중단(abort)되고("브레이크"-조건) 그러므로 알고리즘(312ba)의 나머지 명령들은 스킵(skip)된다. 이에 따라, 스펙트럼 값 a를 최상위 비트-플레인 값 m과 동일하게 하는 설정(명령 "a=m")을 통해 프로세스의 실행이 계속된다. 대조적으로, 디코딩된 최상위 비트-플레인 값 m이 상기 산술 이스케이프 심볼 "ARITH_ESCAPE"와 동일하다면, 레벨 값 "lev"가 1만큼 증가된다. 언급된 바와 같이, 그 다음에 알고리즘(312ba)은 디코딩된 최상위 비트-플레인 값 m이 산술 이스케이프 심볼과 상이할 때까지 반복된다.
최상위 비트-플레인 디코딩이 완료되자마자, 즉, 산술 이스케이프 심볼과 상이한 최상위 비트-플레인 값 m이 디코딩되자마자, 스펙트럼 값 변수 "a"는 최상위 비트-플레인 값 m과 동일하게 설정된다. 후속적으로, 예를 들어, 도 3의 참조 번호(312c)에 도시된 바와 같이 더-하위 비트-플레인들이 획득된다. 스펙트럼 값의 각각의 더-하위 비트-플레인에 대하여 2개의 이진 값들 중 하나가 디코딩된다. 예를 들어, 더-하위 비트-플레인 값 r이 획득된다. 후속적으로, 스펙트럼 값 변수 "a"는 스펙트럼 값 변수 "a"의 컨텐트를 1비트만큼 좌측으로 시프팅함으로써 그리고 최하위 비트로서 현재-디코딩된 더-하위 비트-플레인 값 r을 추가함으로써 업데이트된다. 그러나, 더-하위 비트-플레인들의 값들을 획득하기 위한 개념이 본 발명에 대한 특정한 관련성을 갖지는 않는다는 것을 유의하도록 한다. 몇몇 실시예들에서, 임의의 더-하위 비트-플레인들의 디코딩은 심지어 생략될 수도 있다. 대안적으로, 이러한 목적을 위해 상이한 디코딩 알고리즘들이 이용될 수 있다.
6.2 도 4에 따른 디코딩 순서
다음에서, 스펙트럼 값들의 디코딩 순서(order)가 설명될 것이다.
스펙트럼 계수들은 무잡음 코딩되고 가장 낮은-주파수 계수로부터 시작하여 가장 높은-주파수 계수로 진행하여 (예를 들어, 비트스트림으로) 전송된다. (예를 들어, ISO/IEC 14496, 파트 3, 서브파트 4에서 논의된 바와 같은, 수정된-이산-코사인-변환을 이용하여 획득되는) 진보된 오디오 코딩으로부터의 계수들은 "x_ac_quant[g][win][sfb][bin]"으로 호칭되는 어레이(array)에 저장되며, 무잡음-코딩-코드워드(예를 들어, acod_m, acod_r)의 전송 순서는 이들이 상기 어레이에서 수신되고 저장되는 순서로 디코딩될 때, "bin"(주파수 인덱스)이 가장 급격하게 증가하는 인덱스이고 "g"가 가장 느리게 증가하는 인덱스이도록 이루어진다.
더 낮은 주파수와 연관되는 스펙트럼 계수들은 더 높은 주파수와 연관되는 스펙트럼 계수들 이전에 인코딩된다.
변환-코딩-여기(tcx: transform-coded-excitation)로부터의 계수들은 어레이 x_tcx_invquant[win][bin]에 직접 저장되고, 무잡음 코딩 코드워드들의 전송 순서는 이들이 상기 어레이에서 수신되고 저장되는 순서로 디코딩될 때, "bin"이 가장 급격하게 증가하는 인덱스이고 "win"가 가장 느리게 증가하는 인덱스이도록 이루어진다. 다시 말하면, 스펙트럼 값들이 스피치 코더의 선형-예측 필터의 변환-코딩-여기를 기술하는 경우에, 스펙트럼 값들 a는 변환-코딩-여기의 인접한 그리고 증가하는 주파수들에 연관된다.
더 낮은 주파수와 연관되는 스펙트럼 계수들은 더 높은 주파수와 연관되는 스펙트럼 계수들 이전에 인코딩된다.
특히, 오디오 디코더(200)는, 산술 디코더(230)에 의해 제공되는, 디코딩된 주파수-도메인 오디오 표현(232)을 주파수-도메인 대 시간-도메인 신호 변환을 이용하는 시간-도메인 오디오 신호 표현의 "직접(direct)" 생성 및 주파수-도메인 대 시간-도메인 디코더 및 주파수-도메인 대 시간-도메인 신호 변환기의 출력에 의해 여기되는 선형-예측 필터 모두를 사용하는 오디오 신호 표현의 "간접(indirect)" 제공 모두에 대하여 적용하도록 구성될 수 있다.
다시 말하면, 여기에서 그 기능이 상세하게 논의되는, 산술 디코더(200)는 주파수-도메인에서 인코딩되는 오디오 컨텐트의 시간-주파수-도메인 표현의 스펙트럼 값들을 디코딩하기 위해 그리고 선형-예측-도메인에서 인코딩되는 스피치 신호를 디코딩하도록 적응되는 선형-예측-필터에 대한 자극(stimulus) 신호의 시간-주파수-도메인 표현의 제공을 위해 적합하다. 그리하여, 상기 산술 디코더는 주파수-도메인-인코딩된 오디오 컨텐트 및 선형-예측-주파수-도메인-인코딩된 오디오 컨텐트(변환-코딩-여기 선형 예측 도메인 모드) 모두를 처리할 수 있는 오디오 디코더에서 사용하기에 적합하다.
6.3 도 5a 및 5b에 따른 컨텍스트 초기화
다음에서, 단계 310에서 수행되는, (또한 "컨텍스트 매핑"으로도 지정되는) 컨텍스트 초기화가 설명될 것이다.
컨텍스트 초기화는 도 5a에 도시된, 알고리즘 "arith_map_context()"에 따른 과거 컨텍스트 및 현재 컨텍스트 간의 매핑을 포함한다. 보여질 수 있는 바와 같이, 현재 컨텍스트는 2의 제 1 차원(dimension) 및 n_context의 제 2 차원을 가지는 어레이의 형태를 취하는 글로벌 변수 q[2][n_context]에 저장된다. 과거 컨텍스트는 n_context의 차원을 가지는 테이블의 형태를 취하는 변수 qs[n_context]에 저장된다. 변수 "previous_lg"는 과거 컨텍스트의 스펙트럼 값들의 개수를 기술한다.
변수 "lg"는 프레임에서 디코딩할 스펙트럼 계수들의 개수를 기술한다. 변수 "previous_lg"는 이전 프레임의 스펙트럼 라인들의 이전 개수를 기술한다.
컨텍스트의 매핑은 알고리즘 "arith_map_context()"에 따라 수행된다. 여기에서, 현재 (예를 들어, 주파수-도메인-인코딩된) 오디오 프레임과 연관되는 스펙트럼 값들의 개수가 i=0 내지 i=lg-1 동안 이전 오디오 프레임과 연관되는 스펙트럼 값들의 개수와 동일하다면, 함수 "arith_map_context()"는 현재 컨텍스트 어레이 q의 엔트리들 q[0][i]를 과거 컨텍스트 어레이 qs의 값들 qs[i]로 설정한다는 것을 유의하도록 한다.
그러나, 현재 오디오 프레임과 연관되는 스펙트럼 값들의 개수가 이전 오디오 프레임에 연관되는 스펙트럼 값들의 개수와 상이하다면 보다 복잡한 매핑이 수행된다. 그러나, 이러한 경우에서의 매핑에 관한 세부사항들은 본 발명의 핵심(key) 아이디어에 대하여 특히 관련성이 있지는 않으며, 그 결과 세부사항들에 대하여 도 5a의 의사 프로그램 코드에 대한 참조가 이루어진다.
6.4 도 5b 및 5c에 따른 상태 값 계산
다음에서, 상태 값 계산(312a)이 보다 상세하게 설명될 것이다.
(도 3에 도시되는 바와 같은) 제 1 상태 값 s는 함수 "arith_get_context(i,lg,arith_reset_flag,N/2)"의 리턴 값으로서 획득될 수 있다는 것을 유의해야 할 것이며, 상기 함수의 의사 프로그램 코드 표현은 도 5b 및 5c에 도시된다.
상태 값의 계산과 관련하여, 또한 도 4에 대한 참조가 이루어지며, 도 4는 상태 평가를 위해 사용되는 컨텍스트를 도시한다. 도 4는 시간 및 주파수 모두에 걸친 스펙트럼 값들의 2-차원 표현을 도시한다. 가로좌표(410)는 시간을 기술하며, 세로좌표(412)는 주파수를 기술한다. 도 4에서 보여질 수 있는 바와 같이, 디코딩할 스펙트럼 값(420)은 시간 인덱스 t0 및 주파수 인덱스 i와 연관된다. 보여질 수 있는 바와 같이, 시간 인덱스 t0에 대하여, 주파수 인덱스들 i-1, i-2 및 i-3을 가지는 튜플(tuple)들은 주파수 인덱스 i를 가지는 스펙트럼 값(420)이 디코딩되는 시점에 이미 디코딩된다. 도 4로부터 보여질 수 있는 바와 같이, 시간 인덱스 t0 및 주파수 인덱스 i-1을 가지는 스펙트럼 값(430)은 스펙트럼 값(420)이 디코딩되기 전에 이미 디코딩되며, 스펙트럼 값(430)은 스펙트럼 값(420)의 디코딩을 위해 사용되는 컨텍스트에 대하여 고려된다. 유사하게, 시간 인덱스 t0 및 주파수 인덱스 i-2를 가지는 스펙트럼 값(434)은 스펙트럼 값(420)이 디코딩되기 전에 이미 디코딩되며, 스펙트럼 값(434)은 스펙트럼 값(420)의 디코딩을 위해 사용되는 컨텍스트에 대하여 고려된다. 유사하게, 시간 인덱스 t-1 및 주파수 인덱스 i-2를 가지는 스펙트럼 값(440), 시간 인덱스 t-1 및 주파수 인덱스 i-1을 가지는 스펙트럼 값(444), 시간 인덱스 t-1 및 주파수 인덱스 i를 가지는 스펙트럼 값(448), 시간 인덱스 t-1 및 주파수 인덱스 i+1을 가지는 스펙트럼 값(452) 및 시간 인덱스 t-1 및 주파수 인덱스 i+2를 가지는 스펙트럼 값(456)은 스펙트럼 값(420)이 디코딩되기 전에 이미 디코딩되며, 스펙트럼 값(420)의 디코딩을 위해 사용되는, 컨텍스트의 결정을 위해 고려된다. 스펙트럼 값(420)이 디코딩되는 시점에 이미 디코딩되고 컨텍스트에 대하여 고려되는 스펙트럼 값들(계수들)은 그늘진 정사각형들에 의해 도시된다. 대조적으로, 점선(dash line)들을 갖는 정사각형들에 의해 표현되는, (스펙트럼 값(420)이 디코딩되는 시점에) 이미 디코딩된 몇몇 다른 스펙트럼 값들, 및 점선들을 갖는 원들에 의해 도시되고 (스펙트럼 값(420)이 디코딩되는 시점에) 아직 디코딩되지 않은, 다른 스펙트럼 값들은 스펙트럼 값(420)을 디코딩하기 위한 컨텍스트를 결정하는데 사용되지 않는다.
그러나, 스펙트럼 값(420)의 디코딩을 위한 컨텍스트의 "통상적(regular)"(또는 "정규") 계산을 위해 사용되는 않는, 이러한 스펙트럼 값들 중 몇몇은, 그럼에도 불구하고, 스펙트럼 값들의 크기들과 관련하여 미리 결정된 조건을, 개별적으로 또는 함께 취해져서, 충족하는 다수의 이전에-디코딩된 인접한 스펙트럼 값들의 그룹을 검출을 위해 평가될 수 있다는 것을 유의해야 할 것이다.
이제 의사 프로그램 코드의 형태로 함수 "arith_get_context()"의 기능을 도시하는 도 5b 및 5c를 참조하면, 함수 "arith_get_context()"에 의해 수행되는, 제 1 컨텍스트 값 "s"의 계산과 관련하여 몇몇 더 많은 세부사항들이 설명될 것이다.
함수 "arith_get_context()"는 입력 변수들로서 디코딩할 스펙트럼 값의 인덱스 i를 수신한다는 것을 유의하도록 한다. 인덱스 i는 전형적으로 주파수 인덱스이다. 입력 변수 lg는 (현재 오디오 프레임에 대하여) 예상되는 양자화된 계수들의 (전체) 개수를 기술한다. 변수 N은 변환의 라인들의 수를 기술한다. 플래그 "arith_reset_flag"는 컨텍스트가 리셋되어야 하는지 여부를 표시한다. 함수 "arith_get_context"는 출력 값으로서 변수 "t"를 제공하며, 변수 "t"는 연접된(concatenated) 상태 인덱스 s 및 예측된 비트-플레인 레벨 lev0을 나타낸다.
함수 "arith_get_context()"는 정수 변수들 a0, c0, c1, c2, c3, c4, c5, c6, lev0 및 "region"을 사용한다.
함수 "arith_get_context()"는 주요 기능 블록들로서 제 1 산술 리셋 프로세싱(510), 다수의 이전에-디코딩된 인접한 제로(zero) 스펙트럼 값들의 그룹의 검출(512), 제 1 가변 설정(514), 제 2 가변 설정(516), 레벨 적응(518), 영역 값 설정(520), 레벨 적응(522), 레벨 제한(524), 산술 리셋 프로세싱(526), 제 3 가변 설정(528), 제 4 가변 설정(530), 제 5 가변 설정(532), 레벨 적응(534) 및 선택적 리턴 값 계산(536)을 포함한다.
제 1 산술 리셋 프로세싱(510)에서, 디코딩할 스펙트럼 값의 인덱스가 0과 동일한 동안, 산술 리셋 플래그 "arith_reset_flag"가 설정되는지 여부가 체크된다. 이러한 경우에, 0의 컨텍스트 값이 리턴되고, 상기 함수는 중단된다.
산술 리셋 플래그가 비활성(inactive)되고 디코딩할 스펙트럼 값의 인덱스 i가 0과 상이한 경우에만 수행되는, 다수의 이전에-디코딩된 제로 스펙트럼 값들의 그룹의 검출(512)에서, 참조 번호(512a)에서 도시되는 바와 같이, "flag"로 명명된 변수는 1로 초기화되며, 참조 번호(512b)에서 도시되는 바와 같이, 평가될 스펙트럼 값의 영역이 결정된다. 후속적으로, 참조 번호(512b)에서 도시되는 바와 같이 결정되는, 스펙트럼 값들의 영역은 참조 번호(512c)에서 도시되는 바와 같이 평가된다. 이전에-디코딩된 제로 스펙트럼 값들의 충분히 영역이 존재한다고 알려지면, 참조 번호(512d)에서 도시되는 바와 같이, 1의 컨텍스트 값이 리턴된다. 예를 들어, 참조 번호(512b)에 도시된 바와 같이, 디코딩될 스펙트럼 값의 인덱스 i가 최대 주파수 인덱스 lg-1에 근접하지 않는다면, 상위 주파수 인덱스 경계 "lim_max"는 i+6으로 설정되며, 디코딩될 스펙트럼 값의 인덱스 i가 최대 주파수 인덱스 lg-1에 근접하는 경우에는 상위 주파수 인덱스 경계의 특별한 설정이 이루어진다. 또한, 참조 번호(512b)에서 도시된 바와 같이, 디코딩할 스펙트럼 값의 인덱스 i가 0에 근접(i+lim_min<0)하지 않는다면, 하위 주파수 인덱스 경계 "lim_min"은 -5로 설정되며, 디코딩할 스펙트럼 값의 인덱스 i가 0에 근접하는 경우에는 하위 주파수 인덱스 경계 lim_min의 특별한 계산이 수행된다. 단계 512b에서 결정되는 스펙트럼 값들의 영역을 평가할 때, 하위 주파수 인덱스 경계 lim_min 및 0 사이의 네거티브 주파수 인덱스들 k에 대하여 평가가 먼저 수행된다. lim_min 및 0 사이의 주파수 인덱스들 k에 대하여, 컨텍스트 값들 q[0][k].c 및 q[1][k].c 중에서 적어도 하나가 0과 동일한지 여부가 검증된다. 그러나, 컨텍스트 값들 q[0][k].c 및 q[1][k].c 모두가 lim_min 및 0 사이의 임의의 주파수 인덱스들 k에 대하여 0과 상이한 경우에, 제로 스펙트럼 값들의 충분한 그룹이 존재하지 않는다고 결론지어지고 평가(512c)는 중단된다. 후속적으로, 0 및 lim_max 사이의 주파수 인덱스들에 대하여 컨텍스트 값들 q[0][k].c가 평가된다. 0 및 lim_max 사이의 주파수 인덱스들 중 임의의 인덱스에 대하여 컨텍스트 값들 q[0][k].c 중 임의의 컨텍스트 값이 0과 상이하다고 알려지면, 이전에-디코딩된 제로 스펙트럼 값들의 충분한 그룹이 존재하지 않는다고 결론지어지고, 평가(512c)는 중단된다. 그러나, lim_min 및 0 사이의 각각의 주파수 인덱스들 k에 대하여, 0과 동일한 적어도 하나의 컨텍스트 값 q[0][k].c 또는 q[1][k].c가 존재하는 경우에 그리고 0 및 lim_max 사이의 각각의 주파수 인덱스 k에 대하여 제로 컨텍스트 값 q[0][k].c가 존재하는 경우에, 이전에-디코딩된 제로 스펙트럼 값들의 충분한 그룹이 존재한다고 결론지어진다. 이에 따라, 이러한 경우에 임의의 추가적인 계산없이 이러한 조건을 표시하기 위해 1의 컨텍스트 값이 리터된다. 다시 말하면, 0의 값을 갖는 다수의 컨텍스트 값들 q[0][k].c, q[1][k].c의 충분한 그룹이 식별된다면, 계산들(514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536)은 스킵된다. 다시 말하면, 컨텍스트 상태 (s)를 기술하는, 리턴된 컨텍스트 값은 미리 결정된 조건이 충족된다는 검출에 응답하여 이전에 디코딩된 스펙트럼 값들과 독립적으로 결정된다.
그렇지 않으면, 즉, 0인 컨텍스트 값들 q[0][k].c, q[1][k].c의 충분한 그룹이 존재하지 않으면, 계산들(514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536) 중 적어도 일부가 실행된다.
디코딩될 스펙트럼 값의 인덱스 i가 1보다 작은 경우에(그리고 1보다 작은 경우에만) 선택적으로 실행되는, 제 1 가변 설정(514)에서, 변수 a0는 컨텍스트 값 q[1][i-1]을 취하도록 초기화되고, 변수 c0는 변수 a0의 절대값을 취하도록 초기화된다. 변수 "lev0"은 0의 값을 취하도록 초기화된다. 후속적으로, 변수 a0가 상대적으로 큰 절대값, 즉, -4보다 작거나 또는 4와 동일하거나 더 큰 값을 포함하는 경우에 변수들 "lev0" 및 c0는 증가된다. 변수 a0의 값이 우측-시프트(shift-to-the-right) 동작에 의해 -4 내지 3의 범위로 오게될 때까지, 변수들 "lev0" 및 c0의 증가는 반복적으로 수행된다(단계 514b).
후속적으로, 변수들 c0 및 "lev0"은 각각 7 및 3의 최대값들로 제한된다(단계 514c).
디코딩될 스펙트럼 값의 인덱스 i가 1과 동일하고 산술 리셋 플래그("arith_reset_flag")가 활성(active)되면, 단지 변수들 c0 및 lev0에 기초하여 계산되는, 컨텍스트 값이 리턴된다(단계 514d). 이에 따라, 디코딩할 스펙트럼 값과 동일한 시간 인덱스를 가지며 디코딩될 스펙트럼 값의 주파수 인덱스 i보다, 1만큼, 더 작은 주파수 인덱스를 가지는 오직 하나의 이전에-디코딩된 스펙트럼 값이 컨텍스트 계산을 위해 고려된다(단계 514d). 그렇지 않으면, 즉, 산술 리셋 기능이 없으면, 변수 c4는 초기화된다(단계 514e).
결론적으로, 제 1 가변 설정(514)에서, 변수들 c0 및 "lev0"은, 현재 디코딩될 스펙트럼 값과 동일한 프레임에 대하여 디코딩된 그리고 선행하는(preceding) 스펙트럼 빈 i-1에 대한, 이전에-디코딩된 스펙트럼 값에 의존하여 초기화된다. 변수 c4는, (시간 인덱스 t-1을 가지는) 이전 오디오 프레임에 대하여 디코딩된 그리고 현재 디코딩될 스펙트럼 값과 연관되는 주파수보다 (예를 들어, 하나의 주파수 빈(bin)만큼) 더 낮은 주파수를 가지는, 이전에-디코딩된 스펙트럼 값에 의존하여 초기화된다.
현재 디코딩될 스펙트럼 값의 주파수 인덱스가 1보다 큰 경우에(그리고 1보다 작은 경우에만) 선택적으로 실행되는 제 2 가변 설정(516)은, 변수들 c1 및 c6의 초기화 및 변수 lev0의 업데이트를 포함한다. 변수 c1은 현재 오디오 프레임의 이전에-디코딩된 스펙트럼 값과 연관되는 컨텍스트 값 q[1][i-2].c에 의존하여 업데이트되며, 현재 오디오 프레임의 이전에-디코딩된 스펙트럼 값의 주파수는 현재 디코딩될 스펙트럼 값의 주파수보다 (예를 들어, 2개의 주파수 빈들만큼) 더 작다. 유사하게, 변수 c6은 (시간 인덱스 t-1을 갖는) 이전 프레임의 이전에-디코딩된 스펙트럼 값을 기술하는, 컨텍스트 값 q[0][i-2].c에 의존하여 초기화되며, 이전 프레임의 이전에-디코딩된 스펙트럼 값의 연관된 주파수는 현재 디코딩될 스펙트럼 값과 연관되는 주파수보다 (예를 들어, 2개의 주파수 빈들만큼) 더 작다. 추가적으로, 레벨 변수 "lev0"은 현재 프레임의 이전에-디코딩된 스펙트럼 값과 연관되는 레벨 값 q[1][i-2].1으로 설정되며, 현재 프레임의 이전에-디코딩된 스펙트럼 값의 연관된 주파수는, q[1][i-2].1이 lev0보다 큰 경우에, 현재 디코딩될 스펙트럼 값과 연관되는 주파수보다 (예를 들어, 2개의 주파수 빈들만큼) 더 작다.
레벨 적응(518) 및 영역 값 설정(520)은 디코딩될 스펙트럼 값의 인덱스 i가 2보다 큰 경우에(그리고 2보다 큰 경우에만) 선택적으로 실행된다. 레벨 적응(518)에서, 현재 프레임의 이전에-디코딩된 스펙트럼 값에 연관되는 레벨 값 q[1][i-3].1이 레벨 값 lev0보다 큰 경우에, 레벨 변수 "lev0"은 q[1][i-3].1의 값으로 증가되며, 현재 프레임의 이전에-디코딩된 스펙트럼 값의 연관된 주파수는 현재 디코딩될 스펙트럼 값과 연관되는 주파수보다 (예를 들어, 3개의 주파수 빈들만큼) 더 작다.
영역 값 설정(520)에서, 변수 "region"은 다수의 스펙트럼 영역들 중에서 어떤 스펙트럼 영역에 현재 디코딩될 스펙트럼 값이 배치되는지의, 평가에 의존하여 설정된다. 예를 들어, 현재 디코딩될 스펙트럼 값이 주파수 빈들의 첫번째(가장 하위) 1/4(0≤i<N/4)에 있는 (주파수 빈 인덱스 i를 가지는) 주파수 빈에 연관된다고 알려지면, 영역 변수 "region"은 0으로 설정된다. 그렇지 않고, 현재 디코딩될 스펙트럼 값이 현재 프레임에 연관되는 주파수 빈들의 2번째 1/4(N/4≤i<N/2)에 있는 주파수 빈에 연관된다면, 영역 변수는 1로 설정된다. 그렇지 않고, 즉, 현재 디코딩될 스펙트럼 값이 주파수 빈들의 제 2 (상위) 절반(N/2≤i<N)에 있는 주파수 빈에 연관된다면, 영역 변수는 2로 설정된다. 그리하여, 영역 변수는 현재 디코딩될 스펙트럼 값이 어떤 주파수 영역에 연관되는지의 평가에 의존하여 설정된다. 둘 이상의 주파수 영역들이 구별될 수 있다.
추가적인 레벨 적응(522)은 현재 디코딩될 스펙트럼 값이 3보다 큰 스펙트럼 인덱스를 포함하는 경우에(그리고 3보다 큰 스펙트럼 인덱스를 포함하는 경우에만) 실행된다. 이러한 경우에, 현재 프레임의 이전에-디코딩된 스펙트럼 값에 연관되는 레벨 값 q[i][i-4].1이 현재 레벨 "lev0"보다 큰 경우에 레벨 변수 "lev0"은 증가되며(값 q[i][i-4].1로 설정되며)(단계 522), 현재 프레임의 이전에-디코딩된 스펙트럼 값은 현재 디코딩될 스펙트럼 값에 연관되는 주파수보다, 예를 들어, 4개의 주파수 빈들만큼, 더 작은 주파수에 연관된다. 레벨 변수 "lev0"은 3의 최대값으로 제한된다(단계 524).
산술 리셋 조건이 검출되고 현재 디코딩될 스펙트럼 값이 1보다 크다면, 상태 값은 영역 변수 "region"에 의존할 뿐만 아니라 변수들 c0, c1, lev0에 의존하여 리턴된다(단계 526). 이에 따라, 산술 리셋 조건이 주어지면 임의의 이전 프레임들의 이전에-디코딩된 스펙트럼 값들은 고려로부터 제외된다.
제 3 변수 설정(528)에서, 변수 c2는 (시간 인덱스 t-1을 가지는) 이전 오디오 프레임의 이전에-디코딩된 스펙트럼 값에 연관되는 컨텍스트 값 q[0][i].c로 설정되며, 이전 오디오 프레임의 이전에-디코딩된 스펙트럼 값은 현재 디코딩될 스펙트럼 값과 동일한 주파수에 연관된다.
제 4 변수 설정(530)에서, 현재 디코딩될 스펙트럼 값이 가장 높은 가능한 주파수 인덱스 lg-1과 연관되지 않는다면, 변수 c3은 주파수 인덱스 i+1을 가지는 이전 오디오 프레임의 이전에-디코딩된 스펙트럼 값에 연관되는 컨텍스트 값 q[0][i+1].c로 설정된다.
제 5 변수 설정(532)에서, 현재 디코딩될 스펙트럼 값의 주파수 인덱스 i가 최대 주파수 인덱스 값에 너무 근접한 경우(즉, 주파수 인덱스 값 lg-2 또는 lg-1을 취한 경우)가 아니라면, 변수 c5는 주파수 인덱스 i+2를 가지는 이전 오디오 프레임의 이전에-디코딩된 스펙트럼 값과 연관되는 컨텍스트 값 q[0][i+2].c로 설정된다.
주파수 인덱스 i가 0과 동일하다면(즉, 현재 디코딩될 스펙트럼 값이 가장 하위(lowermost) 스펙트럼 값이라면) 레벨 변수 "lev0"의 추가적인 적응이 수행된다. 이러한 경우에, 변수 c2 또는 c3가, 현재 디코딩될 스펙트럼 값과 연관되는 주파수에 비교할 때, 동일한 주파수 또는 심지어 더 높은 주파수와 연관되는, 이전 오디오 프레임의 이전에-디코딩된 스펙트럼 값이 상대적으로 큰 값을 취한다는 것을 표시하는, 3의 값을 취하는 경우에, 레벨 변수 ""lev0"은 0에서 1로 증가된다.
선택적인 리턴 값 계산(536)에서, 현재 디코딩될 스펙트럼 값들의 인덱스 i가 값 0, 1 또는 더 큰 값을 취하는지 여부에 의존하여 리턴 값이 계산된다. 인덱스 i가 0의 값을 취하는 경우에, 참조 번호(536a)에 표시되는 바와 같이, 리턴 값은 변수들 c2, c3, c5 및 lev0에 의존하여 계산된다. 인덱스 i가 1의 값을 취하는 경우에, 참조 번호(536b)에 도시된 바와 같이, 리턴 값은 변수들 c0, c2, c3, c4, c5 및 "lev0"에 의존하여 계산된다. 인덱스 i가 0 또는 1과 상이한 값을 취하는 경우에, 리턴 값은 변수들 c0, c2, c3, c4, c1, c5, c6, "region" 및 lev0에 의존하여 계산된다(참조 번호(536c)).
전술한 내용을 요약하기 위해, 컨텍스트 값 계산 "arith_get_context()"는 다수의 이전에-디코딩된 제로 스펙트럼 값들(또는 적어도, 충분히 작은 스펙트럼 값들)의 그룹의 검출(512)을 포함한다. 이전에-디코딩된 제로 스펙트럼 값들의 충분한 그룹이 발견되면, 특별한 컨텍스트의 존재가 리턴 값을 1로 설정함으로써 표시된다. 그렇지 않으면, 컨텍스트 값 계산이 수행된다. 컨텍스트 값 계산에서 얼마나 많은 이전에-디코딩된 스펙트럼 값들이 평가되어야 하는지를 결정하기 위하여 인덱스 값 i가 평가된다고 일반적으로 말할 수 있다. 예를 들어, 현재 디코딩될 스펙트럼 값의 주파수 인덱스 i가 하위 경계(예를 들어, 0)에 근접하거나 또는 상위 경계(예를 들어, lg-1)에 근접한 경우에 평가되는 이전에-디코딩된 스펙트럼 값들의 개수는 감소된다. 추가적으로, 현재 디코딩될 스펙트럼 값의 주파수 인덱스 i가 최소 값으로부터 충분히 멀리 떨어져 있더라도, 상이한 스펙트럼 영역들이 영역 값 설정(520)에 의해 구별된다. 이에 따라, 상이한 스펙트럼 영역들(예를 들어, 제 1 낮은 주파수 스펙트럼 영역, 제 2 중간 주파수 스펙트럼 영역 및 제 3 높은 주파수 스펙트럼 영역)의 상이한 통계적 특성들이 고려된다. 리턴 값으로서 계산되는, 컨텍스트 값은 변수 "region"에 종속적이며, 그 결과 리턴된 컨텍스트 값은 현재 디코딩될 스펙트럼 값이 제 1 미리 결정된 주파수 영역 또는 제 2 미리 결정된 주파수 영역(또는 임의의 다른 미리 결정된 주파수 영역) 내에 있는지 여부에 종속적이다.
6.5. 매핑 규칙 선택
다음에서, 코드 값의 심볼 코드로의 매핑을 기술하는, 매칭 규칙, 예를 들어, 누적-빈도들-테이블의 선택이 설명될 것이다. 매핑 규칙의 선택은, 상태 값 s 또는 t에 의해 기술되는, 컨텍스트 상태에 의존하여 이루어진다.
6.5.1 도 5d에 따른 알고리즘을 이용한 매핑 규칙 선택
다음에서, 도 5d에 따른 함수 "get_pk"를 이용한 매칭 규칙의 선택이 설명될 것이다. 함수 "get_pk"는 도 3의 알고리즘의 서브-알고리즘(312ba)에 있는 "pki"의 값을 획득하기 위해 수행될 수 있다는 것을 유의하도록 한다. 그리하여, 함수 "get_pk"는 도 3의 알고리즘에 있는 함수 "arith_get_pk"를 대신할 수 있다.
또한 도 5d에 따른 함수 "get_pk"는 도 17a 및 17b에 따른 테이블 "ari_s_hash[387]" 및 도 18에 따른 테이블 "ari_gs_hash[225]"를 평가할 수 있다는 것을 유의하도록 한다.
함수 "get_pk"는 입력 변수로서 상태 값 s를 수신하며, 상태 값 s는 도 3에 따른 변수 "t" 및 도 3에 따른 변수들 "lev" 및 "lev0"의 조합에 의해 획득될 수 있다. 함수 "get_pk"는 또한 리턴 값으로서 변수 "pki"의 값을 리턴하도록 구성되며, 변수 "pki"는 매핑 규칭 또는 누적-빈도들-테이블을 지정한다. 함수 "get_pk"는 상태 값 s를 매핑 규칙 인덱스 값 "pki"로 매핑하도록 구성된다.
함수 "get_pk"는 제 1 테이블 평가(540) 및 제 2 테이블 평가(544)를 포함한다. 제 1 테이블 평가(540)는 참조 번호(541)에서 도시되는 바와 같이 변수들 i_min, i_max 및 i가 초기화되는 변수 초기화(541)를 포함한다. 제 1 테이블 평가(540)는 또한 반복 테이블 검색(542)을 포함하며, 반복 테이블 검색(542) 동안 상태 값 s에 매칭하는 테이블 "ari_s_hash"의 엔트리가 존재하는지에 대한 결정이 이루어진다. 반복 테이블 검색(542) 동안 이러한 매칭이 식별되면, 함수 get_pk는 중단되며, 상기 함수의 리턴 값은 보다 상세하게 설명될 바와 같이 상태 값 s에 매칭하는 테이블 "ari_s_hash"의 엔트리에 의해 결정된다. 그러나, 반복 테이블 검색(542)의 진행 동안 상태 값 s 및 테이블 "ari_s_hash"의 엔트리 간의 완전한 매칭이 발견되지 않으면, 경계 엔트리 체크(543)가 수행된다.
이제 제 1 테이블 평가(540)의 세부사항들을 살펴보면, 검색 구간이 변수들 i_min 및 i_max에 의해 정의된다는 것을 알 수 있다. 변수들 i_min 및 i_max에 의해 정의되는 상기 구간이 충분히 큰 동안은 반복 테이블 검색(542)이 반복되며, 조건 i_max-i_min>1이 충족된다면 상기 구간이 충분히 크다고 할 수 있다. 후속적으로, 변수 i가, 적어도 대략적으로, 상기 구간의 중간을 지정하도록 설정된다(i=i_min+(i_max-i_min)/2). 후속적으로, 변수 j는 변수 i에 의해 지정되는 어레이 위치에서 어레이 "ari_s_hash"에 의해 결정되는 값으로 설정된다(참조 번호 542). 여기에서 테이블 "ari_s_hash"의 각각의 엔트리는, 테이블 엔트리에 연관되는, 상태 값 및 테이블 엔트리에 연관되는 매핑 규칙 인덱스 값 모두를 기술한다는 것을 유의하도록 한다. 테이블 엔트리에 연관되는 상태 값은 테이블 엔트리의 최상위 비트들(비트들 8-31)에 의해 기술되는 반면에, 매핑 규칙 인덱스 값들은 상기 테이블 엔트리의 하위 비트들(예를 들어, 비트들 0-7)에 의해 기술된다. 하위 경계 i_min 또는 상위 경계 i_max는 상태 값 s가 변수 i에 의해 참조되는 테이블 "ari_s_hash"의 엔트리 "ari_s_hash[i]"의 최상위 24 비트들에 의해 기술되는 상태 값보다 작은지 여부에 의존하여 적응된다. 예를 들어, 상태 값 s가 엔트리 "ari_s_hash[i]"의 최상위 24 비트들에 의해 기술되는 상태 값보다 작다면, 테이블 구간의 상위 경계 i_max는 값 i로 설정된다. 이에 따라, 반복 테이블 검색(542)의 다음 반복을 위한 테이블 구간은 반복 테이블 검색(542)의 현재 반복에 대하여 사용되는 테이블 구간(i_min부터 i_max까지)의 하위 절반으로 제한된다. 대조적으로, 상태 값 s가 테이블 엔트리 "ari_s_hash[i]"의 최상위 24 비트들에 의해 기술되는 상태 값들보다 크다면, 그 다음에 반복 테이블 검색(542)의 다음 반복을 위한 테이블 구간의 하위 경계 i_min은 값 i로 설정되고, 그 결과 현재 테이블 구간(i_min과 i_max 사이)의 상위 절반이 다음 반복 테이블 검색을 위한 테이블 구간으로서 사용된다. 그러나, 상태 값 s가 테이블 엔트리 "ari_s_hash[i]"의 최상위 24 비트들에 의해 기술되는 상태 값과 동일하다고 알려지면, 테이블 엔트리 "ari_s_hash[i]"의 최하위 8-비트들에 의해 기술되는 매핑 규칙 인덱스 값이 함수 "get_pk"에 의해 리턴되고, 상기 함수는 중단된다.
변수들 i_min 및 i_max에 의해 정의되는 테이블 구간이 충분히 작을 때까지 반복 테이블 검색(542)이 반복된다.
경계 엔트리 체크(543)는 (선택적으로) 반복 테이블 검색(542)을 보충하기 위해 실행된다. 반복 테이블 검색(542)의 완료 후에 인덱스 변수 i가 인덱스 변수 i_max와 동일한 경우에, 상태 값 s가 테이블 엔트리 "ari_s_hash[i_min]"의 최상위 24 비트들에 의해 기술되는 상태 값과 동일한지 여부에 대한 최종 체크가 이루어지며, 이러한 경우에, 함수 "get_pk"의 결과로서 엔트리 "ari_s_hash[i_min]"의 최하위 8 비트들에 의해 기술되는 매핑 규칙 인덱스 값이 리턴된다. 대조적으로, 인덱스 변수 i가 인덱스 변수 i_max와 상이한 경우에, 그 다음에 상태 값 s가 테이블 엔트리 "ari_s_hash[i_max]"의 최상위 24 비트들에 의해 기술되는 상태 값과 동일한지 여부에 대한 체크가 수행되며, 이러한 경우에 함수 "get_pk"의 리턴 값으로서 테이블 엔트리 "ari_s_hash[i_max]"의 최하위 8 비트들에 의해 기술되는 매핑 규칙 인덱스 값이 리턴된다.
그러나, 경계 엔트리 체크(543)는 전체로서 선택적으로 고려될 수 있다는 것을 유의하도록 한다.
제 1 테이블 평가(540)에 후속하여, 상태 값 s가 테이블 "ari_s_hash"의 엔트리들에 의해(또는 보다 정확하게는, 상기 엔트리들의 24 최상위 비트들에 의해) 기술되는 상태 값들 중 하나와 동일하다는 점에서, 제 1 테이블 평가(540) 동안 "다이렉트 히트"가 발생하지 않는다면, 제 2 테이블 평가(544)가 수행된다.
제 2 테이블 평가(544)는 참조 번호(545)에 도시되는 바와 같이 인덱스 변수들 i_min, i 및 i_max가 초기화되는 변수 초기화(545)를 포함한다. 제 2 테이블 평가(544)는 또한 반복 테이블 검색(546)을 포함하며, 반복 테이블 검색(546) 동안 테이블 "ari_gs_hash"가 상태 값 s와 동일한 상태 값을 나타내는 엔트리에 대하여 검색된다. 최종적으로, 제 2 테이블 평가(544)는 리턴 값 결정(547)을 포함한다.
반복 테이블 검색(546)은 인덱스 변수들 i_min 및 i_max에 의해 정의되는 테이블 구간이 충분히 큰 동안에(예를 들어, i_max-i_min>1인 동안에) 반복된다. 반복 테이블 검색(546)의 반복에서, 변수 i는 i_min 및 i_max에 의해 정의되는 테이블 구간의 중앙으로 설정된다(단계 546a). 후속적으로, 테이블 "ari_gs_hash"의 엔트리 j는 인덱스 변수 i에 의해 결정되는 테이블 위치에서 획득된다(546b). 다시 말하면, 테이블 엔트리 "ari_gs_hash[i]"는 테이블 인덱스들 i_min 및 i_max에 의해 정의되는 현재 테이블 구간의 중앙에 있는 테이블 엔트리이다. 후속적으로, 반복 테이블 검색(546)의 다음 반복을 위한 테이블 구간이 결정된다. 이러한 목적을 위해, 상태 값 s가 테이블 엔트리 "j=ari_gs_hash[i]"의 최상위 24 비트들에 의해 기술되는 상태 값보다 작은 경우에, 테이블 구간의 상위 경계를 기술하는 인덱스 값 i_max는 값 i로 설정된다(546c). 다시 말하면, 반복 테이블 검색(546)의 다음 반복을 위한 새로운 테이블 구간으로서 현재 테이블 구간의 하위 절반이 선택된다(단계 546c). 그렇지 않으면, 상태 값 s가 테이블 엔트리 "j=ari_gs_hash[i]"의 최상위 24 비트들에 의해 기술되는 상태 값보다 큰 경우에, 인덱스 값 i_min은 값 i로 설정된다. 이에 따라, 반복 테이블 검색(546)의 다음 반복을 위한 새로운 테이블 구간으로서 현재 테이블 구간의 상위 절반이 선택된다(단계 546d). 그러나, 상태 값 s가 테이블 엔트리 "j=ari_gs_hash[i]"의 가장 상위(uppermost) 24 비트들에 의해 기술되는 상태 값과 동일하다고 알려지면, 인덱스 값 i_max가 값 i+1로 또는 (i+1이 224보다 크다면) 값 224로 설정되며, 반복 테이블 검색(546)은 중단된다. 그러나, 상태 값 s가 "j=ari_gs_hash[i]"의 24 최상위 비트들에 의해 기술되는 상태 값과 상이한 경우에, 테이블 구간이 너무 작은 경우(i_max-i_min≤1)가 아니라면, 반복 테이블 검색(546)은 업데이트된 인덱스 값들 i_min 및 i_max에 의해 정의되는 새롭게 설정된 테이블 구간으로 반복된다. 그리하여, "다이렉트 히트"가 검출되거나(s==(j>>8)) 또는 상기 구간이 최소 허용가능한 사이즈(i_max-i_min≤1)에 도달할 때까지, (i_min 및 i_max에 의해 정의되는) 테이블 구간의 구간 사이즈는 반복적으로 감소된다. 최종적으로, 반복 테이블 검색(546)의 중단에 후속하여, 테이블 엔트리 "j=ari_gs_hash[i_max]"가 결정되고, 상기 테이블 엔트리 "j=ari_gs_hash[i_max]"의 8 최하위 비트들에 의해 기술되는 매핑 규칙 인덱스 값이 함수 "get_pk"의 리턴 값으로서 리턴된다. 이에 따라, 반복 테이블 검색(546)의 완료 또는 중단 이후에 매핑 규칙 인덱스 값은 (i_min 및 i_max에 의해 정의되는) 테이블 구간의 상위 경계 i_max에 의존하여 결정된다.
반복 테이블 검색(542, 546) 모두를 이용하는, 위에서-설명된 테이블 평가들(540, 544)은 매우 높은 계산 효율성을 가지고 주어진 중요 상태의 존재에 대하여 테이블들 "ari_s_hash" 및 "ari_gs_hash"의 검사를 가능하게 한다. 특히, 최악(worst)의 케이스에서조차, 다수의 테이블 액세스 동작들이 적당하게 작게 유지될 수 있다. 테이블 "ari_s_hash" 및 "ari_gs_hash"의 수치 순서는 적절한 해시(hash) 값의 검색의 가속화를 가능하게 한다는 것이 알려져 있다. 추가적으로, 테이블들 "ari_s_hash" 및 "ari_gs_hash"에 이스케이프 심볼들을 포함시키도록 요구되지 않기 때문에, 테이블 사이즈가 작게 유지될 수 있다. 그리하여, 많은 수의 상이한 상태들이 존재하더라도 효율적인 컨텍스트 해싱 메커니즘이 수립된다: 제 1 스페이지(제 1 테이블 평가(540))에서, 다이렉트 히트에 대한 검색이 수행된다(s==(j>>8)).
제 2 스페이지(제 2 테이블 평가(544))에서, 상태 값 s의 범위들은 매핑 규칙 인덱스 값들로 매핑될 수 있다. 그리하여, 특히 테이블 "ari_s_hash"에 연관된 엔트리가 존재하는 중요 상태들 및 범위-기반 핸들링이 존재하는 더-하위 상태들의 잘-밸런싱된(well-balanced) 핸들링이 수행될 수 있다. 이에 따라, 함수 "get_pk"는 매핑 규칙 선택의 효율적인 구현을 구성한다.
임의의 추가적인 세부사항들에 대하여, 도 5d의 의사 프로그램 코드에 대한 참조가 이루어지며, 도 5d는 잘-알려진 프로그래밍 언어 C에 따른 표현으로 함수 "get_pk"의 기능을 표현한다.
6.5.2 도 5e에 따른 알고리즘을 이용한 매핑 규칙 선택
다음에서, 매핑 규칙의 선택을 위한 다른 알고리즘이 도 5e를 참조하여 설명될 것이다. 도 5e에 따른 알고리즘 "arith_get_pk"는 입력 변수로서 컨텍스트의 상태를 기술하는 상태 값 s를 수신한다는 것을 유의하도록 한다. 함수 "arith_get_pk"는 출력 값 또는 리턴 값으로서, 매핑 규칙(예를 들어, 누적-빈도들-테이블)을 선택하기 위한 인덱스일 수 있는, 확률 모델의 인덱스 "pki"를 제공한다.
도 5e에 따른 함수 "arith_get_pk"는 도 3의 함수 "value_decode"의 함수 "arith_get_pk"의 기능을 취할 수 있다는 것을 유의하도록 한다.
또한 함수 "arith_get_pk"는, 예를 들어, 도 20에 따른 테이블 ari_s_hash 및 도 18에 따른 테이블 ari_gs_hash를 평가할 수 있다는 것을 유의하도록 한다.
도 5e에 따른 함수 "arith_get_pk"는 제 1 테이블 평가(550) 및 제 2 테이블 평가(560)를 포함한다. 제 1 테이블 평가(550)에서, 테이블 ari_s_hash의 엔트리 j=ari_s_hash[i]를 획득하기 위해 테이블 ari_s_hash를 통한 선형 스캔이 이루어진다. 테이블 ari_s_hash의 테이블 엔트리 j=ari_s_hash[i]의 최상위 24 비트들에 의해 기술되는 상태 값이 상태 값 s와 동일한 경우에, 상기 식별되는 테이블 엔트리 j=ari_s_hash[i]의 최하위 8 비트들에 의해 기술되는 매핑 규칙 인덱스 값 "pki"가 리턴되고 함수 "arith_get_pk"는 중단된다. 이에 따라, 테이블 ari_s_hash의 모든 387개의 엔트리들은 "다이렉트 히트"(테이블 엔트리 j의 최상위 24 비트들에 의해 기술되는 상태 값과 동일한 상태 값 s)가 식별되지 않는다면 오름차 순서로 평가된다.
제 1 테이블 평가(550) 내에서 다이렉트 히트가 식별되지 않는다면, 제 2 테이블 평가(560)가 실행된다. 제 2 테이블 평가 동안에, 0부터 224의 최대값까지 선형적으로 증가하는 엔트리 인덱스들 i를 통해 선형 스캔이 수행된다. 제 2 테이블 평가 동안, 테이블 i에 대한 테이블 "ari_gs_hash"의 엔트리 "ari_gs_hash[i]"가 판독되고, 테이블 엔트리 j의 24 최상위 비트들에 의해 표현되는 상태 값이 상태 값 s보다 큰지 여부가 결정된다는 점에서 테이블 엔트리 "j=ari_gs_hash[i]"가 평가된다. 이것에 해당하는 경우라면, 테이블 엔트리 j의 8 최상위 비트들에 의해 기술되는 매핑 규칙 인덱스 값이 함수 "arith_get_pk"의 리턴 값으로서 리턴되고, 함수 "arith_get_pk"의 실행은 중단된다. 그러나, 상태 값 s가 현재의 테이블 엔트리 j=ari_gs_hash[i]의 24 최상위 비트들에 의해 기술되는 상태 값보다 작지 않다면, 테이블 인덱스 i를 증가시킴으로써 테이블 ari_gs_hash의 엔트리들을 통해 스캔이 계속된다. 그러나, 상태 값 s가 테이블 ari_gs_hash의 엔트리들에 의해 기술되는 상태 값들 중 임의의 상태 값과 동일하거나 또는 더 크다면, 함수 "arith_get_pk"의 리턴 값으로서 테이블 ari_gs_hash의 마지막 엔트리의 8 최하위 비트들에 의해 정의되는 매핑 규칙 인덱스 값 "pki"가 리턴된다.
요약하기 위해, 도 5e에 따른 함수 "arith_get_pk"는 2-단계 해싱을 수행한다. 제 1 단계에서, 다이렉트 히트에 대한 검색이 수행되며, 여기에서 상태 값 s가 제 1 테이블 "ari_s_hash"의 엔트리들 중 임의의 엔트리에 의해 정의되는 상태 값과 동일한지 여부가 결정된다. 다이렉트 히트가 제 1 테이블 평가(550)에서 식별되면, 제 1 테이블 "ari_s_hash"로부터 리턴 값이 획득되며 함수 "arith_get_pk"는 중단된다. 그러나, 제 1 테이블 평가(550)에서 다이렉트 히트가 식별되지 않으면, 제 2 테이블 평가(560)가 수행된다. 제 2 테이블 평가에서, 범위-기반 평가가 수행된다. 제 2 테이블 "ari_gs_hash"의 후속적인 엔트리들은 범위들을 정의한다. 상태 값 s가 (현재의 테이블 엔트리 "j=ari_gs_hash[i]"의 24 최상위 비트들에 의해 기술되는 상태 값이 상태 값 s보다 크다는 사실에 의해 표시되는) 이러한 범위 내에 있다고 알려지면, 테이블 엔트리 "j=ari_gs_hash[i]"의 8 최하위 비트들에 의해 기술되는 매핑 규칙 인덱스 값 "pki"가 리턴된다.
6.5.3 도 5f에 따른 알고리즘을 이용하는 매칭 규칙 선택
도 5f에 따른 함수 "get_pk"는 실질적으로 도 5e에 따른 함수 "arith_get_pk"와 동등(equivalent)하다. 이에 따라, 위에서의 논의에 대한 참조가 이루어진다. 추가적인 세부사항들에 대하여, 도 5f의 의사 프로그램 표현에 대한 참조가 이루어진다.
도 5f에 따른 함수 "get_pk"는 도 3의 함수 "value_decode"에서 호출되는 함수 "arith_get_pk"를 대신할 수 있다는 것을 유의하도록 한다.
6.6 도 5g에 따른 함수 " arith _ decode ()"
다음에서, 함수 "arith_decode()"의 기능이 도 5g를 참조하여 상세하게 논의될 것이다. 함수 "arith_decode()"는 헬퍼(helper) 함수 "arith_first_symbol (void)"를 사용하며, 상기 헬퍼 함수는 자신이 시퀀스의 제 1 심볼이면 TRUE를 리턴하고 그렇지 않으면 FALSE를 리턴한다는 것을 유의하도록 한다. 함수 "arith_decode()"는 또한 헬퍼 함수 "arith_get_next_bit(void)"를 사용하여, 상기 헬퍼 함수는 비트스트림의 다음 비트를 획득하여 제공한다.
추가적으로, 함수 "arith_decode()"는 글로벌 변수들 "low", "high" 및 "value"를 사용한다. 또한, 함수 "arith_decode()"는 입력 변수로서 변수 "cum_freq[]"를 수신하며, 변수 "cum_freq[]"는 선택된 누적-빈도들-테이블의 (엘리먼트 인덱스 또는 엔트리 인덱스 0을 가지는) 제 1 엔트리 또는 엘리먼트를 향해 포인팅한다. 또한, 함수 "arith_decode()"는 입력 변수 "cfl"을 사용하며, 입력 변수 "cfl"은 변수 "cum_freq[]"에 의해 지정되는 선택된 누적-빈도들-테이블의 길이를 표시한다.
함수 "arith_decode()"는 제 1 단계로서 변수 초기화(570a)를 포함하며, 변수 초기화(570a)는 헬퍼 함수 "arith_first_symbol()"가 심볼들의 시퀀스의 제 1 심볼이 디코딩되고 있다고 표시하는 경우에 수행된다. 변수 초기화(570a)는 헬퍼 함수 "arith_get_next_bit"를 사용하여 비트스트림으로부터 획득되는 다수의, 예를 들어, 20개의 비트들에 의존하여 변수 "value"를 초기화하며, 그 결과 변수 "value"는 상기 비트들에 의해 표현되는 값을 취한다. 또한, 변수 "low"는 0의 값을 취하도록 초기화되고, 변수 "high"는 1048575의 값을 취하도록 초기화된다.
제 2 단계(570b)에서, 변수 "range"는 변수들 "high" 및 "low"의 값들 간의 차이보다, 1만큼, 더 큰 값으로 설정된다. 변수 "cum"은 변수 "low"의 값과 변수 "high"의 값 사이에서 변수 "value"의 값의 상대적인 위치를 나타내는 값으로 설정된다. 이에 따라, 변수 "cum"은 변수 "value"의 값에 의존하여, 예를 들어, 0과 216 사이의 값을 취한다.
포인터 p는 선택된 누적-빈도들-테이블의 시작 어드레스보다, 1만큼, 더 작은 값으로 초기화된다.
알고리즘 "arith_decode()"는 또한 반복 누적-빈도들-테이블-검색(570c)을 포함한다. 반복 누적-빈도들-테이블-검색은 변수 cfl이 1과 동일하거나 또는 더 작을 때까지 반복된다. 반복 누적-빈도들-테이블-검색(570c)에서, 포인터 변수 q는 포인터 변수 p의 현재 값 및 변수 "cfl"의 값의 절반의 합과 동일한, 값으로 설정된다. 엔트리가 포인트 변수 q에 의해 어드레싱되는, 선택된 누적-빈도들-테이블의 엔트리 *q의 값이 변수 "cum"의 값보다 크면, 포인터 변수 p는 포인터 변수 q의 값으로 설정되고, 변수 "cfl"은 증가된다. 최종적으로, 변수 "cfl"은 1 비트만큼 우측으로 시프트되고, 그에 의해 효과적으로 변수 "cfl"의 값을 2로 나누고 모듈로(modulo) 부분을 무시한다.
이에 따라, 반복 누적-빈도들-테이블-검색(570c)은, 값 cum이 식별된 구간 내에 있도록, 누적-빈도들-테이블의 엔트리들에 의해 바운딩(bounded)되는, 선택된 누적-빈도들-테이블 내의 구간을 식별하기 위하여, 변수 "cum"의 값과 선택된 누적-빈도들-테이블의 다수의 엔트리들을 효과적으로 비교한다. 이에 따라, 선택된 누적-빈도들-테이블의 엔트리들은 구간들을 정의하며, 각각의 심볼 값이 선택된 누적-빈도들-테이블의 구간들 각각에 연관된다. 또한, 누적-빈도들-테이블의 2개의 인접한 값들 사이의 구간들의 폭(width)들은 상기 구간들과 연관되는 심볼들의 확률들을 정의하며, 그 결과 전체로서 선택된 누적-빈도들-테이블은 상이한 심볼들(또는 심볼 값들)의 확률 분포를 정의한다. 이용가능한 누적-빈도들-테이블들에 관한 세부사항들은 도 19를 참조하여 아래에서 논의될 것이다.
도 5g를 다시 참조하면, 심볼 값은 포인트 변수 p의 값으로부터 유도되며, 심볼 값은 참조 번호 570d에서 도시된 바와 같이 유도된다. 그리하여, 포인터 변수 p의 값과 시작 어드레스 "cum_freq" 간의 차이는, 변수 "symbol"에 의해 표현되는, 심볼 값을 획득하기 위해 평가된다.
알고리즘 "arith_decode()"는 또한 변수들 "high" 및 "low"의 적응(570e)을 포함한다. 변수 "symbol"에 의해 표현되는 심볼 값이 0과 상이하다면, 참조 번호(570e)에서 도시된 바와 같이, 변수 "high"가 업데이트된다. 또한, 참조 번호(570e)에서 도시된 바와 같이, 변수 "low"의 값이 업데이트된다. 변수 "high"는 변수 "low"의 값, 변수 "range" 및 선택된 누적-빈도들-테이블의 인덱스 "symbol-1"을 가지는 엔트리에 의해 결정되는 값으로 설정된다. 변수 "low"는 증가되며, 증가의 크기는 변수 "range" 및 인덱스 "symbol"을 가지는 선택된 누적-빈도들-테이블의 엔트리에 의해 결정된다. 이에 따라, 변수들 "low" 및 "high"의 값들 간의 차이는 선택된 누적-빈도들-테이블의 2개의 인접한 엔트리들 간의 수치 차이에 의존하여 조정된다.
이에 따라, 낮은 확률을 가지는 심볼 값이 검출되면, 변수들 "low" 및 "high"의 값들 사이의 구간은 좁은 폭으로 감소된다. 대조적으로, 검출된 심볼 값이 상대적으로 큰 확률을 포함하면, 변수들 "low" 및 "high"의 값들 사이의 구간의 폭은 상대적으로 큰 값으로 설정된다. 다시, 변수들 "low" 및 "high"의 값들 사이의 구간의 폭은 검출된 심볼 및 누적-빈도들-테이블의 대응하는 엔트리들에 종속적이다.
알고리즘 "arith_decode()"는 또한 구간 재정규화(renormalization)(570f)를 포함하며, 구간 재정규화에서 "브레이크"-조건에 도달할 때까지 단계(570e)에서 결정된 구간은 반복적으로 시프팅되고 스케일링된다. 구간 재정규화(570f)에서, 선택적 시프트-다운워드(shift-downward) 동작(570fa)이 수행된다. 변수 "high"가 524286보다 작으면, 아무 것도 수행되지 않으며, 구간 재정규화는 구간-사이즈-증가 동작(570fb)을 계속한다. 그러나, 변수 "high"가 524286보다 작지 않으며 변수 "low"가 524286과 동일하거나 또는 더 크면, 변수들 "value", "low" 및 "high" 모두는 524286까지 감소되며, 그 결과 변수들 "low" 및 "high"에 의해 정의되는 구간이 시프트 다운워드되고 변수 "value"의 값 또한 시프트 다운워드된다. 그러나, 변수 "high"의 값이 524286보다 작지 않고, 변수 "low"가 524286과 동일하지 않거나 또는 더 크지 않고, 변수 "low"가 262143과 동일하거나 또는 더 크고, 변수 "high"가 786429보다 작다고 알려지면, 변수들 "value", "low" 및 "high" 모두는 262143까지 감소되며, 그에 의해 변수들 "high" 및 "low"의 값들 사이의 구간 및 또한 변수 "value"의 값을 시프팅 다운시킨다. 그러나, 위의 조건들 중 어느 것도 충족되지 않으면, 구간 재정규화는 중단된다.
그러나, 단계(570fa)에서 평가되는, 위에서-언급된 조건들 중 임의의 조건이 충족된다면, 구간-증가-동작(570fb)이 실행된다. 구간-증가-동작(570fb)에서, 변수 "low"의 값은 2배가 된다. 또한, 변수 "high"의 값이 2배가 되며, 이러한 배증(doubling)의 결과는 1만큼 증가된다. 또한, 변수 "value"의 값이 2배가 되며(1 비트만큼 좌측으로 시프팅되며), 헬퍼 함수 "arith_get_next_bit"에 의해 획득되는 비트스트림의 1 비트가 최하위 비트로서 사용된다. 이에 따라, 변수들 "low" 및 "high"의 값들 사이의 구간의 사이즈는 대략적으로 2배가 되며, 변수 "value"의 정밀도(precision)는 비트스트림의 새로운 비트를 사용함으로써 증가된다. 위에서 언급된 바와 같이, "브레이크" 조건에 도달할 때까지, 즉, 변수들 "low" 및 "high"의 값들 사이의 구간이 충분히 클 때까지, 단계들(570fa 및 570fb)은 반복된다.
알고리즘 "arith_decode()"의 기능과 관련하여, 변수들 "low" 및 "high"의 값들 사이의 구간은 변수 "cum_freq"에 의해 참조되는 누적-빈도들-테이블의 2개의 인접한 엔트리들에 의존하여 단계(570e)에서 감소된다는 것을 유의하도록 한다. 선택된 누적-빈도들-테이블의 2개의 인접한 값들 사이의 구간이 작다면, 즉, 상기 인접한 값들이 상대적으로 서로 근접하다면, 단계(570e)에서 획득되는, 변수들 "low" 및 "high"의 값들 사이의 구간은 상대적으로 작을 것이다. 대조적으로, 누적-빈도들-테이블의 2개의 인접한 엔트리들이 더 멀리 이격되어 있다면, 단계(570e)에서 획득되는, 변수들 "low" 및 "high"의 값들 사이의 구간은 상대적으로 클 것이다.
결과적으로, 단계(570e)에서 획득되는, 변수들 "low" 및 "high"의 값들 사이의 구간이 상대적으로 작다면, 상기 구간을 "충분한" 사이즈로 리-스케일링하기 위해 많은 수의 구간 재정규화 단계들이 실행될 것이다(그 결과 조건 평가(570fa)의 조건들 중 어느 것도 충족되지 않는다). 이에 따라, 변수 "value"의 정밀도를 증가시키기 위하여 비트스트림으로부터의 상대적으로 많은 개수의 비트들이 사용될 것이다. 대조적으로, 단계(570e)에서 획득되는 구간 사이즈가 상대적으로 크다면, 변수들 "low" 및 "high"의 값들 사이의 구간을 "충분한" 사이즈로 재정규화하기 위하여 단지 적은 횟수의 구간 재정규화 단계들(570fa 및 570fb)의 반복들이 요구될 것이다. 이에 따라, 변수 "value"의 정밀도를 증가시키고 다음 심볼의 디코딩을 준비하기 위해 비트스트림으로부터의 상대적으로 적은 개수의 비트들이 사용될 것이다.
전술한 내용을 요약하기 위해, 상대적으로 높은 확률을 포함하며, 선택된 누적-빈도들-테이블의 엔트리들에 의해 큰 구간이 연관되는, 심볼이 디코딩되면, 후속적인 심볼의 디코딩을 가능하게 하기 위해 단지 상대적으로 적은 개수의 비트들이 비트스트림으로부터 판독될 것이다. 대조적으로, 상대적으로 낮은 확률을 포함하며, 선택된 누적-빈도들-테이블의 엔트리들에 의해 작은 구간이 연관되는, 심볼이 디코딩되면, 다음 심볼의 디코딩을 준비하기 위해 상대적으로 많은 개수의 비트들이 비트스트림으로부터 취해질 것이다.
이에 따라, 누적-빈도들-테이블의 엔트리들은 상이한 심볼들의 확률들을 반영하고 또한 심볼들의 시퀀스를 디코딩하기 위해 요구되는 비트들의 수를 반영한다. 컨텍스트에 의존하여, 즉, 이전에-디코딩된 심볼들(또는 스펙트럼 값들)에 의존하여 누적-빈도들-테이블을 변경함으로써, 예를 들어, 컨텍스트에 의존하여 상이한 누적-빈도들-테이블들을 선택함으로써, 상이한 심볼들 간의 확률론적(stochastic) 의존성들이 이용될 수 있으며, 이는 후속적인(또는 인접한) 심볼들의 특정한 비트레이트-효율적인 인코딩을 가능하게 한다.
전술한 내용을 요약하기 위해, 도 5g와 관련하여 설명되었던, 함수 "arith_decide()"는 (리턴 변수 "symbol"에 의해 표현되는 심볼 값으로 설정될 수 있는) 최상위 비트-플레인 값 m을 결정하기 위해 함수 "arith_get_pk()"에 의해 리턴되는 인덱스 "pki"에 대응하는, 누적-빈도들-테이블 "arith_cf_m[pki][]"을 통해 호출된다.
6.7 이스케이프 메커니즘
(함수 "arith_decode()"에 의해 심볼 값으로서 리턴되는) 디코딩된 최상위 비트-플레인 값 m이 이스케이프 심볼 "ARITH_ESCAPE"인 동안에, 추가적인 최상위 비트-플레인 값 m이 디코딩되고 변수 "lev"는 1만큼 증가된다. 이에 따라, 디코딩될 더-하위 비트-플레인들의 개수뿐만 아니라 최상위 비트-플레인 값 m의 수치 중요성에 관한 정보가 획득된다.
이스케이프 심볼 "ARITH_ESCAPE"가 디코딩되면, 레벨 변수 "lev"는 1만큼 증가된다. 이에 따라, 가장 상위 비트들(비트들 24 및 상위)에 의해 표현되는 값이 알고리즘(312ba)의 다음 반복들을 위해 증가된다는 점에서 함수 "arith_get_pk"로 입력되는 상태 값이 또한 수정된다.
6.8 도 5h에 따른 컨텍스트 업데이트
스펙트럼 값이 완전하게 디코딩되면(즉, 최상위 비트-플레인들 모두가 추가되었으면), 함수 "arith_update_context(a,i,lg)"를 호출함으로써 컨텍스트 테이블들 q 및 qs가 업데이트된다. 다음에서, 함수 "arith_update_context(a,i,lg)"에 관한 세부사항들은 도 5h를 참조하여 설명될 것이며, 도 5h는 상기 함수의 의사 프로그램 코드 표현을 도시한다.
함수 "arith_update_context()"는 입력 변수들로서 디코딩되고 양자화된 스펙트럼 계수 a, 디코딩될 스펙트럼 값의(또는 디코딩된 스펙트럼 값의) 인덱스 i 및 현재 오디오 프레임과 연관되는 스펙트럼 값들(또는 계수들)의 개수 lg를 수신한다.
단계 580에서, 현재 디코딩되고 양자화된 스펙트럼 값(또는 계수) a는 컨텍스트 테이블 또는 컨텍스트 어레이 q로 복사된다. 이에 따라, 컨텍스트 테이블 q의 엔트리 q[1][i]는 a로 설정된다. 또한, 변수 "a0"는 "a"의 값으로 설정된다.
단계 582에서, 컨텍스트 테이블 q의 레벨 값 q[1][i].1이 결정된다. 디폴트로, 컨텍스트 테이블 q의 레벨 값 q[1][i].1은 0으로 설정된다. 그러나, 현재 코딩된 스펙트럼 값 a의 절대값이 4보다 크다면, 레벨 값 q[1][i].1은 증가된다. 각각의 증가를 통해, 변수 "a"는 1 비트만큼 우측으로 시프팅된다. 변수 a0의 절대값이 4와 동일하거나 또는 더 작을 때까지 레벨 값 q[1][i].1의 증가는 반복된다.
단계 584에서, 컨텍스트 테이블 q의 2-비트 컨텍스트 값 q[1][i].c가 설정된다. 현재 디코딩된 스펙트럼 값 a가 0과 동일하면 2-비트 컨텍스트 값 q[1][i].c는 0의 값으로 설정된다. 그렇지 않으면, 디코딩된 스펙트럼 값 a의 절대값이 1과 동일하거나 또는 더 작으면, 2-비트 컨텍스트 값 q[1][i].c는 1로 설정된다. 그렇지 않으면, 현재 디코딩된 스펙트럼 값 a의 절대값이 3과 동일하거나 또는 더 작으면, 2-비트 컨텍스트 값 q[1][i].c는 2로 설정된다. 그렇지 않으면, 즉, 현재 디코딩된 스펙트럼 값 a의 절대값이 3보다 크면, 2-비트 컨텍스트 값 q[1][i].c는 3으로 설정된다. 이에 따라, 2-비트 컨텍스트 값 q[1][i].c는 현재 디코딩된 스펙트럼 값 a의 매우 비세밀한(coarse) 양자화에 의해 획득된다.
현재 디코딩된 스펙트럼 값의 인덱스 i가 프레임에 있는 계수들(스펙트럼 값들)의 개수 lg와 동일한 경우에만, 즉, 상기 프레임의 마지막 스펙트럼 값이 디코딩되었고 코어 모드가 ("core_mode==1"에 의해 표시되는) 선형-예측-도메인 코어 모드인 경우에만 수행되는, 후속 단계 586에서, 엔트리들 q[1][i].c는 컨텍스트 테이블 qs[k]로 복사된다. 참조 번호(586)에서 도시된 바와 같이 복사가 수행되며, 그 결과 현재 프레임에 있는 스펙트럼 값들의 개수 lg는 엔트리들 q[1][i].c를 컨텍스트 테이블 qs[k]로 복사하는데 고려된다. 추가적으로, 변수 "previous_lg"는 값 1024를 취한다.
그러나, 대안적으로, 현재 디코딩된 스펙트럼 계수의 인덱스 i가 lg의 값에 도달하고 코더 모드가 ("core_mode==0"에 의해 표시되는) 주파수-도메인 코어 모드인 경우에 컨텍스트 테이블 q의 엔트리들 q[1][i].c는 컨텍스트 테이블 qs[j]로 복사된다.
이러한 경우에, 변수 "previous_lg"는 1024의 값 및 프레임에 있는 스펙트럼 값들의 개수 lg 사이에서 최소값으로 설정된다.
6.9 디코딩 프로세스의 요약
다음에서, 디코딩 프로세스가 간략하게 요약될 것이다. 세부사항들에 대하여는, 위에서의 논의 및 또한 도 3, 4 및 5a 내지 5i에 대한 참조가 이루어진다.
양자화된 스펙트럼 계수들 a가 무잡음 코딩되고, 가장 낮은 주파수 계수로부터 시작하여 가장 높은 주파수 계수로 진행하여, 전송된다.
진보된-오디오 코딩(AAC: advanced-audio coding)으로부터의 계수들은 어레이 "x_ac_quant[g][win][sfb][bin]"에 저장되고, 무잡음 코딩 코드워드들의 전송 순서는 이들이 수신된 순서로 디코딩되고 어레이에 저장될 때, bin은 가장 급격하게 증가하는 인덱스이고 g는 가장 느리게 증가하는 인덱스이도록 이루어진다. 인덱스 bin은 주파수 빈들을 지정한다. 인덱스 "sfb"는 스케일 인자 밴드들을 지정한다. 인덱스 "win"은 윈도우들을 지정한다. 인덱스 "g"는 오디오 프레임들을 지정한다.
변환-코딩-여기로부터의 계수들은 어레이 "x_tcx_invquant[win][bin]"에 직접 저장되고, 무잡음 코딩 코드워드들의 전송 순서는 이들이 수신된 순서로 디코딩되고 어레이에 저장될 때, "bin"이 가장 급격하게 증가하는 인덱스이고 "win"이 가장 느리게 증가하는 인덱스이도록 이루어진다.
먼저, 컨텍스트 테이블 또는 어레이 "qs"에 저장된 세이브된 과거 컨텍스트 및 (컨텍스트 테이블 또는 어레이 q에 저장된) 현재 프레임 q의 컨텍스트 사이의 매핑이 수행된다. 과거 컨텍스트 "qs"는 주파수 라인마다(또는 주파수 빈마다) 2-비트들로 저장된다.
컨텍스트 테이블 "qs"에 저장된 세이브된 과거 컨텍스트 및 컨텍스트 테이블 "q"에 저장된 현재 프레임의 컨텍스트 간의 매핑은 함수 "arith_map_context()"를 이용하여 수행되며, 상기 함수의 의사-프로그램-코드 표현은 도 5a에 도시된다.
무잡음 디코더는 사인형(signed) 양자화된 스펙트럼 계수들 "a"를 출력한다.
처음에, 컨텍스트의 상태는 디코딩할 양자화된 스펙트럼 계수들 주위에 있는 이전에-디코딩된 스펙트럼 계수들에 기반하여 계산된다. 컨텍스트 상태 s는 함수 "arith_get_context()"에 의해 리턴되는 값의 처음 24 비트들에 대응한다. 리턴된 값의 24번째 비트를 초과하는 비트들은 예측된 비트-플레인-레벨 lev0에 대응한다. 변수 "lev"는 lev0으로 초기화된다. 함수 "arith_get_context"의 의사 프로그램 코드 표현은 도 5b 및 5c에 도시된다.
상태 s 및 예측된 레벨 "lev0"이 알려지면, 컨텍스트 상태에 대응하는 확률 모델에 대응하는 적절한 누적-빈도들-테이블과 함께 제공되는, 함수 "arith_decode()"를 이용하여 최상위 2-비트 와이즈 플레인 m이 디코딩된다.
대응 관계는 함수 "arith_get_pk()"에 의해 이루어진다.
함수 "arith_get_pk()"의 의사-프로그램-코드 표현은 도 5e에 도시된다.
함수 "arith_get_pk()"를 대신할 수 있는 다른 함수 "get_pk"의 의사 프로그램 코드는 도 5f에 도시된다. 함수 "arith_get_pk()"를 대신할 수 있는 다른 함수 "get_pk"의 의사 프로그램 코드는 도 5d에 도시된다.
상기 값 m은 누적-빈도들-테이블 "arith_cf_m[pki][]"을 통해 호출되는 함수 "arith_decode()"를 이용하여 디코딩되며, 여기서 "pki"는 함수 "arith_get_pk()"에 의해 (또는, 대안적으로 함수 "get_pk()"에 의해) 리턴되는 인덱스에 대응한다.
산술 코더는 스케일링을 이용하는 태그 생성의 방법을 이용한 정수 구현이다(예를 들어, K. Sayood "Introduction to Data Compression" third edition, 2006, Elsevier Inc.를 보도록 한다). 도 5g에 도시된 의사-C-코드는 이용된 알고리즘을 기술한다.
디코딩된 값 m이 이스케이프 심볼 "ARITH_ESCAPE"일 때, 다른 값 m이 디코딩되고 변수 "lev"는 1만큼 증가된다. 상기 값 m이 이스케이프 심볼 "ARITH_ESCAPE"이 아니면, 그 다음에 누적-빈도들-테이블 "arith_cf_r[]"을 통해 함수 "arith_decode()"를 "lev"번 호출함으로써 남아있는 비트-플레인들이 최상위 레벨로부터 최하위 레벨까지 디코딩된다. 상기 누적-빈도들-테이블 "arith_cf_r[]"은, 예를 들어, 짝수 확률 분포를 기술한다.
디코딩된 비트 플레인들 r은 다음의 방식으로 이전에-디코딩된 값 m의 정교화(refining)을 허용한다:
a = m;
for (i=0; i<lev; i++) {
r = arith_decode(arith_cf_r, 2);
a = (a<<1) | (r&1);
}
스펙트럼 양자화된 계수 a가 완전하게 디코딩되면, 컨텍스트 테이블들 q 또는 저장된 컨텍스트 qs는 디코딩할 다음 양자화된 스펙트럼 계수들을 위해 함수 "arith_update_context()"에 의해 업데이트된다.
함수 "arith_update_context()"의 의사 프로그램 코드 표현은 도 5h에 도시된다.
추가적으로, 정의들의 범례는 도 5i에 도시된다.
7. 매핑 테이블들
본 발명에 따른 일 실시예에서, 특히 바람직하게는 테이블들 "ari_s_hash" 및 "ari_gs_hash" 및 "ari_cf_m"은, 도 5d와 관련하여 논의되었던 함수 "get_pk"의 실행을 위해, 또는 도 5e와 관련하여 논의되었던 함수 "arith_get_pk"의 실행을 위해, 또는 도 5f와 관련하여 논의되었던 함수 "get_pk"의 실행을 위해, 또는 도 5g와 관련하여 논의되었던 함수 "arith_decode"의 실행을 위해 사용된다.
7.1 도 17에 따른 테이블 " ari _s_ hash [387]"
도 5d와 관련하여 설명되었던 함수 "get_pk"에 의해 사용되는, 테이블 "ari_s_hash"의 특히 바람직한 구현의 내용은 도 17의 테이블에 도시된다. 도 17의 테이블은 테이블 "ari_s_hash[387]"의 387개의 엔트리들을 목록으로 나열하고 있음을 유의하도록 한다. 또한 도 17의 테이블 표현은 제 1 값 "0x00000200"이 엘리먼트 인덱스 (또는 테이블 인덱스) 0을 가지는 테이블 엔트리 "ari_s_hash[0]"에 대응하고, 마지막 값 "0x03D0713D"가 엘리먼트 인덱스 또는 테이블 인덱스 386을 가지는 테이블 엔트리 "ari_s_hash[386]"에 대응하도록, 엘리먼트 인덱스들의 순서로 엘리먼트들을 도시하고 있음을 유의하도록 한다. 추가적으로 여기에서 "0x"는 테이블 "ari_s_hash"의 테이블 엔트리들이 16진수 포맷으로 표현된다는 것을 표시함을 유의하도록 한다. 또한, 도 17에 따른 테이블 "ari_s_hash"의 테이블 엔트리들은 함수 "get_pk"의 제 1 테이블 평가(540)의 실행을 가능하게 하기 위해 수치 순서로 배치된다.
추가적으로 테이블 "ari_s_hash"의 테이블 엔트리들의 최상위 24 비트들은 상태 값들을 표현하는 반면에, 최하위 8-비트들은 매핑 규칙 인덱스 값들 pki를 표현함을 유의하도록 한다.
그리하여, 테이블 "ari_s_hash"의 엔트리들은 상태 값의 매핑 규칙 인덱스 값 "pki"로의 "다이렉트 히트" 매핑을 기술한다.
7.2 도 18에 따른 테이블 " ari _ gs _ hash "
테이블 "ari_gs_hash"의 특히 바람직한 실시예의 내용은 도 18의 테이블에 도시된다. 여기에서 도 18의 테이블은 테이블 "ari_gs_hash의 엔트리들을 목록으로 나열하고 있음을 유의하도록 한다. 상기 엔트리들은, 예를 들어, "i"로 지정되는, (또한 "엘리먼트 인덱스" 또는 "어레이 인덱스" 또는 "테이블 인데스"로서 지정되는) 1-차원 정수-타입 엔트리 인덱스에 의해 참조된다. 전체 225개의 엔트리들을 포함하는 테이블 "ari_gs_hash"는 도 5d에서 설명된 함수 "get_pk"의 제 2 테이블 평가(544)에 의해 사용하기에 적합하다는 것을 유의하도록 한다.
테이블 "ari_gs_hash"의 엔트리들은 0 내지 224의 테이블 인덱스 값들 i에 대하여 테이블 인덱스 i의 오름차 순서로 나열된다는 것을 유의하도록 한다. 용어 "0x"는 테이블 엔트리들이 16진수 포맷으로 기술된다는 것을 표시한다. 이에 따라, 제 1 테이블 엔트리 "0x00000401"은 테이블 인덱스 0을 가지는 테이블 엔트리 "ari_gs_hash[0]"에 대응하고, 마지막 테이블 엔트리 "0xffffff3f"는 테이블 인덱스 224를 가지는 "ari_gs_hash[224]"에 대응한다.
또한 테이블 엔트리들이 함수 "get_pk"의 제 2 테이블 평가(544)를 위해 적합하도록 테이블 엔트리들이 수치적으로 오름차순 방식으로 배열된다는 것을 유의하도록 한다. 테이블 "ari_gs_hash"의 테이블 엔트리들의 최상위 24 비트들은 상태 값들의 범위들 간의 경계들을 기술하고, 상기 엔트리들의 8 최하위 비트들은 24 최상위 비트들에 의해 정의되는 상태 값들의 범위들과 연관되는 매핑 규칙 인덱스 값들 "pki"를 기술한다.
7.3 도 19에 따른 테이블 " ari _ cf _m"
도 19는 64개의 누적-빈도들-테이블들 "ari_cf_m[pki][9]"의 세트를 도시하며, 이들 중 하나는, 예를 들어, 함수 "arith_decode"의 실행을 위해, 즉, 최상위 비트-플레인 값의 디코딩을 위해, 오디오 인코더(100, 700) 또는 오디오 디코더(200, 800)에 의해 선택된다. 도 19에 도시된 64개의 누적-빈도들-테이블 중 선택된 테이블은 함수 "arith_decode()"의 실행시에 테이블 "cum_freq[]"의 함수를 취한다.
도 19로부터 볼 수 있는 바와 같이, 각각의 라인은 9개의 엔트리들을 가지는 누적-빈도들-테이블을 나타낸다. 예를 들어, 제 1 라인(1910)은 "pki=0"에 대한 누적-빈도들-테이블의 9개의 엔트리들을 나타낸다. 제 2 라인(1912)은 "pki=1"에 대한 누적-빈도들-테이블의 9개의 엔트리들을 나타낸다. 최종적으로, 64번째 라인(1964)은 "pki=63"에 대한 누적-빈도들-테이블의 9개의 엔트리들을 나타낸다. 그리하여, 도 19는 효과적으로 "pki=0" 내지 "pki=63"에 대한 64개의 상이한 누적-빈도들-테이블들을 나타내며, 64개의 누적-빈도들-테이블들 각각은 하나의 라인에 의해 표현되고 상기 누적-빈도들-테이블들 각각은 9개의 엔트리들을 포함한다.
하나의 라인(예를 들아, 라인(1910) 또는 라인(1912) 또는 (1964)) 내에서, 최좌측(leftmost) 값은 누적-빈도들-테이블의 제 1 엔트리를 기술하고 최우측(rightmost) 값은 누적-빈도들-테이블의 마지막 엔트리를 기술한다.
이에 따라, 도 19의 테이블 표현의 각각의 라인(1910, 1912, 1964)은 도 5g에 따른 함수 "arith_decode"에 의해 사용하기 위한 누적-빈도들-테이블의 엔트리들을 나타낸다. 함수 "arith_decode"의 입력 변수 "cum_freq[]"는 테이블 "ari_cf_m"의 (9개의 엔트리들의 개별적인 라인들에 의해 표현되는) 64개의 누적-빈도들-테이블들 중 어떤 테이블이 현재 스펙트럼 계수들의 디코딩을 위해 사용되어야 하는지를 기술한다.
7.4 도 20에 따른 테이블 " ari _s_ hash "
도 20은 테이블 "ari_s_hash"를 위한 대안을 도시하며, 이는 도 5e 또는 5f에 따른 대안적인 함수 "arith_get_pk()" 또는 "get_pk()"와 협력하여 사용될 수 있다.
도 20에 따른 테이블 "ari_s_hash"는 386개의 엔트리들을 포함하며, 이러한 엔트리들은 테이블 인덱스의 오름차 순서로 도 20에서 나열된다. 그리하여, 제 1 테이블 값 "0x0090D52E"는 테이블 인덱스 0을 가지는 테이블 엔트리 "ari_s_hash[0]"에 대응하고, 마지막 테이블 엔트리 "0x03D0513C"는 테이블 인덱스 386을 가지는 테이블 엔트리 "ari_s_hash[386]"에 대응한다.
"0x"는 테이블 엔트리들이 16진수 형태로 표현됨을 표시한다. 테이블 "ari_s_hash"의 엔트리들의 24 최상위 비트들은 중요 상태들을 기술하며, 테이블 "ari_s_hash"의 엔트리들의 8 최하위 비트들은 매핑 규칙 인덱스 값들을 기술한다.
이에 따라, 테이블 "ari_s_hash"의 엔트리들은 중요 상태들의 매핑 규칙 인덱스 값들 "pki"로의 매핑을 기술한다.
8. 성능 평가 및 장점들
본 발명에 따른 실시예들은, 위에서 논의된 바와 같이, 계산 복잡성, 메모리 요구들 및 코딩 효율성 간의 향상된 트레이드오프를 획득하기 위하여, 업데이트된 함수들(또는 알고리즘들) 및 업데이트된 테이블들의 세트를 사용한다.
일반적으로 말하면, 본 발명에 따른 실시예들은 향상된 스펙트럼 무잡음 코딩을 발생시킨다.
본 명세서는 스펙트럼 계수들의 향상된 스펙트럼 무잡음 코딩 상의 CE에 대한 실시예들을 설명한다. 제안된 방식은 USAC 드래프트 표준의 워킹 드래프트 4에 기술되는 바와 같은, "원래의" 컨텍스트-기반 산술 코딩 방식에 기반하며, 잡음 코딩 성능을 유지하면서, 메모리 요구들(RAM, ROM)을 상당하게 감소시킨다. (즉, USAC 드래프트 표준의 워킹 드래프트 3에 따라 비트스트림을 제공하는 오디오 인코더의 출력의) WD3의 무손실(lossless) 트랜스코딩은 가능하다고 증명되었다. 일반적으로, 여기에서 설명되는 방식은 스케일링 가능하고, 추가적으로 메모리 요구들 및 인코딩 성능 간의 대안적인 트레이드오프들을 허용한다. 본 발명에 따른 실시예들은 USAC 드래프트 표준의 워킹 드래프트 4에서 이용되는 스펙트럼 무잡음 코딩 방식을 대체하는데 목적이 있다.
여기에서 설명되는 산술 코딩 방식은 USAC 드래프트 표준의 워킹 드래프트 4(WD4) 또는 기준 모델 0(RM0)에서와 같은 방식에 기반한다. 주파수 또는 시간에서의 이전의 스펙트럼 계수들은 컨텍스트를 모델링한다. 이러한 컨텍스트는 산술 코더(인코더 또는 디코더)를 위한 누적-빈도들-테이블들의 선택을 위해 사용된다. WD4에 따른 실시예와 비교하면, 컨텍스트 모델링은 추가적으로 향상되며 심볼 확률들을 홀딩(holding)하는 테이블들은 리트레이닝(retrain)되었다. 상이한 확률 모델들의 수는 32로부터 64로 증가되었다.
본 발명에 따른 실시예들은 테이블 사이즈들(데이터 ROM 요구)을 길이 32-비트의 900개의 워드들 또는 3600 바이트들로 감소시킨다. 대조적으로, USAC 드래프트 표준의 WD4에 따른 실시예들은 16894.5 워드들 또는 76578 바이트들을 요구한다. 정적 RAM 요구는, 본 발명의 몇몇 실시예들에서, 코어 코더 채널당 666개의 워드들(2664 바이트들)로부터 72개의 워드들(288 바이트들)로 감소된다. 동시에, 이것은 코딩 성능을 완전하게 보전하며, 모두 9개의 동작 포인트들에 걸친 전체 데이터 레이트와 비교되어, 대략적으로 1.04% 내지 1.39%의 이득에 도달할 수 있다. 모든 워킹 드래프트 3(WD3) 비트스트림들은 비트 저장소 제약들에 영향을 주지않고 무손실 방식으로 트랜스코딩될 수 있다.
본 발명의 실시예들에 따른 제안된 방식은 스케일링 가능하다: 메모리 요구 및 코딩 성능 간의 유연한 트레이드오프들이 가능하다. 테이블 사이즈들을 증가시킴으로써 코딩 이득은 추가적으로 증가될 수 있다.
다음에서, USAC 드래프트 표준의 WD4에 따른 코딩 개념의 간단한 논의가 여기에서 설명되는 개념의 장점들에 대한 이해를 용이하게 하기 위해 제공될 것이다. USAC WD4에서, 컨텍스트 기반 산술 코딩 방식은 양자화된 스펙트럼 계수들의 무잡음 코딩을 위해 이용된다. 컨텍스트로서, 주파수 및 시간에서 이전에 있는, 디코딩된 스펙트럼 계수들이 사용된다. WD4에 따르면, 16개의 스펙트럼 계수들의 최대 개수가 컨텍스트로서 사용되며, 이들 중 12개가 시간적으로 이전에 있다. 컨텍스트에 대하여 사용되는 스펙트럼 계수들 및 디코딩될 스펙트럼 계수들 모두는 4-튜플들(즉, 주파수에서 이웃에 있는 4개의 스펙트럼 계수들, 도 10a 참조)로서 그룹화된다. 컨텍스트는 감소되고 누적-빈도들-테이블 상에 매핑되며, 그 다음에 스펙트럼 계수들의 다음 4-튜플을 디코딩하기 위해 사용된다.
완전한 WD4 무잡음 코딩 방식에 대하여, 16894.5 워드들(67578 바이트들)의 메모리 요구(ROM)가 요구된다. 추가적으로, 코어-코더 채널당 정적 ROM의 666 워드들(2664 바이트들)이 다음 프레임에 대한 상태들을 저장하도록 요구된다.
도 11a의 테이블 표현은 USAC WD4 산술 코딩 방식에서 사용되는 테이블들을 기술한다.
완전한 USAC WD4 디코더의 전체 메모리 요구는 프로그램 코드없이 데이터 ROM에 대하여 37000 워드들(148000 바이트들) 그리고 정적 RAM에 대하여 10000 내지 17000 워드들로 추정된다. 명백하게 상기 무잡음 코더는 전체 데이터 ROM 요구의 대략적으로 45%를 소비한다고 보여질 수 있다. 가장 큰 개별적인 테이블은 이미 4096 워드(16384 바이트들)를 소비한다.
모든 테이블들의 조합의 사이즈 및 큰 개별적인 테이블들의 사이즈 모두가, 8-32 kByte의 전형적인 범위에 있는, 저-예산(low-budget) 휴대용 디바이스들에 대한 고정된 포인트 칩들(예를 들어, ARM9e, TIC64xx 등)에 의해 제공되는 전형적인 캐시 사이즈들을 초과한다는 것이 알려져 있다. 이것은 테이블들의 세트가 데이터로의 빠른 랜덤 액세스를 가능하게 하는 빠른 데이터 RAM에 저장되지 못할 수 있다는 것을 의미한다. 이것은 전체 디코딩 프로세스가 슬로우 다운되도록 한다.
다음에서, 제안된 새로운 방식이 간략하게 설명될 것이다.
위에서 언급된 문제들을 극복하기 위해, 향상된 무잡음 코딩 방식이 USAC 드래프트 표준의 WD4에서의 방식을 대체하도록 제안된다. 컨텍스트 기반 산술 코딩 방식으로서, 이것은 USAC 드래프트 표준의 WD4의 방식에 기반하지만, 컨텍스트로부터 누적-빈도들-테이블들의 유도를 위한 수정된 방식에 특징이 있다. 더 나아가, 컨텍스트 유도 및 심볼 코딩이 (USAC 드래프트 표준의 WD4에서와 같은, 4-튜플들과 대조되는) 하나의 스펙트럼 계수의 입도(granularity) 상에서 수행된다. 전체로서, (적어도 몇몇 경우들에서) 7개의 스펙트럼 계수들이 컨텍스트를 위해 사용된다. 매핑에서의 감소에 의해, 전체 64개의 확률 모델들 또는 누적 빈도 테이블들(WD4에서:32) 중 하나가 선택된다.
도 10b는 제안된 방식에서 사용되는 바와 같은, 상태 계산을 위한 컨텍스트의 그래픽 표현을 도시한다(여기에서 제로 영역 검출을 위해 사용되는 컨텍스트는 도 10b에 도시되지 않는다).
다음에서, 제안된 코딩 방식을 이용함으로써 달성될 수 있는, 메모리 요구의 감소와 관련하여 간략한 논의가 제공될 것이다. 제안된 새로운 방식은 900 워드들(3600 바이트들)의 전체 ROM 요구를 제시한다(제안된 코딩 방식에서 사용되는 바와 같은 테이블들을 기술하는 도 11b의 테이블을 보도록 한다).
USAC 드래프트 표준의 WD4에서의 무잡음 코딩 방식의 ROM 요구와 비교하면, ROM 요구가 15994.5 워드들(64978 바이트들)만큼 감소된다(제안되는 무잡음 코딩 방식의 그리고 USAC 드래프트 표준의 WD4에서의 무잡음 코딩 방식의 ROM 요구의 그래픽 표현을 도시하는 도 12a를 또한 보도록 한다). 이것은 완전한 USAC 디코더의 전체 ROM 요구를 대략적으로 37000 워드들로부터 대략적으로 20000 워드들로, 또는 43%보다 많게 감소시킨다(본 발명의 제안뿐만 아니라 USAC 드래프트 표준의 WD4에 따른 전체 USAC 디코더 데이터 ROM 요구의 그래픽 표현을 도시하는 도 12b를 보도록 한다).
더 나아가, 다음 프레임에서 컨텍스트 유도를 위해 필요한 정보량(정적 RAM)이 또한 감소된다. WD4에 따르면, 분해능 10-비트의 4-튜플마다 그룹 인덱스에 추가되는 전형적으로 16-비트의 분해능을 가지는 계수들의 완전한 세트(최대한 1152)가 저장될 필요가 있으며, 이는 코어-코더 채널당 666 워드들(2664 바이트들)까지로 합산된다(완전한 USAC WD4 디코더: 대략적으로 10000 내지 17000 워드들).
본 발명에 따른 실시예들에서 이용되는, 새로운 방식은 스펙트럼 계수당 오직 2-비트로 영구적인 정보를 감소시키며, 이는 전체로서 코더-코더 채널당 72 워드들(288 바이트들)까지로 합산된다. 정정 메모리에 대한 요구는 594 워드들(2376 바이트들)만큼 감소될 수 있다.
다음에서, 코딩 효율성의 가능한 증가에 관한 몇몇 세부사항들이 설명될 것이다. 새로운 제안에 따른 실시예들의 코딩 효율성이 USAC 드래프트 표준의 WD3에 따른 기준 품질 비트스트림들과 비교되었다. 상기 비교는 기준 소프트웨어 디코더에 기반하여, 트랜스코더에 의해 수행되었다. USAC 드래프트 표준의 WD3 및 제안된 코딩 방식에 따른 무잡음 코딩의 비교에 관한 세부사항들에 대하여, 도 9에 대한 참조가 이루어지며, 도 9는 테스트 배치의 도식적 표현을 도시한다.
USAC 드래프트 표준의 WD3 또는 WD4에 따른 실시예들과 비교할 때 본 발명에 따른 실시예들에서 메모리 요구가 크게 감소되더라도, 코딩 효율성은 유지될뿐만 아니라 약간 증가된다. 코딩 효율성은 평균적으로 1.04% 내지 1.39%만큼 증가된다. 세부사항들에 대하여, 도 13a의 테이블에 대한 참조가 이루어지며, 도 13a는 본 발명의 일 실시예에 따른 워킹 드래프트 산술 코더 및 오디오 코더(예를 들어, USAC 오디오 코더)를 사용하여 USAC 코더에 의해 생성되는 평균 비트레이트들의 테이블 표현을 도시한다.
비트 저장소 필링(fill) 레벨의 측정에 의해, 제안된 무잡음 코딩은 각각의 동작 포인트에 대하여 WD3 비트스트림을 무손실 트랜스코딩할 수 있다는 것이 제시되었다. 세부사항들에 대하여, 도 13b의 테이블에 대한 참조가 이루어지며, 도 13b는 USAC WD3에 따른 오디오 코더 및 본 발명의 일 실시예에 따른 오디오 코더를 위한 비트 저장소 제어의 테이블 표현을 도시한다.
동작 모드당 평균 비트레이트들, 프레임 기반의 최소, 최대 및 평균 비트레이트들 및 프레임 기반의 최상/최악 케이스 성능에 대한 세부사항들은 도 14, 15 및 16의 테이블들에서 알려질 수 있으며, 도 14의 테이블은 USAC WD3에 따른 오디오 코더 및 본 발명의 일 실시예에 따른 오디오 코더에 대한 평균 비트레이트들의 테이블 표현을 도시하고, 도 15의 테이블은 프레임 기반의 USAC 오디오 코더의 최소, 최대 및 평균 비트레이트들의 테이블 표현을 도시하고, 도 16의 테이블은 프레임 기반의 최상 및 최악 케이스들의 테이블 표현을 도시한다.
추가적으로, 본 발명에 따른 실시예들은 양호한 스케일가능성(scalability)을 제공한다는 것을 유의하도록 한다. 테이블 사이즈를 적응시킴으로써, 메모리 요구들, 계산 복잡성 및 코딩 효율성 간의 트레이드오프가 상기 요구들에 따라 조정될 수 있다.
9. 비트스트림 신택스
9.1 스펙트럼 무잡음 코더의 페이로드들
다음에서, 스펙트럼 무잡음 코더의 페이로드들에 관한 몇몇 세부사항들이 설명될 것이다. 몇몇 실시예들에서, 예를 들어, 소위 선형-예측-도메인 "코딩 모드" 및 "주파수-도메인" 코딩 모드와 같은, 다수의 상이한 코딩 모드들이 존재한다. 선형-예측-도메인 코딩 모드에서, 오디오 신호의 선형-예측 분석에 기초하여 잡음 쉐이핑이 수행되고, 잡음-쉐이핑된 신호는 주파수-도메인에서 인코딩된다. 주파수-도메인 모드에서, 음향심리 분석에 기초하여 잡음 쉐이핑이 수행되고 오디오 컨텐트의 잡음-쉐이핑된 버전이 주파수-도메인에서 인코딩된다.
"선형-예측 도메인" 코딩된 신호 및 "주파수-도메인" 코딩된 신호 모두로부터의 스펙트럼 계수들은 적응적 컨텍스트 종속적 산술 코딩에 의해 스칼라 양자화되고 그 다음에 무잡음 코딩된다. 양자화된 계수들은 가장 낮은-주파수로부터 가장 높은-주파수로 전송된다. 각각의 개별적인 양자화된 계수는 최상위 2-비트-와이즈 플레인 m, 및 나머지 더-하위 비트-플레인들 r로 분할된다. 상기 값 m은 계수의 이웃에 따라 코딩된다. 나머지 더-하위 비트-플레인들 r은 컨텍스트를 고려하지 않고 엔트로피-코딩된다. 상기 값들 m 및 r은 산술 코더의 심볼들을 형성한다.
상세한 산술 코딩 절차는 여기에서 설명된다.
9.2 신택스 엘리먼트들
다음에서, 산술적으로-코딩된 스펙트럼 정보를 전달하는 비트스트림의 비트스트림 신택스가 도 6a 내지 6h를 참조하여 설명될 것이다.
도 6a는 소위 USAC 원시 데이터 블록의 신택스 표현("usac_raw_data_block()")을 도시한다.
USAC 원시 데이터 블록은 하나 이상의 단일 채널 엘리먼트들("single_channel_element()") 및/또는 하나 이상의 채널 쌍 엘리먼트들("channel_pair_element()")을 포함한다.
이제 도 6b를 참조하면, 단일 채널 엘리먼트의 신택스가 기술된다. 단일 채널 엘리먼트는 코어 모드에 의존하여 선형-예측-도메인 채널 스트림("lpd_channel_stream()") 또는 주파수-도메인 채널 스트림("fd_channel_stream()")을 포함한다.
도 6c는 채널 쌍 엘리먼트의 신택스 표현을 도시한다. 채널 쌍 엘리먼트는 코어 모드 정보("core_mode0", "core_mode1")를 포함한다. 추가적으로, 채널 쌍 엘리먼트는 구성 정보 "ics_info()"를 포함할 수 있다. 추가적으로, 코어 모드 정보에 의존하여, 채널 쌍 엘리먼트는 채널들 중 제 1 채널과 연관되는 선형-예측-도메인 채널 스트림 또는 주파수-도메인 채널 스트림을 포함하고, 채널 쌍 엘리먼트는 또한 채널들 중 제 2 채널과 연관되는 선형-예측-도메인 채널 스트림 또는 주파수-도메인 채널 스트림을 포함한다.
구성 정보 "ics_info()"는 다수의 상이한 구성 정보 아이템들을 포함하고, 상기 아이템들이 본 발명에 대한 특정한 관련성을 가지는 것은 아니며, 상기 구성 정보의 신택스 표현은 도 6d에 도시된다.
주파수-도메인 채널 스트림("fd_channel_stream()")은 이득 정보("global_gain") 및 구성 정보("ics_info()")를 포함하며, 주파수-도메인 채널 스트림의 신택스 표현은 도 6e에 도시된다. 추가적으로, 주파수-도메인 채널 스트림은 스케일 인자 데이터("scale_factor_data()")를 포함하며, 스케일 인자 데이터는 상이한 스케일 인자 밴드들의 스펙트럼 값들의 스케일링을 위해 사용되는 스케일 인자들을 기술하며, 예를 들어, 스케일러(150) 및 리스케일러(240)에 의해 적용된다. 주파수-도메인 채널 스트림은 또한 산술적으로-인코딩된 스펙트럼 값들을 표현하는 산술적으로-코딩된 스펙트럼 데이터("ac_spectral_data()")를 포함한다.
산술적으로-코딩된 스펙트럼 데이터("ac_spectral_data()")는 선택적 산술 리셋 플래그("arith_reset_flag")를 포함하고, 위에서 설명된 바와 같이, 산술 리셋 플래그는 컨텍스트를 선택적으로 리셋하기 위해 사용되며, 산술적으로-코딩된 스펙트럼 데이터의 신택스 표현은 도 6f에 도시된다. 추가적으로, 산술적으로-코딩된 스펙트럼 데이터는 산술적으로-코딩된 스펙트럼 값들을 전달하는 다수의 산술-데이터 블록들("arith_data")을 포함한다. 다음에서 논의될 바와 같이, 산술적으로-코딩된 데이터 블록들의 구조는 (변수 "num_bands"에 의해 표현되는) 주파수 밴드들의 개수 및 또한 산술 리셋 플래그의 상태에 의존한다.
산술적으로-인코딩된 데이터 블록의 구조는 도 6g를 참조하여 설명될 것이며, 도 6g는 산술적으로-코딩된 데이터 블록들의 신택스 표현을 도시한다. 산술적으로-코딩된 데이터 블록 내의 데이터 표현은 인코딩될 스펙트럼 값들의 개수 lg, 산술 리셋 플래그의 상태 및 또한 컨텍스트, 즉, 이전에-인코딩된 스펙트럼 값들에 의존한다.
스펙트럼 값들의 현재 세트의 인코딩을 위한 컨텍스트는 참조 번호(660)에서 도시된 컨텍스트 결정 알고리즘에 따라 결정된다. 컨텍스트 결정 알고리즘에 관한 세부사항들은 도 5a를 참조하여 위에서 논의되었다. 산술적으로-인코딩된 데이터 블록은 코드워드들의 lg개의 세트들을 포함하며, 코드워드들의 각각의 세트는 스펙트럼 값을 나타낸다. 코드워드들의 세트는 1 내지 20 비트를 사용하여 스펙트럼 값의 최상위 비트-플레인 값 m을 표현하는 산술 코드워드 "acod_m[pki][m]"을 포함한다. 추가적으로, 스펙트럼 값이 정확한 표현을 위해 최상위 비트 플레인보다 더 많은 비트 플레인들을 요구하는 경우에, 코드워드들의 세트는 하나 이상의 코드워드들 "acod_r[r]"을 포함한다. 코드워드 "acod_r[r]"은 1 내지 20 비트를 사용하여 더-하위 비트 플레인을 표현한다.
그러나, 스펙트럼 값의 적절한 표현을 위해 (최상위 비트 플레인에 추가하여) 하나 이상의 더-하위 비트-플레인들이 요구되면, 이것은 하나 이상의 산술 이스케이프 코드워드들("ARITH_ESCAPE")을 사용함으로써 시그널링된다. 그리하여, 일반적으로 스펙트럼 값에 대하여 얼마나 많은 비트 플레인들(최상위 비트 플레인 및, 가능하다면, 하나 이상의 추가적인 더-하위 비트 플레인들)이 요구되는지가 결정된다고 말할 수 있다. 하나 이상의 더-하위 비트 플레인들이 요구된다면, 이것은 하나 이상의 산술 이스케이프 코드워드들 "acod_m[pki][ARITH_ESCAPE]"에 의해 시그널링되며, 상기 산술 이스케이프 코드워드들은 현재-선택된 누적-빈도들-테이블에 따라 인코딩되고, 상기 테이블의 누적-빈도들-테이블-인덱스는 변수 pki에 의해 주어진다. 추가적으로, 참조 번호들(664, 662)에서 볼 수 있는 바와 같이, 하나 이상의 산술 이스케이프 코드워드들이 비트스트림에 포함된다면, 컨텍스트가 적응된다. 하나 이상의 산술 이스케이프 코드워드들에 후속하여, 참조 번호(663)에서 도시되는 바와 같이, 산술 코드워드 "acod_m[pki][m]"이 비트스트림에 포함되며, pki는 (산술 이스케이프 코드워드들을 포함시키는 것에 의해 야기되는 컨텍스트 적응을 고려하여) 현재-유효한 확률 모델 인덱스를 지정하며, m은 인코딩 또는 디코딩될 스펙트럼 값의 최상위 비트-플레인 값을 지정한다.
위에서 논의된 바와 같이, 임의의 더-하위-비트 플레인들의 존재는 하나 이상의 코드워드들 "acod_r[r]"이 존재하도록 하며, 상기 코드워드들 각각은 최하위 비트 플레인의 1 비트를 표현한다. 하나 이상의 코드워드들 "acod_r[r]"은, 일정하고 컨텍스트-독립적인, 대응하는 누적-빈도들-테이블에 따라 인코딩된다.
추가적으로, 컨텍스트가 전형적으로 2개의 후속적인 스펙트럼 값들의 인코딩에 대하여 상이하도록, 참조 번호(668)에서 도시되는 바와 같이, 각각의 스펙트럼 값의 인코딩 이후에 컨텍스트가 업데이트된다는 것을 유의하도록 한다.
도 6h는 산술적으로-인코딩된 데이터 블록의 신택스를 정의하는 헬프 엘리먼트들 및 정의들의 범례를 도시한다.
전술한 내용을 요약하기 위해, 오디오 코더(100)에 의해 제공될 수 있고 오디오 디코더(200)에 의해 평가될 수 있는, 비트스트림 포맷이 설명되었다. 산술적으로-인코딩된 스펙트럼 값들의 비트스트림은 위에서 논의된 디코딩 알고리즘에 적합하도록 인코딩된다.
추가적으로, 일반적으로 인코딩이 디코딩의 역 동작이라는 것에 유의하도록 하며, 그 결과 일반적으로 인코더가 위에서-논의된 테이블들을 사용하여 테이블 룩업(lookup)을 수행한다고 가정될 수 있으며, 상기 테이블 룩업은 디코더에 의해 수행되는 테이블 룩업과 대략적으로 역관계이다. 일반적으로, 디코딩 알고리즘 및/또는 원하는 비트스트림 신택스를 알고 있는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 용이하게 산술 인코더를 설계할 수 있을 것이라고 말할 수 있으며, 상기 산술 인코더는 비트스트림 신택스에서 정의되고 산술 디코더에 의해 요구되는 데이터를 제공한다.
10. 도 21 및 22에 따른 추가적인 실시예들
다음에서, 본 발명에 따른 몇몇 추가적인 단순화된 실시예들이 설명될 것이다.
도 21은 본 발명의 일 실시예에 따른 오디오 인코더(2100)의 개략적인 블록 다이어그램을 도시한다. 오디오 인코더(2100)는 입력 오디오 정보(2110)를 수신하고, 그에 기반하여, 인코딩된 오디오 정보(2112)를 제공하도록 구성된다. 오디오 인코더(2100)는 에너지-압축 시간-도메인-대-주파수-도메인 컨버터(2120)를 포함하며, 상기 컨버터는 입력 오디오 정보(2110)의 시간-도메인 표현(2122)을 수신하고, 그에 기반하여, 주파수-도메인 오디오 표현(2124)을 제공하도록 구성되며, 그 결과 주파수-도메인 오디오 표현은 스펙트럼 값들의 세트(예를 들어, 스펙트럼 값들 a)를 포함한다. 오디오 신호 인코더(2100)는 또한 산술 인코더(2130)를 포함하며, 산술 인코더(2130)는 가변-길이 코드워드를 사용하여 스펙트럼 값들(2124) 또는 스펙트럼 값들(2124)의 사전처리된 버전을 인코딩하도록 구성된다. 산술 인코더(2130)는 스펙트럼 값 또는 스펙트럼 값의 최상위 비트 플레인의 값을 코드 값(예를 들어, 가변-길이 코드워드를 표현하는 코드 값)으로 매핑하도록 구성된다.
산술 인코더(2130)는 매핑 규칙 선택(2132) 및 컨텍스트 값 결정(2136)을 포함한다. 산술 인코더는 컨텍스트 상태를 기술하는 수치 현재 컨텍스트 값에 의존하여 스펙트럼 값(2124) 또는 스펙트럼 값(2124)의 최상위 비트 플레인의 (가변 길이 코드워드를 표현할 수 있는) 코드 값으로의 매핑을 기술하는 매핑 규칙을 선택하도록 구성된다. 산술 인코더는 다수의 이전에 인코딩된 스펙트럼 값들에 의존하여 그리고 인코딩될 스펙트럼 값이 제 1 미리 결정된 주파수 영역 또는 제 2 미리 결정된 주파수 영역 내에 있는지 여부에 의존하여, 매핑 규칙 선택(2132)을 위해 사용되는, 수치 현재 컨텍스트 값(2134)을 결정하도록 구성된다. 이에 따라, 매핑(2131)은 상이한 주파수 영역들의 특정한 특성들로 적응된다.
도 22는 본 발명의 다른 실시예에 따른 오디오 신호 디코더(2200)의 개략적인 블록 다이어그램을 도시한다. 오디오 신호 디코더(2200)는 인코딩된 오디오 정보(2210)를 수신하고, 그에 기반하여, 디코딩된 오디오 정보(2212)를 제공하도록 구성된다. 오디오 신호 디코더(2200)는 산술 디코더(2220)를 포함하며, 산술 디코더(2200)는 스펙트럼 값들의 산술적으로 인코딩된 표현(2222)을 수신하고, 그에 기반하여, 다수의 디코딩된 스펙트럼 값들(2224)(예를 들어, 디코딩된 스펙트럼 값들 a)을 제공하도록 구성된다. 오디오 신호 디코더(2200)는 또한 주파수-도메인-대-시간-도메인 컨버터(2230)를 포함하며, 상기 컨버터는 디코딩된 오디오 정보(2212)를 획득하기 위하여, 디코딩된 스펙트럼 값들(2224)을 수신하고 디코딩된 스펙트럼 값들을 사용하여 시간-도메인 오디오 표현을 제공하도록 구성된다.
산술 디코더(2220)는 매핑(2225)을 포함하며, 상기 매핑(2225)은 코드 값(예를 들어, 인코딩된 오디오 정보를 표현하는 비트스트림으로부터 추출된 코드 값)을 심볼 코드로 매핑하는데 이용된다(심볼 코드는, 예를 들어, 디코딩된 스펙트럼 값 또는 디코딩된 스펙트럼 값의 최상위 비트 플레인을 기술할 수 있다). 산술 디코더는 매핑 규칙 선택(2226)을 더 포함하며, 매핑 규칙 선택(2226)은 매핑 규칙 선택 정보(2227)를 매핑(2225)으로 제공한다. 산술 디코더(2220)는 또한 컨텍스트 값 결정(2228)을 포함하며, 컨텍스트 값 결정(2228)은 수치 현재 컨텍스트 값(2229)을 매핑 규칙 선택(2226)으로 제공한다. 산술 디코더(2220)는 컨텍스트 상태에 의존하여 코드 값(예를 들어, 인코딩된 오디오 정보를 표현하는 비트스트림으로부터 추출된 코드 값)의 심볼 코드(예를 들어, 디코딩된 스펙트럼 값 또는 디코딩된 스펙트럼 값의 최상위 비트 플레인을 표현하는 수치 값)로의 매핑을 기술하는 매핑 규칙을 선택하도록 구성된다. 산술 디코더는 다수의 이전에 디코딩된 스펙트럼 값들에 의존하여 그리고 디코딩될 스펙트럼 값이 제 1 미리 결정된 주파수 영역 또는 제 2 미리 결정된 주파수 영역 내에 있는지 여부에 의존하여 현재 컨텍스트 상태를 기술하는 수치 현재 컨텍스트 값을 결정하도록 구성된다.
이에 따라, 상이한 주파수 영역들의 상이한 특성들이 매핑(2225)에서 고려되며, 이는 전형적으로 계산적 노력을 상당하게 증가시키지 않고 증가된 코딩 효율성을 가져온다.
11. 구현 대안들
몇몇 양상들이 장치와 관련해서 설명되었더라도, 이러한 양상들이 또한 대응하는 방법의 기재를 표현한다는 것은 명백하며, 여기서 블록 또는 디바이스는 방법 단계 또는 방법 단계의 특징에 대응한다. 유사하게, 방법 단계와 관련하여 설명된 양상들은 또한 대응하는 블록 또는 아이템 또는 대응하는 장치의 특징의 기재를 표현한다. 방법 단계들의 일부 또는 전부는, 예를 들어, 마이크로프로세서, 프로그래밍 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 하드웨어 장치를 사용하여) 실행될 수 있다. 몇몇 실시예들에서, 가장 중요한 방법 단계들의 몇몇 하나 이상의 단계들이 이러한 장치에 의해 실행될 수 있다.
본 발명의 인코딩된 오디오 신호는 디지털 저장 매체 상에 저장될 수 있거나 또는 인터넷과 같은 무선 전송 매체 또는 유선 전송 매체와 같은 전송 매체를 통해 전송될 수 있다.
특정한 구현 요구들에 의존하여, 본 발명의 실시예들은 하드웨어 또는 소프트웨어로 구현될 수 있다. 이러한 구현은, 예를 들어, 각각의 방법이 수행되도록 프로그래밍 가능한 컴퓨터 시스템과 협동하는(또는 협동할 수 있는), 전자적으로 판독가능한 제어 신호들을 갖는, 플로피 디스크, DVD, 블루-레이, CD, ROM, PROM, EPROM, EEPROM 또는 플래시 메모리와 같은 디지털 저장 매체를 사용하여 수행될 수 있다. 그러므로, 디지털 저장 매체는 컴퓨터 판독가능할 수 있다.
본 발명에 따른 몇몇 실시예들은 전자적으로 판독가능한 제어 신호들을 가지는 데이터 캐리어를 포함하며, 전자적으로 판독가능한 제어 신호들은 여기에서 설명되는 방법들 중 하나가 수행되도록 프로그래밍 가능한 컴퓨터 시스템과 협동할 수 있다.
일반적으로, 본 발명의 실시예들은 프로그램 코드를 갖는 컴퓨터 프로그램 제품(product)으로서 구현될 수 있으며, 상기 프로그램 코드는 컴퓨터 프로그램 제품이 컴퓨터 상에서 실행될 때 방법들 중 하나를 수행하도록 동작한다. 예를 들어, 프로그램 코드는 기계 판독가능한 캐리어 상에 저장될 수 있다.
다른 실시예들은, 기계 판독가능한 캐리어 상에 저장되는, 여기에서 설명되는 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함한다.
다시 말하면, 그러므로 본 발명의 방법의 일 실시예는, 컴퓨터 프로그램이 컴퓨터 상에 실행될 때, 여기에서 설명되는 방법들 중 하나를 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램이다.
그러므로, 본 발명의 방법들의 추가적인 실시예는, 기록된, 여기에서 설명되는 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함하는 데이터 캐리어(또는 디지털 저장 매체 또는 컴퓨터-판독가능 매체)이다.
그러므로, 본 발명의 방법의 추가적인 실시예는 여기에서 설명되는 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 표현하는 데이터 스트림 또는 신호들의 시퀀스이다. 상기 데이터 스트림 또는 신호들의 시퀀스는, 예를 들어, 인터넷을 통해 데이터 통신 접속을 경유하여 전달되도록 예시적으로 구성될 수 있다.
추가적인 일 실시예는 여기에서 설명되는 방법들 중 하나를 수행하도록 구성되거나 또는 적응되는, 예를 들어, 컴퓨터 또는 프로그래밍 가능한 로직 디바이스와 같은 프로세싱 수단을 포함한다.
추가적인 일 실시예는 여기에서 설명되는 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램이 설치된 컴퓨터를 포함한다.
몇몇 실시예들에서, 프로그래밍 가능한 로직 디바이스(예를 들어, 필드 프로그래밍 가능한 게이트 어레이)는 여기에서 설명되는 방법들의 기능들 중 일부 또는 전부를 수행하도록 사용될 수 있다. 몇몇 실시예들에서, 필드 프로그래밍 가능한 게이트 어레이는 여기에서 설명되는 방법들 중 하나를 수행하기 위하여 마이크로프로세서와 협동할 수 있다. 일반적으로, 바람직하게는 상기 방법들은 임의의 하드웨어 장치에 의해 수행된다.
위에서 설명된 실시예들은 단지 본 발명의 원리들에 대한 설명이다. 여기에서 설명되는 배치들 및 세부사항들의 수정들 및 변형들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자들에게 명백하다는 것을 이해하도록 한다. 그러므로, 여기에서 실시예들의 기재 및 설명에 의해 제시되는 특정한 세부사항들에 의해서가 아니라 후술할 특허 청구항들의 범위에 의해서만 제한되도록 의도된다.
전술한 내용은 특히 위에서의 특정한 실시예들과 관련하여 도시되고 설명되었으나, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자들은 본 발명의 정신 및 범위를 벗어남이 없이 형태들 및 세부사항들에서 다양한 다른 변화들이 이루어질 수 있음을 이해할 것이다. 여기에서 제시되고 후속하는 청구항들에 의해 이해되는 더 넓은 개념을 벗어남이 없이 상이한 실시예들에 적응시켜 다양한 변화들이 이루어질 수 있음을 이해해야 할 것이다.
12. 결론
결론을 위해, 본 발명에 따른 실시예들이 향상된 스펙트럼 무잡음 코딩 방식을 제시함에 주목할 수 있다. 새로운 제안에 따른 실시예들은 16894.5 워드들로부터 900 워드들(ROM)로의 그리고 666 워드들로부터 72 워드들(코어-코더 채널당 정적 RAM)로의 메모리 요구의 상당한 감소를 가능하게 한다. 이것은 일 실시예에서 대략적으로 43%만큼 완전한 시스템의 데이터 ROM 요구의 감소를 가능하게 한다. 동시에, 코딩 성능은 완전하게 유지될 뿐만 아니라 평균적으로 증가된다. WD3의(또는 USAC 드래프트 표준의 WD3에 따라 제공되는 비트스트림의) 무손실 트랜스코딩이 가능하다고 증명되었다. 이에 따라, 본 발명에 따른 일 실시예는 여기에서 설명되는 무잡음 디코딩을 USAC 드래프트 표준의 업커밍(upcoming) 워킹 드래프트에 채택함으로써 획득된다.
요약을 위해, 일 실시예에서 제안된 새로운 무잡음 코딩은 도 6g에서 도시되는 바와 같은 비트스트림 엘리먼트 "arith_data()"의 신택스와 관련하여, 위에서 설명되고 도 5h에서 도시된 바와 같은 스펙트럼 무잡음 코더의 페이로드들과 관련하여, 위에서 설명된 바와 같은 스펙트럼 무잡음 코딩과 관련하여, 도 4에 도시된 바와 같은 상태 계산을 위한 컨텍스트와 관련하여, 도 5i에 도시된 바와 같은 정의들과 관련하여, 도 5a, 5b, 5c, 5e, 5g, 5h를 참조하여 위에서 설명된 바와 같은 디코딩 프로세스와 관련하여, 도 17, 18, 20에 도시된 바와 같은 테이블들과 관련하여, 그리고 도 5d에 도시된 바와 같은 함수 "get_pk"와 관련하여, MPEG USAC 워킹 드래프트에서의 수정들을 발생시킬 수 있다. 그러나, 대안적으로 도 20에 따른 테이블 "ari_s_hash"는 도 17의 테이블 "ari_s_hash" 대신에 사용될 수 있고, 도 5f의 함수 "get_pk"는 도 5d에 따른 함수 "get_pk" 대신에 사용될 수 있다.

Claims (16)

  1. 인코딩된 오디오 정보(210; 810; 2210)에 기초하여 디코딩된 오디오 정보(212; 812; 2212)를 제공하기 위한 오디오 디코더(200; 800; 2200)로서,
    다수의 디코딩된 스펙트럼 값들(232; 822; 2224; a)을 상기 스펙트럼 값들의 산술적으로-인코딩된 표현(222; 821; 2222; acod_m[pki][m], acod_r[r])에 기초하여 제공하기 위한 산술 디코더(230; 820; 2220); 및
    상기 디코딩된 오디오 정보를 획득하기 위해 상기 디코딩된 스펙트럼 값들을 사용하여 시간-도메인 오디오 표현을 제공하기 위한 주파수-도메인-대-시간-도메인 변환기(260; 830; 2230)를 포함하며,
    상기 산술 디코더는 컨텍스트 상태에 의존하여 코드 값(acod_m[pki][m];value)의 심볼 코드(symbol)로의 매핑을 기술하는 매핑 규칙(cum_freq, ari_cf_m[pki][9])을 선택하도록 구성되며,
    상기 산술 디코더는 다수의 이전에 디코딩된 스펙트럼 값들 (a)에 의존하여 그리고 디코딩될 스펙트럼 값 (a)가 제 1 미리 결정된 주파수 영역 또는 제 2 미리 결정된 주파수 영역 내에 있는지 여부에 의존하여 현재 컨텍스트 상태를 기술하는 수치 현재 컨텍스트 값(s)을 결정하도록 구성되는, 오디오 디코더.
  2. 제 1 항에 있어서,
    상기 산술 디코더는 상기 디코딩될 스펙트럼 값(a)이 제 1 미리 결정된 주파수 영역 또는 제 2 미리 결정된 주파수 영역 내에 있는지 여부에 의존하여 상기 수치 현재 컨텍스트 값(s)을 선택적으로 수정하도록 구성되는, 오디오 디코더.
  3. 제 1 항에 있어서,
    상기 산술 디코더는 디코딩될 스펙트럼 값이 제 1 미리 결정된 주파수 영역 또는 제 2 미리 결정된 주파수 영역 내에 있는지 여부에 의존하여, 상기 수치 현재 컨텍스트 값(s)이 다수의 이전에 디코딩된 스펙트럼 값들의 조합 또는 다수의 이전에 디코딩된 스펙트럼 값들로부터 유도되는 다수의 중간 값들(c0, c1, c2, c3, c4, c5, c6)의 조합에 기반하도록, 그리고 상기 수치 현재 컨텍스트 값(s)이 다수의 이전에 디코딩된 스펙트럼 값들의 조합 또는 다수의 이전에 디코딩된 스펙트럼 값들로부터 유도되는 다수의 중간 값들(c0, c1, c2, c3, c4, c5, c6)의 조합에 기초하여 획득되는 값을 초과하여 선택적으로 증가되도록, 상기 수치 현재 컨텍스트 값(s)을 결정하도록 구성되는, 오디오 디코더.
  4. 제 1 항에 있어서,
    상기 산술 디코더는 상기 수치 현재 컨텍스트 값(s)을 결정하기 위해 적어도 제 1 주파수 영역 및 제 2 주파수 영역을 구별하도록 구성되며,
    상기 제 1 주파수 영역은 오디오 컨텐트의 주어진 시간 부분과 연관되는 스펙트럼 값들의 적어도 15%를 포함하고, 상기 제 1 주파수 영역은 가장 낮은 주파수를 갖는 연관된 스펙트럼 값을 포함하는 낮은-주파수 영역인, 오디오 디코더.
  5. 제 1 항에 있어서,
    상기 산술 디코더는 상기 수치 현재 컨텍스트 값(s)을 결정하기 위해 적어도 제 1 주파수 영역 및 제 2 주파수 영역을 구별하도록 구성되며,
    상기 제 2 주파수 영역은 오디오 컨텐트의 주어진 시간 부분과 연관되는 스펙트럼 값들의 적어도 15%를 포함하고, 상기 제 2 주파수 영역은 가장 높은 주파수를 갖는 연관된 스펙트럼 값을 포함하는 높은-주파수 영역인, 오디오 디코더.
  6. 제 1 항에 있어서,
    상기 산술 디코더는 적어도 3개의 주파수 영역들 중 어느 영역에 디코딩될 스펙트럼 값이 있는지의 결정에 의존하여 상기 수치 현재 컨텍스트 값(s)을 결정하기 위해, 적어도 제 1 주파수 영역, 제 2 주파수 영역 및 제 3 주파수 영역 을 구별하도록 구성되며,
    상기 제 1 주파수 영역, 상기 제 2 주파수 영역 및 상기 제 3 주파수 영역 각각은 다수의 연관된 스펙트럼 값들을 포함하는, 오디오 디코더.
  7. 제 6 항에 있어서,
    오디오 정보의 주어진 시간 부분의 스펙트럼 값들의 적어도 1/8은 상기 제 1 주파수 영역과 연관되고, 상기 오디오 정보의 주어진 시간 부분의 스펙트럼 값들의 적어도 1/5은 상기 제 2 주파수 영역과 연관되고, 상기 오디오 정보의 주어진 시간 부분의 스펙트럼 값들의 적어도 1/4은 상기 제 3 주파수 영역과 연관되는, 오디오 디코더.
  8. 제 1 항에 있어서,
    상기 산술 디코더는 적어도 제 1 피가수(summand) 및 제 2 피가수를 포함하는 합을 계산하고, 합산의 결과로서 상기 수치 현재 컨텍스트 값(s)을 획득하도록 구성되고,
    상기 제 1 피가수는 이전에 디코딩된 스펙트럼 값들(a)의 크기들을 기술하는 다수의 중간 값들(c0, c1, c2, c3, c4, c5, c6)의 조합에 의해 획득되며,
    상기 제 2 피가수 (region)은, 디코딩될 스펙트럼 값이 다수의 주파수 영역들 중에서 어떤 주파수 영역과 연관되는지를 기술하는, 오디오 디코더.
  9. 제 1 항에 있어서,
    상기 산술 디코더는 다수의 상이한 주파수 영역들 중에서 어떤 주파수 영역에 디코딩될 스펙트럼 값이 있는지의 결정에 의존하여 상기 수치 현재 컨텍스트 값(s)의 이진 표현의 하나 이상의 미리 결정된 비트 위치들을 수정하도록 구성되는, 오디오 디코더.
  10. 제 1 항에 있어서,
    상기 산술 디코더는 다수의 상이한 수치 현재 컨텍스트 값들(s)이 동일한 매핑 규칙의 선택을 야기하도록, 상기 수치 현재 컨텍스트 값(s)에 의존하여 매핑 규칙을 선택하도록 구성되는, 오디오 디코더.
  11. 제 1 항에 있어서,
    상기 산술 디코더는 상기 수치 현재 컨텍스트 값에 의존하여 매핑 규칙의 2-단계 선택을 수행하도록 구성되고,
    상기 산술 디코더는 상기 수치 현재 컨텍스트 값(s) 또는 상기 수치 현재 컨텍스트 값으로부터 유도되는 값이 다이렉트-히트(direct-hit) 테이블(ari_s_hash)의 엔트리에 의해 기술되는 중요 상태 값과 동일한지 여부를, 제 1 선택 단계에서, 체크하도록 구성되고,
    상기 산술 디코더는, 상기 수치 현재 컨텍스트 값(s) 또는 상기 수치 현재 컨텍스트 값으로부터 유도되는 값이 상기 다이렉트-히트 테이블의 엔트리들에 의해 기술되는 중요 상태 값들과 상이한 경우에만 실행되는 제 2 선택 단계에서, 다수의 구간들 중에서 어떤 구간에 상기 수치 현재 컨텍스트 값(s)이 있는지를 결정하도록 구성되고,
    상기 산술 디코더는 상기 제 1 선택 단계 또는 상기 제 2 선택 단계의 결과에 의존하여 상기 매핑 규칙을 선택하도록 구성되며,
    상기 산술 디코더는 디코딩될 스펙트럼 값이 제 1 주파수 영역에 있는지 또는 제 2 주파수 영역에 있는지 여부에 의존하여, 상기 제 1 선택 단계 또는 상기 제 2 선택 단계에서, 상기 매핑 규칙을 선택하도록 구성되는, 오디오 디코더.
  12. 제 11 항에 있어서,
    상기 산술 디코더는 다수의 상이한 주파수 영역들 중에서 어떤 주파수 영역에 디코딩될 스펙트럼 값이 있는지의 결정에 의존하여 상기 수치 현재 컨텍스트 값(s)의 이진 표현의 하나 이상의 최하위 비트 부분들을 선택적으로 수정하도록 구성되고,
    상기 산술 디코더는, 상기 제 2 선택 단계에서, 다수의 구간들 중에서 어떤 구간에 상기 수치 현재 컨텍스트 값(s)의 이진 표현이 있는지를 결정하고,
    일부 수치 현재 컨텍스트 값들이 상기 디코딩될 스펙트럼 값이 있는 주파수 영역과 독립적으로 동일한 매핑 규칙의 선택을 야기하도록, 그리고 일부 수치 현재 컨텍스트 값들에 대하여 상기 디코딩될 스펙트럼 값이 어떤 주파수 영역에 있는지에 의존하여 상기 매핑 규칙이 선택되도록 매핑을 선택하는, 오디오 디코더.
  13. 입력 오디오 정보(110; 710; 2110)에 기초하여 인코딩된 오디오 정보(112; 712; 2112)를 제공하기 위한 오디오 신호 인코더(100; 700; 2100)로서,
    주파수-도메인 오디오 표현(132; 722; 2124)이 스펙트럼 값들(a)의 세트를 포함하도록, 상기 입력 오디오 정보의 시간-도메인 표현(110; 710; 2112)에 기초하여 상기 주파수-도메인 오디오 표현을 제공하기 위한 에너지-압축 시간-도메인-대-주파수-도메인 변환기(130; 720; 2120);
    가변 길이 코드워드(acod_m, acod_r)를 사용하여, 스펙트럼 값들(a) 또는 스펙트럼 값들의 사전처리된(preprocessed) 버전을 인코딩하도록 구성되는 산술 인코더(170; 730; 2130)를 포함하며,
    상기 산술 인코더는 스펙트럼 값(a) 또는 스펙트럼 값(a)의 최상위 비트 플레인의 값(m)을 코드 값(acod_m)으로 매핑하도록 구성되고,
    상기 산술 인코더는 컨텍스트 상태(s)에 의존하여 스펙트럼 값(a) 또는 스펙트럼 값(a)의 최상위 비트 플레인(m)의 코드 값으로의 매핑을 기술하는 매핑 규칙(ari_cf_m[pki][9])을 선택하도록 구성되며,
    상기 산술 인코더는 다수의 이전에 인코딩된 스펙트럼 값들에 의존하여 그리고 인코딩될 스펙트럼 값이 제 1 미리 결정된 주파수 영역 또는 제 2 미리 결정된 주파수 영역 내에 있는지 여부에 의존하여 현재 컨텍스트 상태를 기술하는 수치 현재 컨텍스트 값(s)을 결정하도록 구성되는, 오디오 신호 인코더.
  14. 인코딩된 오디오 정보에 기초하여 디코딩된 오디오 정보를 제공하기 위한 방법으로서,
    다수의 디코딩된 스펙트럼 값들을 상기 스펙트럼 값들의 산술적으로-인코딩된 표현에 기초하여 제공하는 단계; 및
    상기 디코딩된 오디오 정보를 획득하기 위해 상기 디코딩된 스펙트럼 값들을 사용하여 시간-도메인 오디오 표현을 제공하도록 주파수-도메인-대-시간-도메인 변환을 수행하는 단계를 포함하며,
    코드 값의 심볼 코드로의 매핑을 기술하는 매핑 규칙은 컨텍스트 상태에 의존하여 선택되고,
    현재 컨텍스트 상태를 기술하는 수치 현재 컨텍스트 값은 다수의 이전에 디코딩된 스펙트럼 값들에 의존하여 그리고 디코딩될 스펙트럼 값이 제 1 미리 결정된 주파수 영역 또는 제 2 미리 결정된 주파수 영역 내에 있는지 여부에 의존하여 결정되는, 인코딩된 오디오 정보에 기초하여 디코딩된 오디오 정보를 제공하기 위한 방법.
  15. 입력 오디오 정보에 기초하여 인코딩된 오디오 정보를 제공하기 위한 방법으로서,
    주파수-도메인 오디오 표현이 스펙트럼 값들의 세트를 포함하도록, 상기 입력 오디오 정보의 시간-도메인 표현에 기초하여 상기 주파수-도메인 오디오 표현을 제공하기 위해 에너지-압축 시간-도메인-대-주파수-도메인 변환을 수행하는 단계; 및
    가변 길이 코드워드를 사용하여 스펙트럼 값 또는 스펙트럼 값의 사전처리된 버전을 인코딩하는 단계를 포함하며,
    스펙트럼 값 또는 스펙트럼 값의 최상위 비트 플레인의 값은 코드 값으로 매핑되고,
    스펙트럼 값 또는 스펙트럼 값의 최상위 비트 플레인의 코드 값으로의 매핑을 기술하는 매핑 규칙은 컨텍스트 상태에 의존하여 선택되고,
    현재 컨텍스트 상태를 기술하는 수치 현재 컨텍스트 값은 다수의 이전에 인코딩된 스펙트럼 값들에 의존하여 그리고 인코딩될 스펙트럼 값이 제 1 미리 결정된 주파수 영역 또는 제 2 미리 결정된 주파수 영역 내에 있는지 여부에 의존하여 결정되는, 입력 오디오 정보에 기초하여 인코딩된 오디오 정보를 제공하기 위한 방법.
  16. 컴퓨터에서 실행될 때 제14항 또는 제15항에 따른 방법을 수행하기 위한 컴퓨터 프로그램을 저장한 컴퓨터-판독가능 저장 매체.
KR1020127012935A 2009-10-20 2010-10-19 영역-의존 산술 코딩 매핑 규칙을 이용하는 오디오 인코더, 오디오 디코더, 오디오 정보를 인코딩하기 위한 방법, 오디오 정보를 디코딩하기 위한 방법 및 컴퓨터 프로그램 KR101419151B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US25345909P 2009-10-20 2009-10-20
US61/253,459 2009-10-20
PCT/EP2010/065726 WO2011048099A1 (en) 2009-10-20 2010-10-19 Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a region-dependent arithmetic coding mapping rule

Publications (2)

Publication Number Publication Date
KR20120074312A KR20120074312A (ko) 2012-07-05
KR101419151B1 true KR101419151B1 (ko) 2014-07-11

Family

ID=43259832

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020127012935A KR101419151B1 (ko) 2009-10-20 2010-10-19 영역-의존 산술 코딩 매핑 규칙을 이용하는 오디오 인코더, 오디오 디코더, 오디오 정보를 인코딩하기 위한 방법, 오디오 정보를 디코딩하기 위한 방법 및 컴퓨터 프로그램
KR1020127012845A KR101411780B1 (ko) 2009-10-20 2010-10-19 이전의 디코딩된 스펙트럼 값들의 그룹의 검출을 이용하는 오디오 인코더, 오디오 디코더, 오디오 정보를 인코딩하기 위한 방법, 오디오 정보를 디코딩하기 위한 방법 및 컴퓨터 프로그램
KR1020127012640A KR101419148B1 (ko) 2009-10-20 2010-10-19 반복 구간 사이즈 감소를 이용한 오디오 인코더, 오디오 디코더, 오디오 정보 인코딩 방법, 오디오 정보 디코딩 방법, 및 컴퓨터 프로그램

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020127012845A KR101411780B1 (ko) 2009-10-20 2010-10-19 이전의 디코딩된 스펙트럼 값들의 그룹의 검출을 이용하는 오디오 인코더, 오디오 디코더, 오디오 정보를 인코딩하기 위한 방법, 오디오 정보를 디코딩하기 위한 방법 및 컴퓨터 프로그램
KR1020127012640A KR101419148B1 (ko) 2009-10-20 2010-10-19 반복 구간 사이즈 감소를 이용한 오디오 인코더, 오디오 디코더, 오디오 정보 인코딩 방법, 오디오 정보 디코딩 방법, 및 컴퓨터 프로그램

Country Status (19)

Country Link
US (6) US8706510B2 (ko)
EP (3) EP2491553B1 (ko)
JP (3) JP5707410B2 (ko)
KR (3) KR101419151B1 (ko)
CN (3) CN102667921B (ko)
AR (3) AR078705A1 (ko)
AU (1) AU2010309820B2 (ko)
BR (6) BR122022013496B1 (ko)
CA (4) CA2907353C (ko)
ES (3) ES2454020T3 (ko)
HK (2) HK1175289A1 (ko)
MX (3) MX2012004564A (ko)
MY (3) MY188408A (ko)
PL (3) PL2491552T3 (ko)
PT (1) PT2491553T (ko)
RU (3) RU2596596C2 (ko)
TW (3) TWI430262B (ko)
WO (3) WO2011048098A1 (ko)
ZA (3) ZA201203607B (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2934052T3 (es) 2008-07-11 2023-02-16 Fraunhofer Ges Forschung Codificador de audio y decodificador de audio
EP2315358A1 (en) * 2009-10-09 2011-04-27 Thomson Licensing Method and device for arithmetic encoding or arithmetic decoding
PL2491552T3 (pl) 2009-10-20 2015-06-30 Fraunhofer Ges Forschung Koder audio, dekoder audio, sposób kodowania informacji audio, sposób dekodowania informacji audio i program komputerowy z zastosowaniem wykrywania grupy uprzednio zdekodowanych wartości widmowych
KR101339058B1 (ko) 2010-01-12 2013-12-10 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 오디오 인코더, 오디오 디코더, 오디오 정보 인코딩 방법, 오디오 정보 디코딩 방법, 및 유효 상태 값들과 구간 경계들을 모두 기술하는 해시 테이블을 이용하는 컴퓨터 프로그램
PL2596494T3 (pl) * 2010-07-20 2021-01-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Dekoder audio, sposób dekodowania audio i program komputerowy
CN106409299B (zh) 2012-03-29 2019-11-05 华为技术有限公司 信号编码和解码的方法和设备
CN104811704B (zh) 2012-07-02 2018-07-20 三星电子株式会社 视频的解码方法
TWI557727B (zh) 2013-04-05 2016-11-11 杜比國際公司 音訊處理系統、多媒體處理系統、處理音訊位元流的方法以及電腦程式產品
EP2830055A1 (en) 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Context-based entropy coding of sample values of a spectral envelope
JP6243540B2 (ja) * 2013-09-16 2017-12-06 サムスン エレクトロニクス カンパニー リミテッド スペクトル符号化方法及びスペクトル復号化方法
KR102315920B1 (ko) * 2013-09-16 2021-10-21 삼성전자주식회사 신호 부호화방법 및 장치와 신호 복호화방법 및 장치
KR20230066137A (ko) 2014-07-28 2023-05-12 삼성전자주식회사 신호 부호화방법 및 장치와 신호 복호화방법 및 장치
US11670306B2 (en) * 2014-09-04 2023-06-06 Sony Corporation Transmission device, transmission method, reception device and reception method
TWI693594B (zh) * 2015-03-13 2020-05-11 瑞典商杜比國際公司 解碼具有增強頻譜帶複製元資料在至少一填充元素中的音訊位元流
TWI732403B (zh) * 2015-03-13 2021-07-01 瑞典商杜比國際公司 解碼具有增強頻譜帶複製元資料在至少一填充元素中的音訊位元流
WO2017050398A1 (en) * 2015-09-25 2017-03-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder, decoder and methods for signal-adaptive switching of the overlap ratio in audio transform coding
US10812550B1 (en) * 2016-08-03 2020-10-20 Amazon Technologies, Inc. Bitrate allocation for a multichannel media stream
EP3822969B1 (en) * 2017-01-10 2023-07-26 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio decoder, audio encoder, method for providing a decoded audio signal, method for providing an encoded audio signal, audio stream, audio stream provider and computer program using a stream identifier
EP3483886A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Selecting pitch lag
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
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
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
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
EP3483880A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Temporal noise shaping
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
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
KR20200000649A (ko) * 2018-06-25 2020-01-03 네이버 주식회사 오디오 병렬 트랜스코딩을 위한 방법 및 시스템
TWI672911B (zh) * 2019-03-06 2019-09-21 瑞昱半導體股份有限公司 解碼方法及相關電路
CN111757168B (zh) * 2019-03-29 2022-08-19 腾讯科技(深圳)有限公司 音频解码方法、装置、存储介质及设备
US11024322B2 (en) * 2019-05-31 2021-06-01 Verizon Patent And Licensing Inc. Methods and systems for encoding frequency-domain data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050203731A1 (en) 2004-03-10 2005-09-15 Samsung Electronics Co., Ltd. Lossless audio coding/decoding method and apparatus

Family Cites Families (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5222189A (en) 1989-01-27 1993-06-22 Dolby Laboratories Licensing Corporation Low time-delay transform coder, decoder, and encoder/decoder for high-quality audio
US5388181A (en) * 1990-05-29 1995-02-07 Anderson; David J. Digital audio compression system
US5659659A (en) 1993-07-26 1997-08-19 Alaris, Inc. Speech compressor using trellis encoding and linear prediction
US5798719A (en) 1994-07-29 1998-08-25 Discovision Associates Parallel Huffman decoder
WO1997029549A1 (fr) * 1996-02-08 1997-08-14 Matsushita Electric Industrial Co., Ltd. Codeur, decodeur, codeur-decodeur et support d'enregistrement de signal audio large bande
JP3305190B2 (ja) * 1996-03-11 2002-07-22 富士通株式会社 データ圧縮装置及びデータ復元装置
US6269338B1 (en) 1996-10-10 2001-07-31 U.S. Philips Corporation Data compression and expansion of an audio signal
JP3367370B2 (ja) 1997-03-14 2003-01-14 三菱電機株式会社 適応符号化方法
DE19730130C2 (de) 1997-07-14 2002-02-28 Fraunhofer Ges Forschung Verfahren zum Codieren eines Audiosignals
JPH11225078A (ja) * 1997-09-29 1999-08-17 Canon Inf Syst Res Australia Pty Ltd データ圧縮方法及び装置
RU2214047C2 (ru) * 1997-11-19 2003-10-10 Самсунг Электроникс Ко., Лтд. Способ и устройство для масштабируемого кодирования/декодирования аудиосигналов
KR100335611B1 (ko) * 1997-11-20 2002-10-09 삼성전자 주식회사 비트율 조절이 가능한 스테레오 오디오 부호화/복호화 방법 및 장치
KR100335609B1 (ko) * 1997-11-20 2002-10-04 삼성전자 주식회사 비트율조절이가능한오디오부호화/복호화방법및장치
US6029126A (en) 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
US6704705B1 (en) 1998-09-04 2004-03-09 Nortel Networks Limited Perceptual audio coding
DE19840835C2 (de) 1998-09-07 2003-01-09 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Entropiecodieren von Informationswörtern und Vorrichtung und Verfahren zum Decodieren von Entropie-codierten Informationswörtern
CA2323561C (en) 1999-01-13 2013-03-26 Koninklijke Philips Electronics N.V. Embedding supplemental data in an encoded signal
DE19910621C2 (de) * 1999-03-10 2001-01-25 Thomas Poetter Vorrichtung und Verfahren zum Verbergen von Informationen und Vorrichtung und Verfahren zum Extrahieren von Informationen
US6751641B1 (en) 1999-08-17 2004-06-15 Eric Swanson Time domain data converter with output frequency domain conversion
US6978236B1 (en) 1999-10-01 2005-12-20 Coding Technologies Ab Efficient spectral envelope coding using variable time/frequency resolution and time/frequency switching
JP2001119302A (ja) 1999-10-15 2001-04-27 Canon Inc 符号化装置、復号装置、情報処理システム、情報処理方法、及び記憶媒体
US7260523B2 (en) 1999-12-21 2007-08-21 Texas Instruments Incorporated Sub-band speech coding system
US20020016161A1 (en) 2000-02-10 2002-02-07 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for compression of speech encoded parameters
US6677869B2 (en) 2001-02-22 2004-01-13 Panasonic Communications Co., Ltd. Arithmetic coding apparatus and image processing apparatus
US6538583B1 (en) * 2001-03-16 2003-03-25 Analog Devices, Inc. Method and apparatus for context modeling
US7174135B2 (en) 2001-06-28 2007-02-06 Koninklijke Philips Electronics N. V. Wideband signal transmission system
US20030093451A1 (en) 2001-09-21 2003-05-15 International Business Machines Corporation Reversible arithmetic coding for quantum data compression
DE10204617B4 (de) * 2002-02-05 2005-02-03 Siemens Ag Verfahren und Vorrichtungen zur Kompression und Dekompression eines Videodatenstroms
JP2003255999A (ja) 2002-03-06 2003-09-10 Toshiba Corp 符号化デジタルオーディオ信号の変速再生装置
JP4090862B2 (ja) * 2002-04-26 2008-05-28 松下電器産業株式会社 可変長符号化方法および可変長復号化方法
US7242713B2 (en) 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
EP1467491B1 (de) * 2002-05-02 2007-01-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Arithmetische Codierung von Transformationskoeffizienten
GB2388502A (en) 2002-05-10 2003-11-12 Chris Dunn Compression of frequency domain audio signals
US7447631B2 (en) * 2002-06-17 2008-11-04 Dolby Laboratories Licensing Corporation Audio coding system using spectral hole filling
KR100462611B1 (ko) 2002-06-27 2004-12-20 삼성전자주식회사 하모닉 성분을 이용한 오디오 코딩방법 및 장치
JP3579047B2 (ja) * 2002-07-19 2004-10-20 日本電気株式会社 オーディオ復号装置と復号方法およびプログラム
US7299190B2 (en) 2002-09-04 2007-11-20 Microsoft Corporation Quantization and inverse quantization for audio
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
PT2282310E (pt) * 2002-09-04 2012-04-13 Microsoft Corp Codificação entrópica por adaptação de modos de codificação entre codificação por nível e codificação por comprimento/nível de sequência
US7328150B2 (en) 2002-09-04 2008-02-05 Microsoft Corporation Innovations in pure lossless audio compression
CA2499212C (en) * 2002-09-17 2013-11-19 Vladimir Ceperkovic Fast codec with high compression ratio and minimum required resources
FR2846179B1 (fr) 2002-10-21 2005-02-04 Medialive Embrouillage adaptatif et progressif de flux audio
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
US7876966B2 (en) 2003-03-11 2011-01-25 Spyder Navigations L.L.C. Switching between coding schemes
US6900748B2 (en) 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US7562145B2 (en) 2003-08-28 2009-07-14 International Business Machines Corporation Application instance level workload distribution affinities
JP2005130099A (ja) 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd 算術復号装置、算術符号化装置、算術符号化・復号装置、携帯端末装置、動画像撮影装置、及び、動画像記録・再生装置
JP2005184232A (ja) 2003-12-17 2005-07-07 Sony Corp 符号化装置、プログラム、およびデータ処理方法
JP4241417B2 (ja) * 2004-02-04 2009-03-18 日本ビクター株式会社 算術復号化装置、および算術復号化プログラム
DE102004007200B3 (de) * 2004-02-13 2005-08-11 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audiocodierung
CA2457988A1 (en) 2004-02-18 2005-08-18 Voiceage Corporation Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization
US7516064B2 (en) 2004-02-19 2009-04-07 Dolby Laboratories Licensing Corporation Adaptive hybrid transform for signal analysis and synthesis
KR20050087956A (ko) 2004-02-27 2005-09-01 삼성전자주식회사 무손실 오디오 부호화/복호화 방법 및 장치
DE602005014288D1 (de) 2004-03-01 2009-06-10 Dolby Lab Licensing Corp Mehrkanalige Audiodekodierung
US20090299756A1 (en) 2004-03-01 2009-12-03 Dolby Laboratories Licensing Corporation Ratio of speech to non-speech audio such as for elderly or hearing-impaired listeners
US7577844B2 (en) 2004-03-17 2009-08-18 Microsoft Corporation Systems and methods for encoding randomly distributed features in an object
KR101050261B1 (ko) * 2004-07-14 2011-07-19 에이전시 포 사이언스, 테크놀로지 앤드 리서치 콘텍스트 기반의 신호 엔코딩 및 디코딩
KR100624432B1 (ko) 2004-08-05 2006-09-19 삼성전자주식회사 내용 기반 적응적 이진 산술 복호화 방법 및 장치
US20060047704A1 (en) 2004-08-31 2006-03-02 Kumar Chitra Gopalakrishnan Method and system for providing information services relevant to visual imagery
CN101048814B (zh) 2004-11-05 2011-07-27 松下电器产业株式会社 编码装置、解码装置、编码方法及解码方法
US7903824B2 (en) 2005-01-10 2011-03-08 Agere Systems Inc. Compact side information for parametric coding of spatial audio
KR100829558B1 (ko) * 2005-01-12 2008-05-14 삼성전자주식회사 스케일러블 오디오 데이터 산술 복호화 방법 및 장치와스케일러블 오디오 비트스트림 절단 방법
CA2590705A1 (en) 2005-01-14 2006-07-20 Sungkyunkwan University Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding
US8484036B2 (en) 2005-04-01 2013-07-09 Qualcomm Incorporated Systems, methods, and apparatus for wideband speech coding
KR100694098B1 (ko) 2005-04-04 2007-03-12 한국과학기술원 산술 복호 방법 및 그 장치
KR100703773B1 (ko) 2005-04-13 2007-04-06 삼성전자주식회사 향상된 코딩 효율을 갖는 엔트로피 코딩 및 디코딩 방법과이를 위한 장치, 이를 포함하는 비디오 코딩 및 디코딩방법과 이를 위한 장치
US7196641B2 (en) 2005-04-26 2007-03-27 Gen Dow Huang System and method for audio data compression and decompression using discrete wavelet transform (DWT)
ATE433182T1 (de) 2005-07-14 2009-06-15 Koninkl Philips Electronics Nv Audiokodierung und audiodekodierung
US7539612B2 (en) 2005-07-15 2009-05-26 Microsoft Corporation Coding and decoding scale factor information
KR100851970B1 (ko) * 2005-07-15 2008-08-12 삼성전자주식회사 오디오 신호의 중요주파수 성분 추출방법 및 장치와 이를이용한 저비트율 오디오 신호 부호화/복호화 방법 및 장치
US7546240B2 (en) 2005-07-15 2009-06-09 Microsoft Corporation Coding with improved time resolution for selected segments via adaptive block transformation of a group of samples from a subband decomposition
US20070036228A1 (en) 2005-08-12 2007-02-15 Via Technologies Inc. Method and apparatus for audio encoding and decoding
US20080221907A1 (en) 2005-09-14 2008-09-11 Lg Electronics, Inc. Method and Apparatus for Decoding an Audio Signal
US20070126853A1 (en) * 2005-10-03 2007-06-07 Nokia Corporation Variable length codes for scalable video coding
US20070094035A1 (en) 2005-10-21 2007-04-26 Nokia Corporation Audio coding
KR100803206B1 (ko) 2005-11-11 2008-02-14 삼성전자주식회사 오디오 지문 생성과 오디오 데이터 검색 장치 및 방법
CN101167368B (zh) 2005-12-05 2012-03-28 华为技术有限公司 一种实现算术编解码的方法及装置
JPWO2007066709A1 (ja) * 2005-12-07 2009-05-21 ソニー株式会社 符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム
KR101237413B1 (ko) * 2005-12-07 2013-02-26 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법, 오디오 신호의부호화 및 복호화 장치
US7283073B2 (en) 2005-12-19 2007-10-16 Primax Electronics Ltd. System for speeding up the arithmetic coding processing and method thereof
WO2007080225A1 (en) 2006-01-09 2007-07-19 Nokia Corporation Decoding of binaural audio signals
WO2007080211A1 (en) 2006-01-09 2007-07-19 Nokia Corporation Decoding of binaural audio signals
US7983343B2 (en) * 2006-01-12 2011-07-19 Lsi Corporation Context adaptive binary arithmetic decoding for high definition video
US7831434B2 (en) 2006-01-20 2010-11-09 Microsoft Corporation Complex-transform channel coding with extended-band frequency coding
KR100774585B1 (ko) 2006-02-10 2007-11-09 삼성전자주식회사 변조 스펙트럼을 이용한 음악 정보 검색 방법 및 그 장치
US8027479B2 (en) 2006-06-02 2011-09-27 Coding Technologies Ab Binaural multi-channel decoder in the context of non-energy conserving upmix rules
US7948409B2 (en) 2006-06-05 2011-05-24 Mediatek Inc. Automatic power control system for optical disc drive and method thereof
US8306125B2 (en) * 2006-06-21 2012-11-06 Digital Video Systems, Inc. 2-bin parallel decoder for advanced video processing
EP1883067A1 (en) * 2006-07-24 2008-01-30 Deutsche Thomson-Brandt Gmbh Method and apparatus for lossless encoding of a source signal, using a lossy encoded data stream and a lossless extension data stream
JP5096468B2 (ja) 2006-08-15 2012-12-12 ドルビー ラボラトリーズ ライセンシング コーポレイション サイド情報なしの時間的ノイズエンベロープの自由な整形
US7554468B2 (en) 2006-08-25 2009-06-30 Sony Computer Entertainment Inc, Entropy decoding methods and apparatus using most probable and least probable signal cases
JP4785706B2 (ja) 2006-11-01 2011-10-05 キヤノン株式会社 復号装置及び復号方法
DE102007017254B4 (de) 2006-11-16 2009-06-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung zum Kodieren und Dekodieren
US20080243518A1 (en) 2006-11-16 2008-10-02 Alexey Oraevsky System And Method For Compressing And Reconstructing Audio Files
KR100868763B1 (ko) 2006-12-04 2008-11-13 삼성전자주식회사 오디오 신호의 중요 주파수 성분 추출 방법 및 장치와 이를이용한 오디오 신호의 부호화/복호화 방법 및 장치
US7365659B1 (en) 2006-12-06 2008-04-29 Silicon Image Gmbh Method of context adaptive binary arithmetic coding and coding apparatus using the same
US8352258B2 (en) 2006-12-13 2013-01-08 Panasonic Corporation Encoding device, decoding device, and methods thereof based on subbands common to past and current frames
CN101231850B (zh) 2007-01-23 2012-02-29 华为技术有限公司 编解码方法及装置
KR101365989B1 (ko) 2007-03-08 2014-02-25 삼성전자주식회사 트리 구조를 기반으로 한 엔트로피 부호화 및 복호화 장치및 방법
US7498960B2 (en) * 2007-04-19 2009-03-03 Analog Devices, Inc. Programmable compute system for executing an H.264 binary decode symbol instruction
JP2008289125A (ja) 2007-04-20 2008-11-27 Panasonic Corp 算術復号化装置及びその方法
MX2009011405A (es) 2007-04-26 2009-11-05 Dolby Sweden Ab Aparato y metodo para sintetizar una señal de salida.
US7813567B2 (en) * 2007-04-26 2010-10-12 Texas Instruments Incorporated Method of CABAC significance MAP decoding suitable for use on VLIW data processors
JP4748113B2 (ja) 2007-06-04 2011-08-17 ソニー株式会社 学習装置および学習方法、並びにプログラムおよび記録媒体
CN103299363B (zh) * 2007-06-08 2015-07-08 Lg电子株式会社 用于处理音频信号的方法和装置
AU2008261287B2 (en) 2007-06-11 2010-12-16 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder for encoding an audio signal having an impulse- like portion and stationary portion, encoding methods, decoder, decoding method; and encoded audio signal
US8521540B2 (en) 2007-08-17 2013-08-27 Qualcomm Incorporated Encoding and/or decoding digital signals using a permutation value
WO2009027606A1 (fr) 2007-08-24 2009-03-05 France Telecom Codage/decodage par plans de symboles, avec calcul dynamique de tables de probabilites
US7839311B2 (en) 2007-08-31 2010-11-23 Qualcomm Incorporated Architecture for multi-stage decoding of a CABAC bitstream
TWI351180B (en) * 2007-09-29 2011-10-21 Novatek Microelectronics Corp Data encoding/decoding method and related apparatus capable of lowering signal power spectral density
US7777654B2 (en) 2007-10-16 2010-08-17 Industrial Technology Research Institute System and method for context-based adaptive binary arithematic encoding and decoding
US8527265B2 (en) 2007-10-22 2013-09-03 Qualcomm Incorporated Low-complexity encoding/decoding of quantized MDCT spectrum in scalable speech and audio codecs
US8515767B2 (en) 2007-11-04 2013-08-20 Qualcomm Incorporated Technique for encoding/decoding of codebook indices for quantized MDCT spectrum in scalable speech and audio codecs
US7714753B2 (en) 2007-12-11 2010-05-11 Intel Corporation Scalable context adaptive binary arithmetic coding
US8631060B2 (en) 2007-12-13 2014-01-14 Qualcomm Incorporated Fast algorithms for computation of 5-point DCT-II, DCT-IV, and DST-IV, and architectures
EP2077550B8 (en) * 2008-01-04 2012-03-14 Dolby International AB Audio encoder and decoder
US8483854B2 (en) 2008-01-28 2013-07-09 Qualcomm Incorporated Systems, methods, and apparatus for context processing using multiple microphones
JP4893657B2 (ja) 2008-02-29 2012-03-07 ソニー株式会社 算術復号装置
RU2455709C2 (ru) 2008-03-03 2012-07-10 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ и устройство для обработки аудиосигнала
BRPI0906142B1 (pt) 2008-03-10 2020-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e. V. dispositivo e método para a manipulação de um sinal de áudio tendo um evento transiente
WO2009113316A1 (ja) * 2008-03-14 2009-09-17 パナソニック株式会社 符号化装置、復号装置およびこれらの方法
KR101247891B1 (ko) 2008-04-28 2013-03-26 고리츠다이가쿠호징 오사카후리츠다이가쿠 물체 인식용 화상 데이터베이스의 작성 방법, 처리 장치 및 처리용 프로그램
US7864083B2 (en) 2008-05-21 2011-01-04 Ocarina Networks, Inc. Efficient data compression and decompression of numeric sequences
ES2934052T3 (es) 2008-07-11 2023-02-16 Fraunhofer Ges Forschung Codificador de audio y decodificador de audio
EP2346029B1 (en) * 2008-07-11 2013-06-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder, method for encoding an audio signal and corresponding computer program
US7714754B2 (en) * 2008-07-14 2010-05-11 Vixs Systems, Inc. Entropy decoder with pipelined processing and methods for use therewith
PL2146344T3 (pl) * 2008-07-17 2017-01-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sposób kodowania/dekodowania sygnału audio obejmujący przełączalne obejście
US20110137661A1 (en) 2008-08-08 2011-06-09 Panasonic Corporation Quantizing device, encoding device, quantizing method, and encoding method
US20100088090A1 (en) * 2008-10-08 2010-04-08 Motorola, Inc. Arithmetic encoding for celp speech encoders
US7932843B2 (en) 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
US7982641B1 (en) 2008-11-06 2011-07-19 Marvell International Ltd. Context-based adaptive binary arithmetic coding engine
GB2466666B (en) * 2009-01-06 2013-01-23 Skype Speech coding
KR101622950B1 (ko) 2009-01-28 2016-05-23 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법 및 그 장치
US8457975B2 (en) 2009-01-28 2013-06-04 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio decoder, audio encoder, methods for decoding and encoding an audio signal and computer program
KR20100136890A (ko) * 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
ES2673637T3 (es) 2009-06-23 2018-06-25 Voiceage Corporation Cancelación prospectiva de solapamiento en dominio de tiempo con aplicación en dominio de señal ponderada u original
MY163358A (en) 2009-10-08 2017-09-15 Fraunhofer-Gesellschaft Zur Förderung Der Angenwandten Forschung E V Multi-mode audio signal decoder,multi-mode audio signal encoder,methods and computer program using a linear-prediction-coding based noise shaping
EP2315358A1 (en) 2009-10-09 2011-04-27 Thomson Licensing Method and device for arithmetic encoding or arithmetic decoding
PL2491552T3 (pl) 2009-10-20 2015-06-30 Fraunhofer Ges Forschung Koder audio, dekoder audio, sposób kodowania informacji audio, sposób dekodowania informacji audio i program komputerowy z zastosowaniem wykrywania grupy uprzednio zdekodowanych wartości widmowych
US8149144B2 (en) * 2009-12-31 2012-04-03 Motorola Mobility, Inc. Hybrid arithmetic-combinatorial encoder
KR101339058B1 (ko) * 2010-01-12 2013-12-10 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 오디오 인코더, 오디오 디코더, 오디오 정보 인코딩 방법, 오디오 정보 디코딩 방법, 및 유효 상태 값들과 구간 경계들을 모두 기술하는 해시 테이블을 이용하는 컴퓨터 프로그램
CN102131081A (zh) 2010-01-13 2011-07-20 华为技术有限公司 混合维度编解码方法和装置
PL2596494T3 (pl) * 2010-07-20 2021-01-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Dekoder audio, sposób dekodowania audio i program komputerowy
CN103282958B (zh) 2010-10-15 2016-03-30 华为技术有限公司 信号分析器、信号分析方法、信号合成器、信号合成方法、变换器和反向变换器
US20120207400A1 (en) * 2011-02-10 2012-08-16 Hisao Sasai Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus
US8170333B2 (en) * 2011-10-13 2012-05-01 University Of Dayton Image processing systems employing image compression

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050203731A1 (en) 2004-03-10 2005-09-15 Samsung Electronics Co., Ltd. Lossless audio coding/decoding method and apparatus

Also Published As

Publication number Publication date
US11443752B2 (en) 2022-09-13
CA2778323C (en) 2016-09-20
US8706510B2 (en) 2014-04-22
TWI451403B (zh) 2014-09-01
US20120278086A1 (en) 2012-11-01
JP5245014B2 (ja) 2013-07-24
BR122022013496B1 (pt) 2023-05-16
MY160813A (en) 2017-03-31
US20230162742A1 (en) 2023-05-25
ES2531013T3 (es) 2015-03-10
RU2012122275A (ru) 2013-11-27
CN102667923A (zh) 2012-09-12
PL2491552T3 (pl) 2015-06-30
RU2596596C2 (ru) 2016-09-10
BR112012009446B1 (pt) 2023-03-21
US8612240B2 (en) 2013-12-17
CA2778325A1 (en) 2011-04-28
AU2010309820B2 (en) 2014-05-08
US20140081645A1 (en) 2014-03-20
JP2013508763A (ja) 2013-03-07
PL2491553T3 (pl) 2017-05-31
WO2011048098A1 (en) 2011-04-28
EP2491552A1 (en) 2012-08-29
KR101419148B1 (ko) 2014-07-11
EP2491554B1 (en) 2014-03-05
EP2491553A1 (en) 2012-08-29
TW201137857A (en) 2011-11-01
KR20120074306A (ko) 2012-07-05
TWI430262B (zh) 2014-03-11
WO2011048099A1 (en) 2011-04-28
US9978380B2 (en) 2018-05-22
CA2778368A1 (en) 2011-04-28
ZA201203607B (en) 2013-01-30
EP2491554A1 (en) 2012-08-29
CA2778368C (en) 2016-01-26
MX2012004569A (es) 2012-06-08
AU2010309898A1 (en) 2012-06-07
JP5589084B2 (ja) 2014-09-10
ZA201203610B (en) 2013-01-30
MY160807A (en) 2017-03-31
JP5707410B2 (ja) 2015-04-30
CA2907353A1 (en) 2011-04-28
RU2605677C2 (ru) 2016-12-27
CN102667922A (zh) 2012-09-12
PT2491553T (pt) 2017-01-20
CA2778325C (en) 2015-10-06
US20180174593A1 (en) 2018-06-21
JP2013508762A (ja) 2013-03-07
BR122022013454B1 (pt) 2023-05-16
HK1175289A1 (en) 2013-06-28
RU2012122277A (ru) 2013-11-27
EP2491552B1 (en) 2014-12-31
CN102667921B (zh) 2014-09-10
BR112012009445A2 (pt) 2022-03-03
PL2491554T3 (pl) 2014-08-29
AU2010309821A1 (en) 2012-06-07
CN102667922B (zh) 2014-09-10
KR101411780B1 (ko) 2014-06-24
US20120265540A1 (en) 2012-10-18
TWI426504B (zh) 2014-02-11
KR20120074310A (ko) 2012-07-05
US20120330670A1 (en) 2012-12-27
MY188408A (en) 2021-12-08
AR078705A1 (es) 2011-11-30
CA2907353C (en) 2018-02-06
AR078707A1 (es) 2011-11-30
JP2013508764A (ja) 2013-03-07
WO2011048100A1 (en) 2011-04-28
CA2778323A1 (en) 2011-04-28
RU2591663C2 (ru) 2016-07-20
RU2012122278A (ru) 2013-11-27
ES2454020T3 (es) 2014-04-09
ES2610163T3 (es) 2017-04-26
BR112012009446A2 (ko) 2021-12-07
TW201129969A (en) 2011-09-01
ZA201203609B (en) 2013-01-30
BR112012009448A2 (pt) 2022-03-08
MX2012004564A (es) 2012-06-08
EP2491553B1 (en) 2016-10-12
MX2012004572A (es) 2012-06-08
BR122022013482B1 (pt) 2023-04-04
HK1175290A1 (en) 2013-06-28
TW201137858A (en) 2011-11-01
US8655669B2 (en) 2014-02-18
KR20120074312A (ko) 2012-07-05
AR078706A1 (es) 2011-11-30
AU2010309820A1 (en) 2012-06-07
BR112012009445B1 (pt) 2023-02-14
CN102667923B (zh) 2014-11-05
CN102667921A (zh) 2012-09-12

Similar Documents

Publication Publication Date Title
KR101419151B1 (ko) 영역-의존 산술 코딩 매핑 규칙을 이용하는 오디오 인코더, 오디오 디코더, 오디오 정보를 인코딩하기 위한 방법, 오디오 정보를 디코딩하기 위한 방법 및 컴퓨터 프로그램
KR101339057B1 (ko) 오디오 인코더, 오디오 디코더, 오디오 정보 인코딩과 디코딩 방법, 및 이전에 디코딩된 스펙트럼 값들의 놈에 기초하여 콘텍스트 서브구역 값을 획득하는 컴퓨터 프로그램
AU2010309898B2 (en) Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a detection of a group of previously-decoded spectral values
AU2010309821B2 (en) Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using an iterative interval size reduction

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: 20180626

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190627

Year of fee payment: 6