CN103795973A - 用于非实时操作系统中的音频/视频同步的抖动取消 - Google Patents
用于非实时操作系统中的音频/视频同步的抖动取消 Download PDFInfo
- Publication number
- CN103795973A CN103795973A CN201310524539.2A CN201310524539A CN103795973A CN 103795973 A CN103795973 A CN 103795973A CN 201310524539 A CN201310524539 A CN 201310524539A CN 103795973 A CN103795973 A CN 103795973A
- Authority
- CN
- China
- Prior art keywords
- time
- video
- frame
- operating system
- event
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4305—Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/12—Synchronisation between the display unit and other units, e.g. other display units, video-disc players
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/02—Improving the quality of display appearance
- G09G2320/0247—Flicker reduction other than flicker reduction circuits used for single beam cathode-ray tubes
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
- G09G2330/021—Power management, e.g. power saving
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/02—Handling of images in compressed format, e.g. JPEG, MPEG
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/10—Use of a protocol of communication by packets in interfaces along the display data pipeline
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/01—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Controls And Circuits For Display Device (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种用于非实时操作系统中的音频/视频同步的抖动取消。可通过解码视频数据的一部分以形成视频帧而执行在显示装置上显示所述视频数据的流。确定应显示所述视频帧时的队列时间。通过相对于下一显示时间将所述队列时间调整一边际时间来补偿中断抖动,其中所述边际时间小于周期性显示时间事件之间的时间周期且大于指定中断抖动时间。将软件中断事件设定为对应于所述经调整队列时间而发生。响应于所述软件中断的发生而使所述视频帧排队。在所述软件中断的所述发生之后的下一显示时间事件的所述发生后,即刻将所述经排队视频帧传送到用于所述显示装置的显示缓冲器。
Description
依据35U.S.C.119(a)的优先权的主张
本申请案主张对于2012年10月30日提出申请且且标题为“用于非实时操作系统中的音频/视频同步的抖动取消(Jitter Cancellation for Audio/Video Synchronization in aNon-Real Time Operating System)”的第EP-12290375.0号欧洲专利申请案的优先权且以引用的方式并入所述欧洲专利申请案。
技术领域
本发明一般来说涉及视频帧的同步及显示,且明确地说,涉及使用非实时操作系统来执行同步。
背景技术
视频压缩(即,视频译码)是数字视频产品在其实现数字视频的存储及发射时的基本前提。一般来说,视频压缩技术将预测、变换、量化及熵译码应用于视频序列中的像素的顺序块以压缩(即,编码)视频序列。视频解压缩技术通常以相反次序执行这些操作的逆转以解压缩(即,解码)经压缩视频序列。
一旦经压缩视频序列被解压缩,便可将其显示于供人观看的屏幕上。许多显示装置支持视频图像的多个帧速率。举例来说,当前装置可支持高达60帧/秒(fps)的显示速率。通常,从影片所导出的视频序列提供24fps。从电视源所导出的视频序列可提供30fps。其它视频源可提供额外不同帧速率。
发明内容
附图说明
现在将仅以实例方式且参考附图来描述根据本发明的特定实施例:
图1是体现本发明的实例系统的框图;
图2是图解说明图1的系统中的视频数据流的框图;
图3是图解说明在图1的系统中可如何发生视频抖动的时序图;
图4是图解说明在图1的系统中可如何防止视频抖动的时序图;
图5是图解说明防止视频抖动的流程图;且
图6是体现本发明的另一实例系统的框图。
从附图及从以下详细说明将明了本实施例的其它特征。
具体实施方式
现在将参考附图详细描述本发明的特定实施例。出于一致性目的,各图中的相似元件可由相似元件符号表示。在本发明的实施例的以下详细说明中,陈述众多特定细节以提供对本发明的较彻底理解。然而,所属领域的技术人员将明了,可在不具有这些特定细节的情况下实践本发明。在其它例子中,未详细描述众所周知的特征以避免使本说明不必要地复杂化。
现在在运行非实时操作系统(OS)(例如LINUX)的平台(例如移动手机)上实施数字视频播放器。良好的视频回放质量需要以规律时间距离来播放帧。通常,使用基于硬件的控制模块来同步视频回放。然而,如果使用在LINUX或另一非实时OS的控制下运行的同步任务来确定何时将显示下一视频帧,那么实际上显示视频序列的每一图片帧时的时间可经受一些抖动。具有时间抖动的视频呈现尤其对于含有大规律运动的视频序列可是极其令人烦恼的。
本发明的实施例提供在不诱发时间抖动的情况下使用在LINUX或其它非实时OS的控制下运行的同步任务的方式且因此允许在不损耗基于硬件的同步模块的情况下的最优选显示质量。
可通过作为在OS的控制下的任务而运行的AV同步(音频/视频同步)算法来确定每一图片的显示时间。此显示时间用于将视频帧传递到显示单元,但实际图片传送/显示由来自显示单元的事件而触发:显示单元产生为图片传送/显示事件的可能发生的记号,例如对于60Hz刷新。
存在两个主要非同步活动。第一活动是将帧传递到显示单元,且可在由OS事件确定的时间处执行,且因此因非实时OS中的事件中断的抖动而是不准确的。第二活动是实际图片传送/显示事件,由于所述实际图片传送/显示事件由显示单元记号触发,因此,其是规律且准确的。
当两个事件在时间上接近时,可出现所述问题,这是因为抖动可致使视频帧在预期显示单元记号之后被传递到显示单元。在此情形中,将实际上在下一记号处传送视频帧数据。此将导致一些视频帧被显示的太晚而其它视频帧可被显示的太早。如下文将较详细描述,与经计算AV同步显示时间相比,本发明的实施例提前确定何时将发生实际显示记号。接着,修改用于触发数据的下一视频帧的传送的每一经同步事件时间,使得其在显示记号之前以充分边际而发生以克服由非实时OS诱发的事件时间抖动。
另一解决方案可将视频帧调度器放入显示单元中,其中通过监视未决图片帧的队列而针对显示记号的每一发生直接核对未决视频帧的显示时间。然而,即使实际上将不传送图像,此解决方案可也需要由运行OS的CPU处理每一记号。为处理未决队列,在每一显示记号中可需要从导致较多电力被系统耗散的低电力状态唤醒CPU。电力耗散是电池供电的移动系统中的重要因素。
本发明的实施例甚至在显示单元频率不同于视频帧速率时也提供通用且允许适当功能性的同步方法。其不需要在每一可能显示记号处均唤醒系统CPU。此方法使用(例如)由安卓多媒体框架(Android Multimedia Framework)所提供的常见的时间编程唤醒事件且因此允许CPU可能地休眠直到经修改显示时间到达使下一帧排队为将显示为止。
图1是根据本发明的一个或一个以上实施例的实例计算机系统100的框图。举例来说,计算机系统100可是智能电话或其它移动装置(例如平板计算机、视频播放器等)的一部分。计算机系统100包含处理单元130,所述处理单元配备有一个或一个以上输入装置104(例如键盘、相机、运动及姿态传感器或类似物)及一个或一个以上输出装置(例如显示器108或类似物)。在本发明的一些实施例中,显示器108可是触摸屏,因此允许显示器108也充当输入装置。举例来说,处理单元130可是单芯片系统(SoC)、针对特定应用而定制的专用单元、桌上型计算机、工作站、膝上型计算机或类似物。所述显示器可是任何适合直观显示单元,例如,举例来说,计算机监视器、LED、LCD或等离子显示器、电视、高清晰度电视或其组合。
处理单元130包含中央处理单元(CPU)118、存储器114、存储装置116、视频适配器112、直接存储器存取(DMA)120、I/O接口110、视频解码器122及连接到总线的网络接口124。总线可是任何类型的几个总线架构中的一者或一者以上,包含存储器总线或存储器控制器、外围总线、视频总线或类似物。
CPU118可是任何类型的电子数据处理器。举例来说,CPU118可是来自英特尔公司(Intel Corp.)的处理器、来自超威半导体公司(Advanced Micro Devices Inc.)的处理器、精简指令集计算机(RISC)、专用集成电路(ASIC)或类似物。存储器114可是任何类型的系统存储器,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、只读存储器(ROM)、快闪存储器、其组合或类似物。此外,存储器114可包含用于在启动时使用的ROM及供用于在执行程序时使用的数据存储的DRAM。
存储装置116(例如,计算机可读媒体)可包括经配置以存储数据、程序及其它信息及使得所述数据、程序及其它信息可经由总线存取的任何类型的存储装置。在本发明的一个或一个以上实施例中,存储装置116存储在由CPU118执行时致使处理单元130执行视频解码及同步的软件指令,如下文将较详细地描述。举例来说,存储装置116可是快闪存储器或其它非易失性存储器、快闪驱动机、磁盘驱动机、光盘驱动机或类似物。在经调度以由视频同步任务进行此时,DMA120可经编程以响应于由视频适配器112提供的显示记号而将经解码视频帧移动到视频适配器112。
软件指令可最初存储于计算机可读媒体中,例如压缩光盘(CD)、软磁盘、磁带、文件、存储器或任何其它计算机可读存储装置,且由CPU118加载及执行。在一些情形中,软件指令还可以计算机程序产品的形式出售,所述计算机程序产品包含计算机可读媒体及用于计算机可读媒体的封装材料。在一些情形中,软件指令可经由可装卸式计算机可读媒体(例如,软盘、光盘、快闪存储器、USB密钥)、经由来自另一计算机系统(例如,服务器)上的计算机可读媒体的发射路径等分布到计算机系统100。
网络接口124允许处理单元130经由网络(未展示)与远程单元通信。网络接口124可提供经由(举例来说)局域网络(LAN)、广域网络(WAN)(例如因特网)、蜂窝式网络、任何其它类似类型的网络及/或其任何组合用于有线链路(例如以太网电缆或类似物)及/或无线链路的接口。
计算机系统100还可包含未具体展示的其它组件。举例来说,计算机系统100可包含电力供应器、电缆、母板、可装卸式存储媒体、机箱等等。
视频解码器组件122根据视频压缩标准而解码从数字视频相机或其它视频源接收的经编码视频序列中的帧,举例来说,所述视频压缩标准例如:移动图片专家组(MPEG)视频压缩标准,例如,MPEG-1、MPEG-2及MPEG-4;ITU-T视频压缩标准,例如,H.263及H.264;电影与电视工程师协会(SMPTE)421M视频CODEC标准(通常称为“VC-1”);由中国数字音视频编解码技术标准工作组(通常称为“AVS”)定义的视频压缩标准;ITU-T/ISO高效视频译码(HEVC)标准等。可将经解码帧提供到视频适配器112以使用基于软件的同步过程而在显示器108上显示,如下文将较详细描述。
图2是图解说明图1的系统中的实例视频数据流的框图。源数字系统200经由通信通道216将经编码视频序列发射到目的地数字系统130。举例来说,源数字系统200可是计算机系统100的一部分,例如智能电话或平板计算机中的板上相机。举例来说,在其它实施例中,源数字系统200可在经由有线或无线通信通道216将经编码视频序列发送到计算机系统130的远程系统中。
源数字系统200包含视频捕获组件204、视频编码器组件206及发射器组件208。视频捕获组件204经配置以提供将由视频编码器组件206编码的视频序列。举例来说,视频捕获组件204可是摄像机、视频档案或来自视频内容提供者的视频馈送。在一些实施例中,视频捕获组件204可产生如视频序列的计算机图形或直播视频、存档视频及/或计算机生成的视频的组合。
视频编码器组件206从视频捕获组件204接收视频序列且编码其以用于由发射器组件208发射。视频编码器组件206从视频捕获组件204接收视频序列作为图片序列、将图片划分成译码单元且根据选定编码标准来编码视频数据。
发射器组件208经由通信通道216将经编码视频数据发射到目的地数字系统130。通信通道216可是任何通信媒体或适于发射经编码视频序列的通信媒体的组合,举例来说,例如:有线或无线通信媒体;局域网络;广域网络;或可装卸式大容量存储装置,例如快闪驱动机、CD等。
目的地数字系统130包含接收器组件124、视频解码器组件122及显示组件108。接收器组件124经由通信通道216从源数字系统200接收经编码视频数据且将经编码视频数据提供到视频解码器组件122以供解码。视频解码器组件612颠倒由视频编码器组件606执行的编码过程以重构视频序列的图片序列。
所述经重构视频序列显示于显示组件108上。显示组件108可是任何适合显示装置,例如,举例来说,等离子显示器、液晶显示器(LCD)、发光二极管(LED)显示器等。
在一些实施例中,举例来说,目的地数字系统130可包含发射器组件及视频编码器组件以用于朝向视频流、视频广播及视频通话的全部方向发射视频序列。
图3是图解说明在系统100中可如何发生视频抖动的时序图。视频序列可展示在回放期间的抖动。此抖动对于含有规律运动的序列是极明显的且是由在将图片传递到显示单元时的不准确计时所致。关于60Fps(帧/秒)的显示刷新及30Fps的视频帧速率,应以33.33ms周期规律地显示每一图片:33.33;33.33;33.33;33.33;33.33;33.33等。关于60Fps的显示刷新及以24Fps播放的视频,在相同持续时间可无法显示每一帧,然而显示持续时间时间模式一定是规律的,例如:33.33;50.00;33.33;50.00;33.33;50.00等。
系统100使用基于软件的同步过程来管理视频帧的经解码序列的每一帧的显示。当每一视频帧被解码且存储于存储器114中时,举例来说,确定应显示所述视频帧的时间,所述时间称为队列时间(QT)。QT是基于视频序列的帧速率而确定的,如上文所论述。图3中图解说明QT的序列,且代表性QT在302处指示含有30fps的视频序列。在确定经解码帧的QT(此可是基于时间标记的)之后,举例来说,软件中断事件可经编程以在用于所述帧的QT处发生。如果不存在将执行的其它未决软件应用,那么执行系统中的程序软件的CPU(例如CPU118)可进入低电力休眠模式。通常对电池供电的移动装置进行此以节约电池电量。
举例来说,当检修针对QT302的软件中断事件时,执行将对应视频帧置于311将由DMA120从存储器114传送到视频适配器112的队列中的视频同步任务。每当准备好刷新保持由显示装置108显示的图片的帧缓冲器时,视频适配器112便产生显示时间(DT)记号320。在此实例中,以60fps刷新显示屏108。在发生每一DT记号(例如DT记号320)后,DMA120即刻将队列中当前指示的任何视频帧从存储器114传送到视频适配器112且显示视频帧330。举例来说,队列通常含有指向含有位于存储器114中的实际缓冲器的指针(例如Y U V)的结构的指针。
DMA引擎120由将待显示的下一缓冲器提供到DMA控制模块的驱动器编程。当显示垂直同步中断发生(此对应于DT)时,DMA控制模块触发每一DMA传送。每一DMA传送刷新显示屏108。每当(举例来说)以60Fps刷新显示器时,DMA便传送来自存储器114中的缓冲器的视频帧。可多次显示相同缓冲器,直到在适当时间将新缓冲器指针加载到队列中为止。举例来说,在DT记号321处,再次传送相同视频帧330。在DT记号322处,在显示屏108上传送及显示下一视频帧331。在此实例中,应每两次DT记号传送一次新帧,这是因为屏幕刷新速率为60Fps且视频速率仅为30Fps。
由于操作系统不限于实时操作,因此取决于此时CPU还执行什么可存在响应于QT事件中断的一些延迟,如由抖动误差310所指示。抖动误差通常介于-1ms到高达+11ms的范围内,如由OS内核、OS记号、音频时钟噪声计算等所确定。只要同步任务足够快地响应于QT事件中断以在DT记号320之前更新311帧队列,一切就良好。然而,举例来说,如果同步任务响应于QT事件304且因抖动误差而在发生DT记号323之后更新312队列,那么视频帧332将显示为额外刷新周期,直到下一DT记号324为止。因此,视频帧332显示为三个刷新周期且视频帧333仅显示为一个刷新周期。因此,对于此30Fps视频,显示器可如下来刷新:33.33;33.33;33.33;50.00;16.66;33.33;33.33;33.33等。
有错误事件随机地出现且可能令观看者烦恼。当用以显示图片的经编程QT事件接近于显示记号时,其可能性较高。在此情形中,小抖动可使图片QT时间错过其对应显示传送记号的发生,因此所述图片将被延迟到下一记号(例如,16.6ms)。
图4是图解说明在系统100中可如何防止视频抖动的时序图。本发明的实施例核对每一图片排队时间(QT)并取决于下一显示传送记号发生时间(DT)而调适每一图片队列时间(QT)。此将提供足够边际,使得抖动误差不与DT边界事件相交。
如上文所描述,基于软件的音频/视觉同步(AV同步)任务提前计算每一QT302,所述QT是应使视频帧排队以供显示的时间。接着,其预测推测会触发图片传送的后续DT*时间420的时间且修改QT以形成:QT*=DT*-边际440。举例来说,AV同步任务接着编程软件中断事件以在QT*350时间处唤醒。在唤醒时间QT*350+抖动460处,AV同步将缓冲器放入到显示队列中。举例来说,在显示记号DT*420后,DMA控制模块即刻开始视频帧430的DMA帧传送且记录将用于下一DT记号421预测的此DT时间420。
以此方式,在非实时操作系统下执行的软件同步任务可用于对视频显示装置可靠地执行音频与视频同步。执行AV同步任务的CPU可置于帧之间的低电力休眠模式中以节约电池电力。不需要专用硬件来进行同步,此使得处理单元130在不需要昂贵且电力消耗同步硬件的情况下与具有不同帧速率的各种各样的视频流及具有不同刷新速率的各种类型的显示装置一起使用成为可能。
图5是图解说明在视频显示系统(例如系统100)中防止视频抖动的流程图。举例来说,循环500可通过在非实时OS下由CPU118执行的同步任务执行。举例来说,循环520可是由视频适配器112执行的硬件驱动的循环。因此,两个循环彼此独立地操作。如较早所描述,举例来说,解码视频帧540可通过由CPU112执行的其它软件执行或可通过硬件加速器执行。
如上文较详细描述,关于60Fps的显示刷新及30Fps的视频帧速率,应以33.33ms周期规律地显示每一图片:33.33;33.33;33.33;33.33;33.33;33.33等。关于60Fps的显示刷新及以24Fps播放的视频,在相同持续时间无法显示每一帧,然而显示持续时间时间模式一定是规律的,例如:33.33;50.00;33.33;50.00;33.33;50.00等。
循环530使用基于软件的同步过程来管理视频帧的经解码序列的每一帧的显示。当每一视频帧被解码540且储存于存储器中时,举例来说,确定502应显示所述视频帧的时间,所述时间称为队列时间(QT)。QT基于视频序列的帧速率而确定,如上文所论述。接着使用通过最近刷新循环而存储526的DT*值计算504下一DT发生时间。QT接着经修改504以形成:QT*=DT*-边际,其中选择足够大以超过可因OS的非实时本质而发生的预期中断延时量的边际值。举例来说,边际可选定为DT周期的四分之三,其中DT周期是视频装置刷新速率的逆转。在另一实例中,边际可选定为DT周期的一半。
接着公告506软件中断事件以在QT*时间处唤醒。如果不存在将执行的其它未决软件应用,那么执行系统中的程序软件的CPU(例如CPU118)可接着进入低电力休眠模式。通常在电池供电的移动装置上进行此以节约电池电量。
一旦中断发生508,便在唤醒时间QT*加上一些量的抖动+△处重新开始510同步过程。接着将下一视频帧添加512到显示队列。由于边际量选定为大于抖动量,因此在发生下一DT记号之前将在队列中公告视频帧。通常,队列含有指针。那些指针通常指向含有实际缓冲器(Y U V)的指针及在视频解码过程540期间所产生的其它类型的信息的结构。因此,此时,同步过程仅操纵指针。
同步循环530以此方式继续达视频序列的长度。
当显示记号DT*发生522时,DMA控制模块(例如DMA120)(举例来说)可经编程以开始当前在队列中的视频帧的DMA帧传送524。可记录526当前DT时间以供在下一QT*计算504中使用。DMA引擎可由用以将待显示的下一缓冲器提供到硬件模块的驱动器编程。每当显示垂直同步中断发生(对应于DT)时,DMA硬件便可经编程以执行传送。此传送提供显示装置的刷新。举例来说,每当以60Fps刷新显示装置时,便传送视频图片缓冲器。可多次刷新循环地显示相同缓冲器,直到在适当时间提供新缓冲器为止。
系统实例
图6是包含本发明的实施例的示范性移动蜂窝式电话1000的框图。数字基带(DBB)单元1002可包含含有嵌入式存储器及安全特征的数字处理处理器系统(DSP)。激励处理(SP)单元1004从手机麦克风1013a接收语音数据流且将语音数据流发送到手机单声道扬声器1013b。SP单元1004还从麦克风1014a接收语音数据流且将语音数据流发送到单声道头戴式送受话器1014b。通常,SP及DBB是单独IC。在大多数实施例中,SP不嵌入可编程处理器核心,但基于由运行DBB的软件设置的音频路径、滤波器、增益等的配置而执行处理。在替代实施例中,对执行DBB处理的相同处理器执行SP处理。在另一实施例中,单独DSP或其它类型的处理器执行SP处理。
RF收发器1006是数字无线电处理器且包含用于经由天线1007从蜂窝式基站接收经译码数据帧流的接收器及用于经由天线1007将经译码数据帧流发射到蜂窝式基站的发射器。RF收发器1006耦合到提供由移动电话1000接收及发射的经编码数据帧的处理的DBB1002。
DBB单元1002可将数据发送到连接到通用串行总线(USB)端口1026的各种装置或接收数据。DBB1002可连接到订户身份模块(SIM)卡1010且存储及检索用于经由蜂窝式系统打电话的信息。DBB1002还可连接到增大板上存储器及用于各种处理需要的存储器1012。DBB1002可连接到用于无线连接到麦克风1032a及头戴式送受话器1032b的蓝牙基带单元1030以用于发送及接收语音数据。DBB1002还可连接到显示器1020且可将信息发送到显示器1020以用于在呼叫处理期间与移动UE1000的用户互动。触摸屏1021可连接到DBB1002以用于触觉反馈。显示器1020还可显示从网络、从本地相机1028或从其它源(例如USB1026)所接收的图片。DBB1002还可将经由RF收发器1006从各种源(例如蜂窝式网络)或相机1028所接收的视频流发送到显示器1020。DBB1002还可经由在复合输出端子1024上方的编码器1022将视频流发送到外部视频显示单元。编码器单元1022可根据PAL/SECAM/NTSC视频标准提供编码。在一些实施例中,音频编解码器1009从FM无线电调谐器1008接收音频流且将音频流发送到立体头戴式送受话器1016及/或立体扬声器1018。在其它实施例中,可存在音频流的其它源,例如光盘(CD)播放器、固态存储器模块等。
当解码及显示从网络、本地相机或从本地存储器所接收的视频序列时,数字基带单元1002使用如本文中较详细描述的基于软件的同步过程来使用复合输出信号1024在显示器1020上或在远程显示器上提供无抖动视频显示。
其它实施例
虽然已参考说明性实施例描述了本发明,但此说明并非打算解释为限制意义。所属领域的技术人员参考此说明将明了本发明的各种其它实施例。举例来说,本文中所描述的本发明的各种实施例可根据H.264视频译码标准执行视频解码。所属领域的技术人员将理解其它视频译码标准的其它实施例。因此,本发明的实施例不应视为限于H.264视频译码标准。
可在几种类型的移动装置中的任一者上提供本文中所描述的同步器及方法的实施例,例如:智能电话、平板计算机、个人数字助理、个人计算机等。
可在几种类型的固定装置中的任一者上提供本文中所描述的同步器及方法的实施例,例如:个人计算机、数字视频录像机(DVR)等。
可在几种类型的数字系统中的任一者上提供本文中所描述的同步器及方法的实施例:数字信号处理器(DSP);通用可编程处理器;专用电路;或单芯片系统(SoC),例如DSP及精简指令集(RISC)处理器与各种专门化加速器一起的组合。板上或外部(快闪EEP)ROM或FRAM中的所存储程序可用于实施视频信号处理的方面。提供到真实世界、调制器及解调器(加上用于空气接口的天线)的耦合的模/数转换器及数/模转换器可提供对于通过卫星、电视台、蜂窝式网络等或经由有线网络(例如因特网)经由空气广播的视频数据的波形接收的耦合。
本发明中所描述的技术可以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么可在一个或一个以上处理器中执行软件,例如微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或数字信号处理器(DSP)。执行技术的软件可最初存储于计算机可读媒体中,例如光盘(CD)、软磁盘、磁带、文件、存储器或任何其它计算机可读存储装置,且加载于处理器中并在处理器中执行。在一些情形中,软件还可以计算机程序产品的形式出售,所述计算机程序产品包含计算机可读媒体及用于计算机可读媒体的封装材料。在一些情形中,可经由可装卸式计算机可读媒体(例如,软盘、光盘、快闪存储器、USB密钥)、经由来自另一数字系统上的计算机可读媒体的发射路径等分布软件指令。
在说明及权利要求书通篇中使用一些术语来指代特定系统组件。如所属领域的技术人员将了解,数字系统中的组件可由不同名称指代及/或可在不背离所描述功能性的情况下以本文中未展示的方式组合。此文档并非打算在名称而非功能不同的组件之间进行区分。在以下论述中及在权利要求书中,术语“包含(including)”及“包括(comprising)”以开放式方式使用,且因此应解释为意味着“包含但不限于...”。此外,术语“耦合”及其派生词打算意味着间接电连接、直接电连接、光学电连接及/或无线电连接。因此,如果第一装置耦合到第二装置,那么所述连接可通过直接电连接、通过经由其它装置及连接的间接电连接、通过光学电连接及/或通过无线电连接。
尽管本文中可以顺序方式呈现及描述方法步骤,但所展示及所描述的步骤中的一者或一者以上可被省略、重复、同时执行及/或以与各图中所展示及/或本文中所描述的次序不同的次序执行。因此,本发明的实施例不应视为限于各图中所展示及/或本文中所描述的步骤的特定排序。
因此,预期所附权利要求书将涵盖归属于本发明的真实范围及精神内的实施例的任何此类修改。
Claims (20)
1.一种用于在显示装置上显示视频数据流的方法,所述方法包括:
确定应显示所述视频数据流的视频帧时的队列时间;
通过相对于下一显示时间将所述队列时间调整一边际时间来补偿中断抖动,其中所述边际时间小于周期性显示时间事件之间的显示时间时间周期且大于中断抖动时间;
将操作系统中断设定为对应于所述经调整队列时间而发生;及
响应于所述操作系统中断的发生而使所述视频帧排队;使得所述视频帧排队在所述下一显示时间的所述发生之前。
2.根据权利要求1所述的方法,其进一步包括:在所述操作系统中断的所述发生之后的下一显示时间事件的所述发生后,即刻将所述经排队视频帧传送到用于所述显示装置的显示缓冲器。
3.根据权利要求1所述的方法,其进一步包括:解码所述视频数据的一部分以形成所述视频帧。
4.根据权利要求1所述的方法,其进一步包括:在设定所述操作系统中断之后将执行所述操作系统的处理器置于低电力状态中。
5.根据权利要求1所述的方法,其进一步包括:存储每一显示时间事件的发生时间,及通过将显示时间时间周期添加到所述先前显示时间事件的所存储时间的发生时间而确定所述下一显示时间。
6.根据权利要求1所述的方法,其中所述边际时间具有介于所述显示时间时间周期的大约一半与四分之三之间的值。
7.根据权利要求1所述的方法,其中所述操作系统是非实时操作系统。
8.一种用于显示视频序列的系统,所述系统包括:
处理单元CPU,其耦合到存储器,其中所述存储器含有用于操作系统及视频同步任务的软件指令;
视频适配器,其具有用于耦合到视频显示装置的输出,其中所述视频适配器可操作以产生由DT时间周期分开的周期性显示时间DT事件;
直接存储器存取DMA引擎,其耦合到所述存储器及所述视频适配器;
其中所述CPU可操作以执行用于所述操作系统及所述同步任务的指令以执行包括以下各项的方法:
确定应将所述视频序列的第一视频帧传送到所述视频适配器时的队列时间QT;
通过相对于下一DT事件将所述队列时间调整一边际时间来补偿中断抖动而计算用于所述第一视频帧的经调整队列时间QT*,其中所述边际时间小于所述DT时间周期且大于中断抖动时间;
将软件中断设定为对应于所述经调整队列时间而发生;及
响应于所述软件中断的发生而使所述第一视频帧排队,使得所述第一视频帧排队在所述下一DT事件的所述发生之前。
9.根据权利要求8所述的系统,其中所述DMA引擎可操作以在所述软件中断的所述发生之后的所述下一DT事件的所述发生后即刻将所述经排队第一视频帧传送到用于所述显示装置的显示缓冲器。
10.根据权利要求8所述的系统,其进一步包括可操作以解码来自视频数据序列的所述第一视频帧的视频解码模块。
11.根据权利要求8所述的系统,其中每一DT事件的所述发生时间被存储,且下一显示时间是通过将所述DT时间周期添加到最后DT事件的发生时间而确定。
12.根据权利要求8所述的系统,其中所述边际时间具有介于所述DT时间周期的大约一半与四分之三之间的值。
13.根据权利要求8所述的系统,其中所述系统是移动装置,所述系统进一步包括耦合到所述视频适配器的所述输出的显示屏。
14.一种用于在显示装置上显示视频数据流的系统,所述系统包括:
用于确定应显示所述视频数据流的视频帧时的队列时间的构件;
用于相对于下一显示时间将所述队列时间调整一边际时间来补偿中断抖动的构件,其中所述边际时间小于周期性显示时间事件之间的显示时间时间周期且大于中断抖动时间;
用于将操作系统中断设定为对应于所述经调整队列时间而发生的构件;及
用于响应于所述操作系统中断的发生而使所述视频帧排队以使得所述视频帧排队在所述下一显示时间的所述发生之前的构件。
15.根据权利要求14所述的系统,其进一步包括:用于在所述操作系统中断的所述发生之后的下一显示时间事件的所述发生后即刻将所述经排队视频帧传送到用于所述显示装置的显示缓冲器的构件。
16.根据权利要求14所述的系统,其进一步包括:用于解码所述视频数据的一部分以形成所述视频帧的构件。
17.根据权利要求14所述的系统,其进一步包括:用于在设定所述操作系统中断之后将执行所述操作系统的处理器置于低电力状态中的构件。
18.根据权利要求14所述的系统,其进一步包括:用于记录每一显示时间事件的发生时间及通过将显示时间时间周期添加到最后显示时间事件的发生时间而确定所述下一显示时间的构件。
19.根据权利要求14所述的系统,其中所述边际时间具有介于所述显示时间时间周期的大约一半与四分之三之间的值。
20.根据权利要求14所述的系统,其中所述操作系统是非实时操作系统。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP12290375 | 2012-10-30 | ||
EP122903750 | 2012-10-30 | ||
US13/676,799 | 2012-11-14 | ||
US13/676,799 US8605217B1 (en) | 2012-10-30 | 2012-11-14 | Jitter cancellation for audio/video synchronization in a non-real time operating system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103795973A true CN103795973A (zh) | 2014-05-14 |
CN103795973B CN103795973B (zh) | 2018-08-03 |
Family
ID=47189846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310524539.2A Active CN103795973B (zh) | 2012-10-30 | 2013-10-30 | 视频显示方法及系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8605217B1 (zh) |
CN (1) | CN103795973B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681439A (zh) * | 2018-05-29 | 2018-10-19 | 北京维盛泰科科技有限公司 | 基于帧率控制的均匀显示方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8028094B2 (en) * | 2007-12-04 | 2011-09-27 | Vixs Systems, Inc. | USB video card and dongle device with video encoding and methods for use therewith |
CN104184753B (zh) * | 2013-05-20 | 2018-04-27 | 腾讯科技(深圳)有限公司 | 一种文件传输方法及装置 |
US10140131B2 (en) | 2016-08-11 | 2018-11-27 | International Business Machines Corporation | Shielding real-time workloads from OS jitter due to expedited grace periods |
KR102424794B1 (ko) * | 2017-10-24 | 2022-07-25 | 삼성전자주식회사 | 이미지를 표시하는 전자 장치 및 그 제어 방법 |
KR102497515B1 (ko) * | 2018-02-23 | 2023-02-10 | 삼성전자주식회사 | 디스플레이 패널을 통해 표시되는 콘텐트의 저장을 제어하기 위한 전자 장치 및 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060150071A1 (en) * | 2005-01-05 | 2006-07-06 | Microsoft Corporation | Software-based video rendering |
CN101330621A (zh) * | 2007-06-20 | 2008-12-24 | 辉达公司 | 统一的视频解码和显示 |
US20100040347A1 (en) * | 2003-02-10 | 2010-02-18 | Kent Larry G Jr | Video Stream Adaptive Frame Rate Scheme |
US20110002376A1 (en) * | 2009-07-01 | 2011-01-06 | Wham! Inc. | Latency Minimization Via Pipelining of Processing Blocks |
CN102291575A (zh) * | 2011-09-01 | 2011-12-21 | 天地科技股份有限公司 | 智能化综采工作面视频监控系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6788311B1 (en) * | 1999-04-28 | 2004-09-07 | Intel Corporation | Displaying data on lower resolution displays |
US7715477B2 (en) * | 2002-05-29 | 2010-05-11 | Diego Garrido | Classifying image areas of a video signal |
CN101257373A (zh) * | 2007-02-27 | 2008-09-03 | 吴伟 | 基于时间-频率域分析的信号抖动检测方法 |
-
2012
- 2012-11-14 US US13/676,799 patent/US8605217B1/en active Active
-
2013
- 2013-10-30 CN CN201310524539.2A patent/CN103795973B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100040347A1 (en) * | 2003-02-10 | 2010-02-18 | Kent Larry G Jr | Video Stream Adaptive Frame Rate Scheme |
US20060150071A1 (en) * | 2005-01-05 | 2006-07-06 | Microsoft Corporation | Software-based video rendering |
CN101330621A (zh) * | 2007-06-20 | 2008-12-24 | 辉达公司 | 统一的视频解码和显示 |
US20110002376A1 (en) * | 2009-07-01 | 2011-01-06 | Wham! Inc. | Latency Minimization Via Pipelining of Processing Blocks |
CN102291575A (zh) * | 2011-09-01 | 2011-12-21 | 天地科技股份有限公司 | 智能化综采工作面视频监控系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681439A (zh) * | 2018-05-29 | 2018-10-19 | 北京维盛泰科科技有限公司 | 基于帧率控制的均匀显示方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103795973B (zh) | 2018-08-03 |
US8605217B1 (en) | 2013-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103795973A (zh) | 用于非实时操作系统中的音频/视频同步的抖动取消 | |
CN107454416B (zh) | 视频流发送方法和装置 | |
CN110858827B (zh) | 启播加速方法、装置及计算机可读取存储介质 | |
CN113347466A (zh) | 一种数据处理方法、装置和存储介质 | |
CN107077313B (zh) | 用于非媒体内容的远程显示的改进延迟和效率 | |
WO2016192079A1 (en) | Adaptive batch encoding for slow motion video recording | |
CN113906764B (zh) | 用于转码视频的方法、设备和计算机可读介质 | |
US20070014355A1 (en) | Video encoding device, video encoding control method, and video encoding control program | |
CN104661059A (zh) | 一种图片播放的方法、装置及机顶盒 | |
CN106484348B (zh) | 一种基于同步信号的动画绘制方法及系统 | |
WO2016179918A1 (zh) | 一种实现应用控制的方法及终端 | |
CN114554277A (zh) | 多媒体的处理方法、装置、服务器及计算机可读存储介质 | |
CN108769815A (zh) | 视频处理方法及其装置 | |
CN111343503A (zh) | 视频的转码方法、装置、电子设备及存储介质 | |
US20120274856A1 (en) | Frame List Processing for Multiple Video Channels | |
CN109005455B (zh) | 视频数据处理方法及装置 | |
CN112019858B (zh) | 一种视频播放方法、装置、计算机设备和存储介质 | |
US20210400334A1 (en) | Method and apparatus for loop-playing video content | |
CN112543374A (zh) | 一种转码控制方法、装置及电子设备 | |
MX2011002654A (es) | Metodo y aparato para grabacion y visualizacion de un programa de audio/video en respuesta a un evento sin grabacion durante el programa. | |
CN115604238A (zh) | 物联网操作系统的音视频处理方法、装置、设备和介质 | |
CN116126487A (zh) | 多实例下的编解码器的调度方法及装置、存储介质、终端 | |
WO2022193141A1 (zh) | 多媒体文件的播放方法及相关装置 | |
CN116939212A (zh) | 视频处理方法、装置、计算机可读存储介质及计算机设备 | |
CN111467797B (zh) | 游戏数据处理方法、装置、计算机存储介质与电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |