CN103210378A - 使用高速缓存图像进行低电力音频解码和回放 - Google Patents

使用高速缓存图像进行低电力音频解码和回放 Download PDF

Info

Publication number
CN103210378A
CN103210378A CN2011800537317A CN201180053731A CN103210378A CN 103210378 A CN103210378 A CN 103210378A CN 2011800537317 A CN2011800537317 A CN 2011800537317A CN 201180053731 A CN201180053731 A CN 201180053731A CN 103210378 A CN103210378 A CN 103210378A
Authority
CN
China
Prior art keywords
memory
buffer
audio decoder
audio
processor
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN2011800537317A
Other languages
English (en)
Other versions
CN103210378B (zh
Inventor
迈克尔·沃伦·卡斯特洛伊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN103210378A publication Critical patent/CN103210378A/zh
Application granted granted Critical
Publication of CN103210378B publication Critical patent/CN103210378B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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

Abstract

一种特定方法包含将一个或一个以上存储器图像加载到多路高速缓冲存储器中。所述存储器图像与音频解码器相关联,且所述多路高速缓冲存储器可由处理器存取。所述存储器图像中的每一者的大小被设定成不超过所述多路高速缓冲存储器的页大小。

Description

使用高速缓存图像进行低电力音频解码和回放
优先权的主张
本申请案主张2010年10月15日申请的第61/393,495号美国临时专利申请案的优先权,所述临时专利申请案的内容以全文引用的方式明确地并入本文中。
技术领域
本发明大体上涉及音频解码和回放。
背景技术
技术的进步已产生更小且更强大的计算装置。举例来说,当前存在多种便携式个人计算装置,包含无线计算装置,例如体积小、重量轻且便于用户携带的便携式无线电话、个人数字助理(PDA)和寻呼装置。更具体来说,例如蜂窝式电话和因特网协议(IP)电话的便携式无线电话可经由无线网络传送话音和数据包。此外,许多此类无线电话包含并入其中的其它类型的装置。举例来说,无线电话还可包含数字静态相机、数字视频相机、数字记录器和音频文件播放器。
例如无线电话等计算装置可具有解码和播放多种音频流的能力。在某些情形中,这可包含以并行方式解码和播放不同种类的音频流。每当正处理的一种类型或数目的音频流改变时,计算装置可扩展电力资源(例如,电池寿命)以重新配置计算装置处的音频信号处理。
发明内容
在电子装置处解码和回放音频流可涉及使用处理器,例如音频数字信号处理器(DSP)。为了加快音频DSP处的操作,可将音频DSP耦合到高速缓冲存储器。然而,高速缓冲存储器可能太小而不能容纳音频解码和回放过程的所有所需数据、指令和动态存储器分配。此外,即使高速缓冲存储器大到足以容纳所有此信息,所述信息也可能不对准以便恰当地配合到高速缓冲存储器中。因此,在音频解码和回放期间可能发生高速缓冲存储器未中。举例来说,当从一个音频解码器切换到另一音频解码器时,可能发生高速缓冲存储器未中。由于高速缓冲存储器未中可导致将新数据加载到高速缓冲存储器中,因此高速缓冲存储器未中可增加音频DSP处的电力使用(例如,归因于从其它存储器检索数据和将数据写入到高速缓冲存储器的电力使用)。另外,一些系统可将内部存储器配置为高速缓冲存储器,或将高速缓冲存储器转换为紧密耦合存储器(TCM)。举例来说,当并行处理多个音频流时或当从并行处理转变为单一处理时,可发生此配置和转换。这些操作可导致音频回放期间不合需要的可听中断(例如,“爆音”噪声)。因此,减少或消除音频解码和回放期间的高速缓冲存储器未中和存储器转换可降低电子装置处的电力消耗,且提供较愉悦的用户体验。
本发明描述用以使用经高速缓存图像(例如,存储器图像)来执行低电力解码和回放的系统和方法。在一种配置中,处理器具有对多路(例如,4路)高速缓冲存储器的存取权。可将来自其它较高级存储器(例如,RAM)的数据加载到所述多路高速缓冲存储器中。当检测到低电力解码和回放情形时,可将一个或一个以上存储器图像从RAM加载到多路高速缓冲存储器。每一存储器图像在RAM中被设定大小并对准,使得当加载到多路高速缓冲存储器中时,存储器图像配合在单个高速缓存页内。所加载的存储器图像可包含特定音频解码器专有的数据、指令和动态存储器分配区域。在存储器图像的加载期间,尽管音频回放可产生一些高速缓冲存储器未中,但音频回放可不停止且不产生可听人为噪声。在将存储器图像加载到高速缓冲存储器中后,可即刻在多路高速缓冲存储器处无高速缓冲存储器未中且无对RAM的进一步存取的情况下执行音频流的解码和回放,从而节约电力。
本发明还描述可结合此低电力解码和回放情形使用的动态存储器管理系统和方法。举例来说,加载到多路高速缓冲存储器以实现低电力解码和回放的存储器图像中的一者可为使用本文所揭示的动态存储器管理技术来管理的动态存储器分配区。管理动态存储器分配区域可包含将所分配的区分为预定大小的预定缓冲器,以及使用位掩码来指示特定大小的缓冲器是否可用。
在特定实施例中,一种方法包含将与音频解码器相关联的一个或一个以上存储器图像加载到多路高速缓冲存储器。多路高速缓冲存储器可由所述处理器存取。所述一个或一个以上图像中的每一者的大小被设定成不超过多路高速缓冲存储器的页大小。
在另一特定实施例中,电子装置包含处理器以及所述处理器可存取的多路高速缓冲存储器。所述处理器经配置以将与音频解码器相关联的一个或一个以上存储器图像加载到多路高速缓冲存储器中。所述一个或一个以上存储器图像中的每一者的大小被设定成不超过多路高速缓冲存储器的页大小。
在另一特定实施例中,一种方法包含基于位掩码确定至少一个缓冲器是否可用于满足所请求的缓冲器大小。位掩码的第一位指示具有第一缓冲器大小的缓冲器是否可用。位掩码的第二位指示具有第二缓冲器大小的缓冲器是否可用。
由所揭示实施例中的至少一者提供的特定优点包含在具有减少的电力使用的情况下解码和回放一个或一个以上音频流的能力。
在检视整个申请案后,将明白本发明的其它方面、优点和特征,申请案包含以下部分:附图说明、具体实施方式以及权利要求书。
附图说明
图1是说明用以使用高速缓存图像来执行低电力音频解码和回放的系统的特定实施例的框图;
图2是说明用以使用高速缓存图像来执行低电力音频解码和回放的系统的另一特定实施例的框图;
图3是说明用以使用高速缓存图像来执行低电力音频解码和回放的系统的另一特定实施例的框图;
图4是说明用以使用高速缓存图像来执行低电力音频解码和回放的系统的另一特定实施例的框图;
图5是说明用以使用高速缓存图像来执行低电力音频解码和回放的系统的另一特定实施例的图;
图6是说明可在图1到5的系统处使用的动态存储器管理的特定实施例的图;
图7是说明使用高速缓存图像来执行低电力音频解码和回放的方法的特定实施例的流程图;
图8是说明使用高速缓存图像的低电力音频解码和回放期间的动态存储器管理方法的特定实施例的流程图;以及
图9是说明能够使用高速缓存图像来执行低电力音频解码和回放的电子装置的特定实施例的图。
具体实施方式
图1是说明用以使用高速缓存图像来执行低电力音频解码和回放的系统100的特定实施例的框图。所述系统包含处理器110和存储器140。处理器110可包含处理器核120和多路高速缓冲存储器130。在处理器110处的操作(例如,基于处理器核120的操作)期间,可将数据从存储器140加载到多路高速缓冲存储器130。举例来说,多路高速缓冲存储器120可存储来自存储器140的由处理器110最近使用或频繁使用的部分的数据。
处理器110可为通用处理器或数字信号处理器(DSP)。在特定实施例中,处理器110为音频DSP,且处理器核120包含一个或一个以上音频解码块(例如,说明性音频解码块122)。音频解码块122可包含可操作以解码特定类型的音频流的硬件电路,且/或可执行可操作以解码特定类型的音频流的软件。举例来说,音频解码块122可包含以下各项的实施方案:高级音频译码(AAC)型音频解码器(例如AAC+)、运动图片专家组音频层3(MP3)型音频解码器、语音音频解码器、脉码调制(PCM)音频解码器、其它类型的音频解码器,或其任何组合。
多路高速缓冲存储器130可包含多个高速缓冲存储器路(例如,“通0”、“路1”、…“路N-1”,如图1中所说明)。举例来说,多路高速缓冲存储器130可为4路高速缓冲存储器,其包含四个高速缓冲存储器路,其中4路高速缓冲存储器的每一高速缓冲存储器线包含四个数据元素,其各自与不同标签相关联。或者,多路高速缓冲存储器130可包含多于四个或少于四个高速缓冲存储器路。在特定实施例中,可将多路高速缓冲存储器130划分为若干页(例如,每一高速缓冲存储器路可对应于一页),且多路高速缓冲存储器130可操作以根据存储器140的页对准边界来存储来自存储器140的数据。举例来说,多路高速缓冲存储器130可为256千字节(kb)4路高速缓冲存储器,其可存储来自存储器140的多达四个64kb页。
存储器140可为比多路高速缓冲存储器130高级的存储器。举例来说,存储器140可为可由处理器110存取的随机存取存储器(RAM)。当与多路高速缓冲存储器130比较时,存储器140可以增加的等待时间提供比多路高速缓冲存储器130多的存储空间。另外,处理器110使用存储器140可涉及与多路高速缓冲存储器130的使用相比额外的电力。举例来说,存储器140的使用可涉及为处理器110外部的一个或一个以上数据总线供电。
在特定实施例中,存储器140将数据存储在具有大体上等于多路高速缓冲存储器130的页大小的页大小的页中。举例来说,存储器140和多路高速缓冲存储器130两者均可具有64kb的页大小。当存储器140和多路高速缓冲存储器130具有相等页大小时,可将经对准以便存储在存储器140的单个页内的存储器图像(例如,说明性存储器图像142、144和146)加载到多路高速缓冲存储器130的单个页中。举例来说,可将存储器图像142、144和146中的每一者加载到多路高速缓冲存储器130的单个页中,如图1中所说明。在特定实施例中,存储器图像142、144和146与特定音频解码器相关联。将存储器图像142、144和146加载到多路高速缓冲存储器130中可在不导致多路高速缓冲存储器130处的任何高速缓冲存储器未中且不存取RAM140的情况下启用音频解码。存储器140还可存储与其它音频解码器和应用程序相关联的指令和数据148、149。
在操作期间,可响应于由处理器核120的音频解码块122发出的存储器存取请求(例如,读取和写入请求)而将数据加载到多路高速缓冲存储器130中。当存取请求对应于未在多路高速缓冲存储器130中高速缓存的存储器地址时,高速缓冲存储器未中可发生。响应于高速缓冲存储器未中,可将页的全部或包含存储器地址的部分从存储器140加载到多路高速缓冲存储器130中。或者,如果存取请求对应于在多路高速缓冲存储器130中高速缓存的存取请求,那么可在不发生高速缓冲存储器未中的情况下提供存取请求。
当正在系统100处解码和回放的每一音频流为同一类型(例如,仅正在解码和回放MP3音频流)时,系统100可转变为低电力解码和回放模式。在低电力模式下,可将音频解码指令和数据(例如,存储在存储器图像142、144和146处的MP3解码器指令和数据)从存储器140加载到多路高速缓冲存储器130,使得与处理音频流相关联的所有存储器请求均对应于多路高速缓冲存储器130处的高速缓存存储器图像,且对音频流的处理不导致高速缓冲存储器未中。
将了解,图1的系统100可实现音频流的低电力解码和回放。举例来说,图1的系统100可将存储器图像142、144和146加载到多路高速缓冲存储器130以实现音频解码而不导致高速缓冲存储器未中,从而降低系统100的总体电力消耗。因此,通过将存储器图像142、144和146设定大小和对准以对应于单个高速缓冲存储器页,应用程序编程者和开发者可实现图1的系统100处的低电力解码和回放。另外,可实现低电力回放,而不将多路高速缓冲存储器130转换为可导致回放期间的可听效应的紧密耦合存储器(TCM)配置。此外,基于多路高速缓冲存储器130的大小,可将低电力解码扩展到不同流类型的并行流。举例来说,多路高速缓冲存储器可具有足以容纳用于MP3和AAC+两者的必要存储器图像的大小,从而实现对低电力并行MP3与AAC+解码和回放情形的支持。低电力解码和回放还可扩展到非音频处理应用,例如超声、图形和视频。
图2是说明用以使用高速缓存图像来执行低电力音频解码和回放的系统200的另一特定实施例的框图。系统200包含4路高速缓冲存储器210和RAM220。明确地说,图2中所说明的实施例描绘从并行解码和回放情形到低电力解码和回放情形的第一转变230,以及从低电力解码和回放情形到并行解码和回放情形的第二转变231。
RAM220可存储与多个音频解码器相关联的数据。举例来说,RAM220可存储解码图像(例如,解码程序指令),以及每一解码器的动态缓冲器分配区。RAM220还可存储多个解码器共用的一个或一个以上存储器图像,例如后处理图像。或者,针对每一类型的音频流可存在不同后处理图像。在图2中所说明的特定实施例中,RAM220包含两个AAC+解码图像211到212、一MP3解码图像213、一PCM解码图像216、一适用于所有音频流的后处理图像214、一AAC+动态缓冲器分配区217、一MP3动态缓冲器分配区215以及一PCM动态缓冲器分配区218。应注意,存储器图像211到218可用于低电力模式以及非低电力模式两者下的音频解码和回放。针对低电力和非低电力模式使用相同存储器图像的能力可通过消除对只可在低电力模式下使用的专用存储器图像的需求来节约RAM220中的空间。还应注意,尽管存储器图像211到218经设定大小和对准以便加载到4路高速缓冲存储器210的单个页中,但用于与低电力解码不兼容的音频解码器的存储器图像可不如此设定大小和对准。
在初始配置中,4路高速缓冲存储器210可在具有不同流类型的并行流的解码期间使用。举例来说,可在并行解码一个或一个以上AAC+流和一个或一个以上MP3流时使用4路高速缓冲存储器210,如图2的上部部分中所说明。为了说明,4路高速缓冲存储器210可存储局部数据201,局部数据201包含来自在MP3和AAC+音频的并行处理期间使用的多达六个存储器图像的部分。局部数据201可包含存储器图像211到215以及217中的一者或一者以上的最近被存取部分。来自PCM解码图像216或PCM动态缓冲器分配区218的数据可不存在于4路高速缓冲存储器210中,因为没有PCM音频正被处理。高速缓冲存储器未中可在此并行处理期间发生。举例来说,AAC+流处理可包含对四个存储器图像(AAC+解码图像211到212、AAC+动态缓冲器分配区217以及后处理图像214)的存储器存取请求,且MP3流处理可包含对三个存储器图像(MP3解码图像213、MP3动态缓冲器分配区215以及后处理图像214)的存储器存取请求。由于4路高速缓冲存储器210无法整体容纳所有六个存储器图像,因此AAC+和MP3流的并行处理可导致系统200处的高速缓冲存储器未中。
在操作期间,在AAC+流终止后,系统200可即刻经历向低电力配置的第一转变230,如图2的下部部分中所说明。举例来说,在低电力配置中,MP3解码图像213、MP3动态缓冲器分配区215和后处理图像214可共同存在于4路高速缓冲存储器210中。当图像213、214和215全部三者均在4路高速缓冲存储器210处高速缓存时,MP3解码和回放可在无高速缓冲存储器未中的情况下发生,从而实现MP3流的低电力处理。另外,可在MP3流中无可听中断且无来自系统200外部的任何处理器(例如,应用处理器)的干预的情况下执行低电力处理。
在特定实施例中,向低电力配置的第一转变230致使起始将存储器图像加载到4路高速缓冲存储器210中的过程。举例来说,第一转变230可致使起始可操作以将来自特定存储器页(即,特定存储器图像)的数据填装到特定高速缓冲存储器页的高速缓冲存储器线中的系统200的后台线程240。后台线程240可由处理器响应于检测到音频解码过程的开始或停止(例如,音频流的开始或停止)而起始和执行。
当使用后台线程240来将存储器图像填装到4路高速缓冲存储器210中时,在低电力解码和回放期间产生的高速缓冲存储器未中的数目可由曲线图290的第一曲线298表示。如第一曲线298所说明,当正将存储器图像填装到4路高速缓冲存储器210中时,高速缓冲存储器未中的数目可在较短时间周期内减少,且接着一旦存储器图像完全在4路高速缓冲存储器210处高速缓存,所述数目就变为零。当不使用后台线程240时的高速缓冲存储器未中的发生可由第二曲线299表示。如第二曲线299所说明,当不使用后台线程240时,系统200可能花较长时间来达到零高速缓冲存储器未中,这可涉及系统200处的较大电力消耗。
替代地或另外,系统200可经历从低电力MP3处理到并行AAC+与MP3处理的第二转变231。可在无可听中断的情况下进行第二转变231。举例来说,当MP3解码器继续解码MP3流时,可起始AAC+解码器。可存取用于AAC+解码器的代码、数据和动态存储器分配(例如,由存储器图像211、212和217表示)的部分,且在4路高速缓冲存储器210处高速缓存。在并行处理期间,4路高速缓冲存储器210可存储局部数据201,其中局部数据201可表示MP3存储器图像213、215、AAC+存储器图像211、212、217以及后处理图像214的最近存取的部分。尽管并行处理的MP3和AAC+音频可导致高速缓冲存储器未中,但MP3存储器图像213、215以及AAC+存储器图像211、212、217两者与4路高速缓冲存储器210的页大小对准的事实可提供系统200处的改进的高速缓冲存储器效率。
图3是说明用以使用高速缓存图像来执行低电力音频解码和回放的系统300的另一特定实施例的框图。明确地说,图3中所说明的实施例描绘从第一低电力解码和回放情形向第二低电力解码和回放情形的转变330。
在初始配置中,可在低电力模式下对一个或一个以上MP3流的处理期间使用4路高速缓冲存储器210,如图3的上部部分中所说明。举例来说,可实现MP3流的低电力处理,如参考图2所描述和说明。
在操作期间,所述一个或一个以上MP3流可终止,且一个或一个以上PCM流可开始。作为响应,系统300可从低电力MP3处理模式转变(330)到低电力PCM处理模式,如图3的下部部分中所说明。举例来说,后处理图像214可保持在4路高速缓冲存储器210中,而通过后台线程240将PCM动态缓冲器分配区218和PCM解码图像216填装到4路高速缓冲存储器210中。一旦图像218、216和214所有三者均在4路高速缓冲存储器210处高速缓存,PCM解码和回放就可在无高速缓冲存储器未中的情况下发生,从而实现对PCM流的低电力处理。另外,可在MP3流或PCM流中无可听中断(例如,“爆音”噪声)的情况下执行低电力处理。
图4是说明用以使用高速缓存图像来执行低电力音频解码和回放的系统400的另一特定实施例的框图。系统400包含以通信方式耦合到RAM420的应用处理器410和DSP430。DSP430还耦合到4路高速缓冲存储器210。在说明性实施例中,DSP430为图1的处理器110。在替代实施例中,4路高速缓冲存储器210可包含在DSP210内。
应用处理器410可将未经处理的音频位流提供给DSP430。举例来说,应用处理器410可将未经处理的位流放在RAM420中,且可向DSP430通知未经处理的位流。作为响应,DSP430可从RAM420检索未经处理的位流。
在特定实施例中,DSP430包含或耦合到低电力存储器(LPM)440。举例来说,LPM440可包含位流缓冲器442、DSP内核代码和数据444,以及输出端口(例如,音频前端端口)代码和数据446。DSP内核代码和数据444以及输出端口代码和数据446可包含多个音频解码器共用的程序指令。在特定实施例中,LPM440充当对4路高速缓冲存储器210的补充。就是说,低电力解码和回放可涉及4路高速缓冲存储器210和LPM440的使用,但不涉及RAM420的使用。DSP430可以突发方式从RAM420检索未经处理的位流(例如,固定大小或可变大小部分的周期性检索),且可将未经处理的位流存储在位流缓冲器442处。
DSP430还可包含一个或一个以上解码器、后处理电路、混合/路由矩阵、共用处理电路和输出端口。每一解码器(例如,说明性解码器452、454和456)可操作以从位流缓冲器442接收数据,解码所接收数据以产生经解码数据,并将经解码的数据发射到后处理电路(例如,说明性后处理电路462、464和466)。每一后处理电路可将一个或一个以上后处理操作应用于经解码数据以产生经后处理的数据,且将经后处理的数据发射到混合和路由矩阵470。在特定实施例中,后处理操作专用于所述类型的解码器和音频流。举例来说,MP3后处理操作可与PCM后处理操作不同。或者,后处理操作可包含多种类型的解码器和音频流共用的操作。
矩阵470可将经后处理的数据路由到共用处理电路(例如,说明性共用处理电路482、484和486)。共用处理电路可将一个或一个以上共用处理操作应用于经后处理的数据,以产生准备好输出的经处理数据。共用处理操作可为不管正处理的位流的类型而应用的解码器不可知操作。经处理的数据可经由输出端口(例如,说明性输出端口492、494和496)输出。在说明性实施例中,每一输出端口对应于系统400的不同输出。举例来说,第一输出端口492可对应于HDMI输出,且第二输出端口494可对应于耳机输出,如图4中所说明。
参考示范性使用情况(用户正经由移动电话的耳机输出收听MP3歌曲)描述系统400处的操作。在某些情形中(例如,如果无其它音频流或其它类型的音频流正被解码),那么此使用情况可表示低电力音频解码和回放使用情况。应用处理器410可将对应于所述MP3歌曲(或其一部分)的位流放在RAM420中,且可向DSP430通知所述位流。作为响应,DSP430可将位流从RAM420复制到LPM440的位流缓冲器442。
接着可解码、后处理、混合、共同处理MP3位流,并经由耳机输出端口494输出,从而使用户能够收听所述MP3歌曲。在这些操作期间,可使用LPM440以及4路高速缓冲存储器210处的存储器图像213、214和215来服务于对应于MP3处理的所有存储器存取。举例来说,存储器图像213、214和215可在MP3处理开始时己由后台线程(例如,图2的后台线程240)加载到4路高速缓冲存储器210。
将了解,通过使用4路高速缓冲存储器210和LPM440而不使用RAM420,从位流缓冲器442到输出端口的处理路径可表示低电力解码和回放使用情况。举例来说,从位流缓冲器442到耳机输出端口494的路径(经由图4中的阴影表示)可表示与解码和回放MP3歌曲相关联的低电力使用情况。
在特定实施例中,低电力使用情况可在从并行音频使用情况(例如,如参看图2所说明)的转变之后发生。举例来说,当音频解码器454解码MP3歌曲时,音频解码器452可正在解码由电话呼叫产生的语音音频流。当电话呼叫结束时,可检测到语音音频流的终止,且音频解码器452可变为不活动。然而,由于MP3歌曲继续播放,音频解码器454可继续解码MP3歌曲。可在无语音音频流或MP3音频流中的可听中断且无来自应用处理器410的干预的情况下,将尚未在4路高速缓冲存储器210中的存储器图像213、214和215中的任一者加载到4路高速缓冲存储器210。
在另一特定实施例中,低电力使用情况可在从另一低电力使用情况(例如,如参看图3所说明)的转变之后发生。举例来说,当音频解码器454不活动时(例如,由于用户不在收听MP3歌曲),音频解码器452可正在解码(无高速缓冲存储器未中)由电话呼叫产生的语音音频流。当电话呼叫结束时,可检测到语音音频流的终止。另外,用户可输入命令以开始MP3歌曲的回放,从而致使MP3流的起始。作为响应,可将存储器图像213、214和215加载到4路高速缓冲存储器210,以在语音音频流或MP3音频流中无可听中断且无来自应用处理器410的干预的情况下,实现对MP3歌曲的低电力处理。
图5是说明用以使用高速缓存图像来执行低电力音频解码和回放的系统500的另一特定实施例的图。系统500包含应用处理器502、存储器504、资源管理器506以及低电力音频子系统(LPA-SS)520,其经由系统构造510彼此通信耦合。在说明性实施例中,应用处理器502为图4的应用处理器410,且存储器504为图1的存储器140、图2的存储器220,或图4的RAM420。在特定实施例中,存储器504为32位双数据速率(DDR)同步动态随机存取存储器(SDRAM)。
LPA-SS520可包含可操作以在LPA-SS520的各种组件(例如AHB主桥接器521、AHB从属桥接器522、DMA控制器540、128kb LPM550以及耦合到256kb多路L2高速缓冲存储器570的音频DSP560)之间传送数据的高级高性能总线(AHB)530。在说明性实施例中,LPM550为图4的LPM440,且高速缓冲存储器570为图1的多路高速缓冲存储器130或图2的4路高速缓冲存储器210。音频DSP560可接收来自资源管理器506的音频DSP中断。举例来说,音频DSP中断可由应用处理器502、音频输入或输出装置或由某一其它中断源产生。
在操作中,应用处理器502可将音频位流(例如,MP3歌曲)放在存储器504中。应用处理器502还可向音频DSP560通知所述位流(例如,经由资源管理器506发出的音频DSP中断)。作为响应,DMA控制器540可将位流从存储器504加载到LPM550。或者,DMA控制器540可从存储器504周期性地检索位流突发,而不是依靠基于中断的机制。音频DSP560可处理LPM550中的位流以产生输出音频。当LPA-SS520处于低电力使用情况中时,音频DSP560所产生的所有存储器请求均可由LPM550或高速缓冲存储器570服务(例如,使用加载在高速缓冲存储器570处的存储器图像)。将了解,在低电力使用情况期间,可减少施加到应用处理器502、存储器504、资源管理器506和系统构造510的电力,从而保存系统500处的电力。举例来说,可将应用处理器502、存储器504、资源管理器506和系统构造510中的一者或一者以上置于低电力或休眠模式中,或可使其断电。
处理音频流可涉及使用动态分配的缓冲器。举例来说,如图2到4中所说明,可在低电力解码和回放期间,在多路高速缓冲存储器中高速缓存一个或一个以上动态存储器分配区。在特定实施例中,动态存储器分配区表示根据图6所说明且大体上标示为600的动态存储器管理技术来管理的动态存储器堆。技术600可在低电力使用情况期间以及非低电力使用情况期间使用,以实现动态缓冲器的恒定时间(即O(1))分配和解除分配。
将技术600说明为应用于低电力音频解码和回放使用情况,其中存储器的区610将被分配。所分配的区610可被对准且设定大小以对应于多路高速缓冲存储器的单个页。举例来说,所分配的区可为64kb,且可对准,因此其可被加载到256kb4路高速缓冲存储器的单个64kb页中。接着可将所分配的区610分割为多个预定缓冲器。举例来说,可将所分配的区610分割为32字节缓冲器612、128字节缓冲器614以及512字节缓冲器616,如图6中所说明。可针对每一缓冲器大小填充数据结构(例如,堆叠或队列),其中每一数据结构存储指向所述缓冲器大小的可用缓冲器的指针。举例来说,可填充数据结构641、642和643以分别对应于缓冲器612、614和616。
可创建位掩码630以指示大到足以满足所请求的缓冲器大小的预定缓冲器是否可用。位掩码的每一位位置可对应于一特定缓冲器大小,且所述位位置中的值可指示特定缓冲器大小的缓冲器在所分配的区610中是否可用。在图6的说明中,以“X”或以“使用中”来标示不可用的缓冲器。
在图6的特定实施例中,位掩码630的第一位位置对应于20个字节(即,1字节)的缓冲器,且第一位位置中的值“0”指示在所分配的区610中无1字节缓冲器可用。第五位位置631对应于25个字节(即,32字节)的缓冲器,且值“1”指示在所分配的区610中32字节缓冲器可用,且数据结构641中存在指向可用32字节缓冲器的指针。第七位位置632对应于27个字节(即,128字节)的缓冲器,且值“0”指示在所分配的区610中无128字节缓冲器可用(即,因为所分配的区610中的所有128字节缓冲器均在“使用中”)。第九位位置633对应于29个字节(即,512字节)的缓冲器,且值“1”指示在所分配的区610中512缓冲器可用,且数据结构643中存在指向可用512字节缓冲器的指针。
在特定实施例中,每一预定缓冲器具有根据公式大小=2n+8个字节的大小,其中n为大于等于一的整数。额外的8个字节可表示在解除分配期间使用的讹用测试字和返回指针。因此,32字节缓冲器612可实际占用40个字节,128字节缓冲器可实际占用130个字节,且512字节缓冲器616可实际占用520个字节。
在操作中,所分配的区610可在多路高速缓冲存储器处高速缓存,且可使得能够由在处理器处执行的一个或一个以上音频解码器存取以实现音频解码,其中对应于音频解码的所有动态存储器分配请求均从所分配的区610完成。就是说,音频解码可不产生归因于动态存储器分配的高速缓冲存储器未中。
当接收到对特定所请求大小的缓冲器的请求时,可检查位掩码630以确定大到足以容纳所述所请求大小的缓冲器是否可用。举例来说,如果请求32字节缓冲器,那么可检查位掩码630以核实大小大于或等于32个字节的任何缓冲器是否可用。在特定实施例中,使用可在恒定时间执行的单个前导/尾随零DSP命令来检查位掩码630、所请求的缓冲器大小,或以上两者。举例来说,第五位位置630处的“1”指示32字节缓冲器可用于满足所述请求。可提供(且从数据结构641去除)来自数据结构641的指针以满足动态存储器分配请求。当所提供的指针为数据结构的最后一个剩余指针时,可将位掩码630的对应值设定为“0”。提供指针并设定位掩码值也可在恒定时间执行(例如,使用堆叠/队列“上托”操作和写入命令)。
举例来说,可提供指向代表性缓冲器620的指针。缓冲器620可包含32字节缓冲器622、四字节讹用测试字626以及四字节返回指针624。当接收到解除分配缓冲器620的请求时,可评估讹用测试字626。如果讹用测试字626(例如,伪随机32位值)已被修改,那么可确定缓冲器620被讹用(例如,归因于被己越过缓冲器边界的数据不当地盖写),且可返回错误。当确定讹用测试字626无变化时,可解除分配缓冲器620。解除分配缓冲器620可包含将指向缓冲器620的指针放在由缓冲器620的返回指针624识别的数据结构641中。解除分配缓冲器620还可包含将位掩码630的对应值设定为“1”。将指针放在数据结构中并设定位掩码值可在恒定时间执行(例如,使用堆叠/队列“推动”操作和写入命令)。
将了解,图6的技术600可提供动态存储器的恒定时间分配和解除分配。就是说,图6的技术600可独立于所分配的区610的大小而操作,且可因此应用于大于高速缓冲存储器的空间中的动态存储器分配。在说明性实施例中,图6的技术600可实施为可由其它软件开发者充分利用的存储器管理软件。举例来说,图6的技术600可使用一个或一个以上标头和源文件(例如,C或C++文件)来实施,且可代替现存的动态存储器管理技术(例如,malloc()和free())而使用。还将了解,通过从数据结构641到643的同一侧“推动”和“上托”,图6的技术600可在可能程度上再用缓冲器,从而减小动态分配的存储器的总占用面积大小。
图7是说明使用高速缓存图像来执行低电力音频解码和回放的方法700的特定实施例的流程图。在说明性实施例中,可在图1的系统100、图2的系统200、图3的系统300、图4的系统400或图5的系统500处执行方法700。
方法700可包含在702处检测DSP处的低电力音频解码情形。所述低电力音频解码情形可对应于单个音频解码过程的开始,或从并行音频解码到单个解码过程的转变。举例来说,可基于存储在图4的LPM440处的MP3流的开始来检测低电力音频解码情形。或者,可基于图2的第一转变230或图3的转变330来检测低电力音频解码情形。
方法700还可包含在704处将与DSP的音频解码器相关联的一个或一个以上存储器图像加载到多路高速缓冲存储器。所述多路高速缓冲存储器可由DSP存取,且每一存储器图像的大小被设定成不超过所述多路高速缓冲存储器的页大小。举例来说,在图4中,可将存储器图像213、214和215加载到可由DSP430存取的4路高速缓冲存储器210。存储器图像213、214和215的大小可被设定成不超过4路高速缓冲存储器210的页大小,且可对应于音频解码器454。当将存储器图像213、214和215加载到4路高速缓冲存储器210(例如,通过后台线程240)时,音频解码可在音频解码器处在减小数目的高速缓冲存储器未中的情况下进行。举例来说,高速缓冲存储器未中的数目可如参考图2的第一曲线298所说明和描述般减小。
方法700可进一步包含在706处在不导致在多路高速缓冲存储器处发生任何高速缓冲存储器未中的情况下且在不存取DSP可用的较高级存储器的情况下执行音频解码。举例来说,在图4中,音频解码器454可解码MP3流,而不导致4路高速缓冲存储器210处发生高速缓冲存储器未中,且不存取RAM420。为了说明,当己通过后台线程240将存储器图像213、214和215中的每一者加载到4路高速缓冲存储器210时,高速缓冲存储器未中的数目可降到零,如参考图2的第一曲线298所说明和描述。
在其它实施例中,方法700包含将与音频解码器相关联的一个或一个以上存储器图像加载到处理器可存取的多路高速缓冲存储器,其中所述一个或一个以上存储器图像中的每一者的大小被设定成不超过多路高速缓冲存储器的页大小。多路高速缓冲存储器可包含4路高速缓冲存储器,且处理器可包含数字信号处理器。加载所述一个或一个以上存储器图像可在音频解码器不导致在多路高速缓冲存储器处发生任何高速缓冲存储器未中的情况下实现音频解码,其中在不存取处理器可用的较高级存储器的情况下,在将一个或一个以上存储器图像加载到多路高速缓冲存储器之后执行音频解码。每一存储器图像的大小可等于多路高速缓冲存储器的页大小,且音频解码器可操作以解码一个或一个以上音频流。所述一个或一个以上存储器图像可各自从存储器被加载到多路高速缓冲存储器,且可各自在存储器中对准以被加载到多路高速缓冲存储器的对应单一页中。存储器还可包含动态存储器分配区以及与第二音频解码器相关联的一个或一个以上存储器图像,包含多个音频解码器共用的至少一个存储器图像。方法700可包含在与处理器一起集成的存储器处存取多个音频解码器共用的程序指令。
所述一个或一个以上存储器图像中的第一者可包含音频解码器程序指令,所述一个或一个以上存储器图像中的第二者可对应于动态存储器分配区,且所述一个或一个以上存储器图像中的第三者可包含后处理程序指令。方法700可包含起始致使将所述一个或一个以上存储器图像的整个存储器图像加载到多路高速缓冲存储器中的过程。所述过程可包含后台线程,且可响应于检测到音频解码过程的开始或停止而起始。
在额外实施例中,方法700可包含并行地解码音频解码器处的第一音频流和第二音频解码器处的第二音频流。可检测第二音频流的终止,且可终止第二解码器处的第二音频流的解码。可在终止第二音频流的解码之后,在音频解码器处解码第一音频流。可在第一或第二音频流中无可听中断的情况下且独立于来自应用处理器的干预,将所述一个或一个以上存储器图像加载到多路高速缓冲存储器。在进一步实施例中,方法700可包含在音频解码器不导致在多路高速缓冲存储器处发生任何高速缓冲存储器未中的情况下在音频解码器处解码第一音频流。可检测第一音频流的终止以及待由第二音频解码器解码的第二音频流的起始,且可将与第二音频解码器相关联的一个或一个以上存储器图像加载到多路高速缓冲存储器。可在第二音频解码器不导致在多路高速缓冲存储器处发生任何高速缓冲存储器未中的情况下,在第二音频解码器处解码第二音频流。可在第一或第二音频流中无可听中断的情况下且独立于来自应用处理器的干预,将与第二音频解码器相关联的所述一个或一个以上存储器图像加载到多路高速缓冲存储器。
在其它实施例中,方法700可包含:接收音频数据,其中响应于确定音频数据对应于音频解码器而加载一个或一个以上存储器图像;在不导致在多路高速缓冲存储器处发生高速缓冲存储器未中的情况下在音频解码器处解码音频数据;将一个或一个以上后处理功能应用于经解码的音频数据以产生经后处理的音频数据;将一个或一个以上共用处理功能应用于经后处理的数据以产生经处理音频数据;以及将经处理音频数据提供给处理器的输出端口。所述一个或一个以上后处理功能可为音频解码器专有的,且所述一个或一个以上共用处理功能可为多个音频解码器共用。
图7的方法700可由现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、例如中央处理单元(CPU)等处理单元、数字信号处理器(DSP)、控制器、另一硬件装置、固件装置或其任何组合来实施。举例来说,图7的方法700可由执行指令的处理器执行,如相对于图9所述。
图8是说明使用高速缓存图像的低电力音频解码和回放期间的动态存储器管理方法800的特定实施例的流程图。在说明性实施例中,可参考图6的技术600说明方法800。
方法800可包含在802处分配存储器的区。所分配的区经对准以对应于多路高速缓冲存储器的单个页,且具有大体上等于多路高速缓冲存储器的单个页的大小的大小。举例来说,参看图6,可分配区610,其中区610具有等于多路高速缓冲存储器的页大小(例如,图5的256kb高速缓冲存储器570的页大小)的大小(64kb)。
方法800还可包含在804处在多路高速缓冲存储器的单个页处高速缓存存储器的所分配区,以使得能够由一个或一个以上音频解码器存取以实现音频解码。可从存储器的经高速缓存区完成对应于音频解码的所有动态存储器分配请求。举例来说,参看图6,可高速缓存所分配的区610以实现低电力音频解码。
方法800可进一步包含在806处将存储器的所分配区的至少一部分分割为多个预定缓冲器,所述多个预定缓冲器包含具有第一缓冲器大小的第一缓冲器以及具有第二缓冲器大小的第二缓冲器。举例来说,参看图6,可将所分配的区610分割为32字节缓冲器612、128字节缓冲器614以及512字节缓冲器616。
方法800可包含在808处用指向预定缓冲器的指针来填充一个或一个以上数据结构。特定数据结构的每一指针指向特定大小的预定缓冲器。举例来说,参看图6,可填充数据结构641、642和643。
方法800还可包含在810处将位掩码设定成指示存储器的所分配区处的可用缓冲器。位掩码的第一位可指示具有第一缓冲器大小的缓冲器是否可用,且位掩码的第二位可指示具有第二缓冲器大小的缓冲器是否可用。举例来说,参看图6,可设定位掩码630。
方法800可进一步包含在812处接收指示所请求大小的存储器分配的请求。举例来说,参看图6,可接收对32字节缓冲器的请求。方法800可包含在814处确定位掩码是否指示至少一个缓冲器可用于满足所述请求。当位掩码指示至少一个缓冲器可用时,方法816可包含在816处提供对应于满足所述请求的最小可用缓冲器的指针。举例来说,参看图6,可提供指向缓冲器620的指针。当确定不存在大到足以满足所述请求的缓冲器时,方法800可包含在818处提供无法满足请求的指示。
图8的方法800可由现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、例如中央处理单元(CPU)等处理单元、数字信号处理器(DSP)、控制器、另一硬件装置、固件装置或其任何组合实施。举例来说,图8的方法800可由执行指令的处理器执行,如相对于图9所述。
参看图9,描绘电子装置的特定实施例的图,并大体上标示为900。装置900包含一个或一个以上处理器,例如应用处理器910和音频数字信号处理器(DSP)950。应用处理器910和音频DSP950可包含经配置以执行本文所揭示的方法的硬件。应用处理器910和音频DSP950还可操作以执行软件指令,所述软件指令可执行以执行本文所揭示的方法。应用处理器910耦合到随机存取存储器(RAM)932。RAM包含一个或一个以上高速缓冲存储器大小经设定和高速缓冲存储器对准的存储器图像970,其可高速缓存以实现音频流的低电力解码和回放。在说明性实施例中,存储器图像970可对应于图1的存储器图像142到146、图2的存储器图像211到218,或图6的所分配区610。
图9还展示显示器控制器926,其耦合到应用处理器910且耦合到显示器928。音频DSP950可包含译码器/解码器(CODEC)952以及一个或一个以上端口(例如,说明性端口954和956)。扬声器936和麦克风938可分别经由端口954和956耦合到音频DSP950。在说明性实施例中,CODEC952包含图1的音频解码块122或图4的DSP430的一个或一个以上组件,例如解码器454、454和456。在另一说明性实施例中,端口954和956各自为图4的输出端口492、494和496中的一者。音频DSP950还可包含或耦合到多路高速缓冲存储器960,其可操作以高速缓存存储器图像970。在说明性实施例中,多路高速缓冲存储器960为图1的多路高速缓冲存储器130、图2的4路高速缓冲存储器210或图5的高速缓冲存储器570。
图9还指示无线控制器940可耦合到应用处理器910且耦合到无线天线942。在特定实施例中,应用处理器910、音频DSP950、多路高速缓冲存储器960、显示器控制器926、RAM932以及无线控制器940包含在系统级封装或系统芯片装置922中。在特定实施例中,输入装置930(例如,键盘或触摸屏)和电源944(例如,电池)耦合到系统芯片装置922。此外,在特定实施例中,如图9中所说明,显示器928、输入装置930、扬声器936、麦克风938、无线天线942以及电源944在系统芯片装置922外部。然而,显示器928、输入装置930、扬声器936、麦克风938、无线天线942以及电源944中的每一者可耦合到系统芯片装置922的组件,例如接口或控制器。
所属领域的技术人员将进一步了解,结合本文所揭示的实施例而描述的各种说明性逻辑块、配置、模块、电路和算法步骤可实施为电子硬件、由例如硬件处理器等处理装置执行的计算机软件,或以上两者的组合。上文己大体在功能性方面描述了各种说明性组件、块、配置、模块、电路和步骤。将所述功能性实施为硬件还是可执行软件取决于特定应用及强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式实施所描述功能性,但所述实施决策不应被解释为导致偏离本发明的范围。
可直接以硬件、以由处理器执行的软件模块或以以上两者的组合来实施结合本文所揭示的实施例而描述的方法或算法的步骤。软件模块可驻留在非暂时存储媒体中,例如随机存取存储器(RAM)、磁阻随机存取存储器(MRAM)、自旋转矩MRAM(STT-MRAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可装卸盘、压缩光盘只读存储器(CD-ROM),或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息,且将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器及存储媒体可驻留在专用集成电路(ASIC)中。ASIC可驻留在计算装置或用户终端中。在替代方案中,处理器和存储媒体可作为离散组件驻留在计算装置或用户终端中。
提供所揭示实施例的先前描述是为了使所属领域的技术人员能够制作或使用所揭示实施例。对于所属领域的技术人员来说,对这些实施例的各种修改将为显而易见的,且可在不偏离本发明的范围的情况下,将本文中所定义的原理应用于其它实施例。因此,本发明无意限于本文中所展示的实施例,而是将赋予本发明与如由所附权利要求书界定的原理和新颖特征一致的可能的最广范围。

Claims (44)

1.一种方法,其包括:
将与音频解码器相关联的一个或一个以上存储器图像加载到处理器可存取的多路高速缓冲存储器,其中所述一个或一个以上存储器图像中的每一者的大小被设定成不超过所述多路高速缓冲存储器的页大小。
2.根据权利要求1所述的方法,其中将所述一个或一个以上存储器图像加载到所述多路高速缓冲存储器在所述音频解码器不导致在所述多路高速缓冲存储器处发生任何高速缓冲存储器未中的情况下实现音频解码。
3.根据权利要求2所述的方法,其中在不存取所述处理器可用的较高级存储器的情况下,在将所述一个或一个以上存储器图像加载到所述多路高速缓冲存储器中之后执行所述音频解码。
4.根据权利要求1所述的方法,其中每一存储器图像的大小等于所述多路高速缓冲存储器的所述页大小。
5.根据权利要求1所述的方法,其中所述音频解码器可操作以解码一个或一个以上音频流。
6.根据权利要求1所述的方法,其中将所述一个或一个以上存储器图像各自从存储器加载到所述多路高速缓冲存储器,且其中将所述一个或一个以上存储器图像各自在所述存储器中对准以加载到所述多路高速缓冲存储器的对应单个页中。
7.根据权利要求6所述的方法,其中所述存储器中的所述一个或一个以上存储器图像是可存取的,以在将所有所述一个或一个以上存储器图像加载到所述多路高速缓冲存储器中时实现音频解码和低电力音频解码。
8.根据权利要求6所述的方法,其中所述存储器包含与第二音频解码器相关联的一个或一个以上存储器图像。
9.根据权利要求6所述的方法,其中所述存储器包含多个音频解码器共用的至少一个存储器图像。
10.根据权利要求6所述的方法,其中所述存储器包含动态存储器分配区。
11.根据权利要求1所述的方法,其中所述多路高速缓冲存储器包括4路高速缓冲存储器。
12.根据权利要求1所述的方法,其中所述一个或一个以上存储器图像中的第一者包含音频解码器程序指令,其中所述一个或一个以上存储器图像中的第二者对应于动态存储器分配区,且其中所述一个或一个以上存储器图像中的第三者包含后处理程序指令。
13.根据权利要求1所述的方法,其进一步包括起始导致将所述一个或一个以上存储器图像的整个存储器图像加载到所述多路高速缓冲存储器中的过程。
14.根据权利要求13所述的方法,其中所述过程包括所述处理器的后台线程。
15.根据权利要求13所述的方法,其中响应于检测到音频解码过程的开始或停止而起始所述过程。
16.根据权利要求1所述的方法,其进一步包括:
并行地解码所述音频解码器处的第一音频流和第二音频解码器处的第二音频流;
检测所述第二音频流的终止;
终止所述第二解码器处的所述第二音频流的所述解码;以及
在终止所述第二音频流的所述解码之后,在所述音频解码器处解码所述第一音频流。
17.根据权利要求16所述的方法,其中在所述第一音频流中或所述第二音频流中无可听中断的情况下,将所述一个或一个以上存储器图像加载到所述多路高速缓冲存储器。
18.根据权利要求1所述的方法,其中独立于来自应用处理器的干预而将所述一个或一个以上存储器图像加载到所述多路高速缓冲存储器。
19.根据权利要求1所述的方法,其进一步包括:
在所述音频解码器不导致在所述多路高速缓冲存储器处发生任何高速缓冲存储器未中的情况下,在所述音频解码器处解码第一音频流;
检测所述第一音频流的终止以及待由第二音频解码器解码的第二音频流的起始;
将与所述第二音频解码器相关联的一个或一个以上存储器图像加载到所述多路高速缓冲存储器;以及
在所述第二音频解码器不导致在所述多路高速缓冲存储器处发生任何高速缓冲存储器未中的情况下,在所述第二音频解码器处解码所述第二音频流。
20.根据权利要求19所述的方法,其中在所述第一音频流中或所述第二音频流中无可听中断的情况下,将与所述第二音频解码器相关联的所述一个或一个以上存储器图像加载到所述多路高速缓冲存储器。
21.根据权利要求19所述的方法,其中独立于来自应用处理器的干预而将与所述第二音频解码器相关联的所述一个或一个以上存储器图像加载到所述多路高速缓冲存储器。
22.根据权利要求1所述的方法,其进一步包括在与所述处理器一起集成的存储器处存取多个音频解码器共用的程序指令。
23.根据权利要求1所述的方法,其中所述处理器包括数字信号处理器。
24.根据权利要求1所述的方法,其进一步包括:
接收音频数据;
其中响应于确定所述音频数据对应于所述音频解码器而加载所述一个或一个以上存储器图像;
在不导致在所述多路高速缓冲存储器处发生高速缓冲存储器未中的情况下,在所述音频解码器处解码所述音频数据;以及
将经处理音频数据提供到所述处理器的输出端口。
25.根据权利要求24所述的方法,其进一步包括:
将一个或一个以上后处理功能应用于经解码音频数据以产生经后处理音频数据,其中所述一个或一个以上后处理功能是所述音频解码器专有的;以及
将一个或一个以上共用处理功能应用于所述经后处理音频数据以产生所述经处理音频数据,其中一个或一个以上共用处理功能是多个音频解码器共用的。
26.一种非暂时计算机可读存储媒体,其包括在由处理器执行时致使所述处理器进行以下操作的指令:
将与音频解码器相关联的一个或一个以上存储器图像加载到处理器可存取的多路高速缓冲存储器,其中所述一个或一个以上存储器图像中的每一者的大小被设定成不超过所述多路高速缓冲存储器的页大小。
27.根据权利要求26所述的非暂时计算机可读存储媒体,其中将所述一个或一个以上存储器图像加载到所述多路高速缓冲存储器在所述音频解码器不导致在所述多路高速缓冲存储器处发生任何高速缓冲存储器未中的情况下实现音频解码。
28.根据权利要求26所述的非暂时计算机可读存储媒体,其中每一存储器图像的大小等于所述多路高速缓冲存储器的所述页大小。
29.一种电子装置,其包括:
处理器;以及
多路高速缓冲存储器,其可由所述处理器存取,
其中所述处理器经配置以将与音频解码器相关联的一个或一个以上存储器图像加载到所述多路高速缓冲存储器中,其中所述一个或一个以上存储器图像中的每一者的大小被设定成不超过所述多路高速缓冲存储器的页大小。
30.根据权利要求29所述的电子装置,其中将所述一个或一个以上存储器图像加载到所述多路高速缓冲存储器在所述音频解码器不导致在所述多路高速缓冲存储器处发生任何高速缓冲存储器未中的情况下实现音频解码。
31.根据权利要求29所述的电子装置,其进一步包括:
随机存取存储器,其包含所述一个或一个以上存储器图像;
低电力存储器,其可由所述处理器存取;
应用处理器,其经配置以致使从所述随机存取存储器检索音频数据且将其存储到所述低电力存储器处,其中所述音频解码器经配置以解码从所述低电力存储器检索的音频数据以产生经解码音频数据;
后处理电路,其经配置以将一个或一个以上后处理操作应用于所述经解码音频数据以产生经后处理音频数据,其中所述一个或一个以上后处理操作是所述音频解码器专有的;
共用处理电路,其经配置以将一个或一个以上共用处理操作应用于所述经后处理音频数据以产生经处理音频数据,其中所述一个或一个以上共用处理操作是多个音频解码器共用的;以及
输出端口,其经配置以输出所述经处理音频数据。
32.一种设备,其包括:
用于处理数据的装置;以及
用于在多个高速缓冲存储器路中高速缓存数据的装置,
其中所述用于高速缓存的装置可由所述用于处理的装置存取,且
其中所述用于处理的装置经配置以将与音频解码器相关联的一个或一个以上存储器图像加载到所述用于高速缓存的装置中,其中所述一个或一个以上存储器图像中的每一者的大小被设定成不超过所述用于高速缓存的装置的页大小。
33.根据权利要求32所述的设备,其中将所述一个或一个以上存储器图像加载到用于高速缓存的装置在所述音频解码器不导致在所述用于高速缓存的装置处发生任何高速缓冲存储器未中的情况下实现音频解码。
34.根据权利要求32所述的设备,其中每一存储器图像的大小等于所述用于高速缓存的装置的所述页大小。
35.根据权利要求32所述的设备,其中所述音频解码器为高级音频译码AAC型音频解码器、运动图片专家组音频层3MP3型音频解码器、语音音频解码器、脉码调制PCM音频解码器,或其任何组合。
36.一种非暂时计算机可读存储媒体,其包括在由处理器执行时致使所述处理器进行以下操作的指令:
基于位掩码确定至少一个缓冲器是否可用于满足所请求的缓冲器大小,其中所述位掩码的第一位指示具有第一缓冲器大小的缓冲器是否可用,且所述位掩码的第二位指示具有第二缓冲器大小的缓冲器是否可用。
37.根据权利要求36所述的非暂时计算机可读存储媒体,其中所述位掩码的每一位位置对应于一相应缓冲器大小,且其中特定位位置处的位值指示具有对应于所述特定位位置的所述相应缓冲器大小的缓冲器的可用性。
38.根据权利要求36所述的非暂时计算机可读存储媒体,其进一步包括在由所述处理器执行时致使所述处理器进行以下操作的指令:
分配存储器的区,所述区经对准以对应于多路高速缓冲存储器的单个页,且具有大体上等于所述多路高速缓冲存储器的所述单个页的大小的大小;
将存储器的所述所分配区的至少一部分分割为多个预定缓冲器,所述多个预定缓冲器包含具有所述第一缓冲器大小的至少一个缓冲器以及具有所述第二缓冲器大小的至少一个缓冲器;
用指向所述预定缓冲器的指针来填充一个或一个以上数据结构,其中特定数据结构的每一指针指向特定大小的预定缓冲器;以及
将位掩码设定成指示存储器的所述所分配区处的可用缓冲器大小。
39.根据权利要求38所述的非暂时计算机可读存储媒体,其中存储器的所述区在所述多路高速缓冲存储器处被高速缓存,且使得能够由在处理器处执行的一个或一个以上音频解码器存取以实现音频解码,其中从在所述多路高速缓冲存储器处高速缓存的存储器的所述区完成对应于所述音频解码的所有动态存储器分配请求。
40.根据权利要求38所述的非暂时计算机可读存储媒体,其中每一预定缓冲器具有根据以下公式的大小
大小=2n+8个字节,
其中n为大于或等于一的整数。
41.根据权利要求38所述的非暂时计算机可读存储媒体,其中每一预定缓冲器的前四个字节表示讹用测试字,且其中每一预定缓冲器的第二四个字节表示识别所述数据结构中的一者的返回指针。
42.根据权利要求41所述的非暂时计算机可读存储媒体,其进一步包括在由所述处理器执行时致使所述处理器进行以下操作的指令:
接收指示所请求大小的存储器分配的请求;
提供对应于满足所述所请求大小的最小可用缓冲器的指针;
接收解除分配所述所提供缓冲器的请求;
评估所述所提供缓冲器的所述讹用测试字,以检测所述所提供缓冲器是否被讹用;以及
当所述所提供缓冲器未被讹用时,将对应于所述所提供缓冲器的所述指针插入到由所述所提供缓冲器的所述返回指针识别的所述数据结构中。
43.一种计算机实施的方法,其包括:
在处理器处,基于位掩码确定可由处理器存取的存储器的至少一个缓冲器是否可用于满足所请求的缓冲器大小,其中所述位掩码的第一位指示具有第一缓冲器大小的缓冲器是否可用,且所述位掩码的第二位指示具有第二缓冲器大小的缓冲器是否可用。
44.根据权利要求43所述的计算机实施的方法,其进一步包括:
分配所述存储器的区,所述区经对准以对应于多路高速缓冲存储器的单个页且具有大体上等于所述多路高速缓冲存储器的所述单个页的大小的大小;
将存储器的所述所分配区的至少一部分分割为多个预定缓冲器,所述多个预定缓冲器包含具有所述第一缓冲器大小的至少一个缓冲器以及具有所述第二缓冲器大小的至少一个缓冲器;
用指向所述预定缓冲器的指针来填充一个或一个以上数据结构,其中特定数据结构的每一指针指向特定大小的预定缓冲器;以及
将位掩码设定成指示存储器的所述所分配区处的可用缓冲器大小。
CN201180053731.7A 2010-10-15 2011-10-14 音频解码的方法及装置 Expired - Fee Related CN103210378B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US39349510P 2010-10-15 2010-10-15
US61/393,495 2010-10-15
US13/034,910 US8762644B2 (en) 2010-10-15 2011-02-25 Low-power audio decoding and playback using cached images
US13/034,910 2011-02-25
PCT/US2011/056447 WO2012051579A1 (en) 2010-10-15 2011-10-14 Low-power audio decoding and playback using cached images

Publications (2)

Publication Number Publication Date
CN103210378A true CN103210378A (zh) 2013-07-17
CN103210378B CN103210378B (zh) 2016-08-03

Family

ID=45935121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180053731.7A Expired - Fee Related CN103210378B (zh) 2010-10-15 2011-10-14 音频解码的方法及装置

Country Status (7)

Country Link
US (1) US8762644B2 (zh)
EP (1) EP2628084B1 (zh)
JP (1) JP2013539892A (zh)
KR (1) KR101503623B1 (zh)
CN (1) CN103210378B (zh)
IN (1) IN2013MN00750A (zh)
WO (1) WO2012051579A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105828272A (zh) * 2016-04-28 2016-08-03 乐视控股(北京)有限公司 音频信号处理方法和装置
CN105979467A (zh) * 2016-04-29 2016-09-28 乐视控股(北京)有限公司 在高通平台中集成多种音频信号后处理算法的方法和装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2657847A1 (en) * 2010-11-15 2013-10-30 Fujitsu Limited Information processing system
US8495452B2 (en) * 2011-02-10 2013-07-23 International Business Machines Corporation Handling corrupted background data in an out of order execution environment
KR20120108570A (ko) * 2011-03-24 2012-10-05 삼성전자주식회사 오디오 장치, 및 그 동작 방법
US9760150B2 (en) * 2012-11-27 2017-09-12 Nvidia Corporation Low-power states for a computer system with integrated baseband
KR101805630B1 (ko) * 2013-09-27 2017-12-07 삼성전자주식회사 멀티 디코딩 처리 방법 및 이를 수행하기 위한 멀티 디코더
US9529727B2 (en) * 2014-05-27 2016-12-27 Qualcomm Incorporated Reconfigurable fetch pipeline
KR20160039922A (ko) * 2014-10-02 2016-04-12 삼성전자주식회사 영상처리장치 및 그 제어방법
US20180330288A1 (en) * 2017-05-15 2018-11-15 Alteryx, Inc. Method of data aggregation for cache optimization and efficient processing
CN113707174B (zh) * 2021-08-31 2024-02-09 亿览在线网络技术(北京)有限公司 一种音频驱动的动画特效的生成方法
CN114630184A (zh) * 2022-03-23 2022-06-14 广州方硅信息技术有限公司 视频的渲染方法、装置、设备和计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754784B1 (en) * 2000-02-01 2004-06-22 Cirrus Logic, Inc. Methods and circuits for securing encached information
US20060200697A1 (en) * 2005-03-03 2006-09-07 Fujitsu Limited Storage system, control method thereof, and program
US20070299672A1 (en) * 2004-11-29 2007-12-27 National University Of Singapore Perception-Aware Low-Power Audio Decoder For Portable Devices
WO2008103854A1 (en) * 2007-02-21 2008-08-28 Qualcomm Incorporated On-demand multi-thread multimedia processor

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634073A (en) * 1994-10-14 1997-05-27 Compaq Computer Corporation System having a plurality of posting queues associated with different types of write operations for selectively checking one queue based upon type of read operation
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
US5737748A (en) * 1995-03-15 1998-04-07 Texas Instruments Incorporated Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory
US20020057898A1 (en) * 1997-12-19 2002-05-16 James Oliver Normile Method and apparatus for trick play of bitstream data
US6041400A (en) * 1998-10-26 2000-03-21 Sony Corporation Distributed extensible processing architecture for digital signal processing applications
US7271720B2 (en) * 2002-11-18 2007-09-18 Joseph Tabe Homeland intelligent systems technology “H-LIST”
US6717577B1 (en) * 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
EP1258005A1 (en) 2000-02-01 2002-11-20 Cirrus Logic, Inc. Hand-held audio decoder
US6903737B2 (en) * 2001-01-23 2005-06-07 Hewlett-Packard Development Company, L.P. Method and apparatus for implementing spread memory layout
US6622208B2 (en) * 2001-03-30 2003-09-16 Cirrus Logic, Inc. System and methods using a system-on-a-chip with soft cache
US6952749B2 (en) * 2001-05-02 2005-10-04 Portalplayer, Inc. Multiprocessor interrupt handling system and method
TW556077B (en) 2001-06-05 2003-10-01 Via Tech Inc Controller for improving buffer management efficiency and the buffer management method
US7159096B2 (en) * 2004-03-31 2007-01-02 Marvell International Ltd. Method and apparatus to perform memory management
US7586904B2 (en) * 2004-07-15 2009-09-08 Broadcom Corp. Method and system for a gigabit Ethernet IP telephone chip with no DSP core, which uses a RISC core with instruction extensions to support voice processing
US20060026629A1 (en) * 2004-07-30 2006-02-02 Harris John C Method for advertising via IP video telephone
EP1820309B1 (en) * 2004-12-03 2008-08-27 Koninklijke Philips Electronics N.V. Streaming memory controller
US8200887B2 (en) * 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US7719579B2 (en) * 2005-05-24 2010-05-18 Zoran Corporation Digital camera architecture with improved performance
JP2007104220A (ja) * 2005-10-03 2007-04-19 Canon Inc 画像処理装置及び画像処理方法
JP4728083B2 (ja) * 2005-10-14 2011-07-20 パナソニック株式会社 メディア処理装置
JP4760440B2 (ja) * 2006-02-22 2011-08-31 ヤマハ株式会社 オーディオ再生装置
US7496771B2 (en) 2005-11-15 2009-02-24 Mips Technologies, Inc. Processor accessing a scratch pad on-demand to reduce power consumption
US20070294738A1 (en) * 2006-06-16 2007-12-20 Broadcom Corporation Single chip cable set-top box supporting DOCSIS set-top Gateway (DSG) protocol and high definition advanced video codec (HD AVC) decode
US7804435B2 (en) 2006-08-31 2010-09-28 Ati Technologies Ulc Video decoder with reduced power consumption and method thereof
US20090006756A1 (en) 2007-06-29 2009-01-01 Donley Greggory D Cache memory having configurable associativity
US7827356B2 (en) 2007-09-10 2010-11-02 Qualcomm Incorporated System and method of using an N-way cache
US9569349B2 (en) 2008-12-19 2017-02-14 Ati Technologies Ulc Method and apparatus for reallocating memory content
US8615398B2 (en) * 2009-01-29 2013-12-24 Qualcomm Incorporated Audio coding selection based on device operating condition
WO2010095182A1 (ja) 2009-02-17 2010-08-26 パナソニック株式会社 マルチスレッドプロセッサ及びデジタルテレビシステム
US9122609B2 (en) * 2011-03-07 2015-09-01 Texas Instruments Incorporated Caching method and system for video coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754784B1 (en) * 2000-02-01 2004-06-22 Cirrus Logic, Inc. Methods and circuits for securing encached information
US20070299672A1 (en) * 2004-11-29 2007-12-27 National University Of Singapore Perception-Aware Low-Power Audio Decoder For Portable Devices
US20060200697A1 (en) * 2005-03-03 2006-09-07 Fujitsu Limited Storage system, control method thereof, and program
WO2008103854A1 (en) * 2007-02-21 2008-08-28 Qualcomm Incorporated On-demand multi-thread multimedia processor
CN101627367A (zh) * 2007-02-21 2010-01-13 高通股份有限公司 按需多线程多媒体处理器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105828272A (zh) * 2016-04-28 2016-08-03 乐视控股(北京)有限公司 音频信号处理方法和装置
CN105979467A (zh) * 2016-04-29 2016-09-28 乐视控股(北京)有限公司 在高通平台中集成多种音频信号后处理算法的方法和装置

Also Published As

Publication number Publication date
KR20130103553A (ko) 2013-09-23
CN103210378B (zh) 2016-08-03
US20120096223A1 (en) 2012-04-19
WO2012051579A1 (en) 2012-04-19
US8762644B2 (en) 2014-06-24
EP2628084A1 (en) 2013-08-21
KR101503623B1 (ko) 2015-03-18
EP2628084B1 (en) 2014-11-19
IN2013MN00750A (zh) 2015-06-12
JP2013539892A (ja) 2013-10-28

Similar Documents

Publication Publication Date Title
CN103210378A (zh) 使用高速缓存图像进行低电力音频解码和回放
KR101056322B1 (ko) 전력 인디케이터 기반 동적 프로그램 쓰로틀링을 이용하는 컨버전스 장치
KR101665611B1 (ko) 컴퓨터 시스템 및 메모리 관리의 방법
JP5579850B2 (ja) デュアルチャネル動作中にアドレス/コントロール信号をインターリーブすることによるシングルチャネルとデュアルチャネルのハイブリッドddrインターフェース方式
EP2732374B1 (en) Mobile memory cache read optimization
KR101952562B1 (ko) 홀수 계수 메모리 채널 인터리빙을 위한 시스템 및 방법
US20220050600A1 (en) Apparatus and method for performing persistent write operations using a persistent write command
JP6239130B2 (ja) 作業負荷に従ってメモリバス帯域幅を低減するためのシステムおよび方法
TW201717026A (zh) 用於逐頁記憶體通道交錯之系統及方法
US9703493B2 (en) Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache
US10878880B2 (en) Selective volatile memory refresh via memory-side data valid indication
KR20120049604A (ko) 모바일 디바이스의 메모리 관리 방법 및 장치
JP5254342B2 (ja) n−ウェイキャッシュを用いるシステムおよび方法
WO2010101835A1 (en) Decoupled memory modules: building high-bandwidth memory systems from low-speed dynamic random access memory devices
US8850084B2 (en) Data processing systems for audio signals and methods of operating same
US20160148670A1 (en) Systems and methods for reducing volatile memory standby power in a portable computing device
TW201729113A (zh) 使用滑動臨限值位址用於記憶體通道交錯之系統及方法
KR20170081275A (ko) 재구성가능한 페치 파이프라인
KR20110110434A (ko) 저전력 오디오 재생장치 및 방법
TW201717025A (zh) 用於逐頁記憶體通道交錯之系統及方法
US7076627B2 (en) Memory control for multiple read requests
Burchardt et al. A real-time streaming memory controller
CN110168643B (zh) 经由交叉连接的共享存储体资源的同时的存储器存储体访问
WO2012163019A1 (zh) 降低数据类芯片外挂ddr功耗的方法及数据类芯片系统
US9122565B2 (en) Memory controller and memory control method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160803