KR20050040800A - 오디오 신호 프로세서 - Google Patents

오디오 신호 프로세서 Download PDF

Info

Publication number
KR20050040800A
KR20050040800A KR1020040086740A KR20040086740A KR20050040800A KR 20050040800 A KR20050040800 A KR 20050040800A KR 1020040086740 A KR1020040086740 A KR 1020040086740A KR 20040086740 A KR20040086740 A KR 20040086740A KR 20050040800 A KR20050040800 A KR 20050040800A
Authority
KR
South Korea
Prior art keywords
signal processing
audio
data
signal
channel
Prior art date
Application number
KR1020040086740A
Other languages
English (en)
Other versions
KR100682444B1 (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
Priority claimed from JP2003369329A external-priority patent/JP4075768B2/ja
Priority claimed from JP2003369330A external-priority patent/JP4494754B2/ja
Application filed by 야마하 가부시키가이샤 filed Critical 야마하 가부시키가이샤
Publication of KR20050040800A publication Critical patent/KR20050040800A/ko
Application granted granted Critical
Publication of KR100682444B1 publication Critical patent/KR100682444B1/ko

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/02Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/025Computing or signal processing architecture features
    • G10H2230/041Processor load management, i.e. adaptation or optimization of computational load or data throughput in computationally intensive musical processes to avoid overload artifacts, e.g. by deliberately suppressing less audible or less relevant tones or decreasing their complexity
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/10537Audio or video recording
    • G11B2020/10546Audio or video recording specifically adapted for audio data
    • G11B2020/10555Audio or video recording specifically adapted for audio data wherein the frequency, the amplitude, or other characteristics of the audio signal is taken into account
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/10537Audio or video recording
    • G11B2020/10546Audio or video recording specifically adapted for audio data
    • G11B2020/10555Audio or video recording specifically adapted for audio data wherein the frequency, the amplitude, or other characteristics of the audio signal is taken into account
    • G11B2020/10574Audio or video recording specifically adapted for audio data wherein the frequency, the amplitude, or other characteristics of the audio signal is taken into account volume or amplitude

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Amplifiers (AREA)
  • Complex Calculations (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Stereophonic System (AREA)

Abstract

오디오 신호 프로세서는, 데이터 경로 유닛, 모드 레지스터 및 상태 머신 유닛으로 구성된다. 데이터 경로 유닛은, 오디오 신호의 신호 처리를 수행하기 위하여, 하나 이상의 산술 연산을 오디오 신호에 적용한다. 모드 레지스터는 데이터 경로 유닛에 의해 수행될 신호 처리를 지정하는 모드 정보를 저장한다. 상태 머신 유닛은, 신호 처리를 수행하기 위하여, 데이터 경로 유닛이 하나 이상의 산술 연산을 오디오 신호에 적용하도록 하는 모드 정보에 따라 제어 신호들을 순차적으로 공급한다. 수행된 신호 처리는, 하나 이상의 산술 연산으로 구성되며, 모드 레지스터에 저장된 모드 정보에 의해 지정된다.

Description

오디오 신호 프로세서{AUDIO SIGNAL PROCESSOR}
본 발명은 오디오 신호들에 대한 다양한 음향 처리를 수행하기 위한 오디오 신호 프로세서에 관한 것이다.
오디오 신호들에 대한 필터링, 등화기 처리, 음상 국소화(sound image localization)와 같은 다양한 타입의 산술 연산들을 수행할 수 있는 오디오 신호 프로세서들이 제공되어왔다. 이러한 관점에서, 필터링 및 다른 산술 연산들은, 곱셈기와 누산기를 구비하는 상대적으로 큰 산술 회로를 각각 필요로 한다. 그러므로, 다수의 산술 연산들로 구성된 복잡한 신호 처리를 수행할 수 있는 오디오 신호 프로세서를 형성하려면, 회로가 매우 커진다. 더욱이, 큰 회로는 그 회로의 동작으로 인하여 오디오 신호 프로세서의 높은 전력 소모를 야기시킨다. 반면에, 몇몇 오디오 신호 프로세서들은, 다수의 채널의 오디오 신호들을 다른 포맷들, 예를 들어 다른 샘플링 주파수들로 수신함으로써 신호 처리를 수행한다. 이러한 타입의 오디오 신호 프로세서에 있어서, 각각의 채널들을 위해 준비된 산술 회로들을 이용하여 입력 디지털 오디오 신호들에 대한 신호 처리가 수행되고, 각 채널들의 디지털 오디오 신호들은, 그 신호 처리 후에 D/A 변환된 다음, 혼합되어 출력된다. 이러한 타입의 오디오 장비는 각각의 채널을 위한 산술 회로를 구비하기 때문에, 신호 처리를 위한 큰 사이즈의 회로를 또한 구비하며, 높은 전력을 소모한다. 이러한 단점들을 해결하기 위하여, 공통 산술 회로를 사용함으로써, 필터링 및 등화기 처리와 같은 다양한 타입의 산술 연산들을 시간 공유 제어를 이용하여 순차적으로 수행하기 위한 오디오 신호 프로세서가 제공되어 왔다. 이러한 타입의 오디오 신호 프로세서에 따르면, 시간 공유 제어하에서 단일의 산술 회로가 이용되므로, 소형의 회로를 획득한다. 이러한 타입의 오디오 신호 프로세서는, 예를 들어 특허 문서 1, 일본공개특허 제2000-122650호에서 개시된다.
상술한 종래의 오디오 신호 프로세서는 사전설정된 타입의 산술 연산들을 고정된 순서로 순차적으로 수행한다. 그러므로, 다양한 명세들을 따르는 오디오 신호 처리의 콘텐츠가 상이한 오디오 신호 프로세서들을 시장에 제공할 때에는, 각각의 명세들을 위한 오디오 신호 프로세서들을 개발하여 제조할 필요가 있는데, 이로 인하여 개발 및 제조 비용이 증가한다. 이러한 문제점을 해결하는 방법으로서, 예를 들어, 필터링, 등화기 처리 및 음상 국소화와 같은 다양한 산술 연산들을 수행할 수 있는 소위 완전한 특징의(full-featured) 오디오 신호 프로세서를 준비한 다음, 예를 들어 몇몇 명세들에서는 필터링을 생략하지만, 다른 명세들에서는 필터링을 생략하지 않음으로써 상이한 종류의 명세들을 구현하는 방법이 존재한다. 예를 들어, 필터링에 있어서, 산술 연산의 생략은 필터링 연산용 필터 계수를 "1"로 설정하여 산술 회로에 의해 디지털 오디오 신호들을 통과시키는 방법으로부터 이루어질 수 있다. 그러나, 통과되더라도, 산술 회로가 그 시간에서 동작하므로, 불필요한 신호 처리를 위한 전력이 소모된다.
다수의 채널의 오디오 데이터에 대한 다양한 신호 처리를 수행할 수 있는 오디오 신호 프로세서들이 널리 이용된다. 신호 처리를 위한 구성의 관점에서, 이러한 오디오 신호 프로세서들은 주로 두 개의 타입으로 분류될 수 있다. 도 13에 도시한 바와 같이, 제1 오디오 신호 프로세서는 각각의 채널에 대한 신호 처리용 데이터 경로를 구비하고, 각 채널들의 오디오 데이터에 대한 신호 처리를 병렬로 수행한다. 도 14에 도시한 바와 같이, 제2 오디오 신호 프로세서는 각각의 채널에 대한 단일의 공통 데이터 경로를 구비하고, 그 단일의 데이터 경로를 이용함으로써, 각 채널들의 오디오 데이터에 대한 신호 처리를 시간 공유 제어를 이용하여 순차적으로 수행한다. 제2 오디오 신호 프로세서를 개시하는 기술 문헌으로서, 예를 들어 특허 문서 2, 일본공개특허 제2000-122680호가 존재한다.
상술한 제1 오디오 신호 프로세서에 따르면, 사용하지 않는 채널들의 데이터 경로들을 비활성화함으로써 전력 소모를 감소시키는 것이 가능하다. 그러나, 이러한 오디오 신호 프로세서는, 데이터 경로가 각각의 채널을 위해 제공될 필요가 있고, 그로 인하여 프로세서가 LSI에 의해 형성될 때에 칩 영역이 커짐으로써 큰 사이즈의 프로세서를 야기시킨다는 문제점이 있다. 제2 오디오 신호 프로세서에 따르면, 단일의 데이터 경로만이 제공될 필요가 있고, 그로 인하여 작은 사이즈의 프로세서 디바이스가 가능해진다. 그러므로, 프로세서가 LSI에 의해 형성될 때, 칩 영역이 감소될 수 있다. 그러나, 이러한 오디오 신호 프로세서는, 채널의 일부분에서만 오디오 데이터가 입력되더라도, 모든 채널들의 동작을 항상 수행하므로, 불필요한 동작들을 수행하여 전력을 낭비한다.
상술한 상황을 고려하여 본 발명이 제공된다. 그러므로, 본 발명의 목적은, 낮은 전력 소모를 유지하면서 다양한 신호 처리를 수행할 수 있는 오디오 신호 프로세서를 제공하는 것이다. 본 발명의 다른 목적은, 사이즈가 작은 구성을 이루면서 낮은 전력 소모를 유지할 수 있는 다수의 채널들의 오디오 신호 프로세서를 제공하는 것이다.
상술한 목적을 이루기 위하여, 본 발명의 일 면에 따른 오디오 신호 프로세서는, 오디오 신호의 신호 처리를 수행하기 위하여, 하나 이상의 산술 연산을 오디오 신호에 적용하는 데이터 경로 유닛, 데이터 경로 유닛에 의해 수행될 신호 처리를 지정하는 모드 정보를 저장하는 모드 레지스터, 및 신호 처리를 수행하기 위하여, 오디오 신호에 하나 이상의 산술 연산을 적용하는 데이터 경로 유닛을 인에이블(enable)하기 위한 제어 신호들을 순차적으로 공급하는 상태 머신 유닛을 포함하고, 신호 처리는, 하나 이상의 산술 연산들로 구성되고, 모드 레지스터에 저장된 모드 정보에 의해 지정된다.
이러한 오디오 신호 프로세서에 따르면, 데이터 경로 유닛은, 모드 레지스터내에 보유된 모드 정보를 업데이트함으로써 다양한 신호 처리를 수행할 수 있다. 더욱이, 데이터 경로 유닛은 불필요한 연산없이 신호 처리를 형성하는 산술 연산들만을 수행하며, 이로 인하여 낮은 전력 소모를 유지한다.
바람직한 모드에서, 상태 머신 유닛은, 각각의 산술 연산에서 처리될 오디오 신호의 입력 데이터의 위치를 나타내는 정보와, 각각의 산술 연산의 결과에 대한 출력 목적지를 나타내는 정보를 전달하는 제어 신호를 공급한다.
본 발명의 오디오 신호 프로세서는, 외부로부터의 오디오 신호를 수신하거나 외부로부터 공급된 소스 신호에 기초한 오디오 신호를 생성하며, 오디오 신호들을 데이터 경로 유닛으로 공급하는 다수의 인터페이스를 더 포함할 수도 있고, 상태 머신 유닛은, 인터페이스들로부터 공급된 오디오 신호들의 포맷을 사전설정된 포맷으로 변환하기 위한 산술 연산을 실행하는 데이터 경로 유닛을 인에이블하기 위한 제어 신호를 생성한다. 그러한 경우, 상태 머신 유닛은, 동일한 포맷을 가지면서 데이터 경로 유닛으로 로드(load)되는 다수의 오디오 신호를 혼합하기 위한 산술 연산을 실행하는 데이터 경로 유닛을 인에이블하기 위한 제어 신호를 생성한다.
바람직하게는, 상태 머신 유닛은, 모드 레지스터에 저장된 모드 정보에 의해 지정된 신호 처리를 수행하는 데이터 경로 유닛을 인에이블하기 위한 제어 신호를 소정의 주기에서 클럭 펄스가 공급되는 매 시간마다 생성한다. 그러한 경우, 데이터 경로 유닛은 실행중인 산술 연산의 상태를 나타내는 상태 신호를 상태 머신 유닛에 제공하고, 상태 머신 유닛은, 그 다음 클럭 펄스가 공급될 때 데이터 경로 유닛으로 송신되어야 하는 제어 신호의 콘텐츠를 제공된 상태 신호에 기초하여 결정한다.
바람직하게는, 상태 머신 유닛은, 모드 정보에 의해 지정된 신호 처리를 구성하는 다수의 산술 연산을 연속해서 실행하는 데이터 경로 유닛을 인에이블하기 위한 제어 신호들을 순차적으로 공급한다.
본 발명의 다른 면에 따른 오디오 신호 프로세서는, 다수의 채널의 오디오 데이터를 각각 수신하는 다수의 인터페이스, 다수의 인터페이스를 통해 입력된 다수의 채널의 오디오 데이터에 기초하여 각 채널이 활성 상태인지 또는 비활성 상태인지를 나타내는 상태 신호를 생성하는 검출 유닛, 및 다수의 채널의 오디오 데이터에 대한 신호 처리를 시분할 방식으로 수행하는 오디오 신호 처리 유닛을 포함하고, 오디오 신호 처리 유닛은, 검출 유닛으로부터 출력된 상태 신호에 기초하여 각 채널이 활성 상태인지 또는 비활성 상태인지를 결정하고, 활성 상태에서의 채널들의 오디오 데이터에 대해서만 신호 처리를 수행하며, 비활성 상태에서의 채널들의 오디오 데이터에 대해서는 신호 처리를 중지한다.
본 발명의 이러한 면에 따르면, 검출 유닛은, 각 채널이 활성 상태인지 또는 비활성 상태인지를 검출하고, 오디오 신호 처리 유닛은, 활성 채널들의 오디오 데이터에 대해서만 신호 처리를 수행하며, 비활성 채널들의 오디오 데이터에 대해서는 신호 처리를 중지한다. 그러므로, 불필요한 신호 처리를 방지하면서 신호 처리에 요구되는 낮은 전력 소모를 유지하는 것이 가능하다.
바람직한 모드에서, 검출 유닛은, 채널의 오디오 데이터가 소정의 시간 주기 이상 중지되면, 채널이 비활성 상태임을 나타내는 상태 신호를 생성한다. 이러한 모드에 따르면, 오디오 신호 처리 유닛에서의 잔향 처리와 같은 지연 시스템의 신호 처리를 실행하는 동안 어떤 채널의 오디오 데이터가 중지되면, 관련 채널의 신호 처리는, 소정의 시간 주기가 경과한 이후의 적절한 타이밍에서 중지된다. 그러므로, 전향 처리 또는 그와 유사한 처리가 실행 동안 인터럽트되는 단점을 방지하는 것이 가능하다.
또다른 바람직한 모드에서, 검출 유닛은, 채널의 오디오 데이터가 제1 시간 주기 이상으로 계속해서 중지될 때 제1 상태 신호를 생성하고, 채널의 오디오 데이터가 제1 시간 주기보다 더 긴 제2 시간 주기 이상으로 계속해서 중지될 때 제2 상태 신호를 생성하며, 오디오 신호 처리 유닛은, 제1 상태 신호가 검출 유닛으로부터 채널에 대해 생성되면 채널의 신호 처리의 일부분을 중지하고, 제2 상태 신호가 채널에 대해 생성되면 채널의 신호 처리의 전부를 중지한다. 이러한 모드에 따르면, 소정의 타입의 신호 처리는 오디오 데이터의 중지에 의해 생성된 제1 상태 신호의 출력 시점에서 중지되고, 소정의 타입의 신호 처리가 오디오 데이터의 중지 시점에서 인터럽트되더라도 관련 소정의 타입의 신호 처리는 영향을 받지 않으며, 다른 타입의 신호 처리는, 오디오 데이터가 소정의 시간 주기 또는 더 긴 시간 주기동안 계속해서 중지된 상황이면 중지된다. 그러므로, 상술한 모드에서 낮은 전력 소모를 유지하는 것이 가능하다.
이하에서는, 도면들을 참조하여 본 발명의 실시예들을 설명한다.
(제1 실시예)
도 1은 본 발명의 제1 실시예에 따른 오디오 신호 프로세서(10)의 구성을 보여주는 블록도이다. 오디오 신호 프로세서(10)는 반도체 칩상에 형성된 도시한 컴포넌트들과 동등한 회로를 포함하는 LSI이며, 이펙터(effector) 기능, 혼합 기능, 또는 다른 기능들을 필요로 하는 다양한 오디오 장비에 장착된다.
이 실시예에 따른 오디오 신호 프로세서(10)는 소스 A로부터의 오디오 파형들을 샘플링함으로써 생성된 시계열 오디오 데이터를 수신하고, 소스 B로부터 성능 데이터를 수신하여 처리한다. 이러한 관점에서, 소스 A는, 예를 들어 오디오 신호 프로세서(10)가 장착되는 오디오 장비에 연결된 외부 디바이스, 또는 그 오디오 장비내에 만들어진 MP3(MPEG 1 layer 3) 디코더와 같은 오디오 재생기이다. 소스 B는, 예를 들어 오디오 신호 프로세서(10)가 장착되는 오디오 장비내에서 그 오디오 신호 프로세서(10)를 제어하기 위한 호스트 프로세서이다.
소스 A로부터 오디오 데이터를 수신하기 위하여, 오디오 신호 프로세서(10)에 디지털 오디오 I/F(11)가 제공된다. 이 실시예에서, 두 개의 채널 L과 R의 샘플링 주파수 f1을 갖는 오디오 데이터 A는 디지털 오디오 I/F(11)를 통해 입력된다.
더욱이, 소스 B로부터 성능 데이터를 수신하여 오디오 데이터를 획득하기 위하여, 오디오 신호 프로세서(10)에 CPU I/F(12), 순서기(13) 및 음원(14)이 제공된다. 성능 데이터는, 소스 B로부터 CPU I/F(12)를 통해 순서기(13)로 공급된다. 성능 데이터는, 노트(note) 온 및 노트 오프와 같은 음원(14)의 제어들을 지정하는 일련의 이벤트 데이터와, 각각의 이벤트 데이터를 음원(14)으로 송신하기 위한 간격들을 지정하는 시간(duration) 데이터를 포함하는 순차적인 데이터이다. 순서기(13)는 이벤트 데이터를 음원(14)으로 송신하기 위한 타이밍을 제어한다. 구체적으로 설명하면, 어떤 이벤트 데이터가 음원(14)으로 송신되면, 순서기(13)는, 후속 이벤트 데이터와 관련된 시간 데이터에 상당하는 시간이 경과하도록 대기하고, 그 후속 이벤트 데이터를 음원(14)으로 송출하는 동작을 반복한다. 바람직한 실시예에 있어서, 음원(14)은 스테레오 샘플된(stereo-smapled) 오디오 데이터이다. 이 실시예에서, 노트 온 이벤트 데이터가 공급될 때, 음원(14)은, 각각 다른 파형들을 나타내는 두 개의 채널 L과 R의 샘플링 주파수 f2를 갖는 오디오 데이터 B를 출력한다. 다른 바람직한 실시예에 있어서, 음원(14)은 모노럴 샘플된(monaural-sampled) 오디오 데이터를 생성한다. 이러한 실시예에서, 노트 온 이벤트 데이터가 공급될 때, 음원(14)은 샘플링 주파수 f2를 갖는 모노럴 오디오 데이터를 생성한다. 오디오 데이터는, 음상 국소화의 위치를 나타내는 파노라마식 전위차계(panoramic potentiometer)의 계수에 대응하는 볼륨비(volume ratio)에서 두 개의 채널 L과 R의 오디오 데이터 B에 할당된 다음, 음원(14)으로부터 출력된다.
오디오 신호 처리 유닛(20)은 디지털 오디오 I/F(11)와 음원(14)으로부터 각각 획득된 오디오 데이터 A와 B에 대한 신호 처리를 수행하고, 두 개의 채널 L과 R의 디지털 신호들을 그 처리의 결과로서 출력한다. 오디오 신호 처리 유닛(20)내에 도시되지 않은 클럭 생성기는, 주파수 fs를 갖는 샘플링 클럭 펄스 CLK와, CLK보다 빠른 연산 클럭 펄스 MCLK를 생성한다. 오디오 신호 처리 유닛(20)에 있어서, 오디오 데이터 A와 B에 대한 신호 처리는, 신호 처리가 발생하는 매 시간마다 샘플링 클럭 펄스 CLK의 생성에 의해 트리거(trigger)되어 수행된다. 신호 처리를 위한 컴포넌트들의 타이밍 제어는 연산 클럭 펄스 MCLK에 동기되어 수행된다. 이 실시예에서, 샘플링 클럭 펄스의 주파수 fs는 오디오 데이터 B의 샘플링 주파수 f2와 동일하다. 그러므로, 오디오 데이터 B는 그 샘플링 주파수의 변환없이 오디오 신호 처리 유닛(20)에서 직접 처리될 수 있다. 오디오 데이터 A의 샘플링 주파수 f1은 주파수 fs(=f2)와 다르다. 그러므로, 이 실시예에서, 오디오 데이터 A는 오디오 신호 처리 유닛(20)에 캡처된 다음, 그 샘플링 주파수가 f1에서 fs(=f2)로 SRC 연산처럼 변환된다. SRC 연산은 이하에서 설명될 것이다.
도 1에 도시한 바와 같이, 오디오 신호 처리 유닛(20)은 데이터 경로 유닛(30), 상태 머신 유닛(40) 및 모드 레지스터(50)를 구비한다. 데이터 경로 유닛(30)은 임시 데이터를 저장하기 위한 메모리(31) 및 연산 유닛(32)을 구비한다. 임시 데이터를 저장하기 위한 메모리(31)는, 처리될 오디오 데이터 A와 B를 임시적으로 저장하기 위한 버퍼링 영역, 및 신호 처리중인 디지털 데이터를 임시적으로 저장하기 위한 임시 저장 영역으로서 이용된다. 연산 유닛(32)은, 임시 데이터를 저장하는 메모리(31)로부터 판독된 데이터에 대한 산술 연산을 수행하기 위한 디바이스로서, 곱셈기(33), 누산기(34) 및 연산 계수 생성 회로(35)를 구비한다. 이러한 관점에서, 곱셈기(33)는 임시 데이터를 저장하는 메모리(31)로부터 판독된 데이터를 연산 계수와 곱하기 위한 회로이고, 연산 계수 생성 회로(35)는 연산 계수를 생성하기 위한 것이다. 생성되는 연산 계수는 타겟 데이터에 대해 수행될 연산의 타입에 기초하여 결정된다. 누산기(34)는, 곱셈의 결과가 출력되는 매 시간마다 곱셈기(33)로부터 출력된 곱셈의 결과를 누산하기 위한 회로이다. 곱셈기(33)의 곱셈의 결과들을 누산하는 연산 외에, 누산기(34)는 곱셈의 결과를 스킵(skip)하여 누산하지 않는 연산을 수행할 수 있다. 어떤 연산이 상술한 연산 유닛(32)에 의해 수행되어야 하는지, 임시 데이터를 저장하는 메모리(31)내 어떤 영역 데이터가 산술 연산의 타겟이어야 하는지, 및 누산기(34)로부터의 어떤 출력 데이터가 연산의 결과로서 공급되어야 하는지는, 상태 머신 유닛(40)으로부터 공급된 제어 신호들에 따라 결정된다.
상태 머신 유닛(40)에는 데이터 경로 유닛(30)의 내부 상태를 나타내는 상태 신호가 공급된다. 상태 머신 유닛(40)은, 데이터 경로 유닛(30)의 내부 상태의 변화를 상태 신호에 기초하여 모니터링하고, 모니터링의 결과에 기초하여 데이터 경로 유닛(30)이 다양한 신호 처리를 수행하도록 하는 제어 신호를 출력하기 위한 디바이스이다.
상태 머신 유닛(40)은 연산 상태 머신들(41a~41h)을 데이터 경로 유닛(30)의 산술 연산들의 실행을 제어하기 위한 수단으로서 구비한다. 다음은, 이러한 연산 상태 머신들의 제어하에 데이터 경로 유닛(30)에 의해 수행된 산술 연산들을 열거한다:
a. SRC(sampling rate conversion) 연산
임시 데이터를 저장하는 메모리(31)로부터 샘플링 주파수 f1의 오디오 데이터를 판독하여 샘플링 주파수 fs(=f2)의 오디오 데이터로 변환하는 처리이다. 이는, 연산 상태 머신(41a)의 제어하에 수행된다.
b. VOL(volume) 연산
임시 데이터를 저장하는 메모리(31)로부터 오디오 데이터를 판독하여 그 볼륨을 조정하는 처리이다. 이는, 연산 상태 머신(41b)의 제어하에 수행된다.
c. FADE(fade) 연산
임시 데이터를 저장하는 메모리(31)로부터 오디오 데이터를 판독하여 그 볼륨을 청취 불능 레벨(묵음 레벨)로 임시적으로 제어하는 처리이다. 이는, 연산 상태 머신(41c)의 제어하에 수행된다.
d. MIX(digital mix) 연산
임시 데이터를 저장하는 메모리(31)로부터 두 개 타입의 오디오 데이터를 판독하여 그들을 혼합하는 처리이다. 이는, 연산 상태 머신(41d)의 제어하에 수행된다.
e. EQ(digital equalizer) 연산
임시 데이터를 저장하는 메모리(31)로부터 오디오 데이터를 판독하여 각각의 주파수 대역에 대한 레벨을 조정하는 처리이다. 이는, 연산 상태 머신(41e)의 제어하에 수행된다.
f. VSP(virtual speaker position) 연산
도 2에 도시한 바와 같이, 임시 데이터를 저장하는 메모리(31)로부터 L과 R 채널들의 오디오 데이터를 판독하고, 가상 스피커 VSP-L과 VSP-R의 위치를 위해 준비된 FIR(finite impulse response) 필터 계수 스트링(string)들을 각각의 데이터와 콘볼루션하며, 레벨 시프팅(shifting)을 수행하는 처리이다. 이는, 연산 상태 머신(41f)의 제어하에 수행된다. VSP 연산 이후의 L과 R 채널들의 오디오 데이터가 D/A 변환되어 좌ㆍ우 스피커 SP-L 및 SP-R로부터 출력되면, 청취자는, 마치 L과 R 채널들의 음향이 가상 스피커 VSP-L과 VSP-R로부터 출력되는 가청 효과를 얻는 것이 가능하다.
g. LOAD(data load) 연산
오디오 데이터 A와 B를, 임시 데이터를 저장하는 메모리(31)의 버퍼링 영역에 1회 저장하고, 그 데이터를 필요로 하는 산술 연산으로 전달하는 처리이다. 이는, 연산 상태 머신(41g)의 제어하에 수행된다.
h. VSP THRU(VSP through) 연산
임시 데이터를 저장하는 메모리(31)로부터 L과 R 채널들의 오디오 데이터를 판독하고, FIR 필터링 연산을 생략하여 VSP 연산을 수행하는, 즉 도 2에서의 시프트 연산을 수행하는 처리이다. 이는, 연산 상태 머신(41h)의 제어하에 수행된다.
이 실시예에서의 오디오 신호 처리 유닛(20)은 상술한 산술 연산들의 조합으로부터 만들어진 다양한 신호 처리를 수행할 수 있다. 오디오 신호 처리 유닛(20)에 의해 수행될 수 있는 신호 처리는, 도 3에 도시한 바와 같이, 0부터 n-1까지 n개 타입의 모드들을 구비한다. 모드 정보는 오디오 신호 처리 유닛(20)내 모드 레지스터(50)에 기록되어, 신호 처리를 위한 모드 0부터 n-1 중 어떤 모드가 선택되어야 하는지를 지정한다. 바람직한 실시예에 있어서, 모드 정보는, 오디오 신호 프로세서(10)가 장착되는 장비의 연산부의 제어에 따라 모드 레지스터(50)에 기록된다. 다른 바람직한 실시예에 있어서, 오디오 신호 프로세서(10)를 제어하는 호스트 프로세서는 그 모드 정보를 소프트웨어에 의해서 모드 레지스터(50)에 기록한다. 모드 레지스터(50)가 비휘발성 메모리에 의해 형성되고, 소정의 모드 정보가 공장에서 모드 레지스터(50)에 기록된 후 선적되는 실시예가 존재할 수 있다.
연산 단계 호출 상태 머신 유닛(42)은, 데이터 경로 유닛(30)이 도 3에 도시한 모드 0부터 n-1에 대응하는 각각의 신호 처리를 수행하도록 하기 위한 n개 연산 단계 호출 상태 머신들의 어셈블리이다. 상태 머신 유닛(40)에 있어서, 이러한 연산 단계 호출 상태 머신들 중 모드 레지스터(50)내 모드 정보에 의해 지정된 모드에 대응하는 연산 단계 호출 상태 머신은, 샘플링 클럭 펄스 CLK가 생성되는 매 시간마다 개시된다.
각각의 모드에 대응하는 연산 단계 호출 상태 머신은, 신호 처리를 형성하는 하나 이상의 산술 연산들에 대응하는 연산 상태 머신들을 순차적으로 개시하여, 데이터 경로 유닛(30)이 그 모드에서의 신호 처리를 수행하도록 하는 기능을 구비한다. 연산 단계 호출 상태 머신에 의해 개시된 연산 상태 머신은 제어 신호를 생성하여, 데이터 경로 유닛(30)이 관련된 산술 연산을 수행하게 한다. 이 제어 신호는 연산 단계 호출 상태 머신을 통해 데이터 경로 유닛(30)으로 공급된다.
더욱이, 연산 단계 호출 상태 머신은, 신호 처리를 형성하는 각각의 산술 연산들간에 데이터를 적절하게 전달하는 제어를 생성한다. 도 3에 도시한 바와 같이, 신호 처리를 형성하는 산술 연산들간에 데이터를 전달하는 실시예는 모드에 의존한다. 예를 들어, MIX 연산에 초점을 맞추어 설명하면, 모드 0에서는 VOL 연산의 결과와 LOAD 연산의 결과가 MIX 연산으로 전달되는 반면, 모드 1에서는 VOL 연산의 결과와 EQ 연산의 결과가 MIX 연산으로 전달된다. 더욱이, 모드 0에서는 MIX 연산의 결과가 EQ 연산으로 전달되는 반면, 모드 1에서는 MIX 연산의 결과가 VSP 연산으로 전달된다. 그러므로, 이러한 실시예에 있어서, 데이터 경로 유닛(30)이 산술 연산을 수행하도록 하기 위한 제어 신호가 데이터 경로 유닛(30)으로 송신될 때, 각각의 모드에 대응하는 연산 단계 호출 상태 머신은, 산술 연산의 타겟 데이터의 위치를 나타내는 정보와, 그 산술 연산 결과의 저장 위치 또는 출력 목적지를 나타내는 정보를 포함하는 제어 신호를 데이터 경로 유닛(30)으로 송신한다. 이러한 제어는, 각 산술 연산을 위한 입력 데이터가 획득되는 위치와, 각각의 모드동안 출력 데이터가 공급되는 위치의 세팅(setting)을 가능하게 하여, 동일한 구성을 갖는 데이터 경로 회로가 다양한 신호 처리를 수행하게 한다.
상태 머신 유닛(40)은, 상태 머신(43)과, 상술한 상태 머신들 외에 상태 머신 유닛(40)내 모든 상태 머신들을 전체적으로 제어하기 위한 메인 상태 머신(44)을 구비한다. 상태 머신(43)은, 모드 레지스터(50)내 모드 정보가 업데이트되고, 임시 데이터를 저장하는 메모리(31)를 초기화할 때, 메인 상태 머신(44)에 의해 개시된다. 이는, 모드가 스위치되면, 임시 데이터를 저장하는 메모리(31)내에 남아있는 스위칭 이전의 모드에서의 산술 연산의 결과가, 스위칭 이후의 모드에서의 산술 연산에 영향을 줄 수도 있기 때문이다. 예를 들어, VSP 연산처럼 지연 처리를 수반하는 산술 연산에 있어서, 임시 데이터를 저장하는 메모리(31)가 모드 스위칭 시점에서 초기화되지 않으면, 스위칭 이전의 모드에서의 산술 연산의 결과가 스위칭 이후의 산술 연산에 전달되어, 의도된 결과 대신 실패한 결과를 야기시킨다. 이러한 단점을 방지하기 위하여, 상태 머신(43)은 모드 스위칭 시점에서 개시된다.
도 1의 아날로그 유닛(60)은 D/A 변환기를 주로 포함하는데, 상술한 오디오 신호 처리 유닛(20)으로부터 출력된 두 개의 채널 L과 R의 디지털 신호들을 각각 아날로그 신호들로 변환하여, 좌ㆍ우 스피커(도시하지 않음)로 출력한다.
이하에서는, 이러한 실시예에 따른 오디오 신호 프로세서(10)의 상세한 구성에 대해서 설명한다.
후속하여, 이러한 실시예에 따른 연산을 이하에서 설명할 것이다. 두 개의 채널 L과 R의 오디오 데이터는 데이터 경로 유닛(30)에 의해 후술하는 연산으로 처리되는데, 그 설명을 간소화하기 위하여 간단히 "오디오 데이터"로서 간주한다.
소스 A로부터의 오디오 데이터 및 소스 B로부터의 성능 데이터는 도 1의 오디오 신호 프로세서(10)로 공급되는데, 샘플링 주파수 f1의 오디오 데이터 A는 디지털 오디오 I/F(11)로부터 출력되고, 샘플링 주파수 f2의 오디오 데이터 B는 음원(14)으로부터 출력되어 오디오 신호 처리 유닛(20)으로 공급된다.
도 4는, 이러한 오디오 데이터를 처리하기 위한 오디오 신호 처리 유닛(20)의 동작을 보여주는 타이밍 도이다. 오디오 신호 처리 유닛(20) 내부에서는, 주파수 fs의 샘플링 클럭 펄스 CLK와, CLK보다 빠른 연산 클럭 펄스 MCLK가 생성된다. 오디오 데이터 A와 B는, 이러한 클럭 펄스들에 비동기하는 타이밍에서 디지털 오디오 I/F(11)와 음원(14)으로부터 각각 출력되고, 임시 데이터를 저장하는 메모리(31)내의 오디오 데이터 A용 버퍼링 영역 및 오디오 데이터 B용 버퍼링 영역에 각각 저장된다. 이 실시예에서, 이러한 버퍼링 영역들은 FIFO 영역들로서 작동한다. 즉, 버퍼링 영역들에 저장되어 판독될 오디오 데이터 A와 B는, 가장 먼저 저장된 것부터 순차적으로 판독된다.
오디오 신호 처리 유닛(20)에 있어서, 오디오 데이터 A와 B에 대한 신호 처리는, 샘플링 클럭 펄스 CLK가 생성되는 매 시간마다 수행된다. 구체적으로 설명하면, 모드 레지스터(50)내 모드 정보에 의해 표시된 모드가, 예를 들어 모드 0이면, 오디오 신호 처리 유닛(20)은, LOAD 연산, SRC 연산, VOL 연산, MIX 연산, EQ 연산, VSP 연산, 및 FADE 연산을 순차적으로 수행하는데, 샘플링 클럭 펄스 CLK가 도시한 바와 같이 생성되는 매 시간마다 시간 공유 제어를 이용하여 모드 0의 신호 처리를 형성한다.
도 5는 어떤 샘플링 주파수(1/fs)에서 오디오 신호 처리 유닛(20)에 의해 수행된 모드 0에 대응하는 신호 처리를 보여주는 타이밍 도를 나타낸다. 모드 0에 있어서, 연산 단계 호출 상태 머신 유닛(42)내 모드 0에 대응하는 연산 단계 호출 상태 머신은, 샘플링 클럭 펄스 CLK의 상승 에지(edge)에서의 트리거에 의해 개시된다. 모드 0에 대응하는 연산 단계 호출 상태 머신은, 먼저 LOAD 연산을 위한 연산 상태 머신(41g)을 개시한다. 연산 상태 머신(41g)은, 데이터 경로 유닛(30)이 LOAD 연산을 수행하도록 하기 위한 제어 신호를 생성한다. 이 제어 신호는 모드 0에 대응하는 연산 단계 호출 상태 머신을 통해 데이터 경로 유닛(30)으로 송신된다. 그와 동시에, 모드 0에 대응하는 연산 단계 호출 상태 머신은, 판독될 오디오 데이터 B에서의 가장 오래된 데이터에 대한 저장 영역을 나타내는 정보와, 임시 데이터를 저장하는 메모리(31)내 MIX 연산 영역, 즉 오디오 데이터 B의 출력 목적지를 지정하는 정보를 포함하는 제어 신호를 데이터 경로 유닛(30)으로 송신한다. 더욱이, SRC 연산이 오디오 데이터 A의 보충을 필요로 하는 상태에서, 모드 0에 대응하는 연산 단계 호출 상태 머신은, LOAD 연산에서 판독될 오디오 데이터 A에 대한 저장 영역을 나타내는 정보와, 임시 데이터를 저장하는 메모리(31)내 SRC 연산 영역을 오디오 데이터 A의 출력 목적지로서 지정하는 정보를 포함하는 제어 신호를 데이터 경로 유닛(30)으로 송신한다. 어떤 상태가, SRC 연산이 오디오 데이터 A의 보충을 필요로 하는 상태에 대응하는지는 이후에 설명될 것이다.
데이터 경로 유닛(30)에서, LOAD 연산은, 상술한 바와 같이 상태 머신 유닛(40)으로부터 송신된 제어 신호에 따라 수행된다. 구체적으로 설명하면, 연산 계수 생성 회로(35)는, 먼저 "1"을 연산 계수로서 곱셈기(33)에 제공한다. 누산기(34)는 통과 상태(through state)가 된다. 이 상태에서, 오디오 데이터 B는 임시 데이터를 저장하는 메모리(31)내 오디오 데이터 B에 대한 버퍼링 영역으로부터 판독된다. 그 오디오 데이터 B는 곱셈기(33)와 누산기(34)를 통과하여, 임시 데이터를 저장하는 메모리(31)내 MIX 연산 영역에 저장된다. SRC 연산이 오디오 데이터 A의 보충을 필요로 하는 상태에서, 오디오 데이터 A는 임시 데이터를 저장하는 메모리(31)내 오디오 데이터 A에 대한 버퍼링 영역으로부터 판독된다. 이 오디오 데이터 A는 곱셈기(33)와 누산기(34)를 통과하여, 임시 데이터를 저장하는 메모리(31)내 SRC 연산 영역에 저장된다. 이러한 방식으로 LOAD 연산이 종료될 때, 데이터 경로 유닛(30)은 LOAD 연산의 종료를 나타내는 상태 신호를 상태 머신 유닛(40)으로 송신한다.
이 상태 신호를 수신하면, 모드 0에 대응하는 연산 단계 호출 상태 머신은, SRC 연산을 위한 연산 상태 머신(41a)을 개시한다. 연산 상태 머신(41a)은, 데이터 경로 유닛(30)이 SRC 연산을 수행하도록 하기 위한 제어 신호를 생성한다. 이 제어 신호에 대해서는 이하에서 상세하게 설명할 것이다. SRC 연산을 위한 제어 신호는 모드 0에 대응하는 연산 단계 호출 상태 머신을 통해 데이터 경로 유닛(30)으로 송신된다. 그와 동시에, 모드 0에 대응하는 연산 단계 호출 상태 머신은, 임시 데이터를 저장하는 메모리(31)내 SRC 연산 영역을 SRC 연산의 타겟이 되는 입력 데이터의 저장 위치로서 지정하는 정보와, 임시 데이터를 저장하는 메모리(31)내 VOL 연산 영역을 샘플링율 변환 이후의 오디오 데이터의 출력 목적지로서 지정하는 정보를 포함하는 제어 신호를 데이터 경로 유닛(30)으로 송신한다.
데이터 경로 유닛(30)에서, SRC 연산은 상태 머신 유닛(40)으로부터 상술한 방식으로 송신된 제어 신호에 기초하여 수행된다. 도 6은 SRC 연산의 상황을 보여준다. SRC 연산에 있어서, 보간(interpolating) 연산이 수행되어, 오디오 파형의 단일 순시값을, 과거에 생성된 일련의 오디오 데이터 A의 엔벌로프(envelope)상에 1/fs 간격들로 정렬된 각각의 샘플링 포인트들에서 획득하는데, 주파수 fs의 샘플링 클럭 펄스 CLK는 매 시간마다 생성된다. 도 6에서, 샘플링 클럭 펄스 CLK의 생성에서 획득된 순시값은 시간 t1에서 마크(mark) X로 표시된다. 이 순시값은 보간 연산 계수 스트링(string)들을 샘플링 포인트 주변의 소정의 개수의 오디오 데이터 A와 콘볼루션함으로써 획득된다. 도 6은, 샘플링 포인트 이후의 단일 음성 데이터 Ak와, 샘플링 포인트 이전의 세 개의 오디오 데이터 Ak-1, Ak-2 및 Ak-3을 이용함으로써, 샘플링 포인트에서 순시값을 획득하는 예를 보여준다. 위상 정보 Δt는, 순시값이 획득되어야 하는 샘플링 포인트와, 그 샘플링 포인트 바로 이전의 오디오 데이터 Ak-1의 생성 타이밍 사이의 위상 차이를 나타낸다. SRC 연산을 위한 상술한 제어 신호는 위상 정보 Δt를 포함한다. 연산 계수 생성 회로(35)는 위상 정보 Δt에 대응하는 사전설정된 보간 연산 계수 스트링들을 생성하고, 그 보간 연산 계수들을 곱셈기(33)로 순차적으로 공급한다. 이러한 연산과 동시에, 오디오 데이터 Ak부터 Ak-3은 임시 데이터를 저장하는 메모리(31)의 SRC 연산 영역으로부터 판독되어 곱셈기(33)로 순차적으로 공급된다. 곱셈기(33)는 오디오 데이터 Ak부터 Ak-3을 보간 연산 계수들과 각각 순차적으로 곱셈하고, 누산기(34)는 그 곱셈의 결과들을 누산한다. 이러한 방식으로, 보간 연산 계수 스트링들은 오디오 데이터 Ak부터 Ak-3과 콘볼루션된다. 그 다음, 콘볼루션 연산에 의해 획득된 시간 t1에서의 샘플링 포인트에 대응하는 오디오 파형의 순시값은, 임시 데이터를 저장하는 메모리(31)내 VOL 연산 영역에 SRC 연산 이후의 오디오 데이터 A로서 기록된다.
순차적으로, 데이터 경로 유닛(30)은, 현재의 순시값이 획득된 샘플링 포인트에 후속하는 샘플링 포인트에 대응하는 위상 정보 Δt를 획득하여 상태 신호로서 상태 머신 유닛(40)으로 송신한다. 이 위상 정보 Δt는 후속하는 SRC 연산에서 상태 머신 유닛(40)으로부터 데이터 경로 유닛(30)에 제어 신호의 일부분으로서 송신된다. 새로운 샘플링 포인트에 대응하는 위상 정보 Δt는, 연산 유닛(32)이 예를들어, 주파수 비율 f1/fs를 현재의 위상 정보 Δt에 추가하는 처리를 수행하도록 함으로써 얻을 수 있다.
주파수 비율 f1/fs의 추가로 인하여 위상 정보 Δt가 "1"을 초과하면, 그 다음에 획득될 오디오 파형의 순시값은, SRC 연산 영역내에서 가장 최근의 오디오 데이터 Ak보다 시간 포인트가 느리다. 이러한 상황에서, 후속 SRC 연산은 새로운 오디오 데이터 Ak+1의 보충과, 오디오 데이터 Ak+1, Ak, Ak-1 및 Ak-2를 이용하는 것을 필요로 한다. 따라서, 데이터 경로 유닛(30)은, 주파수 비율 f1/fs의 추가 이후에 획득된 위상 정보 Δt로부터 "1"을 뺌으로써 얻은 위상 정보 Δt를 포함하는 상태 신호와, 오디오 데이터 Ak+1을 그 다음 샘플링 주기에 추가하는 것이 필요함을 나타내는 정보를 상태 머신 유닛(40)으로 송신한다.
연산 단계 호출 상태 머신 유닛(42)내 모드 0에 대응하는 연산 단계 호출 상태 머신에서, 데이터 경로 유닛(30)으로부터 수신된 상태 신호는 후속 SRC 연산을 위해 저장된다. 몇몇 경우에 있어서, 데이터 경로 유닛(30)으로부터의 상태 신호는, 새로운 오디오 데이터 A의 보충이 필요함을 나타내는 정보를 포함한다. 이러한 경우들에서, 데이터 경로 유닛(30)이 후속 샘플링 주기내에 LOAD 연산을 수행하게 될 때, 모드 0에 대응하는 연산 단계 호출 상태 머신은, 오디오 데이터 A 저장 영역을 나타내는 정보와, 임시 데이터를 저장하는 메모리(31)내 SRC 연산 영역을 오디오 데이터 A의 출력 목적지로서 지정하는 정보를 포함하는 제어 신호를 상술한 바와 같이 데이터 경로 유닛(30)으로 송신한다.
상술한 SRC 연산은 오디오 신호 프로세싱 유닛(20)에 의해 수행된다.
실제 오디오 데이터 A의 샘플링 주파수 f1은 시간 지터(jitter)를 갖고, 샘플링 클럭 펄스 CLK의 주파수 fs 역시 시간 지터를 갖는다. 이러한 시간 지터들이 현저할 때에, 위상 정보 Δt가, 상술한 바와 같이 고정 값들인 f1/fs를 누산함으로써 계산된다면, SRC 연산에 의해 계산된 오디오 파형의 순시값의 위상과, 오디오 데이터 A용 버퍼링 영역에 기록된 오디오 데이터 A의 위상 사이의 위상 차이는 시간에 따라 증가된다. 이로 인하여, 버퍼링 영역의 오버플로(overflow) 또는 언더플로(underflow)가 발생할 가능성이 존재한다. 이러한 단점을 방지하기 위하여, 그 버퍼링 영역내에서 아직 판독되지 않은 오디오 데이터 A의 잔여량을 모니터하는 것이 바람직하다: 잔여량이 소정의 값 이하이면, 각각의 샘플링 주기 동안 위상 정보 Δt에 추가될 증분(increment)이 감소되어 언더플로를 방지하거나, 또는 잔여량이 소정의 값 이상이면, 위상 정보 Δt에 추가될 증분이 증가되어 오버플로를 방지한다. 이러한 기술은, 예를 들어 본 출원인에 의해 출원된 특허 문서 3에 개시된다.
특허 문서 3은 일본공개특허 제1999-55075호이다.
데이터 경로 유닛(30)으로부터의 상태 신호에 의해 SRC 연산의 종료를 검출하면, 연산 단계 호출 상태 머신 유닛(42)내 모드 0에 대응하는 연산 단계 호출 상태 머신은, VOL 연산을 위한 연산 상태 머신(41c)을 개시한다. 연산 상태 머신(41c)은, 데이터 경로 유닛(30)이 VOL 연산을 수행하도록 하기 위한 제어 신호를 생성한다. 이 제어 신호는 모드 0에 대응하는 연산 단계 호출 상태 머신을 통해 데이터 경로 유닛(30)으로 송신된다. 그와 동시에, 모드 0에 대응하는 연산 단계 호출 상태 머신은, VOL 연산의 타겟이 될 입력 데이터의 위치를 나타내는 정보와, 임시 데이터를 저장하는 메모리(31)내 MIX 연산 영역을 VOL 연산의 결과로서 획득된 오디오 데이터의 출력 목적지로 지정하는 정보를 포함하는 제어 신호를 데이터 경로 유닛(30)으로 송신한다.
데이터 경로 유닛(30)은, 상술한 바와 같이 상태 머신 유닛(40)으로부터 송신된 제어 신호에 따라 이하에서처럼 VOL 연산을 수행한다. 먼저, SRC 연산 이후의 오디오 데이터 A는 임시 데이터를 저장하는 메모리(31)내 VOL 연산 영역으로부터 판독된다. 그 다음, 연산 유닛(32)은 오디오 데이터에 대한 VOL 연산을 수행하고, 결과로서 획득된 오디오 데이터는 임시 데이터를 저장하는 메모리(31)내 MIX 연산 영역에 저장된다. 이러한 방식으로 VOL 연산이 종료될 때, 데이터 경로 유닛(30)은 이를 나타내는 상태 신호를 상태 머신 유닛(40)으로 송신한다.
데이터 경로 유닛(30)으로부터의 상태 신호에 의해 VOL 연산의 종료를 검출하면, 연산 단계 호출 상태 머신 유닛(42)내 모드 0에 대응하는 연산 단계 호출 상태 머신은, MIX 연산을 위한 연산 상태 머신(41d)을 개시한다. 연산 상태 머신(41d)은, 데이터 경로 유닛(30)이 MIX 연산을 수행하도록 하기 위한 제어 신호를 생성한다. 이 제어 신호는 모드 0에 대응하는 연산 단계 호출 상태 머신을 통해 데이터 경로 유닛(30)으로 송신된다. 그와 동시에, 모드 0에 대응하는 연산 단계 호출 상태 머신은, MIX 연산의 타겟이 될 입력 데이터의 위치를 나타내는 정보와, 임시 데이터를 저장하는 메모리(31)내 EQ 연산 영역을 MIX 연산의 결과로서 획득된 오디오 데이터의 출력 목적지로 지정하는 정보를 포함하는 제어 신호를 데이터 경로 유닛(30)으로 송신한다.
데이터 경로 유닛(30)은, 상술한 바와 같이 상태 머신 유닛(40)으로부터 송신된 제어 신호에 따라 MIX 연산을 수행한다. MIX 연산은, 임시 데이터를 저장하는 메모리(31)내 MIX 연산 영역에 저장된 오디오 데이터 A와 B를 위해 의도된다. 이러한 관점에서, 오디오 데이터 A는 상술한 SRC 연산되었으므로, 오디오 데이터 B처럼 샘플링 주파수 f2의 샘플 데이터가 된다. 그러므로, MIX 연산에서, 이러한 오디오 데이터의 가중치들의 합이 수행되는 것이 필수적이다. 이하에서, 그 연산에 대해 설명한다.
먼저, 오디오 데이터 A는 MIX 연산 영역으로부터 판독되고, 오디오 데이터 A의 가중치를 정의하는 혼합 계수는 연산 계수 생성 회로(35)로부터 출력된 다음, 모두 곱셈기(33)로 공급된다. 곱셈기(33)는 오디오 데이터 A를 혼합 계수와 곱한다. 곱셈의 결과는 누산기(34)에 공급되어 저장된다. 순차적으로, 오디오 데이터 B는 임시 데이터를 저장하는 메모리(31)내 MIX 연산 영역으로부터 판독되고, 오디오 데이터 B의 가중치를 정의하는 혼합 계수는 연산 계수 생성 회로(35)로부터 출력된 다음, 모두 곱셈기(33)로 공급된다. 곱셈기(33)는 오디오 데이터 B를 혼합 계수와 곱한다. 곱셈의 결과는 누산기(34)에 공급된다. 누산기(34)는, 이미 저장되어 있는 데이터에 곱셈의 결과가 추가되는 누산 처리를 수행한다. 이러한 누산 처리는 오디오 데이터 A와 B의 혼합으로부터 생성된 오디오 데이터를 제공한다. 혼합 연산 이후의 오디오 데이터는 임시 데이터를 저장하는 메모리(31)내 EQ 연산 영역에 저장된다. 이러한 방식으로 혼합 연산이 종료하면, 데이터 경로 유닛(30)은 이를 나타내는 상태 신호를 상태 머신 유닛(40)으로 송신한다.
이하에서는, VSP 연산 및 FADE 연산이, 기본적으로 상술한 바와 동일한 제어하에 수행될 것이다.
최종 FADE 연산의 실행 동안, 모드 0에 대응하는 연산 단계 호출 상태 머신은, 아날로그 유닛(60)을 FADE 연산 결과의 출력 목적지로서 지정하는 정보를 데이터 경로 유닛(30)으로 송신한다. 데이터 경로 유닛(30)은, 이러한 정보에 따라 FADE 연산의 결과를 아날로그 유닛(60)으로 송신한다.
최종 FADE 연산의 종료 시, 오디오 신호 프로세싱 유닛(20)은 IDLE 상태에 진입한다. IDLE 상태에서, 데이터 경로 유닛(30)은 신호 처리를 위한 임의의 연산을 수행하지 않으며, 이로 인하여 오디오 신호 프로세서(10)의 전체 전력 소모가 낮은 레벨로 유지된다.
그 후, 샘플링 클럭 펄스 CLK가 생성되어, 새로운 샘플링 주기가 시작될 때, LOAD 연산으로부터 FADE 연산까지의 모드 0의 신호 처리가 도 4에 도시한 바와 같이 다시 수행된다.
상술한 처리는 샘플링 클럭 펄스 CLK가 생성될 때마다 반복되는데, 이에 의하여, 도 3에 도시한 모드 0에서의 신호 처리 이후의 아날로그 신호는 아날로그 유닛(60)내에 생성되어, 좌ㆍ우 스피커로부터 음향으로서 출력된다.
또한, 또다른 모드를 지정하는 모드 정보가 모드 레지스터(50)내에 저장될 때, 그 모드에서의 신호 처리는 상술한 바와 동일한 제어에 의해 수행된다. 도 7은, 도 3에 도시한 모드 1에서의 신호 처리를 수행할 때의 오디오 신호 처리 유닛(20)의 동작을 설명한다. 도 7을 도 5와 비교하면, MIX 연산 영역과 EQ 연산 영역이 서로 교체된 장소에 존재한다. 그러나, 그 영역들은, 도시한 바와 같이 복잡한 도면을 피하도록 정렬되지만, MIX 연산 영역과 EQ 연산 영역이 실질적으로 서로 대체될 수 있음을 의미하지 않는다는 점에 주목해야 한다.
모드 0에서의 상술한 신호 처리에 있어서, LOAD, SRC, VOL, MIX, EQ, VSP 및 FADE 연산들은, 모드 0에 대응하는 연산 단계 호출 상태 머신의 작동에 의해 이러한 순서로 개시되었다. 반면, 모드 1에서의 신호 처리에 있어서, LOAD, SRC, VOL, EQ, MIX, VSP 및 FADE 연산들은, 모드 1에 대응하는 연산 단계 호출 상태 머신의 작동에 의해 이러한 순서로 개시된다. 더욱이, 연산들간의 데이터 전달은, 모드 1에 대응하는 연산 단계 호출 상태 머신의 작동에 의해 모드 0의 데이터 전달과 다른 형태로 수행된다.
상술한 바와 같이, 이러한 실시예에 따른 오디오 신호 프로세서(10)는, 공통 데이터 경로 유닛(30)을 이용함으로써, 콘텐츠가 서로 다른 다양한 타입의 신호 처리를 수행할 수 있다. 더욱이, 소정의 신호 처리에 대응하는 모드 정보를 모드 레지스터(50)에 미리 기록함으로써, 오디오 신호 처리 유닛(20)이 신호 처리를 수행할 수 있다. 그러므로, 단일 칩을 이용함으로써, 신호 처리의 타입들이 상이한 많은 명세들을 위한 오디오 신호 프로세서(10)를 얻는 것이 가능하다. 이러한 실시예에 따른 오디오 신호 프로세서(10)에 있어서, 데이터 경로 유닛(30)이, 샘플링 주기의 시작부터, 모드 정보에 대응하는 신호 처리의 실행 이후의 그 다음 샘플링 주기까지의 주기 동안 동작하지 않는 유휴 상태(idle state)가 존재한다. 더욱이, 모드 정보에 대응하는 신호 처리에 있어서, 데이터 경로 유닛(30)은 신호 처리를 위한 연산만을 수행한다. 그러므로, 이러한 실시예에 따르면, 신호 처리를 위한 불필요한 연산들을 방지하고, 이로 인하여 낭비되는 전력 소모를 절감하여 낮은 전력 소모를 얻는다. 그러므로, 오디오 신호 프로세서는, 낮은 전력 소모가 요구되는, 예를 들어 휴대폰과 같은 휴대용 전자 디바이스에 장착될 수 있다. 이로 인하여, 고품질의 오디오 신호 처리 기능들을 구비한 디바이스들을 제공하는 것이 가능해진다.
(제2 실시예)
이러한 실시예에 따른 오디오 신호 프로세서의 구성은, 도 1에서 도시한 제1 실시예의 구성과 기본적으로 동일하다. 상술한 제1 실시예에서, 연산 단계 호출 상태 머신 유닛(42)은, 모드 0부터 모드 n-1에 대응하는 다수의 연산 호출 상태 머신들의 어셈블리이다. 이러한 실시예에서의 연산 단계 호출 상태 머신 유닛(42)은, 데이터 경로 유닛(30)을 제어하고, 도 8에 도시한 결정 테이블에 따른 상태 천이를 수행하는 단일 상태 머신이다. 도 9는 그 동작을 보여주는 상태 천이 블록도를 나타낸다.
도 9에 도시한 바와 같이, 연산 단계 호출 상태 머신 유닛(42)은, 현재 상태 및 모드에 기초한 데이터 경로 유닛(30)의 제어 콘텐츠를 결정한다(단계 S1 및 S2). 예를 들어, 현재 데이터 경로 유닛(30)의 SRC 연산을 제어하고, 모드 0이 적용되면, 연산 단계 호출 상태 머신 유닛(42)은 SRC 연산을 지정하는 제어 신호를 데이터 경로 유닛(30)으로 송신한다. 그와 동시에, 연산 단계 호출 상태 머신 유닛(42)은, VOL 연산 영역을, 도 8의 결정 테이블에 따른 SRC 연산에 의해 획득된 데이터의 출력 목적지로서 지정하는 제어 신호를 데이터 경로 유닛(30)으로 송신한다. 그 다음, 데이터 경로 유닛(30)으로부터의 상태 신호에 의해 SRC 연산의 종료를 검출하면, 연산 단계 호출 상태 머신 유닛(42)은, 도 8의 결정 테이블에 따른 VOL 연산을 제어하기 위한 상태로 천이된다(단계 S3). 그 후, VOL 연산을 제어하기 위한 상태에서, 연산 단계 호출 상태 머신 유닛(42)은, 현재 상태(이 경우, VOL 연산을 제어하기 위한 상태)와 모드(단계 S1 및 S2)에 기초하여 데이터 경로 유닛(30)을 제어한다.
이러한 실시예에 있어서, 상술한 제1 실시예와 동일한 효과를 얻는다.
(다른 방편)
본 발명의 제1 실시예와 제2 실시예는 상술한 바와 같이 설명되는 반면, 본 발명은 다음의 방편들을 더 구비한다: (1) 산술 연산들에 사용하기 위한 임시 데이터를 저장하는 메모리내 영역들의 할당은 모드에 의존할 수도 있다. 예를 들어, 수행될 타입의 산술 연산들의 개수가 더 많은 모드보다, 단지 많은 타입의 산술 연산들이 수행될 모드에서의 각각의 산술 연산에 더 큰 영역들을 할당하는 것이 가능하다. (2) 모드 스위칭이 동적으로 수행되지 않는다면, 임시 데이터를 저장하는 메모리의 초기화를 위한 상태 머신(43) 및 메인 상태 머신(44)은 불필요하다. 그러므로, 그 머신들은 이러한 상황에서 생략될 수 있다.
(제3 실시예)
이하에서는, 도면들을 참조하여 본 발명의 제3 실시예를 설명한다.
도 10은 본 발명의 제3 실시예에 따른 오디오 신호 프로세서(10)의 구성을 보여주는 블록도를 나타낸다. 오디오 신호 프로세서(10)는 반도체 칩상에 형성된 도시한 컴포넌트들과 동등한 회로를 포함하는 LSI이며, 이펙터 기능, 혼합 기능 및 다른 기능들을 필요로 하는 다양한 오디오 장비에 장착된다.
이 실시예에 따른 오디오 신호 프로세서(10)는, 채널 0에 대응하는 CH0 인터페이스(70), 채널 1에 대응하는 CH1 인터페이스(71) 및 채널 2에 대응하는 CH2 인터페이스(72)를, 오디오 데이터를 그 프로세서로 입력하기 위한 인터페이스로서 구비한다. 이러한 인터페이스들(70~72)은 동일한 소스로부터 출력된 데이터를 수신할 수도 있고, 또는 다른 소스들로부터 출력된 데이터를 수신할 수도 있다. 또한, 이러한 인터페이스들(70~72)은 데이터를 동일한 포맷으로 취급할 수도 있고, 또는 데이터를 상이한 포맷들로 취급할 수도 있다. 예를 들어, 어떤 인터페이스는 오디오 파형의 샘플 데이터인 오디오 데이터를 수신하여 출력하는 반면, 다른 인터페이스들은 MIDI 또는 다른 성능 데이터를 수신하여, 그들에 기초한 오디오 데이터를 생성 및 출력하는 모드가 존재할 수 있다.
활성/비활성 채널 검출 회로(80)는, 채널들의 인터페이스(70~72)를 통해 입력된 오디오 데이터로부터 각각의 채널들이 활성인지 또는 비활성인지를 검출하고, 그 결과들을 나타내는 채널 상태 신호들을 출력한다.
이러한 관점에서, 활성/비활성 채널 검출 회로(80)는, 침묵을 나타내는 오디오 데이터의 입력 바로 직후에는 그 채널이 비활성으로 됨을 결정하지는 않지만, 침묵을 나타내는 오디오 데이터의 입력 이후의 사전설정된 소정의 시간 주기동안 계속해서 입력되는 오디오 데이터가 없는 경우에는 그 채널이 비활성으로 됨을 결정한다. 이는, 비활성 상태를 나타내는 채널 상태 신호가 즉시 출력되면, 이전 샘플링 주기내에 이미 입력된 오디오 데이터를 위해 실행중인 신호 처리가 중단될 가능성이 존재하기 때문이다. 비활성 상태를 가장 바람직하게 결정하기 위한 지시로서 어느 정도 길이의 주기가 설정되어야 하는지는 이하에서 설명할 것이다. 상술한 실시예에 있어서, 채널 상태 신호는, 오디오 데이터가 그 채널에 입력되지 않음을 결정함으로써 생성된다. 대안적으로, 입력된 오디오 데이터 자신은, 대응 채널의 상태를 나타내는 상태 정보를 포함할 수도 있다.
오디오 신호 처리 유닛(20)은 인터페이스들(70~72)을 통해 입력된 오디오 데이터에 대한 신호 처리를 수행하고, 그 처리의 결과로서, 두 개의 채널 L과 R의 디지털 신호들을 출력한다. 아날로그 유닛(60)은 D/A 변환기를 주로 포함하는데, 오디오 신호 처리 유닛(20)으로부터 출력된 두 개의 채널 L과 R의 디지털 신호들을 아날로그 신호들로 변환하여, 좌ㆍ우 스피커(도시하지 않음)로 출력한다.
도 10에 도시한 바와 같이, 오디오 신호 처리 유닛(20)은 데이터 경로 유닛(30)과 상태 머신 유닛(40)을 구비한다. 데이터 경로 유닛(30)은 임시 데이터를 저장하기 위한 메모리(31) 및 연산 유닛(32)을 구비한다.
임시 데이터를 저장하기 위한 메모리(31)는, 처리될 오디오 데이터 및 신호 처리중인 디지털 데이터를 임시적으로 저장하는데 사용하기 위한 임시 저장 영역으로서 이용된다. 이러한 관점에서, 오디오 신호 프로세서(10)에 의해 수행된 신호 처리는 지연 시스템으로 불리는 신호 처리를 포함하므로, 임시 데이터를 저장하기 위한 메모리(31)는, n개 조각들의 오디오 데이터를 저장하기 위한 저장 영역을 갖는 보안 FIFO(first-in first-out) 메모리를 구비한다. FIFO내에 저장될 수 있는 오디오 데이터의 개수인 "n"은, 샘플링 주기에 대한 가장 긴 지연 시간의 비율에 따라 사전설정된다.
상술한 바와 같이, 활성/비활성 채널 검출 회로(80)는, 침묵을 나타내는 오디오 데이터의 입력 이후의 소정의 주기동안 계속해서 입력되는 오디오 데이터가 없는 상황에서만 비활성 상태를 결정한다. 비활성 상태를 결정하기 위한 지시로서의 주기는, 상술한 가장 긴 지연 시간보다 더 길게 설정되는 것이 매우 바람직하다. 잔향(reverberation)을 제공하는 것과 같은 지연 시스템의 신호 처리에 있어서, 임시 데이터를 저장하는 메모리(31)의 특정 영역은 오디오 데이터를 지연하기 위한 FIFO로서 사용되어, FIFO내 오디오 데이터를, 샘플링 주기가 경과되는 매 시간마다 뒤쪽의 저장 영역으로 순차적으로 시프트하는 반면, 연산들은 FIFO내 오디오 데이터를 이용함으로써 순차적으로 수행된다. 그러므로, 오디오 데이터의 입력이 중단되더라도, 어떤 동작 지연(time lag)이, 전체 신호 처리가 종료될 때까지 발생한다. 따라서, 비활성 상태를 결정하기 위한 주기는, 임시 데이터를 저장하는 메모리(31)내 모든 오디오 데이터가 소거되는 시간보다 약간 늦게 종료되도록 설정된다. 그로 인하여, 이미 입력된 오디오 데이터에 대한 신호 처리가 인터럽트되는 상황을 방지하는 것이 가능해진다.
연산 유닛(32)은 임시 데이터를 저장하는 메모리(31)로부터 판독된 데이터에 대한 산술 연산을 수행하기 위한 디바이스로서, 곱셈기(33), 누산기(34) 및 연산 계수 생성 회로(35)를 구비한다. 이러한 관점에서, 곱셈기(33)는 임시 데이터를 저장하는 메모리(31)로부터 판독된 데이터를 연산 계수와 곱하기 위한 회로이고, 연산 계수 생성 회로(35)는 연산 계수를 생성하기 위한 것이다. 누산기(34)는 곱셈의 결과를, 그 결과가 곱셈기(33)로부터 출력되는 매 시간마다 누산하기 위한 회로이다. 다음은, 상태 머신 유닛(40)(구체적으로는, 산술 연산과 관련된 상태 머신)으로부터 공급된 제어 신호들에 따라 결정된다: 연산 계수 생성 회로(35)에 의해 생성되어야 하는 연산 계수; 곱셈기(33)와 누산기(34)에 의해 수행되어야 하는 연산; 산술 연산의 타겟이 되어야 하는 임시 데이터를 저장하는 메모리내 영역 데이터; 그리고 출력되어야 하는 연산 결과.
상태 머신 유닛(40)은 데이터 경로 유닛(30)의 상태 천이에 대한 제어들을 생성하기 위한 디바이스이다. 상태 머신 유닛(40)에는 데이터 경로 유닛(30)의 내부 상태를 나타내는 상태 신호가 공급되어, 그 상태 신호에 기초한 데이터 경로 유닛(30)의 내부 상태의 변화를 모니터한다. 그 다음, 상태 머신 유닛(40)은 모니터링의 결과에 기초한 제어 신호를 데이터 경로 유닛(30)으로 출력하여, 데이터 경로 유닛(30)이 다양한 신호 처리를 수행하게 한다.
도 10에 도시한 바와 같이, 상태 머신 유닛(40)은, 채널들(0~2)에 각각 대응하는 연산 상태 머신들(410~412)과, 이러한 연산 상태 머신들을 전체적으로 제어하기 위한 메인 상태 머신(44)을 구비한다. 이러한 관점에서, 연산 상태 머신들(410~412)은, 채널들(0~2)의 각 오디오 데이터의 신호 처리를 수행하는 데이터 경로 유닛(30)을 제어하기 위한 상태 머신들이다. 구체적으로 설명하면, 메인 상태 머신(44)에 의해 개시되면, 연산 상태 머신들(410~412)은, 연산 계수 생성 회로(35)에 의해 생성될 연산 계수를 지정하는 일련의 제어 신호들, 연산의 타겟이 될 데이터를 저장하는 임시 데이터 저장을 위한 메모리(31)의 어드레스, 곱셈기와 누산기에 의해 수행될 연산들의 콘텐츠, 및 연산 결과의 출력 목적지를 사전설정된 절차로 순차적으로 출력한다. 그 일련의 신호들은, 오디오 신호 처리 유닛(20) 내부에서 생성된 메인 클럭 펄스들에 동기하여 순차적으로 출력된다.
메인 상태 머신(44)은 각각의 샘플링 주기들에서의 소정의 순서에 따라 연산 상태 머신들(410~412)을 순차적으로 개시한다. 그러나, 특정 채널이 비활성화 됨을 나타내는 채널 상태 신호가 어떤 샘플링 주기내에서 활성/비활성 채널 검출 회로(80)로부터 출력되면, 메인 상태 머신(44)은 그 채널에 대응하는 연산 상태 머신의 개시를 스킵하여, 상태 머신 유닛(40)을 그 다음 샘플링 주기내에서의 그 다음 상태로 시프트한다. 비활성 채널에 대응하는 신호 처리 제어의 스킵 동작은, 그 채널이 활성 상태로 리턴됨을 나타내는 채널 상태 신호의 출력때까지 반복된다.
상태 머신 유닛(40)의 상태 천이와 연산 유닛(32)의 처리 사이의 관계에 대해서는 도 11 및 12를 참조하여 설명할 것이다. 도 11(a)는, 모든 채널들이 활성인 샘플링 주기내에서의 상태 머신 유닛(40)의 상태 천이를 보여주는 도면이다. 도 11(b)는 채널 1이 비활성인 샘플링 주기내에서의 메인 상태 머신(44)의 상태 천이를 보여주는 도면이다. 이러한 도면들에서, "CH0"은, 연산 상태 머신(410)이 데이터 경로 유닛(30)을 제어하여 채널 0의 오디오 데이터의 신호 처리를 수행하는 상태를 나타낸다. "CH1"은, 연산 상태 머신(411)이 데이터 경로 유닛(30)을 제어하여 채널 1의 오디오 데이터의 신호 처리를 수행하는 상태를 나타낸다. "CH2"는, 연산 상태 머신(412)이 데이터 경로 유닛(30)을 제어하여 채널 2의 오디오 데이터의 신호 처리를 수행하는 상태를 나타낸다. 더욱이, "IDLE"는, 연산 상태 머신이 개시되지 않고, 데이터 경로 유닛(30)내에서 실행중인 신호 처리가 없는 상태를 나타낸다.
모든 채널들이 활성이면, 상태 머신 유닛(40)은, 도 11(a)에 도시한 바와 같이, 샘플링 주기의 시작으로 인하여 "IDLE" 상태에서 "CH0" 상태로 시프트한 다음, "CH1"에서 "CH2"로 시프트하고, "IDLE" 상태로 리턴한다. 그러므로, 이러한 샘플링 주기내에서, CH0, CH1 및 CH2의 모든 샘플 데이터에 대한 신호 처리는 도 12(a)에 도시한 바와 같이 수행된다.
채널 1이 비활성이면, 도 11(b)에 도시한 바와 같이, "CH1" 상태는 상태 머신 유닛(40)의 상태 천이에서 스킵된다. 그러므로, 다음과 같은 순서로 상태가 시프트한다: "IDLE", "CH0" 그리고 "CH2". 그 다음, "IDLE"로 리턴한다. 따라서, 이러한 샘플링 주기내에서, 채널 0과 채널 2의 오디오 데이터에 대한 신호 처리가 수행되는 반면, 채널 1의 오디오 데이터에 대한 신호 처리는 도 12(b)에 도시한 바와 같이 수행되지 않는다. 그래서, 채널 1의 오디오 데이터에 대한 신호 처리의 스킵으로 인하여, 더 긴 "IDLE" 상태 주기가 얻어지며, 이로 인하여 전력 소모가 감소된다.
채널 0 또는 채널 2가 비활성임을 나타내는 채널 상태 신호가 활성/비활성 채널 검출 회로(80)로부터 출력되는 경우에도 동일하게 적용된다. 그러한 경우, 메인 상태 머신(44)은 비활성 채널에 대응하는 연산 상태 머신의 개시를 스킵한다. 그로 인하여, 비활성 채널의 산출 연산이 수행될 필요가 없으므로, 신호 처리 동작에 필요한 전력 소모가 감소된다. 따라서, 이동 전화와 같이 낮은 전력 소모를 요구하는 휴대용 전자 디바이스상에 프로세서를 장착하는 것이 가능하므로, 이러한 디바이스들에 고품질의 오디오 신호 처리 기능들을 제공하는 것이 가능해진다.
(제4 실시예)
제3 실시예에 있어서, 채널의 오디오 데이터가, 소정의 시간 주기 또는 더 긴 시간 주기동안 연속해서 중지되면, 관련 채널의 신호 처리의 실행이 중지된다. 반면, 제4 실시예에서는 다음과 같은 동작이 수행된다. 먼저, 활성/비활성 채널 검출 회로(80)는, 침묵을 나타내는 오디오 데이터의 입력이 어떤 채널에 대한 제1 시간 주기 이상으로 계속되면, 제1 채널 상태 신호를 출력한다. 침묵을 나타내는 오디오 데이터의 입력이, 그 채널에 대한 제1 시간 주기보다 더 긴 제2 시간 주기 이상으로 계속되면, 활성/비활성 채널 검출 회로(80)는 제2 채널 상태 신호를 출력한다. 제2 시간 주기는, 상술한 제3 실시예에서 그 채널이 비활성임을 결정하기 위한 침묵의 기간과 동일하다. 제3 실시예와 동일한 방식으로, 상태 머신 유닛(40)의 연산 상태 머신들(410~412)은 채널 상태 신호들에 따라 신호 처리를 스킵한다. 그러나, 그 스킵 동작은, 제1 채널 상태 신호가 출력되는지, 또는 제2 채널 상태 신호가 출력되는지에 따라 상이한 모드들에서 수행된다.
예를 들어 채널 0이 활성이면, 메인 상태 머신(44)은 채널 0에 대응하는 연산 상태 머신(410)을 개시한다. 그 연산 상태 머신(410)은 데이터 경로 유닛(30)의 상태를 "프로세스 1", "프로세스 2", "프로세스 3", "프로세스 4" 및 "IDLE"의 순서로 시프트시켜, 데이터 경로 유닛(30)이 채널 0의 신호 처리를 수행하게 한다고 가정한다. 채널 0에 대응하는 제1 채널 상태 신호가 이러한 조건하에서 출력되면, 연산 상태 머신(410)은, 예를 들어 지연 프로세스를 포함하지 않는 "프로세스 2"를 스킵한다. 그 후, 제2 채널 상태 신호가 채널 0에 대해 출력되면, 메인 상태 머신(44)은 채널 0에 대응하는 연산 상태 머신(410)의 개시를 스킵한다. 그 결과, 채널 0에 대응하는 모든 신호 처리가 중지된다. 그 후, 음향을 나타내는 채널 0의 오디오 데이터가 입력되고, 이를 나타내는 채널 상태 신호가 출력되면, 메인 상태 머신(44)은 연산 상태 머신(410)을 후속하는 샘플링 주기들에서 개시하여 채널 0에 대응하는 신호 처리를 재시작한다.
이러한 방식으로, 본 실시예는, 연산 상태 머신들(410~412)의 제어하에 수행될 각각의 처리가 개시 및 중지 조건 사이에서 스위치되는 장치에 의해 보여진다. 그러므로, 다음의 동작들을 수행하는 것이 가능하다: 침묵의 오디오 데이터가 입력된 바로 직후에 처리가 종료될 수 있으면, 예를 들어 등화기 처리의 경우, 제1 채널 상태 신호의 출력 바로 직후에 그 처리가 중지된다; 임시 데이터를 저장하는 메모리내에 저장된 모든 데이터의 소거를 대기한 이후에 처리가 바람직하게 중지되면, 예를 들어 지연 시스템 처리의 경우, 제1 채널 상태 신호의 출력 이후 제2 채널 상태 신호의 출력시에 그 처리가 중지된다. 이는, 불필요한 동작들을 스킵하여 높은 시간 해상도를 갖게 하므로, 그 이상의 신호 처리에 요구되는 전력 소모를 유지할 수 있다.
본 발명은 오디오 신호 프로세서에 관한 것으로서, 낮은 전력 소모를 유지하면서 다양한 신호 처리를 수행할 수 있고, 사이즈가 작은 구성을 이루면서 낮은 전력 소모를 유지할 수 있다.
도 1은 본 발명의 제1 실시예에 따른 오디오 신호 프로세서의 구성을 보여주는 블록도.
도 2는 제1 실시예에서 수행된 VSP 연산의 콘텐츠를 보여주는 도면.
도 3은 제1 실시예에서 수행될 수 있는 신호 처리의 예를 보여주는 도면.
도 4는 제1 실시예의 동작을 보여주는 타이밍 도.
도 5는 제1 실시예의 동작을 보여주는 타이밍 도.
도 6은 제1 실시예에서 수행된 SRC 연산을 보여주는 타이밍 도.
도 7은 제1 실시예의 동작을 보여주는 타이밍 도.
도 8은 본 발명의 제2 실시예에 따른 오디오 신호 프로세서에 사용하기 위한 결정 테이블을 보여주는 도면.
도 9는 제2 실시예의 동작을 보여주는 상태 천이 도면.
도 10은 본 발명의 제3 실시예에 따른 오디오 신호 프로세서의 구성을 보여주는 블록도.
도 11(a) 및 11(b)는 오디오 신호 프로세서의 상태 천이를 보여주는 도면.
도 12(a) 및 12(b)는 오디오 신호 프로세서내 연산 유닛의 행동을 보여주는 도면.
도 13은 종래 기술의 회로를 보여주는 도면.
도 14는 종래 기술의 회로를 보여주는 도면.
<도면의 주요 부분에 대한 부호의 설명>
10 : 오디오 신호 프로세서
20 : 오디오 신호 처리 유닛
30 : 데이터 경로 유닛
40 : 상태 머신 유닛
50 : 모드 레지스터

Claims (14)

  1. 오디오 신호 프로세서로서,
    오디오 신호의 신호 처리를 수행하기 위하여, 하나 이상의 산술 연산을 오디오 신호에 적용하는 데이터 경로 유닛,
    상기 데이터 경로 유닛에 의해 수행될 상기 신호 처리를 지정하는 모드 정보를 저장하는 모드 레지스터, 및
    상기 신호 처리를 수행하기 위하여, 상기 데이터 경로 유닛이 상기 오디오 신호에 상기 하나 이상의 산술 연산을 적용하도록 하는 제어 신호들을 순차적으로 공급하는 상태 머신 유닛을 포함하고,
    상기 신호 처리는, 상기 하나 이상의 산술 연산들로 구성되고, 상기 모드 레지스터에 저장된 상기 모드 정보에 의해 지정되는 오디오 신호 프로세서.
  2. 제1항에 있어서,
    상기 상태 머신 유닛은, 각각의 산술 연산에서 처리될 상기 오디오 신호의 입력 데이터의 위치를 나타내는 정보와, 각각의 산술 연산의 결과에 대한 출력 목적지를 나타내는 정보를 전달하는 제어 신호를 공급하는 오디오 신호 프로세서.
  3. 제1항에 있어서,
    외부로부터의 오디오 신호를 수신하거나 상기 외부로부터 공급된 소스 신호에 기초한 오디오 신호를 생성하며, 상기 오디오 신호들을 상기 데이터 경로 유닛으로 공급하는 다수의 인터페이스를 더 포함하고,
    상기 상태 머신 유닛은, 상기 데이터 경로 유닛이 상기 인터페이스들로부터 공급된 상기 오디오 신호들의 포맷을 사전설정된 포맷으로 변환하기 위한 산술 연산을 실행하도록 하는 제어 신호를 생성하는 오디오 신호 프로세서.
  4. 제3항에 있어서,
    상기 상태 머신 유닛은, 상기 데이터 경로 유닛이 동일한 포맷을 가지면서 상기 데이터 경로 유닛으로 로드(load)되는 다수의 오디오 신호를 혼합하기 위한 산술 연산을 실행하도록 하는 제어 신호를 생성하는 오디오 신호 프로세서.
  5. 제1항에 있어서,
    상기 상태 머신 유닛은, 상기 데이터 경로 유닛이 상기 모드 레지스터에 저장된 상기 모드 정보에 의해 지정된 상기 신호 처리를 수행하도록 하는 제어 신호를 소정의 주기에서 클럭 펄스가 공급되는 매 시간마다 생성하는 오디오 신호 프로세서.
  6. 제5항에 있어서,
    상기 데이터 경로 유닛은 실행중인 산술 연산의 상태를 나타내는 상태 신호를 상기 상태 머신 유닛에 제공하고,
    상기 상태 머신 유닛은, 그 다음 클럭 펄스가 공급될 때 상기 데이터 경로 유닛으로 송신되어야 하는 제어 신호의 콘텐츠를 상기 제공된 상태 신호에 기초하여 결정하는 오디오 신호 프로세서.
  7. 제1항에 있어서,
    상기 상태 머신 유닛은, 상기 데이터 경로 유닛이 상기 모드 정보에 의해 지정된 상기 신호 처리를 구성하는 다수의 산술 연산을 연속해서 실행하도록 하는 상기 제어 신호들을 순차적으로 공급하는 오디오 신호 프로세서.
  8. 오디오 신호 프로세서로서,
    다수의 채널의 오디오 데이터를 각각 수신하는 다수의 인터페이스,
    상기 다수의 인터페이스를 통해 입력된 상기 다수의 채널의 오디오 데이터에 기초하여 각 채널이 활성 상태인지 또는 비활성 상태인지를 나타내는 상태 신호를 생성하는 검출 유닛, 및
    상기 다수의 채널의 오디오 데이터에 대한 신호 처리를 시분할 방식으로 수행하는 오디오 신호 처리 유닛을 포함하고,
    상기 오디오 신호 처리 유닛은, 상기 검출 유닛으로부터 출력된 상기 상태 신호에 기초하여 각 채널이 활성 상태인지 또는 비활성 상태인지를 결정하고, 상기 활성 상태에서의 채널들의 오디오 데이터에 대해서만 상기 신호 처리를 수행하며, 상기 비활성 상태에서의 채널들의 오디오 데이터에 대해서는 상기 신호 처리를 중지하는 오디오 신호 프로세서.
  9. 제8항에 있어서,
    상기 검출 유닛은, 채널의 오디오 데이터가 소정의 시간 주기 이상 중지되면, 상기 채널이 상기 비활성 상태임을 나타내는 상태 신호를 생성하는 오디오 신호 프로세서.
  10. 제8항에 있어서,
    상기 검출 유닛은, 채널의 오디오 데이터가 제1 시간 주기 이상으로 계속해서 중지될 때 제1 상태 신호를 생성하고, 채널의 오디오 데이터가 상기 제1 시간 주기보다 더 긴 제2 시간 주기 이상으로 계속해서 중지될 때 제2 상태 신호를 생성하며,
    상기 오디오 신호 처리 유닛은, 상기 제1 상태 신호가 상기 검출 유닛으로부터 상기 채널에 대해 생성되면 상기 채널의 상기 신호 처리의 일부분을 중지하고, 상기 제2 상태 신호가 상기 채널에 대해 생성되면 상기 채널의 상기 신호 처리의 전부를 중지하는 오디오 신호 프로세서.
  11. 오디오 신호 처리 방법으로서,
    오디오 신호의 신호 처리를 수행하기 위하여, 하나 이상의 산술 연산을 오디오 신호에 적용하는 단계,
    수행될 상기 신호 처리를 지정하는 모드 정보를 레지스터링(registering)하는 단계, 및
    상기 신호 처리를 수행하기 위하여, 상기 오디오 신호에 상기 하나 이상의 산술 연산을 적용하도록 하는 제어 신호들을 순차적으로 공급하는 단계를 포함하고,
    상기 신호 처리는, 상기 하나 이상의 산술 연산들로 구성되고, 상기 레지스터된 모드 정보에 의해 지정되는 오디오 신호 처리 방법.
  12. 오디오 신호 처리 방법으로서,
    다수의 인터페이스를 통해 다수의 채널의 오디오 데이터를 각각 수신하는 단계,
    상기 다수의 인터페이스를 통해 입력된 상기 다수의 채널의 오디오 데이터에 기초하여 각 채널이 활성 상태인지 또는 비활성 상태인지를 나타내는 상태 신호를 생성하는 단계, 및
    상기 다수의 채널의 오디오 데이터에 대한 신호 처리를 시분할 방식으로 수행하는 단계를 포함하고,
    상기 신호 처리 수행 단계에서, 상기 상태 신호에 기초하여 각 채널이 활성 상태인지 또는 비활성 상태인지를 결정하고, 상기 활성 상태에서의 채널들의 오디오 데이터에 대해서만 상기 신호 처리를 수행하며, 상기 비활성 상태에서의 채널들의 오디오 데이터에 대해서는 상기 신호 처리를 중지하는 오디오 신호 처리 방법.
  13. 오디오 신호 프로세서에 사용하기 위한 프로그램 명령들을 포함하는 머신 판독가능한 매체로서,
    상기 프로그램 명령들은 방법을 수행하기 위하여 상기 오디오 신호 프로세서에 의해 실행가능하고,
    상기 방법은,
    오디오 신호의 신호 처리를 수행하기 위하여, 하나 이상의 산술 연산을 오디오 신호에 적용하는 단계,
    수행될 상기 신호 처리를 지정하는 모드 정보를 레지스터링하는 단계, 및
    상기 신호 처리를 수행하기 위하여, 상기 오디오 신호에 상기 하나 이상의 산술 연산을 적용하도록 하는 제어 신호들을 순차적으로 공급하는 단계를 포함하며,
    상기 신호 처리는, 상기 하나 이상의 산술 연산들로 구성되고, 상기 레지스터된 모드 정보에 의해 지정되는 머신 판독가능한 매체.
  14. 오디오 신호 프로세서에 사용하기 위한 프로그램 명령들을 포함하는 머신 판독가능한 매체로서,
    상기 프로그램 명령들은 방법을 수행하기 위하여 상기 오디오 신호 프로세서에 의해 실행가능하고,
    상기 방법은,
    다수의 인터페이스를 통해 다수의 채널의 오디오 데이터를 각각 수신하는 단계,
    상기 다수의 인터페이스를 통해 입력된 상기 다수의 채널의 오디오 데이터에 기초하여 각 채널이 활성 상태인지 또는 비활성 상태인지를 나타내는 상태 신호를 생성하는 단계, 및
    상기 다수의 채널의 오디오 데이터에 대한 신호 처리를 시분할 방식으로 수행하는 단계를 포함하며,
    상기 신호 처리 수행 단계에서, 상기 상태 신호에 기초하여 각 채널이 활성 상태인지 또는 비활성 상태인지를 결정하고, 상기 활성 상태에서의 채널들의 오디오 데이터에 대해서만 상기 신호 처리를 수행하며, 상기 비활성 상태에서의 채널들의 오디오 데이터에 대해서는 상기 신호 처리를 중지하는 머신 판독가능한 매체.
KR1020040086740A 2003-10-29 2004-10-28 오디오 신호 프로세서 KR100682444B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JPJP-P-2003-00369329 2003-10-29
JP2003369329A JP4075768B2 (ja) 2003-10-29 2003-10-29 オーディオ信号処理装置
JPJP-P-2003-00369330 2003-10-29
JP2003369330A JP4494754B2 (ja) 2003-10-29 2003-10-29 オーディオ信号処理装置

Publications (2)

Publication Number Publication Date
KR20050040800A true KR20050040800A (ko) 2005-05-03
KR100682444B1 KR100682444B1 (ko) 2007-02-15

Family

ID=34554735

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040086740A KR100682444B1 (ko) 2003-10-29 2004-10-28 오디오 신호 프로세서

Country Status (4)

Country Link
US (1) US7590460B2 (ko)
KR (1) KR100682444B1 (ko)
CN (1) CN1612205B (ko)
TW (1) TWI282217B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106533391A (zh) * 2016-11-16 2017-03-22 上海艾为电子技术股份有限公司 无限冲激响应滤波器及其控制方法
CN114625035A (zh) * 2020-12-14 2022-06-14 北京晶视智能科技有限公司 混合精度的人工智能处理器及其操作方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060251197A1 (en) * 2005-05-03 2006-11-09 Texas Instruments Incorporated Multiple coefficient filter banks for digital audio processing
US8457769B2 (en) * 2007-01-05 2013-06-04 Massachusetts Institute Of Technology Interactive audio recording and manipulation system
US9883271B2 (en) * 2008-12-12 2018-01-30 Qualcomm Incorporated Simultaneous multi-source audio output at a wireless headset
US8681997B2 (en) * 2009-06-30 2014-03-25 Broadcom Corporation Adaptive beamforming for audio and data applications
TW201137739A (en) * 2010-04-23 2011-11-01 Inventec Corp A sound playing circuit for computer turning-off state
CN108021675B (zh) * 2017-12-07 2021-11-09 北京慧听科技有限公司 一种多设备录音的自动切分对齐方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5821299A (ja) 1981-07-30 1983-02-08 ヤマハ株式会社 残響音付加装置
US4570523A (en) 1981-07-30 1986-02-18 Nippon Gakki Seizo Kabushiki Kaisha Reverberation tone generating apparatus
JP3230265B2 (ja) 1992-01-06 2001-11-19 ヤマハ株式会社 電子楽器の発音チャンネル割当装置
US5744741A (en) 1995-01-13 1998-04-28 Yamaha Corporation Digital signal processing device for sound signal processing
KR100206786B1 (ko) 1996-06-22 1999-07-01 구자홍 디브이디 재생기의 복수 오디오 처리 장치
JP2000057122A (ja) 1998-08-06 2000-02-25 Yamaha Corp デジタル信号処理装置
JP3991475B2 (ja) 1998-10-13 2007-10-17 ヤマハ株式会社 音声データ処理装置およびコンピュータシステム
JP2001242878A (ja) * 2000-02-25 2001-09-07 Sony Corp データ処理装置、pcm音源装置
KR20020014534A (ko) * 2000-08-18 2002-02-25 박종섭 저전력 오디오 프로세서

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106533391A (zh) * 2016-11-16 2017-03-22 上海艾为电子技术股份有限公司 无限冲激响应滤波器及其控制方法
CN114625035A (zh) * 2020-12-14 2022-06-14 北京晶视智能科技有限公司 混合精度的人工智能处理器及其操作方法

Also Published As

Publication number Publication date
CN1612205B (zh) 2010-05-26
US7590460B2 (en) 2009-09-15
TWI282217B (en) 2007-06-01
KR100682444B1 (ko) 2007-02-15
CN1612205A (zh) 2005-05-04
US20050096766A1 (en) 2005-05-05
TW200525901A (en) 2005-08-01

Similar Documents

Publication Publication Date Title
CA2916121C (en) Jitter buffer control, audio decoder, method and computer program
EP3321934B1 (en) Time scaler, audio decoder, method and a computer program using a quality control
KR100682444B1 (ko) 오디오 신호 프로세서
EP2313827B1 (en) Method and system for measuring task load
KR100392621B1 (ko) 악음파형생성방법및그장치
JP3744440B2 (ja) ミキシング装置及び楽音発生装置並びにミキシング用の大規模集積回路
JP2007067797A (ja) サンプリングレートコンバータ及び半導体集積回路
US5386529A (en) Digital signal processor for use in sound quality treatment by filtering
JP5057280B2 (ja) ディジタル信号処理用集積回路
JP4494754B2 (ja) オーディオ信号処理装置
JP2004004274A (ja) 音声信号処理切換装置
JP4075768B2 (ja) オーディオ信号処理装置
JP4778872B2 (ja) 楽音出力装置
JP3693045B2 (ja) 楽音発生装置
JP4254677B2 (ja) 楽音発生装置および楽音発生処理のプログラム
JP4238614B2 (ja) ストリームデータ処理システム、ストリームデータ処理方法、ストリームデータ処理プログラム、及びこのプログラムを格納したコンピュータで読み取り可能な記録媒体
JP3693046B2 (ja) 楽音発生装置
Ausin Audio Processing on a Multicore Platform
US20040054707A1 (en) Multiplication coefficient supplement device, multiplication coefficient supplement method, and multiplication factor supplement program
GB2397737A (en) System and method for synthesising a plurality of voices
JPS6073694A (ja) 残響付加装置
JPH1195750A (ja) デジタル音声再生装置
JPH08292763A (ja) 遅延装置
JP2000122650A (ja) 音声データ処理装置およびコンピュータシステム
JPH09269774A (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: 20130104

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee