KR20110030711A - 매체 프로세싱 방법 및 장치 - Google Patents

매체 프로세싱 방법 및 장치 Download PDF

Info

Publication number
KR20110030711A
KR20110030711A KR1020117005234A KR20117005234A KR20110030711A KR 20110030711 A KR20110030711 A KR 20110030711A KR 1020117005234 A KR1020117005234 A KR 1020117005234A KR 20117005234 A KR20117005234 A KR 20117005234A KR 20110030711 A KR20110030711 A KR 20110030711A
Authority
KR
South Korea
Prior art keywords
audio
subsystem
data
host
audio data
Prior art date
Application number
KR1020117005234A
Other languages
English (en)
Other versions
KR101208882B1 (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 KR20110030711A publication Critical patent/KR20110030711A/ko
Application granted granted Critical
Publication of KR101208882B1 publication Critical patent/KR101208882B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1064Restricting content processing at operating system level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Telephone Function (AREA)

Abstract

향상된 전력 사용 특성, 향상된 오디오 기능 및 향상된 매체 보안을 갖는 매체 프로세싱 시스템 및 장치(100)가 제공된다. 매체 프로세싱 시스템(100)의 실시예들은 오래 기간 동안 호스트 프로세서(304)와 독립적으로 작동하는 오디오 프로세싱 서브시스템(301)을 포함하여, 호스트 프로세서(304)가 저전력 상태로 진입하도록 한다. 매체 프로세싱 시스템(100)의 다른 특징들은 저장된 오디오 샘플들을 실시간 전화 오디오로 혼합하는 것과 같이 향상된 오디오 효과들을 가능하게 한다. 매체 프로세싱 시스템(100)의 다른 특징들은 해독된 오디오 데이터를 호스트 프로세서(304)로부터 격리하여 향상된 매체 보안을 가능하게 한다.

Description

매체 프로세싱 방법 및 장치{MEDIA PROCESSING METHOD AND DEVICE}
본 발명은 일반적으로 전자 장치들에 관한 것으로, 보다 구체적으로는 전자 장치 내의 오디오 프로세싱에 관한 것이다.
이 항목은 아래에서 설명 및/또는 청구되는 본 발명의 다양한 특징들과 관련될 수 있는 기술의 여러 특징들을 사용자에게 소개하기 위한 것이다. 본 설명은 본 발명의 다양한 특징을 보다 쉽게 이해하도록 하기 위한 배경 정보를 사용자에게 제공하는데 도움이 된다. 따라서, 이러한 내용들은 이러한 관점에서 검토되어야 하고 종래 기술을 제시하는 것으로 고려되어서는 안 된다.
소비자 전자장치들의 동향은 여러 기능들을 단일 휴대용 전자 장치로 결합하는 것이다. 예를 들어, 셀 폰 및 매체 재생기들이 더 이상 자신의 고유 성능을 갖는 개별적인 장치들이 아니다. 오히려, 셀 폰 및 매체 재생기 기능들은 이제 여러 성능을 갖는 하나의 멀티미디어 장치로 통합될 수 있다. 현대 셀 폰/매체 재생기들은 종종 오디오 및 비디오 재생, 사진 촬영, 비디오 녹화, 비디오 게임 플레이, GPS 내비게이션, 웹 서핑, 인터넷, 블루투스 및 WiFi 통신으로부터 스트리밍 매체 다운로드, 이메일, 텍스트 메시징 등을 포함하는 많은 추가적인 기능들이 포함될 수 있다.
이러한 모든 기능들을 하나의 장치로 합치는 한가지 장점은 복수의 장치들을 가지고 다닐 필요가 없어지는 점이다. 경제적인 관점에서 볼 때도, 결합된 장치들을 통해 사용자는 전체 비용을 줄이는데, 이는 특수 기능들을 갖는 중복된 전자 장치들을 갖기 보다는 장치를 구성하는 전자 장치가 복수의 애플리케이션들에 대해 사용되기 때문이다. 추가적으로, 전자 장치들 집합을 다양한 성능들과 결합함으로써 하나의 장치가 또 다른 장치의 성능들을 이용하는 교차 기능을 제공할 수 있다.
통상적으로, 멀티미디어 장치의 추가 기능은 장치에 제공되는 모든 기능들로의 직접 액세스를 갖는 중앙 처리 장치(CPU)에 의해 제어된다. 예를 들어, 저장된 음악을 프로세싱하는 경우, CPU가 메모리, 디지털 신호 프로세서, 디코더, 및 매체 재생 회로와 같은 다양한 구성요소들 간의 데이터 라우팅을 직접 제어할 수 있다. 이 유형의 설계에서, 음악 또는 뮤직 비디오와 같은 저작권 보호된 매체를 포함하는 대부분의 데이터는 프로세싱 및 라우팅을 위해 결국 CPU를 통과할 것이다. 이 유형의 설계의 단점은 CPU가 계속적으로 전원이 켜져 있고, 액티브 상태이며, 배터리 전원을 소비한다는 점이다.
추가적으로, 통상의 멀티미디어 장치 내의 전화 오디오는 CPU 보다는 전용 회로에 의해 프로세싱될 수 있다. 일반적으로, 전화 오디오는 실시간 지연에 대해 확실한 상한을 보장하는 전용 회로를 이용하여, 전화와 관련되는 다양한 규정들에 부합하고, 사용자 체험을 저하시키는 지연을 피한다. 이는 전용 회로가 전화 오디오를 프로세싱하는데 사용되어 전화 오디오가 CPU를 우회할 수 있다는 것을 의미할 수 있다. 전화 오디오 프로세싱에 전용된 회로는 통상적으로 매우 단순하고, 등화(equalization) 및 라우팅 기능이 제한된다. 이 접근법의 단점은 전화 프로세싱 회로의 단순함으로 인해 원래는 가능할 수 있는 전화 오디오의 전자 성능 향상의 유형을 제한한다는 점이다.
하나의 장치에서 복수의 성능들을 결합하는 또 다른 단점은 멀티미디어 장치들이 보다 기능적으로 됨에 따라, 저작물의 무단 복제 및 배포의 위험이 커진다는 점이다. 예를 들어, 음악 및/또는 비디오를 인터넷으로부터 다운로드할 수 있는 멀티미디어 장치는 잠재적으로 매체를 내부 메모리 또는 외부 장치에 저장할 수 있고 이메일 또는 기타 인터넷 통신 매체뿐만 아니라 하드 카피를 통해 매체를 재분배할 수 있다. 저작물의 암호화가 이러한 재료들이 불법 복제에 덜 취약하도록 도움을 줄 수 있으나, 통상적인 멀티미디어 장치에서 해독된 매체는 결국 CPU에 이용가능하게 되고, 따라서 불법 복제 및 배포에 취약하게 된다.
따라서, 종래 기술의 통상적인 멀티미디어 또는 오디오 장치들은 디지털 신호 프로세서(digital signal processor; DSP) 및 주변 입력/출력 장치들을 포함하는 모든 오디오 구성요소들에 직접 결합되는 CPU를 포함한다. 통상적인 종래 기술 장치에서, CPU는 인코딩되거나 압축된 데이터를 디지털 신호 프로세서로 라우팅하는 단계, DSP로부터 압축되지 않은 데이터를 수신하는 단계, 및 압축되지 않은 오디오를 주변 장치로 라우팅하는 단계를 포함하는, 오디오를 프로세싱하기 위한 여러 프로세스 단계들에 직접 관여한다.
따라서, 멀티미디어 장치에 CPU에 의해 직접 제어되지 않는 오디오 서브시스템을 제공하는 것이 유리할 수 있다. 또한 폭 넓은 여러 매체를 프로세싱하고 멀티미디어 장치가 제공할 수 있는 향상된 성능을 이용하면서도 동시에 전용 장치의 최적의 수행을 제공하는 장치를 제공하는 것이 유리할 수 있다. 예를 들어, 오디오 재생기 및 셀 폰의 성능들을 결합하면서도, 오디오 재생기 또는 셀 폰으로 작동하는 동안 매우 작은 전력을 소비하는 멀티미디어 장치를 제공하는 것이 유리할 수 있다. 추가적으로, 사용자가 불법으로 저작권 보호된 자료를 배포하지 못하도록 하는 향상된 저작권 보호를 멀티미디어 장치에 제공하는 것이 바람직할 수 있다.
본 발명의 실시예들은 중앙 처리 장치(CPU)에 느슨하게 결합된 독립 오디오 서브시스템을 갖는 멀티미디어 장치에 관한 것이다. 즉, 종래 기술에서와 같이 메인 버스에 직접 결합된 오디오 구성요소들을 갖는 대신, 모든 오디오 구성요소들은 개별적으로 독립적인 오디오 버스를 통해 함께 결합되어 독립 오디오 서브시스템을 형성한다. 호스트 서브시스템 및 독립 오디오 서브시스템 간의 결합은 호스트 서브시스템 및 오디오 서브시스템으로의 또는 이로부터의 한쪽 방향의 데이터 통신을 가능하게 하는 하나 이상의 데이터 버퍼를 통해 달성된다. 오디오 서브시스템은 이것이 CPU로부터 자신으로 보내지는 오디오 데이터의 재생을 달성하기 위해 CPU와 더욱 상호동작할 필요가 없다는 점에서 독립적이다. 오히려, CPU가 오디오를 오디오 서브시스템으로 보내는 경우, 오디오 서브시스템이 오디오의 모든 추가적인 프로세싱 및 라우팅을 다룬다. 따라서, 오디오 서브시스템은 마치 자신이 출력 장치인 것처럼 CPU로부터 인코딩된 데이터를 수신한다.
더욱이, 본 발명의 실시예들은 오디오 신호들의 디코딩, 혼합, 등화, 및 라우팅 모두를 다루고, 그 다음 출력 오디오를 직접 주변 출력 장치들로 보내는 독립 오디오 서브시스템을 갖는 멀티미디어 장치에 관한 것이다. 오디오 서브시스템이 오디오 데이터의 모든 프로세싱을 다루기 때문에, CPU는 오디오 데이터를 오디오 서브시스템으로 라우팅하는 단계 외에는 필요없고, 따라서 CPU 및 호스트 서브시스템의 나머지가 오디오 데이터가 프로세싱되는 동안 저전력 상태로 진입하도록 구성될 수 있다. 시스템은 또한 오디오 데이터를 호스트 DMA 제어기로부터 오디오 서브시스템으로 전송하는 동안 보호된 매체의 암호해독이 발생하도록 구성될 수 있다. 또한, 오디오 서브시스템은 디지털 신호 프로세서(DSP)가 전화 오디오 데이터의 라우팅, 등화, 및 혼합을 다루고, 또한 다른 오디오 샘플들을 전화 오디오로 섞도록 구성될 수 있다.
본 발명의 여러 기능, 특징, 및 장점들은 아래의 특정 예시적인 실시예들의 상세한 설명을 유사한 참조 번호는 도면 전체에 걸쳐 유사한 부분을 나타내는 첨부되는 도면들을 참고하여 검토할 때 더욱 잘 이해될 것이다.
도 1은 본 발명의 일 실시예에 따른 휴대용 전자 멀티미디어 장치의 도면.
도 2는 본 발명의 일 실시예에 따른 오디오 데이터의 일반적 흐름을 나타내는 흐름도.
도 3은 본 발명의 일 실시예에 따른 휴대용 전자 멀티미디어 장치의 블록도.
도 4는 본 발명의 일 실시예에 따른 음악 오디오를 프로세싱하는 방법의 흐름도.
도 5는 본 발명의 일 실시예에 따른 전화 오디오를 프로세싱하는 방법의 흐름도.
도 6은 본 발명의 일 실시예에 따른 보안 메커니즘을 나타내는 흐름도
본 발명의 하나 이상의 구체적인 실시예들이 아래에서 설명될 것이다. 이러한 실시예들의 간결한 설명을 제공하기 위해, 실제 구현의 모든 특징들이 본 명세서에서 설명되지는 않는다. 임의의 이러한 실제 구현의 전개에 있어서, 임의의 공학 또는 설계 프로젝트에서처럼, 하나의 구현에서 또 다른 구현에 따라 변경될 수 있는, 시스템 관련 및 비지니스 관련 제약들에 부합하는 것과 같이, 개발자의 특정 목적들을 달성하는데 있어서 여러 구현 특정 결정이 이루어져야 한다. 더욱이, 이러한 개발 노력은 복잡하고 시간을 소비할 수 있지만, 그럼에도 불구하고 이러한 게시 내용을 접하는 당업자에게 있어서 설계, 제조, 및 제작의 일반 작업이 된다.
이제 도면으로 돌아오면, 도 1은 본 발명의 일 실시예에 따른 전자 장치(100)를 도시한다. 일부 실시예에서, 전자 장치(100)는 음악 및/또는 비디오를 재생하기 위한 매체 재생기, 셀룰러 전화, 개인용 데이터 수첩, 또는 이들의 임의의 조합이 될 수 있다. 따라서, 전자 장치(100)는 매체 재생기, 셀룰러 전화, 개인용 데이터 수첩 등 중 하나 또는 이들의 조합을 제공하는 통합된 장치가 될 수 있다. 또한, 장치(100)는 사용자로 하여금 인터넷을 통해 또는 로컬 또는 광역 네트워크와 같은 기타 네트워크를 통해 연결하고 통신하도록 할 수 있다. 예를 들어, 전자 장치(100)는 사용자가 이메일, 텍스트 메시징, 인스턴트 메시징, 또는 전자 통신의 다른 형태를 이용하여 통신하도록 할 수 있다. 예로, 전자 장치(100)는 Apple Inc.로부터 입수가능한 디스플레이 스크린을 갖는 iPod® 또는 iPhone®의 모델이 될 수 있다.
특정 실시예에서 전자 장치(100)는 재충전가능하거나 교체가능한 배터리에 의해 전력 공급이 될 수 있다. 이러한 배터리 공급 구현은 매우 휴대하기 쉬울 수 있어, 사용자가 여행, 업무, 운동 등을 하는 중에 전자 장치(100)를 휴대할 수 있도록 한다. 이러한 방법에서, 전자 장치(100)의 사용자는 전자 장치(100)에 의해 제공되는 기능들에 기초하여, 장치(100)를 갖고 자유롭게 움직이면서도 음악을 듣고, 게임 또는 비디오를 재생하며, 전화를 걸거나 받고, 다른 사람들과 통신하며, 기타 장치들을 제어할(예컨대, 장치(100)가 원격 제어 및/또는 블루투스 기능을 포함할 수 있음) 수 있다. 또한, 특정 실시예에서 장치(100)는 이것이 상대적으로 쉽게 사용자의 주머니나 손에 알맞도록 크기가 조절될 수 있다. 이러한 실시예들에서, 장치(100)는 상대적으로 작고 이의 사용자에 의해 쉽게 다루어지고 활용되어 사용자가 다니는 어느 곳에서도 사실상 휴대할 수 있다. 본 명세서에서 설명되는 본 논의 및 예들이 일반적으로 도 1에 도시된 것과 같이 휴대용인 전자 장치(100)를 언급하고 있지만, 본 명세서에서 설명되는 기술들은 장치의 휴대성에 상관없이 임의의 매체 프로세싱 전자 장치에 적용될 수 있다.
설명된 실시예에서, 전자 장치(100)는 틀(102), 디스플레이(104), 사용자 입력 구조들(106), 및 입력/출력 커넥터들(108)을 포함한다. 틀(102)은 플라스틱, 금속, 합성 재료, 또는 기타 적합한 재료들이나 이들의 임의의 조합으로 형성될 수 있다. 틀(102)은 물리적 충격으로부터 전자 장치(100)의 내부 구성요소들을 보호할 수 있고, 내부 구성요소들을 전자기 간섭(electromagnetic interference; EMI)으로부터 또한 보호할 수 있다.
디스플레이(104)는 액정 디스플레이(liquid crystal display; LCD)가 될 수 있거나, 발광 다이오드(light emitting diode; LED) 기반 디스플레이, 유기 발광 다이오드(organic light emitting diode; OLED) 기반 디스플레이, 또는 기타 적절한 디스플레이가 될 수 있다. 본 기술의 특정 실시예에 따르면, 디스플레이(104)는 사용자 인터페이스(112) 뿐만 아니라 로고, 아바타, 사진, 앨범 작품 등과 같은 다양한 이미지들(105)을 디스플레이할 수 있다. 추가적으로, 일 실시예에서 디스플레이(104)는 사용자가 사용자 인터페이스와 상호동작할 수 있는 터치 스크린이 될 수 있다. 디스플레이(104)는 또한 전력 상태, 전화 상태, 메모리 상태 등과 같은 피드백을 사용자에게 제공하도록 다양한 기능 및/또는 시스템 지표들을 디스플레이할 수 있다. 이러한 지표들은 디스플레이(104)에 디스플레이되는 사용자 인터페이스로 통합될 수 있다. 본 명세서에서 설명된 바와 같이, 특정 실시예들에서 사용자 인터페이스(112)가 디스플레이(104) 상에서 디스플레이될 수 있고, 사용자가 전자 장치(100)와 상호동작하기 위한 수단을 제공할 수 있다. 사용자 인터페이스는 텍스트 사용자 인터페이스, 그래픽 사용자 인터페이스(graphical user interface; GUI), 또는 이들의 임의의 조합이 될 수 있고, 디스플레이(104)의 전체 또는 부분들에 디스플레이될 수 있는 다양한 레이어, 윈도우, 스크린, 템플릿, 요소 또는 기타 구성요소들을 포함할 수 있다.
일 실시예에서, 하나 이상의 사용자 입력 구조(106)가 이를테면 작동 모드, 출력 레벨, 출력 유형 등을 제어함으로써 장치(100)를 제어하도록 구성된다. 예를 들어, 사용자 입력 구조들(106)은 장치(100)를 켜거나 끄는 버튼을 포함할 수 있다. 일반적으로, 전자 장치(100)의 실시예들은 버튼, 스위치, 제어 패드, 키, 손잡이, 스크롤 휠, 또는 임의의 기타 적절한 입력 구조들을 포함하는 임의의 수의 사용자 입력 구조들(106)을 포함할 수 있다. 입력 구조들(106)은 장치(100) 상에 디스플레이된 사용자 인터페이스와 함께 작업하여 장치(100) 또는 장치(100)로 연결되거나 이에 의해 사용되는 다른 장치들의 기능들을 제어할 수 있다. 예를 들어, 사용자 입력 구조들(106)은 사용자가 디스플레이된 사용자 인터페이스를 돌아다니도록 하거나 이러한 디스플레이된 사용자 인터페이스를 디폴트 또는 홈 스크린으로 되돌리도록 할 수 있다.
사용자 인터페이스(112)는 특정 실시예에서 하나 이상의 사용자 입력 구조들(106)을 통해 및/또는 디스플레이(104)의 터치 감지 구현을 통해 사용자가 디스플레이된 인터페이스 요소들과 상호동작하도록 할 수 있다. 이러한 실시예에서, 사용자 인터페이스는 사용자로 하여금 터치 스크린 또는 기타 입력 구조에 의해 디스플레이(104)에 디스플레이된 옵션들 가운데에서 선택하게 함으로써 상호동작 기능을 제공한다. 따라서, 사용자는 사용자 인터페이스(112)와의 적절한 상호동작에 의해 장치(100)를 작동할 수 있다. 사용자 인터페이스(112)는 사용자 및 장치(100) 간의 상호동작을 가능하게 하는 임의의 적절한 설계가 될 수 있다. 따라서, 사용자 인터페이스(112)는 창, 메뉴, 그래픽, 텍스트, 키보드 또는 숫자 키패드, 스크롤링 장치, 또는 임의의 기타 요소들을 제공할 수 있다. 일 실시예에서, 사용자 인터페이스(112)는 스크린, 템플릿, 및 UI 구성요소를 포함할 수 있고, 임의의 수의 이러한 요소들 또는 기타 요소들을 포함하거나 이들로 나누어질 수 있다. 사용자 인터페이스(112)의 요소들의 배열은 계층적이 될 수 있어, 스크린은 하나 이상의 템플릿을 포함하고, 템플릿은 하나 이상의 UI 구성요소를 포함한다. 다른 실시예들은 사용자 인터페이스 요소들을 임의의 계층적 또는 비계층적 구조로 배열할 수 있다.
전자 장치(100)는 또한 다양한 입력 및 출력 포트들(108)을 포함하여 추가적인 장치들의 연결을 가능하게 할 수 있다. 예를 들어, 포트(108)는 헤드폰들의 연결을 가능케 하는 헤드폰 잭이 될 수 있다. 추가적으로, 포트(108)는 헤드셋(예컨대, 헤드폰 및 마이크로폰 조합)의 연결을 가능하게 하는 입력/출력 성능들을 가질 수 있다. 본 발명의 실시예들은 헤드폰 및 헤드셋 잭, USB(universal serial bus) 포트, Firewire(IEEE-1394) 포트, 및 AC 및/또는 DC 전력 커넥터들을 포함하는 임의의 수의 입력 및/또는 출력 포트들을 포함할 수 있다. 더욱이, 장치(100)는 입력 및 출력 포트들을 이용하여 다른 휴대용 전자 장치, 개인용 컴퓨터, 프린터 등과 같은 임의의 다른 장치에 연결하고 이 장치와 데이터를 송수신할 수 있다. 예를 들어, 일 실시예에서 전자 장치(100)는 Firewire(IEEE-1394) 연결을 통해 개인용 컴퓨터에 연결되어 매체 파일들과 같은 데이터 파일들을 송수신할 수 있다.
전자 장치(100)는 또한 다양한 오디오 입력 및 출력 부분들을 포함할 수 있다. 예를 들어, 입력 수신기(110)는 사용자 오디오 입력을 수신하는 마이크로폰이 될 수 있다. 추가적으로, 출력 송신기(111)가 오디오 신호들을 사용자에게 송신하는 스피커가 될 수 있다. 입력 수신기(110) 및 출력 송신기(111)는 전화의 오디오 요소들과 함께 사용될 수 있다.
도 2 및 3에서, 본 발명의 일 실시예에 따른 전자 장치(100) 내의 데이터 흐름의 도식적 표현이 도시된다. 도 3에 도시된 바와 같이, 통상적인 장치(100)는 호스트 서브시스템(300) 및 오디오 서브시스템(301)을 포함할 수 있다. 일 실시예에서, 호스트 서브시스템(300) 및 오디오 서브시스템(301)은 단일 집적 회로의 일부가 될 수 있다. 또 다른 실시예에서, 호스트 서브시스템(300) 및/또는 오디오 서브시스템(301)은 하나 이상의 집적 회로에 걸쳐 분배될 수 있다. 아래에서 추가로 설명되는 바와 같이, 호스트 서브시스템(300)은 오디오 프로세싱 외의 장치(100)의 대부분의 기능들을 제어하고 안내하는 CPU(304)를 포함한다. 오디오 서브시스템(301)은 한편 장치(100)의 모든 오디오 프로세싱 기능들을 실질적으로 제어한다.
도 2에 도시되고 아래에서 보다 자세히 설명되는 바와 같이, 오디오 서브시스템(301)에 의해 프로세싱될 수 있는 오디오 신호들의 일부 예들은 전화 오디오(201), 오디오/비디오 신호에 관한 음악 및 오디오(202), 및 사용자 인터페이스 사운드들(204)을 포함한다. 전화 오디오(200) 및 사용자 인터페이스 사운드(204)와 같은 일부 오디오 데이터가 단계(210)에 도시된 바와 같이 CPU(304)의 개입이 거의 없거나 전혀 없이 오디오 서브시스템(301)에 의해 직접 프로세싱될 수 있다. 그러나, 기타 오디오 신호들은 오디오 서브시스템(301)으로 보내지기 전에 CPU(304)에 의해 프로세싱될 수 있다. 예를 들어, 단계(206)에서, CPU(304)가 음악 오디오 데이터가 해독되도록 하고 메인 메모리로 로딩되도록 한다. 다음으로, 단계(208)에서, CPU(304)가 오디오 데이터가 오디오 서브시스템(301)으로 보내지는 동안 저전력 상태로 진입한다. 마지막으로, 단계(212)에서, 오디오 데이터는 오디오 서브시스템(301)에 의해 프로세싱되고 재생, 즉 적절한 출력 장치로 보내진다.
단계(212)에서 오디오 프로세싱 단계가 CPU의 개입이 거의 없거나 전혀 없이도 발생할 수 있기 때문에, CPU는 자유롭게 다른 프로세싱 태스크를 수행하거나 이와 달리 전자 장치(100)의 유용한 배터리 수명을 연장하는 저전력 상태로 진입한다. 도 2에 도시되지 않은 다른 실시예들에서, 오디오 데이터는 오디오 서브시스템에 의해 프로세싱되고 휘발성 메모리를 통해 CPU로 보내질 수 있음을 알 수 있다. 예를 들어, 전자 장치(100)는 오디오 서브시스템에 결합된 디지털 마이크로폰을 포함할 수 있어, 디지털 마이크로폰을 통해 수신된 오디오가 오디오 서브시스템에 의해 프로세싱되고 그 다음 CPU로 보내져 프로세싱 및/또는 저장될 수 있다.
이제 도 3에서, 전자 장치(100)에 사용되는 회로의 블록도가 제공된다. 블록도에서 볼 수 있듯이, 전자 장치(100)는 대부분의 주변 전자 구성요소들이 통신적으로 결합되는 메인 버스(314)를 포함한다. 메인 버스(314)는 직접 메모리 액세스(direct memory access; DMA) 버스 및 프로그램된 입력/출력(programmed input/output; PIO) 버스의 기능을 결합할 수 있다. 즉, 메인 버스(314)는 DMA 전송 및 직접 CPU 읽기 및 쓰기 명령들을 가능하게 할 수 있다. 본 발명의 실시예들에서, 메인 버스(314)는 고급 마이크로컨트롤러 버스 아키텍처(Advanced Microcontroller Bus Architecture; AMBA®) 준수 데이터 버스들 중 하나가 될 수 있다.
전자 장치(100)는 또한 CPU(304)를 포함한다. CPU(304)는 ARM Limited의 축소 명령 집합 컴퓨터(Reduced Instruction Set Computer; RISC)와 같은 공지의 임의의 범용 마이크로프로세서가 될 수 있다. CPU(304)는 전자 장치(100)의 오퍼레이팅 시스템을 운영하고 전자 장치(100)의 다양한 기능들을 관리한다. 이에 따라, 이는 메인 버스(314)에 결합될 수 있고 PIO 명령들을 메인 버스(314)에 결합된 다양한 장치들에 송신하도록 구성될 수 있다. 추가적으로, CPU(304)는 DMA 전송들을 개시하도록 구성될 수 있다. 일 실시예에서, CPU(304)로부터의 PIO 명령들은 메인 버스로 직접 전해지지 않는다. 오히려, 아래에서 더 설명되는 바와 같이, CPU(304)는 메인 DMA 제어기(302)에 직접 결합되고, CPU(304)로부터 발행되는 PIO 명령들은 메인 DMA 제어기(302)를 통과하여 메인 버스(314)로 전달된다. CPU(304)는 작업이 완전히 CPU(304)에 대해 내부적일 수 있거나, 휘발성 메모리(338)에 액세스하는 메인 버스(314)를 통해 통과하는 데이터 전송들을 관찰하고 일부 경우에서는 가로챌 수 있는 하나 이상의 캐시를 포함할 수 있다. CPU(304)는 전자 장치(100) 상에서 실행되는 오퍼레이팅 시스템 및/또는 기타 장치 펌웨어를 보유할 수 있는 리드 온니 메모리(ROM)(도시되지 않음)를 포함하거나 이에 결합될 수 있다.
전자 장치(100)는 또한 메인 버스(314)에 전기적으로 결합된 휘발성 메모리(338)를 또한 포함할 수 있다. 휘발성 메모리(338)는, 예컨대 임의의 유형의 랜덤 액세스 메모리(RAM)를 포함할 수 있고, 또한 ROM, EPROM 및 EEPROM과 같은 비휘발성 메모리 장치들, 또는 휘발성 및 비휘발성 메모리의 일부 조합을 포함할 수 있다. 추가적으로, 비휘발성 메모리(338)는 또한 휘발성 메모리(338)와의 데이터 흐름을 제어하는 메모리 제어기를 포함할 수 있다. 본 발명의 실시예들에서, 휘발성 메모리(338)는 압축된 비디오 및/또는 오디오 파일들을 암호화 형태로 저장하는데 사용된다.
본 발명의 실시예들은 또한 CPU(304) 및 메인 버스(314)에 결합되는 메인 DMA 제어기(302)를 포함할 수 있다. 메인 DMA 제어기(302)는 휘발성 메모리(338)를 포함하는 메인 버스(314)에 연결되는 다양한 장치들 간에서 데이터를 라우팅하도록 구성될 수 있다. 전자 장치(100) 내에서 데이터를 라우팅하는 것은 여러 방법으로 발생하도록 구성될 수 있다. 예를 들어, CPU(304)는 DMA 전송 명령들을 휘발성 메모리(338)에 생성하고, DMA 제어기(302)에게 이 DMA 전송 명령들을 실행하기 시작하도록 명령하며, 그 다음 메인 버스(314)에 부착된 I/O 장치에게 전송 요청들을 송신하고 메인 DMA 제어기(302)로부터의 데이터를 송수힌하도록 명령함으로써, 메인 DMA 제어기(302)를 통해 데이터의 라우팅을 지휘할 수 있다. 대안적인 실시예에서, CPU(304)는 CPU(304)에 포함된 데이터 레지스터들을 통해 데이터를 직접 전달함으로써 데이터를 라우팅할 수 있다. 다른 실시예에서, 전자 장치(100)는 DMA 제어기 없이도 구현될 수 있는데, 이 경우 CPU(304)가 PIO 명령들을 통해 전자 장치(100)를 통과하는 데이터의 흐름을 직접 제어할 수 있다.
휘발성 메모리(338)에 더하여, 전자 장치(100)는 메인 버스(314)에 연결되는 저장 메모리(336)를 또한 포함할 수 있다. 저장 메모리(336)는 예컨대 NOR 또는 NAND 플래시 메모리와 같은 플래시 메모리를 포함할 수 있지만, 또한, 예컨대 자기 또는 광 디스크와 같은 임의의 유형의 전자 저장 장치를 포함할 수 있다. 본 발명의 실시예들에서, 저장 메모리(336)는 전화번호부 항목, 그림, 오디오 및 비디오 파일, 신호음, 보관 텍스트 메시지 및 이메일 등과 같은 소프트웨어 및 사용자 파일을 저장하는데 사용된다.
또한 인터넷 통신 장치(316)가 메인 버스(314)에 결합된다. 인터넷 통신 장치(316)는 인터넷과 통신하기 위한 임의의 방법을 포함할 수 있다. 예를 들어, 인터넷 통신 장치(316)는 IEEE 802.11 표준에 따라 작동하는 무선 통신 장치 또는 IEEE 802.3 표준에 따라 작동하는 이더넷 통신 장치를 포함할 수 있다. 일부 실시예에서, 인터넷 통신 장치(316)는 인터넷과의 통신 태스크 중 일부만을 수행할 수 있는데, 예컨대 일부 실시예에서, 인터넷 통신 장치(316)는 물리적 통신 링크만이 될 수 있고, 인터넷과의 통신 태스크의 나머지가 CPU(304) 상에서 실행되는 소프트웨어에 의해 수행된다.
또한, 사용자 인터페이스(318)가 메인 버스(314)로 연결된다. 사용자 인터페이스(318)는, 예컨대 버튼, 손잡이, 터치 스크린, 트랙볼 또는 공지의 임의의 기타 사용자 인터페이스와 같은 여러 사용자 인터페이스 도구를 포함할 수 있다.
또한 비디오 프로세싱 회로(308), 비디오 디스플레이 회로(310) 및 디스플레이(312)를 포함하는 비디오 구성요소들이 메인 버스(314)에 연결된다. 비디오 프로세싱 회로(308)는 비디오 데이터를 다양한 포맷들로 압축하고 압축된 비디오 데이터를 시스템의 다른 부분으로 보내도록 구성될 수 있다. 예를 들어, 비디오 프로세싱 회로(308)는 카메라(306)로부터 얻어진 비디오 데이터를 JPEG 또는 MPEG 포맷으로 압축하고 압축된 비디오 데이터를 메인 버스(314)를 통해 휘발성 메모리(338)로 보내도록 구성될 수 있다. 비디오 프로세싱 회로(308)는 또한 다양한 인코딩 포맷의 비디오 데이터를 압축 해제하고 압축해제된 비디오 데이터를 시스템의 다른 부분들로 보내도록 구성될 수 있다. 예를 들어, 비디오 프로세싱 회로(308)는 휘발성 메모리(338)로부터 얻어진 JPEG 또는 MPEG 인코딩된 비디오 데이터를 압축해제하고 압축해제된 비디오 데이터를 휘발성 메모리(338) 또는 비디오 디스플레이 회로(310)로 보내도록 구성될 수 있다.
비디오 디스플레이 회로(310)는 압축해제된 비디오 데이터를 그 다음 디스플레이(312)로 보내질 수 있는 비디오 신호로 전환하도록 구성될 수 있다. 비디오 디스플레이 회로는 또한 비디오 데이터를 넓은 범위의 비디오 포맷으로 생성하도록 구성될 수 있다. 예를 들어, 비디오 디스플레이 회로(310)는 NTSC 호환 신호와 같은 아날로그 신호 또는 ATSC 또는 HDMI 호환 신호와 같은 디지털 신호를 생성할 수 있다. 더욱이, 디스플레이(312)는 예컨대 LCD 스크린과 같은 임의의 유형의 비디오 디스플레이 장치가 될 수 있다. 본 발명의 실시예들에서, 디스플레이(312)는 전자 장치(100)의 필수적인 부분이지만, 대안 실시예들에서, 디스플레이(312)는, 예컨대 HDMI 인터페이스와 같은 데이터 전송 매체를 통해 전자 장치(100)에 결합되는 외부 장치가 될 수 있다.
비디오 구성요소들(308, 310, 및 312)이 함께 다양한 형태의 비디오 콘텐츠를 디스플레이하는데 사용될 수 있다. 예를 들어, 비디오 구성요소들(308, 310 및 312)이 카메라(306)를 통해 실시간 카메라 보기를 디스플레이하거나 이전에 기록되고 저장된 사진들을 디스플레이하는데 사용될 수 있다. 추가적으로, 비디오 구성요소들(308, 310 및 312)은 오디오 및 비디오 콘텐츠를 갖는 매체의 비디오 부분을 디스플레이하는데 사용될 수 있다. 예를 들어, 비디오 구성요소들(308, 310 및 312)은 예컨대 방송 텔레비전 신호, 인터넷으로부터의 스트리밍 매체, 또는 저장 메모리(336)에 저장된 오디오/비디오 파일과 같은 임의의 가능한 소스로부터 전자 장치(100)로 전달되는 전자 게임 또는 방송 매체와 같은 오디오/비디오 매체를 프로세싱하고 디스플레이하는데 사용될 수 있다.
또한 기저대역 라디오(322)의 데이터 측이 메인 버스(314)에 연결된다. 기저대역 라디오(322)는 무선 전화 신호들을 송신 및 수신한다. 기저대역 라디오(322)의 데이터 측이 호스트 서브시스템(300)에 연결되어 CPU(304)가 수신 또는 발신 전화 통화들의 개시 및 종료와 같은 기저대역 라디오(322)의 다양한 특징들을 직접 제어할 수 있고, CPU(304)가 무선 전화 데이터 서비스를 통해 데이터를 송신 및 수신할 수 있다(이를 실행하는 경우, 기저대역 라디오(322)는 인터넷 통신 장치(316)와 동일한 역할을 갖는다). 아래에서 더 자세히 설명되는 바와 같이, 기저대역 라디오의 오디오 측은 오디오 버스(328)에 연결되어 전화 오디오가 CPU(304)와는 독립적으로 오디오 서브시스템에 의해 프로세싱될 수 있다. 즉, 기저대역 라디오로부터의 오디오 데이터 중 어느 것도 메인 버스(314)로 전달되지 않는다.
도 3은 본 발명에 따른 호스트 서브시스템(300)에 느슨하게 결합되는 독립 오디오 서브시스템(301)의 일 실시예를 또한 도시한다. 오디오 서브시스템이 "느슨하게 결합되는(loosely coupled)"으로 설명되는데, 이는 종래 기술과 달리 오디오 서브시스템의 구성요소들이 메인 버스(314)에 직접 결합되지 않고 CPU(304)에 의해 직접 액세스되지 않으며 메인 버스(314)에 직접 액세스할 수 없기 때문이다. 오히려, 오디오 서브시스템(301)에 포함된 오디오 구성요소들 모두가 메인 버스(314)로부터 독립적인 오디오 버스(328)를 통해 서로 결합되고, 호스트 서브시스템(300) 및 오디오 서브시스템(301) 간의 결합은 아래에서 더 설명되는 서브시스템 인터페이스(320)에 의해 제어되는 데이터 라인 세트를 통해 이루어진다. 본 발명의 실시예들에서, 오디오 버스(328)는 AMBA® 준수 데이터 버스들 중 하나가 될 수 있다. 추가적으로, 오디오 서브시스템(301)은 또한 오디오 서브시스템(301) 내에서 DMA 전송을 가능하게 하는 오디오 DMA 제어기(332)를 포함할 수 있다.
송신기, 수신기 및, 예컨대 셀룰러 전화 통신과 같이 무선 전화 통신과 연관되는 기타 전자 장치들을 포함하는 기저대역 라디오(322)의 오디오 측이 오디오 버스(328)에 또한 결합된다. 기저대역 라디오(322)에 의해 생성되는 오디오 데이터는 아래에서 설명되는 방식으로 오디오 서브시스템(301)에 의해 프로세싱된다. 본 발명의 실시예들은 또한, 예컨대 블루투스 준수 무선 장치(도시되지 않음)와 같은 기타 무선 통신 장치들을 포함할 수 있다.
데이터를 인코딩 및 디코딩하고 데이터를 하나 이상의 오디오 입력 및 출력 장치들, 이를테면 마이크로폰(110) 및 스피커(111)로 및 이로부터 라우팅하도록 구성되는 CODEC(334)이 또한 오디오 버스(328)에 결합된다. 구체적으로, CODEC(334)이 마이크로폰(110)과 같은 오디오 입력 장치로부터 아날로그 데이터를 수신하고, 이 아날로그 오디오 데이터를 디지털 오디오 데이터로 전환하며 디지털 오디오 데이터를 오디오 버스(328)를 통해 오디오 DSP(330)로 송신한다. 더욱이, CODEC(334)은 오디오 DSP(330)로부터 디지털 오디오 데이터를 수신하고, 디지털 오디오 데이터를 아날로그 오디오 데이터로 전환하며 아날로그 오디오 데이터를 스피커(111)와 같은 오디오 출력 장치로 송신한다. 본 발명의 실시예들에서, CODEC(334)은 두 통신 채널을 포함하여 위에서 설명된 바와 같이 오디오 데이터의 송신 및 수신이 동시에 발생할 수 있다.
오디오 DSP(330)는 ARM® AudioDETM 프로세서와 같은 코어 프로세서(333) 뿐만 아니라, 데이터 메모리, 프로그램 메모리 DMA 채널 하나 이상의 입력 버퍼(329) 및 하나 이상의 출력 버퍼(331)를 포함한다. 일 실시예에서, 오디오 DSP(330)는 ARM® r2p0 AMCSS 프로세서가 될 수 있다. 오디오 DSP(330)는 오디오 서브시스템(301) 내의 데이터 라우팅을 제어하고 압축/해제, 다른 소스들로부터의 오디오의 등화 및 혼합과 같은 오디오 데이터의 다양한 프로세싱을 수행한다. 본 발명의 실시예들에서, 오디오 DSP(330)는 규제에 의해 허용되지 않는 및/또는 전자 장치(100)의 사용자들에게 바람직하지 않을 수 있는 지연을 피하기 위해 수 밀리초 정도로 다양한 오디오 프로세싱 태스크들 간에서 스위치하도록 구성된다. 예를 들어, 오디오 DSP(330)는 만약 CPU(304)가 수신 전화 통화를 개시하는 경우 오디오 DSP(330)가 음악 오디오를 프로세싱하고 있다면, 오디오 DSP(330)는 전화 통화의 지연을 피하기 위해 실시간 전화 오디오의 프로세싱으로 신속하게 스위칭할 것이다.
오디오 DSP(330)의 빠른 스위칭 능력은 오디오 DSP(330)의 프로그램 메모리에서 실행되는 스케줄링 하드웨어 및 스케줄링 소프트웨어의 사용에 의해 가능하게될 수 있다. 일 실시예에서, 스케줄러가 각 프로세싱 태스크(예컨대, 음악 오디오의 압축 해제, 또는 전화 오디오의 등화)를 일련의 더 작은 태스크 조각들로 나누는데, 이들 각각은 매우 빠르게 프로세싱될 수 있다. 스케줄러는 그 다음 어느 태스크 조각이 임의의 주어진 시간에 코어 프로세서(333)로 공급되는지 판단한다. 스케줄러가 코어 프로세서(333)에 빠르게 프로세싱되는 작은 태스크 조각들을 공급하기 때문에, 스케줄러는 코어 프로세서(333)를 상이한 태스크로 스위칭하기 위해 코어 프로세서(333)를 인터럽트할 필요가 없다. 오히려, 스케줄러는 상이한 태스크에 관한 태스크 조각을 공급하기 전에 이전의 작은 태스크 조각이 프로세싱 완료될 때까지 기다린다.
오디오 DSP(330)에 의해 수행되는 가장 흔한 태스크는 오디오의 디코딩 및 추후 프로세싱(예컨대, 등화)이 될 것이기 때문에, 통상적인 태스크 조각은 오디오 샘플들의 작은 조각의 디코딩 또는 추후 프로세싱이 될 것이다. 작은 조각의 샘플들의 수는 실시간 대화에서의 지연이 전화 규정에 의해 금지되고 사용자에게 번거롭기 때문에 특정 태스크에 대한 오디오 샘플링 레이트 뿐만 아니라 통상적으로 전화 오디오의 프로세싱이 될 가장 지연에 민감한 태스크에 대해 허용될 수 있는 최대 시간 지연에 의해 결정될 수 있다. 샘플링 레이트에 관하여, 통상적인 샘플링 레이트들은 전화 오디오에 대해 약 8 킬로헤르츠 음악에 대해 44.1 킬로헤르츠가 될 것이다. 최대 허용 시간 지연에 관하여, 본 발명의 실시예들에서, 오디오 서브시스템(301)은 전화 오디오와 같은 실시간 오디오를, 최상의 경우 2 밀리초(ms)의 전체 시간 지연으로 프로세싱하도록 구성되는데, 이 시간 지연은 오디오 신호가 마이크로폰 또는 라디오 수신기로부터 수신되는 시점으로부터 오디오 신호가 스피커에 의해 재생되거나 라디오 송신기에 의해 송신되는 시점까지의 시간이다. 다른 실시예들에서, 5ms까지의 지연이 허용가능할 수 있다. 예를 들어, 본 발명의 일부 실시예에서, 실시간 오디오에 대한 전체 프로세싱은 입력 장치 또는 수신기로 인한 1ms 지연, 오디오 DSP(330)으로 인한 1ms 지연, 및 출력 장치 또는 송신기로 인한 1ms 지연을 포함한다. 위의 설계 제약을 고려하면, 작은 태스크 조각들의 사이즈는 전화 오디오를 프로세싱하는 경우 통상적으로 약 8 샘플이 될 것이고, 음악을 프로세싱하는 경우 약 44-45 샘플이 될 것이다.
오디오 데이터, 제어 명령들, 상태 정보 및 초기 정보를 포함하는 호스트 서브시스템(300) 및 오디오 서브시스템(301) 간에서 흐르는 정보의 주요 흐름 경로인 서브시스템 인터페이스(320)가 또한 메인 버스(314) 및 오디오 버스(328)에 연결된다. 서브시스템 인터페이스(320)는 스트리밍 오디오 데이터를 호스트 서브시스템(300)으로부터 오디오 서브시스템(301)으로 운반하기 위한, 예컨대 선입 선출(first-in-first-out; FIFO) 버퍼들 또는 링 버퍼들과 같은 하나 이상의 메모리 버퍼를 포함할 수 있다. 더욱이, 서브시스템 인터페이스(320)가 데이터를 호스트 서브시스템(300)으로부터 오디오 서브시스템(301)으로 운반하는 단일 출력 버퍼 채널을 포함할 수 있지만, 서브시스템 인터페이스(320)는 또한 데이터를 오디오 버스시스템(301)으로부터 호스트 서브시스템(300)으로 운반하는 적어도 하나의 입력 버퍼 채널을 포함하는 복수의 버퍼 채널을 포함할 수 있다. 일 실시예에서, 서브시스템 인터페이스(320)는 개별적으로 입력 또는 출력으로 구성될 수 있는 네 개의 버퍼 채널을 포함하고 보통 3개의 출력 버퍼 채널 및 하나의 입력 버퍼 채널로 구성된다. 데이터를 오디오 서브시스템(301)으로 운반하기 위한 하나보다 많은 버퍼 채널을 제공함으로써, 음악 오디오와 같은 스트리밍 오디오는 사용자 인터페이스 사운드로부터 분리되어 유지될 수 있다. 서브시스템 인터페이스(320)는 또한 CPU(304)로부터 오디오 서브시스템(301)으로 제어 정보를 운반하고 오디오 서브시스템(301)으로부터 CPU(304)로 상태 정보를 운반하는데 사용되는, 하나 이상의 전자 레지스터들을 포함할 수 있다. CPU(304) 및 오디오 DSP(330) 모두 이러한 레지스터들로의 읽기/쓰기 액세스를 가질 수 있다.
추가적으로, 오디오 서브시스템(301)은 또한 호스트 서브시스템(300)에 의해 보내지고 오디오 DSP(330)에 의해 프로세싱되도록 기다리는 압축되거나 압축되지 않은 포맷의 스트리밍 오디오 데이터의 상당한 양을 일시적으로 저장할 만큼 충분한 양의 오디오 RAM, 또는 기타 형태의 전자 데이터 저장소를 포함할 수 있다. 일부 실시예들에서, 오디오 RAM은 서브시스템 인터페이스(320) 내에 포함될 수 있다. 다른 실시예들에서, 오디오 RAM은 오디오 DSP(330)에 포함될 수 있고, 이 경우 입력 버퍼(329) 및 출력 버퍼(331)가 오디오 RAM에 포함될 수 있다. 다른 실시예들에서, 오디오 RAM은 오디오 버스(328)에 결합되는 별도의 구성요소가 될 수 있다. 일시적으로 스트리밍 오디오를 저장할 오디오 RAM을 제공함으로써, 호스트 서브시스템(300)은 오디오 DSP가 계속하여 오디오 데이터를 프로세싱하는 동안 저전력 모드로 들어갈 수 있고, 이는 아래에서 상세히 설명될 것이다. 일부 실시예들에서, 오디오 서브시스템(301)은 수십 킬로바이트 또는 그 이하 단위의 상대적으로 적은 양의 오디오 RAM을 포함할 수 있다. 다른 실시예들에서, 오디오 서브시스템(301)은 수백 킬로바이트의 오디오 RAM을 포함할 수 있다. 오디오 서브시스템(301)에 포함되는 오디오 RAM의 양을 증가시키는 것은 호스트 서브시스템(300)이 저전력 모드로 유지될 수 있는 시간을 증가시키는 점을 알 수 있다. 일부 실시예에서, 오디오 RAM은 10 내지 30초 정도의 오디오 데이터에 해당하는 양을 보유할 수 있다.
추가적으로, 오디오 데이터를 비디오 데이터와 동기화하는 수단이 제공된다. 본 발명의 실시예에서, 오디오/비디오 신호의 오디오 및 비디오 구성요소들이 개별적으로 프로세싱되기 때문에 오디오 및 비디오 데이터를 동기화하는 것이 바람직할 수 있다. 구체적으로, 오디오/비디오 신호의 비디오 구성요소가 비디오 프로세싱 회로(308)로 송신되는 반면, 오디오/비디오 신호의 오디오 구성요소는 오디오 서브시스템(301)으로 보내진다. 더욱이, 일단 오디오 데이터가 오디오 서브시스템(301)으로 보내지면, CPU(304)는 오디오 데이터를 검색 또는 조작할 수 없다. 오히려, 오디오 DSP(330)에 의해 프로세싱된 오디오 데이터는 오디오 신호를 CODEC(334)이나 S/PDIF 출력 또는 오디오/비디오 인터페이스(326)와 같은 오디오 서브시스템(301) 내에 일부 다른 오디오 출력 장치로 보냄으로써 재생될 수 있다. 따라서, 오디오 및 비디오 데이터의 재생을 동기화하는 수단이 없으면, 오디오 프로세싱 회로 및 비디오 프로세싱 회로 간에 존재할 수 있는 동일하지 않은 프로세싱 시간들로 인해 비디오 구성요소를 오디오 구성요소와 싱크가 맞지 않게 재생될 수 있다.
오디오/비디오 신호의 오디오 및 비디오 구성요소들이 정확한 타이밍으로 재생되도록 소프트웨어가 호스트 서브시스템(300) 및 오디오 프로세싱 서브시스템(301) 상에서 실행될 수 있도록 하기 위해, 시간 기록 장치(324)가 메인 버스(314) 및 오디오 버스(328)로 연결된다. 시간 기록 장치(324)가 일정한 주기로 계속적으로 증가하는 레지스터인 마스터 타임베이스(timebase)를 포함할 수 있다. 호스트 서브시스템(300) 및 오디오 서브시스템(301)은 시간 기록 장치(324)에 의해 생성되는 시간 정보로의 액세스를 갖는다. 이 시간 정보는 그 다음 전자 장치(100)가 오디오/비디오 출력을 생성하고 있는 경우 오디오 출력과 비디오 출력을 동기화하는데 사용될 수 있다. 예를 들어, 오디오/비디오의 오디오 구성요소는 오디오 서브시스템(301)으로 송신되기 전에 타임스태프(timestamp)로 인코딩될 수 있다. 타임스탬프는 오디오 서브시스템(301)에 오디오 조각을 재생하는 적절한 시간을 알리는데, 마스터 타임베이스가 현재 시간의 믿을 수 있는 소스로 역할을 한다. 또 다른 예로, 오디오 스트림 내의 관심 포인트들에 대응하는 오디오 샘플들이 CODEC(334)으로 전달되는 경우 시간 정보가 시간 기록 장치(324)로부터 판독되고 서브시스템 인터페이스(320) 내의 데이터 레지스터로 기입될 수 있다. 시간 정보는 그 다음 CPU(304)에게 특정 오디오 샘플이 CODEC(334)에 의해 재생된 시간을 알릴 수 있다.
오디오/비디오 인터페이스(326)는 오디오/비디오 신호가 결합된 오디오/비디오 신호를 활용할 수 있는 디스플레이 장치로 보내지는 실시예들에서 프로세싱된 오디오 및 비디오를 재결합하기 위한 수단을 제공한다. 예를 들어, 오디오/비디오 인터페이스(326)는 오디오 데이터를 고해상도 멀티미디어 인터페이스(High-Definition Multimedia Interface; HDMI) 포맷으로 전환할 수 있다. 오디오/비디오 인터페이스(326)를 통해 비디오 디스플레이 회로(310)로 보내진 오디오 데이터는 시간 기록 인터페이스(324)로부터 판독되는 시간 정보를 포함할 수 있다. 이 시간 정보는 호스트 서브시스템(300) 및 오디오 서브시스템에 공통되기 때문에, 이 정보는 오디오 및 비디오 신호들을 동기화하는데 사용될 수 있다.
전자 장치(100)의 다양한 구성 및 성능이 본 발명의 실시예들에 따라 활용될 수 있다. 예로서, 본 발명의 실시예들은 비디오 프로세싱 회로(308), 비디오 디스플레이 회로(310), 또는 디스플레이(312) 없이도 구성될 수 있다. 추가적으로, 본 발명의 실시예들은 이더넷 또는 USB와 같은 여러 입력 매체를 지원할 수 있다. 오디오 서브시스템(301)에 관하여, 전자 장치(100)는 무엇보다 사용자가 오디오 샘플들 또는 음성 명령들을 기록하도록 구성되는 오디오 버스(328)에 연결된 디지털 마이크로폰을 포함할 수 있다. 전자 장치(100) 및 오디오 서브시스템(301)에 포함될 수 있는 구성요소들의 모든 가능한 조합을 상세히 설명하는 것은 본 설명의 범위를 넘어서지만, 당업자라면 본 발명의 사상 및 범위를 넘어서지 않으면서 여러 다른 구성요소들이 추가되거나 제거될 수 있다는 것을 알 수 있다. 또한 도 3에 설명된 구성요소들의 일부 또는 전부가 칩 상의 시스템(system on a chip; SOC)에서 실행될 수 있다. 더욱이, 일부 실시예에서, 오디오 서브시스템은 자신의 고유의 별도 칩에서 구현될 수 있다.
추가적으로, 특정 실시예들은 또한 느슨하게 결합된 서브시스템 내에서 비디오와 같은 기타 유형의 매체를 프로세싱하는 것을 포함할 수 있다. 예를 들어, 비디오 프로세싱 회로(308), 카메라(306), 비디오 디스플레이 회로(310) 및 디스플레이(312)가 비디오 버스에 의해 함께 결합되어 메인 버스(314) 및 비디오 버스 간에 위치하는 제2 서브시스템 인터페이스를 통해 호스트 서브시스템(300)과 통신하는 제2 서브시스템을 형성할 수 있다. 또 다른 예로, 비디오 및 오디오 구성요소들은 모두가 오디오 서브시스템(301)에 포함될 수 있어, 이 경우 오디오 서브시스템(301)이 실제로 오디오/비디오 서브시스템이 될 수 있다. 편의상, 본 출원서는 느슨하게 결합된 오디오 서브시스템(301)을 갖는 전자 장치를 설명한다. 그러나, 본 발명의 실시예들이 또한 느슨하게 결합된 비디오 서브시스템을 갖는 장치에 적용될 수 있다는 것을 알 수 있다.
이제 도 4에서, 본 발명의 일 실시예에 따른 음악 오디오를 프로세싱하는 방법이 도시된다. 설명된 실시예는 두 병렬 프로세스, 서로 실질적으로 독립적인 프로세스(400) 및 프로세스(401)를 포함한다. 프로세스(400)는 호스트 서브시스템(300)에 의해 수행되는 프로세싱 단계들을 포함하는 반면, 프로세스(401)는 오디오 서브시스템(301)에 의해 수행되는 프로세싱 단계들을 포함한다.
프로세스(400)가 단계(402)에서 시작되고, 여기서 사용자는 오디오 트랙의 재생을 개시한다. 오디오 트랙의 재생은 특정 음악 또는 오디오/비디오 파일의 선택에 의해 개시될 수 있거나, 예컨대 특정 인터넷 웹 페이지의 선택에 의해 개시될 수 있다.
단계(404)에서, CPU(304)는 큰 블록의 오디오 데이터를 판독하여 휘발성 메모리(338)와 같은 메모리로 넣는다. 큰 블록의 오디오 데이터는 단일 오디오 트랙, 여러 오디오 트랙 또는 심지어 오디오 트랙의 일부로 구성되는 수 분 정도의 오디오 데이터를 포함할 수 있다. 추가적으로, 오디오 데이터는 여러 다양한 소스들로부터 비롯될 수 있다. 예를 들어, 오디오 데이터는 저장 메모리(336)와 같은 저장 장치로부터 비롯될 수 있거나, 인터넷 통신 장치(316)를 통해 인터넷으로부터 스트리밍될 수 있다. 큰 블록의 데이터를 판독하여 메모리에 넣은 후, CPU(304)는 DMA 제어기(302)에 오디오 데이터 블록의 설명을 제공하고, DMA 전송 명령들을 DMA제어기(302)로 송신하며, DMA 전송을 개시하는 휘발성 메모리(338)에 DMA 전송 명령들을 생성한다.
다음으로, 단계(406)에서, CPU(304)가 저전력 상태로 진입한다. 당업자라면 저전력 상태를 달성하기 위한 여러 공지의 방법을 알 것이다. 예를 들어, CPU(304)는 회로를 전기적으로 주전원으로부터 분리하여 내부 회로의 일부 또는 전부를 스위치 오프할 수 있다. 이와 달리, CPU(304)의 일부 또는 전부는 당업자에게 알려질 클록 게이팅(clock gating) 기술을 이용하여 자신의 클록들을 멈출 수 있다. 단계(406) 동안, CPU(304)는 또한 선택된 오디오를 재생하는데 사용되지 않는 전자 장치(100) 내의 여러 다른 전자 구성요소들의 전력을 낮출 수 있다. 일부 실시예들에서, CPU(304) 내의 적어도 하나의 데이터 채널, 이를테면 인터럽트 채널이 액티브 상태로 유지되어 CPU(304)가 데이터 채널을 통해 정상 작업을 재개하도록 작동될 수 있다. 이러한 방식으로, CPU(304)는, 예컨대 수신 또는 발신 전화 통화의 개시와 같이, 특정 이벤트의 검출에 따라 정상 작업을 재개하도록 작동될 수 있다.
다음으로, 단계(408)에서, CPU(304)가 저전력 상태로 유지되는 동안, 메인 DMA 제어기(302)가 오디오 데이터를 DMA 전송 명령들에 따라 서브시스템 인터페이스(320)를 통해 휘발성 메모리(338)로부터 오디오 서브시스템(301)으로 전송한다. 메인 DMA 제어기(302)는 서브시스템 인터페이스(320) 내의 RAM이 보유할 수 있는 만큼의 오디오 데이터를 전송하도록 구성될 수 있는데, 이는 수 초 정도까지 될 수 있다.
다음으로, 단계(410)에서, 메인 DMA 제어기(302)는 데이터가 서브시스템 인터페이스(320)에서 이용가능하다고 나타내는 신호를 오디오 DSP(330)로 보낸다. 이 신호의 송신, 즉 핸드셰이크(handshake)는 병렬 프로세스(401)를 유발하는데, 이 경우 오디오 DSP(330)가 호스트 서브시스템(300)과 독립적으로 오디오 데이터를 프로세싱하며, 이는 아래에서 자세히 설명될 것이다.
다음으로, 프로세스(400)가 단계(412)로 진행하고, 여기서 메인 DMA 제어기(302) 및 휘발성 메모리(338)가 저전력 상태로 진입한다. CPU(304)와 마찬가지로, 메인 DMA 제어기(302)의 저전력 상태는 클록 게이팅을 통해서나 당업자에게 알려진 임의의 다른 전력 절약 기술에 의해 메인 DMA 제어기(302)를 자신의 전력 서플라이로부터 전기적으로 분리하여 수행될 수 있다. 만약 재생될 오디오의 임의의 부분이 여전히 휘발성 메모리(338)에 있어 전송되기를 기다린다면, 휘발성 메모리(338)의 저전력 상태는 휘발성 메모리에 포함된 데이터를 보존하는 임의의 기술에 의해 구현된다. 예를 들어, 만약 휘발성 메모리(338)가 동적 RAM(DRAM) 기술을 이용하여 구현되면, 휘발성 메모리(338)는 자기 회복(self-refresh) 모드로 될 수 있다.
이 경우, 병렬 태스크가 CPU(304)에 의해 수행되고 있지 않는 한, 오디오 서브시스템(301)이 완전히 전원 공급되는 전자 장치(100) 내의 실질적으로 유일한 구성요소이다. 프로세스(401)와 관련하여 설명되는 바와 같이, 오디오 서브시스템(301)은 호스트 서브시스템(300) 및 프로세스(400)와 독립적으로 서브시스템 인터페이스(320)로부터 오디오 데이터를 계속하여 인출할 수 있다. 따라서, 호스트 서브시스템(300)은 서브시스템 인터페이스(320)가 오디오 데이터를 다 소모하기 전에 전원을 넣고 신규 오디오 데이터를 서브시스템 인터페이스(320)로 보낼 수 있다.
따라서, 단계(414)에서, 서브시스템 인터페이스(320)에 저장된 오디오 데이터가 지정된 임계값 밑으로 떨어졌는지 여부에 대한 판단이 이루어진다. 오디오 데이터가 지정된 임계값 아래에 있지 않으면, 메인 DMA 제어기(302)는 단계(416)에 표시된 바와 같이 저전력 상태로 유지된다. 그러나, 만약 오디오 데이터가 지정된 임계값 아래에 있으면, 선택된 오디오 트랙의 다음 부분이 서브시스템 인터페이스(320)로 로딩되는 프로세스가 개시된다. 일부 실시예들에서, 지정된 양의 데이터가 서브시스템 인터페이스(320)로부터 오디오 DSP(330)로 전송된 후 단계(414)가 주기적으로 실행된다.
서브시스템 인터페이스(320)에 저장된 오디오 데이터가 임계값 아래로 떨어진 후, 프로세스가 단계(418)로 진행하고, 이 단계에서 서브시스템 인터페이스(320)가 DMA 요청을 메인 DMA 제어기(302)로 송신하여, 메인 DMA 제어기(302)에 전원을 공급하고 이 제어기가 정상 작업을 재개하도록 한다. 다음으로, 단계(420)에서 메인 DMA 제어기(302)가 DMA 전송 명령들의 마지막에 도달하였는지 여부에 관한 판단이 이루어진다. 만약 메인 DMA 제어기(302)가 DMA 전송 명령들의 마지막에 있지 않으면, 프로세스(400)는 그 다음 단계(408)로 진행하고, 이 경우 메인 DMA 제어기(302)가 더 많은 오디오 데이터를 서브시스템 인터페이스(320)로 전송하고, 핸드셰이크 신호를 오디오 DSP(330)로 보내며, 저전력 상태로 돌아간다(단계 408, 410 및 412). 만약 메인 DMA 제어기(302)가 기술자(descriptor)의 마지막에 있다면, 이는 단계(404)에서 CPU(304)에 의해 호스트 메모리에 저장되는 모든 오디오 데이터가 오디오 서브시스템(301)으로 전송되었다는 것을 나타낸다. 따라서, 만약 메인 DMA 제어기(302)가 DMA 전송 명령들의 마지막에 도달하였다면, 프로세스(400)는 단계(422)로 진행하여 또 다른 오디오 데이터 블록을 로드하는 프로세스를 시작한다.
단계(422)에서, 메인 DMA 제어기(302)가 인터럽트 명령을 CPU(304)로 보내, CPU(304)에 전원이 공급되고 이 CPU가 정상 작업을 재개하도록 한다. 다음으로, 단계(404)에서 CPU(304)는 위에서 설명되는 프로세스를 반복한다. 즉, CPU(304)는 오디오 데이터의 또 다른 큰 블록을 작성하고, DMA 전송 명령들을 휘발성 메모리(338)에 생성하며, DMA 전송을 개시하고(단계 404), 저전력 상태로 내려간다(단계 406). 본 발명의 실시예들에서, 오디오 데이터의 신규 블록이 사용자에 의해 선택된 특정 노래의 리마인더가 될 수 있거나, 이와 달리, 신규 오디오 데이터가 예컨대 메모리에 저장된 다음 노래, 또는 사용자에 의해 일부 방식으로 지정된 노래 목록 내의 다음 노래로부터 올 수 있다.
이제 프로세스(401)로 돌아가서, 오디오 서브시스템(301) 내부의 오디오 데이터의 프로세싱이 설명될 것이다. 프로세스(401)가 단계(424)에서 시작하고, 여기서 오디오 DSP(330)가 오디오 데이터가 서브시스템 인터페이스에서 이용가능하게 되기를 기다린다. 단계(410)에서 메인 DMA 제어기(302)에 의해 보내진 핸드셰이크 신호는 프로세스(401)가 단계(424)에서 단계(426)로 진행하도록 한다.
단계(426)에서, 오디오 DSP(330)가 오디오 데이터를 서브시스템 인터페이스(320)로부터 오디오 DSP(330) 메모리, 이를테면 입력 버퍼(329)로 이동시킨다. 일부 실시예들에서, 아래에서 설명되는 바와 같이, 오디오 DSP(330)가 실시간 전화 오디오의 프로세싱 및 라우팅과 같이 더 우선순위의 태스크를 프로세싱하느라 바쁘면 데이터 전송이 바로 발생하지 않을 수 있다. 그렇지 않으면, 오디오 데이터 전송은 서브시스템 인터페이스(320)가 특정 양의 오디오 데이터를 포함하자마자 발생할 것이다.
다음으로, 단계(428)에서 오디오 DSP(330)의 입력 버퍼(329)로 전송된 오디오 데이터가 오디오 DSP(330)의 코어 프로세서(333)에 의해 프로세싱되는데, 이를테면 오디오 데이터를 디코딩, 등화 및/또는 혼합하여 진행된다. 예를 들어, 오디오 DSP(330)가 통상적으로 오디오 데이터를 디코딩하여 오디오 데이터를 CODEC(334)에 의해 인식되는 포맷으로 변환할 것이다. 일부 실시예에서 오디오 데이터가 압축된 포맷으로 오디오 서브시스템(301)으로 전송되고 따라서 CODEC(334)으로 보내지기 전에 압축해제되어야하기 때문에 디코딩 프로세스가 대체로 필요하다. 또 다른 예에서, 오디오 DSP(330)가 또한 오디오 데이터를 등화해야 할 수 있다. 등화 프로세스는 CODEC(334), 마이크로폰(110), 또는 스피커(111)에 의해 발생되는 신호 왜곡을 교정하는데 필요할 수 있다. 또 다른 예의 경우, 오디오 DSP(330)는 두 오디오 데이터 스트림을 CODEC(334)으로 보내기 전에 이들을 함께 혼합할 수 있다. 혼합 프로세스는 여러 다양한 오디오 기능들을 전자 장치(100)로 결합하는 수단을 제공한다. 예를 들어, 인터페이스 사운드들이 CPU(304)에 의해 보내질 수 있고, 음악 재생과 혼합될 수 있거나, 오디오가 음악 트랙들 간에서 부드럽게 사라질 수 있다. 추가적으로, 전화 오디오 및 음악 오디오가 모두 오디오 서브시스템(301)에 의해 다루어지기 때문에, 전화 및 음악 오디오를 결합하는 다양한 오디오 효과들이 실현될 수 있다. 예를 들어, 일 실시예에서, 음악 및 전화 오디오가 혼합되어 전화 통화의 개시에 따라 음악 및 전화 오디오 간에서 부드러운 페이딩을 생성할 수 있다. 또 다른 실시예에서, 음악 및 전화 오디오가 혼합되어 전화 통화에 걸쳐 낮은 볼륨으로 재생되는 배경 음악을 생성할 수 있다.
위에서 설명된 바와 같이, 오디오 데이터는 만약 더 우선순위의 태스크가 현재 오디오 DSP(330)의 코어 프로세서(333)를 사용하고 있으면 바로 프로세싱되지 않을 수 있다. 결과적으로, 만약 오디오 DSP(330)의 입력 버퍼(329)가 가득차면, 서브시스템 인터페이스(320)가 오디오 데이터를 오디오 DSP(330)로 보내는 것을 멈출 것이고, 입력 버퍼(329)가 신규 데이터를 다룰 수 있는 경우에만 재개할 것이다. 위에서 설명된 바와 같이, 본 발명의 실시예들은, 태스크의 할당된 우선순위를 고려하여, 하드웨어를 스케줄링하는 것 및 임의의 시간에 어느 태스크가 프로세싱되는지를 선택하는 오디오 DSP(330)의 프로그램 메모리에 실행되는 소프트웨어를 스케줄링하는 것을 포함한다. 스케줄러가 프로세싱을 위한 오디오 데이터를 선택하는 경우 단계(428)가 실행될 수 있다. 따라서, 오디오 데이터의 재생은 더 우선순위의 태스크가 완료되는 동안 단계(428)에서 멈출 수 있다. 예를 들어, 만약 수신 통화가 오디오 트랙이 재생되는 동안 개시되면, 프로세스(401)는 단계(428)에서 멈추고, 전화 통화가 종료되는 경우 재개된다.
다음으로, 단계(430)에서, 오디오 DSP(330)가 프로세싱된 오디오 데이터를 오디오 출력 버퍼(331)에 저장하고 프로세싱된 오디오 데이터를 출력 버퍼(331)로부터 CODEC(334)으로 라우팅한다. 그리고 나서 CODEC(334)이 위에서 설명된 바와 같이 디지털 오디오 데이터를 아날로그 데이터로 변환하고 아날로그 데이터 신호를 스피커나 헤드폰과 같은 출력 장치로 보낸다. 이와 달리, 오디오의 유형 및/또는 사용자의 선택에 기초하여, 오디오 DSP(330)은 프로세싱된 오디오를 CODEC(334)이아닌 주변 오디오 장치로 보낼 수 있다. 예를 들어, 오디오 DSP(330)가 데이터를 오디오/비디오 인터페이스(326) 또는 SPDIF 인터페이스로 라우팅할 수 있다.
본 발명의 일부 실시예들에서, 단계들(424, 426, 428 및 430)은 서브시스템 인터페이스(320)로 전송되는 모든 오디오 데이터가 프로세싱되고 재생될 때까지, 즉, 출력 장치로 라우팅될 때까지 반복된다. 설명되는 실시예에서, 오디오 서브시스템(301)으로 보내지는 오디오 데이터는 호스트 서브시스템(300)으로 돌아가는 리턴 경로로의 액세스를 가지지 않고, 따라서, 오디오 서브시스템으로 보내지는 오디오 데이터는 CPU(304)를 포함하는 호스트 서브시스템(300)에 더 이상 보여지지 않는다. 더욱이, 프로세스(400)는 사용자에 의해 선택되는 모든 오디오 데이터가 오디오 서브시스템(301)에 의해 프로세싱되고 재생될 때까지, 또는 프로세스가 사용자에 의해 취소될 때까지 반복될 수 있다.
이제 도 5를 참조하여, 본 발명의 실시예에 따른 전화 오디오를 프로세싱하는 방법이 도시된다. 프로세스(500)는 단계(502)에서 통화의 개시로 시작된다. 전화 통화는 수신 통화 또는 사용자에 의해 개시되는 발신 통화가 될 수 있다. 본 발명의 실시예들에서, 단계(502)는 사용자가 전화를 걸거나 "받기(answer)" 버튼을 누름으로써 전화 통화를 걸거나 수신하는 경우 유발된다.
다음으로, 단계(504)에서, 호스트 서브시스템(300)은 저전력 모드로 진입한다. 호스트 서브시스템(300)은 CPU(304), 메인 DMA 제어기(302), 저장 메모리(336), 휘발성 메모리(338) 및/또는 오디오 서브시스템(301)의 일부가 아닌 메인 버스(326)에 연결되는 임의의 기타 구성요소들을 포함할 수 있다. 이러한 방식으로, 전화 오디오의 프로세싱을 위해 사용되는 구성요소들만이 완전히 전원 공급된다. 위에서 설명된 바와 같이, 저전력 모드는 클록 게이팅과 같은 임의의 공지 기술을 이용하여 실시될 수 있다. 추가적으로, 프로세스(500)가 호스트 서브시스템(300)을 전화 통화의 기간 동안 저전력 모드로 남아 있는 것으로 묘사하고 있지만, 호스트 서브시스템(300) 또는 이의 일부 부분, 이를테면 예컨대 CPU(304)가 정상 작업을 하도록 유발되는 경우 이 작업을 재개할 수 있다. 예를 들어, 만약 사용자가 전화 통화 동안 재생할 음악 오디오 또는 사운드 클립을 선택하면, 호스트 서브시스템(300)은 선택된 오디오를 오디오 서브시스템(301)으로 전달하는 정상 작업을 재개할 수 있다. 추가적으로, 호스트 서브시스템(300)은 만약 호스트 서브시스템(300)이 사용자에 의해 전화 오디오 프로세싱 동안 병렬 프로세스를 실행하도록 구성되었다면 전혀 저전력 상태로 되지 않을 수 있다.
다음으로, 단계(506)에서, 기저대역 라디오(322) 및 CODEC(334)이 "준비되었는지", 즉 이들이 오디오 데이터를 송수신할 준비가 되었는지 여부가 판단된다. "준비" 조건에 대한 테스트는 공지의 수단에 의해 물리적으로 구현될 수 있다. 예를 들어, CODEC(334)은 출력 오디오 장치로 보내질 데이터를 보유하는 출력 버퍼 및 오디오 입력 장치에 의해 수신되고 프로세싱을 위해 오디오 DSP(330)로 보내질 데이터를 보유하는 입력 버퍼를 포함할 수 있다. 유사하게, 기저대역 라디오(322)는 송신된 발신 데이터를 보유하는 출력 버퍼 및 기저대역 라디오(322)에 의해 수신되고 프로세싱을 위해 오디오 DSP(330)로 송신될 수신 데이터를 보유하는 입력 버퍼를 포함할 수 있다. 본 발명의 일 실시예에서, "준비(ready)" 조건은 두 출력 버퍼가 지정된 수의 빈 메모리 공간들을 포함하고 두 입력 버퍼가 지정된 수의 오디오 샘플을 포함하고 있음을 나타낼 수 있다. 만약 모든 네 개의 버퍼가 "준비" 상태를 나타내면, 데이터의 전송이 발생할 수 있고 따라서 프로세스(500)는 단계(508)로 진행한다. 모든 네 개의 버퍼가 "준비" 상태를 나타내기를 기다리는 것은 차후 프로세싱을 단순화하는데, 이는 차후 프로세싱 단계들이 임의의 입력 데이터가 이용가능하고, 임의의 출력 데이터에 대한 공간이 이용가능하다고 상정할 수 있기 때문이다. 프로세싱이 진행됨에 따라 입력 데이터의 존배 또는 출력 버퍼 공간의 이용가능 여부를 확인할 필요가 없다. 다른 실시예들에서, 입력 데이터의 존재 및 출력 버퍼 공간의 이용가능 여부는 오디오 DSP(330)에 의해 프로세싱 동안 별도로 결정된다.
단계(506)는 실시간 전화 오디오의 프로세싱을 우선시하면서, 또한 오디오 DSP(330)의 코어 프로세서(333)의 효율적 사용을 가능하게 한다. 전화 오디오가 프로세싱되도록 기다리고 있고 전화 관련 회로가 신규 데이터를 다룰 수 있는 한, 오디오 DSP(330) 회로는 전화 오디오를 프로세싱하는데 적용될 것이다. 실시간 전화 오디오를 우선시하는 것은 전화 오디오가 빠르게 프로세싱되는 것을 확실하도록 돕고, 이에 따라 규제에 의해 금지 및/또는 사용자에게 바람직하지 않을 수 있는 전화 오디오의 지연들을 피할 수 있다. 그러나, 전화 회로가 오디오 DSP(330)를 사용할 수 없는 경우 시간 부족이 있을 수 있다. 예를 들어, 이는 만약 기저대역 라디오(322) 또는 CODEC(334)의 출력 버퍼들이 가득차거나 거의 가득차면, 또는 기저대역 라디오(322) 또는 CODEC(334)의 입력 버퍼들이 비거나 거의 비어 있으면 발생할 수 있다. 오디오 DSP(330)로 하여금 이러한 시간 동안 쉬는 상태로 남도록 하기 보다는, 본 발명의 실시예들은 오디오 DSP(330)가 기저대역 라디오(322) 또는 CODEC(334)이 "준비" 상태에 있지 않은 경우 다른 태스크들을 프로세싱하는 프로세스를 포함한다. 이에 따라, 프로세스(500)는 단계(506)에서 분기되어, 만약 기저대역 라디오(322) 또는 CODEC(334)이 "준비" 상태에 있지 않으면 단계(520)로 진행할 수 있다.
만약 모든 네 개의 버퍼들이 "준비" 상태를 나타내면, 프로세스(500)는 단계(508)로 진행한다. 단계(508)에서, 요청이 오디오 DSP(330)로 이루어진다. 일 실시예에서, 요청은 DMA 요청이고, 이 요청은 네 개의 버퍼들 중 하나에 각각 결합되고 버퍼가 "준비" 상태에 있는지 여부를 나타내도록 구성되는 네 개의 데이터 라인 집합을 포함하는 DMA 요청 회로에 의해 구현된다. 네 개의 데이터 라인은 "앤드" 게이트의 입력에 더 결합될 수 있는데, "앤드" 게이트의 출력은 오디오 DSP(330)에 포함되는 DMA 요청 입력 라인으로 결합된다. 또 다른 실시예에서, 요청은 인터럽트 요청이고, 요청이 네 개의 버퍼 중 하나에 각각 결합되고 버퍼가 "준비" 상태에 있는지 여부를 나타내도록 구성되는 네 개의 데이터 라인 집합을 포함하는 인터럽트 요청 회로에 의해 구현된다. 네 개의 데이터 라인들은 "앤드" 게이트의 입력에 더 결합될 수 있으며, "앤드" 게이트의 출력은 오디오 DSP(320)에 포함되는 인터럽트 요청 입력 라인에 결합된다.
다음으로, 단계(510)에서, 전화 오디오 데이터가 CODEC(334) 및 기저대역 라디오(322)의 입력 버퍼로부터 오디오 DSP(330)의 입력 버퍼(329)로 전송된다. 일 실시예에서, 오디오 DSP(330)는 적어도 두 입력 버퍼들을 포함하고, CODEC(334) 및 기저대역 라디오(322)로부터의 데이터 전송은 동시에 발생한다. 일 실시예에서, 요청이 DMA 요청이고, 전송은 DMA 요청에 응답하여 DMA 제어기에 의해 수행된다. 또 다른 실시예에서, 요청은 인터럽트 요청이고, 전송은 인터럽트 요청에 응답하여 오디오 DSP(330) 상에서 실행되는 소프트웨어에 의해 생성되는 프로그래밍된 I/O 작업들에 의해 수행된다.
다음으로, 단계(512)에서, 전화 오디오가 오디오 DSP(330)의 입력 버퍼들(329)로부터 얻어지고, 오디오 DSP(330)에 의해 프로세싱되며, 오디오 DSP(330)의 출력 버퍼(331)로 보내진다. 이러한 프로세싱의 예들은 수신 또는 발신 전송들의 디코딩 또는 인코딩, 전화 오디오의 등화, 및 상이한 오디오 데이터 스트림들의 디지털 혼합을 포함할 수 있다. 당업자는 위에서 설명되는 프로세스들을 실행하는 방법을 알 수 있다.
다음으로, 단계(514)에서, 오디오 DSP(330)는 다른 오디오 샘플들을 전화 오디오로 혼합할 수 있다. 예를 들어, CPU(304)는 삐 하는 또는 울리는 소리와 같은 사용자 인터페이스 사운드가 또 다른 수신 전화의 표시로서의 전화 오디오와 혼합되도록 할 수 있다. 또 다른 예로, 디코딩된 음악 오디오가 전화 오디오와 혼합될 수 있어, 디코딩된 음악 오디오는 수신 및/또는 발신 전화 오디오의 배경에서 재생된다. 디코딩된 음악 오디오를 전화 오디오와 혼합하기 위해, 음악 오디오의 샘플 레이트가 오디오 DSP(330)에 의해 당업자에게 알려져 있듯이 전화 오디오의 샘플 레이트에 매치하도록 변환될 수 있다.
다음으로, 단계(516)에서, 전화 오디오 데이터가 광대역 라디오(322) 및 CODEC(334)의 출력 버퍼들로 보내진다. 설명되는 실시예에서, CODEC(334) 및 기저대역 라디오(322)로의 데이터 전송은 동시에 발생한다. 따라서, 일 실시예에 따라, 오디오 DSP(330)는 또한 적어도 두 출력 버퍼(331)를 포함한다. 일 실시예에서, 전송은 DMA 제어기에 의해 수행된다. 또 다른 실시예에서, 전송은 오디오 DSP(330) 상에서 실행되는 소프트웨어에 의해 생성되는 프로그래밍된 I/O 작업들에 의해 수행된다.
다음으로, 단계(518)에서, 기저대역 라디오(322)가 발신 오디오 데이터를 송신하고, CODEC(334)이 수신 오디오 데이터를 스피커와 같은 출력 장치로 보낸다. 당업자라면 단계(518)에 설명된 프로세스들을 실행하는 기술을 알 수 있다.
본 발명의 실시예들에서, 단계들(506 내지 518)은 모든 수신 및 발신 오디오 데이터가 프로세싱되고 전화 통화가 종료할 때까지, 기저대역 라디오 및 코덱이 "준비" 상태가 되는 레이트에 의해 결정되는 레이트로 반복된다. 전화 통화가 종료하면, 호스트 서브시스템(300)이 저전력 모드에서 벗어나고 정상 작업을 재개한다. 위에서 설명된 바와 같이, 호스트 서브시스템(300)은 전화 통화가 진행되는 도중에서 정상 작업을 재개하도록 유발되면 그렇게 할 수 있다. 추가적으로, 호스트 서브시스템(300)은 또한 호스트 서브시스템(300)에 의해 프로세싱되도록 기다리는 차후 태스크가 없으면 전화 통화의 종료 후에도 저전력 모드로 남을 수 있다.
단계(506)로 돌아와서, 위에서 설명된 바와 같이, 만약 네 개의 버퍼들 중 하나가 "준비" 상태를 나타내지 않으면, 프로세스(500)는 단계(520)로 진행할 것이다. 단계(520)에서, 오디오 DSP(320)가 서브시스템 인터페이스(320)로부터 전송된 오디오 데이터의 조각을 디코딩하는 것 또는 CPU(304)에 의해 보내진 사용자 인터페이스 사운드 데이터를 프로세싱하는 것과 같은 일부 다른 짧은 프로세싱 태스크를 수행하여 사용자에게 또 다른 수신 전화 또는 로우 배터리 상태를 알린다. 단계(520)에서 발생하는 프로세싱은 충분히 짧아서 전화 오디오 프로세싱의 다음 스케줄된 실행이 상당히 지연되지 않는다. 오디오 DSP가 위에서 설명된 바와 같이 데이터를 작은 태스크 조각들로 프로세싱하기 때문에, 단계(520)가 종료되고 프로세스(500)는 단계(506)로 빠르게 돌아갈 것이다. 단계(520) 동안 프로세싱된 오디오 데이터는 단계(514) 동안 결국 전화 오디오와 혼합될 수 있다.
이제 본 발명의 향상된 보안 속성들에 대하여, 본 발명의 실시예들은 암호화를 통해 저작권 보호된 오디오의 보안을 향상시키는 기술들을 포함한다. 이러한 암호 기술의 예들은 함께 계류중이고 동일하게 양도된 2008년 4월 1일 출원된 발명의 명칭이 "임의적인 프로세싱 기능을 갖는 중앙 DMA(Central DMA with Arbitrary Processing Functions)"인 미국 특허 출원 번호 12060728에 설명되어 있고, 이는 전체가 본 명세서에서 참조로 통합된다. 간단히 말해서, 전자 장치(100)로 로딩된 저작권 보호된 오디오 데이터는 암호화 형태로 메모리에 저장될 수 있고, 따라서 전자 장치(100)로부터 다운로드될 수 있는 임의의 미승인 복제본을 작동하지 못하게 한다. 따라서, 전자 장치(100)는 암호 하드웨어 및/또는 소프트웨어가 장착되므로 암호화된 오디오 파일들이 재생되기 전에 해독될 수 있다. 그러나, 일부 해독 프로세스들은 해커에게 전자 장치(100) 내의 메모리 위치 이를테면 CPU(304)의 내부 레지스터 또는 휘발성 메모리(338)로부터 암호화되지 않은 오디오 파일을 다운로드할 기회를 제공할 수 있다. 따라서 해독된 오디오 데이터가 CPU(304)가 액세스할 수 있는 메모리 위치에 나타나지 않는 해독 프로세스를 사용하는 것이 바람직하다. 이를 달성하기 위해, 미국 특허 출원 번호 12060728에 설명된 암호 기술들은 오디오 데이터의 해독이 오디오 데이터를 메모리로부터 타켓 DMA 장치의 버퍼들로 보내는 것과 동시에 발생하도록 한다.
본 발명의 실시예들에서, 위에서 참조된 암호/해독 기술들이 전자 장치(100)에서 사용되어, 저작권 보호된 자료의 보안을 향상시킨다. 예를 들어, 암호화된 오디오 데이터의 해독은 오디오를 서브시스템 인터페이스(320)로 전송하는 프로세스의 일부로서 메인 DMA 제어기(302)에 의해 수행될 수 있다. 이러한 방식으로, 해독된 오디오 데이터가 메인 버스(314) 상에 그리고 오디오 서브시스템(301) 내에 나타나지만, CPU(304)가 액세스를 갖는 메모리 위치에 나타나지 않는다. 본 발명의 실시예들이 디코딩된 오디오 데이터의 오디오 서브시스템(301)으로의 일방 전송만을 허용하도록 구성되기 때문에, CPU(304)는 오디오 서브시스템(301)으로 보내진 오디오로의 액세스를 가지지 않는다. 즉, 오디오 서브시스템(301)은 CPU(304)에게 있어서 압축된 오디오 데이터가 보내져 프로세싱되고 재생될 메인 버스에 결합된 출력 장치로 나타날 것이다. 이 기능은 부분적으로 오디오 DSP(330)에 의해 달성되는데, 이 DSP(330)는 압축된 오디오를 압축해제할 뿐만 아니라, 오디오 데이터를 등화 및 혼합하고, 이를 CODEC(334)로 라우팅하여, CPU(304)가 디코딩된 오디오 데이터를 다루는 것을 수반하는 프로세스들에 관여하지 않도록 한다.
따라서, 본 발명의 실시예들에서 CPU(304)는 오디오 DSP(330)를 포함하는 오디오 서브시스템(301) 내의 자원들로의 제한된 액세스를 갖는다. 이 제한된 액세스는 서브시스템 인터페이스(320)의 설계에 의해 달성된다. 서브시스템 인터페이스(320)는 전자 장치(100)의 작동 동안 CPU(304)가 서브시스템 인터페이스(320)의 호스트 측으로의 액세스만을 갖도록 구성되어, 위에서 설명된 바와 같이, CPU(304)가 오디오 서브시스템(301) 내부의 자원들의 서브세트로만 액세스하도록 한다. 예를 들어, 일 실시예에서, 서브시스템 인터페이스(320)는 입력 버퍼(329) 및 하나 이상의 제어 및/또는 상태 레지스터들을 포함하는 오디오 DSP(330)에 포함된 휘발성 메모리의 일부만으로의 액세스를 허용하도록 구성된다. 따라서, 오디오 서브시스템(301)에 포함된 휘발성 메모리의 대부분은 CPU(304)가 액세스할 수 없다. 따라서, 본 발명의 실시예들은 CPU(304)가 해독된 오디오 데이터로의 액세스를 갖지 않기 때문에 해커가 저작권 보호된 자료를 무단 복제하는 것을 어렵게 한다.
추가적으로, 장치(10) 상에 인증되지 않은 소프트웨어를 로딩하는 해커의 능력을 막기 위에서, 호스트 서브시스템(300)은 메인 버스(300)에 결합된 장치들 각각에 로딩된 소프트웨어의 검사를 주기적으로 수행할 수 있다. 오디오 서브시스템(301)이 메인 버스(300)로의 액세스를 갖지 않기 때문에, 오디오 서브시스템(301) 내의 어떠한 코드도 고려될 필요가 없다. 이는 검사에 필요한 프로세싱 시간을 절약한다.
호스트 서브시스템(300)이 오디오 서브시스템(301)으로의 제한된 액세스를 갖지만, 호스트 CPU(304)가 전자 장치(100)가 최초로 전력이 공급되는 경우 오디오 서브시스템(301)으로의 넓은 액세스를 일시적으로 갖는 것이 또한 필요할 수 있다. 이 일시적인 액세스는 CPU(304)가 오디오 서브시스템(301)에 의해 사용되는 특정 초기화 데이터를 로딩하도록 할 수 있다. 예를 들어, CPU(304)는 전자 장치(100)에 전력이 공급되는 경우 오디오 DSP(330) 상에서 실행되는 스케줄러 소프트웨어를 로딩할 수 있다. 추가적으로, CPU는 또한 전자 장치(100)에 전원이 공급되는 경우 초기화 데이터를 오디오 버스 상의 다른 구성요소들에게 제공할 수 있다. 오디오 DSP(330) 소프트웨어 및 기타 초기화 데이터를 로딩하기 위해, CPU(304)는 짧은 초기화 단계 동안 오디오 DSP(330), 서브시스템 인터페이스(320) 및 전원 공급에 따라 CPU(304)에 의해 서비스될 임의의 기타 구성요소에 포함되는 메모리 주소 공간으로의 일시적으로 넓은 액세스를 갖는다. 그러나, 해독된 오디오의 보안을 유지하기 위해, 서브시스템 인터페이스(320)를 이용한 오디오 서브시스템(301)의 내부 자원들로의 CPU(304)의 액세스는 짧은 초기화 단계 이후에 차후 제한된다.
CPU(304)가 소프트웨어 및 초기화 데이터를 로딩할 수 있도록 하면서 오디오 서브시스템(301)의 보안을 유지하기 위해, 본 발명의 실시예는 서브시스템 인터페이스(320)에 내장되는 보안 메커니즘을 포함한다. 보안 메커니즘은 서브시스템 인터페이스(320)가 두 모드; "불안정 모드" 및 "보안 모드" 중 하나로 동작하도록 한다. "보안 모드"에서, CPU(304)는 서브시스템 인터페이스(320)를 이용하여 오디오 서브시스템(301)의 내부 자원들로의 전체 액세스를 갖는다. "보안 모드"에서 CPU(304)는 서브시스템 인터페이스(320)를 이용하여 오디오 서브시스템(301)의 내부 자원으로의 제한된 액세스를 갖는다. 서브시스템 인터페이스(320)는 전자 장치(100)에 전원이 공급되는 경우 "불안정 모드"로 강제되고, 소프트웨어가 명백히 서브시스템 인터페이스(320)를 "불안정 모드"로부터 "보안 모드"로 스위칭할 수 있으나, (전자 장치(101)에 전원을 중단하였다가 공급하는 것 외에) "불안정 모드"로 돌아올 방법이 없다.
도 6은 본 발명의 실시예에 따라, 서브시스템 인터페이스(320)에 내장되는 보안 메커니즘의 작동을 도시한다. 방법(600)은 전자 장치(100)가 단계(602)에서 전원이 공급되는 경우 시작한다. 전원이 공급되자마자 바로, CPU(304)가 안전하고 오염되지 않은 신뢰 코드를 실행한다. 신뢰 코드의 예로 CPU(304)를 포함하는 동일한 집적 회로 상에 위치하는 리드 온니 메모리(ROM)로부터 로딩된 코드가 있다.
다음으로, 단계(604)에서, 신뢰 CPU 코드가 소프트웨어를 서브시스템 인터페이스(320)를 통해 오디오 DSP(330)의 프로그램 메모리 공간으로 로딩한다. 단계(604) 동안, CPU(304)는 또한 오디오 서브시스템(301)의 다른 구성요소들에 의해 사용되는 임의의 다른 초기화 데이터 또는 소프트웨어를 선택적으로 로딩할 수 있다. 단계(604) 동안, CPU(304)는 오디오 DSP(330) 상에서 이용가능한 실질적으로 모든 메모리 주소 공간, 서브시스템 인터페이스(320) 및 오디오 버스(328)에 부착된 임의의 기타 구성요소로의 무제한 액세스를 가질 수 있다.
다음으로, 단계(606)에서, 모든 초기화 데이터가 로딩된 후, 오디오 서브시스템 소프트웨어가 시작된다. 오디오 서브시스템 소프트웨어가 시작된 후, 초기화 경로가 단계(608)에서 디스에이블된다. 일 실시예에서, 초기화 경로를 디스에이블링하는 것은 서브시스템 인터페이스(320)를 "불안정 모드"로부터 "보안 모드"로 스위칭하는 것을 의미한다. 일 실시예에서, 오디오 DSP(330) 자신이 CPU(304)에 의해 로딩된 소프트웨어에 따라 초기화 경로를 디스에이블한다. 다른 실시예들에서, 초기화 경로는 CPU(304)에 의해 디스에이블된다. 초기화 경로가 디스에이블되면, CPU(304)는 더 이상 오디오 서브시스템(301)의 내부 자원으로의 무제한 액세스를 갖지 않는다. 예를 들어, 초기화 경로가 디스에이블된 후, CPU(304)는 입력 버퍼(329) 및 하나 이상의 제어 및/또는 상태 레지스터들을 포함하는 오디오 DSP(330)에 포함된 휘발성 메모리의 일부에만 액세스할 수 있다. 일단 초기화 경로가 디스에이블되면, CPU(304)가 제한된 메모리 주소로 액세스하는 시도는 단지 오류를 반환한다. 게다가, 일단 초기화 경로가 디스에이블되면, 이는 전자 장치(100)를 다시 껐다 켜서 프로세스(600)를 반복하는 것 외에는 다시 인에이블될 수 없다.
본 발명에 다양한 수정 및 대안적인 형태가 적용될 수 있지만, 본 명세서에서는 도면을 예로 하여 특정 실시예들을 보여주고 자세하게 설명하였다. 그러나, 본 발명은 게시된 특정 형태에 제한되는 것이 아님을 알 수 있다. 대신, 본 발명은 이하의 첨부된 청구항들에 의해 정의되는 발명의 사상 및 범위 내에 들어가는 모든 수정, 균등, 및 대안들을 포괄하는 것이다.

Claims (14)

  1. 핸드헬드 전자 장치로서,
    호스트 서브시스템; 및
    매체 프로세싱 서브시스템
    을 포함하고, 상기 매체 프로세싱 서브시스템은,
    상기 호스트 서브시스템에 결합되고, 호스트 프로세서 및 상기 매체 프로세싱 서브시스템 간에서 매체 데이터를 교환하도록 구성되는 서브시스템 인터페이스; 및
    상기 서브시스템 인터페이스에 결합되고, 상기 서브시스템 인터페이스를 통해 수신되는 상기 매체 데이터를 프로세싱하고 상기 매체 데이터를 입력/출력 장치로 라우팅하도록 구성되는 디지털 신호 프로세서
    를 포함하는, 핸드헬드 전자 장치.
  2. 제1항에 있어서,
    상기 매체 프로세싱 서브시스템은 오디오 데이터를 프로세싱하도록 구성되고 상기 호스트 서브시스템은 비디오 데이터를 프로세싱하도록 구성되는, 핸드헬드 전자 장치.
  3. 제2항에 있어서,
    시간 관련 정보를 상기 호스트 서브시스템 및 상기 매체 프로세싱 서브시스템 양쪽 모두에 제공하도록 구성되는 시간 기록(timekeeping) 인터페이스를 포함하고, 상기 시간 관련 정보는 상기 오디오 데이터를 상기 비디오 데이터와 동기화하는데 사용되는, 핸드헬드 전자 장치.
  4. 제1항에 있어서,
    상기 호스트 서브시스템의 적어도 일부는, 상기 매체 프로세싱 서브시스템이 상기 매체 데이터를 프로세싱하는 동안 저전력 모드로 진입하도록 구성되는, 핸드헬드 전자 장치.
  5. 제1항에 있어서,
    상기 매체 프로세싱 서브시스템은 상기 디지털 신호 프로세서에 결합되는 전화 통신 장치를 포함하고, 상기 디지털 신호 프로세서는 상기 전화 통신 장치 및 상기 입력/출력 장치 간에서 전화 오디오 데이터를 라우팅하도록 구성되는, 핸드헬드 전자 장치.
  6. 제5항에 있어서,
    상기 호스트 서브시스템의 적어도 일부는, 상기 매체 프로세싱 서브시스템이 상기 전화 오디오 데이터를 프로세싱하는 동안 저전력 모드로 진입하도록 구성되는, 핸드헬드 전자 장치.
  7. 제5항에 있어서,
    상기 디지털 신호 프로세서는 전화 오디오를, 상기 서브시스템 인터페이스를 통해 수신된 오디오 샘플들과 혼합(mix)하도록 구성되는, 핸드헬드 전자 장치.
  8. 제1항에 있어서,
    상기 호스트 서브시스템은 서브시스템 인터페이스에 결합된 DMA 제어기를 포함하며, 상기 DMA 제어기는, 상기 매체 데이터를 상기 호스트 프로세서로부터 상기 서브시스템 인터페이스로 라우팅하도록 구성되는, 핸드헬드 전자 장치.
  9. 제8항에 있어서,
    상기 DMA 제어기는 상기 매체 데이터를 해독(decrypt)하도록 구성되는, 핸드헬드 전자 장치.
  10. 제8항에 있어서,
    상기 호스트 서브시스템 중 적어도 일부는, 상기 DMA 제어기로 하여금 DMA 전송을 수행하도록 한 후 저전력 모드로 진입하도록 구성되는, 핸드헬드 전자 장치.
  11. 제1항에 있어서,
    상기 호스트 서브시스템으로부터 상기 매체 프로세싱 서브시스템으로의 신뢰 프로그램 코드(trusted program code)의 송신을 가능하게 하는 초기화 경로를 포함하고, 상기 초기화 경로는 상기 신뢰 프로그램 코드의 송신 후에는 작동되지 않도록 구성되는, 핸드헬드 전자 장치.
  12. 핸드헬드 전자 장치 내에서 오디오 데이터를 프로세싱하는 방법으로서,
    호스트 서브시스템이 이익이 되도록(profitably) 저전력 모드에 진입하고 저전력 모드를 종료할 수 있게 해주기에 충분히 큰 양의 오디오 데이터를 상기 호스트 서브시스템으로부터 오디오 서브시스템 내의 전자 저장소로 송신하는 단계;
    상기 호스트 서브시스템을 상기 저전력 모드로 진입시키는 단계;
    상기 오디오 서브시스템의 상기 전자 저장소에 저장된 상기 오디오 데이터를 프로세싱하는 단계; 및
    프로세싱된 상기 오디오 데이터를 상기 오디오 서브시스템에 결합된 출력 장치로 송신하는 단계
    를 포함하는 핸드헬드 전자 장치 내에서 오디오 데이터를 프로세싱하는 방법.
  13. 제12항에 있어서,
    상기 호스트 서브시스템으로 하여금 상기 저전력 모드를 종료하도록 하는 단계; 및
    상기 호스트 서브시스템이 이익이 되도록 상기 저전력 모드에 진입하고 상기 저전력 모드를 종료할 수 있게 해주기에 충분히 큰 추가적인 양의 오디오 데이터를 상기 호스트 서브시스템으로부터 상기 오디오 서브시스템 내의 상기 전자 저장소로 송신하는 단계
    를 포함하는, 핸드헬드 전자 장치 내에서 오디오 데이터를 프로세싱하는 방법.
  14. 제12항에 있어서,
    상기 호스트 서브시스템으로부터 상기 오디오 서브시스템 내의 상기 전자 저장소로 송신되는 상기 오디오 데이터의 양은 약 10 내지 30초 정도의 오디오 데이터를 제공하는, 핸드헬드 전자 장치 내에서 오디오 데이터를 프로세싱하는 방법.
KR1020117005234A 2008-08-04 2009-07-22 매체 프로세싱 방법 및 장치 KR101208882B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/185,656 US8041848B2 (en) 2008-08-04 2008-08-04 Media processing method and device
US12/185,656 2008-08-04
PCT/US2009/051436 WO2010017034A1 (en) 2008-08-04 2009-07-22 Media processing method and device

Publications (2)

Publication Number Publication Date
KR20110030711A true KR20110030711A (ko) 2011-03-23
KR101208882B1 KR101208882B1 (ko) 2012-12-05

Family

ID=41077803

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117005234A KR101208882B1 (ko) 2008-08-04 2009-07-22 매체 프로세싱 방법 및 장치

Country Status (5)

Country Link
US (4) US8041848B2 (ko)
EP (2) EP2310947B1 (ko)
KR (1) KR101208882B1 (ko)
CN (1) CN102150145B (ko)
WO (1) WO2010017034A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150018618A (ko) * 2012-07-03 2015-02-23 알까뗄 루슨트 디지털 기저대역 신호의 샘플들의 송신 디바이스 및 방법
KR20190090562A (ko) * 2018-01-25 2019-08-02 삼성전자주식회사 보안 기능을 지원하는 저전력 보이스 트리거 시스템을 포함하는 애플리케이션 프로세서, 이를 포함하는 전자 장치 및 그 동작 방법

Families Citing this family (210)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US7778838B2 (en) * 2006-09-29 2010-08-17 Intel Corporation Apparatus, system and method for buffering audio data to allow low power states in a processing system during audio playback
US9591392B2 (en) * 2006-11-06 2017-03-07 Plantronics, Inc. Headset-derived real-time presence and communication systems and methods
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9703784B2 (en) * 2007-12-24 2017-07-11 Sandisk Il Ltd. Mobile device and method for concurrently processing content according to multiple playlists
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8041848B2 (en) 2008-08-04 2011-10-18 Apple Inc. Media processing method and device
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US9959870B2 (en) 2008-12-11 2018-05-01 Apple Inc. Speech recognition involving a mobile device
US8428053B2 (en) 2009-02-26 2013-04-23 Plantronics, Inc. Presence based telephony call signaling
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US20120311585A1 (en) 2011-06-03 2012-12-06 Apple Inc. Organizing task items that represent tasks to perform
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
KR20110110434A (ko) * 2010-04-01 2011-10-07 삼성전자주식회사 저전력 오디오 재생장치 및 방법
US8738824B1 (en) 2010-04-21 2014-05-27 Marvell International Ltd. Low power audio codec
US8452997B2 (en) * 2010-04-22 2013-05-28 Broadcom Corporation Method and system for suspending video processor and saving processor state in SDRAM utilizing a core processor
US8639516B2 (en) 2010-06-04 2014-01-28 Apple Inc. User-specific noise suppression for voice quality improvements
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US20120250877A1 (en) * 2011-03-31 2012-10-04 Taiyi Cheng Method and system for processing audio signals in a central audio hub
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US8694994B1 (en) * 2011-09-07 2014-04-08 Amazon Technologies, Inc. Optimization of packet processing by delaying a processor from entering an idle state
US8914657B2 (en) * 2011-10-18 2014-12-16 Mediatek Inc. Mobile device chip and mobile device controlling method therefor
KR101804799B1 (ko) * 2011-10-25 2017-12-06 삼성전자주식회사 저전력으로 오디오 데이터를 재생하는 장치 및 방법
CN104126159B (zh) * 2011-12-30 2017-12-19 英特尔公司 对音频加速器的轻便电源管理
CN104094616A (zh) * 2012-01-18 2014-10-08 福纳克有限公司 电池供电的无线音频设备以及操作该无线音频设备的方法
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
WO2013147765A1 (en) * 2012-03-28 2013-10-03 Intel Corporation Audio processing during low-power operation
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
KR101951171B1 (ko) 2012-08-09 2019-02-25 삼성전자 주식회사 멀티미디어 프로세싱 시스템 및 그 동작 방법
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US9760150B2 (en) * 2012-11-27 2017-09-12 Nvidia Corporation Low-power states for a computer system with integrated baseband
US20140157025A1 (en) * 2012-12-03 2014-06-05 Radhika Ranjan Soni Static frame display from a memory associated with a processor of a data processing device during low activity thereof
US9208755B2 (en) * 2012-12-03 2015-12-08 Nvidia Corporation Low power application execution on a data processing device having low graphics engine utilization
DE212014000045U1 (de) 2013-02-07 2015-09-24 Apple Inc. Sprach-Trigger für einen digitalen Assistenten
JP6175796B2 (ja) * 2013-02-22 2017-08-09 株式会社バッファロー データ蓄積装置
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
WO2014144949A2 (en) 2013-03-15 2014-09-18 Apple Inc. Training an at least partial voice command system
CN103220567A (zh) * 2013-03-21 2013-07-24 青岛海信信芯科技有限公司 一种电视开机音乐播放的方法,系统及电视机
US8593427B1 (en) 2013-05-10 2013-11-26 Jinrong Yang System and method for managing display power consumption
US9075612B2 (en) 2013-05-10 2015-07-07 Jinrong Yang System and method for managing display power consumption
US9686536B2 (en) * 2013-05-20 2017-06-20 Advanced Micro Devices, Inc. Method and apparatus for aggregation and streaming of monitoring data
US20140355665A1 (en) * 2013-05-31 2014-12-04 Altera Corporation Adaptive Video Reference Frame Compression with Control Elements
US9541984B2 (en) 2013-06-05 2017-01-10 Apple Inc. L2 flush and memory fabric teardown
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
DE112014002747T5 (de) 2013-06-09 2016-03-03 Apple Inc. Vorrichtung, Verfahren und grafische Benutzerschnittstelle zum Ermöglichen einer Konversationspersistenz über zwei oder mehr Instanzen eines digitalen Assistenten
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
CN105265005B (zh) 2013-06-13 2019-09-17 苹果公司 用于由语音命令发起的紧急呼叫的系统和方法
AU2014306221B2 (en) 2013-08-06 2017-04-06 Apple Inc. Auto-activating smart responses based on activities from remote devices
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
WO2015100430A1 (en) 2013-12-24 2015-07-02 Digimarc Corporation Methods and system for cue detection from audio input, low-power data processing and related arrangements
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
EP3149728B1 (en) 2014-05-30 2019-01-16 Apple Inc. Multi-command single utterance input method
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
KR20160090487A (ko) * 2015-01-22 2016-08-01 삼성전자주식회사 오디오 프로세싱 시스템
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
KR102356702B1 (ko) * 2015-11-24 2022-01-27 삼성전자주식회사 호스트 cpu 지원형 오디오 프로세싱 방법 및 이를 수행하는 컴퓨팅 시스템
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
DE102016109892B4 (de) * 2016-05-30 2018-03-01 Infineon Technologies Ag Datenverarbeitungsvorrichtung und Verfahren zum Einsparen von Leistung in einer Datenverarbeitungsvorrichtung
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179588B1 (en) 2016-06-09 2019-02-22 Apple Inc. INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10330932B2 (en) * 2017-07-14 2019-06-25 Realwear, Incorporated Multi-process access to a single-process resource
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
CN107908929B (zh) * 2017-11-24 2020-07-31 腾讯音乐娱乐科技(深圳)有限公司 播放音频数据的方法和装置
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
US11076039B2 (en) 2018-06-03 2021-07-27 Apple Inc. Accelerated task performance
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
EP4010781A1 (en) * 2019-08-09 2022-06-15 Rajasekaran Ramasubramanian Power management and distributed audio processing techniques for playback devices
CN110781108B (zh) * 2019-09-17 2021-05-14 中国人民解放军国防科技大学 一种基于hdd硬盘的数据发送接收方法及装置
WO2021056255A1 (en) 2019-09-25 2021-04-01 Apple Inc. Text detection using global geometry estimators
KR20210132862A (ko) * 2020-04-28 2021-11-05 삼성전자주식회사 클록 제어 방법 및 이를 위한 전자 장치
KR20220145581A (ko) * 2021-04-22 2022-10-31 삼성전자주식회사 오디오 신호를 처리하기 위한 전자 장치 및 그 작동 방법

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3203701B2 (ja) * 1990-11-01 2001-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション コードセグメントのリンク方法とそのシステム及びコードセグメントのダイナミックリンク方法
US5461266A (en) * 1990-11-27 1995-10-24 Hitachi, Ltd. Power consumption control system
US5689534A (en) * 1992-05-12 1997-11-18 Apple Computer, Inc. Audio functional unit and system and method for configuring the same
US5628013A (en) * 1992-09-30 1997-05-06 Apple Computer, Inc. Apparatus and method for allocating processing time in a frame-based computer system
US5384890A (en) * 1992-09-30 1995-01-24 Apple Computer, Inc. Method and apparatus for providing multiple clients simultaneous access to a sound data stream
US5574934A (en) * 1993-11-24 1996-11-12 Intel Corporation Preemptive priority-based transmission of signals using virtual channels
US5546547A (en) * 1994-01-28 1996-08-13 Apple Computer, Inc. Memory bus arbiter for a computer system having a dsp co-processor
JP3197766B2 (ja) 1994-02-17 2001-08-13 三洋電機株式会社 Mpegオーディオデコーダ、mpegビデオデコーダおよびmpegシステムデコーダ
US5442789A (en) * 1994-03-31 1995-08-15 International Business Machines Corporation System and method for efficiently loading and removing selected functions on digital signal processors without interrupting execution of other functions on the digital signal processors
US6343263B1 (en) * 1994-08-02 2002-01-29 Apple Computer, Inc. Real-time signal processing system for serially transmitted data
US5799190A (en) * 1994-08-09 1998-08-25 Apple Computer, Inc. Communications coprocessor for realizing bidirectional isochronous communications link with host computer
US5647008A (en) * 1995-02-22 1997-07-08 Aztech Systems Ltd. Method and apparatus for digital mixing of audio signals in multimedia platforms
US5915131A (en) * 1995-05-05 1999-06-22 Apple Computer, Inc. Method and apparatus for handling I/O requests utilizing separate programming interfaces to access separate I/O services
US5696990A (en) * 1995-05-15 1997-12-09 Nvidia Corporation Method and apparatus for providing improved flow control for input/output operations in a computer system having a FIFO circuit and an overflow storage area
US5982459A (en) * 1995-05-31 1999-11-09 8×8, Inc. Integrated multimedia communications processor and codec
US5737638A (en) * 1995-07-14 1998-04-07 International Business Machines Corporation System for determining plurality of data transformations to be performed upon single set of data during single transfer by examining communication data structure
US5815583A (en) * 1996-06-28 1998-09-29 Intel Corporation Audio serial digital interconnect
US6453409B1 (en) * 1996-11-07 2002-09-17 Yamaha Corporation Digital signal processing system
US6212199B1 (en) * 1997-03-18 2001-04-03 Apple Computer, Inc. Apparatus and method for interpretation and translation of serial digital audio transmission formats
US6072808A (en) 1997-12-23 2000-06-06 Intel Corporation Method of providing and retrieving a data segment
US6134605A (en) * 1998-04-15 2000-10-17 Diamond Multimedia Systems, Inc. Redefinable signal processing subsystem
US6130794A (en) * 1998-06-30 2000-10-10 Lucent Technologies Inc. Statistical monitoring of data channels for enhanced data recovery performance
US6359911B1 (en) * 1998-12-04 2002-03-19 Koninklijke Philips Electronics N.V. (Kpenv) MPEG-2 transport demultiplexor architecture with non-time-critical post-processing of packet information
JP2000299718A (ja) * 1999-04-13 2000-10-24 Matsushita Electric Ind Co Ltd 携帯電話装置およびオーディオ装置
US6624816B1 (en) * 1999-09-10 2003-09-23 Intel Corporation Method and apparatus for scalable image processing
EP1157370B1 (en) * 1999-11-24 2014-09-03 DSP Group Switzerland AG Data processing unit with access to the memory of another data processing unit during standby
US6606388B1 (en) * 2000-02-17 2003-08-12 Arboretum Systems, Inc. Method and system for enhancing audio signals
JP3812274B2 (ja) * 2000-03-17 2006-08-23 株式会社日立製作所 映像アクセス装置及び映像アクセスプログラムを記録した記録媒体
US6535208B1 (en) * 2000-09-05 2003-03-18 Ati International Srl Method and apparatus for locking a plurality of display synchronization signals
US20020108009A1 (en) 2000-12-29 2002-08-08 Michele Borgatti Electronic system having modular expansion function facilities
US7305540B1 (en) * 2001-12-31 2007-12-04 Apple Inc. Method and apparatus for data processing
US7015921B1 (en) * 2001-12-31 2006-03-21 Apple Computer, Inc. Method and apparatus for memory access
US6822654B1 (en) * 2001-12-31 2004-11-23 Apple Computer, Inc. Memory controller chipset
EP1329787B1 (en) * 2002-01-16 2019-08-28 Texas Instruments Incorporated Secure mode indicator for smart phone or PDA
US7155716B2 (en) * 2002-03-08 2006-12-26 Intel Corporation Weighted and prioritized task scheduler
IL148592A0 (en) * 2002-03-10 2002-09-12 Ycd Multimedia Ltd Dynamic normalizing
TW573255B (en) * 2002-03-22 2004-01-21 Via Tech Inc Commonly sharing switching device of CD player, method and application system thereof
US7111089B2 (en) * 2002-12-23 2006-09-19 Motorola, Inc. Programmable scheduler for digital signal processor
US7119808B2 (en) * 2003-07-15 2006-10-10 Alienware Labs Corp. Multiple parallel processor computer graphics system
TWI241828B (en) * 2004-02-18 2005-10-11 Partner Tech Corp Handheld personal data assistant (PDA) for communicating with a mobile in music-playing operation
US7711129B2 (en) * 2004-03-11 2010-05-04 Apple Inc. Method and system for approximating graphic equalizers using dynamic filter order reduction
US7698739B2 (en) * 2004-03-30 2010-04-13 Marvell International Ltd. Updating code with validation
US7457484B2 (en) * 2004-06-23 2008-11-25 Creative Technology Ltd Method and device to process digital media streams
TWM261751U (en) * 2004-07-09 2005-04-11 Uniwill Comp Corp Switching display processing architecture for information device
US7458397B2 (en) * 2004-07-09 2008-12-02 Michael Doyle Modular fluid distribution system
TWI256591B (en) * 2004-08-11 2006-06-11 Benq Corp Method of reducing interrupts
US20060067535A1 (en) * 2004-09-27 2006-03-30 Michael Culbert Method and system for automatically equalizing multiple loudspeakers
US20060067536A1 (en) * 2004-09-27 2006-03-30 Michael Culbert Method and system for time synchronizing multiple loudspeakers
US7536565B2 (en) * 2005-01-07 2009-05-19 Apple Inc. Techniques for improved playlist processing on media devices
US7664558B2 (en) * 2005-04-01 2010-02-16 Apple Inc. Efficient techniques for modifying audio playback rates
US8300841B2 (en) * 2005-06-03 2012-10-30 Apple Inc. Techniques for presenting sound effects on a portable media player
US7500022B2 (en) * 2005-06-28 2009-03-03 Mirco-Star Int'l Co., Ltd. Computer system with built-in multimedia system where multimedia system is operable independent of the operating system of the computer system and where computer system is capable of outputting video
US7529948B2 (en) * 2005-08-25 2009-05-05 Apple Inc. Methods and apparatuses for dynamic power estimation
US20070083467A1 (en) * 2005-10-10 2007-04-12 Apple Computer, Inc. Partial encryption techniques for media data
EP1785811B1 (en) 2005-11-14 2018-12-05 Texas Instruments Incorporated Memory information transfer power management
GB2444191B (en) 2005-11-26 2008-07-16 Wolfson Microelectronics Plc Audio device
GB2432758B (en) * 2005-11-26 2008-09-10 Wolfson Ltd Auto device and method
DE602006006346D1 (de) * 2005-12-16 2009-05-28 Dolby Sweden Ab Vorrichtung zum erzeugen und interpretieren eines datenstroms mit einer reihe von segmenten unter verwendung von daten in nachfolgenden datenrahmen
US7673238B2 (en) * 2006-01-05 2010-03-02 Apple Inc. Portable media device with video acceleration capabilities
JP2007213772A (ja) * 2006-01-11 2007-08-23 Sony Corp 記録転送プログラム、記録転送装置及び記録転送方法
WO2007086042A2 (en) * 2006-01-25 2007-08-02 Nice Systems Ltd. Method and apparatus for segmentation of audio interactions
TWI317468B (en) * 2006-02-20 2009-11-21 Ite Tech Inc Method for controlling power consumption and multi-processor system using the same
US8032672B2 (en) * 2006-04-14 2011-10-04 Apple Inc. Increased speed of processing of audio samples received over a serial communications link by use of channel map and steering table
US7548937B2 (en) * 2006-05-04 2009-06-16 International Business Machines Corporation System and method for scalable processing of multi-way data stream correlations
US8681159B2 (en) * 2006-08-04 2014-03-25 Apple Inc. Method and apparatus for switching between graphics sources
US8036766B2 (en) * 2006-09-11 2011-10-11 Apple Inc. Intelligent audio mixing among media playback and at least one other non-playback application
JP2008097430A (ja) * 2006-10-13 2008-04-24 Sanyo Electric Co Ltd ストリームデータ再生システム
US7622950B2 (en) * 2007-01-03 2009-11-24 Apple Inc. GPIO mux/dynamic port configuration
US8041438B2 (en) 2007-06-28 2011-10-18 Apple Inc. Data-driven media management within an electronic device
US9794605B2 (en) 2007-06-28 2017-10-17 Apple Inc. Using time-stamped event entries to facilitate synchronizing data streams
US7861008B2 (en) * 2007-06-28 2010-12-28 Apple Inc. Media management and routing within an electronic device
US9632561B2 (en) 2007-06-28 2017-04-25 Apple Inc. Power-gating media decoders to reduce power consumption
US8683197B2 (en) 2007-09-04 2014-03-25 Apple Inc. Method and apparatus for providing seamless resumption of video playback
US20090079746A1 (en) * 2007-09-20 2009-03-26 Apple Inc. Switching between graphics sources to facilitate power management and/or security
US8069051B2 (en) * 2007-09-25 2011-11-29 Apple Inc. Zero-gap playback using predictive mixing
US7984317B2 (en) 2008-03-24 2011-07-19 Apple Inc. Hardware-based power management of functional blocks
US9032113B2 (en) 2008-03-27 2015-05-12 Apple Inc. Clock control for DMA busses
US20090248910A1 (en) 2008-04-01 2009-10-01 Apple Inc. Central dma with arbitrary processing functions
US8041848B2 (en) 2008-08-04 2011-10-18 Apple Inc. Media processing method and device
US8380959B2 (en) 2008-09-05 2013-02-19 Apple Inc. Memory management system and method
US20100063825A1 (en) 2008-09-05 2010-03-11 Apple Inc. Systems and Methods for Memory Management and Crossfading in an Electronic Device
US8610830B2 (en) 2008-09-11 2013-12-17 Apple Inc. Video rotation method and device
US8099528B2 (en) 2008-09-30 2012-01-17 Apple Inc. Data filtering using central DMA mechanism
US8553504B2 (en) 2008-12-08 2013-10-08 Apple Inc. Crossfading of audio signals
US8165321B2 (en) 2009-03-10 2012-04-24 Apple Inc. Intelligent clip mixing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150018618A (ko) * 2012-07-03 2015-02-23 알까뗄 루슨트 디지털 기저대역 신호의 샘플들의 송신 디바이스 및 방법
KR20190090562A (ko) * 2018-01-25 2019-08-02 삼성전자주식회사 보안 기능을 지원하는 저전력 보이스 트리거 시스템을 포함하는 애플리케이션 프로세서, 이를 포함하는 전자 장치 및 그 동작 방법

Also Published As

Publication number Publication date
US8713214B2 (en) 2014-04-29
CN102150145A (zh) 2011-08-10
CN102150145B (zh) 2014-10-22
EP2310947A1 (en) 2011-04-20
EP2750044B1 (en) 2015-10-21
US8359410B2 (en) 2013-01-22
USRE48323E1 (en) 2020-11-24
US20100030928A1 (en) 2010-02-04
EP2310947B1 (en) 2014-04-23
US20110314185A1 (en) 2011-12-22
US8041848B2 (en) 2011-10-18
US20130131852A1 (en) 2013-05-23
EP2750044A1 (en) 2014-07-02
WO2010017034A1 (en) 2010-02-11
KR101208882B1 (ko) 2012-12-05

Similar Documents

Publication Publication Date Title
USRE48323E1 (en) Media processing method and device
US9727505B2 (en) Clock control for DMA busses
US20120209413A1 (en) Background Audio on Mobile Devices
US10334118B2 (en) Method and system for providing video multimedia ringtone
US20090248910A1 (en) Central dma with arbitrary processing functions
WO2007064369A1 (en) Method and apparatus for the seamless delivery of content
JP2007189443A (ja) 携帯端末、暗号化コンテンツ再生方法及びそれに用いられる平文データ生成方法
JP2009225177A (ja) コンテンツ再生装置、コンテンツ再生方法、プログラム、および記録媒体
US20080294802A1 (en) Stream processing device and storage device
JP2006311595A (ja) 携帯電話端末装置、携帯電話端末装置におけるコンテンツ再生中断再開方法、及びコンテンツ配信局
KR100747444B1 (ko) 이동통신단말기의 동영상 전송 방법
KR20110092713A (ko) 실시간 멀티미디어 서비스 제공 방법 및 시스템
JP3845418B2 (ja) タイムシフト視聴リレー方法、タイムシフト視聴リレーシステム
KR100646837B1 (ko) 컨텐츠 재생 기능을 구비한 단말 장치 및 상기 단말 장치의동작 방법
KR100721352B1 (ko) 멀티태스킹 환경에서 재생중인 멀티미디어의 끊김 방지를위한 휴대용 단말기 및 방법
JP2007221488A (ja) 携帯端末装置とその音声出力方法
JP4789246B2 (ja) コンテンツ利用制御方法及びその装置
JP2007329692A (ja) 携帯端末装置及びプログラム
JP2007200509A (ja) 電子機器
JP2008035352A (ja) 携帯型電子機器、および、プログラム
KR20090001518A (ko) Drm 컨텐츠 재생 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151030

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171027

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20191029

Year of fee payment: 8