KR20060084437A - 오디오 인코딩 시의 레이트-왜곡 제어 구조 - Google Patents
오디오 인코딩 시의 레이트-왜곡 제어 구조 Download PDFInfo
- Publication number
- KR20060084437A KR20060084437A KR1020067005309A KR20067005309A KR20060084437A KR 20060084437 A KR20060084437 A KR 20060084437A KR 1020067005309 A KR1020067005309 A KR 1020067005309A KR 20067005309 A KR20067005309 A KR 20067005309A KR 20060084437 A KR20060084437 A KR 20060084437A
- Authority
- KR
- South Korea
- Prior art keywords
- scale factor
- bits
- initial
- common scale
- increment
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 68
- 230000003595 spectral effect Effects 0.000 claims description 42
- 230000008859 change Effects 0.000 claims description 33
- 238000013139 quantization Methods 0.000 claims description 19
- 101100365003 Mus musculus Scel gene Proteins 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 88
- 230000008569 process Effects 0.000 description 37
- 238000010586 diagram Methods 0.000 description 12
- 230000000873 masking effect Effects 0.000 description 6
- 238000001228 spectrum Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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/0204—Speech 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/04—Speech 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 predictive techniques
- G10L19/26—Pre-filtering or post-filtering
- G10L19/265—Pre-filtering, e.g. high frequency emphasis prior to encoding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
초기의 공통 스케일 인수와 연관된 초기의 비트수가 결정되고, 초기의 비트수 및 목표 비트수를 사용해서 초기의 증분이 계산되며, 초기의 스케일 인수가 초기의 증분만큼 증분된다. 나아가, 증분된 공통 스케일 인수가 목표 비트수를 기초로 해서 조정되며, 개별적인 스케일 인수가 조정된 공통 스케일 인수 및 허용된 왜곡을 기초로 해서 조정된다. 계산된 개별적인 스케일 인수와 연관된 현재의 비트수가 목표 비트수를 초과하는 경우, 결과적인 비트수가 목표 비트수를 더 이상 초과하지 않을 때까지, 조정된 공통 스케일 인수가 변경된다.
Description
본 발명은 일반적으로 오디오 인코딩에 대한 것이다. 더욱 구체적으로는, 본 발명은 디지털 데이터의 인코딩을 위한 레이트-왜곡 제어 구조(a rate-distortion control scheme)에 대한 것이다.
본 특허 문서의 개시 부분은 저작권으로 보호되는 내용을 포함한다. 저작권 소유자는 특허 및 상표청 특허 파일 또는 레코드에서 나타나는 대로의 특허 문서 또는 특허 개시의 어느 누구에 의한 팩시밀리 재생(facsimile reproduction)에도 반대하지 않으나, 이와 다른 경우에는 모두 저작권을 보유한다. 다음 공지는 아래에서 설명되는 바와 같은 그리고 도면 내의 소프트웨어 및 데이터에 적용한다: Copyright ⓒ 2001, Sony Electronics, Inc., All Rights Reserved.
표준화된 집단인 동영상 전문가 그룹(MPEG)은 예컨대, MPEG-2 개선된 오디오 코딩(AAC) 표준(ISO/IEC 13818-7 참조) 및 MPEG-4 AAC 표준(ISO/IEC 14496-3)과 같은, 표준에 종래의 데이터 압축 방법을 개시하고 있다. 이들 표준은 본 명세서에서 집합적으로 MPEG 표준으로서 언급된다.
MPEG 표준에 의해 정의된 오디오 인코더는 입력 펄스 코드 변조(PCM) 신호를 수신하고, 이 신호를 변형 이산 코사인 변환(MDCT) 동작을 통해 주파수 스펙트럼 데이터로 변환하며, 레이트-왜곡 제어 메커니즘을 이용해서 주파수 스펙트럼 데이터를 양자화하기 위한 최적의 스케일 인수를 결정한다. 오디오 인코더는 나아가, 최적의 스케일 인수를 사용해서 주파수 스펙트럼 데이터를 양자화하고, 결과적인 양자화된 스펙트럼 계수를 스케일 인수 밴드로 그룹화하며, 그룹화된 양자화된 계수를 이후 허프만 인코딩에 넘긴다.
MPEG 표준에 따르면, 레이트-변형 제어 메커니즘이 두 개의 주요 요건을 만족시키는 스펙트럼 데이터를 생성할 수 있는, 스케일 인수를 선택하도록 반복적으로 작동한다. 우선, 양자화 노이즈(오디오 품질)가 최대 노이즈량을 나타내는 허용된 왜곡을 초과하지 않을 수 있는데, 이 최대 노이즈량은 가청 상태로 되지 않은채 스펙트럼 데이터에 삽입된다. 허용된 왜곡은 통상, 인간 청력의 심리음향학적 모델링을 기초로 해서 결정된다. 둘째, 허프만 인코딩으로부터 초래되는 사용된 비트량이 인코딩시에, 지정된 비트 레이트로부터 계산되는 허용가능한 비트량을 초과하지 않을 수 있다.
레이트-왜곡 제어 메커니즘은 통상, 개별적인 스케일 인수 및 공통 스케일 인수를 정의한다. 개별적인 스케일 인수는 상이한 스케일 인수 밴드에 대해서 프레임 내에서 변할 수 있고, 공통 스케일 인수는 프레임 내에서 변하지 않는다. MPEG 표준에 따르면, 레이트-변형 제어 프로세스는 초기의 (가능한 최소의) 공통 스케일 인수를 반복적으로 증분시켜 허프만 인코딩으로부터 초래되는 사용된 비트량과 인코딩시에 지정된 비트 레이트로부터 계산된 허용가능한 비트량 사이의 차이를 최소 화시킨다. 이후, 레이트-왜곡 제어 프로세스는 각각의 개별적인 스케일 인수 밴드의 왜곡을 체크하고, 허용된 왜곡이 초과되는 경우, 스케일 인수 밴드를 증폭시키고, 공통 스케일 인수 루프를 다시 호출한다. 이러한 레이트-왜곡 제어 프로세스는, 양자화된 주파수 스펙트럼의 노이즈가 허용된 왜곡보다 더 낮아질 때까지 그리고 양자화를 위해 필요한 비트량이 허용가능한 비트량보다 더 낮아질 때까지 재반복된다.
위에서 설명된 종래의 레이트-왜곡 제어 프로세스는 많은 계산량을 필요로 하는데, 그 이유는 넓은 범위의 가능한 스케일 인수를 처리해야 하기 때문이다. 또한, 낮은 비트-레이트(64 kbits/sec 이하)가 필요할 때, 위 프로세스는 최적의 스케일 인수를 선택할 능력이 부족하다.
초기의 공통 스케일 인수와 연관된 초기의 비트 수가 결정되고, 초기의 증분이 초기의 비트수와 목표 비트수를 사용해서 계산되며, 초기의 스케일 인수가 초기 의 증분만큼 증분된다. 나아가, 증분된 공통 스케일 인수가 목표 비트수를 기초로 해서 조정되고, 개별적인 스케일 인수가 조정된 공통 스케일 인수와 허용된 왜곡을 기초로 해서 계산된다. 계산된 개별적인 스케일 인수와 연관된 현재의 비트수가 목표 비트수를 초과하는 경우, 결과적인 비트수가 목표 비트수를 더 이상 초과하지 않을 때까지, 조정된 공통 스케일 인수가 변경된다.
본 발명은 아래에 제공되는 상세한 설명으로부터 그리고 본 발명의 다양한 실시예에 대한 첨부 도면으로부터 더욱 완벽하게 이해될 것인데, 그러나, 이 실시예는 본 발명을 특정 실시예로 제한하도록 취해진 것이 아니라 단지 설명과 이해 를 위한 것이다.
도 1은 인코딩 시스템의 일 실시예의 블록도.
도 2는 하나의 프레임 내에서 데이터에 대한 최적의 스케일 인수를 선택하기 위한 프로세스의 일 실시예의 흐름도.
도 3은 공통 스케일 인수를 조정하기 위한 프로세스의 일 실시예의 흐름도.
도 4a 내지 도 4c는 공통 스케일 인수를 변경할 때, 증가-비트/감소-비트 변경 로직을 사용하기 위한 프로세스의 일 실시예의 흐름도.
도 5는 개별적인 스케일 인수를 계산하기 위한 프로세스의 일 실시예의 흐름도.
도 6은 공통 스케일 인수의 최종값을 결정하기 위한 프로세스의 일 실시예의 흐름도.
도 7은 본 발명의 실시예를 실시하기에 적당한 컴퓨터 환경의 블록도.
본 발명의 실시예에 대해 후술하는 상세한 설명에서, 첨부 도면이 참조되는데, 이 도면에서, 유사한 참조 부호는 유사한 요소를 나타내며, 본 발명이 실시될 수 있는 특정 실시예가 예시를 통해 도시되어 있다. 이러한 실시예는 당업자가 본 발명을 실시할 수 있도록 충분히 상세하게 설명된다. 그리고, 다른 실시예가 이용될 수 있으며, 논리적인, 기계적인, 전기적인, 기능적인 그리고 다른 변경이 본 발 명의 범위를 벗어나지 않고 이루어질 수 있다는 것이 이해되어야 한다. 후술하는 상세한 설명은 따라서, 제한하는 의미로 취해져서는 안 되며, 본 발명의 범위는 첨부된 청구범위에 의해서만 한정된다.
본 발명의 동작의 개관부터 시작하면, 도 1은 인코딩 시스템(100)의 일 실시예를 예시한다. 인코딩 시스템(100)은, 본 명세서에서 집합적으로 MPEG 표준으로 언급되는, MPEG 오디오 코딩 표준(예컨대, MPEG-2 AAC 표준, MPEG-4 AAC 표준 등.)을 준수한다. 인코딩 시스템(100)은 필터뱅크 모듈(102), 코딩 툴(104), 심리음향학적 모델러(106), 양자화 모듈(110), 및 허프만 인코딩 모듈(114)을 포함한다.
필터뱅크 모듈(102)은 펄스 코드 변조(PCM) 신호를 수신하고, 윈도우 함수를 사용해서 이 신호를 변조하며, 이후, 변경된 이산 코사인 변환 동작(MDCT)을 수행한다. 윈도우 함수는 두 가지 동작 유형을 사용해서 신호를 변조하는데, 하나는 분석될 신호가 개선된 주파수 레저루션(resolution)에 대해 시간상 확대되는 롱 윈도우 유형(a long window type)이고, 다른 하나는 분석될 신호가 개선된 시간 레저류션에 대해 시간상 축소되는 쇼트 윈도우 유형(a short window type)이다. 정적인 신호만이 존재하는 경우에는 롱 윈도우 유형이 사용되고, 신속한 신호 변경이 존재할 때에는 쇼트 윈도우 유형이 사용된다. 분석될 신호의 특성에 따라 이러한 두 가지 동작 유형을 사용함으로써, 프리-에코(pre-echo)로 불리는 불쾌한 노이즈의 생성을 방지할 수 있는데, 이 노이즈는 이와 다른 경우에 불충분한 시간 레저루션으로부터 초래된다. MDCT 동작이 수행되어 시간-영역 신호를 주파수 스펙트럼 데이터인 다수의 샘플로 변환한다.
코딩 툴(104)은 스펙트럼 처리를 위한 선택적인 툴 세트를 포함한다. 예컨대, 코딩 툴은 일시적인 노이즈 형성(TNS) 툴 및 예측 툴을 포함할 수 있다. TNS 툴은 각각의 변환 윈도우 내에서 일시적인 노이즈 형태를 제어하기 위해 그리고 프리-에코 문제를 해결하기 위해 사용될 수 있다. 예측 툴은 샘플 사이의 상관을 제거하기 위해 사용될 수 있다.
심리음향학적 모델러(106)는 청각 마스크화 커브(an auditory masking curve)를 결정하기 위해 샘플을 분석한다. 청각 마스크화 커브는, 가청 상태로 되지 않은채 각각의 샘플에 삽입될 수 있는, 최대 노이즈량을 나타낸다. 이 점에서 가청인 것은 인간 청력의 심리음향학적 모델을 기초로 한다. 청각 마스크화 커브는 필요한 노이즈 스펙트럼의 추정치로서 작용한다.
양자화 모듈(110)은 주파수 스펙트럼 데이터에 대해 최적의 스케일 인수를 선택할 책임이 있다. 아래에서 더욱 상세하게 설명되는 바와 같이, 스케일 인수 선택 프로세스는 마스크화 커브로부터 계산되는 허용된 왜곡, 및 인코딩시에 지정되는 비트 레이트로부터 계산되는 (목표 비트수로도 언급되는) 허용가능한 비트수를 기초로 한다. 최적 스케일 인수가 일단 선택되면, 양자화 모듈(110)은 주파수 스펙트럼 데이터를 양자화하기 위해 이 인수를 사용한다. 결과적인 양자화된 스펙트럼 계수가 스케일 인수 밴드(SFB)로 그룹화된다. 각각의 SFB는 동일한 스케일 인수의 사용으로부터 초래되는 계수를 포함한다.
허프만 인코딩 모듈(114)은 양자화된 스펙트럼 계수의 각각의 그룹에 대해 최적의 호프만 코드북을 선택할, 그리고 최적의 허프만 코드북을 사용해서 허프만- 인코딩 동작을 수행할 책임이 있다. 결과적인 가변 렝쓰 코드(variable length code: VLC), 인코딩시에 사용되는 코드북을 식별하는 데이터, 양자화 모듈(110)에 의해 선택되는 스케일 인수, 및 몇 가지 다른 정보가 후속적으로, 비트 스트림에 어셈블링된다.
일 실시예에서, 양자화 모듈(110)은 레이트-왜곡 제어부(108) 및 양자화/탈양자화부(112)를 포함한다. 레이트-왜곡 제어부(108)는 스펙트럼 데이터의 각 프레임에 대해 반복적인 스케일 인수 선택 프로세스를 수행한다. 이 프로세스에서, 레이트-왜곡 제어부(108)는 전체 프레임에 대해 최적의 공통 스케일 인수를, 그리고 그 프레임 내의 상이한 스케일 인수 밴드에 대해 최적의 개별적인 스케일 인수를 발견한다.
일 실시예에서, 레이트-왜곡 제어부(108)는 초기의 공통 스케일 인수를 이전 프레임 또는 다른 채널의 공통 스케일 인수의 값으로 설정하는 것에서 시작한다. 양자화/탈양자화부(112)는 초기의 공통 스케일 인수를 사용해서 프레임 내에서 스펙트럼 데이터를 양자화하고, 양자화된 스펙트럼 데이터를 허프만 인코딩 모듈(114)로 전달하는데, 이 모듈은 결과적인 VLC에 의해 사용되는 비트수를 결정하기 위해, 양자화된 스펙트럼 데이터를 허프만 인코딩되게 한다. 이러한 사용된 비트수, 및 인코딩시에 지정되는, 비트 레이트로부터 계산되는 목표 비트수를 기초로 해서, 레이트-왜곡 제어부(108)는 초기의 공통 스케일 인수에 대한 제1 증분을 결정한다. 제1 증분이 초기의 공통 스케일 인수에 더해질 때, 증분된 공통 스케일 인수는, 목표 비트수에 비교적 가까운, 비트수를 생성한다. 이후, 레이트-왜곡 제어 부(108)는 나아가, 결과적인 사용된 비트수의 목표 비트수로의 더욱 정확한 근접을 달성하기 위해, 증분된 공통 스케일 인수를 조정한다.
나아가, 레이트-왜곡 제어부(108)는 프레임 내에서 스케일 인수 밴드에 대해 개별적인 스케일 인수를 계산한다. 아래에서 더욱 상세하게 검토되는 바와 같이, 개별적인 스케일 인수는 조정된 공통 스케일 인수 및 허용된 왜곡을 기초로 해서 계산된다. 일 실시예에서, 각각의 개별적인 스케일 인수의 계산은 특정의 개별적인 스케일 인수와 연관된 에너지 오류가 허용된 왜곡보다 낮을 때까지, 각각의 개별적인 스케일 인수의 반복적인 변경을 수반한다. 일 실시예에서, 에너지 오류가 양자화/탈양자화부(112)에 의해 계산되는데, 소정의 스케일 인수를 사용해서 스케일 인수 밴드의 주파수 스펙트럼 데이터를 양자화함으로써, 계속해서, 이러한 양자화된 데이터를 소정의 스케일 인수를 이용해서 탈양자화함으로써, 그리고 계속해서, 원래의(사전-양자화된) 주파수 스펙트럼 데이터와 양자화된 스펙트럼 데이터 사이의 차이를 계산함으로써 이루어진다.
개별적인 스케일 인수가 일단 계산되면, 레이트-왜곡 제어부(108)는 개별적인 스케일 인수의 사용에 의해 생성된 비트수와 조정된 공통 스케일 인수가 목표 비트수를 초과하는지 결정한다. 초과하는 경우, 레이트-왜곡 제어부(108)는 나아가, 결과적인 사용된 비트수가 목표 비트수를 더 이상 초과하지 않을 때까지, 조정된 공통 스케일 인수를 변경한다. 계산된 개별적인 스케일 인수가 필요한 양자화 노이즈 형태의 프로파일을 생성하기 때문에, 이 인수는, 조정된 공통 스케일 인수가 변경될 때, 재계산될 필요가 없다.
도 2 내지 도 6은, 본 발명의 다양한 실시예에 따른, 도 1의 양자화 모듈(110)에 의해 수행될 수 있는, 스케일 인수 선택 프로세스의 흐름도이다. 이 프로세스는 하드웨어(예컨대, 회로, 전용 로직 등.), (범용 컴퓨터 시스템 또는 전용 기계 상에서 실행되는 것과 같은) 소프트웨어, 또는 이 둘의 조합을 포함할 수 있는 로직을 처리함으로써 수행될 수 있다. 소프트웨어-구현 프로세스에서, 흐름도의 설명은 당업자가 적당하게 구성된 컴퓨터(메모리를 포함하는, 컴퓨터-판독가능 매체로부터 명령어를 실행하는 컴퓨터의 프로세서) 상에서 프로세스를 수행할 명령어를 포함하는 이러한 프로그램을 개발할 수 있게 한다. 컴퓨터-실행가능 명령어는 컴퓨터 프로그래밍 언어로 기록될 수 있거나, 펌웨어 로직으로 구현될 수 있다. 인식된 표준을 따르는 프로그래밍 언어로 기록되는 경우, 이러한 명령어는 다양한 하드웨어 플랫폼 상에서, 그리고 다양한 운영 체제로의 인터페이스를 위해, 실행될 수 있다. 또한, 본 발명의 실시예는 임의의 특정 프로그래밍 언어를 참조해서 설명되지는 않는다. 다양한 프로그래밍 언어가 본 명세서에 설명된 기술을 구현하기 위해 사용될 수 있다는 것이 인식될 것이다. 나아가, 이 기술 분야에서, 하나의 형태 또는 다른 형태(예컨대, 프로그램, 프로시져, 프로세스, 애플리케이션, 모듈, 로직...)의 소프트웨어에 대해, 동작을 취하는 것 또는 결과를 야기하는 것으로서 말하는 것이 일반적이다. 이러한 표현은 단지, 컴퓨터에 의한 소프트웨어의 실행이 컴퓨터의 프로세서로 하여금 동작을 수행하도록 또는 결과를 생성하도록 하게 한다는 것을 말하는 간단한 방식이다. 본 발명의 범위를 벗어나지 않고도 다소의 동작이 도 2 내지 도 6에 도시된 프로세스에 통합될 수 있으며, 본 명세서에 도시되고 설명된 블록의 배열이 어떠한 특정 순서를 의미하지 않는다는 것이 인식될 것이다.
도 2는 하나의 프레임 내에서 데이터에 대해 최적의 스케일 인수를 선택하기 위한 프로세스(200)의 일 실시예의 흐름도이다.
도 2를 참조하면, 처리되고 있는 프레임 내에서 데이터에 대해 초기의 공통 스케일 인수를 결정하는 것에서 처리 로직이 시작한다(처리 블록 202). 프레임 데이터는 MDCT 주파수 스펙트럼 계수와 같은 주파수 스펙트럼 계수를 포함할 수 있다. 일 실시예에서, 처리 로직은, 프레임 내에서 최대 절대값을 가진 스펙트럼 계수가 0이 아니라는 것을 보장함으로써, 그리고 이후 초기의 공통 스케일 인수를 이전 프레임 또는 다른 채널의 공통 스케일 인수로 설정함으로써, 프레임에 대해 초기의 공통 스케일 인수를 결정한다. 예컨대, 채널 0에서의 초기의 공통 스케일 인수가 이전 프레임의 공통 스케일 인수로 설정될 수 있으며, 채널 1에서의 초기의 공통 스케일 인수가 채널 0의 공통 스케일 인수로 설정될 수 있다. 프레임에서 최대값을 가진 스펙트럼 계수가 0인 경우, 처리 로직은 초기의 공통 스케일 인수를, 실험적으로 결정될 수 있는, 미리 정해진 수(예컨대, 30)로 설정한다.
그 다음에, 처리 로직은 초기의 공통 스케일 인수를 사용해서 프레임 내에서 데이터를 양자화하고(처리 블록 204), 결과적인 양자화된 데이터의 유효성을 시험한다(결정 상자 206). 일 실시예에서, 양자화된 스펙트럼 계수는, 절대값이 임계수(MPEG 표준에 따르면 8191)를 초과하지 않는 경우, 유효하다. 결과적인 양자화된 값이 유효하지 않은 경우, 처리 로직은 실험적으로 결정될 수 있는 상수(예컨대, 5)만큼 초기의 공통 스케일 인수를 증분시킨다(처리 블록 208).
결과적인 양자화된 데이터가 유효한 경우, 처리 로직은 허프만-인코딩된 양자화된 데이터에 의해 사용될 비트수를 결정하고(처리 블록 210), 사용된 비트수와 목표 비트수를 기초로 해서 초기의 공통 스케일 인수에 대한 제1 증분을 계산하며(처리 블록 212), 제1 증분을 초기의 공통 스케일 인수에 가산한다(처리 블록 214). 위에서 검토된 바와 같이, 목표 비트수는 인코딩시에 지정된 비트 레이트로부터 계산될 수 있다.
일 실시예에서, 제1 증분은 다음 표현을 사용해서 계산된다:
initial_increment = 10 * (initial_bits - target_bits)/target_bits,
여기서, initial_increment는 제1 증분이며, initial_bits는 사용된 비트수이고, target_bits는 목표 비트수이다. 위 표현은 사용된 비트수의 목표 비트수로의 고속 수렴을 달성하는 것과 관련된 동적 증분 구조를 제공하기 위해 (예컨대, 일련의 실험을 하는 동안) 전개되었다. 즉, 증분된 공통 스케일 인수는, 목표 비트수에 비교적 가까울 수 있는 사용된 비트수를 생성한다. 그러나, 생성된 사용된 비트수는 여전히 목표 비트수보다 더 크거나 더 작을 수 있다.
그 다음에, 처리 로직은 나아가, 결과적인 사용된 비트수의 목표 비트수로의 더욱 정확한 근접을 달성하기 위해, 증분된 공통 스케일 인수를 조정한다(처리 블록 220). 조정 프로세스의 일 실시예는 도 3과 연계해서 아래에서 더욱 상세하게 설명될 것이다.
처리 블록 222에서, 처리 로직은 조정된 공통 스케일 인수와 허용된 왜곡을 사용해서 프레임 내에서 스케일 인수 밴드에 대해 개별적인 스케일 인수를 계산한 다. 일 실시예에서, 허용된 왜곡은 도 1의 심리음향학적 모델러(106)로부터 획득되는 마스크화 커브를 기초로 해서 계산된다. 개별적인 스케일 인수를 계산하는 프로세스의 일 실시예는 도 5와 연계해서 아래에서 더욱 상세하게 설명된다.
나아가, 처리 로직은 계산된 개별적인 스케일 인수 및 조정된 공통 스케일 인수의 사용에 의해 생성되는 비트수를 결정하고(처리 블록 224), 이러한 사용된 비트수가 목표 비트수를 초과하는지 결정한다(처리 블록 226). 초과하는 경우, 처리 로직은 나아가, 결과적인 사용된 비트수가 목표 비트수를 더 이상 초과하지 않을 때까지, 조정된 공통 스케일 인수를 변경한다(처리 블록 228). 최종적인 공통 스케일 인수를 결정하는 프로세스의 일 실시예가 도 6과 연계해서 아래에서 더욱 상세하게 설명될 것이다. 위에서 검토된 바와 같이, 개별적인 스케일 인수는, 공통 스케일 인수가 변경될 때, 재계산될 필요가 없다.
도 3은 공통 스케일 인수를 조정하는 프로세스(300)의 일 실시예에 대한 흐름도이다.
도 3을 참조하면, 처리 로직은 현재의 공통 스케일 인수를 사용해서 프레임 데이터를 양자화하는 것에서 시작한다(처리 블록 302). 일 실시예에서, 현재의 공통 스케일 인수는 도 2의 처리 블록 214에서 계산된 증분된 스케일 인수이다.
그 다음에, 처리 로직은 양자화된 데이터가 유효한지 체크한다(결정 상자 304). 유효하지 않은 경우, 처리 로직은 현재의 스케일 인수를 상수(예컨대, 5)만큼 증분시킨다(처리 블록 306). 유효한 경우, 처리 로직은 허프만-인코딩시에 양자화된 스펙트럼 데이터에 의해 사용될 비트수를 결정한다(처리 블록 308).
나아가, 처리 로직은 사용된 비트수가 목표 비트수를 초과하는지 결정한다(결정 상자 310). 초과하지 않는 경우, 더 많은 비트가, 허프만 인코딩 후에 송신되는 데이터에 가산될 수 있다. 따라서, 처리 로직은 증가-비트 변경 로직을 사용해서 현재의 공통 스케일 인수를 변경한다(처리 블록 312). 결정 상자 310에서 이루어진 결정이 긍정적인 경우, 처리 로직은 감소-비트 변경 로직을 사용해서 현재의 공통 스케일 인수를 변경한다(처리 블록 314).
도 4a 내지 도 4c는 공통 스케일 인수를 변경할 때 증가-비트/감소-비트 변경 로직을 사용하는 프로세스(400)의 일 실시예에 대한 흐름도이다.
도 4a 내지 도 4c를 참조하면, 처리 로직은 양자화기 변경 필드의 현재 값을 미리 정해진 수(예컨대, 4)로 설정하고 플래그 세트를 초기화하는 것에서 시작한다(처리 블록 402). 플래그 세트는, 사용된 비트수를 변경하기 위해 필요한 방향을 나타내는(즉, 이 수가 증가될 필요가 있는지 또는 감소될 필요가 있는지를 나타내는), 레이트 변경 플래그("over_budget"라고도 함)를 포함한다. 또한, 플래그 세트는 업크로스된 플래그 및 다운크로스된 플래그를 포함한다. 업크로스된 플래그는, 증분될 필요가 있는 사용된 비트수가 목표 비트수를 크로스하는지를(즉, 더 이상 목표 비트수보다 더 작지 않거나 그와 동일하지 않은지를) 나타낸다. 다운크로스된 플래그는, 감소될 필요가 있는 사용된 비트수가 목표 비트수를 크로스하는지를(즉, 더 이상 목표 비트수보다 더 크지 않은지를) 나타낸다.
결정 상자 403에서, 처리 로직은 양자화기 변경 필드의 현재 값이 0인지를 결정한다. 0인 경우, 프로세스(400)는 종료된다. 0이 아닌 경우, 프로세스(400)는, 현재의 공통 스케일 인수를 사용해서 처리되고 있는 프레임 내에서 스펙트럼 데이터를 양자화하는 그리고, 허프만 인코딩시에 양자화된 스펙트럼 데이터에 의해 사용되는 비트수를 결정하는, 처리 로직을 계속한다(처리 블록 404).
결정 상자 406에서, 처리 로직은 사용된 비트수가 목표 비트수 이하인지를 결정한다. 이하이며 이번이 첫 번째 반복이 아닌 경우(결정 상자 408), 레이트 변경 플래그는 증가 비트 방향을 나타내는 값으로 설정된 채로 남는다(예컨대, over_budget = 1). 이하가 아니거나, 이번이 첫 번째 반복인 경우(결정 상자 408), 처리 로직은 감소 비트 방향을 나타내는 값을 이용해서 레이트 변경 플래그를 갱신한다(예컨대, over_budget = 0)(처리 블록 410).
나아가, 레이트 변경 플래그가 증가 비트 방향을 나타내는 경우(결정 상자 412), 처리 로직은 업크로스된 플래그가 1로 설정되는지를 결정한다(결정 상자 414). 1로 설정되는 경우, 처리 로직은 양자화기 변경 필드의 현재 값을 quantizer_change = quantizer_change >> 1 로서 계산하고(처리 블록 416), 사용된 비트수가 목표 비트수 이하인지를 결정한다(결정 상자 418). 이하인 경우, 처리 로직은 현재의 공통 스케일 인수에서 양자화기 변경 필드의 값을 공제하고(처리 블록 420), 결정 상자 403으로 나아간다. 그렇지 아니한 경우, 처리 로직은 양자화기 변경 필드의 값을 현재의 공통 스케일 인수에 가산하고(처리 블록 422) 결정 상자 403으로 나아간다.
업크로스된 플래그가 0으로 설정되는 경우(결정 상자 414), 처리 로직은 사용된 비트수가 목표 비트수 이하인지를 결정한다(결정 상자 424). 이하인 경우, 현 재의 공통 스케일 인수에서 양자화기 변경 필드의 현재 값을 공제하고(처리 블록 426), 결정 상자 403으로 나아간다. 그렇지 아니한 경우, 처리 로직은 업크로스된 플래그를 1로 설정하고, 양자화기 변경 필드의 새로운 값을 quantizer_change = quantizer_change >> 1 로서 계산하며, 현재의 공통 스케일 인수에서 양자화기 변경 필드의 새로운 값을 공제하고(처리 블록 428), 결정 상자 403으로 나아간다.
레이트 변경 플래그가 감소 비트 방향을 나타내는 경우(결정 상자 412), 처리 로직은 다운크로스된 플래그가 1로 설정되는지를 결정한다(결정 상자 430). 1로 설정되는 경우, 처리 로직은 양자화기 변경 필드의 현재 값을 quantizer_change = quantizer_change >> 1 로서 계산하고(처리 블록 432), 사용된 비트수가 목표 비트수 이하인지를 결정한다(결정 상자 434). 그렇지 아니한 경우, 처리 로직은 양자화기 변경 필드의 현재 값을 현재의 공통 스케일 인수에 가산하고(처리 블록 436) 결정 상자 403으로 나아간다. 현재의 공통 스케일 인수에서 양자화기 변경 필드의 새로운 값을 공제하고(처리 블록 428), 결정 상자 403으로 나아간다. 이하인 경우, 현재의 공통 스케일 인수에서 양자화기 변경 필드의 현재 값을 공제하고(처리 블록 438), 결정 상자 403으로 나아간다.
다운크로스된 플래그가 0으로 설정되는 경우(결정 상자 430), 처리 로직은 사용된 비트수가 목표 비트수 이하인지를 결정한다(결정 상자 440). 이하가 아닌 경우, 처리 로직은 양자화기 변경 필드의 현재 값을 현재의 공통 스케일 인수에 가산하고(처리 블록 442) 결정 상자 403으로 나아간다. 이하인 경우, 처리 로직은 다운크로스된 플래그를 1로 설정하고, 양자화기 변경 필드의 새로운 값을 quantizer_change = quantizer_change >> 1 로서 계산하며, 현재의 공통 스케일 인수에서 양자화기 변경 필드의 새로운 값을 공제하며(처리 블록 444), 결정 상자 403으로 나아간다.
도 5는 개별적인 스케일 인수를 계산하는 프로세스(500)의 일 실시예에 대한 흐름도이다.
도 5를 참조하면, 처리 로직은 제1 개별적인 스케일 인수를 공통 스케일 인수의 값으로 설정함으로써 그리고 현재의 증분 필드를 제1 상수(A, 예컨대 A=1)로 설정함으로써 제1 개별적인 스케일 인수를 이용해서 시작한다(처리 블록 502). 이후, 처리 로직은 이 개별적인 스케일 인수를 현재의 증분 값만큼 증분시키고(처리 블록 504), 증분된 개별적인 스케일 인수를 사용해서 대응 스펙트럼 계수를 양자화하며(처리 블록 506), 양자화된 계수를 동일한 개별적인 스케일 인수를 이용해서 탈양자화시키고(처리 블록 508), 이러한 개별적인 스케일 인수와 연관된 에너지 오류를 원래의(사전-양자화된) 스펙트럼 계수와 탈양자화된 스펙트럼 계수 사이의 차이를 기초로 해서 계산한다(처리 블록 510).
결정 상자 512에서, 처리 로직은 계산된 에너지 오류가 K* allowed_distortion_energy보다 더 큰지를 결정하는데, K는 상수이며, allowed_distortion_energy는 허용된 양자화 오류(허용된 왜곡이라고도 함)이다. 일 실시예에서, 허용된 왜곡은 도 1의 심리음향학적 모델러(106)에 의해 제공되는 마스크화 커브를 기초로 해서 계산된다.
결정 상자 512에서 이루어지는 결정이 부정적인 경우, 처리 로직은 현재의 증분 필드를 제1 상수(A)로 설정한다(처리 블록 514). 그렇지 않은 경우, 처리 로직은 현재의 증분 필드를 제2 상수(B, 예컨대 B=3)로 설정한다(처리 블록 516). 일 실시예에서, 파라미터(A, B 및 K)는 실험적으로 결정되며, 양호한 성능을 제공할 수 있는 값을 선택한다.
나아가, 처리 로직은 계산된 에너지 오류가 허용된 왜곡보다 더 적은지를 결정한다(결정 상자 518). 더 적지 않은 경우, 처리 로직은 518을 통해 처리 블록 504로 복귀해서 블록 504를 반복한다. 더 적은 경우, 이러한 개별적인 스케일 인수의 값은 최종적인 것으로 고려되고, 처리 로직은 다음의 개별적인 스케일 인수로 이동한다(처리 블록 522). 이 프레임의 모든 스케일 인수가 처리되는 경우(결정 상자 520), 프로세스(500)는 종료된다.
도 6은 공통 스케일 인수의 최종 값을 결정하는 프로세스(600)의 일 실시예에 대한 흐름도이다.
도 6을 참조하면, 처리 로직은 오프셋 필드의 값을 제1 상수로 설정하는 것에서 시작한다(예컨대, 오프셋=3)(처리 블록 602). 그 다음에, 처리 로직은 계산된 개별적인 스케일 인수 및 현재의 공통 스케일 인수를 사용해서 처리되고 있는 프레임 내에서 스펙트럼 데이터를 양자화하며(처리 블록 604), 허프만 인코딩시에 양자화된 데이터에 의해 사용되는 비트수를 결정한다(처리 블록 606).
나아가, 처리 로직은 사용된 비트수가 목표 비트수를 초과하는지를 결정한다(결정 상자 608). 초과하는 경우, 처리 로직은 오프셋 값을 현재의 공통 스케일 인수에 가산하고(처리 블록 610), 오프셋 값을 제2 상수로 설정하며(예컨대, 오프셋 =1), 처리 블록 604로 복귀한다. 이와 달리, 사용된 비트수가 목표 비트수를 초과하는 경우, 프로세스(600)는 종료된다.
도 7에 대한 다음 설명은 본 발명을 구현하기에 적합한 컴퓨터 하드웨어 및 다른 작동 구성 요소에 대한 개관을 제공하도록 의도되나, 적용 가능한 환경을 제한하도록 의도되지는 않는다. 도 7은 도 1의 인코딩 시스템(100) 또는 단지 양자화 모듈(110)로서 사용하기에 적합한 컴퓨터 시스템의 일 실시예를 예시한다.
컴퓨터 시스템(740)은 시스템 버스(765)에 연결되는, 프로세서(750), 메모리(755), 및 입력/출력 기능부(760)를 포함한다. 메모리(755)는, 프로세서(750)에 의해 실행될 때 본 명세서에서 설명된 방법을 수행하는, 명령어를 저장하도록 구성된다. 입력/출력부(760)는 또한, 프로세서(750)에 의해 액세스가능한 임의의 유형의 저장 디바이스를 포함하는, 다양한 유형의 컴퓨터-판독가능 매체를 포함한다. 당업자는, "컴퓨터-판독가능 매체/매체들"이라는 용어가 나아가, 데이터 신호를 인코딩하는 캐리어 웨이브(a carrier wave)를 포함한다는 것을, 즉시 인식할 것이다. 또한, 시스템(740)이 메모리(755)에서 실행하는 운영 체제 소프트웨어에 의해 제어된다는 것도 인식될 것이다. 입력/출력 및 관련 매체(760)는 본 발명의 방법 및 운영 체제를 위한 컴퓨터-실행가능 명령어를 저장한다. 도 1에 도시된 양자화 모듈(110)은 프로세서(750)에 연결되는 별도의 구성 요소일 수 있으며, 또는 프로세서(750)에 의해 실행되는 컴퓨터-실행가능 명령어로 구현될 수 있다. 일 실시예에서, 컴퓨터 시스템(740)은 ISP(인터넷 서비스 제공업자)의 일부일 수 있으며, 또는, 인터넷을 통해 이미지 데이터를 송신 및 수신하도록 입력/출력부(760)를 통해 ISP에 연결 될 수 있다. 본 발명은 인터넷 액세스 및 인터넷 웹-기반 사이트에 제한되지 않으며; 직접 연결 망 및 사설망 또한 예견된다는 것이 매우 명백하다.
컴퓨터 시스템(740)은 상이한 아키텍쳐를 가지는 다수의 가능한 컴퓨터 시스템의 일 예라는 것이 인식될 것이다. 통상적인 컴퓨터 시스템은 적어도 프로세서, 메모리 및 (메모리를 프로세서에 연결하는) 버스를 대개 포함할 것이다. 당업자는 본 발명이 멀티프로세서 시스템, 미니컴퓨터, 메인프레임 컴퓨터, 및 그와 유사한 것을 포함하는, 다른 컴퓨터 시스템 구성을 이용해서 실시될 수 있다는 것을 즉시 인식할 것이다. 본 발명은 또한, 통신망을 통해 연결되는 원격 처리 디바이스에 의해 태스크가 수행되는, 분산 컴퓨팅 환경에서 실시될 수도 있다.
최적의 스케일 인수를 선택하는 다양한 측면이 설명되었다. 특정 실시예가 본 명세서에서 예시되고 설명되었으나, 동일한 목적을 달성하도록 의도되는 임의의 배열이 나타난 특정 실시예에 대해 대체될 수 있다는 것이 당업자에 의해 인식될 것이다. 본 출원은 본 발명의 임의의 적응예 또는 변형예를 포괄하도록 의도된다.
본 발명은 일반적으로 오디오 인코딩에 이용 가능하다. 더욱 구체적으로는, 본 발명은 디지털 데이터의 인코딩을 위한 레이트-왜곡 제어 구조(a rate-distortion control scheme)에 이용 가능하다.
Claims (25)
- 방법으로서,초기의 공통 스케일 인수와 연관된 초기의 비트수를 결정하는 단계;초기의 비트수 및 목표 비트수를 사용해서 초기의 증분을 계산하는 단계;초기의 공통 스케일 인수를 초기의 증분만큼 증분시키는 단계;증분된 공통 스케일 인수를 목표 비트수를 기초로 해서 조정하는 단계;복수의 개별적인 스케일 인수를 조정된 공통 스케일 인수 및 허용된 왜곡을 기초로 해서 계산하는 단계; 및복수의 개별적인 스케일 인수와 연관된 현재의 비트수가 목표 비트수를 초과하는 경우, 결과적인 비트수가 목표 비트수를 더 이상 초과하지 않을 때까지, 조정된 공통 스케일 인수를 변경하는 단계를 포함하는, 방법.
- 제1 항에 있어서,초기의 공통 스케일 인수를 결정하는 단계를 더 포함하는, 방법.
- 제2 항에 있어서,초기의 공통 스케일 인수를 결정하는 단계는,프레임 내에서 최대값의 스펙트럼 계수를 선택하는 단계;최대 스펙트럼 계수가 0인 경우, 초기의 공통 스케일 인수를 30으로 설정하는 단계; 및최대 스펙트럼 계수가 0이 아닌 경우, 초기의 공통 스케일 인수를 이전의 공통 스케일 인수로 설정하는 단계를 포함하는, 방법.
- 제3 항에 있어서,이전의 공통 스케일 인수는 이전 프레임 내의 공통 스케일 인수 및 다른 채널 내의 공통 스케일 인수 중 어느 하나인, 방법.
- 제1 항에 있어서,초기의 증분은 표현initial_increment = 10*(initial_bits-target_bits)/target_bits,를 사용해서 계산되되, initial_increment는 초기의 증분이고, initial_bits는 초기의 비트수이며, target_bits는 목표 비트수인, 방법.
- 제1 항에 있어서,증분된 공통 스케일 인수를 조정하는 단계는,증분된 공통 스케일 인수를 사용해서 프레임 내에서 스펙트럼 데이터를 양자화하는 단계;양자화된 스펙트럼 데이터가 유효하다고 결정하는 단계;증분된 공통 스케일 인수와 연관된 현재의 비트수를 결정하는 단계;현재의 비트수가 목표 비트수를 초과하는 경우, 증분된 공통 스케일 인수를 감소 비트 차수로(in a decrease bit order) 변경하는 단계; 및현재의 비트수가 목표 비트수를 초과하지 않는 경우, 증분된 공통 스케일 인수를 증가 비트 차수로(in a decrease bit order) 변경하는 단계를 포함하는, 방법.
- 제6 항에 있어서,증분된 공통 스케일 인수는 현재의 증분이 0이 될 때까지 변경되는, 방법.
- 제1 항에 있어서,복수의 개별적인 스케일 인수를 계산하는 단계는,복수의 개별적인 스케일 인수의 조정된 각각과 연관된 에너지 오류가 허용된 왜곡 이하로 될 때까지 복수의 개별적인 스케일 인수 각각을 반복적으로 조정하는 단계를 포함하는, 방법.
- 제8 항에 있어서,복수의 개별적인 스케일 인수 각각을 조정하는 단계는,복수의 개별적인 스케일 인수 각각을 현재의 증분만큼 증분시키는 단계;증분된 개별적인 스케일 인수와 연관된 에너지 오류를 계산하는 단계;계산된 에너지 오류의 유형을 결정하는 단계;계산된 에너지 오류가 제1 유형인 경우, 현재의 증분을 제1 상수로 설정하는 단계;계산된 에너지 오류가 제2 유형인 경우, 현재의 증분을 제2 상수로 설정하는 단계; 및계산된 에너지 오류가 허용된 왜곡 이하인지를 결정하는 단계를 포함하는, 방법.
- 제9 항에 있어서,계산된 에너지 오류의 유형을 결정하는 단계는,error_energy(sb) > K*allowed_distortion인 경우 계산된 에너지 오류가 제1 유형이라고 결정하는 단계; 및error_energy(sb) = K*allowed_distortion인 경우 계산된 에너지 오류가 제2 유형이라고 결정하는 단계를 포함하되, error_energy(sb)는 증분된 개별적인 스케일 인수와 연관된 계산된 에너지 오류이고, K는 제3 상수이며, allowed_distortion은 허용된 왜곡인, 방법.
- 제10 항에 있어서,제1 상수의 값, 제2 상수의 값 및 제3 상수의 값은 실험적으로 결정되는, 방법.
- 제1 항에 있어서,조정된 공통 스케일 인수를 변경하는 단계는,복수의 개별적인 스케일 인수와 연관된 현재의 비트수가 목표 비트수를 초과한다고 결정하는 단계;변경된 공통 스케일 인수를 계산하기 위해, 오프셋 값을 조정된 공통 스케일 인수에 가산하는 단계; 및복수의 개별적인 스케일 인수 및 변경된 공통 스케일 인수와 연관된 결과적인 비트수를 계산하는 단계를 포함하는, 방법.
- 제12 항에 있어서,조정된 공통 스케일 인수가 변경될 때, 복수의 개별적인 스케일 인수를 재계산하는 것을 중지하는 단계를 더 포함하는, 방법.
- 프로세서 상에서 실행될 때 프로세서로 하여금 다음 방법을 수행하게 하는, 명령어를 제공하는 컴퓨터 판독가능 매체로서, 상기 방법은,초기의 공통 스케일 인수와 연관된 초기의 비트수를 결정하는 단계;초기의 비트수 및 목표 비트수를 사용해서 초기의 증분을 계산하는 단계;초기의 공통 스케일 인수를 초기의 증분만큼 증분시키는 단계;증분된 공통 스케일 인수를 목표 비트수를 기초로 해서 조정하는 단계;복수의 개별적인 스케일 인수를 조정된 공통 스케일 인수 및 허용된 왜곡을 기초로 해서 계산하는 단계; 및복수의 개별적인 스케일 인수와 연관된 현재의 비트수가 목표 비트수를 초과하는 경우, 결과적인 비트수가 목표 비트수를 더 이상 초과하지 않을 때까지, 조정된 공통 스케일 인수를 변경하는 단계를 포함하는, 컴퓨터 판독가능 매체.
- 제14 항에 있어서,방법은 초기의 공통 스케일 인수를 결정하는 단계를 더 포함하는, 컴퓨터 판독가능 매체.
- 제15 항에 있어서,초기의 공통 스케일 인수를 결정하는 단계는,프레임 내에서 최대값의 스펙트럼 계수를 선택하는 단계;최대 스펙트럼 계수가 0인 경우, 초기의 공통 스케일 인수를 30으로 설정하 는 단계; 및최대 스펙트럼 계수가 0이 아닌 경우, 초기의 공통 스케일 인수를 이전의 공통 스케일 인수로 설정하는 단계를 포함하는, 컴퓨터 판독가능 매체.
- 제16 항에 있어서,이전의 공통 스케일 인수는 이전 프레임 내의 공통 스케일 인수 및 다른 채널 내의 공통 스케일 인수 중 어느 하나인, 컴퓨터 판독가능 매체.
- 컴퓨터화된 시스템으로서,메모리; 및메모리에 연결된 적어도 하나의 프로세서로서, 적어도 하나의 프로세서로 하여금,초기의 공통 스케일 인수와 연관된 초기의 비트수를 결정하게 하고,초기의 비트수 및 목표 비트수를 사용해서 초기의 증분을 계산하게 하며,초기의 공통 스케일 인수를 초기의 증분만큼 증분되게 하고,증분된 공통 스케일 인수를 목표 비트수를 기초로 해서 조정하게 하며,복수의 개별적인 스케일 인수를 조정된 공통 스케일 인수 및 허용된 왜곡을 기초로 해서 계산하게 하고,복수의 개별적인 스케일 인수와 연관된 현재의 비트수가 목표 비트수를 초과 하는 경우, 결과적인 비트수가 목표 비트수를 더 이상 초과하지 않을 때까지, 조정된 공통 스케일 인수를 변경하게 하는,명령어 세트를 실행하는, 적어도 하나의 프로세서를 포함하는, 컴퓨터화된 시스템.
- 제18 항에 있어서,적어도 하나의 프로세서는, 적어도 하나의 프로세서로 하여금 초기의 공통 스케일 인수를 추가적으로 결정하게 하는, 명령어 세트를 실행하는, 컴퓨터화된 시스템.
- 제19 항에 있어서,적어도 하나의 프로세서는,프레임 내에서 최대값의 스펙트럼 계수를 선택하여,최대 스펙트럼 계수가 0인 경우, 초기의 공통 스케일 인수를 30으로 설정하고,최대 스펙트럼 계수가 0이 아닌 경우, 초기의 공통 스케일 인수를 이전의 공통 스케일 인수로 설정함으로써,초기의 공통 스케일 인수를 결정하는, 컴퓨터화된 시스템.
- 제20 항에 있어서,이전의 공통 스케일 인수는 이전 프레임 내의 공통 스케일 인수 및 다른 채널 내의 공통 스케일 인수 중 어느 하나인, 컴퓨터화된 시스템.
- 인코딩 장치로서,초기의 공통 스케일 인수와 연관된 초기의 비트수를 결정하기 위한 허프만 인코딩 모듈; 및양자화 모듈로서,초기의 비트수 및 목표 비트수를 사용해서 초기의 증분을 계산하고,초기의 공통 스케일 인수를 초기의 증분만큼 증분시키며,증분된 공통 스케일 인수를 목표 비트수를 기초로 해서 조정하고,복수의 개별적인 스케일 인수를 조정된 공통 스케일 인수 및 허용된 왜곡을 기초로 해서 계산하며,복수의 개별적인 스케일 인수와 연관된 현재의 비트수가 목표 비트수를 초과하는 경우, 결과적인 비트수가 목표 비트수를 더 이상 초과하지 않을 때까지, 조정된 공통 스케일 인수를 변경하기 위한, 양자화 모듈을 포함하는, 인코딩 장치.
- 제22 항에 있어서,양자화 모듈은 추가적으로 초기의 공통 스케일 인수를 결정하기 위한 것인, 인코딩 장치.
- 제23 항에 있어서,양자화 모듈은,프레임 내에서 최대값의 스펙트럼 계수를 선택해서,최대 스펙트럼 계수가 0인 경우, 초기의 공통 스케일 인수를 30으로 설정하고,최대 스펙트럼 계수가 0이 아닌 경우, 초기의 공통 스케일 인수를 이전의 공통 스케일 인수로 설정함으로써,초기의 공통 스케일 인수를 결정하기 위한 것인, 인코딩 장치.
- 장치로서,초기의 공통 스케일 인수와 연관된 초기의 비트수를 결정하는 수단;초기의 비트수 및 목표 비트수를 사용해서 초기의 증분을 계산하는 수단;초기의 공통 스케일 인수를 초기의 증분만큼 증분시키는 수단;증분된 공통 스케일 인수를 목표 비트수를 기초로 해서 조정하는 수단;복수의 개별적인 스케일 인수를 조정된 공통 스케일 인수 및 허용된 왜곡을 기초로 해서 계산하는 수단; 및복수의 개별적인 스케일 인수와 연관된 현재의 비트수가 목표 비트수를 초과하는 경우, 결과적인 비트수가 목표 비트수를 더 이상 초과하지 않을 때까지, 조정된 공통 스케일 인수를 변경하는 수단을 포함하는, 장치.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/674,945 US7349842B2 (en) | 2003-09-29 | 2003-09-29 | Rate-distortion control scheme in audio encoding |
US10/674,945 | 2003-09-29 | ||
PCT/US2004/031312 WO2005033859A2 (en) | 2003-09-29 | 2004-09-23 | Rate-distortion control scheme in audio encoding |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060084437A true KR20060084437A (ko) | 2006-07-24 |
KR101103004B1 KR101103004B1 (ko) | 2012-01-05 |
Family
ID=34393516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020067005309A KR101103004B1 (ko) | 2003-09-29 | 2004-09-23 | 오디오 인코딩 시의 레이트-왜곡 제어 구조 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7349842B2 (ko) |
EP (1) | EP1671213B1 (ko) |
JP (1) | JP2007507750A (ko) |
KR (1) | KR101103004B1 (ko) |
CN (1) | CN1867967B (ko) |
DE (1) | DE602004028745D1 (ko) |
WO (1) | WO2005033859A2 (ko) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005027096A1 (en) * | 2003-09-15 | 2005-03-24 | Zakrytoe Aktsionernoe Obschestvo Intel | Method and apparatus for encoding audio |
JP4555299B2 (ja) * | 2004-09-28 | 2010-09-29 | パナソニック株式会社 | スケーラブル符号化装置およびスケーラブル符号化方法 |
DE602006011600D1 (de) * | 2005-04-28 | 2010-02-25 | Panasonic Corp | Audiocodierungseinrichtung und audiocodierungsverfahren |
KR20080047443A (ko) * | 2005-10-14 | 2008-05-28 | 마츠시타 덴끼 산교 가부시키가이샤 | 변환 부호화 장치 및 변환 부호화 방법 |
US20070168197A1 (en) * | 2006-01-18 | 2007-07-19 | Nokia Corporation | Audio coding |
JP4548348B2 (ja) * | 2006-01-18 | 2010-09-22 | カシオ計算機株式会社 | 音声符号化装置及び音声符号化方法 |
KR100738109B1 (ko) * | 2006-04-03 | 2007-07-12 | 삼성전자주식회사 | 입력 신호의 양자화 및 역양자화 방법과 장치, 입력신호의부호화 및 복호화 방법과 장치 |
JP2007293118A (ja) * | 2006-04-26 | 2007-11-08 | Sony Corp | 符号化方法および符号化装置 |
JP4823001B2 (ja) * | 2006-09-27 | 2011-11-24 | 富士通セミコンダクター株式会社 | オーディオ符号化装置 |
JP4396683B2 (ja) * | 2006-10-02 | 2010-01-13 | カシオ計算機株式会社 | 音声符号化装置、音声符号化方法、及び、プログラム |
US8548816B1 (en) * | 2008-12-01 | 2013-10-01 | Marvell International Ltd. | Efficient scalefactor estimation in advanced audio coding and MP3 encoder |
KR101078378B1 (ko) * | 2009-03-04 | 2011-10-31 | 주식회사 코아로직 | 오디오 부호화기의 양자화 방법 및 장치 |
CN106409299B (zh) * | 2012-03-29 | 2019-11-05 | 华为技术有限公司 | 信号编码和解码的方法和设备 |
Family Cites Families (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5341457A (en) * | 1988-12-30 | 1994-08-23 | At&T Bell Laboratories | Perceptual coding of audio signals |
US4964113A (en) * | 1989-10-20 | 1990-10-16 | International Business Machines Corporation | Multi-frame transmission control for token ring networks |
US5642437A (en) * | 1992-02-22 | 1997-06-24 | Texas Instruments Incorporated | System decoder circuit with temporary bit storage and method of operation |
JP2693893B2 (ja) * | 1992-03-30 | 1997-12-24 | 松下電器産業株式会社 | ステレオ音声符号化方法 |
US5734789A (en) * | 1992-06-01 | 1998-03-31 | Hughes Electronics | Voiced, unvoiced or noise modes in a CELP vocoder |
IL104636A (en) * | 1993-02-07 | 1997-06-10 | Oli V R Corp Ltd | Apparatus and method for encoding and decoding digital signals |
US5729556A (en) * | 1993-02-22 | 1998-03-17 | Texas Instruments | System decoder circuit with temporary bit storage and method of operation |
US5748763A (en) * | 1993-11-18 | 1998-05-05 | Digimarc Corporation | Image steganography system featuring perceptually adaptive and globally scalable signal embedding |
US5488665A (en) * | 1993-11-23 | 1996-01-30 | At&T Corp. | Multi-channel perceptual audio compression system with encoding mode switching among matrixed channels |
WO1995032499A1 (fr) * | 1994-05-25 | 1995-11-30 | Sony Corporation | Procede de codage, procede de decodage, procede de codage-decodage, codeur, decodeur et codeur-decodeur |
JPH07336229A (ja) * | 1994-06-09 | 1995-12-22 | Matsushita Electric Ind Co Ltd | 高能率符号化装置 |
JP3046224B2 (ja) * | 1994-07-26 | 2000-05-29 | 三星電子株式会社 | 固定ビット率の符号化方法および装置とこれを利用した高速探索のためのトラッキング方法 |
TW316302B (ko) * | 1995-05-02 | 1997-09-21 | Nippon Steel Corp | |
EP0772925B1 (en) * | 1995-05-03 | 2004-07-14 | Sony Corporation | Non-linearly quantizing an information signal |
DE19638997B4 (de) * | 1995-09-22 | 2009-12-10 | Samsung Electronics Co., Ltd., Suwon | Digitales Toncodierungsverfahren und digitale Toncodierungsvorrichtung |
US5956674A (en) * | 1995-12-01 | 1999-09-21 | Digital Theater Systems, Inc. | Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels |
US5893066A (en) * | 1996-10-15 | 1999-04-06 | Samsung Electronics Co. Ltd. | Fast requantization apparatus and method for MPEG audio decoding |
JP3484908B2 (ja) * | 1997-01-27 | 2004-01-06 | 三菱電機株式会社 | ビットストリーム再生装置 |
US5982935A (en) * | 1997-04-11 | 1999-11-09 | National Semiconductor Corporation | Method and apparatus for computing MPEG video reconstructed DCT coefficients |
GB2326572A (en) * | 1997-06-19 | 1998-12-23 | Softsound Limited | Low bit rate audio coder and decoder |
DE19730130C2 (de) * | 1997-07-14 | 2002-02-28 | Fraunhofer Ges Forschung | Verfahren zum Codieren eines Audiosignals |
KR100335611B1 (ko) * | 1997-11-20 | 2002-10-09 | 삼성전자 주식회사 | 비트율 조절이 가능한 스테레오 오디오 부호화/복호화 방법 및 장치 |
KR100335609B1 (ko) * | 1997-11-20 | 2002-10-04 | 삼성전자 주식회사 | 비트율조절이가능한오디오부호화/복호화방법및장치 |
JP3515903B2 (ja) * | 1998-06-16 | 2004-04-05 | 松下電器産業株式会社 | オーディオ符号化のための動的ビット割り当て方法及び装置 |
US6108622A (en) * | 1998-06-26 | 2000-08-22 | Lsi Logic Corporation | Arithmetic logic unit controller for linear PCM scaling and decimation in an audio decoder |
JP3784993B2 (ja) * | 1998-06-26 | 2006-06-14 | 株式会社リコー | 音響信号の符号化・量子化方法 |
US6298087B1 (en) * | 1998-08-31 | 2001-10-02 | Sony Corporation | System and method for decoding a variable length code digital signal |
US6704705B1 (en) * | 1998-09-04 | 2004-03-09 | Nortel Networks Limited | Perceptual audio coding |
JP3352406B2 (ja) * | 1998-09-17 | 2002-12-03 | 松下電器産業株式会社 | オーディオ信号の符号化及び復号方法及び装置 |
US6282631B1 (en) * | 1998-12-23 | 2001-08-28 | National Semiconductor Corporation | Programmable RISC-DSP architecture |
JP3739959B2 (ja) * | 1999-03-23 | 2006-01-25 | 株式会社リコー | デジタル音響信号符号化装置、デジタル音響信号符号化方法及びデジタル音響信号符号化プログラムを記録した媒体 |
JP3323175B2 (ja) * | 1999-04-20 | 2002-09-09 | 松下電器産業株式会社 | 符号化装置 |
JP2000323993A (ja) * | 1999-05-11 | 2000-11-24 | Mitsubishi Electric Corp | Mpeg1オーディオレイヤiii復号処理装置およびコンピュータをmpeg1オーディオレイヤiii復号処理装置として機能させるためのプログラムを記録したコンピュータ読取可能な記録媒体 |
JP2000347679A (ja) * | 1999-06-07 | 2000-12-15 | Mitsubishi Electric Corp | オーディオ符号化装置及びオーディオ符号化方法 |
JP4242516B2 (ja) * | 1999-07-26 | 2009-03-25 | パナソニック株式会社 | サブバンド符号化方式 |
JP3762579B2 (ja) * | 1999-08-05 | 2006-04-05 | 株式会社リコー | デジタル音響信号符号化装置、デジタル音響信号符号化方法及びデジタル音響信号符号化プログラムを記録した媒体 |
JP2001154698A (ja) * | 1999-11-29 | 2001-06-08 | Victor Co Of Japan Ltd | オーディオ符号化装置及びその方法 |
JP2001306095A (ja) * | 2000-04-18 | 2001-11-02 | Mitsubishi Electric Corp | オーディオ符号化装置及びオーディオ符号化方法 |
US6542863B1 (en) * | 2000-06-14 | 2003-04-01 | Intervideo, Inc. | Fast codebook search method for MPEG audio encoding |
US20030079222A1 (en) * | 2000-10-06 | 2003-04-24 | Boykin Patrick Oscar | System and method for distributing perceptually encrypted encoded files of music and movies |
JP2002311996A (ja) * | 2001-02-09 | 2002-10-25 | Sony Corp | コンテンツ供給システム |
JP3639216B2 (ja) * | 2001-02-27 | 2005-04-20 | 三菱電機株式会社 | 音響信号符号化装置 |
JP2002311993A (ja) * | 2001-04-17 | 2002-10-25 | Mitsubishi Electric Corp | オーディオ符号化装置 |
US6587057B2 (en) * | 2001-07-25 | 2003-07-01 | Quicksilver Technology, Inc. | High performance memory efficient variable-length coding decoder |
US6732071B2 (en) * | 2001-09-27 | 2004-05-04 | Intel Corporation | Method, apparatus, and system for efficient rate control in audio encoding |
CN1288622C (zh) * | 2001-11-02 | 2006-12-06 | 松下电器产业株式会社 | 编码设备和解码设备 |
US6950794B1 (en) * | 2001-11-20 | 2005-09-27 | Cirrus Logic, Inc. | Feedforward prediction of scalefactors based on allowable distortion for noise shaping in psychoacoustic-based compression |
US6662154B2 (en) * | 2001-12-12 | 2003-12-09 | Motorola, Inc. | Method and system for information signal coding using combinatorial and huffman codes |
US7460993B2 (en) * | 2001-12-14 | 2008-12-02 | Microsoft Corporation | Adaptive window-size selection in transform coding |
CN1288625C (zh) * | 2002-01-30 | 2006-12-06 | 松下电器产业株式会社 | 音频编码与解码设备及其方法 |
US7110941B2 (en) * | 2002-03-28 | 2006-09-19 | Microsoft Corporation | System and method for embedded audio coding with implicit auditory masking |
US20030215013A1 (en) * | 2002-04-10 | 2003-11-20 | Budnikov Dmitry N. | Audio encoder with adaptive short window grouping |
KR100467617B1 (ko) * | 2002-10-30 | 2005-01-24 | 삼성전자주식회사 | 개선된 심리 음향 모델을 이용한 디지털 오디오 부호화방법과그 장치 |
KR100547113B1 (ko) * | 2003-02-15 | 2006-01-26 | 삼성전자주식회사 | 오디오 데이터 인코딩 장치 및 방법 |
-
2003
- 2003-09-29 US US10/674,945 patent/US7349842B2/en not_active Expired - Fee Related
-
2004
- 2004-09-23 WO PCT/US2004/031312 patent/WO2005033859A2/en active Application Filing
- 2004-09-23 JP JP2006533977A patent/JP2007507750A/ja active Pending
- 2004-09-23 DE DE602004028745T patent/DE602004028745D1/de not_active Expired - Lifetime
- 2004-09-23 CN CN2004800281955A patent/CN1867967B/zh not_active Expired - Fee Related
- 2004-09-23 KR KR1020067005309A patent/KR101103004B1/ko not_active IP Right Cessation
- 2004-09-23 EP EP04788973A patent/EP1671213B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
KR101103004B1 (ko) | 2012-01-05 |
WO2005033859A2 (en) | 2005-04-14 |
CN1867967A (zh) | 2006-11-22 |
DE602004028745D1 (de) | 2010-09-30 |
US7349842B2 (en) | 2008-03-25 |
JP2007507750A (ja) | 2007-03-29 |
EP1671213A2 (en) | 2006-06-21 |
EP1671213A4 (en) | 2008-08-20 |
WO2005033859A3 (en) | 2006-06-22 |
CN1867967B (zh) | 2011-01-05 |
US20050075871A1 (en) | 2005-04-07 |
EP1671213B1 (en) | 2010-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10121480B2 (en) | Method and apparatus for encoding audio data | |
JP5219800B2 (ja) | コード化されたオーディオの経済的な音量計測 | |
CA2871252C (en) | Audio encoder, audio decoder, methods for encoding and decoding an audio signal, audio stream and computer program | |
JP6474845B2 (ja) | 軽減された計算量の変換器snr計算 | |
KR101157930B1 (ko) | 오디오 인코딩에서 mdct 데이터에 기초한 윈도우 유형의 결정 방법 | |
KR101103004B1 (ko) | 오디오 인코딩 시의 레이트-왜곡 제어 구조 | |
KR20090007427A (ko) | 정보 신호 인코딩 | |
KR101102016B1 (ko) | 오디오 인코딩에서 짧은 윈도우를 그룹화하는 방법 | |
US7426462B2 (en) | Fast codebook selection method in audio encoding | |
JP2008026372A (ja) | 符号化データの符号化則変換方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20141210 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |