KR101103004B1 - 오디오 인코딩 시의 레이트-왜곡 제어 구조 - Google Patents

오디오 인코딩 시의 레이트-왜곡 제어 구조 Download PDF

Info

Publication number
KR101103004B1
KR101103004B1 KR1020067005309A KR20067005309A KR101103004B1 KR 101103004 B1 KR101103004 B1 KR 101103004B1 KR 1020067005309 A KR1020067005309 A KR 1020067005309A KR 20067005309 A KR20067005309 A KR 20067005309A KR 101103004 B1 KR101103004 B1 KR 101103004B1
Authority
KR
South Korea
Prior art keywords
scale factor
bits
initial
common scale
individual
Prior art date
Application number
KR1020067005309A
Other languages
English (en)
Other versions
KR20060084437A (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 KR20060084437A publication Critical patent/KR20060084437A/ko
Application granted granted Critical
Publication of KR101103004B1 publication Critical patent/KR101103004B1/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
    • 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
    • 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
    • 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/04Speech 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/26Pre-filtering or post-filtering
    • G10L19/265Pre-filtering, e.g. high frequency emphasis prior to encoding

Abstract

초기의 공통 스케일 인수와 연관된 초기의 비트수가 결정되고, 초기의 비트수 및 목표 비트수를 사용해서 초기의 증분이 계산되며, 초기의 스케일 인수가 초기의 증분만큼 증분된다. 나아가, 증분된 공통 스케일 인수가 목표 비트수를 기초로 해서 조정되며, 개별적인 스케일 인수가 조정된 공통 스케일 인수 및 허용된 왜곡을 기초로 해서 조정된다. 계산된 개별적인 스케일 인수와 연관된 현재의 비트수가 목표 비트수를 초과하는 경우, 결과적인 비트수가 목표 비트수를 더 이상 초과하지 않을 때까지, 조정된 공통 스케일 인수가 변경된다.

Description

오디오 인코딩 시의 레이트-왜곡 제어 구조{RATE-DISTORTION CONTROL SCHEME IN AUDIO ENCODING}
본 발명은 일반적으로 오디오 인코딩에 대한 것이다. 더욱 구체적으로는, 본 발명은 디지털 데이터의 인코딩을 위한 레이트-왜곡 제어 구조(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. 오디오 데이터를 인코딩하는 방법으로서,
    오디오 데이터의 프레임 내에서 최대 스펙트럼 계수가 0이 아닌 경우, 이전에 결정된 공통 스케일 인수로 초기의 공통 스케일 인수를 설정하는 단계;
    상기 초기의 공통 스케일 인수를 사용해서 양자화된 인코딩된 데이터에 의해 사용된 초기의 비트수를 결정하는 단계;
    초기의 비트수 및 목표 비트수를 사용해서 초기의 증분을 계산하는 단계;
    초기의 공통 스케일 인수를 초기의 증분만큼 증분시키는 단계;
    증분된 공통 스케일 인수를 목표 비트수를 기초로 해서 조정하는 단계;
    인코딩된 오디오 신호를 위해 허용된 왜곡을 기초로 해서 상기 프레임 내의 상이한 스케일 인수 밴드(bands)를 위한 복수의 개별적인 스케일 인수를 계산하는 단계로서, 상기 개별적인 스케일 인수는 상기 인코딩된 오디오 신호 내의 왜곡을 제어하며, 각각의 개별적인 스케일 인수를 위한 초기의 값은 조정된 상기 공통 스케일 인수와 동일한, 복수의 개별적인 스케일 인수를 계산하는 단계; 및
    복수의 개별적인 스케일 인수와 조정된 상기 공통 스케일 인수를 사용해서 생성된 현재의 비트수가 목표 비트수를 초과하는 경우, 결과적인 비트수가 목표 비트수를 더 이상 초과하지 않을 때까지, 조정된 상기 공통 스케일 인수를 변경하는 단계를
    포함하는, 오디오 데이터를 인코딩하는 방법.
  2. 삭제
  3. 제1 항에 있어서,
    초기의 공통 스케일 인수를 설정하는 단계는,
    최대 스펙트럼 계수가 0인 경우, 초기의 공통 스케일 인수를 30으로 설정하는 단계를
    포함하는, 오디오 데이터를 인코딩하는 방법.
  4. 제3 항에 있어서,
    상기 이전에 결정된 공통 스케일 인수는 이전 프레임 내의 공통 스케일 인수 및 다른 채널 내의 공통 스케일 인수 중 어느 하나인, 오디오 데이터를 인코딩하는 방법.
  5. 제1 항에 있어서,
    초기의 증분은 표현
    initial_increment = 10*(initial_bits-target_bits)/target_bits,
    를 사용해서 계산되되, initial_increment는 초기의 증분이고, initial_bits는 초기의 비트수이며, target_bits는 목표 비트수인, 오디오 데이터를 인코딩하는 방법.
  6. 제1 항에 있어서,
    증분된 공통 스케일 인수를 조정하는 단계는,
    증분된 공통 스케일 인수를 사용해서 프레임 내에서 스펙트럼 데이터를 양자화하는 단계;
    양자화된 스펙트럼 데이터가 유효하다고 결정하는 단계;
    만약 양자화된 스펙트럼 데이터가 유효하면, 증분된 공통 스케일 인수와 연관된 현재의 비트수를 결정하는 단계;
    현재의 비트수가 목표 비트수를 초과하는 경우, 증분된 공통 스케일 인수를 감소 비트 차수로(in a decrease bit order) 변경하는 단계; 및
    현재의 비트수가 목표 비트수를 초과하지 않는 경우, 증분된 공통 스케일 인수를 증가 비트 차수로(in a decrease bit order) 변경하는 단계를
    포함하는, 오디오 데이터를 인코딩하는 방법.
  7. 제6 항에 있어서,
    증분된 공통 스케일 인수는 현재의 증분이 0이 될 때까지 변경되는, 오디오 데이터를 인코딩하는 방법.
  8. 제1 항에 있어서,
    복수의 개별적인 스케일 인수를 계산하는 단계는,
    복수의 개별적인 스케일 인수의 조정된 각각과 연관된 에너지 오류가 허용된 왜곡 이하로 될 때까지 복수의 개별적인 스케일 인수 각각을 반복적으로 조정하는 단계를
    포함하는, 오디오 데이터를 인코딩하는 방법.
  9. 제8 항에 있어서,
    복수의 개별적인 스케일 인수 각각을 조정하는 단계는,
    복수의 개별적인 스케일 인수 각각을 현재의 증분만큼 증분시키는 단계;
    증분된 개별적인 스케일 인수와 연관된 에너지 오류를 계산하는 단계;
    계산된 에너지 오류의 유형을 결정하는 단계;
    계산된 에너지 오류가 제1 유형인 경우, 현재의 증분을 제1 상수로 설정하는 단계;
    계산된 에너지 오류가 제2 유형인 경우, 현재의 증분을 제2 상수로 설정하는 단계; 및
    계산된 에너지 오류가 허용된 왜곡 이하인지를 결정하는 단계를
    포함하는, 오디오 데이터를 인코딩하는 방법.
  10. 제9 항에 있어서,
    계산된 에너지 오류의 유형을 결정하는 단계는,
    error_energy(sb) > K*allowed_distortion인 경우 계산된 에너지 오류가 제1 유형이라고 결정하는 단계; 및
    error_energy(sb) = K*allowed_distortion인 경우 계산된 에너지 오류가 제2 유형이라고 결정하는 단계를
    포함하되, error_energy(sb)는 증분된 개별적인 스케일 인수와 연관된 계산된 에너지 오류이고, K는 제3 상수이며, allowed_distortion은 허용된 왜곡인, 오디오 데이터를 인코딩하는 방법.
  11. 제10 항에 있어서,
    제1 상수의 값, 제2 상수의 값 및 제3 상수의 값은 실험적으로 결정되는, 오디오 데이터를 인코딩하는 방법.
  12. 제1 항에 있어서,
    조정된 공통 스케일 인수를 변경하는 단계는,
    복수의 개별적인 스케일 인수와 연관된 현재의 비트수가 목표 비트수를 초과한다고 결정하는 단계;
    복수의 개별적인 스케일 인수와 연관된 현재의 비트수가 목표 비트수를 초과하면, 변경된 공통 스케일 인수를 계산하기 위해, 오프셋 값을 조정된 공통 스케일 인수에 가산하는 단계; 및
    복수의 개별적인 스케일 인수 및 변경된 공통 스케일 인수와 연관된 결과적인 비트수를 계산하는 단계를
    포함하는, 오디오 데이터를 인코딩하는 방법.
  13. 제12 항에 있어서,
    조정된 공통 스케일 인수가 변경될 때, 복수의 개별적인 스케일 인수를 재계산하는 것을 중지하는 단계를
    더 포함하는, 오디오 데이터를 인코딩하는 방법.
  14. 프로세서 상에서 실행될 때 프로세서로 하여금 오디오 데이터를 인코딩하는 방법을 수행하게 하는, 명령어를 제공하는 컴퓨터 판독가능 매체로서, 상기 방법은,
    오디오 데이터의 프레임 내에서 최대 스펙트럼 계수가 0이 아닌 경우, 이전에 결정된 공통 스케일 인수로 초기의 공통 스케일 인수를 설정하는 단계;
    상기 초기의 공통 스케일 인수를 사용해서 양자화된 인코딩된 데이터에 의해 사용된 초기의 비트수를 결정하는 단계;
    초기의 비트수 및 목표 비트수를 사용해서 초기의 증분을 계산하는 단계;
    초기의 공통 스케일 인수를 초기의 증분만큼 증분시키는 단계;
    증분된 공통 스케일 인수를 목표 비트수를 기초로 해서 조정하는 단계;
    인코딩된 오디오 신호를 위해 허용된 왜곡을 기초로 해서 상기 프레임 내의 상이한 스케일 인수 밴드를 위한 복수의 개별적인 스케일 인수를 계산하는 단계로서, 상기 개별적인 스케일 인수는 상기 인코딩된 오디오 신호 내의 왜곡을 제어하며, 각각의 개별적인 스케일 인수를 위한 초기의 값은 조정된 상기 공통 스케일 인수와 동일한, 복수의 개별적인 스케일 인수를 계산하는 단계; 및
    복수의 개별적인 스케일 인수와 조정된 상기 공통 스케일 인수를 사용해서 생성된 현재의 비트수가 목표 비트수를 초과하는 경우, 결과적인 비트수가 목표 비트수를 더 이상 초과하지 않을 때까지, 조정된 상기 공통 스케일 인수를 변경하는 단계를
    포함하는, 컴퓨터 판독가능 매체.
  15. 삭제
  16. 제14 항에 있어서,
    초기의 공통 스케일 인수를 설정하는 단계는,
    최대 스펙트럼 계수가 0인 경우, 초기의 공통 스케일 인수를 30으로 설정하는 단계를
    포함하는, 컴퓨터 판독가능 매체.
  17. 제16 항에 있어서,
    상기 이전에 결정된 공통 스케일 인수는 이전 프레임 내의 공통 스케일 인수 및 다른 채널 내의 공통 스케일 인수 중 어느 하나인, 컴퓨터 판독가능 매체.
  18. 컴퓨터화된 시스템으로서,
    메모리; 및
    메모리에 연결된 적어도 하나의 프로세서를
    포함하되,
    적어도 하나의 프로세서는 상기 메모리로부터의 명령어 세트를 실행하고 명령어 세트는 적어도 하나의 프로세서로 하여금,
    오디오 데이터의 프레임 내에서 최대 스펙트럼 계수가 0이 아닌 경우, 이전에 결정된 공통 스케일 인수로 초기의 공통 스케일 인수를 설정하게 하고,
    상기 초기의 공통 스케일 인수를 사용해서 양자화된 인코딩된 데이터에 의해 사용된 초기의 비트수를 결정하게 하고,
    초기의 비트수 및 목표 비트수를 사용해서 초기의 증분을 계산하게 하며,
    초기의 공통 스케일 인수를 초기의 증분만큼 증분되게 하고,
    증분된 공통 스케일 인수를 목표 비트수를 기초로 해서 조정하게 하며,
    인코딩된 오디오 신호를 위해 허용된 왜곡을 기초로 해서 상기 프레임 내의 상이한 스케일 인수 밴드를 위한 복수의 개별적인 스케일 인수를 계산하게 하고,
    복수의 개별적인 스케일 인수와 조정된 상기 공통 스케일 인수를 사용해서 생성된 현재의 비트수가 목표 비트수를 초과하는 경우, 결과적인 비트수가 목표 비트수를 더 이상 초과하지 않을 때까지, 조정된 상기 공통 스케일 인수를 변경하게 하며,
    상기 개별적인 스케일 인수는 상기 인코딩된 오디오 신호 내의 왜곡을 제어하며, 각각의 개별적인 스케일 인수를 위한 초기의 값은 조정된 상기 공통 스케일 인수와 동일한, 컴퓨터화된 시스템.
  19. 삭제
  20. 제18 항에 있어서,
    적어도 하나의 프로세서는, 최대 스펙트럼 계수가 0인 경우, 초기의 공통 스케일 인수를 30으로 설정함으로써 초기의 공통 스케일 인수를 설정하는, 컴퓨터화된 시스템.
  21. 제20 항에 있어서,
    상기 이전에 결정된 공통 스케일 인수는 이전 프레임 내의 공통 스케일 인수 및 다른 채널 내의 공통 스케일 인수 중 어느 하나인, 컴퓨터화된 시스템.
  22. 인코딩 장치로서,
    초기의 공통 스케일 인수와 연관된 초기의 비트수를 결정하고, 개별적인 스케일 인수와 조정된 공통 스케일 인수를 사용해서 오디오 데이터의 프레임을 인코딩하기 위한 허프만 인코딩 모듈; 및
    양자화 모듈로서,
    상기 프레임 내에서 최대 스펙트럼 계수가 0이 아닌 경우, 이전에 결정된 공통 스케일 인수로 초기의 공통 스케일 인수를 설정하고,
    초기의 비트수 및 목표 비트수를 사용해서 초기의 증분을 계산하고,
    초기의 공통 스케일 인수를 초기의 증분만큼 증분시키며,
    증분된 공통 스케일 인수를 목표 비트수를 기초로 해서 조정하고,
    인코딩된 오디오 신호를 위해 허용된 왜곡을 기초로 해서 상기 프레임 내의 상이한 스케일 인수 밴드를 위한 복수의 개별적인 스케일 인수를 계산하며, 복수의 개별적인 스케일 인수와 조정된 상기 공통 스케일 인수를 사용해서 생성된 현재의 비트수가 목표 비트수를 초과하는 경우, 결과적인 비트수가 목표 비트수를 더 이상 초과하지 않을 때까지, 조정된 상기 공통 스케일 인수를 변경하기 위한, 양자화 모듈을
    포함하되,
    상기 개별적인 스케일 인수는 상기 인코딩된 오디오 신호 내의 왜곡을 제어하며, 각각의 개별적인 스케일 인수를 위한 초기의 값은 조정된 상기 공통 스케일 인수와 동일한, 인코딩 장치.
  23. 삭제
  24. 제22 항에 있어서,
    양자화 모듈은,
    프레임 내에서 최대값의 스펙트럼 계수를 선택해서,
    최대 스펙트럼 계수가 0인 경우, 초기의 공통 스케일 인수를 30으로 설정함으로써,
    초기의 공통 스케일 인수를 설정하기 위한 것인, 인코딩 장치.
  25. 오디오 데이터를 인코딩하는 장치로서,
    최대 스펙트럼 계수가 0이 아닌 경우, 이전에 결정된 공통 스케일 인수로 초기의 공통 스케일 인수를 설정하는 수단;
    상기 초기의 공통 스케일 인수를 사용해서 양자화된 인코딩된 데이터에 의해 사용된 초기의 비트수를 결정하는 수단;
    초기의 비트수 및 목표 비트수를 사용해서 초기의 증분을 계산하는 수단;
    초기의 공통 스케일 인수를 초기의 증분만큼 증분시키는 수단;
    증분된 공통 스케일 인수를 목표 비트수를 기초로 해서 조정하는 수단;
    인코딩된 오디오 신호를 위해 허용된 왜곡을 기초로 해서 복수의 개별적인 스케일 인수를 계산하는 수단으로서, 상기 개별적인 스케일 인수는 상기 인코딩된 오디오 신호 내의 왜곡을 제어하며, 각각의 개별적인 스케일 인수를 위한 초기의 값은 조정된 상기 공통 스케일 인수와 동일한, 복수의 개별적인 스케일 인수를 계산하는 수단; 및
    복수의 개별적인 스케일 인수와 조정된 상기 공통 스케일 인수를 사용해서 생성된 현재의 비트수가 목표 비트수를 초과하는 경우, 결과적인 비트수가 목표 비트수를 더 이상 초과하지 않을 때까지, 조정된 상기 공통 스케일 인수를 변경하는 수단을
    포함하는, 오디오 데이터를 인코딩하는 장치.
KR1020067005309A 2003-09-29 2004-09-23 오디오 인코딩 시의 레이트-왜곡 제어 구조 KR101103004B1 (ko)

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 KR20060084437A (ko) 2006-07-24
KR101103004B1 true 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)

* Cited by examiner, † Cited by third party
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
CN101027718A (zh) * 2004-09-28 2007-08-29 松下电器产业株式会社 可扩展性编码装置以及可扩展性编码方法
RU2007139784A (ru) * 2005-04-28 2009-05-10 Мацусита Электрик Индастриал Ко., Лтд. (Jp) Устройство кодирования звука и способ кодирования звука
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 주식회사 코아로직 오디오 부호화기의 양자화 방법 및 장치
CN110706715B (zh) 2012-03-29 2022-05-24 华为技术有限公司 信号编码和解码的方法和设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002311993A (ja) * 2001-04-17 2002-10-25 Mitsubishi Electric Corp オーディオ符号化装置
US20030083867A1 (en) * 2001-09-27 2003-05-01 Lopez-Estrada Alex A. Method, apparatus, and system for efficient rate control in audio encoding

Family Cites Families (52)

* Cited by examiner, † Cited by third party
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
US5864802A (en) 1995-09-22 1999-01-26 Samsung Electronics Co., Ltd. Digital audio encoding method utilizing look-up table and device thereof
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
KR100335609B1 (ko) 1997-11-20 2002-10-04 삼성전자 주식회사 비트율조절이가능한오디오부호화/복호화방법및장치
KR100335611B1 (ko) 1997-11-20 2002-10-09 삼성전자 주식회사 비트율 조절이 가능한 스테레오 오디오 부호화/복호화 방법 및 장치
JP3515903B2 (ja) 1998-06-16 2004-04-05 松下電器産業株式会社 オーディオ符号化のための動的ビット割り当て方法及び装置
JP3784993B2 (ja) * 1998-06-26 2006-06-14 株式会社リコー 音響信号の符号化・量子化方法
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
US6298087B1 (en) 1998-08-31 2001-10-02 Sony Corporation System and method for decoding a variable length code digital signal
CA2246532A1 (en) 1998-09-04 2000-03-04 Northern Telecom 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 三菱電機株式会社 音響信号符号化装置
US6587057B2 (en) 2001-07-25 2003-07-01 Quicksilver Technology, Inc. High performance memory efficient variable-length coding decoder
DE60204038T2 (de) * 2001-11-02 2006-01-19 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung zum codieren bzw. decodieren eines audiosignals
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 삼성전자주식회사 오디오 데이터 인코딩 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002311993A (ja) * 2001-04-17 2002-10-25 Mitsubishi Electric Corp オーディオ符号化装置
US20030083867A1 (en) * 2001-09-27 2003-05-01 Lopez-Estrada Alex A. Method, apparatus, and system for efficient rate control in audio encoding

Also Published As

Publication number Publication date
CN1867967A (zh) 2006-11-22
EP1671213A2 (en) 2006-06-21
CN1867967B (zh) 2011-01-05
US7349842B2 (en) 2008-03-25
US20050075871A1 (en) 2005-04-07
EP1671213A4 (en) 2008-08-20
JP2007507750A (ja) 2007-03-29
DE602004028745D1 (de) 2010-09-30
EP1671213B1 (en) 2010-08-18
WO2005033859A3 (en) 2006-06-22
KR20060084437A (ko) 2006-07-24
WO2005033859A2 (en) 2005-04-14

Similar Documents

Publication Publication Date Title
US10121480B2 (en) Method and apparatus for encoding audio data
KR100986924B1 (ko) 정보 신호 인코딩
CA2871252C (en) Audio encoder, audio decoder, methods for encoding and decoding an audio signal, audio stream and computer program
JP5539203B2 (ja) 改良された音声及びオーディオ信号の変換符号化
KR101265669B1 (ko) 코딩된 오디오의 경제적인 소리세기 측정
EP2159790B1 (en) Audio encoding method, audio decoding method, audio encoding device, audio decoding device, program, and audio encoding/decoding system
KR101157930B1 (ko) 오디오 인코딩에서 mdct 데이터에 기초한 윈도우 유형의 결정 방법
JP6474845B2 (ja) 軽減された計算量の変換器snr計算
KR101103004B1 (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