CN1707435A - 在多线程环境下的处理单元中处理数据的方法和设备 - Google Patents

在多线程环境下的处理单元中处理数据的方法和设备 Download PDF

Info

Publication number
CN1707435A
CN1707435A CNA2005100759037A CN200510075903A CN1707435A CN 1707435 A CN1707435 A CN 1707435A CN A2005100759037 A CNA2005100759037 A CN A2005100759037A CN 200510075903 A CN200510075903 A CN 200510075903A CN 1707435 A CN1707435 A CN 1707435A
Authority
CN
China
Prior art keywords
timer
processing unit
value
data
thread
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
CNA2005100759037A
Other languages
English (en)
Other versions
CN1707435B (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.)
Thomson Licensing SAS
International Digital Madison Patent Holding SAS
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of CN1707435A publication Critical patent/CN1707435A/zh
Application granted granted Critical
Publication of CN1707435B publication Critical patent/CN1707435B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4825Interrupt from clock, e.g. time of day
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24549Run-time optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Transfer Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)

Abstract

披露了一种用于在多线程环境下改进处理单元(14)的定时行为的方法,其中处理单元(14)通过合并来自多个输入单元(11、12和13)的数据来产生用于输出单元(16)的数据帧,并且将已处理的数据缓冲在处理单元和输出单元之间的输出缓冲器(15)中。该方法包括:将与输出缓冲器的填充相对应的值从输出单元发送到处理单元(18);计算定时器值;用定时器值来设置定时器(21),其中定时器在特定时间后调用处理单元线程。定时器值取决于与平均输出缓冲器的填充相对应的值。结果,该平均输出缓冲器(15)的填充与传统线程管理相比是较低的,因此系统更灵活、反应更快。

Description

在多线程环境下的处理单元中处理数据的方法和设备
技术领域
本发明涉及一种用于在处理单元中处理数据的方法。特别的,本发明涉及一种用于在处理单元中处理数据的方法,其中处理单元通过合并来自多个输入单元的数据,产生用于输出单元的数据帧,其中所述处理单元、输入单元和输出单元是多线程(multithreading)环境下的线程。
背景技术
根据被称为MPEG-4系统的运动图象专家组(MPEG)标准ISO/IEC-14496-1来编码的音频-视频(AV)表述(presentation)可以由几组数据流组成,例如,一个或多个用于视频的数据流、一个或多个用于音频的数据流和其它。对于其不同类型,音频流可以具有单独的、通常标准化的采样速率,例如8kb/s、16kb/s、22.05kb/s、32kb/s、44.1kb/s或48kb/s。此外,这些数据流还包括具有附加时间标记的数据包或数据帧。
这种表述的再现需要用于不同数据流的单独的解码单元、处理单元以及一个或多个输出单元。这些解码、处理和输出单元可以应用所谓的多线程技术、使用带操作系统(OS)和应用软件的微处理器来实现,其中作为单独的软件部分来实现所提及的单元,也称为“任务”或“线程”。线程是可执行软件的独立单元,其顺序地共享具有其它线程的微处理器的控制。由于顺序地调用并执行线程,则其彼此异步工作,并且可以通过由操作系统提供的消息应用编程接口(API)或通过函数调用,来彼此互相通信。线程之间的数据传输要求缓冲数据,其中通常应用同步FIFO式结构来进行缓冲。然而,得到再现的合格质量要求例如音频流的输出数据流在输出单元是连续和完整的,也就是说,必须阻止任何缓冲器下溢和缓冲器上溢。为了确保在输出单元处恒定的数据可用性,通常在处理单元和输出单元之间使用大容量的FIFO缓冲器。
图1示出了传统的音频处理系统。通过帧FIFO 11b,将来自源流的解码数据块从解码器11读入到处理单元14,在此其被处理。将已处理的数据块写入到提供输出模块16的块组织FIFO 15。输出模块16同时使用几个解码数据块来产生音频表示(representation)数据的连续流17,该音频表示数据来自从帧FIFO 15读取的数据块。当FIFO 15没有充满时,其发送例如异常消息的信号18到处理单元14。然后,处理单元14处理更多来自其输入端的数据,直到FIFO充满。
可以在实时操作系统(RTOS)或非RTOS式,例如MicrosoftWindows上实现这样的系统。在后面的情况下,因为其比RTOS更便宜、更简单,因此更优选地,分离的线程11T、14T和16T分别用于解码器11、处理单元14和输出模块16。
发明内容
为了一些应用,希望同时处理来自不同源的数据,其中源可以具有不同的帧速率和/或采样速率,并且需要不同的解码器。例如,有必要重叠(superpose)来自几个输入端的音频信号,例如十个或更多。
图2示出了简明的解决方案:几个解码器11、12、13与处理单元14连接。解码器11、12和13在不同的线程中运行,并且通过调用各自的线程,OS的线程管理控制处理不同输入数据的顺序。典型的,只要在输入缓冲器中有数据要处理和在输出缓冲器中有空间用于写入,则线程是有效的(active)。处理单元14合并来自其所有输入缓冲器11b、12b和13b的数据,因此要求在所有这些缓冲器中,数据是可用的。结果,处理单元14的连续调用之间的时间变得长于单一的输入系统,因为与通过OS的现场管理来控制相同,每一个解码器单元11、12、13试图完全填充其各自的输出缓冲器11b、12b和13b。因此,要被处理的数据的总数目也比在单一的输入系统中更高。这导致填充输出缓冲器的更强振荡。具体地,当微处理器过量负载时,系统可能变得太慢而不能处理输入的流数据,所述流数据要求与实时类似处理,并且如果线程管理用于通用目的而没有被最优化,则由于一种瓶颈效应,其甚至可以滞塞。这可以导致数据损失,即,不是所有的输入数据到达输出模块16,对于一些数据类型,这是不可接受的,例如高品质音频数据。
在例如音频视频表述应用的非RTOS下运行的所述多输入系统导致处理单元在过载情况下的不可预知的定时行为,例如,当要处理来自几个不同音频源的输入数据时,而微处理器又不得不去执行其它任务。结果,由于在音频包的解码和在输出单元的音频再现之间的不可预知的延迟,音频和视频之间的同步是困难的。此外,处理单元线程的连续调用之间的较长时间也导致对于用户交互的更长响应时间,例如在多线程系统中也通常被处理单元执行的命令。因此,用户命令变得有效要花费更长的时间。
通过本发明要解决的问题是提供一种方法,用于改进处理单元的定时行为,其中处理单元通过合并来自多个输入单元的数据,产生用于输出单元的数据,其中所述所有单元是多线程环境下的线程,并且可以具有不同的时基(time base)。具体的问题是提供一种方法,用于多种多媒体流数据的音频或音频视频再现设备。通过权利要求1披露的方法来解决这个问题。
根据本发明,通过在较短的时间间隔内调用处理单元、使用比OS线程管理级别高的机制来改进定时行为。具体地,本发明包括使用定时器单元来调用处理单元线程,以及单独设置定时器。有利地,这导致微处理器处理性能的更连贯的分布。此外,本发明的方法可以增加独立于OS现场管理的处理单元线程的优先级,并且减少填充输出缓冲器的振荡。这导致例如更好的音频视频同步和对于用户交互的更短延迟。
无论何时调用处理单元线程,测量输出缓冲器的填充,并且利用测量结果来确定下次调用处理单元线程之前的时间。例如,在初始化期间,只要填充低于定义的阀值,处理单元重复以下循环:处理帧,将之写入到输出缓冲器,并且再次测量输出缓冲器填充,其中不设置定时器单元。当输出缓冲器达到该阀值时,根据所测量的输出缓冲器填充来计算定时器值,并利用计算的定时器值来设置定时器单元,其中当经过其时间时,定时器调用处理单元线程,并且直到定时器或OS的线程管理再次调用时,处理单元线程结束。
由定时器值确定时间周期,从而通常由定时器来调用处理单元,而不是由OS的线程管理来调用。因此,处理单元处理连续帧之间的时间取决于输出缓冲器的填充,这意味着停止调节循环,因此改进了调节。具体地,当输出单元在例如80ms的规则时间间隔内处理来自输出缓冲器的输出帧时,并且输出帧包括多个输入帧,其中每一个输入帧具有特定的采样速率,本发明包括:利用数值来设置定时器,所述数值与输入采样速率的倒数的公倍数相对应,且小于输出单元时间间隔。特别有利的,挑选输入采样速率的倒数的公倍数,或尤其是最小公倍数,例如,用于采样速率为48kHz、44.1kHz、32kHz、22.05kHz、16kHz和8kHz的20ms与20.83μs、22.67μs、31.25μs、45.35μs、62.5μs和125μs的倒数相对应。
当为了处理例如音频数据的特定输出数据流的帧,利用定时器来调用处理单元线程,并且定时器的负载值取决于输出缓冲器的填充时,正如本发明所建议的,处理单元可以在初始化阶段后、在实质上等距的时间间隔内工作。有利的,使用用于计算定时器值的平均缓冲器填充值。将通过少数来自线程的连续调用的测量值来计算平均值,例如2-5个测量值。例如,能够使用更多的平均测量值的低通滤波来改进系统时间行为。
能够使用由公共微处理器提供的通用定时器来平均保持在用于特定输出单元的连续帧之间的特定最大值时间。定时器实时运行并独立于线程管理。微处理器和/或操作系统通常提供这样的定时器。通用定时器触发用于解码下一帧的处理单元线程。然后,将一新值装入定时器,根据缓冲器的填充来计算该值。
有利地,简单的计算能够用于此目的,例如将平均缓冲器填充输入到线性等式中。在此情况下,还可以首先将测量值输入到线性等式中,然后计算平均值。该方法保证了无损的流访问,即,防止缓冲器下溢和缓冲器上溢,并且保证处理期间恒定的最小延迟。例如,这有利于更好的音频视频同步和对于用户交互的更快响应。
通过定时器测量的时间是相对于以下事实的平均最大时间:当任务被触发时,微处理器忙于其它的任务,因此其不得不在影响该触发之前结束其它的任务。当输出缓冲器足够大以致输出单元能够继续工作时,可以处理这种情况。
结果,存储在处理单元和输出单元之间的FIFO缓冲器中的数据帧或块的平均数目能够低于传统系统,例如,这导致更短的响应时间、音频数据的表述时间的更好估计,因此改进了音频视频同步,以及非实时系统中实时行为的通常更好的近似。
在权利要求8中披露了使用该方法的设备。
用于处理数据的本发明的设备接收来自多个输入端的输入数据,并且包括:微处理器、例如程序数据的数据集合和定时器,其中微处理器和数据集合组成了数据处理单元和数据输出单元,这两个单元均为多线程环境下的线程,其中通过缓冲器将数据从处理单元传送到输出单元。此外,所述设备还包括:测量装置,用于测量与输出缓冲器的填充相对应的值,并且将该值提供到处理单元;计算装置,用于在处理单元中计算定时器值,其中定时器值取决于与输出缓冲器的填充相对应的所述值;以及设置装置,用于使用定时器值来设置定时器并启动定时器,其中当经过了由定时器值指定的时间时,定时器发送通知,如果处理单元线程仍没有激活,该通知使其激活,或相反使其继续激活。
如果按照本发明设备的输入以至少两个不同的恒定输入数据速率提供数据,则使用本设备是最有利的。本发明包括:当测量的缓冲器填充在预定义的最小和最大值之间时,只使用定时器;通过定时器值指定的、由预定义的平均缓冲器填充值产生的时间是输入端的数据速率的倒数的最小公倍数。此外,定时器值和输出缓冲器填充值的关系可以是线性的。
与现有技术相比,本发明具有下列的优点:
首先,在具有非实时行为的系统中,可以得到更好的近似实时处理;
其次,可以改进对于输出单元的表述时间的时间估计,以造成较好的同步,如音频/视频同步;
第三,可以执行单独的逐帧处理(framewise),因此最优化地访问与处理单元连接的源流。
在随后的权利要求、下列的说明和图中,披露了本发明的有利实施例。
附图说明
参考附图来描述本发明的典型实施例,其中:
图1传统的单输入音频处理系统;
图2扩展的传统音频处理系统;
图3扩展的传统处理系统中,突发数据帧传输到缓冲器的定时;
图4扩展的传统处理系统的缓冲器填充图;
图5根据本发明的改进音频处理系统;
图6在本发明处理系统中帧的等距处理;
图7本发明数据处理方法的流程图;
图8本发明处理系统的缓冲器填充图;以及
图9本发明处理单元线程的定时行为。
具体实施方式
下面,在描述本发明的优选实施例之前,将更详细描述现有技术系统的问题。
图2示出了处理单元14,所述处理单元14作为具有几个多媒体源流的系统的中心,这些源流由各自的解码器11、12和13解码并在各自的缓冲器11b、12b和13b中进行缓冲。解码器11、12和13属于离散时间域或线程,其独立于处理单元14的时间域。处理单元14使来自不同源的数据之间的时间标记同步。将处理单元14的输出传送到面向帧(frame-oriented)的FIFO缓冲器15。来自缓冲器15的信号18将缓冲器填充水平传送到处理单元14,因此当缓冲器的填充15低于定义的水平时,则要求更多的数据以致阻止下溢。缓冲器15的输出由输出模块16驱动,输出模块16在缓冲器输出17处需要规则时间间隔的数据。因此,输出模块确定填充,还确定FIFO缓冲器15的帧速率。输出缓冲器15的帧大小取决于输出模块16的需求,但是通常缓冲器15是非常大的,例如15帧。在这种系统的典型软件实现中,输出模块16在独立于其它线程的自己的线程中运行,特别是独立于输入缓冲器线程和处理单元14的线程。
输出缓冲器15是处理单元14线程和输出模块16线程之间的通信组件。当要求输出缓冲器15的填充时,处理单元14将数据写入到输出缓冲器15,直到缓冲器填满。然后,处理单元14进行等待,即,什么都不做或执行其它任务,直到输出模块16从输出缓冲器15读取数据块。因此,输出模块16确定输出缓冲器15的填充,并依次来确定处理单元14的激活。
这种面向线程的处理引起如图3所示的典型音频数据流的特性。在此实例中,输出模块具有80ms的等效时间(time equivalent),即,例如按照与在48kHz处的3840音频采样相对应的80ms音频帧工作,而对于20ms音频再现,解码帧是充分的。因此,在80ms的空闲时间dT后,处理单元紧接着接收四个处理调用c1,…,c4。图4a示出了输出缓冲器的结果填充,其主要在7或8及11解码帧之间进行变化。如图4b所示来平均数值,然后,如图4c所示,低通滤波示出了在缓冲器中平均存在差不多10个解码帧。采用的传统算法始终试图保持输出缓冲器充满。
图3和图4a示出,当从FIFO取走数据块时,将处理单元调用了4次,即,只要输出缓冲器不满就调用处理单元。对于非RTOS的线程管理,这种时间行为是典型的。
对于多种多媒体流数据,处理单元不得不确保无损数据流访问和恒定最小延迟处理。一个实例是用于MPEG-4播放器的多输入音频再现器。
根据本发明,解决方案是通过使用能够从处理单元进行设置、且比OS的线程管理级别高的定时器,来近似用于处理的等距起始点。这在图5中示出。除了定时器单元21与处理单元14连接外,该系统与先前描述的图2的系统类似。定时器单元独立于线程管理,具体地,其不是处理单元线程的一部分。处理单元14用数值来设置定时器21,例如在其信号处理之后,然后启动定时器并进入等待模式,所以微处理器能够做其它事情。当定时器达到程序时间的最后时,其再次调用或“唤醒”处理模块。处理模块没有做其特定处理,而利用一新值来设置定时器,所以处理单元能够再次等待一段特定时间,等等。原则上,能够在信号处理之前或之后计算定时器值,但是由于在处理单元中进行该计算,并且能够中断处理单元线程,则较早地计算定时器值是优选的。然后,能够尽可能早地启动定时器,所以在潜在的线程中断处激活定时器的可能性是较高的。
按照下面的方式从输出FIFO模块的饱和中产生定时器值:测量FIFO缓冲器的实际填充。然后,通过最后的四次测量值计算填充的平均值并将其进行低通滤波,例如,通过带有0、1的归一化截止频率的3阶滤波器进行滤波。该信号产生了具有如下形式的限幅线性函数的定时器值:
定时器值=k1*填充值+k2
其中,k1必须是正的,在此情况下的填充值是填充测量的低通滤波平均值。当使用定时器时,参数k2定义了最小值,而k1定义了调节的灵敏度。
发现定义系统控制回路增益的等式的通用方法如下:首先,单独限定调节的调整范围,也就是缓冲填充必须在最小值和最大值之间,例如2<缓冲器填充<11。然后,定义目标填充,在该例中其是八个块。尽管由于其简化性而在此使用线性等式,还可以使用等式的其它类型。原则上,当在作为目标填充的操作点周围来近似线性等式时,也能够使用该例子。然后,能够如下定义与以上实例中的k1和k2相对应的斜率和偏移量:当定时器值是定时器应被设置的值,并且填充值是经平均和低通滤波后的缓冲器填充值时,对于操作范围的下限,定时器值将是0而填充值是2。因此:
k2=-2*k1
此外,对于八个平均缓冲填充,应导致20ms的间隔时间。因此:
20=k1*8-2*k1
其计算k1=10/3和k2=-20/3。最后,定时器值经舍入而成为整数:
定时器值=integer(10/3*x-20/3+0.5)
相对于只有当测量值“填充值”至少为3且不大于11时使用,对函数进行限幅。这如图7所示。当测量值小于3时74,不使用定时器并且处理单元立即继续710下一帧。当测量值大于11时72,在采用另外的测量值71之前,处理单元使用线程管理函数,在已定义的一段时间73,例如1ms内暂停。然而,OS线程管理能够在任何时候中断处理单元线程。如果测量值在定义的范围内,在将其输入到上述的等式77之前,将其进行平均75并进行低通滤波76。当例如音频数据块的数据块的处理79开始时,等式77产生用于设置定时器78的数值。然后,定时器触发711处理单元线程的下一个调用。因此,WaitForTimer()步骤711实际上不是线程程序的一部分,而根据本发明是处理的一部分。
例如,将k1设置为10/3,而将k2设置为-20/3。如上所述,这造成以每帧20ms的8帧来平均输出缓冲器填充。图6中示出了处理单元的这种调节效果。点代表处理单元随时间的调用并且是接近线性的序列,这意味着处理单元的几乎等距调用。作为这种准确的时间行为的重要结果,可以更好的估计已处理数据的表示时间,并且可以包括估计输出模块的缓冲模型。这是因为缓冲器的中值饱和现在是众所周知的,由于能够对其进行调整,并且可以更准确的测量处理时间。使用这种知识,对于AV再现,例如能够获得更好的音频/视频(AV)同步和用于处理算法的用户交互的改进影响。
图8示出了根据本发明的系统的结果行为。图8a示出了平均起来比图4a中更灵活和更低的缓冲器填充。这意味着在输出缓冲器中有平均起来较少的数据。当考虑到图8b所示对4个20ms帧平均的平均缓冲器填充,并进一步由图8c所示的低通滤波进行平均时,这种效果变得更清楚。最后图8d示出了由低通滤波的平均填充值计算的定时器值。当输出缓冲器相对满时,例如在时间t81,由于上述的k1是正的,则图8c中的低通滤波的平均填充值为高,并且定时器值也为高。因此,处理单元的连续调用间的时间相对较长,约为或多于20ms。当低通滤波的平均填充值为低时,定时器值为低,或因为定时器值低于特定的最小值3,例如在时间t82,甚至停止定时器,所以处理单元在每次调用时处理多于一帧。
图9示出了根据本发明的一个实施例的处理单元的时间行为。在时间T0,计算定时器值,用该值设置定时器并且启动帧处理。经过时间t0后OS终止处理单元线程。假设在此时间内处理完可用的数据。定时器继续运行tp0的一段时间,然后在T1再次调用处理单元线程,因此,由于先前调用处理单元,则时间差是T=t0+tp0。在T1处理单元,线程变得再次有效,测量缓冲填充,计算如上所述的定时器值并设置定时器。然后,继续其帧处理,直到t11时间后,线程管理将其中断,并且将处理能力给予其它过程。定时器继续运行。Tp1之后,线程管理再次调用处理单元线程,为了持续一段附加时间t12,数据包的处理在T1开始。当在T2出现下次定时器事件时,处理仍正在进行并且持续更长的时间tD2,但是存储了定时器事件。当现在的线程在T2+tD2结束时,立即重新启动该线程并测量缓冲填充。假设在此时缓冲器相对为空,因为其是连续空,则计算比以前低的定时器值,其与下一次定时器周期的更短时间T’相对应。该时间T’等于或近于T-tD2,取决于从缓冲器填充推出定时器值的线性等式,因此,对于处理单元线程的开始时间,实现了实质上等距的时间光栅(raster)。
尽管一个或多个具体的线程的开始时间能够在时间光栅之外,例如在T2+tD2,根据本发明的方法适于重建光栅。此外,实际的定时器值适合现在的情况,因此能够调整处理单元具有的平均时间。光栅时间T是处理单元的连续调用之间的平均值,其能够通过适当选择参数k1和k2而被准确调整到应用,因此处理单元的时间行为能够适合输出单元和输入单元的时间行为,其阻止处理单元的阻塞。
通常,有利地,选择光栅时间,即,当平均输出时间间隔是N*M毫秒时,处理单元的连续调用之间的平均时间是M毫秒,而N是大于1的正整数。
本发明包括当使用定时器单元时的不同可能性。优选地,在测量缓冲填充之后立即计算定时器值并设置定时器,尽管原则上能够存储测量值并之后应用于计算,例如在线程的开始序列或退出序列内。
在本发明的一个实施例中,计算定时器值总是在处理帧之前。在另一个实施例中,无论何时调用处理单元线程,计算定时器值,作为线程的开始序列。在另一个实施例中,只有在终止处理单元线程之前,计算定时器值,作为线程的退出序列的一部分。在一个实施例中,在计算定时器值之后立即设置定时器单元。在另一个实施例中,之后或总是在终止处理单元线程之前,设置定时器单元来作为线程的退出序列的一部分。
本发明特别有利于在处理器过载的风险较高的多线程环境下实现多信道输入音频再现器,例如对于MPEG-4或类似。

Claims (10)

1.一种用于在处理单元(14)中处理数据的方法,所述处理单元通过合并来自多个输入单元(11,…,13)的数据来产生用于输出单元(16)的数据帧,其中将已处理的数据缓冲在处理单元和输出单元之间的输出缓冲器(15)中,并且其中处理单元、输入单元和输出单元是多线程环境下的线程并且共享同一微处理器,其特征在于,所述方法包括步骤:
测量输出缓冲器(15)的填充,其中测量结果是等于输出缓冲器的填充的数值;
从所述已测量的数值计算定时器值;
利用计算的定时器值来设置定时器(21)并启动定时器,其中当经过由定时器值指定的时间时,定时器发送通知,该通知涉及处理单元线程;以及
如果线程不是有效的,则所述通知激活处理单元线程,或相反地,继续激活处理单元线程。
2.根据权利要求1所述的方法,其中定时器值的计算包括:平均和/或低通滤波多个已测量的值。
3.根据权利要求1或2所述的方法,其中如果计算的定时器值在特定的最小值和最大值之间,只执行设置定时器的步骤,其中对于较小的计算的定时器值,跳过设置定时器的步骤,并且对于较大的计算的定时器值,将定时器设置为特定的最大值。
4.根据前述任一的权利要求所述的方法,其中定时器值是如下形式的线性等式的结果:
定时器值=k1*填充值+k2
其中k1是正数并基于预定义的平均缓冲器填充水平,k2定义了当使用定时器时的最小值,而填充值是分别等于缓冲器的填充或被平均的和/或低通滤波的缓冲器的填充的所述测量值。
5.根据前述任一的权利要求所述的方法,其中输出单元(16)在规则的时间间隔内,单一访问输出缓冲器(15)来读取多个已处理的数据帧,并且其中所述时间间隔是由定时器值指定的平均时间的整数倍。
6.根据前述任一的权利要求所述的方法,其中由定时器值指定的平均时间是输入单元的采样速率的倒数的公倍数,其中输入单元(11,…,13)可以具有不同的采样速率。
7.根据权利要求5或6所述的方法,其中已处理的数据是音频数据,处理单元连续调用间的平均时间是M毫秒,而平均输出时间间隔是N*M毫秒,N是大于1的正整数。
8.一种用于处理数据的设备,该设备从多个输入端接收输入数据,并且包括微处理器、数据集合和定时器(21),其中微处理器和数据集合组成数据处理单元(14)和数据输出单元(16),数据处理单元和数据输出单元是多线程环境下的线程,其中通过缓冲器(15)将数据从处理单元传送到输出单元,其特征在于所述设备包括:
测量装置,用于测量等于输出缓冲器(15)的填充的数值;
计算装置,用于从所述测量的值计算定时器值;以及
设置装置,用于以定时器值设置定时器(21)并启动定时器,其中当由定时器值指定的时间过去时,定时器发送通知,如果处理单元线程不是有效的,则该通知引起处理单元线程的激活,或相反地,引起处理单元线程的继续激活。
9.根据前述任一权利要求所述的设备,其中多个输入提供具有至少两种不同恒定输入数据速率的数据,其中如果测量的输出缓冲器的填充在预定义的最小值和最大值之间,则只使用定时器(21),其中由定时器值指定的时间是输入数据速率的倒数的公倍数,其由预定义平均缓冲填充值产生。
10.根据权利要求9所述的设备,其中由定时器值指定的时间是输入的数据速率的倒数的最小公倍数。
CN2005100759037A 2004-06-10 2005-06-03 在多线程环境下的处理单元中处理数据的方法和设备 Active CN1707435B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP04013686A EP1605354A1 (en) 2004-06-10 2004-06-10 Method and apparatus for improved synchronization of a processing unit for multimedia streams in a multithreaded environment
EP04013686.3 2004-06-10

Publications (2)

Publication Number Publication Date
CN1707435A true CN1707435A (zh) 2005-12-14
CN1707435B CN1707435B (zh) 2010-04-28

Family

ID=34925322

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005100759037A Active CN1707435B (zh) 2004-06-10 2005-06-03 在多线程环境下的处理单元中处理数据的方法和设备

Country Status (7)

Country Link
US (1) US7680964B2 (zh)
EP (1) EP1605354A1 (zh)
JP (1) JP4738906B2 (zh)
KR (1) KR101189842B1 (zh)
CN (1) CN1707435B (zh)
BR (1) BRPI0501728B1 (zh)
DE (1) DE602005003506T2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116634163A (zh) * 2022-10-13 2023-08-22 弗劳恩霍夫应用研究促进协会 使用编码图片缓存器的视频编码

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0600417D0 (en) * 2006-01-10 2006-02-15 Level 5 Networks Inc Virtualisation support
JP4519082B2 (ja) 2006-02-15 2010-08-04 株式会社ソニー・コンピュータエンタテインメント 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置
JP4745904B2 (ja) * 2006-07-18 2011-08-10 株式会社日本自動車部品総合研究所 電子装置
US9654447B2 (en) 2006-08-29 2017-05-16 Digimarc Corporation Customized handling of copied content based on owner-specified similarity thresholds
US20130055072A1 (en) * 2011-08-24 2013-02-28 Robert Douglas Arnold Multi-Threaded Graphical Display System
CN102880509B (zh) * 2012-09-17 2014-09-24 北京大学 基于cuda的格网数字高程模型邻域分析的系统和方法
JP2014067074A (ja) * 2012-09-24 2014-04-17 Oki Electric Ind Co Ltd 録音システム、録音プログラム及び録音方法
CN106250108B (zh) * 2016-07-18 2019-05-17 中国电子科技集团公司第二十八研究所 一种线程中挂时控的方法
CN110501363B (zh) * 2019-08-30 2020-06-02 中国科学院长春应用化学研究所 X射线衍射仪用多线程样品测试方法
CN113377517B (zh) * 2021-06-28 2023-02-28 上海鲲宜软件技术有限公司 基于实时操作系统的线程调度方法及系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4727333A (en) * 1986-06-30 1988-02-23 Rca Corporation Circuitry for multiplying a PCM signal by a sinusoid
US5228859A (en) * 1990-09-17 1993-07-20 Interactive Training Technologies Interactive educational and training system with concurrent digitized sound and video output
US5377317A (en) * 1991-12-20 1994-12-27 International Business Machines Corporation Method and apparatus for distinctively displaying windows on a computer display screen
US5369729A (en) * 1992-03-09 1994-11-29 Microsoft Corporation Conversionless digital sound production
US5428789A (en) * 1993-08-27 1995-06-27 Waldron, Iii; Theodore C. Method and apparatus for optimizing user response time in a priority preemptive operating system
JPH0793168A (ja) * 1993-09-21 1995-04-07 Fuji Electric Co Ltd タスク管理方式
GB2311882B (en) * 1996-04-04 2000-08-09 Videologic Ltd A data processing management system
US6052748A (en) * 1997-03-18 2000-04-18 Edwin A. Suominen Analog reconstruction of asynchronously sampled signals from a digital signal processor
US6029194A (en) * 1997-06-10 2000-02-22 Tektronix, Inc. Audio/video media server for distributed editing over networks
JPH11312143A (ja) * 1998-04-28 1999-11-09 Clarion Co Ltd 情報処理装置及び方法、カーオーディオシステム及びその制御方法並びに情報処理用プログラムを記録した記録媒体
EP1090505A1 (en) * 1998-06-26 2001-04-11 General Instrument Corporation Terminal for composing and presenting mpeg-4 video programs
JP3636657B2 (ja) * 2000-12-21 2005-04-06 Necエレクトロニクス株式会社 クロックアンドデータリカバリ回路とそのクロック制御方法
US20030108063A1 (en) * 2001-12-07 2003-06-12 Joseph Moses S. System and method for aggregating multiple information channels across a network

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116634163A (zh) * 2022-10-13 2023-08-22 弗劳恩霍夫应用研究促进协会 使用编码图片缓存器的视频编码
CN116634163B (zh) * 2022-10-13 2024-04-02 弗劳恩霍夫应用研究促进协会 使用编码图片缓存器的视频编码

Also Published As

Publication number Publication date
DE602005003506T2 (de) 2008-10-23
EP1605354A1 (en) 2005-12-14
DE602005003506D1 (de) 2008-01-10
KR101189842B1 (ko) 2012-10-11
KR20060048312A (ko) 2006-05-18
BRPI0501728A (pt) 2006-01-24
JP2006012150A (ja) 2006-01-12
BRPI0501728B1 (pt) 2017-03-07
CN1707435B (zh) 2010-04-28
US20050278473A1 (en) 2005-12-15
US7680964B2 (en) 2010-03-16
JP4738906B2 (ja) 2011-08-03

Similar Documents

Publication Publication Date Title
CN1707435A (zh) 在多线程环境下的处理单元中处理数据的方法和设备
CN111247801B (zh) 用于事件相机数据处理的系统和方法
US8065458B2 (en) Arbitration apparatus, method, and computer readable medium with dynamically adjustable priority scheme
JP4519082B2 (ja) 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置
CN111294647B (zh) 一种视频处理方法、装置及设备、存储介质
CN1393094A (zh) 多媒体应用程序的运行方法
CN1280335A (zh) 微调度方法和操作系统内核
JPWO2006006714A1 (ja) 映像再生同期信号生成方法、映像再生同期信号生成プログラム、タイミング制御装置、映像音声同期再生方法、映像音声同期再生プログラム及び映像音声同期再生装置
CN101834608A (zh) 一种多通道编解码器运行方法及装置
CN1812591A (zh) 用以执行资料流的信号同步的系统与方法
JP6275506B2 (ja) コンテンツ出力装置
CN104022967A (zh) 音频解码装置
US8615165B2 (en) Video-recording and replaying apparatus, I/O scheduling method, and program
Fall et al. Workstation video playback performance with competitive process load
US20040019491A1 (en) Speed control playback of parametric speech encoded digital audio
Toussaint et al. Chasing Linux jitter sources for uncompressed video
KR100726695B1 (ko) 디지털 신호 처리 장치 및 방법과 제공 매체
EP1605355B1 (en) Method and apparatus for improved synchronization of a processing unit for multimedia streams in a multithreaded environment
WO2007063625A1 (ja) 信号処理装置および信号処理方法
CN106685904B (zh) 串流数据的编码排程方法与装置
JP2011182169A (ja) 符号化装置および方法
JP2004015351A5 (zh)
CN117931088B (zh) 车端数据处理方法、装置、电子设备及可读存储介质
JP2004206771A (ja) 簡易再生方法とこの方法に利用可能な簡易再生装置、復号方法、復号装置
JP2021145157A (ja) 画像処理装置および方法

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
CP02 Change in the address of a patent holder

Address after: I Si Eli Murli Nor, France

Patentee after: THOMSON LICENSING

Address before: La France

Patentee before: THOMSON LICENSING

CP02 Change in the address of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20190125

Address after: Paris France

Patentee after: International Digital Madison Patent Holding Co.

Address before: I Si Eli Murli Nor, France

Patentee before: THOMSON LICENSING

Effective date of registration: 20190125

Address after: I Si Eli Murli Nor, France

Patentee after: THOMSON LICENSING

Address before: I Si Eli Murli Nor, France

Patentee before: THOMSON LICENSING

TR01 Transfer of patent right