CN101946518B - 用于数字视频的自适应同步解码的方法和设备 - Google Patents
用于数字视频的自适应同步解码的方法和设备 Download PDFInfo
- Publication number
- CN101946518B CN101946518B CN200880126577XA CN200880126577A CN101946518B CN 101946518 B CN101946518 B CN 101946518B CN 200880126577X A CN200880126577X A CN 200880126577XA CN 200880126577 A CN200880126577 A CN 200880126577A CN 101946518 B CN101946518 B CN 101946518B
- Authority
- CN
- China
- Prior art keywords
- video
- frame
- key
- key frame
- timestamp
- 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.)
- Expired - Fee Related
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
-
- 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/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
- H04N21/43072—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2368—Multiplexing of audio and video streams
-
- 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4341—Demultiplexing of audio and video streams
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8453—Structuring of content, e.g. decomposing content into time segments by locking or enabling a set of features, e.g. optional functionalities in an executable program
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
一种用于数字视频的自适应同步解码的装置可以包括处理器。所述处理器配置为维持下一关键帧时间戳,对视频片段的多个关键帧进行解码,对按时到达的视频片段的多个非关键帧进行解码,以及如果视频帧迟到并且下一关键帧处于至少部分地基于所述下一关键帧时间戳计算的丢弃时间窗内,则丢弃一个或多个非关键帧直到下一关键帧。还提供了相应的方法和计算机程序产品。
Description
技术领域
本发明的实施方式一般地涉及数字视频回放技术,以及尤其涉及用于通过自适应同步解码维持音频/视频同步的方法、设备和计算机程序产品。
背景技术
现代通信时代已经带来了有线和无线网络的极大发展。计算机网络、电视网络和电话网络正在经历由消费者需求驱动的前所未有的技术发展。无线和移动网络技术已经解决有关的消费者需求,同时提供了信息传送的更多灵活性和即时性。
网络的这种扩展和通信模式的增长已经允许创造和递送逐渐增长的复杂数字视频,诸如从远程网络设备通过下载媒体内容文件或流式传输数字视频文件到本地网络终端。随着带宽和网络范围的扩展已经允许日益复杂的数字视频并且向甚至移动设备终端递送视频内容,诸如在个人计算机以及诸如PDA和蜂窝电话之类的移动设备中使用的计算机硬件和软件的能力需要增长,从而跟上对现代数字视频回放日益增长的需求。
尽管硬件和软件发展,但是视频内容总是可以被创建得超过系统的能力,而不论涉及的软件或硬件、使用哪些编解码器或视频内容的分辨率为何。当视频内容超过播放它的系统的能力时,结果通常是被称为音频/视频同步丢失或AV同步(有时也称为步调)的丢失。理想地,当视频内容在设备上播放时,音频和视频轨道将彼此保持同步,因此,例如,当视频中的人说话时,该语音的音频轨道将和该人张开嘴的视频轨道同步,通常也称为唇同步。然而,当视频的复杂度超过播放它的系统的能力时,在较轻微的情况下,唇同步可能丢失,并且 该人的语音音频可能略微早于或略微迟于示出正在移动他的嘴的视频来播放。在播放视频内容的要求大大超过系统能力的较严重情况下,视频回放可能周期性地定格或整体拖延,而音频轨道可能继续播放或可能不继续播放。AV同步的此类丢失对观众的体验是有害的。
为了尝试在视频内容超过系统能力的情况下保持AV同步,过去已经提出了若干算法,其中丢弃称为帧的视频和/或音频轨道的部分。虽然丢弃音频帧可以帮助保持AV同步,但是极大地降低观众的体验,因为遗失的音频帧对观众来说几乎总是明显的。另一方面,在多数情况下,丢弃一个或多个视频帧并不是必然地会被观众注意到。例如,美国电视标准规定使用每秒30视频帧,而欧洲标准指定使用每秒25帧用于视频回放,在这两种回放标准之间,观众不能察觉到任何明显的区别。所以,当视频内容超出系统能力时,在系统中为了最好地保持AV同步,理想的途径是丢弃一个或多个视频帧而不丢弃任何音频帧。
丢弃视频帧可能出现在两个级别:(1)在后处理之前或(2)在解码之前。在被解码之后但在被后处理之前丢弃视频帧的第一情况中,每当一个帧轻微晚些到达后处理器,将不会对其进行后处理或呈现,这在理论上将为按时对下一帧进行后处理和显示节约足够的时间。在第二情况中,晚些到达解码器的帧可以在被解码前丢弃。
为了更好的理解在第二情况中如何在解码前在解码器级处丢弃视频帧,首先需要理解视频帧是如何分类的。出于简单的目的,本申请所撰写的说明书将视频帧分类两个类型之一,关键帧或非关键帧。在本领域中,关键帧也被称为帧内编码帧或i-帧,并且是自包含的视频帧,其包含所有完全呈现单个视频帧而不参考任何之前或随后的帧所需的所有信息。非关键帧也被称为预测帧(p-帧)或双向帧(b-帧),另一方面,非关键帧不是自包含的并包括可供一个或多个之前或随后帧参考的数据。例如,在短视频中,一个对象可以逐渐地通过帧序列移动,而背景视频内容的其余部分维持同样的定位。因此,最后关键帧之后的非关键帧只包含用于描述一个移动物体位置中移动所需的 数据,而不包括任何关于如何完全呈现剩余的视频内容背景的数据。因此,由于在序列中,视频帧可以参考之前的和/或之后的视频帧,所以每当在解码器级丢弃帧时,都可以存在可视的后果,因为丢弃帧将导致参考所丢弃帧的任何帧被不正确地呈现,因为其遗失了对完全呈现来说必须的某些信息部分。于是,当任何帧被丢弃时,可视质量迅速下降,并且仅在只要不丢弃随后的非关键帧就对关键帧进行解码并保持时才可以恢复可视质量。
当在解码器级丢弃帧时,之前对导致可视质量降低最常用的现有技术方案是一旦任何非关键帧迟到,就丢弃所有连续的帧直到下一关键帧。在此方法下,一旦丢弃任何非关键帧直到下一关键帧到达,则对传入视频帧的显示将停止。如果视频片段几乎不包括关键帧,则观众可能获得回放已经停止或挂起的印象。
因此,提供用于保持AV同步的改进方法是有利的,其允许对视频帧的自适应解码和丢弃,以便基本上保持AV同步,而通过在视频回放中防止长暂停来尽可能小地引起对观众体验的负面影响,视频回放中的长暂停可以是由现有方法丢弃非关键帧的序列引起的。此类改进方法可以帮助改进其舒适区域之上的系统能力,这允许在无法处理视频内容复杂度的环境中对视频内容的最佳回放。
发明内容
因此,提供一种方法、设备和计算机程序产品用于改进对于视频片段观众的视频回放体验,其中该视频片段复杂度超过了播放其的系统的能力。特别地,提供一种方法、设备和计算机程序产品来支持,例如,根据非关键帧在解码器级的到达时刻以及下一关键帧的邻近性而在解码器级处自适应丢弃非关键帧。就这一点而言,在大多数环境中可以保持AV同步,并且视频流可以不给观众挂起的体验。因而,当观看的视频片段超过系统的回放能力时,可以增强观众体验。
在一个示例性实施方式中,提供了一种方法,其可以包括维 持下一关键帧时间戳,对视频片段的多个关键帧进行解码,对按时到达的视频片段的多个非关键帧进行解码,以及如果视频帧迟到并且下一关键帧处于计算的丢弃时间窗内,则丢弃一个或多个非关键帧直到下一关键帧。对下一关键帧是否处于丢弃时间窗内的确定基于下一关键帧时间戳。
在另一示例性实施方式中,提供一种包括至少一个计算机可读存储介质的计算机程序产品,所述计算机可读存储介质具有存储于其中的计算机可读程序代码部分。所述计算机可读程序代码部分包括第一、第二、第三和第四可执行部分。第一可执行部分用于维持下一关键帧时间戳。第二可执行部分用于对视频片段的多个关键帧进行解码。第三可执行部分用于对按时到达的视频片段的多个非关键帧进行解码。第四可执行部分用于如果视频帧迟到并且下一关键帧处于计算的丢弃时间窗内,则丢弃一个或多个非关键帧直到下一关键帧。对下一关键帧是否处于丢弃时间窗内的确定基于下一关键帧时间戳。
在另一示例性实施方式中,提供一种可以包括处理器的装置。所述处理器可以配置为维持下一关键帧时间戳,对视频片段的多个关键帧进行解码,对按时到达的视频片段的多个非关键帧进行解码,以及如果视频帧迟到并且下一关键帧处于计算的丢弃时间窗内,则丢弃一个或多个非关键帧直到下一关键帧。对下一关键帧是否处于丢弃时间窗内的确定基于下一关键帧时间戳。
在另一示例性实施方式中,提供一种设备,其可以包括用于维持下一关键帧时间戳的装置,用于对视频片段的多个关键帧进行解码的装置,用于对按时到达的视频片段的多个非关键帧进行解码的装置,以及用于如果视频帧迟到并且下一关键帧处于计算的丢弃时间窗内,则丢弃一个或多个非关键帧直到下一关键帧。对下一关键帧是否处于丢弃时间窗内的确定基于下一关键帧时间戳。
因此,本发明的实施方式可以提供一种方法、设备和计算机程序产品来增强视频回放。结果,例如,观众观看视频片段的体验得到增强,即使视频片段在其能力被该视频片段的复杂度超过 了的系统上播放。
附图说明
因此一般性地描述了本发明的实施方式,现在将参考附图,其不必按比例绘出,以及在附图中:
图1是根据本发明示例性实施方式的移动终端的示意性框图;
图2是根据本发明示例性实施方式的无线通信系统的示意性框图;
图3是根据本发明示例性实施方式的、描述自适应同步解码算法流程图的框图;
图4是示出了根据本发明示例性实施方式的、用于在服务器上解码和转码视频片段并且向远程设备流式传输经转码的片段的系统;以及
图5是根据用于自适应同步解码的示例性方法的流程图。
具体实施方式
现在将参考附图在下文中更全面地描述本发明的实施方式,附图中示出了本发明的某些而不是所有实施方式。实际上,本发明可以按照多种不同的形式来实现,并且不应该认为是被限制于此记载的实施方式;相反,提供这些实施方式是为了使本公开内容满足适用的法律要求。贯穿附图,相同的标号表示相同的元件。
图1示出了可以受益于本发明实施方式的移动终端10的框图。然而,应当理解,所示出以及在此后描述的移动终端仅仅是可以受益于本发明实施方式的一种类型电子设备的示范,因此,不应用来限制本发明实施方式的范围。尽管出于示例目的而示出并在此后描述了电子设备的多个实施方式,但是其他类型的电子设备也可以采用本发明的,其中电子设备诸如便携式数字助理(PDA)、寻呼机、膝上型计算机、台式计算机、游戏设备、电视和其他类型的电子系统。
如图所示,移动终端10包括天线12,其与发射机14和接收机 16进行通信。移动终端10还包括控制器20或者其他处理器,其分别提供去往发射机的信号和接收来自接收机的信号。这些信号可以包括根据适用蜂窝系统的空中接口标准和/或任何数量的不同无线联网技术的信令信息,不同的无线联网技术包括但不限于无线高保真(Wi-Fi)、无线LAN(WLAN)技术,诸如IEEE 802.11等。此外,这些信号可以包括语音数据、用户生成的数据、用户请求的数据等。在此方面,移动终端能够利用一个或多个空中接口标准、通信协议、调制类型以及接入类型等来进行操作。更具体地,移动终端能够根据各种第一代(1G)、第二代(2G)、2.5G、第三代(3G)、第四代(4G)通信协议等来进行操作。例如,移动终端能够根据2G无线通信协议IS-136(TDMA)、GSM和IS-95(CDMA)来进行操作。而且,例如,移动终端能够根据2.5G无线通信协议GPRS、EDGE、等来进行操作。此外,例如,移动终端能够根据诸如采用WCDMA无线电接入技术的UMTS网络之类的3G无线通信协议来进行操作。一些NAMPS以及TACS移动终端也可以从本发明的教导受益,其应该是双模或者更高模的电话(例如,数字/模拟或者TDMA/CDMA/模拟电话)。此外,移动终端10能够根据无线高保真(Wi-Fi)协议进行操作。
应该理解,控制器20可以包括实现移动终端10的音频和逻辑功能所需的电路。例如,控制器20可以是数字信号处理器设备、微处理器设备、模数转换器、数模转换器等。移动终端的控制和信号处理功可以根据这些设备各自的能力在其间分配。控制器还可以包括内部语音编码器(VC)20a、内部数据调制解调器(DM)20b等。此外,控制器可以包括对可以存储在存储器中的一个或多个软件程序进行操作的功能。例如,控制器20能够操作连接程序,诸如Web浏览器。连接程序可以允许移动终端10例如根据诸如无线应用协议(WAP)、超文本传输协议(HTTP)等之类的协议来发射和接收Web内容(诸如基于位置的内容)。移动终端10能够使用传输控制协议/因特网协议(TCP/IP)来跨因特网50发射和接收Web内容。
移动终端10还可以包括用户接口,其包括传统的耳机或者扬声器24、振铃器22、麦克风26、显示器28以及用户输入接口等,所有这些设备都可以耦合至控制器20。尽管未示出,移动终端可以包括用于为与移动终端相关的各种电路供电的电池,例如,用于提供机械振动作为可觉察输出的电路。用户输入接口可以包括允许移动终端10接收数据的设备,诸如小键盘30、触摸显示器(未示出)、控制杆(未示出)和/或其他输入设备。在包括小键盘的实施方式中,小键盘可以包括传统的数字键(0-9)和相关键(#、*),和/或用于操作移动终端的其他键。
如图1所示,移动终端10还可以包括用于共享和/或获得数据的一个或多个装置。例如,移动终端可以包括短距射频(RF)收发机和/或询问器64,因此,可以根据RF技术与电子设备共享和/或从电子设备获得数据。移动终端可以包括其他短距收发机,例如红外(IR)收发机66、使用由蓝牙(BluetoothTM)特殊兴趣组开发的蓝牙(BluetoothTM)类型无线技术操作的蓝牙(BluetoothTM(BT))收发机68等。蓝牙收发机68能够根据WibreeTM无线电标准进行操作。这这点上,移动终端10以及具体地短距收发机能够向处于移动终端的邻近区域内(诸如10米内)的电子设备传输数据和/或从该电子设备接收数据。尽管未示出,但是移动终端能够根据各种无线联网技术从电子设备传输和/或接收数据,其中各种无线联网技术包括无线高保真(Wi-Fi)、诸如IEEE 802.11技术的WLAN技术等。
移动终端10还可以包括存储器,诸如订户身份模块(UIM)38、可移动用户身份模块(R-UIM)等,其可以存储与移动订户相关的信元。除了SIM之外,移动终端10还可以包括其他可移动和/或固定存储器。在这点上,移动终端可以包括易失性存储器40,诸如易失性随机访问存储器(RAM),其可以包括用于数据临时存储的高速缓存区域。移动终端可以包括其他非易失性存储器42,其可以是嵌入式的和/或可移动的。非易失性存储器可以包括EEPROM、闪存等。存储器可以存储移动终端10可以用于执行移动终端功能的一个或多个软 件程序、指令、信息片段、数据等。例如,存储器可以包括能够唯一标识移动终端10的标识符,诸如国际移动设备标识(IMEI)码。
在示例性实施方式中,移动终端10包括与控制器20通信的媒体捕获模块,诸如照相机、视频和/或音频模块。媒体捕获模块可以是用于捕获图像、视频和/或音频以便存储、显示或者传输的任何装置。例如,在媒体捕获模块是照相机模块36的示例性实施方式中,照相机模块36可以包括能够根据捕获的图像形成数字图像文件或根据一系列捕获的图像形成数字视频文件的数字照相机。同样,照相机模块36包括所有硬件,诸如,镜头或者其他光学部件,以及用于根据捕获的图像或一系列捕获的图像来创建数字图像或视频文件所需的软件。备选地,照相机模块36可以仅包括查看图像所需的硬件,而移动终端10的存储器设备存储由控制器20执行的指令,其形式为根据捕获的图像或多个图像来创建数字图像或视频文件所需的软件。在示例性实施方式中,照相机模块36还可以包括诸如协处理器的处理元件,其协助控制器20来处理图像数据以及编码器和/或解码器,以便压缩和/或解压图像数据。编码器和/或解码器可以根据JPEG或MPEG标准格式来编码和/或解码。
现在参考图2,以示例而不是限制的方式提供可以支持向诸如图1的移动终端的电子设备通信或从其进行通信的一个类型的系统的图示。如图所示,一个或多个移动终端10的每个都可以包括天线12,以用于将信号发射至基地或基站(BS)44以及用于从其接收信号。基站44可以是一个或多个蜂窝或移动网络的一部分,每个网络包括操作该网络所需的元件,例如移动交换中心(MSC)46。如本领域技术人员公知的,移动网络还可以称为基站/MSC/互联功能(BMI)。在操作中,当移动终端10进行和接收呼叫时,MSC 46能够路由去往和来自移动终端10的呼叫。当呼叫涉及移动终端10时,MSC 46还可以提供到陆地线主干的连接。此外,MSC 46能够控制去往和来自移动终端10的消息的转发,并且还能够控制去往和来自消息收发中心的、针对移动终端10的消息的转发。应当注意,尽管在图2的系 统中示出了MSC 46,但是MSC 46仅仅是示例性网络设备,并且本发明不限于在采用MSC的网络中使用。
MSC 46可以耦合至数据网络,诸如局域网(LAN)、城域网(MAN)和/或广域网(WAN)。MSC 46可以直接耦合至数据网络。然而,在一个典型实施方式中,MSC 46可以耦合至GTW 48,而GTW 48可以耦合至例如因特网50的WAN。继而,诸如处理元件(例如,个人计算机、服务器计算机等)的设备可以经由因特网50耦合至移动终端10。例如,如下所述,处理元件可以包括与下文描述的计算系统52(图2中示出了两个)、源服务器54(图2中示出了一个)等相关联的一个或多个处理元件。
如图2所示,BS 44还可以耦合至信令GPRS(通用分组无线服务)支持节点(SGSN)56。如本领域技术人员公知的,SGSN 56能够执行类似于MSC 46的功能,以用于分组交换服务。与MSC 46类似,SGSN 56可以耦合至诸如因特网50的数据网络。SGSN 56可以直接耦合至数据网络。备选地,SGSN 56可以耦合至分组交换核心网,诸如GPRS核心网58。分组交换核心网继而可以耦合至另一GTW 48,诸如GTW GPRS支持节点(GGSN)60,而GGSN 60可以耦合至因特网50。除了GGSN 60之外,分组交换核心网还可以耦合至GTW 48。而且,GGSN 60可以耦合至消息收发中心。在此方面,类似于MSC 46,GGSN 60和SGSN 56能够控制消息(诸如MMS消息)的转发。GGSN60和SGSN 56还能够控制去往和来自消息收发中心的、针对移动终端10的消息的转发。
此外,通过将SGSN 56耦合至GPRS核心网58和GGSN 60,诸如计算系统52和/或源服务器54的设备可以经由因特网50、SGSN 56以及GGSN 60耦合至移动终端10。在此方面,诸如计算系统52和/或源服务器54的设备可以跨越SGSN 56、GPRS核心网58以及GGSN60来与移动终端10通信。通过将移动终端10以及其他设备(例如,计算系统52、源服务器54等)直接或者间接地连接至因特网50,移动终端10例如可以根据超文本传输协议(HTTP)等来与其他设备通 信以及相互之间彼此通信,由此执行移动终端10的各种功能。
尽管没有在图2中示出了并描述了每个可能的移动网络的每个元件,但是应当意识到,诸如移动终端10的电子设备可以通过BS 44耦合至多个不同网络中的任意的一个或多个。在此方面,网络能够支持根据多个第一代(1G)、第二代(2G)、2.5G、第三代(3G)、第四代(4G)和/或未来移动通信协议等中的任意一个或多个协议的通信。例如,一个或多个网络能够支持根据2G无线通信协议IS-136(TDMA)、GSM和IS-95(CDMA)的通信。而且,例如,一个或多个网络能够支持根据2.5G无线通信协议GPRS、增强数据GSM环境(EDGE)等的通信。此外,例如,一个或多个网络能够支持根据3G无线通信协议的通信,其中3G无线通信协议诸如使用宽带码分多址(WCDMA)无线电接入技术的通用移动电话系统(UMTS)网络。某些窄带AMPS(NAMPS)以及TACS网络还可以从本发明的实施方式中受益,还有双模或更高模移动终端(例如,数字/模拟或TDMA/CDMA/模拟电话)。
如图2所示,移动终端10还可以耦合至一个或多个无线接入点(AP)62。AP 62可以包括被配置为根据诸如以下的技术来与移动终端10进行通信的接入点:射频(RF)、蓝牙(BluetoothTM(BT))、红外(IrDA)或者多种不同的无线网络互联技术中的任意技术,其中无线网络互联技术包括:诸如IEEE 802.11(例如,802.11a、802.11b、802.11g、801.11n等)的无线LAN(WLAN)技术、WibreeTM技术、诸如IEEE 802.16的微波接入全球互通(WiMAX)技术,无线高保真(Wi-Fi)和/或诸如IEEE 802.15等的超宽带(UWB)等技术等等。AP 62可以耦合至因特网50。类似于MSC 46,AP 62可以直接耦合至因特网50。然而,在一个实施方式中,AP 62可以经由GTW 48间接耦合至因特网50。此外,在一个实施方式中,可以将BS 44视作另一AP 62。将会意识到,通过将移动终端10以及计算系统52、源服务器54和/或多种其他设备中的任意设备直接或者间接地连接至因特网50,移动终端10可以彼此进行通信,与计算系统进行通信,等等, 由此来执行移动终端10的各种功能,例如将数据、内容等发射至计算系统52和/或从计算系统52接收内容、数据等。这里使用的术语“数据”、“内容”、“信息”以及类似术语可以互换使用,用来表示能够根据本发明的实施方式而被发射、接收和/或存储的数据。由此,不应将任何这种术语的使用作为对本发明实施方式的精神以及范围的限制。
尽管未在图2中示出,除了跨越因特网50将移动终端10耦合至计算系统52和/或源服务器54之外或者作为替代,还可以根据例如RF、BT、IrDA或者多种不同的有线或无线通信技术(包括LAN、WLAN、WiMAX、无线高保真(Wi-Fi)、WibreeTM和/或UWB等技术)中的任意技术来将移动终端10、计算系统52与源服务器54彼此耦合和通信。一个或多个计算系统52可以附加地或者备选地包括可移动存储器,其能够存储随后可以传送给移动终端10的内容。此外,移动终端10可以耦合至一个或多个电子设备,诸如打印机、数字投影仪和/或其他多媒体捕获、产生和/或存储设备(例如,其他终端)。类似于计算系统52,移动终端10可以被配置为根据例如RF、BT、IrDA或者多种不同的有线或无线通信技术(包括USB、LAN、WibreeTM、Wi-Fi、WLAN、WiMAX和/或UWB等技术)中的任意技术来与便携式电子设备进行通信。在这方面,移动终端10能够经由短距通信技术与其他设备进行通信。例如,移动终端10可以与配备有短距通信收发器80的一个或多个设备51进行无线短距无线通信。电子设备51可以包括能够根据不同短距通信技术中的任意一个来发射和/或接收数据的多个不同设备和转发器中的任意一个,其中不同短距通信技术包括但不限于BluetoothTM、RFID、IR、WLAN、红外数据联盟(IrDA)等。电子设备51可以包括不同移动或静止设备中的任意一个,包括其他移动终端、无线附件、设备、便携式数字助理(PDA)、寻呼机、膝上型计算机、运动传感器、灯开关和其他类型的电子设备。
图3示出了表示根据本发明示例性实施方式的自适应同步解码算法流程图的框图。应该理解,流程图的每个框或步骤以及流程图中框 的组合可以通过各种手段实现,诸如硬件、固件、和/或包括一个或多个计算机程序指令的软件。例如,上文描述的一个或多个过程可以通过计算机程序指令实现。就这一点而言,这些计算机程序指令可以由一个或多个电子设备的存储器设备存储,并由至少一个处理器执行。应该理解,任何这样的计算机程序指令可以被加载到计算机设备或其他装置(即硬件)上来制造机器,从而在计算设备或其他装置上执行的指令实现了图3的方法。这些计算机程序指令可以存储于计算机可读存储器中,其可以引导计算设备或其他装置以特定的方式运行,从而存储于计算机可读存储器中的指令制造包括实现图3方法的指令的产品。计算机程序指令可以被加载到计算设备或其他装置上,以使得在计算设备或其他装置上执行一系列的操作步骤,以便生产计算机实现的过程,从而在计算设备或其他装置上执行的指令提供用于实现图3方法的步骤。
在示例性实施方式中,本发明可包括可以被设备(例如,移动终端10)的处理器(例如,控制器20)执行或否则被控制的指令。例如,用户可以在移动终端10的显示器28上观看视频片段。在示例性实施方式中,视频片段可驻留于移动终端10的存储器42中,并且可以预先从远程网络设备(诸如图4的视频源150)上下载下来,其可以实现为源服务器54。在另一示例性实施方式中,视频片段可以被移动终端10的照相机模块36捕获。在又一示例性实施方式中,视频片段可以存储在图2所示系统中的一个或多个设备的存储器中,并且以整体或部分被发送到移动终端10。如果视频片段的复杂度超过控制器20的解码和回放该视频片段的能力,该设备可为了AV同步而自适应地确定何时省略帧,在此处称为“丢弃”和/或何时解码帧。像上文提到的,这里使用的术语“AV同步”可与术语“AV的同步”、“音频/视频同步”以及“步调”互换使用,并且其表示视频片段中独立的音频和视频部分的相对定时,其中理想化的是音频和视频部分回放的定时将彼此同步。应该理解,当这里讨论超过系统硬件、软件或它们组合的能力的视频片段时,术语“超过能力”并不一定意味着超过系 统的总能力,只是仅仅超过可能被花费在解码视频片段上的系统能力。
包括用于执行包括本发明实施方式的指令的设备可以是网络设备,诸如,例如图2系统中的源服务器54或计算系统52。源服务器54或计算系统52可以用作如图4所描绘的视频源150。现参考图4,在示例性实施方式中,该视频源150可以访问可存储在存储器152中的多个视频片段,它的处理器可配置为使用解码器154解码视频片段,使用转码器156将视频片段转码为远程客户端设备支持的格式,并且通过网络链路实时地按需向诸如用户设备158的远程客户端设备流式传输视频片段,用户设备158可以是移动终端10。即使单个视频片段的解码和转码不超过视频源150的系统资源,同时对多个视频片段进行解码、转码和流式传输可能约束和/或超过系统资源。根据该示例性实施方式,诸如视频源150的处理器的设备可以自适应地丢弃由设备解码并转码的一个或多个视频片段中的一个或多个帧,以便避免由该设备流式传输的一个或多个视频片段上由于受约束的系统资源而丢失AV同步。
在本发明自适应同步解码算法的一个示例性实施方式中,若干布尔变量、统计量和时间戳可以由解码器确定和维持,以允许如下描述的、将执行的解码器级确定步骤。例如,解码器可以确定和维持视频回放的当前时间。该当前时间代表音频回放的当前位置并且可以是信息性的,因为本发明的实施方式考虑视频帧的位块传送是由音频回放驱动的并且从未丢弃音频帧。当前时间可以存储在设备的存储器中,在该设备上可以实现本发明的实施方式,存储器诸如是移动终端10的易失性存储器40。如结合图3在下文所描述的,任何视频帧的时间戳可以与如由当前时间表示的当前音频回放位置时间戳进行比较,以出于根据本发明的实施方式的、确定是丢弃还是解码视频帧的目的来确定视频帧是否迟到。
解码器也可确定和维持下一关键帧的时间戳。该时间戳可以存储在其上实现本发明实施方式的设备的存储器中,例如存储器是移动终 端10的易失存储器40。下一关键帧的时间戳指示在时间线中何时显示下一关键帧并且可以从多个源的一个或多个获得该下一关键帧。例如,解码视频以及基于自适应同步解码算法丢弃和/或解码帧的设备可以包含多个输入缓冲器,其在解码之前预先缓冲视频帧。在这个示例中,如果输入缓冲器中的一个包括关键帧,则该设备可以提取该关键帧的时间戳,从而定义下一关键帧的时间戳。如另一个示例,视频片段可以具有以已知率散置在视频片段内的关键帧,诸如每30个帧一个关键帧。在这个示例中,设备可以确定相对于之前关键帧的下一关键帧的时间戳。在另一个示例中,关键帧的位置可以在解码前被设备标识。就这一点而言,文件格式解析器可以读取视频文件并且在由设备解码前标识关键帧的位置。备选地,视频文件可以与索引表相关联,该索引表描述视频片段的帧序列并且标识该关键帧。应该理解,时间戳可以包括一个或多个表示时间的方法,诸如绝对时间参考,偏移时间参考等。
根据本发明实施方式的设备可以独立地维持涉及解码单个关键帧和单个非关键帧所需时间的统计量。这些统计量可以存储在设备的存储器中,诸如,存储器是移动终端10的易失存储器40。在一个实施方式中,为了示例的目的,统计量可以描述解码关键帧所需的平均时间和解码非关键帧所需的平均时间,并且每次对帧进行解码时可以由设备动态地重新计算。设备的处理器,诸如移动终端10的控制器20,可以确定平均解码时间,诸如通过执行提供该确定的软件。尽管可以动态地计算和维持平均解码时间,以便估计解码传入帧所需的时间,本发明的实施方式并不限于此并且无需维持平均解码时间统计量。反而,在备选的实施方式中,该设备可以确定和维持解码每个最后关键帧和最后非关键帧所花费的时间。备选地,设备可以基于例如视频的复杂度并且考虑诸如其分辨率的因素来确定解码关键帧和非关键帧所需时间的固定估计。在备选的实施方式中,设备可以维持中间解码时间来代替平均解码时间。所有这些用于确定解码单个关键帧和单个非关键帧所需时间的方法和其他类似方法由本发明的实施方 式所构思并且可以互换使用,诸如取决于哪种方法更有效。同样,虽然解码单个关键帧和单个非关键帧所需时间将处于示例的目的在下文中依据平均解码时间来讨论,但是本发明的实施方式不限于此。
设备也可以维持布尔逻辑变量,其指示是否所有非关键帧都被连续地丢弃直至下一关键帧到达。最初,这一变量可以被设置为FALSE(假),并且当每一个关键帧到达并解码时可以被重新设置为FALSE。然而,变量在一定环境中可以被设置为真,这将在下文中讨论。变量的值可以维持在设备的存储器中,诸如移动终端10的易失性存储器40。
此外,设备可以维持变量,该变量指示已经丢弃的连续帧的数量。该变量的最初值可以是0并且每次解码帧时可以对其进行重置。当帧被丢弃,该值可以递增。该变量的当前值可以维持在设备的存储器中,诸如移动终端10的易失存储器40。该设备还可以包括指示可以丢弃的连续帧的最大数量的变量。该变量的值可以凭经验确定,以便至少周期性地位块传送视频帧以迫使视频显示器周期性地更新,从而用户不认为视频回放已经延迟。例如,如果视频片段的帧率是每秒30帧(fps),每30帧解码一帧将保证帧每秒位块传送帧一次。同样,该设备可以将可以丢弃的连续帧最大数量设置为29。该变量的值可以维持在设备的存储器中,诸如移动终端10的易失存储器40。
自适应同步解码背后的基本逻辑是试图连续地解码所有帧。然而,当帧由于视频片段的复杂度超过系统资源而迟到时,自适应同步解码逻辑允许对非关键帧选择性地丢弃。如在图3中可见的,操作100-126可以在解码器级执行,诸如通过解码器,其可以以硬件、软件、或它们的某些组合实现,并可以由处理器控制或实现,处理器诸如移动终端10的控制器20。操作128-138可以在后处理级执行,诸如通过后处理器,其可以以硬件、软件、或它们的某些组合实现,并且可以由处理器控制或实现,处理器诸如移动终端10的控制器20。
起初,在操作100,传入的编码帧可到达解码器。该解码器可以在操作102确定传入帧是否是关键帧。如果该帧是关键帧,则解码器 可以在操作104解码该关键帧。接下来,在操作106,解码器可以重新设置布尔变量的值为假,其中该布尔变量指示是否所有直到下一关键帧的帧都应当被丢弃。该解码器继而可以更新指示在操作108解码关键帧所需时间的变量,诸如平均时间。
另一方面,如果该解码器确定在操作102传入的编码帧不是关键帧,则该解码器可以确定布尔变量的值,该布尔变量指示是否所有直到下一关键帧的帧都应当在操作110被丢弃。如果布尔变量的值为TRUE(真),则表明所有直到下一关键帧的帧都应当被丢弃,在操作126,解码器可以将维持之前已经丢弃的连续帧数量的变量值与可以丢弃的连续帧的最大数量进行比较。在操作126,如果值是相等的,则该解码器可以在操作122解码非关键帧。通过解码非关键帧,该解码器可以确保视频中的至少一个帧被频繁的位块传送,这足以维持对于用户而言的正在进行的视频回放的表现。该解码器也可以重置指示已经丢弃的连续帧的数量的变量值为零。随后,该解码器可以在操作124中更新解码非关键帧所花费的平均时间。如果在操作126中的确定是丢弃的连续帧的数量没有达到被丢弃的连续帧的最大可允许数量,则该解码器可以在操作118丢弃非关键帧。
如果在操作110,该解码器确定布尔变量的值为FALSE,其中布尔变量指示是否直到下一关键帧的所有的帧应当被丢弃,则该解码器可以确定视频帧对解码器来说是否迟到,如操作112所示。在示例性实施方式中,该解码器可以做这样的确定,例如,通过和当前音频回放位置比较传入视频帧的时间戳。如果传入视频帧的时间戳比当前音频回放位置晚,则可以认为传入视频帧迟到。如果在操作112解码器确定传入编码帧没有迟到,则该解码器可以在操作122解码非关键帧,并且该解码器可以在操作124更新解码非关键帧的平均时间。然而,如果该传入编码帧对于解码器而言迟到,则该解码器可以在操作114继续确定是否下一关键帧位于丢弃时间窗内。如果下一关键帧时间戳位于丢弃时间窗内,则该解码器可以在操作116设置变量的布尔值为TRUE,其中变量指示是否所有直到下一关键帧的帧将被丢弃,并且 可以在操作118继续丢弃帧。
丢弃时间窗(DTW)可以基于解码单个关键帧所需的平均时间(KF_Dec_Time)以及解码单个非关键帧所需的平均时间(NKF_DecT_ime)乘以一个整数值的积来计算,其中该整数值等于小于在其上实现本发明实施方式的设备的输出缓冲器的数量(Num_Output_Buffers)的一个整数值。用于计算丢弃时间窗的等式可以表示如下:
DTW=KF_Dec_Time+NKF_Dec_Time*(Num_Output_Buffers-1)因此,丢弃时间窗值表示在对下一关键帧以及该关键帧之后连续的足够非关键帧进行解码以填充设备的所有输出缓冲器所需的时间量。在这点上,如果非关键帧对于解码器而言迟到并且下一关键帧将在丢弃时间窗内达到,那么解码器可以丢弃所有帧直到下一关键帧,从而当位块传送下一关键帧时,将对填充输出缓冲器的该关键帧和足够的随后非关键帧进行解码,使得音频回放和视频回放可以重新同步并且可以至少在此后的一段时间内维持同步。
需要指出以下影响,输出缓冲器的数量也可以影响回放。在这点上,由于输出缓冲器的数量可以用于计算丢弃时间窗,所以可以在存在更多输出缓冲器的时刻丢弃更多连续的非关键帧,直到已经丢弃了最大连续数量的非关键帧。因此,如果在具有更多输出缓冲器的解码器处帧开始迟到,则丢弃第一帧时和显示下一关键帧时之间的视频回放中的暂停可以按比例地延长并且因此可能对视频片段的观众而言更加明显。
然而,如果解码器在操作114确定下一关键帧时间戳不在丢弃时间窗内,则解码器可以在操作120确定是否已经触发了故障安全机制。故障安全机制可以表示以下内容之间的折中:(1)如果下一关键帧不在丢弃时间窗内则允许解码以及位块传送非关键帧轻微不同步(2)允许视频回放滞后于音频回放如此之多,则不仅由于继续解码迟到的帧而可能浪费系统资源(这导致逐渐地恶化了AV同步),而且系统可能变得不稳定,因为系统资源受到进一步约束。因此,如果视频帧 迟于故障安全阈值到达,则解码器可以在操作116将布尔变量设置为TRUE,该布尔变量指示是否下一关键帧之前的所有非关键帧都应该被丢弃。然后,解码器可以在操作118丢弃帧。
故障安全阈值表示视频回放中的恒定最大可允许滞后时间,并且可以以多种方式对其进行确定。在一个实施方式中,故障安全阈值可以表示系统可以预先缓冲的已解码视频的长度。备选地,例如,故障安全阈值可以根据不允许视频回放滞后于音频回放的固定时间长度来设置,诸如3秒。故障安全机制进一步提供以下情况中的真正“故障安全”,在该情况中,下一关键帧的时间戳不可用于允许在下一关键帧处于丢弃时间窗内时丢弃非关键帧。在该情况中,故障安全机制可以用于避免落在音频回放之后超过故障安全阈值的视频回放,并且可以在下一关键帧处恢复同步。
另一方面,如果视频帧迟到,而下一关键帧不在丢弃时间窗内并且尚未触发故障安全机制,则解码器可以在操作122解码非关键帧,并且解码器还可以在操作124更新解码非关键帧所需的平均时间。然后,迟到非关键帧可以继续被解码并且可能逐渐失去AV同步直到下一关键帧处于丢弃时间窗内或触发了故障安全机制。一旦下一关键帧到达并且被解码,则可以恢复AV同步。
可以将已经解码的任何帧传递到后处理器,其可以对帧进行后处理和显示。出于本发明实施方式的目的,后处理器的操作逻辑无需改变,因为在一个实施方式中,所有相关判决逻辑都由解码器执行。再次参考图3,一旦帧到达后处理器,则后处理器可以在操作128确定帧是否迟到。如果帧没有迟到,则后处理器在操作130对帧进行后处理。然后,后处理器可以等待直到回放时间线中帧应该显示的时刻,并且继而可以在操作134对该帧进行显示。另一方面,如果帧迟到了,则后处理器可以在操作136确定帧是否非常迟。对于什么样才被认为是“非常迟”的预定义时间阈值可以取决于后处理器实现而不同,但是在示例实施方式中,可以处于100毫秒以上的任何数量级上。如果帧不是非常迟,则丢弃帧。然而,如果如由帧是否迟于预定义的阈值 到达而确定帧非常迟,则可以在操作138对该帧进行后处理并且随后在操作134进行显示。该基本后处理器实现背后的逻辑在于如果帧仅是稍微迟到,则为了恢复AV同步或至少防止回放落后于同步更远,应该丢弃该帧。然而,如果后处理器保持接收总是迟于它们应该到达时刻的帧,这导致了帧“非常迟”,则在已经失去AV同步时后处理器可以使得帧被显示,并且对于视频回放而言,最佳用户体验在继续而不是丢弃所有视频帧。
然而,在本发明的一个实施方式中,设备可以包括逻辑,该逻辑进一步允许在解码器级进行丢弃还是解码并显示帧的判决,而不是允许后处理器决定什么帧迟到以及非常迟,从而后处理器无需进行任何修改来支持自适应同步解码。为了实现该逻辑,解码器可以调整已经解码或待解码的迟到帧的时间戳,从而它们反映仅稍微大于如由音频回放位置确定的当前时间的时间,这使得后处理器将显示帧而不是丢弃它们。与当前时间相加以计算新时间戳的附加时间常数可以是平均后处理时间,其反映了在显示帧之前对所解码帧进行颜色转换、缩放、旋转等所需的时间。由于该值可能远没有解码时间那么动态,所以可以将其视为片段之间的常数。因此,虽然备选实施方式将动态地计算针对帧解码时间实现的平均后处理时间,但是可以代之以使用静态值来避免对后处理器逻辑进行任何修改。例如,在一个实施方式中,包含平均后处理时间的估计的参考表可以存储在存储器中,该平均后处理时间的估计取决于视频片段分辨率或复杂度的其他测量,存储器诸如移动终端10的非易失性存储器42,并且该参考表由解码器参考用于确定将与当前时间相加来获得迟到帧时间戳新值的恒定平均后处理时间。存储在该表中的值可以根据在其上对视频片段进行后处理的系统的实际软件和硬件配置而改变。
在一个示例实施方式中,对于迟到的每个已解码帧可以不执行时间戳修改。反之,可以对迟于迟到帧容限值的帧执行该时间戳修改,从而仅在回放仍旧同步的情况下帧逐渐地迟到并且不仅是轻微延迟时应用时间戳修改。例如,迟到帧容限值可以设置为50毫秒,因为 后处理器经常具有+/-20毫秒的阈值用于确定帧是否准时。然而,上面的值仅是出于示例目的,并且关于迟到帧容限,本发明的实施方式不限于上述值。在这点上,仍旧可以允许后处理器丢弃在回放仍旧基本上同步时仅轻微迟到的帧。然而,如果回放失去同步,则解码器可以确定是否显示已解码的帧,从而为观众提供可行的体验。
图5是可以由根据本发明示例性实施方式的方法和计算机程序产品执行的操作的流程图。图5流程图的操作表示根据本发明示例性实施方式的、图3所示的操作的步骤的简化组合。应该理解,流程图的每个框或步骤、流程图中框的组合可以通过各种方式实现,诸如硬件、固件和/或包括一个或多个计算机程序指令的软件。例如,上述一个或多个过程可以由计算机程序指令实现。在这点上,这些计算机程序指令可以由一个或多个电子设备的存储器设备存储并且由至少一个处理器执行。应该理解,任何此类计算机程序指令可以加载到计算设备或其他装置(即,硬件)上用于生产机器,从而计算设备或其他装置上执行的指令实现图5的方法。这些计算机程序指令可以存储在计算机可读存储器中,其可以引导计算设备或其他装置以特定方式工作,从而存储在计算机可读存储器中的计算机程序指令生产包括用于实现图5方法的指令的产品。计算机程序指令可以加载到计算设备或其他装置上以使得计算设备或其他装置上待执行的一系列操作步骤产生计算机实现的过程,从而在计算设备或其他装置上执行的指令提供用于实现图4的方法的步骤。
在这点上,图5示出了用于视频片段的自适应同步解码的方法的一个实施方式。该方法的操作可以在解码器级执行,诸如由解码器执行,其可以以硬件、软件或它们的组合来实现,并且可以由处理器控制或由处理器实现,处理器诸如移动设备10的控制器20。该方法可以包括在操作200维持下一关键帧时间戳。如操作210所示,可以对视频片段的多个关键帧进行解码。尽管在一个实施方式中,对所有关键帧进行解码,但是本发明的实施方式不限于此并且可以不时丢弃关键帧。如操作220所表示的,可以对按时到达的、视频片段的多个非 关键帧进行解码。然而,如果视频帧迟到并且触发了故障安全机制或如果视频帧迟到并且下一关键帧处于所计算的丢弃时间窗内,则可以丢弃一个或多个非关键帧直到下一关键帧,如操作230所示。
上述功能可以以多种方式执行。例如,可以采用用于执行上述每个功能的任何合适手段来执行本发明的实施方式。在一个实施方式中,所有或一部分元件通常将在计算机程序产品的控制下操作。用于执行本发明实施方式的方法的计算机程序产品可以包括计算机可读存储介质,诸如非易失性存储介质,以及计算机可读程序代码部分,诸如包含在计算机可读存储介质中的一系列计算机指令。
同样,继而,本发明的实施方式可以增强视频片段的AV同步和观众的体验。在一个方面中,本发明的实施方式支持对视频片段进行解码的诸如移动终端10的设备回放具有超过设备硬件和/或软件能力的复杂度的视频片段。下一关键帧将何时到达的知识将允许当帧在解码器处迟到时在下一关键帧之前丢弃非关键帧的连续序列,使得可以预先缓冲下一关键帧和多个后续帧,从而允许在下一关键帧处恢复AV同步。如果关键帧在视频片段中不频繁并且视频回放逐渐远远地落后于音频回放,则本发明实施方式的故障安全机制可以通过提供在下一关键帧之前丢弃多个非关键帧而在可以恢复同步时帮助避免以下情况,即视频回放比故障安全阈值落后于音频回放更远。而且,本发明的实施方式可以促进以下情况,即通过限制可以被丢弃的连续帧的数量而使丢弃一系列非关键帧尽可能小地干扰观众体验,使得周期性地位块传送至少一个帧,从而更新显示器以警告观众回放尚未停止。而且,本发明的实施方式支持超过系统复杂度而不丢弃任何音频帧的视频片段的增强回放。
本发明的实施方式还可以以媒体流式传输或实时转码设备实现。尽管这些设备通常具有大大超过在其上观看视频片段的平均用户设备(诸如移动终端10)能力的硬件和软件能力,但是仍旧可能创建超过此类设备的硬件和/或软件能力的视频片段。而且,设备通常按需对多个视频片段进行同时解码和转码以便向多个远程用户进行流式传 输。同样,系统资源可能被约束并且本发明的实施方式可以用于跨多个视频片段维持更好的同步,从而可以在保持AV同步时对更多视频片段进行解码。
这里记载的本发明的很多修改和其他实施方式将被从上面的描述和相关联附图中所呈现的教导获益的、这些发明所涉及的领域中的技术人员想到。因此,应该理解,本发明的实施方式不限于所公开的具体实施方式并且修改和其他实施方式旨在被包括在所附权利要求书的范围内。尽管这里使用了特定的术语,但是仅在一般性和描述性的意义上使用它们并且不是出于限制的目的。
Claims (14)
1.一种用于解码音频视频信号的方法,包括:
在解码器处接收视频帧,并确定所接收到的视频帧是关键视频帧;
维持下一关键帧时间戳;
在所述解码器处接收进一步的视频帧,并确定所接收到的进一步的视频帧是非关键视频帧;
通过比较所述非关键视频帧的时间戳与当前音频回放位置时间戳,在所述解码器处确定所述非关键视频帧在到达所述解码器时迟到,其中所述当前音频回放位置时间戳代表音频回放的当前位置;以及
根据非关键视频帧在所述解码器处是否迟到并且下一关键帧时间戳是否在计算的丢弃时间窗内,在所述解码器处确定丢弃直到下一关键视频帧之前接收到的进一步的非关键视频帧,其中计算所述丢弃时间窗以代表需要用来解码所述下一关键视频帧、以及解码在所接收到的关键视频帧之后的连续的足够非关键视频帧以便填充输出缓冲器的时间量。
2.根据权利要求1所述的方法,进一步包括维持对已经丢弃的连续非关键视频帧数量的计数,并且根据是否已经丢弃了多于连续非关键视频帧的预定最大数量,解码所述非关键视频帧。
3.根据权利要求2所述的方法,其中确定能够丢弃的连续非关键视频帧的预定最大数量,从而将以足以警告视频片段观众回放尚未终止的频率对非关键视频帧进行解码。
4.根据权利要求1所述的方法,进一步包括确定到达解码器的非关键视频帧是否迟于预定义阈值,并且如果迟于预定义阈值,则修改非关键视频帧上的时间戳,所述视频帧将被解码以使得它们反映大于所述音频回放的所述当前位置的时间,以便一旦所述解码器已经解码所述非关键视频帧,则后处理器将对所述非关键视频帧进行后处理。
5.根据权利要求4所述的方法,其中预定义阈值是100毫秒。
6.根据权利要求1所述的方法,其中通过从已缓冲的关键视频帧、在视频片段内散置关键视频帧的已知恒定率、已经读取描述视频片段的文件并且标识了关键视频帧的文件格式解析器中的一个或多个、或从与视频片段相关联的索引表提取下一关键视频帧的时间戳来维持下一关键视频帧的时间戳。
7.根据权利要求1所述的方法,进一步包括:
如果非关键视频帧迟到并且触发了故障安全机制(102),则丢弃一个或多个非关键视频帧直到下一关键视频帧,其中如果所述非关键视频帧延迟了大于所述丢弃时间窗的时间长度,则触发故障安全机制,其中所述故障安全机制是在视频回放中代表恒定最大可允许滞后时间的进一步预定义阈值;以及
维持对已经丢弃的连续非关键视频帧数量的计数,并且如果已经丢弃了多于连续非关键视频帧的预定最大数量,则解码所述非关键视频帧。
8.一种用于解码音频视频信号的设备,包括:
用于在所述设备处接收视频帧,并确定所接收到的视频帧是关键视频帧的装置;
用于维持下一关键帧时间戳的装置;
用于在所述设备处接收进一步的视频帧,并确定所接收到的进一步的视频帧是非关键视频帧的装置;
用于通过比较所述非关键视频帧的所述时间戳与当前音频回放位置时间戳,在所述设备处确定所述非关键视频帧在到达所述设备时迟到的装置,其中当前音频回放位置时间戳代表音频回放的所述当前位置;以及
用于根据非关键视频帧在所述设备处是否迟到并且下一关键帧时间戳是否在计算的丢弃时间窗内,在所述设备处确定丢弃直到下一关键视频帧之前接收到的进一步的非关键视频帧的装置,其中计算所述丢弃时间窗以代表需要用来解码所述下一关键视频帧、以及解码在所接收到的关键视频帧之后的连续的足够非关键视频帧以便填充输出缓冲器的时间量。
9.根据权利要求8所述的设备,进一步包括用于维持对已经丢弃的连续非关键视频帧数量的计数,并且根据是否已经丢弃了多于连续非关键视频帧的预定最大数量,解码所述非关键视频帧的装置。
10.根据权利要求9所述的设备,其中确定能够丢弃的连续非关键视频帧的预定最大数量,从而将以足以警告视频片段观众回放尚未终止的频率对非关键视频帧进行解码。
11.根据权利要求8所述的设备,进一步包括用于确定到达所述设备的非关键视频帧是否迟于预定义阈值,并且如果迟于预定义阈值,则修改非关键视频帧上的时间戳的装置,所述视频帧将被解码以使得它们反映大于所述音频回放的所述当前位置的时间,以便一旦所述设备已经解码所述非关键视频帧,则后处理器将对所述非关键视频帧进行后处理。
12.根据权利要求11所述的设备,其中预定义阈值是100毫秒。
13.根据权利要求8所述的设备,其中通过从已缓冲的关键视频帧、在视频片段内散置关键视频帧的已知恒定率、已经读取描述视频片段的文件并且标识了关键视频帧的文件格式解析器中的一个或多个、或从与视频片段相关联的索引表提取下一关键视频帧的时间戳来维持下一关键视频帧的时间戳。
14.根据权利要求8所述的设备,进一步包括:
用于如果非关键视频帧迟到并且触发了故障安全机制,则丢弃一个或多个非关键视频帧直到下一关键视频帧的装置,其中如果所述非关键视频帧延迟了大于所述丢弃时间窗的时间长度,则触发故障安全机制,其中所述故障安全机制是在视频回放中代表恒定最大可允许滞后时间的进一步预定义阈值;以及
用于维持对已经丢弃的连续非关键视频帧数量的计数,并且如果已经丢弃了多于连续非关键视频帧的预定最大数量,则解码所述非关键视频帧的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/966,502 | 2007-12-28 | ||
US11/966,502 US8693553B2 (en) | 2007-12-28 | 2007-12-28 | Methods, apparatuses, and computer program products for adaptive synchronized decoding of digital video |
PCT/IB2008/055177 WO2009083834A1 (en) | 2007-12-28 | 2008-12-09 | Methods, apparatuses, and computer program products for adaptive synchronized decoding of digital video |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101946518A CN101946518A (zh) | 2011-01-12 |
CN101946518B true CN101946518B (zh) | 2013-07-31 |
Family
ID=40456068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880126577XA Expired - Fee Related CN101946518B (zh) | 2007-12-28 | 2008-12-09 | 用于数字视频的自适应同步解码的方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8693553B2 (zh) |
EP (1) | EP2232880A1 (zh) |
KR (1) | KR101234146B1 (zh) |
CN (1) | CN101946518B (zh) |
WO (1) | WO2009083834A1 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10063873B2 (en) * | 2010-03-25 | 2018-08-28 | Mediatek Inc. | Method for adaptively performing video decoding, and associated adaptive complexity video decoder and adaptive audio/video playback system |
WO2011146898A2 (en) * | 2010-05-21 | 2011-11-24 | Bologh Mark J | Internet system for ultra high video quality |
CN101964894B (zh) * | 2010-08-24 | 2012-11-14 | 中国科学院深圳先进技术研究院 | 一种视频分片并行转码方法和系统 |
EP2498494A1 (en) | 2011-03-11 | 2012-09-12 | Thomson Licensing | Decoder and method at the decoder for synchronizing the rendering of contents received through different networks |
US8677006B2 (en) * | 2011-05-05 | 2014-03-18 | Microsoft Corporation | Processing media streams |
CN102685507B (zh) * | 2011-07-12 | 2014-07-09 | 天脉聚源(北京)传媒科技有限公司 | 一种mpeg-2传输流解码音视频同步方法和系统 |
WO2013173683A1 (en) * | 2012-05-18 | 2013-11-21 | Motorola Mobility Llc | Synchronizing multiple transcoding devices utilizing simultaneity of receipt of multicast packets |
CN104782109B (zh) * | 2012-10-30 | 2018-09-07 | 三菱电机株式会社 | 视频音频再现系统、视频显示装置以及音频输出装置 |
US8924827B2 (en) * | 2012-10-31 | 2014-12-30 | Wipro Limited | Methods and systems for minimizing decoding delay in distributed video coding |
US9674539B2 (en) * | 2013-03-14 | 2017-06-06 | Infocus Corporation | Concurrent decompression of multiple video streams with constrained decompression resources |
US20150067744A1 (en) * | 2013-08-27 | 2015-03-05 | Home Box Office, Inc. | Providing responsive video previews during rewind and fast forward |
CN103533387B (zh) * | 2013-10-21 | 2016-08-17 | 腾讯科技(深圳)有限公司 | 一种视频直播控制方法、设备及系统 |
US20150189365A1 (en) * | 2013-12-26 | 2015-07-02 | Thomson Licensing | Method and apparatus for generating a recording index |
CN103856812B (zh) * | 2014-03-25 | 2018-08-07 | 北京奇艺世纪科技有限公司 | 一种视频播放方法及装置 |
CN104053002A (zh) * | 2014-06-05 | 2014-09-17 | 乐视网信息技术(北京)股份有限公司 | 视频解码方法和视频解码装置 |
US9564172B2 (en) * | 2014-07-14 | 2017-02-07 | NFL Enterprises LLC | Video replay systems and methods |
CN104378675B (zh) * | 2014-12-08 | 2019-07-30 | 厦门雅迅网络股份有限公司 | 一种多通道音视频同步播放处理方法 |
CN105262950B (zh) * | 2015-10-15 | 2018-08-17 | 广州市百果园网络科技有限公司 | 一种生成视频信息的方法和装置 |
CN106998485B (zh) * | 2016-01-25 | 2020-03-06 | 百度在线网络技术(北京)有限公司 | 视频直播方法及装置 |
CN110213308A (zh) * | 2018-02-28 | 2019-09-06 | 杭州海康威视数字技术股份有限公司 | 一种解码视频数据的方法及装置 |
CN111263211B (zh) * | 2018-12-03 | 2022-02-08 | 深圳市炜博科技有限公司 | 一种缓存视频数据的方法及终端设备 |
CN109729404B (zh) * | 2019-01-15 | 2021-06-04 | 晶晨半导体(上海)股份有限公司 | 一种基于嵌入式的播放器的同步调制方法 |
US20200296462A1 (en) | 2019-03-11 | 2020-09-17 | Wci One, Llc | Media content presentation |
EP3818719B1 (en) * | 2019-09-23 | 2024-05-01 | Google LLC | Interruptible video transcoding |
US11375286B1 (en) * | 2020-12-30 | 2022-06-28 | Western Digital Technologies, Inc. | Pre-fetch of data using seek intervals |
CN113242446B (zh) * | 2021-04-30 | 2023-02-28 | 北京字节跳动网络技术有限公司 | 视频帧的缓存方法、转发方法、通信服务器及程序产品 |
CN113490055B (zh) * | 2021-07-06 | 2023-09-19 | 三星电子(中国)研发中心 | 数据处理方法和装置 |
CN113824797B (zh) * | 2021-11-19 | 2022-02-18 | 南京好先生智慧科技有限公司 | 一种授课资源自适应同步方法及装置 |
WO2023147707A1 (zh) * | 2022-02-07 | 2023-08-10 | Oppo广东移动通信有限公司 | 通信方法、接入网设备、核心网网元以及终端设备 |
CN115695918B (zh) * | 2023-01-05 | 2023-04-18 | 南昌宾果信息技术有限公司 | 多摄像头导播控制方法、装置、可读存储介质及终端设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6262776B1 (en) * | 1996-12-13 | 2001-07-17 | Microsoft Corporation | System and method for maintaining synchronization between audio and video |
WO2007149695A2 (en) * | 2006-06-22 | 2007-12-27 | Sony Computer Entertainment Inc. | Predictive frame dropping to enhance quality of service in streaming data |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4585492A (en) * | 1984-07-30 | 1986-04-29 | International Business Machines Corporation | Rapid thermal annealing of silicon dioxide for reduced hole trapping |
JP3063824B2 (ja) * | 1996-10-29 | 2000-07-12 | 日本電気株式会社 | オーディオ・ビデオ同期再生装置 |
TW526666B (en) * | 2000-03-29 | 2003-04-01 | Matsushita Electric Ind Co Ltd | Reproducing method for compression coded data and device for the same |
US20040125816A1 (en) * | 2002-12-13 | 2004-07-01 | Haifeng Xu | Method and apparatus for providing a buffer architecture to improve presentation quality of images |
US7660512B2 (en) | 2003-10-16 | 2010-02-09 | Microsoft Corporation | Systems and methods for managing frame rates during multimedia playback |
KR20060105890A (ko) * | 2005-03-31 | 2006-10-12 | 삼성전자주식회사 | 디지털 방송 수신 장치 및 그 장치에서의 동기화 처리 방법 |
-
2007
- 2007-12-28 US US11/966,502 patent/US8693553B2/en not_active Expired - Fee Related
-
2008
- 2008-12-09 KR KR1020107016858A patent/KR101234146B1/ko not_active IP Right Cessation
- 2008-12-09 EP EP08869070A patent/EP2232880A1/en not_active Withdrawn
- 2008-12-09 WO PCT/IB2008/055177 patent/WO2009083834A1/en active Application Filing
- 2008-12-09 CN CN200880126577XA patent/CN101946518B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6262776B1 (en) * | 1996-12-13 | 2001-07-17 | Microsoft Corporation | System and method for maintaining synchronization between audio and video |
WO2007149695A2 (en) * | 2006-06-22 | 2007-12-27 | Sony Computer Entertainment Inc. | Predictive frame dropping to enhance quality of service in streaming data |
Also Published As
Publication number | Publication date |
---|---|
KR101234146B1 (ko) | 2013-02-22 |
CN101946518A (zh) | 2011-01-12 |
EP2232880A1 (en) | 2010-09-29 |
US20090168903A1 (en) | 2009-07-02 |
WO2009083834A1 (en) | 2009-07-09 |
KR20100113538A (ko) | 2010-10-21 |
US8693553B2 (en) | 2014-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101946518B (zh) | 用于数字视频的自适应同步解码的方法和设备 | |
CN113542655B (zh) | 视频通信中的视频标注技术 | |
US20210243483A1 (en) | Methods, devices, and systems for providing panoramic video content to a mobile device from an edge server | |
CN102232298B (zh) | 媒体内容的传输处理方法、装置与系统 | |
US8407747B1 (en) | Adaptive trick play streaming | |
US20140321545A1 (en) | Video Encoding Method and Device | |
US20140104493A1 (en) | Proactive video frame dropping for hardware and network variance | |
CN102883152A (zh) | 具有适应性的媒体流传输 | |
CN103918268A (zh) | 用于解码图片缓冲器和参考图片列表的状态信息的信号通知 | |
CN103650509A (zh) | 基于照相机和背景运动的参考帧缓冲区的自适应配置 | |
KR102486847B1 (ko) | 링크 인식 스트리밍 적응 | |
CN110636346A (zh) | 一种码率自适应切换方法、装置、电子设备及存储介质 | |
US20130204973A1 (en) | Method for transmitting a scalable http stream for natural reproduction upon the occurrence of expression-switching during http streaming | |
Curcio et al. | Geo-predictive real-time media delivery in mobile environment | |
US9246830B2 (en) | Method and apparatus for multimedia queue management | |
CN108924631B (zh) | 一种基于音视频分流存储的录像生成方法 | |
US20110067072A1 (en) | Method and apparatus for performing MPEG video streaming over bandwidth constrained networks | |
CN108540745B (zh) | 高清双流视频的传输方法、发送端、接收端及传输系统 | |
CN110996035A (zh) | 信息发送方法及装置 | |
WO2013040283A1 (en) | Coding and decoding synchronized compressed video bitstreams | |
KR102307447B1 (ko) | 네트워크 환경 모니터링에 기반하는 http 적응적 스트리밍 서버, 방법, 및 클라이언트 단말 | |
US20140321556A1 (en) | Reducing amount of data in video encoding | |
Qi et al. | LBVC: towards low-bandwidth video chat on smartphones | |
US11949858B2 (en) | Video throughput improvement using long term referencing, deep learning, and load balancing | |
KR20110129064A (ko) | 콘텐트 가상 세그멘테이션 방법과, 이를 이용한 스트리밍 서비스 제공 방법 및 시스템 |
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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160205 Address after: Espoo, Finland Patentee after: Technology Co., Ltd. of Nokia Address before: Espoo, Finland Patentee before: Nokia Oyj |
|
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: 20130731 Termination date: 20161209 |