CN113455011B - 用于媒体设备中的数据管理的***和方法 - Google Patents

用于媒体设备中的数据管理的***和方法 Download PDF

Info

Publication number
CN113455011B
CN113455011B CN202080014928.9A CN202080014928A CN113455011B CN 113455011 B CN113455011 B CN 113455011B CN 202080014928 A CN202080014928 A CN 202080014928A CN 113455011 B CN113455011 B CN 113455011B
Authority
CN
China
Prior art keywords
memory handler
memory
handler
data
size
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.)
Active
Application number
CN202080014928.9A
Other languages
English (en)
Other versions
CN113455011A (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.)
Creative Technology Ltd
Original Assignee
Creative Technology Ltd
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 Creative Technology Ltd filed Critical Creative Technology Ltd
Publication of CN113455011A publication Critical patent/CN113455011A/zh
Application granted granted Critical
Publication of CN113455011B publication Critical patent/CN113455011B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • H04N21/4392Processing of audio elementary streams involving audio buffer management
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/36Monitoring, i.e. supervising the progress of recording or reproducing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Systems (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

在音频***中,有多个数据速率需要同步是很常见的。例如,发送设备有自己的晶体或时钟,而接收设备有另外的晶体或时钟。典型的解决方案会引入很多延迟。根据本发明的各种实施例,提出了一种数据管理机制和技术。该数据管理机制和技术涉及管理媒体数据,例如音频***中的媒体数据,例如,管理USB音频中的数字音频数据的消耗。该数据管理机制可以包括动态缓冲器,它可以被自动控制和调整以解决数据消耗中的问题(例如,延迟)。

Description

用于媒体设备中的数据管理的***和方法
技术领域
本发明涉及数据管理。更具体地,本发明涉及一种用于媒体设备中的数据管理的***和方法。
背景技术
在音频***中,经常需要在主机(生产者)和回放设备(消费者)之间同步音频数据。有时,主机可能会在一段时间内停止向回放设备发送音频数据,这会导致诸如意外音频回放(环形缓冲器溢出)等问题。这些问题的典型解决方案是使用缓冲器;然而,它具有预先确定的大小并增加了固定量的延迟,这在低延迟音频***中可能是不受欢迎的。
因此,需要一种用于媒体设备中进行数据管理的***和方法来解决上述问题,尤其是在需要低延迟的媒体***中。
发明内容
在本发明的一个方面,提供了一种用于低延迟***中在媒体设备中进行数据管理的方法。媒体设备包括在处理媒体流时具有可接受的间隙时间的第一存储器处置器(memory handler)和第二存储器处置器。该方法包括:1)发起接收具有媒体数据的媒体流;2)检测媒体流中丢失的媒体数据;和3)动态调节第一存储器处置器和第二存储器处置器以保持可接受的间隙时间来处理媒体流。
根据各种实施例,第一存储器处置器与固定大小的存储器处置器相关联,第二存储器处置器与动态可调整大小的存储器处置器相关联。此外,根据一个实施例,动态调节第一存储器处置器和第二存储器处置器包括:1)如果未检测到丢失的媒体数据,则返回到检测的步骤;2)如果检测到丢失的媒体数据,则将媒体数据从第二存储器处置器馈送到第一存储器处置器;以及3)确定第二存储器处置器是否已耗尽,使得1)如果第二存储器处置器已耗尽,则增大第二存储器处置器大小并发起第二存储器处置器的恢复;并且2)其中,如果第二存储器处置器没有耗尽,则发起第二存储器处置器的恢复。然而,根据另一个实施例,动态调节第一存储器处置器和第二存储器处置器包括:1)如果未检测到丢失的媒体数据,则返回到检测的步骤;2)如果检测到丢失的媒体数据,则将媒体数据从第二存储器处置器馈送到第一缓冲器;并且3)确定第二存储器处置器是否已耗尽,使得1)如果第二存储器处置器已耗尽,则增大第二存储器处置器大小并发起第二存储器处置器的恢复;和2)如果第二存储器处置器没有耗尽,则确定第二存储器处置器是否已消耗小于阈值,使得1)如果第二存储器处置器已消耗小于阈值,则减小第二存储器处置器大小并发起第二存储器处置器的恢复;和2)如果第二存储器处置器已消耗不小于阈值,则发起第二存储器处置器的恢复。
在本发明的另一方面,提供了一种用于低延迟***中在媒体设备中进行数据管理的***。该***包括:1)媒体输入输出接口,用于接收媒体流;2)在处理媒体流时具有第一可接受的间隙时间的第一存储器处置器;3)在处理媒体流时具有第二可接受的间隙时间的第二存储器处置器;和4)处理器,用于动态调节第一存储器处置器和第二存储器处置器以保持可接受的间隙时间来处理媒体流。
本发明扩展到包含指令序列的机器可读介质,当指令序列由机器执行时,使机器执行这里描述的任何方法。
本发明的一些优点包括:1)第二存储器处置器大小的自动调整以最小化***中的延迟;2)输出中基本上没有伪影;3)实时执行;4)对生产者和消费者之间各种媒体数据丢失的鲁棒处理和适应性。下面参照附图描述本发明的这些和其他特征和优点。
附图说明
图1A是示出根据本发明的各种实施例的用于媒体设备中进行数据管理的***的示意框图。
图1B是根据本发明的各种实施例的图1A中的***的详细部分视图。
图2是示出媒体设备中数据管理期间不同状态的状态图。
图3是示出根据本发明的各种实施例的用于媒体设备中进行数据管理的***的示意框图。
图4是根据本发明的各种实施例的媒体设备中进行数据管理的流程图。
图5示出了可以与本发明的一个或多个实施例结合使用的典型计算机***。
具体实施方式
现在将详细参考本发明的优选实施例。优选实施例的示例在附图中示出。虽然本发明将结合这些优选实施例进行描述,但应当理解,本发明并不旨在将本发明限制为这些优选实施例。相反,它旨在涵盖可包括在由所附权利要求限定的本发明的精神和范围内的替代、修改和等同物。在以下描述中,阐述了许多具体细节以提供对本发明的透彻理解。可以在没有这些特定细节中的一些或全部的情况下实践本发明。在其他情况下,为了避免不必要地混淆本发明,没有详细描述众所周知的机制。
在此应当注意,贯穿各个附图,相同的数字表示相同的部件。在此说明和描述的各种附图用于说明本发明的各种特征。就特定特征在一幅图中而不是另一幅图中说明的情况而言,除非另有说明或结构固有地禁止并入该特征,应当理解,这些特征可以适合于包括在其他图所表示的实施例中,就好像它们在这些图中得到了充分说明。除非另有说明,附图不一定按比例绘制。附图上提供的任何尺寸并不旨在限制本发明的范围,而仅是说明性的。
在音频***中,有多个数据速率需要同步是很常见的。例如,发送设备有自己的晶体或时钟,而接收设备有另外的晶体或时钟。典型的解决方案会引入很多延迟。根据本发明的各种实施例,提出了一种数据管理机制和技术。该数据管理机制和技术涉及管理媒体数据,例如音频***中的媒体数据,例如,管理USB音频中数字音频数据的消耗。该数据管理机制可以包括动态缓冲器,它可以被自动控制和调整以解决数据消耗中的问题(例如,延迟)。因此,本发明对于具有低延迟的***是有利的。对于具有视频回放功能的***,在可以看到音频视频同步问题之前的最大音频延迟要求将低于50ms。在纯音频***中,可能对延迟有更大的容忍度,因为没有需要同步的视觉组件。
图1A是示出根据本发明的各种实施例的用于媒体设备104中的数据管理的***100的示意框图。***100可以是完整的媒体***(例如,音频/视频***)或其任何部分。出于说明的目的,***100涉及USB音频***,其包括USB主机102,该USB主机102耦合到USB设备104和扬声器120。USB主机102(也称为生产者、源)可操作以发送USB音频数据(例如,分组流)106到USB设备104(也称为消费者、接收器),其包括USB控制器108、音频DMA(直接存储器访问)112、DAC(数模转换器)116和处理器/控制器122。在USB设备104处通过USB控制器108接收USB音频数据106,然后将其传输110到音频DMA 112,然后音频DMA 112将其传输114到DAC 116,然后DAC 116将其发送118到扬声器120以用于回放。USB控制器108、音频DMA 112、DAC 116和处理器/控制器122也相互通信耦合124,其中处理器/控制器122被配置用于管理USB设备104中的数据。
USB主机102可以是任何USB音频源设备,其通常包括处理器,例如个人计算机、移动电话或游戏控制台。USB设备104可以是任何USB可连接设备,例如USB外部声卡、USB DAC或USB扬声器。音频DMA 112可操作以管理存储器访问并且包括控制器(未示出)和存储器(例如,RAM),例如缓冲器128。USB设备104的任何部分都可以单独实现或与芯片上***上的其他部分一起实现。
由于多进程同步问题(例如,生产者-消费者问题;有界缓冲器问题;USB主机和USB设备之间的不同时钟),优选实施例包括用于USB设备104与USB主机102通信的反馈输出126。输出126可以包括异步(ASYNC)反馈,其通知USB主机102发送更多或更少的样本以解决任何同步问题。例如,当USB设备的样本不足时,该输出可用于通知USB主机102发送更多样本。但是,某些USB主机可能不会响应ASYNC反馈。在这种情况下,USB设备104将在内部(取决于情况)在某些时间点添加或丢弃样本,以便生产者速率和消费者速率匹配。
图1B是根据本发明的各种实施例的图1A中的***100的详细部分视图130。如图所示,USB音频数据106的顺序串行时间分组107A(顶部)和107B(底部)由USB控制器108接收并传送110或复制到在音频DMA 112内的存储器处置器113(其可以用缓冲器128、寄存器、寄存器表、RAM、存储器软件和适用于本发明的存储器硬件中的任何一个或组合来实现)的队列末尾的各个时间顺序位置111B和111C处并最终通过114回放。位置111A和111B是由间隙时间彼此分开的时间。根据各种实施例,间隙时间115是预定的并且是USB音频数据和音频回放数据之间的时间。在优选实施例中,间隙时间应该尽可能短,例如2ms。在这种情况下,由于音频DMA 112中的2ms间隔时间,音频延迟为2ms。
更详细地说,音频DMA 112通常在位置111A的指针处开始播放,但实际进入的数据将被复制到2ms后播放的位置。完成这2ms的播放是为了允许一些调整余地以减轻任何同步问题。该2ms间隙时间是可定制的,由每个USB设备104定义。然而,对于低延迟音频***,该间隙时间应该被最小化。该间隙时间的增加会影响音频***的延迟并可能导致收听问题。
图2是示出媒体设备中的数据管理期间的不同状态的状态图200。一些USB设备104可能具有包括在各种状态之间转换的现象,例如接收有效数据202到接收数据中断204到接收静默数据206并返回到接收有效数据208。另一种现象包括接收有效数据202到接收数据中断204并返回到接收有效数据208。当来自USB主机102的音频数据传输中断时,会发生每种现象。一些USB设备104可能不会发生任何此类现象,因为它们有足够大的固定大小的缓冲器以解决传送中断的问题,因为它们的时间间隙足够大,允许进行调整,以便在读取和写入指针相互交叉之前该间隙不会减少。例如,音频DMA 112内的缓冲器128可以设置为从2ms到20ms或到40ms。
在正常情况下,USB主机102应该以恒定速率发送USB音频数据106。例如,如图2所示,可维持1ms的音频数据的有效数据202的连续流被发送到USB设备104。然而,一些USB主机102可能由于各种原因经历传送中断(例如,从2-10ms),原因之一是USB主机102中的处理器正忙于为其他内容提供服务,因此“延迟”了USB音频数据的传输。这种传送中断是有问题的,因为音频DMA 112内的音频数据最终可能会耗尽,尽管具有可调整的合并间隙时间(例如,2ms)。因此,如果没有从USB主机106发送或由USB控制器108接收的数据,则没有什么可复制到音频DMA 112中。然而,音频将继续在音频DMA 112中播放;从而导致间隙时间越来越小。最终,如果未从USB主机102传送音频数据超过间隙时间(例如,2ms),则音频DMA 112中的读取和写入指针将交叉并导致不良影响。
更详细地说,读取指针通常应该在写入指针之前/下方(在这种情况下,2ms之前)。因此,在未传送音频数据的情况下,读取指针会更接近写入指针。在更多未传送的情况下,读取指针将位于写入指针上方。这意味着写入指针正在回退整个读缓冲器,因此必须播放整个读缓冲器才能到达读取指针。但在这种情况下,会播放错误的数据并导致音频不正确。
尽管USB设备104可以实现大缓冲器来解决这种传送中断问题,但是大缓冲器有时不利于需要低延迟的***。尽管如此,可以使用以下两种方法来缓解丢失数据的问题(例如,未传送;传送中断):1.调整音频DMA 112延迟(例如,USB控制器108和音频DMA 112之间的2ms回放间隙);和2.添加固定大小的中间缓冲器,该缓冲器足够大以处理传送中断问题。
图3是示出根据本发明的各种实施例的用于媒体设备104中进行数据管理的***300的示意框图。应当注意,***300可以并入***100或USB设备104内。如图所示,USB音频数据106的顺序串行时间分组107A(顶部)和107B(底部)由USB控制器108接收并传输110A或复制到在中间缓冲器302内的存储器处置器304(其可以用缓冲器、寄存器、寄存器表、RAM、存储器软件和适用于本发明的存储器硬件中的任何一个或组合来实现)在队列末尾的各自时间顺序位置306A和306B处,并最终经由110B传送或复制到在音频DMA 112内的存储器处置器308(其可以用缓冲器128、寄存器、寄存器表、RAM、存储器软件和适用于本发明的存储器硬件中的任何一个或组合来实现)在队列末尾的各个时间顺序位置310B和310C并最终通过114播放。根据各种实施例,间隙时间309是预先确定的并且是USB音频数据和音频回放数据之间的时间。在优选实施例中,该间隙时间应该尽可能短,例如2ms。
更详细地说,中间缓冲器302和音频DMA 112通常在指针310A处开始播放,但是进入的实际数据将被复制到将在2ms后播放的位置。完成这2ms的播放是为了允许一些调整余地以减轻任何同步问题。该2ms间隙时间是可定制的,由每个USB设备104定义。然而,对于低延迟音频***,该间隙时间应该被最小化。该间隙时间的增加会影响音频***的延迟并可能导致收听问题。
使用中间缓冲器302的优点是它可以减轻音频传输丢失的问题,而不会使读写指针相互交叉。这是因为中间缓冲器302可操作以实时动态和/或自动调整其大小。大小的调整将基于解决任何多进程同步问题或未传送音频数据问题。在优选实施例中,调整将最小化***中的延迟。中间缓冲器302可以被实现为存储器(例如,RAM)。此外,中间缓冲器302连同USB控制器108、音频DMA 112和处理器/控制器312相互通信耦合314,其中处理器/控制器312被配置用于管理USB设备104中的数据。根据本发明的各种实施例,处理器/控制器312被配置用于根据图4中的流程图400在媒体设备中执行数据管理。
在USB设备104中实施本发明的正常情况下,音频数据流将通过USB控制器108,然后是中间缓冲器302,然后是音频DMA 112,然后是DAC 116。此外,处理器/控制器312可以与处理器/控制器122相同或与处理器/控制器122是分开的。
图4是根据本发明的各种实施例的媒体设备104中进行数据管理的流程图400。流程图400可以实时执行。
在步骤402,执行发起USB主机102和USB设备104之间的音频流。执行完步骤402后,进入步骤404。
在步骤404,执行确定/检测是否存在丢失的数据。这包括确定是否存在音频数据未传送。可以使用任何技术来执行该确定。例如,这可以通过查看阈值间隙时间来完成。也就是说,一旦达到阈值间隙时间,音频数据传送就可以归类为不可靠的(例如,不是从USB主机发送的)。如果确定是否定的,则再次进行执行步骤404。如果确定是肯定的,则进行到步骤406。
在步骤406,执行将音频数据从中间缓冲器302馈送到音频DMA 112。通过将音频数据馈送到音频DMA 112,只要有数据要播放,就可以解决未传送音频数据的问题。将音频数据从中间缓冲器302馈送到音频DMA 112是尝试使间隙达到可接受的水平。在这种情况下,USB控制器108没有更多的音频数据进入。相反,只有来自中间缓冲器302的音频数据将被发送到音频DMA 112。在执行步骤406之后,进行到步骤408。
在步骤408,执行确定中间缓冲器是否已消耗超过阈值。步骤408可以包括确定在每次丢失音频数据发生期间使用的中间缓冲器流传输数据的平均值是否超过阈值(例如,超过当前中间缓冲器大小的95%)或者缓冲器是否完全耗尽预定次数(例如,耗尽一次)。如果该确定是否定的,则进行到步骤412。如果确定是肯定的,则进行到步骤410。
在步骤410,执行增大中间缓冲器大小(按某个倍数或百分比)。步骤410还可以包括重新计算和设置在步骤408中使用的下一阈值。在确定阈值时需要应用一些滞后来增大或减小中间缓冲器,以便缓冲器的大小不会快速连续上下反弹。通过增大中间缓冲器来缓冲更多数据,增大的目的是为了缓冲足够的数据,这样当丢失的数据再次出现时,缓冲的数据将足够长以缓解问题。执行完步骤410后,进入步骤416。
在步骤412,执行确定中间缓冲器是否已消耗小于阈值。步骤412可以包括计算每次出现丢失音频数据时消耗的流传输数据量的平均值,并确定该平均值是否已降至当前中间缓冲器大小的阈值以下(例如,小于中间缓冲器大小的70%)。另一种确定方法是在预定次数内对缓冲器消耗小于预定量(例如,缓冲器大小的2/3)的次数进行计数。如果该确定是否定的,则进行到步骤416。如果确定是肯定的,则进行到步骤414。
在步骤414,执行减小中间缓冲器大小(按某个倍数或百分比)。步骤414还可以包括重新计算和设置在步骤412中使用的下一阈值。在阈值的确定中需要应用一些滞后来增大或减小中间缓冲器,以便缓冲器的大小不会快速连续上下反弹。执行完步骤414后,进入步骤416。
在步骤416,执行发起中间缓冲器恢复。可以通过以下方式将中间缓冲器填充到原始间隙时间(例如2ms)来完成恢复:1)ASYNC反馈;2)人为添加样本(例如,接收可维持1ms的音频分组并取分组的最后一个样本(对于48kHz样本,则是1/48K)反馈给它)。ASYNC反馈不能保证USB主机可以足够快地填充中间缓冲器(在下一次丢失音频数据之前),因为它依赖于USB主机发送额外的数据,因此,人为添加样本将有助于在更短的时间内填充中间缓冲器。恢复在中间缓冲器增大的情况下很有用,但由于已经存在音频数据丢失,因此可能无法填充到原始间隙。当所有这些数据进入时,恢复对于再次填满中间缓冲器是有用的。无论中间缓冲器是否耗尽,都执行步骤416。执行完步骤416后,返回步骤404。
流程图400涵盖两种情况:1)增大中间缓冲器大小;2)减小中间缓冲器大小。在步骤412中存在可指示空的水平(例如,1/3空)的可调阈值。根据412中的确定,处理器/控制器312可以减小中间缓冲器302的大小以相应地减少延迟。如果中间缓冲器302被过度分配,则能够减小大小从而减少***中的延迟是有利的。例如,如果检测到丢失的音频并且中间缓冲器大小从2ms增大到4ms到8ms到16ms,此时它可以处理音频未传送问题,那么处理器/控制器312可以在有丢失数据的时候去监视中间缓冲器。这种监视可以微调理想的大小/时间(例如,10ms,与16ms相比),以在低延迟***中实现最小延迟。
根据一些实施例,流程图400包括将音频数据从中间缓冲器302馈送到音频DMA112以尝试使该间隙达到可接受的间隙。在这种情况下,USB控制器没有更多的音频数据进入。相反,只有来自中间缓冲器302的音频数据将被发送到音频DMA 112。中间缓冲器302中的音频数据最终将被耗尽。如果耗尽并且未传送小于或等于可接受的间隙时间2ms,则一切正常,因为USB控制器108获得音频数据并且中间缓冲器302再次被填满。如果耗尽且超过2ms,我们会人为地将样本(例如静默数据)发送到音频DMA以保持间隙。这是因为如果音频DMA中没有更多数据,就会发生与前面提到的相同的问题。同时,如果在这种情况下中间缓冲器已经耗尽,即中间缓冲器中的所有音频数据都用完了,那么***可以暂时归类为不可靠,需要更大的缓冲器。因此,当数据再次开始进入时,可以在下一轮增大中间缓冲器302。所以这意味着2ms会增大另外2ms到4ms。
本发明还涉及使用根据本发明的一个或多个实施例的计算机***。图5示出了可以与本发明的一个或多个实施例结合使用的典型计算机***500。计算机***500包括耦合到存储设备的一个或多个处理器502(也称为中央处理单元或CPU),存储设备包括主存储器506(通常为随机存取存储器或RAM)和另一主存储器504(通常为只读存储器或ROM)。如本领域公知的,主存储器504用于将数据和指令单向传送到CPU,并且主存储器506通常用于以双向方式传送数据和指令。这两个主存储设备都可以包括任何合适的计算机可读介质,包括计算机程序产品,该计算机程序产品包括机器可读介质,上面提供有根据本发明的一个或多个实施例的程序指令。
大容量存储设备508还双向耦合到CPU 502并提供额外的数据存储容量,并且可以包括任何计算机可读介质,包括计算机程序产品,该计算机程序产品包括机器可读介质,上面提供有根据本发明的一个或多个实施例的程序指令。大容量存储设备508可以用于存储程序、数据等,通常是比主存储器慢的二级存储介质,例如硬盘。应当理解,在适当情况下,大容量存储设备508内保留的信息可以标准方式并入作为主存储器506的一部分作为虚拟存储器。特定的大容量存储设备(例如CD-ROM)也可以将数据单向传送到CPU。
CPU 502还耦合到接口510,该接口包括一个或多个输入/输出设备,例如视频监视器、轨迹球、鼠标、键盘、麦克风、触敏显示器、换能器读卡器、磁带或纸带阅读器、平板电脑、手写笔、语音或手写识别器,或其他众所周知的输入设备,当然还有其他计算机。最后,CPU502可选地可以使用网络连接耦合到计算机或电信网络,如512所示。通过这样的网络连接,可以预期在执行上述方法步骤的过程中CPU可以从网络接收信息,或者可以将信息输出到网络。上述设备和材料对于计算机硬件和软件领域的技术人员来说是熟悉的。
尽管为了清楚理解的目的已经对上述发明进行了一些详细的描述,但显然可以在所附权利要求的范围内实施某些改变和修改。因此,本实施例被认为是说明性的而非限制性的,并且本发明不限于在此给出的细节,而是可以在所附权利要求的范围和等同物内进行修改。例如,本发明可以适用于存在生产者和消费者问题的任何***。这些***可以包括但不限于无线音频,例如蓝牙音频。
在本发明的一个方面,提供了一种用于低延迟***中在媒体设备中进行数据管理的方法。媒体设备包括初始中间缓冲器,该缓冲器存储来自主机的数据并且还以FIFO方法提供媒体回放输出流。该方法包括:1)发起接收具有媒体数据的媒体流;2)检测媒体流中丢失的媒体数据;和3)动态调节中间缓冲器以保持可接受的间隙时间来处理媒体流。
根据各种实施例,中间缓冲器是动态可调大小的缓冲器。进一步地,根据一个实施例,动态调节中间缓冲器包括:1)如果没有检测到丢失的媒体数据,则返回到检测的步骤;2)如果检测到媒体数据丢失,则继续从中间缓冲器馈入媒体回放流,以保持间隙时间;3)确定中间缓冲器是否耗尽,使得:1)如果中间缓冲器耗尽,则增大缓冲器大小并发起中间缓冲器的恢复;和2)其中如果中间缓冲器没有耗尽,则将发起中间缓冲器的恢复。然而,根据另一个实施例,动态调节中间缓冲器包括:1)如果没有检测到丢失的媒体数据,则返回到检测的步骤;2)如果检测到媒体数据丢失,则继续从中间缓冲器馈入媒体回放流,以保持间隙时间;3)确定中间缓冲器是否耗尽,使得:1)如果中间缓冲器耗尽,则增大缓冲器大小并发起中间缓冲器的恢复;和2)如果中间缓冲器没有耗尽,确定中间缓冲器是否已消耗小于预定义的阈值,以便:1)如果中间缓冲器已消耗小于该阈值,则减小中间缓冲器大小并发起中间缓冲器的恢复;2)如果中间缓冲器的已消耗不低于该预定义的阈值,则将发起中间缓冲器的恢复。
在本发明的另一方面,提供了一种用于低延迟***中的媒体设备中的数据管理的***。该***包括:1)媒体输入输出接口,用于接收媒体流;2)中间缓冲器,在处理媒体流时具有初始可接受间隙时间;3)处理器,用于动态调节中间缓冲器以保持可接受的间隙时间来处理媒体流。
本发明扩展到包含指令序列的机器可读介质,当由机器执行时,这些指令使机器执行这里描述的任何方法。
本发明的一些优点包括:1)中间缓冲器大小的自动调整以最小化***中的延迟;2)输出中基本上没有伪影;3)实时执行;4)对生产者和消费者之间各种媒体数据丢失的鲁棒处理和适应性。

Claims (9)

1.一种用于低延迟***中在媒体设备中进行数据管理的方法,所述媒体设备具有第一存储器处置器和第二存储器处置器,所述第一存储器处置器和所述第二存储器处置器在处理媒体流时具有可接受的间隙时间,所述方法包括:
发起接收具有媒体数据的所述媒体流;
检测所述媒体流中丢失的媒体数据;以及
动态调节所述第一存储器处置器和所述第二存储器处置器,以保持所述可接受的间隙时间来处理所述媒体流,
其中,所述第一存储器处置器与固定大小的存储器相关联,并且所述第二存储器处置器与动态可调整大小的存储器相关联,所述动态可调整大小的存储器是介于媒体流的源设备和所述固定大小的存储器之间的中间存储器。
2.如权利要求1所述的方法,其中,动态调节所述第一存储器处置器和所述第二存储器处置器包括:
其中,如果未检测到丢失的媒体数据,则返回到所述检测的步骤;
其中,如果检测到丢失的媒体数据,则将媒体数据从所述第二存储器处置器馈送到所述第一存储器处置器;并且
确定所述第二存储器处置器是否已消耗高于第一阈值,
其中,如果第二存储器处置器已消耗高于所述第一阈值,则增大第二存储器处置器大小并发起所述第二存储器处置器的恢复;并且
其中,如果第二存储器处置器已消耗不高于所述第一阈值,则发起所述第二存储器处置器的恢复。
3.如权利要求1所述的方法,其中,动态调节所述第一存储器处置器和所述第二存储器处置器包括:
其中,如果未检测到丢失的媒体数据,则返回到所述检测的步骤;
其中,如果检测到丢失的媒体数据,则将媒体数据从所述第二存储器处置器馈送到所述第一存储器处置器;并且
确定所述第二存储器处置器是否已消耗高于第一阈值,
其中,如果所述第二存储器处置器已消耗高于所述第一阈值,则增大加第二存储器处置器大小并发起所述第二存储器处置器的恢复;
其中,如果所述第二存储器处置器已消耗不高于所述第一阈值,则确定所述第二存储器处置器是否已消耗小于第二阈值,
其中,如果所述第二存储器处置器已消耗小于所述第二阈值,则减小所述第二存储器处置器大小并发起所述第二存储器处置器的恢复;并且
其中,如果所述第二存储器处置器已消耗不小于所述第二阈值,则发起所述第二存储器处置器的恢复。
4.一种用于低延迟***中在媒体设备中进行数据管理的***,所述***包括:
媒体输入输出接口,用于接收媒体流;
第一存储器处置器,在处理所述媒体流时具有第一可接受的间隙时间;
第二存储器处置器,在处理所述媒体流时具有第二可接受的间隙时间;以及
处理器,用于动态调节所述第一存储器处置器和所述第二存储器处置器,以保持所述可接受的间隙时间来处理所述媒体流,
其中,所述第一存储器处置器与固定大小的存储器处置器相关联,并且所述第二存储器处置器与动态可调整大小的存储器处置器相关联,所述动态可调整大小的存储器是介于媒体流的源设备和所述固定大小的存储器之间的中间存储器。
5.如权利要求4所述的***,其中,动态调节所述第一存储器处置器和所述第二存储器处置器包括:
其中,如果未检测到丢失的媒体数据,则返回到所述检测的步骤;
其中,如果检测到丢失的媒体数据,则将媒体数据从所述第二存储器处置器馈送到所述第一存储器处置器;和
确定所述第二存储器处置器是否已耗尽,
其中,如果第二存储器处置器已耗尽,则增大第二存储器处置器大小并发起所述第二存储器处置器的恢复;并且
其中,如果第二存储器处置器没有耗尽,则发起所述第二存储器处置器的恢复。
6.如权利要求4所述的***,其中,动态调节所述第一存储器处置器和所述第二存储器处置器包括:
其中,如果未检测到丢失的媒体数据,则返回到所述检测的步骤;
其中,如果检测到丢失的媒体数据,则将媒体数据从所述第二存储器处置器馈送到所述第一存储器处置器;并且
确定所述第二存储器处置器是否已耗尽,
其中,如果所述第二存储器处置器已耗尽,则增大第二存储器处置器大小并发起所述第二存储器处置器的恢复;并且
其中,如果所述第二存储器处置器没有耗尽,则确定第二存储器处置器是否已消耗小于阈值,
其中,如果所述第二存储器处置器已消耗小于阈值,则减小所述第二存储器处置器大小并发起所述第二存储器处置器的恢复;和
其中,如果所述第二存储器处置器已消耗不小于阈值,则发起所述第二存储器处置器的恢复。
7.一种计算机可读存储介质,其上存储有指令,所述指令当被执行时使得用于低延迟***中在媒体设备中进行数据管理的操作被执行,所述媒体设备具有在处理媒体流时具有可接受的间隙时间的第一存储器处置器和第二存储器处置器,所述操作包括:
开始接收具有媒体数据的所述媒体流;
检测所述媒体流中丢失的媒体数据;以及
动态调节所述第一存储器处置器和所述第二存储器处置器,以保持所述可接受的间隙时间来处理所述媒体流,
其中,所述第一存储器处置器与固定大小的存储器处置器相关联,并且所述第二存储器处置器与动态可调整大小的存储器处置器相关联,所述动态可调整大小的存储器是介于媒体流的源设备和所述固定大小的存储器之间的中间存储器。
8.如权利要求7所述的计算机可读存储介质,其中,动态调节所述第一存储器处置器和所述第二存储器处置器包括:
其中,如果未检测到丢失的媒体数据,则返回到所述检测的步骤;
其中,如果检测到丢失的媒体数据,则将媒体数据从所述第二存储器处置器馈送到所述第一存储器处置器;并且
确定所述第二存储器处置器是否已消耗,
其中,如果第二存储器处置器已消耗,则增大第二存储器处置器大小并发起所述第二存储器处置器的恢复;并且
其中,如果第二存储器处置器没有消耗,则发起所述第二存储器处置器的恢复。
9.如权利要求7所述的计算机可读存储介质,其中,动态调节所述第一存储器处置器和所述第二存储器处置器包括:
其中,如果未检测到丢失的媒体数据,则返回到所述检测的步骤;
其中,如果检测到丢失的媒体数据,则将媒体数据从所述第二存储器处置器馈送到所述第一存储器处置器;并且
确定所述第二存储器处置器是否已消耗,
其中,如果所述第二存储器处置器已消耗,则增大所述第二存储器处置器大小并发起所述第二存储器处置器的恢复;并且
其中,如果所述第二存储器处置器没有消耗,则确定所述第二存储器处置器是否已消耗小于阈值,
其中,如果所述第二存储器处置器已消耗小于阈值,则减小所述第二存储器处置器大小并发起所述第二存储器处置器的恢复;并且
其中,如果所述第二存储器处置器已消耗不小于阈值,则发起所述第二存储器处置器的恢复。
CN202080014928.9A 2019-02-18 2020-02-14 用于媒体设备中的数据管理的***和方法 Active CN113455011B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962807225P 2019-02-18 2019-02-18
US62/807,225 2019-02-18
PCT/SG2020/050077 WO2020171776A1 (en) 2019-02-18 2020-02-14 System and method for data management in a media device

Publications (2)

Publication Number Publication Date
CN113455011A CN113455011A (zh) 2021-09-28
CN113455011B true CN113455011B (zh) 2023-10-24

Family

ID=69743892

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080014928.9A Active CN113455011B (zh) 2019-02-18 2020-02-14 用于媒体设备中的数据管理的***和方法

Country Status (4)

Country Link
US (1) US11924506B2 (zh)
CN (1) CN113455011B (zh)
TW (1) TW202106040A (zh)
WO (1) WO2020171776A1 (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101059980A (zh) * 2006-04-11 2007-10-24 诺基亚公司 用于进行自适应媒体缓冲的媒体子***、方法和程序产品
WO2012145249A1 (en) * 2011-04-20 2012-10-26 Mobitv, Inc. Real-time processing capability based quality adaptation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7634227B2 (en) * 2006-03-29 2009-12-15 Sony Ericsson Mobile Communications Ab Method and system for controlling audio data playback in an accessory device
US9135951B2 (en) * 2006-10-10 2015-09-15 Qualcomm Incorporated System and method for dynamic audio buffer management
US8824568B2 (en) * 2008-01-28 2014-09-02 Entropic Communications, Inc. Device and method for decoding digital TV broadcast
US7974190B2 (en) * 2009-02-12 2011-07-05 Micrel, Inc. Dynamic queue memory allocation with flow control
GB2521883B (en) * 2014-05-02 2016-03-30 Imagination Tech Ltd Media controller
US9985887B2 (en) * 2015-08-27 2018-05-29 Cavium Inc. Method and apparatus for providing a low latency transmission system using adaptive buffering estimation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101059980A (zh) * 2006-04-11 2007-10-24 诺基亚公司 用于进行自适应媒体缓冲的媒体子***、方法和程序产品
WO2012145249A1 (en) * 2011-04-20 2012-10-26 Mobitv, Inc. Real-time processing capability based quality adaptation

Also Published As

Publication number Publication date
US11924506B2 (en) 2024-03-05
TW202106040A (zh) 2021-02-01
WO2020171776A1 (en) 2020-08-27
US20220141526A1 (en) 2022-05-05
CN113455011A (zh) 2021-09-28

Similar Documents

Publication Publication Date Title
JP5382133B2 (ja) マルチコアシステム、マルチコアシステムの制御方法及びプログラム
CN101567849B (zh) 一种数据缓存方法和装置
JP3127523B2 (ja) 通信制御装置およびデータ送信方法
EP1903447B1 (en) Audio processor, input/output processing apparatus, and information processing apparatus
US11010094B2 (en) Task management method and host for electronic storage device
CN113300797B (zh) 一种多设备自适应音频同步播放方法及处理终端
GB2500082A (en) Delaying the transmission of data from a memory device until the output buffer of the memory device contains the data for the transfer
KR100944892B1 (ko) 버스 시스템 및 버스 인터페이스
KR100829643B1 (ko) 이벤트 타임-스탬핑
US10169273B2 (en) Forced compression of single I2C writes
CN113455011B (zh) 用于媒体设备中的数据管理的***和方法
US20130108083A1 (en) Audio processing system and adjusting method for audio signal buffer
TW200935237A (en) Data transfer rate throttling for serial interface mass storage devices
US20030061414A1 (en) Controlling data flow between processor systems
WO2018153020A1 (zh) 音频数据处理方法和装置、音频输出设备及存储介质
US12009916B2 (en) Radio frequency condition aware audio buffering
JP2004302680A (ja) 情報処理装置、割込制御装置、制御方法、及びこれらのプログラムと記録媒体
US9032112B1 (en) Automatic direct memory access (DMA)
CN116107635A (zh) 命令分发器、命令分发方法、调度器、芯片、板卡、设备
US7729259B1 (en) Reducing latency jitter in a store-and-forward buffer for mixed-priority traffic
CN106407149A (zh) 通用序列总线音频传输调整的装置与方法
CN106559704B (zh) 一种音频数据的处理方法、装置和***
CN113196695B (zh) 射频状况感知的音频缓冲
JP2005292375A (ja) オーディオ再生装置およびクロック周波数制御方法
EP3963895B1 (en) Bluetooth earphone adaptive audio playback speed

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant