CN107005743B - 用于实现调入的视频比特流处理 - Google Patents

用于实现调入的视频比特流处理 Download PDF

Info

Publication number
CN107005743B
CN107005743B CN201480083599.8A CN201480083599A CN107005743B CN 107005743 B CN107005743 B CN 107005743B CN 201480083599 A CN201480083599 A CN 201480083599A CN 107005743 B CN107005743 B CN 107005743B
Authority
CN
China
Prior art keywords
block
sub
blocks
video data
stored
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
CN201480083599.8A
Other languages
English (en)
Other versions
CN107005743A (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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN107005743A publication Critical patent/CN107005743A/zh
Application granted granted Critical
Publication of CN107005743B publication Critical patent/CN107005743B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4335Housekeeping operations, e.g. prioritizing content for deletion because of storage space restrictions
    • 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/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
    • 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, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • 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, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440263Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8453Structuring 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Abstract

对流式传输的视频比特流(1)的编码视频数据的块(12、14)进行存储,并对编码视频数据进行解码以形成要输出以供显示的解码视频数据。流式传输的视频比特流(1)的先前已播放部分(3)的存储块(12、14)中的所选部分(12)或存储块(20、22)的所选子块(25、27)被丢弃,同时保持所选存储块(14)或所选子块(21、23)被存储作为导航调入点。使用流式传输的视频比特流(1)的已播放部分(3)中未被丢弃的所选存储块(14)或子块(21、23)实现了在用户希望跳转到流式传输的视频比特流(1)内的先前已播放位置(5)时在视频导航期间的低延迟解决方案。

Description

用于实现调入的视频比特流处理
技术领域
本实施例大体上涉及流式传输的视频比特流的处理,具体地,涉及例如在视频导航期间调入到(tune into)流式传输的视频比特流的已播放部分。
背景技术
现今的基于无线电的通信网络通常至少对于具有小屏幕的设备(例如智能电话)足以支持视频流式传输。例如,iPhone 5S中的视网膜屏幕的分辨率为1136×640像素,这可以在长期演进(LTE)网络上的视频流式传输方面得到支持。
虽然当前的解决方案可以很好地用于线性播放或回放,但是对于视频导航(即当用户将视频光标移动到流式传输的视频比特流的另一部分时)并非如此。例如,如果用户想要在Netflix电影中向前跳转二十分钟,则该位置处的视频数据在用户的视频播放器处不可用。视频播放器必须首先向Netflix电影服务器请求该位置处的视频数据。然而,即使在接收到该位置处的前几帧或画面之后,仍然没有开始播放视频数据。其原因在于视频播放器通常需要在开始播放视频之前建立视频数据的缓存区。视频数据的缓存是需要的,这是因为网络带宽可能会不稳定并且突然下降。然后,视频播放器想要在开始播放之前建立足够大的缓存区,以确保在比特率会突然下降的情况下不会耗尽缓存区(这将导致视频播放器冻结视频播放)。
时间上往回的视频导航,即,视频导航到流式传输的视频比特流中的已播放位置(通常在本领域中被称为倒回)利用当前技术不能很好地工作。对于某些视频应用,例如在Playstation 3(PS3)上运行的Netflix,可以通过按遥控器上的“左”按钮一次倒回到时间上往回30秒的位置。按“左”按钮两次触发倒回到时间上往回1分钟的位置。然而,如果按“左”按钮多于两次以在流式传输的视频比特流的已播放部分中进一步往回跳转,则与在时间上向前跳转时发生相同的请求和缓存过程。这意味着,通过按“左”按钮在时间上往回跳转直到重新开始播放存在显著的延迟。
因此,需要一种例如在用户移动到流式传输的视频比特流的先前已播放部分时的视频导航期间调入到流式传输的视频比特流的有效的解决方案。尤其需要一种减少在视频导航之后重新开始视频播放之前的延迟的解决方案。
发明内容
总体目标是提供一种例如在视频导航期间调入到流式传输的视频比特流的有效的解决方案。
本文描述的实施例满足该目的和其他目的。
实施例的一方面涉及一种视频处理方法。所述视频处理方法包括:存储流式传输的视频比特流的编码视频数据的块。流式传输的视频比特流被分割成多个块,其中多个块中的每个块以可独立解码的画面开始。所述视频处理方法还包括:对流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据。所述视频处理方法还包括:丢弃流式传输的视频比特流的先前已播放部分的存储块中的所选部分,同时保持流式传输的视频比特流的先前已播放部分的所选存储块被存储作为分布在流式传输的视频比特流的先前已播放部分上的输出时间不相邻的导航调入(tune-in)点。
实施例的另一方面涉及一种视频处理方法。所述视频处理方法包括:存储流式传输的视频比特流的编码视频数据的块。流式传输的视频比特流被分割成多个块,其中多个块中的每个块以可独立解码的画面开始。所述视频处理方法还包括:对流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据。所述视频处理方法还包括:丢弃流式传输的视频比特流的先前已播放部分的存储块的编码视频数据的所选子块,同时保持流式传输的视频比特流的先前已播放部分的编码视频数据的所选子块被存储作为导航调入点。每个子块对应于块的子部分,并且以可独立解码的画面开始。每个子块的播放持续时间比块的播放持续时间短。
实施例的另一方面涉及一种视频处理设备。所述视频处理设备被配置为存储流式传输的视频比特流的编码视频数据的块。流式传输的视频比特流被分割成多个块,其中多个块中的每个块以可独立解码的画面开始。所述视频处理设备还被配置为对流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据。所述视频处理设备还被配置为丢弃流式传输的视频比特流的先前已播放部分的存储块中的所选部分,同时保持流式传输的视频比特流的先前已播放部分的所选存储块被存储作为分布在流式传输的视频比特流的先前已播放部分上的输出时间不相邻的导航调入点。
实施例的相关方面定义了一种视频处理设备。所述视频处理设备包括存储器管理器,用于存储流式传输的视频比特流的编码视频数据的块。流式传输的视频比特流被分割成多个块,其中多个块中的每个块以可独立解码的画面开始。所述视频处理设备还包括解码器,用于对流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据。存储器管理器还用于丢弃流式传输的视频比特流的先前已播放部分的存储块中的所选部分,同时保持流式传输的视频比特流的先前已播放部分的所选存储块被存储作为分布在流式传输的视频比特流的先前已播放部分上的输出时间不相邻的导航接入点。
实施例的另一方面涉及一种视频处理设备。所述视频处理设备被配置为存储流式传输的视频比特流的编码视频数据的块。流式传输的视频比特流被分割成多个块,其中多个块中的每个块以可独立解码的画面开始。所述视频处理设备还被配置为对流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据。所述视频处理设备还被配置为丢弃流式传输的视频比特流的先前已播放部分的存储块的编码视频数据的所选子块,同时保持流式传输的视频比特流的先前已播放部分的编码视频数据的所选子块被存储作为导航调入点。每个子块对应于块的子部分,并且以可独立解码的画面开始。每个子块的播放持续时间比块的播放持续时间短。
实施例的相关方面定义了一种视频处理设备。所述视频处理设备包括存储器管理器,用于存储流式传输的视频比特流的编码视频数据的块。流式传输的视频比特流被分割成多个块,其中多个块中的每个块以可独立解码的画面开始。所述视频处理设备还包括解码器,用于对流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据。存储器管理器还用于丢弃流式传输的视频比特流的先前已播放部分的存储块的编码视频数据的所选子块,同时保持流式传输的视频比特流的先前已播放部分的编码视频数据的所选子块被存储作为导航接入点。每个子块对应于块的子部分,并且以可独立解码的画面开始。每个子块的播放持续时间比块的播放持续时间短。
实施例的另一方面涉及一种计算机程序,包括指令,所述指令当被处理器执行时使得处理器存储分割成多个块的流式传输的视频比特流的编码视频数据的块。多个块中的每个块以可独立解码的画面开始。还使处理器对流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据。还使处理器丢弃流式传输的视频比特流的先前已播放部分的存储块中的所选部分,同时保持流式传输的视频比特流的先前已播放部分的所选存储块被存储作为分布在流式传输的视频比特流的先前已播放部分上的输出时间不相邻的导航调入点。
实施例的又一方面涉及一种计算机程序,包括指令,所述指令当被处理器执行时使得处理器存储分割成多个块的流式传输的视频比特流的编码视频数据的块。多个块中的每个块以可独立解码的画面开始。还使处理器对流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据。还使处理器丢弃流式传输的视频比特流的先前已播放部分的存储块的编码视频数据的所选子块,同时保持流式传输的视频比特流的先前已播放部分的编码视频的所选子块被存储作为导航调入点。每个子块对应于相应块的子部分,并且以可独立解码的画面开始,并且每个子块的播放持续时间比相应块的播放持续时间短。
实施例的相关方面定义了一种载体,包括上文定义的计算机程序。该载体是电子信号、光信号、电磁信号、磁信号、电信号、无线电信号、微波信号或计算机可读存储介质之一。
本实施例提供了一种用于例如在视频导航期间调入到流式传输的视频比特流的已播放部分的有效的解决方案。具体地,与在视频导航之后播放之前需要下载、解码和缓存相当大量的视频数据的现有解决方案相比,这些实施例使得能够在调入或视频导航之后更快地启动视频解码和播放。
附图说明
通过参考以下结合附图的描述,能够最佳地理解实施例及其更多的目的和优点,在附图中:
图1示出了根据现有技术处理的流式传输的视频比特流;
图2是示出了根据实施例的视频处理方法的流程图;
图3示出了根据实施例处理的流式传输的视频比特流;
图4示出了根据实施例处理的流式传输的视频比特流的播放部分;
图5是示出了图2中所示的方法的附加的可选步骤的流程图;
图6是示出了图2和图12中所示的方法的附加的可选步骤的流程图;
图7是示出了图5和图16中所示的方法的附加的可选步骤的流程图;
图8示意性地示出了根据实施例的导航到流式传输的视频比特流的播放部分;
图9示意性地示出了根据实施例的在导航到流式传输的视频比特流的播放部分之后提高的块中的质量或比特率;
图10示意性地示出了根据另一实施例的在导航到流式传输的视频比特流的播放部分之后提高块中的质量或比特率;
图11是示出了图5和图16中所示的方法的附加的可选步骤的流程图;
图12是示出了根据另一实施例的视频处理方法的流程图;
图13示出了根据另一实施例处理的流式传输的视频比特流的播放部分;
图14示出了根据另一实施例处理的流式传输的视频比特流的播放部分;
图15示出了根据另一实施例处理的流式传输的视频比特流的播放部分;
图16是示出了图12中所示的方法的附加的可选步骤的流程图;
图17示意性地示出了根据另一实施例的导航到流式传输的视频比特流的播放部分;
图18示意性地示出了根据另一实施例的导航到流式传输的视频比特流的播放部分;
图19示意性地示出了根据另一实施例的导航到流式传输的视频比特流的播放部分;
图20示意性地示出了根据实施例的视频处理设备;
图21示意性地示出了根据另一实施例的视频处理设备;
图22示意性地示出了根据另一实施例的视频处理设备;以及
图23示意性地示出了根据实施例的用户设备(UE)。
具体实施方式
贯穿附图将相同的附图标记用于类似或对应的要素。
本实施例大体上涉及流式传输的视频比特流的处理。具体地,实施例涉及例如在视频导航期间调入到流式传输的视频比特流的已播放或回放部分。
本文使用的视频导航是指用户从播放或回放视频流的一部分移动到播放或回放视频比特流的另一部分的过程。例如,用户可能想要在时间上往回跳转以从电影中的先前场景重新开始视频播放。然后,本实施例提供了降低在视频导航之后重新开始视频播放之前的延迟的解决方案。
实施例的流式传输的视频比特流包括编码视频数据,该编码视频数据被分割成多个编码视频数据的块。每个这样的块以可独立解码的画面开始。这种可独立解码的画面在本领域中也称为帧内编码画面(I-画面)或帧内编码帧(I-帧)。可独立解码的画面意味着,可以在不参考任何参考画面的情况下对画面进行解码。这种可独立解码的画面可以用作随机接入点(RAP)来开始解码和播放视频。
除了在块的起始处的可独立解码的画面之外,块可以包括至少一个其他可独立解码的画面。
块构成了将流式传输的视频比特流分割成编码视频数据的较小部分的一种方式。例如,Apple的HTTP实时流式传输(HLS)建议将流式传输的视频比特流的编码视频数据组织成视频数据的例如10秒的媒体分段。因此,访问一个这样的10秒分段是简单的,因为它是请求正确的文件的问题。相应地,基于HTTP的动态自适应流式传输(DASH)使用编码视频的分段,其中每个这样的分段与HTTP统一资源定位符(URL)和(可选地)由媒体呈现描述(MPD)指定的字节范围相关联。因此,DASH中的块的起始可以通过MPD中的信息来标识,该信息可以被视为指向DASH编译的视频比特流内的调入位置的指针。视频比特流可以由一个或多个DASH分段组成。DASH分段可以进而由一个或多个片段组成。ISO基本媒体文件格式还使用分段来将ISO基本媒体文件格式文件分成较小的部分。然后,这样的分段或者由具有其相关联媒体数据的电影盒和其它相关联的盒组成,或者由具有其相关联媒体数据的一个或多个电影片段盒和其它相关联的盒组成。
块的播放持续时间优选是相同的,例如在HLS分段的情况下,为约10秒的视频数据。在备选实施例中,播放持续时间无需对于所有块都是相同的,这意味着,不同的块可以具有不同的播放持续时间。
因此,本文所使用的块是指视频比特流到更小的部分或分段的任何分割、划分、分片或分段,并且其中每个这样的部分或分段以可独立解码的画面开始。HLS中的媒体分段、DASH中的分段、DASH中的分段的各部分、DASH中的一个或多个分段、以及ISO基本媒体文件格式中的分段的上述示例被视为本文所使用的块。
此外,本文所使用的子块如所指示的术语那样表示流式传输的视频比特流的块的子部分。这意味着,子块中的编码视频数据的播放持续时间比块中的编码视频数据的播放持续时间短。例如,如果块包含与(诸如适用于HLS的)约10秒的播放持续时间相对应的编码视频数据,则作为说明性但非限制性的示例,子块可以包含与约1秒或2秒的播放持续时间相对应的编码视频数据。块由此包括多个(即,至少两个)子块。
与每个块相对应地,子块优选以可独立解码的画面开始。这意味着,可以在子块的起始处开始对流式传输的视频比特流的编码视频数据进行解码,从而子块的起始起到流式传输的视频比特流内的调入点或RAP的作用。
图1示意性地示出了根据现有技术处理的流式传输的视频比特流1。该图示意性地示出了流式传输的视频比特流1的已播放部分3、流式传输的视频比特流1内的当前播放位置2和流式传输的视频比特流1的还未播放的部分4。播放位置和输出时间或输出位置在本文中可互换使用。流式传输的视频比特流1的还未播放的部分4由在视频播放器处还未被接收和缓存的编码视频数据17和已经在视频播放器处被接收并且存储在缓存区中的编码数据15组成。因此,流式传输的视频比特流1的已缓存但还未播放的部分15还未被解码并输出以供显示。如背景技术部分所述,视频播放器构建足够大的视频数据缓存区,以降低在播放期间在比特率突然下降的情况下耗尽缓存区的风险。
一些视频播放器和应用使流式传输的视频比特流1的已播放部分13保持缓存或存储在存储器中。然而,随着越来越多的视频数据被播放,并且随着时间的推移,从存储器中移除已播放并缓存的视频数据。因此,附图标记11指示流式传输的视频比特流1的已播放且移除的部分,即非缓存/非存储的部分。
倒回和视频导航到如图1所示的流式传输的视频比特流1的已播放部分3将根据用户想要导航到的位置而具有不同的结果。因此,如果用户想要在时间上跳转回30秒,则在该导航调入点处的相关编码视频数据可以在视频播放器处可用并被缓存,即,对应于流式传输的视频比特流1的部分13。因此可以直接发起解码和播放,而根本不需要请求和缓存编码视频数据。然而,如果用户想要在时间上进一步往回导航到流式传输的视频比特流1的部分11中的导航调入点,则该导航调入点处的编码视频数据在视频播放器处不可用。因此,视频播放器必须在可以开始导航调入点处的解码和播放之前向视频服务器或提供商请求编码视频数据并且构建足够大的缓存区。这导致在视频导航期间烦人的延迟。
本实施例减少了根据现有技术的视频导航期间经历的延迟。具体地,本实施例能够实现从选择导航调入点直到发起视频数据的播放的一致的短延迟(如果有的话)。
图2是示出了根据实施例的视频处理方法的流程图。该方法包括在步骤S1中存储流式传输的视频比特流的编码视频数据的块。流式传输的视频比特流被分割成多个块,其中多个块中的每个块以可独立解码的画面开始。下一步骤S2包括对流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据。步骤S3包括丢弃流式传输的视频比特流的先前已播放部分的存储块中的所选部分,同时保持流式传输的视频比特流的先前已播放部分的所选存储块被存储作为分布在流式传输的视频比特流的先前已播放部分上的输出时间不相邻的导航调入点。
因此,当接收到用于解码的块时,它们在步骤S1中被存储或缓存在存储器中,从而在解码过程期间可用。解码过程包括在步骤S2中对编码视频数据进行解码以形成可以输出以供显示的解码视频数据。在解码过程中,解码画面被临时存储在解码画面缓存区中,在解码画面缓存区中,它们可用于在正确的输出时间输出以供显示,和/或可用作在对流式传输的视频比特流中按照解码顺序的下一个画面进行解码时的参考画面。
通常,一旦画面已被解码并进入了解码画面缓存区,就从存储器中丢弃这些画面。原因在于在解码过程中不再需要它们,从而它们只占用存储器。
然而,如步骤S3所示,本实施例不丢弃流式传输的视频比特流的先前已播放部分的所有存储块。与此形成鲜明对比的是,步骤S3包括仅丢弃流式传输的视频流的先前已播放部分的存储块的所选部分。这也意味着,保持流式传输的视频比特流的先前已播放部分的其他所选存储块被存储。由此,如果用户随后希望跳转到流式传输的视频比特流的已播放部分,则选择性地保持存储在存储器中的这些块可以用作导航调入点。
根据实施例,在步骤S3中保持存储的所选块被存储作为分布在流式传输的视频比特流的先前已播放部分上的输出时间不相邻的导航调入点。这意味着,并不是所有保持被存储作为导航调入点的所选块都对应于如图1所示的播放的视频的最前30秒或1分钟。与此形成鲜明对比的是,在步骤S3中保持被存储的块分布在流式传输的视频比特流的先前已播放部分上。这意味着,在步骤S3中的丢弃操作之后保持被存储的块将是输出时间不相邻的导航调入点。在本文中,输出时间不相邻意味着,并不是所有保持被存储作为导航调入点的块都具有相邻的输出时间。例如,流式传输的视频比特流的块可以具有由具有增加的值的输出时间参数表示的相应输出时间。因此,第一块具有输出时间0,第二块具有输出时间1,以此类推。具有输出时间n的块被认为与具有输出时间n+1或n-1的另一个块是输出相邻的。
在上述简化示例中,假设在流式传输的视频比特流中的每个块的输出时间增加1。然而,这应该仅被视为说明性的示例。通常,输出时间会增加块的播放持续时间,该播放持续时间当然可以不同于1秒。例如,具有输出时间tn和播放持续时间dn的块n与具有输出时间tn+dn的块是输出时间相邻的,并且与具有输出时间tn-dn-1和播放持续时间dn-1的块是输出时间相邻的。
块的输出时间通常表示块的起始的输出时间,但是备选地,它可以是块内的某个其他预定义的位置,例如块的末尾。
流式传输的视频比特流内的块可以被编号,例如块号0、块号1,以此类推。然后,块号n与块号n+1和块号n-1是输出时间相邻的。
因此,由在步骤S3中在丢弃其他块的同时保持被存储的所选块构成的输出时间不相邻的导航调入点是输出时间分离的,以分布在流式传输的视频比特流的先前已播放部分上。
注意,在步骤S3中选择性地丢弃存储块的一部分同时保持所选存储块作为输出时间不相邻的导航调入点不一定意味着保持存储的所有块都需要是输出时间不相邻的。如本文进一步描述的,除了保持存储流式传输的视频比特流的已播放部分中的分布式块之外,还可以针对某一X值保持存储包含已播放的视频数据的最后X秒的块。这样的示例将参照图4进一步讨论。
在一个实施例中,图2的步骤S3包括丢弃流式传输的视频比特流的先前已播放部分的至少一个存储块,同时保持按输出时间在要丢弃的至少一个存储块之前的至少一个所选存储块作为导航调入点,并且保持按输出时间在要丢弃的至少一个存储块之后的至少一个所选存储块作为导航调入点。
因此,在本实施例中,在步骤S3中丢弃存储块中的一个或多个,从而获得流式传输的视频比特流的存储部分中的间隙。这意味着,保持输出时间在所述间隙中的至少一个丢弃块之前的至少一个块和输出时间在所述至少一个丢弃块之后的至少一个块被存储作为导航调入点。
在另一个或补充实施例中,图2的步骤S3包括丢弃流式传输的视频比特流的先前已播放部分的至少一个存储块,同时保持按输出时间在要丢弃的至少一个存储块之前的至少一个所选存储块作为导航调入点,并且丢弃按输出时间在要保持被存储作为导航调入点的至少一个所选存储块之前的至少一个存储块。
图3示出了根据实施例处理的流式传输的视频比特流1。流式传输的视频比特流1示出了已播放部分3、当前播放位置2(即,当前输出时间或位置)、以及还未播放的部分4。在图3中,但是也在示出了流式传输的视频比特流1或流式传输的视频比特流1的已播放部分3的其余图中,垂直阴影指示流式传输的视频比特流1的还未播放且还未接收的部分17,斜阴影指示流式传输的视频比特流1的还未播放但已接收且存储的部分15,水平阴影指示流式传输的视频比特流1的已播放部分中被选择为要丢弃的块12,以及白色部分表示流式传输的视频比特流1的已播放部分中被选择为要保持被存储作为导航调入点的块。
在图3所示的实施例中,图2的步骤S3包括丢弃流式传输的视频比特流1的先前已播放部分3的存储块12、14中的所选部分12,同时保持流式传输的视频比特流1的先前已播放部分3的每第N个存储块14被存储作为导航调入点。在该实施例中,N是等于或大于2的整数。
如图3所示,在本实施例中,在步骤3中被选择为要保持被存储作为导航调入点的存储块14并且由此被选择为要丢弃的存储块12存在周期性。
参数N的值可以是固定的并被所有视频播放器或解码器使用。备选地,参数N可以由视频播放器或解码器本身、例如基于某个输入参数(如可用的内存)确定。可以备选地或附加地使用的另一个输入参数是块的播放持续时间,使得导航调入点以丢弃块14的足够小的间隙分布在其间。
例如,流式传输的视频比特流1可以被划分为1秒的块或分段12、14。在这种情况下,已播放的块14中的每第10个块被保持存储在存储器中作为导航调入点,而其余的9个块12被丢弃。
在另一个实施例中,缓存或存储块14不一定必须在时间上均等分布。例如,它们与当前播放位置2相距越远,它们越稀疏。例如,在非常接近当前播放位置2的位置处,所有块14E都保持被存储,参见图4。在稍远一些的位置处,存储块12A中的一些存储块被选择为要丢弃,同时保持剩余块14A、14B被存储作为导航调入点。在更远一些的位置处,存储块12B、12C、12D中的更多存储块被丢弃,使得与当前播放位置2相距越远,被选择为要保持被存储的块14C、14D变得越来越稀疏。这种实施例导致导航调入点在流式传输的视频比特流1的先前已播放部分3中的非周期性分布。
在一个实施例中,图2的步骤S3由此包括针对保持被存储作为导航调入点的按输出时间的一对相邻块14A、14B;14C、14D,丢弃具有在这对相邻块14A、14B;14C、14D的输出时间之间的相应输出时间的一数量的存储块12A;12B、12C、12D。该实施例中的数量取决于这对块14A、14B;14C、14D相对于当前输出时间2的输出时间。
因此,对于保持被存储作为导航调入点的第一对相邻块14A、14B,在步骤S3中丢弃第一数量的中间存储块12A。相应地,对于保持被存储作为导航调入点的第二对相邻块14C、14D,在步骤S3中丢弃第二数量的中间存储块12B、12C、12D。在这种情况下,取决于第一对相邻块14A、14B和第二对相邻块14C、14D相对于当前播放时间2的输出时间,中间存储块12A的第一数量可以不同于中间存储块12B、12C、12D的第二数量。
在特定实施例中,与相对于当前输出时间2具有更近的输出时间的一对相邻块14A、14B相比,对于相对于当前输出时间2具有更远的输出时间的一对相邻块14C、14D,该数量更大。
因此,如果第二对相邻块14C、14D具有比第一对相邻块14A、14B更远的输出时间,则中间存储块12B、12C、12D的第二数量优选地大于中间存储块12A的第一数量。
这意味着,在流式传输的视频比特流1的先前已播放部分3中移动得越远,在步骤S3中优选被丢弃的存储块12、14的百分比越大。
例如,在非常接近当前播放位置2的位置处,保持所有存储块14E被存储作为导航调入点。在稍远一些的位置处,三个块12A中的两个块可能被丢弃。在更远一些的位置处,可能仅保持每第6个块14C、14D被存储作为导航调入点,并且在更远一些的位置处,保持每第12个块被存储。这可以通过具有一定的时间限制来实现。当块早于(older than)某个阈值时间时,仅当该块的输出时间(或播放时间或开始时间)可以被例如3整除时才被保留。当块“变得早于”第二阈值时间时,仅当该块的输出时间可以被6整除时,才保持该块被存储。最后,当块变得早于第三阈值时间时,仅当该块的输出时间可以被12整除时,才保持该块被存储。
因此,在一实施例中,图2的步骤S3包括丢弃流式传输的视频比特流1的先前已播放部分中输出时间相对于当前输出时间2早于第一阈值时间并且输出时间不能被除数整除的每一个存储块12,同时保持流式传输的视频比特流1的先前已播放部分3中输出时间相对于当前输出时间2早于第一阈值时间并且输出时间能够被除数整除的每一个存储块14被存储作为导航调入点。
在上述实施例中,使用单个阈值时间来确定存储块12、14应当被丢弃还是应当保持被存储作为导航调入点。这个构思当然可以扩展到使用两个或更多个阈值时间。
因此,在一个实施例中,步骤S3包括:丢弃流式传输的视频比特流1的先前已播放部分3中输出时间相对于当前输出时间2早于第一阈值时间但是不早于第二阈值时间并且输出时间不能被除数整除的每一个存储块12A。这意味着,该步骤还包括:保持流式传输的视频比特流1的先前已播放部分3中输出时间相对于当前输出时间2早于第一阈值时间但是不早于第二阈值时间并且输出时间能够被除数整除的每一个存储块14A、14B被存储作为导航调入点。步骤S3还包括:丢弃流式传输的视频比特流1的先前已播放部分3中输出时间相对于当前输出时间2早于第二阈值时间并且输出时间不能被两倍除数整除的每一个存储块12B、12C、12D。这意味着,该步骤还包括:保持流式传输的视频比特流的先前已播放部分3的输出时间相对于当前输出时间2早于第二阈值时间并且输出时间能够被两倍除数整除的每一个存储块14C、14D被存储作为导航调入点。
可以使用多于两个不同的阈值时间进一步扩展这个构思。
要保持被存储作为导航调入点的块的量可以备选地被定义为衰减百分比。由于存储块可以被丢弃但是在删除之后不能被恢复,所以有可能在时间上将每个回退步骤的粒度减半。图4示出了可以如何保持块被存储的示例。因此,对于已播放部分3的最近部分,保持所有块14E被存储(100%缓存),在前面的部分中,保持块14A、14B中的一半被存储(50%缓存),然后保持块中的四分之一被存储(25%缓存),然后保持块中的八分之一被存储(12.5%缓存)。这可以进一步继续,或者流式传输的视频比特流1的已播放部分3的最远(第一)部分中的剩余存储块全部被丢弃(0%缓存)。相应部分在播放持续时间方面都可以具有相同的大小,或者它们可以具有不同的播放持续时间。
另一种可能性是开始移除例如每第五个块(80%缓存),然后移除剩余存储块中的每第四个块(60%缓存),然后移除剩余存储块中的每第三个块(40%缓存),然后移除剩余存储块中的每第二个块(20%缓存),然后移除剩余存储块中的每第二个块(10%缓存),以此类推。
因此,在一个实施例中,图2的步骤S3包括丢弃流式传输的视频比特流1的先前已播放部分3中输出时间相对于当前输出时间2早于阈值时间的M倍的每第NM个存储块12,同时保持流式传输的视频比特流1的先前已播放部分3的剩余存储块12被存储作为导航调入点。在一个实施例中,M=1…Max,其中Max是定义的整数值,并且对于每个k=1...Max-1,Nk>Nk+1
这意味着,距离流式传输的视频比特流的已播放部分3中的当前输出时间2越远,被丢弃的存储块12的百分比越大,并且保持被存储作为导航调入点的块14越稀疏。
如果用户希望跳转到流式传输的视频比特流1的已播放部分3中存在的调入位置,则在步骤S3中保持存储的块12可以用作导航调入点。这意味着,解码和播放可以在存储块14处立即开始,从而放松对在可以开始播放之前首先请求和接收视频服务器或提供商的编码视频数据并且构建编码视频数据的缓存区的需要。因此,存储块的选择性移除和存储块的选择性保持作为导航调入点显著地减少了跳转到或导航到流式传输的视频比特流1的已播放部分3中的新播放位置时所经历的任何延迟。
图5是示出了在导航或调入过程期间图2中所示的方法的附加步骤的流程图。该方法从图2中的步骤S3继续。下一步骤S10包括:基于接收到指定流式传输的视频比特流内与块相关联的调入位置的调入请求,对被存储作为导航调入点的块的编码视频数据进行解码,以形成解码视频数据。步骤S11包括:在对块的编码视频数据进行解码和/或播放块的解码视频数据的同时,接收起始与该块的末尾对齐的下一个块的编码视频数据。
因此,在一个实施例中,基于指定流式传输的视频比特流的先前已播放部分中与块相关联的调入位置的调入请求来执行对存储块的编码视频数据的解码和对所得到的解码视频数据的播放。例如,在视频导航过程期间,调入请求可以由用户使用用户设备将视频光标移动到流式传输的视频比特流内的位置来生成。然后,用户将视频光标移动到的位置对应于流式传输的视频比特流内的调入位置。
如果块承载的编码视频数据对应于流式传输的视频比特流内的位于调入位置处的位置或至少基本接近调入位置的位置,则该块与调入位置相关联。
图8通过示出保持存储在流式传输的视频比特流的先前已播放部分3中的块14来说明该构思。调入位置在图中由附图标记5指示。在步骤S10中被选择为要解码的存储块14可以是在时间上与调入位置5最接近的存储块。一种备选方式是选择相对于调入位置5最近的先前存储块14,使得用户将永远不会错过任何视频内容。举例说明,如果每个块为1秒且每第10个块14被保持存储作为导航调入位置,并且用户选择t=17处的调入位置5,则可以选择输出时间t=10的存储块,而不是输出时间t=20的存储块,即使t=20更接近调入位置5。原因是如果选择了输出时间t=20的存储块,则用户将错过3秒的视频内容。
图6是示出了图2和图3中所示的方法的附加步骤的流程图。该方法从图2中的步骤S3继续。下一个步骤S20包括接收指定流式传输的视频比特流1中的调入位置5的调入请求。下一个步骤S21包括选择保持被存储作为导航调入点的块14中的导航调入点。然后该方法继续到图5的步骤S10,其中对在步骤S21中选择的块的编码视频数据进行解码。
虽然与调入位置5相关联的块14的编码视频数据被解码和/或该块14的解码视频数据被播放,但是接收到起始与块14的末尾对齐的下一个块16的编码视频数据。这意味着,可以在当前对存储块14进行解码和播放的同时在后台执行下一个块16的编码视频数据的接收或下载。一旦已经到达存储块14的末尾,下一个块16或至少其第一部分的编码视频数据就可用。因此,通过从存储块14切换到下一个块16,可以平滑地继续对来自下一个块16的视频进行解码和播放。
这意味着,存储块14的解码视频数据被播放直到到达其末尾为止。此后,通过在存储块14的末尾处从播放存储块14的解码视频数据切换为播放通过对下一个块16的编码视频数据进行解码获得的解码视频数据,来继续播放。
因此,一旦已经达到存储块14的末尾,就可以针对下一个块16继续解码和播放,如前结合图5中的步骤S11所述,对存储块14进行解码和/或播放的同时已接收到下一个块16的编码视频数据。
通常,切换点应当以可独立解码的画面开始。然而,流式传输的视频比特流的每个块14、16、18优选地以这样的可独立解码的画面开始,因而可以在存储块14和接收的下一个块16之间平滑地执行切换。
在解码和/或播放存储块14和/或解码和/或播放下一个块16的同时继续接收再下一个块18的编码视频数据。
当接收到调入请求时已经可用作导航调入位置的存储块14意味着,视频播放器或解码器将获得与存储块14的编码视频数据的解码时间和存储块14的播放持续时间相对应的时间,以向视频服务器或提供商请求下一个块16(以及再下一个块18),并且开始对下一个块16的解码视频数据进行解码,以便一旦到达存储块14的播放末尾就使解码视频数据准备好输出。
下一个块16的编码视频数据可以与存储块14的编码视频数据具有相同的质量或比特率。然而,优选地,可以请求具有低于存储块14的编码视频数据的质量或比特率的质量或比特率的下一个块16。原因在于,与具有较高的质量或比特率相比,如果下一个块16的编码视频数据具有较低的质量或比特率,则从请求下一个块16直到它被接收并且下一个块16的编码视频数据被解码的时间通常会更短。
这意味着,如果对于下一个块16使用较低的质量或比特率,则与使用较高的质量或比特率相比,在到达存储块14的播放末尾时还未对下一个块16的起始处的编码视频数据进行接收并解码的风险显著地降低。
因此,在一个实施例中,步骤S11包括:在对块14的编码视频数据进行解码和/或播放块14的解码视频数据的同时,接收质量或比特率低于块14的质量或比特率的下一个块16的编码视频数据。
用于下一个块16的实际质量或比特率可以由视频播放器或包括视频播放器的用户设备基于各种标准来确定。例如,视频播放器或用户设备与视频服务器或提供商之间的通信链路的质量可能与下一个块16的质量或比特率有关。因此,如果通信链路当前经历低质量,则与通信链路具有较高质量并因此可以支持较高传输速率的情况相比,请求具有较低的质量或比特率的下一个块16可能更合适。此外,可以使用视频播放器或视频播放器中的解码器的缓存区状态来确定下一个块16的合适的质量或比特率。通常,缓存区状态越低,即存储在缓存区中的视频数据越少,越低的质量或比特率应用于下一个块16,以减少在播放可以从存储块14继续到下一个块16之前耗尽缓存区的风险。另一个标准可以是当前播放速率(运行速率)。在这种情况下,可以将下一个块16的比特率设置为播放速率的预定义部分,例如播放速率的四分之一或一半。当为下一个块16选择合适的质量或比特率时,可以对这些不同的标准进行组合。
在一个实施例中,视频播放器或用户设备可以被配置为请求低质量或比特率的块16、18,直到缓存区大小被构建达到阈值为止。这意味着,所请求的块16、18的降低的质量或比特率持续,直到视频播放器或用户设备具有足够大的缓存区大小来处理任何带宽波动为止(即使当以高质量或比特率接收块时)。
在另一个实施例中,视频播放器或用户设备请求低质量或比特率的块,直到缓存区大小被构建达到第一阈值为止。在这一点上,视频播放器或用户设备取而代之地请求较高质量或比特率的其他块,潜在地,可以针对每个后续块,逐步提高质量或比特率。
与存储块14相比,可以通过针对下一个块16使用较低分辨率、较低画面或帧速率和/或较小的画面或帧大小来实现质量或比特率的降低。在可应用于可缩放视频的示例中,下一个块16的质量或比特率的降低可能意味着,下一个块16仅承载基层或与存储块的相比至少较少数量的层的编码视频数据。因此,与要求所有层或至少与存储块14相同数量的层相比,对于下一个块16需要接收和解码较少量的视频数据。
具有比存储块14低的质量或比特率的后续块16、18的潜在问题是质量或比特率可能不均衡。例如,假设当前通信链路可以在一秒钟内支持下载500kbit的编码视频数据。当接收到调入请求时,播放从存储块14开始,参见图9。假设这个存储块14具有要求400kbps的质量。进一步假设向视频服务器或提供商请求的下一个块16要求100kbps,即较低的质量,以避免由于带宽波动引起的故障。在接收到下一个块16(应该需要0.2秒)之后,对于再下一个块18,可能请求更高的质量,例如200kbps。然后,可以将质量进一步提高或升高直到达到400kbps的稳态质量,如图9所示。
这种方法的潜在问题是质量将不均衡。首先,用户将获得非常好的质量(对应于400kbps的存储块14)、后接非常差的质量(对应于100kbps的下一个块16),直到一段时间之后质量恢复到400kbps的良好质量。不同质量水平之间的这种往复对于观看是非常不合意的。
实施例解决了具有往复质量变化的这种解决方案,参见图7和图10。该方法从图5中的步骤S10继续。下一步骤S30包括在播放块14的解码视频数据之前降低存储块14的质量或比特率。
在一个实施例中,步骤S30包括将块14的质量或比特率降低到基本等于或低于下一个块16的质量或比特率的质量或比特率。
在这种情况下,现在在播放过程中将存在质量的往复切换。与之形成鲜明对比的是,质量或比特率水平优选地如图10所示的提高或上升,或者提高一个或多个步长,直到达到稳态质量或比特率水平。
可以以多种方式来实现质量或比特率的降低。在一个实施例中,步骤S30包括对块14的编码视频数据的分辨率进行下采样以实现质量或比特率的降低。另一个解决方案是用较低量化参数(QP)值对块14进行重新编码。该解决方案需要较长的时间并且需要较多的处理能力,而使用低处理能力的图形处理单元(GPU)硬件可以非常有效地进行下采样。降低质量或比特率的其它方法是例如使用高斯滤波器对解码视频数据进行滤波,或减少针对每个画面的比特数。
在一个实施例中,视频播放器或用户设备有权访问将不同的质量或比特率水平与适当的画面分辨率进行匹配的表格或信息。在这种情况下,可以基于存储块14的目标质量或比特率来选择下采样水平。该目标质量或比特率可以等于下一个块16的质量或比特率(参见图10),或者被设置为下一个块16的质量或比特率的定义百分比。
块的质量或比特率的降低也意味着需要存储较少量的数据,这是因为与质量或比特率的任何降低之前的块相比,质量降低的块通常占用较少的内存。
图11是示出了图5中所示的方法的附加步骤的流程图。该方法从步骤S11继续。下一个步骤S40包括在对块14的编码视频数据进行解码、播放块14的解码视频数据、对下一个块16的编码视频数据进行解码和/或播放下一个块16的解码视频数据的同时,接收起始与下一个块16的末尾对齐的再下一个块18。再下一个块18块的质量或比特率高于下一个块16的质量或比特率,但是低于(在块14的质量或比特率的任何降低之前)块14的质量或比特率。
因此,该实施例对应于逐步增加后续块16、18的质量或比特率,直到最终达到存储块14的原始质量或比特率,如图10所示。
在特定实施例中,流式传输的视频比特流中的一些块可被标记为优先块。例如,这些块可以包含表示电影的根据其实际内容被认为是可能的调入位置的各个部分的编码视频数据。在这种情况下,丢弃所选块优选地不包括丢弃任何优先块。与之形成鲜明对比的是,它们优选地被选择为保持被存储作为导航调入位置。
在上述实施例中,所选块被丢弃,同时保持所选块作为导航调入点。在备选方法中,作为保持完整的块被存储作为导航调入点的替代,可以保持子块(即块的部分)被存储作为导航调入点。在图12的流程图中进一步参考图13至图15说明了这种方法。
该方法在步骤S50中开始,步骤S50包括存储分割成多个块20、22的流式传输的视频比特流1的编码视频数据的块20、22。多个块20、22中的每个块20、22以可独立解码的画面开始。下一步骤S51包括:对流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据。接下来的步骤S52包括:丢弃流式传输的视频比特流1的先前已播放部分3的存储块20、22的编码视频数据的所选子块25、27,同时保持流式传输的视频比特流1的先前已播放部分3的编码视频数据的所选子块21、23被存储作为导航调入点。每个子块21、23、25、27对应于块20、22的子部分,并且以可独立解码的画面开始。每个子块21、23、25、27的播放持续时间比块20、22的播放持续时间短。
两个步骤S50和S51对应于图2中的步骤S1和S2。然而,作为在图2的步骤S3中丢弃所选块同时保持所选块被存储作为导航调入点的替代,图12的步骤S52包括丢弃所选子块,同时保持所选子块被存储作为导航调入点。
子块21、23、25、27的播放持续时间比块20、22的播放持续时间短。例如,如果块20、22具有10秒的播放持续时间,例如HLS媒体分段,则子块21、23、25、27可以例如具有大约1秒或2秒的播放持续时间。这意味着,可以通过保持块20、22的子部分而不是完整的块20、22被存储,减少在步骤S52中选择性丢弃或移除之后保持存储的编码视频数据的量。
在一个实施例中,步骤S52包括:丢弃所选子块25、27,同时保持与块20、22的第一子部分或最后一个子部分相对应的子块21、23被存储作为导航调入点。
这在图13和图14中被示出。在图13中,在步骤S52中,除了保持被存储作为导航调入点的最后一个子块21、23之外,每个块20、22的所有子块25、27被丢弃。相应地,在图14中,在步骤S52中,除了第一子块21、23之外,每个块20、22的所有子块25、27被丢弃。
虽然通常优选地保持与块20、22的第一子部分或最后一个子部分相对应的子块21、23存储作为导航调入点,但是实施例不限于此。实际上,保持被存储作为导航调入点的子块可以对应于块的中间子部分,或者实际上跨越两个相邻块之间的边界延伸。
图15示出了根据图12中的步骤S52的实施例得到的另一变型。在本实施例中,步骤S52包括:丢弃流式传输的视频比特流1的先前已播放部分3中第一块20的N个子块21、25中的M1个子块25,同时保持第一块20的N-M1个子块21被存储作为导航调入点。步骤S52还包括:丢弃流式传输的视频比特流1的先前已播放部分3中第二块22的N个子块23、27中的M2个子块27,同时保持第二块22的N-M2个子块23被存储作为导航调入点。在一个实施例中,M2>M1,并且与第一块20相比,第二块22相对于当前播放时间2具有较早的播放时间。
在本实施例中,块20、22与当前播放时间2相距越远,在步骤S52中丢弃的块20、22的编码视频数据的部分越大。图15通过丢弃最近的块中的一个子块同时保留九个子块、丢弃第二近的块20中的两个子块25同时保留八个子块21、丢弃第三近的块22中的三个子块27同时保留七个子块23以此类推来例示了该构思。
在一个实施例中,对于最近的块,不丢弃子块,并且子块25、27的移除首先以流式传输的视频比特流1的已播放部分3中较早的块20、22开始。
此外,在步骤S52中针对较早的块20、22丢弃的子块25、27的数量的逐步增加并不一定意味着针对每个较早的块20、22丢弃的子块25、27的数量必须增加。例如,相同数量的丢弃子块可以用于相邻块集合,然后当移动到较早的相邻块集合时,该数量增加,依此类推。
图16是示出了图12中所示的方法的附加的可选步骤的流程图,其涉及使用存储的子块作为导航调入点。该方法从图12中的步骤S52继续。下一步骤S60包括:基于接收到指定流式传输的视频比特流内与子块相关联的调入位置的调入请求,对被存储作为导航调入点的子块的编码视频数据进行解码,以形成解码视频数据。步骤S61包括:在对子块的编码视频数据进行解码和/或播放子块的解码视频数据的同时,接收以该子块作为其子部分的块或者起始与该子块的末尾对齐的块或下一个子块的编码视频数据。
参考图17,在一个实施例中,基于指定流式传输的视频比特流的已播放部分3中与子块21相关联的调入位置5的调入请求来执行对子块21的编码视频数据的解码和对所得到的解码视频数据的播放。例如,在视频导航过程期间,调入请求可以由用户使用用户设备将视频光标移动到流式传输的视频比特流内的位置来生成。用户然后将视频光标移动到的位置对应于流式传输的视频比特流内的调入位置5。
如果子块21承载的视频数据对应于流式传输的视频比特流内处于调入位置5处的位置或者至少基本接近调入位置5的位置,则子块21与调入位置5相关联。
如图17所示,多个子块21可以被存储作为导航调入位置。在一个实施例中,与调入位置5相关联的子块21然后可以是多个子块21中最接近调入位置5的子块21。在另一个实施例中,与调入位置5相关联的子块21是在调入位置5之前的第一子块21。在图6的流程图中示意性地示出了这一点。该方法从图12中的步骤S52继续。下一步骤S52接收指定调入位置5的调入请求。接下来的步骤S21包括基于调入位置5选择存储作为导航调入点的子块21。
当视频播放器或用户设备对与调入位置5相关联的子块21的编码视频数据进行解码和/或播放该子块21的解码视频数据时,接收块24的编码视频数据。这意味着,当视频播放器或用户设备当前正在对子块21进行解码和播放时,可以在后台中执行块24的编码视频数据的接收或下载。一旦到达了子块21的末尾,视频播放器或用户设备就有权访问块24或至少其第一部分的编码视频数据,并且因此可以通过从子块21切换到块24来直接继续对来自块24的视频进行解码和播放。
在一个实施例中,该方法还包括:对流式传输的视频比特流中的块的编码视频数据进行解码以形成解码视频数据。播放流式传输的视频比特流中的块的解码视频数据。然后接收调入请求。因此,在该实施例中,在流式传输的视频比特流的播放期间例如以流式传输的视频比特流内的视频导航的形式接收调入请求。这进一步意味着,用户因此希望从视频比特流内的当前解码和/或播放位置跳转到由用户发起的调入请求指定的调入位置5。
可以根据各种实施例执行从解码和播放被选择为导航调入位置的所存储的子块的编码视频数据切换为解码和播放在图16的步骤S61中接收的块或子块的编码视频数据。
通常,该方法包括:播放子块21的解码视频数据。然后,该方法包括:优选在子块21的末尾从播放子块21的解码视频数据切换为播放通过对在步骤S61中接收的块24或子块29的编码视频数据进行解码而获得的解码视频数据。
因此,一旦达到了子块21的末尾,就可以针对块24或子块29继续解码和播放,如上文结合图12中的步骤S61中所述,在对子块21进行解码和/或播放的同时已经接收到块24或子块29的编码视频数据。
如图17所示,如果子块21的末尾与块24的起始关于播放时间是对齐的,则优选地发生从子块21的末尾到块24的起始的切换。这是可能的,因为块24以可独立解码的画面开始。
然而,如图18所示,如果子块21的起始与块24的起始对齐,则优选地发生从子块21的末尾到在步骤S61中接收的块24内的切换位置6的切换,其中切换位置6与子块21的末尾关于播放时间是对齐的。在这种情况下,块24内与块21的末尾对齐的切换位置6优选地包括可独立解码的画面,以简化从解码和播放子块21到从与子块21的末尾相对应的切换位置6开始解码和播放块24的平滑切换。
一般来说,切换点应当以可独立解码的画面开始,但是这不是强制性的。这意味着,子块21优选地以可独立解码的画面开始,但是块24内的切换位置6不一定必须以可独立解码的画面开始。例如,解码可以在块24中在切换位置6之前的可独立解码的画面开始,并且继续直到到达切换点29,但是不输出块24中的这些解码画面。在这样的解决方案中,对子块21和块24在切换位置6之前的部分均进行解码,但仅输出来自子块21的解码画面以进行显示。在这种情况下,即使在块24中在切换位置6处没有可独立解码的画面,从子块21到块24的切换也是可能的。
图19示出了另一种变型,其中所选存储子块21的起始或末尾不一定必须与块20的起始关于播放时间对齐。在本实施例中,可以在步骤S61中请求和接收完整的块24。然后,该块24的起始与以子块21作为其子部分的块20的开始对齐。如果在该切换位置6存在可独立解码的画面,则可以在切换位置6处进行切换,而无需对块24的先前部分进行任何解码。在其他情况下,如上所述的对块24的先前部分进行解码,但是直到到达切换位置6才输出其画面以供显示。
在另一种方法中,在步骤S61中不请求和接收完整的块24。与此形成鲜明对比的是,如图19所示,在步骤S61中接收在切换位置6开始并持续到块24的末尾的块24的子部分或子块29。在这种情况下,在步骤S61中接收到的第一子块29优选地以可独立解码的画面开始。
在任一种情况下,然后针对在视频导航之后的视频会话期间接收的后续块26继续解码和播放。
在一个实施例中,图16的步骤S61包括:在对子块21的编码视频数据进行解码和/或播放子块21的解码视频数据的同时,接收质量或比特率比子块21的质量或比特率低的、起始与以子块21作为其子部分的块20的起始对齐的块24、或者起始与子块21的末尾对齐的块24或下一个子块29的编码视频数据。
对于接收的块24或子块29使用较低质量或比特率通常意味着,在给定的特定通信带宽的情况下,可以在更短的时间段内接收块24或子块29的编码视频数据。因此,当解码和播放已经到达存储的子块21的末尾时还未接收到块24或子块29的编码视频数据的风险通过请求具有较低质量或比特率的块24或子块29而降低。
在一个实施例中,可以执行子块的质量或比特率的降低,以解决本文如前所述的关于质量的往复跳变的任何问题。在这种情况下,方法从图16中的步骤S60继续到图7中的步骤S30。该步骤S30包括:在播放子块21的解码视频数据之前降低子块21的质量或比特率。
在特定实施例中,步骤S30包括:将子块21的质量或比特率降低到基本等于或低于起始与子块对应于其子部分的块20的起始对齐的块24、或者起始与子块21的末尾对齐的块24或下一子块29的质量或比特率的质量或比特率。
可以根据本文先前描述的任何实施例来执行子块21的质量或比特率的降低。例如,步骤S30可以包括对子块21的编码视频数据的分辨率进行下采样。
实施例的另一方面涉及一种视频处理设备。视频处理设备被配置为存储分割成多个块的流式传输的视频比特流的编码视频数据的块。多个块中的每个块以可独立解码的画面开始。所述视频处理设备还被配置为对流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据。所述视频处理设备还被配置为丢弃流式传输的视频比特流的先前已播放部分的存储块中的所选部分,同时保持流式传输的视频比特流的先前已播放部分的所选存储块被存储作为分布在流式传输的视频比特流的先前已播放部分上的输出时间不相邻的导航调入点。
在一个实施例中,视频处理设备被配置为丢弃流式传输的视频比特流的先前已播放部分的至少一个存储块,同时保持按输出时间在要丢弃的至少一个存储块之前的至少一个所选存储块作为导航调入点,并且保持按输出时间在要丢弃的至少一个存储块之后的至少一个所选存储块作为导航调入点。
在一个实施例中,视频处理设备被配置为丢弃流式传输的视频比特流的先前已播放部分的存储块中的所选部分,同时保持流式传输的视频比特流的先前已播放部分的每第N个存储块被存储作为导航调入点。参数N是大于或等于2的整数。
在一个实施例中,视频处理设备被配置为针对保持被存储作为导航调入点的按输出时间的一对相邻块,丢弃相应输出时间在该对相邻块的输出时间之间的一数量的存储块。该数量取决于该对块相对于当前输出时间的输出时间。
在一个实施例中,视频处理设备被配置为:丢弃流式传输的视频比特流的先前已播放部分的输出时间相对于当前输出时间早于第一阈值时间并且输出时间不能被除数整除的每一个存储块,同时保持流式传输的视频比特流的先前已播放部分的输出时间相对于当前输出时间早于第一阈值时间并且输出时间能够被除数整除的每一个存储块被存储作为导航调入点。
在一个实施例中,视频处理设备被配置为:丢弃流式传输的视频比特流的先前已播放部分的输出时间相对于当前输出时间早于第一阈值时间但是不早于第二阈值时间并且输出时间不能被除数整除的每一个存储块,同时保持流式传输的视频比特流的先前已播放部分的输出时间相对于当前输出时间早于第一阈值时间但是不早于第二阈值时间并且输出时间能够被除数整除的每一个存储块被存储作为导航调入点。视频处理设备还被配置为:丢弃流式传输的视频比特流的先前已播放部分的输出时间相对于当前输出时间早于第二阈值时间并且输出时间不能被两倍除数整除的每一个存储块,同时保持流式传输的视频比特流的先前已播放部分的输出时间相对于当前输出时间早于第二阈值时间并且输出时间能够被两倍除数整除的每一个存储块存储作为导航调入点。
在一个实施例中,视频处理设备被配置为:丢弃流式传输的视频比特流的先前已播放部分的输出时间相对于当前输出时间早于阈值时间的多倍的每第M个存储块,同时保持流式传输的视频比特流的先前已播放部分的剩余存储块被存储作为导航调入点。
在一个实施例中,视频处理设备被配置为:基于接收到指定流式传输的视频比特流内与块相关联的调入位置的调入请求,对被存储作为导航调入点的块的编码视频数据进行解码,以形成解码视频数据。视频处理设备还被配置为:在对块的编码视频数据进行解码和/或播放块的解码视频数据的同时,接收起始与该块的末尾对齐的下一个块的编码视频数据。
在一个实施例中,视频处理设备被配置为:在对块的编码视频数据进行解码和/或播放块的解码视频数据的同时,接收质量或比特率低于该块的质量或比特率的下一个块的编码视频数据。
在一个实施例中,视频处理设备被配置为:在播放块的解码视频数据之前降低块的质量或比特率。
在一个实施例中,视频处理设备被配置为:将块的质量或比特率降低到基本等于或低于下一个块的质量的质量或比特率水平。
在一个实施例中,视频处理设备被配置为:对块的编码视频数据的分辨率进行下采样。
在一个实施例中,视频处理设备被配置为:在对块的编码视频数据进行解码、播放块的解码视频数据、对下一个块的编码视频数据进行解码和/或播放下一个块的解码视频数据的同时,接收起始与下一个块的末尾对齐的再下一个块。再下一个块的质量或比特率高于下一个块的质量或比特率,但是低于该块的质量或比特率。
实施例的另一方面涉及一种视频处理设备。视频处理设备被配置为存储分割成多个块的流式传输的视频比特流的编码视频数据的块。多个块中的每个块以可独立解码的画面开始。所述视频处理设备还被配置为对流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据。视频处理设备还被配置为:丢弃流式传输的视频比特流的先前已播放部分的存储块的编码视频数据的所选子块,同时保持流式传输的视频比特流的先前已播放部分的编码视频数据的所选子块被存储作为导航调入点。每个子块对应于相应块的子部分,并且以可独立解码的画面开始,并且每个子块的播放持续时间比相应块的播放持续时间短。
在一个实施例中,视频处理设备被配置为:保持与相应块的第一子部分或最后一个子部分相对应的子块被存储作为导航调入点。
在一个实施例中,视频处理设备被配置为:丢弃流式传输的视频比特流的先前已播放部分中第一块的N个子块中的M1个子块,同时保持第一块的N-M1个子块被存储作为导航调入点。视频处理设备还被配置为:丢弃流式传输的视频比特流的先前已播放部分中的第二块的N个子块中的M2个子块,同时保持第二块的N-M2个子块被存储作为导航调入点。在一个实施例中,M2>M1,并且第二块相对于当前播放时间比第一块具有更早的播放时间。
在一个实施例中,视频处理设备被配置为:基于接收到指定流式传输的视频比特流内与子块相关联的调入位置的调入请求,对被存储作为导航调入点的子块的编码视频数据进行解码,以形成解码视频数据。视频处理设备还被配置为:在对子块的编码视频数据进行解码和/或播放子块的解码视频数据的同时,接收起始与子块对应于其子部分的块的起始对齐的块、或者起始与子块的末尾对齐的块或下一个子块的编码视频数据。
在一个实施例中,视频处理设备被配置为:在对子块的编码视频数据进行解码和/或播放子块的解码视频数据的同时,接收质量或比特率低于子块的质量或比特率的、起始与子块对应于其子部分的块的起始对齐的块、或者起始与子块的末尾对齐的块或者下一个子块的编码视频数据。
在一个实施例中,视频处理设备被配置为:在播放子块的解码视频数据之前降低子块的质量或比特率。
在一个实施例中,视频处理设备被配置为:将子块的质量或比特率降低到基本等于或低于起始与子块对应于其子部分的块的起始对齐的块、或者起始与子块的末尾对齐的块或下一个子块的质量或比特率的质量或比特率。
在一个实施例中,视频处理设备被配置为:对子块的编码视频数据的分辨率进行下采样。
将理解的是,本文所描述的方法和设备可以用各种方式组合和重新布置。
例如,实施例可以用硬件、或用由合适的处理电路执行的软件、或其组合来实现。
本文所述的步骤、功能、过程、模块和/或块可以使用任何常规技术在硬件中实现,例如使用分立电路或集成电路技术,包括通用电子电路和专用电路二者。
特定示例包括一个或多个合适配置的数字信号处理器和其他已知电子电路,例如用于执行专门的功能的互连的分立逻辑门、或者专用集成电路(ASIC)。
图20示出了视频处理设备100的特定硬件实现。在一个实施例中,视频处理设备包括被配置为存储块的存储器管理器110。视频处理设备100还包括被配置为对编码视频数据进行解码的解码器120。存储器管理器110还被配置为丢弃存储块中的所选部分或丢弃所选子块,如本文所述。
在一个实施例中,视频处理设备100还包括存储器140,其中存储器管理器110在存储器140中存储块,并且从该存储器140中丢弃所选块或子块,同时保持所选块或子块被存储作为导航调入点。
该图还示出了可选的通信电路130。该通信电路130优选地被配置为接收流式传输的视频比特流的编码视频数据,并且还在调入请求之后请求块或子块的编码视频数据。
通信电路130优选地连接到存储器管理器110,以用于将接收的编码视频数据转发到存储器管理器110,从而被存储在连接到存储器管理器110的存储器140中。解码器120优选地连接到存储器140以便访问和解码编码视频数据。备选地,存储器管理器110将该编码视频数据从存储器140提供给解码器120。
通信电路130可以被实现为具有发射机和接收机功能,例如以收发机或适于数据的无线发送和接收的发射机和接收机对的形式。在替代方法中,通信电路130可以是被配置用于数据的有线通信的输入和输出(I/O)单元的形式。
备选地,本文描述的步骤、功能、过程、模块和/或块中的至少一些可以在软件中实现,例如由合适的处理电路(例如一个或多个处理器或处理单元)来执行的计算机程序。
处理电路的示例包括但不限于:一个或多个微处理器、一个或多个数字信号处理器(DSP)、一个或多个中央处理单元(CPU)、视频加速硬件、和/或任意合适的可编程逻辑电路,例如一个或多个现场可编程门阵列(FPGA)或者一个或多个可编程逻辑控制器(PLC)。
还应当理解,可以重新使用实现所提出的技术的任何常规设备或单元的通用处理能力。还可以例如通过重新编程现有的软件或者通过添加新的软件组件来重新使用现有的软件。
在特定示例中,视频处理设备200(参见图21)包括处理器210和存储器220,存储器620包括可由处理器210执行的指令。处理器210可操作以如本文所述的将块存储在存储器220中。处理器210还可操作以如本文所述的对编码视频数据进行解码。处理器210还被配置为如本文所述的从存储器220中丢弃存储块中的所选部分或所选子块。
在特定实施例中,处理器210操作为当执行存储在存储器220中的指令时执行上述操作。由此,处理器210互连到存储器220以实现正常的软件执行。
在一个实施例中,视频处理设备200还包括被配置为接收流式传输的视频比特流的编码视频数据的通信电路230。通信电路230还被配置为在接收到视频调入请求之后请求和接收编码视频数据的块或子块。
通信电路230可以被实现为具有发射机和接收机功能,例如以收发机或适于数据的无线发送和接收的发射机和接收机对的形式。在替代方法中,通信电路230可以是被配置用于数据的有线通信的输入和输出(I/O)单元的形式。
图23是示出了包括处理器410、相关联的存储器420和通信电路430的用户设备(UE)400的示例的示意框图。
在该具体示例中,以计算机程序440实现本文描述的步骤、功能、过程、模块和/或块中的至少一些,计算机程序440被加载到存储器420中,用于由包括一个或更多个处理器410的处理电路执行。处理器410和存储器420彼此互连,以实现正常的软件执行。通信电路430还被互连到处理器410和/或存储器420中,以使得能够输入和/或输出视频数据和对视频数据的请求。
用户设备400可以是能够接收和请求流式传输的视频比特流的编码视频数据的任何设备或装置。例如,用户设备400可以是固定或便携式的计算机,例如膝上型计算机、智能电话、平板电脑、机顶盒等。
术语“处理器”应当在一般意义上解释为能够执行程序代码或计算机程序指令以执行特定处理、确定或计算任务的任意系统或设备。
因此,包括一个或多个处理器的处理电路被配置为:在运行计算机程序时执行例如本文描述的那些明确定义的处理任务。
处理电路不是必须专用于仅执行上述步骤、功能、过程和/或块,而是还可以执行其他任务。
在实施例中,计算机程序440包括指令,所述指令当被处理器410执行时使得处理器410存储分割成多个块的流式传输的视频比特流的编码视频数据的块。多个块中的每个块以可独立解码的画面开始。还使处理器410对流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据。还使处理器410丢弃流式传输的视频比特流的先前已播放部分的存储块中的所选部分,同时保持流式传输的视频比特流的先前已播放部分的所选的存储块被存储作为分布在流式传输的视频比特流的先前已播放部分上的输出时间不相邻的导航调入点。
在另一实施例中,计算机程序440包括指令,所述指令当被处理器410执行时使得处理器410存储分割成多个块的流式传输的视频比特流的编码视频数据的块。多个块中的每个块以可独立解码的画面开始。还使处理器410对流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据。还使处理器410丢弃流式传输的视频比特流的先前已播放部分的存储块的编码视频数据的所选子块,同时保持流式传输的视频比特流的先前已播放部分的编码视频的所选子块被存储作为导航调入点。每个子块对应于相应块的子部分,并且以可独立解码的画面开始,并且每个子块的播放持续时间比相应块的播放持续时间短。
所提出的技术还提供了包括计算机程序440的载体450。载体450是电子信号、光信号、电磁信号、磁信号、电信号、无线电信号、微波信号或计算机可读存储介质450之一。
举例说明,软件或计算机程序440可以实现为计算机程序产品,其通常被承载或存储在计算机可读介质440(优选地,非易失性计算机可读存储介质450)上。计算机可读介质450可以包括一个或多个可移除或不可移除的存储设备,包括但不限于只读存储器(ROM)、随机存取存储器(RAM)、紧致盘(CD)、数字多用途盘(DVD)、蓝光光盘、通用串行总线(USB)存储器、硬盘驱动(HDD)存储设备、闪存、磁带或者任意其他常规存储设备。因而,计算机程序440可以被加载到计算机或等效处理设备(图23中的用户设备400所示)的操作存储器中,以由其处理器410来执行。
因此,当由一个或多个处理器执行时,本文提出的流程图可以被认为是计算机流程图。相应的视频调入设备可以被定义为一组功能模块,其中由处理器执行的每个步骤对应于功能模块。在这种情况下,功能模块被实现为在处理器上运行的计算机程序。因此,视频调入设备可以备选地被定义为一组功能模块,其中功能模块被实现为在至少一个处理器上运行的计算机程序。
驻留在存储器中的计算机程序可以因此被组织为合适的功能模块,所述功能模块被配置为,当被处理器执行时,执行本文所述的步骤和/或任务的至少一部分。图22中示出了这些功能模块的示例。
图22是具有功能模块的视频处理设备300的示意框图。视频处理设备300包括存储器管理器310,用于存储分割成多个块的流式传输的视频比特流的编码视频数据的块。多个块中的每个块以可独立解码的画面开始。视频处理设备300还包括解码器320,用于对流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据。存储器管理器310还用于丢弃流式传输的视频比特流的先前已播放部分的存储块中的所选部分,同时保持流式传输的视频比特流的先前已播放部分的所选存储块被存储作为分布在流式传输的视频比特流的先前已播放部分上的输出时间不相邻的导航调入点。
在另一个实施例中,视频处理设备300包括存储器管理器310,用于存储分割成多个块的流式传输的视频比特流的编码视频数据的块。多个块中的每个块以可独立解码的画面开始。视频处理设备300还包括解码器320,用于对流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据。存储器管理器310还用于丢弃流式传输的视频比特流的先前已播放部分的存储块的编码视频数据的所选子块,同时保持流式传输的视频比特流的先前已播放部分的编码视频的所选子块被存储作为导航接入点。每个子块对应于相应块的子部分,并且以可独立解码的画面开始,并且每个子块的播放持续时间比相应块的播放持续时间短。
各种实施例的视频处理设备可以实现为静止的或便携式的计算机,例如膝上型计算机、智能电话、平板电脑、机顶盒等,或作为静止的或便携式的计算机(例如膝上型计算机、智能电话、平板电脑、机顶盒等)的一部分。
在视频处理设备中存储块和子块并从其中丢弃所选块或子块的存储器可以是在视频解码领域内用于存储流式传输的视频比特流的编码视频数据的任何存储器。例如,存储器可以是诸如RAM或动态RAM(DRAM)的快速存储器。将块和子块的编码数据存储在硬盘驱动器上也是可能的,但通常不太优选。
上述实施例被理解为本发明的几个说明性示例。本领域技术人员将理解,在不脱离本发明的范围的前提下,可以对实施例作出各种修改、组合和改变。尤其是,在技术上可行的其他配置中,不同实施例中的不同部分解决方案可以被组合。然而,本发明的范围由所附权利要求限定。

Claims (44)

1.一种视频处理方法,包括:
存储分割成多个块的流式传输的视频比特流的编码视频数据的块,所述多个块中的每个块以能够独立解码的画面开始;
对所述流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据;以及
丢弃所述流式传输的视频比特流的先前已播放部分的所存储的块中的所选部分,同时保持所述流式传输的视频比特流的所述先前已播放部分的所选的存储的块被存储作为分布在所述流式传输的视频比特流的所述先前已播放部分上的输出时间不相邻的导航调入点。
2.根据权利要求1所述的方法,其中,丢弃所存储的块中的所选部分包括:丢弃所述流式传输的视频比特流的所述先前已播放部分的至少一个存储的块,同时保持按照所述输出时间在要丢弃的所述至少一个存储的块之前的至少一个所选的存储的块作为导航调入点,并且保持按照所述输出时间在要丢弃的所述至少一个存储的块之后的至少一个所选的存储的块作为导航调入点。
3.根据权利要求1或2所述的方法,其中,丢弃所存储的块中的所选部分包括:丢弃所述流式传输的视频比特流的所述先前已播放部分的所存储的块中的所选部分,同时保持所述流式传输的视频比特流的所述先前已播放部分的每第N个存储的块被存储作为导航调入点,其中N是等于或大于2的整数。
4.根据权利要求1或2所述的方法,其中,丢弃所述存储的块中的所选部分包括:对于保持被存储作为导航调入点的按照所述输出时间的一对相邻块,丢弃相应输出时间在该对相邻块的所述输出时间之间的一数量的所述存储的块,所述数量取决于该对相邻块相对于当前输出时间的所述输出时间。
5.根据权利要求4所述的方法,其中,与相对于所述当前输出时间具有更近的输出时间的一对相邻块相比,对于相对于所述当前输出时间具有更远的输出时间的一对相邻块,所述数量更大。
6.根据权利要求1或2所述的方法,其中,丢弃所存储的块中的所选部分包括:丢弃所述流式传输的视频比特流的所述先前已播放部分中输出时间相对于当前输出时间早于第一阈值时间并且输出时间不能被除数整除的每一个存储的块,同时保持所述流式传输的视频比特流的所述先前已播放部分中输出时间相对于所述当前输出时间早于所述第一阈值时间并且输出时间能够被所述除数整除的每一个存储的块被存储作为导航调入点。
7.根据权利要求1或2所述的方法,其中,丢弃所存储的块中的所选部分包括:丢弃所述流式传输的视频比特流的所述先前已播放部分中输出时间相对于当前输出时间早于阈值时间M倍的每第NM个存储的块,同时保持所述流式传输的视频比特流的所述先前已播放部分的剩余存储的块被存储作为导航调入点,其中,M=1…Max,其中Max是定义的整数值,并且针对每一个k=1…Max-1,Nk>Nk+1
8.根据权利要求1或2所述的方法,还包括:
基于接收到指定所述流式传输的视频比特流内与块相关联的调入位置的调入请求,对存储作为导航调入点的所述块的编码视频数据进行解码,以形成解码视频数据;以及
在对所述块的所述编码视频数据进行解码和/或播放所述块的所述解码视频数据的同时,接收起始与所述块的末尾对齐的下一个块的编码视频数据。
9.根据权利要求8所述的方法,其中,接收所述编码视频数据包括:在对所述块的所述编码视频数据进行解码和/或播放所述块的所述解码视频数据的同时,接收质量或比特率比所述块的质量或比特率低的所述下一个块的编码视频数据。
10.根据权利要求9所述的方法,还包括:在播放所述块的所述解码视频数据之前,降低所述块的所述质量或比特率。
11.根据权利要求10所述的方法,其中,降低所述块的所述质量或比特率包括:将所述块的所述质量或比特率降低到基本等于或低于所述下一个块的质量或比特率的质量或比特率。
12.根据权利要求10或11所述的方法,其中,降低所述块的所述质量或比特率包括:对所述块的所述编码视频数据的分辨率进行下采样。
13.一种视频处理方法,包括:
存储分割成多个块的流式传输的视频比特流的编码视频数据的块,所述多个块中的每个块以能够独立解码的画面开始;
对所述流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据;以及
丢弃所述流式传输的视频比特流的先前已播放部分的所存储的块的编码视频数据的所选子块,同时保持所述流式传输的视频比特流的所述先前已播放部分的编码视频数据的所选子块被存储作为导航调入点,每个子块对应于块的子部分并以能够独立解码的画面开始,并且每个子块的播放持续时间比所述块的播放持续时间短。
14.根据权利要求13所述的方法,其中,丢弃所选子块包括:丢弃所选子块,同时保持与所述块的第一子部分或最后一个子部分相对应的子块被存储作为导航调入点。
15.根据权利要求13或14所述的方法,其中,丢弃所述子块包括:
丢弃所述流式传输的视频比特流的所述先前已播放部分中的第一块的N个子块中的M1个子块,同时保持所述第一块的N-M1个子块被存储作为导航调入点;以及
丢弃所述流式传输的视频比特流的所述先前已播放部分中的第二块的N个子块中的M2个子块,同时保持所述第二块的N-M2个子块被存储作为导航调入点,其中M2>M1,并且与所述第一块相比,所述第二块相对于当前播放时间具有更早的播放时间。
16.根据权利要求13或14所述的方法,还包括:
基于接收到指定所述流式传输的视频比特流内与子块相关联的调入位置的调入请求,对存储作为导航调入点的所述子块的编码视频数据进行解码,以形成解码视频数据;以及
在对所述子块的所述编码视频数据进行解码和/或播放所述子块的所述解码视频数据的同时,接收起始与将所述子块作为其子部分的块的起始对齐的块、或者起始与所述子块的末尾对齐的块或下一个子块的编码视频数据。
17.根据权利要求16所述的方法,其中,接收所述编码视频数据包括:在对所述子块的所述编码视频数据进行解码和/或播放所述子块的所述解码视频数据的同时,接收质量或比特率以比所述子块的质量或比特率低的、起始与将所述子块作为其子部分的所述块的所述起始对齐的所述块、或者起始与所述子块的所述末尾对齐的所述块或所述下一个子块的编码视频数据。
18.根据权利要求17所述的方法,还包括:在播放所述子块的所述解码视频数据之前,降低所述子块的所述质量或比特率。
19.根据权利要求18所述的方法,其中,降低所述子块的所述质量或比特率包括:将所述子块的所述质量或比特率降低到基本等于或低于起始与所述子块对应于其子部分的所述块的所述起始对齐的所述块、或者起始与所述子块的所述末尾对齐的所述块或所述下一个子块的所述质量或比特率的质量或比特率。
20.根据权利要求18或19所述的方法,其中,降低所述子块的所述质量或比特率包括:对所述子块的所述编码视频数据的分辨率进行下采样。
21.一种视频处理设备,其中,
所述视频处理设备被配置为:存储分割成多个块的流式传输的视频比特流的编码视频数据的块,所述多个块中的每个块以能够独立解码的画面开始;
所述视频处理设备被配置为:对所述流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据;以及
所述视频处理设备被配置为:丢弃所述流式传输的视频比特流的先前已播放部分的所存储的块中的所选部分,同时保持所述流式传输的视频比特流的所述先前已播放部分的所选的存储的块被存储作为分布在所述流式传输的视频比特流的所述先前已播放部分上的输出时间不相邻的导航调入点。
22.根据权利要求21所述的视频处理设备,其中,所述视频处理设备被配置为:丢弃所述流式传输的视频比特流的所述先前已播放部分的所存储的块中的所选部分,同时保持所述流式传输的视频比特流的所述先前已播放部分的每第N个存储的块被存储作为导航调入点,其中N是等于或大于2的整数。
23.根据权利要求21所述的视频处理设备,其中,所述视频处理设备被配置为:对于保持被存储作为导航调入点的按照所述输出时间的一对相邻块,丢弃相应输出时间在该对相邻块的所述输出时间之间的一数量的所存储的块,所述数量取决于该对相邻块相对于当前输出时间的输出时间。
24.根据权利要求21所述的视频处理设备,其中,所述视频处理设备被配置为:丢弃所述流式传输的视频比特流的所述先前已播放部分中输出时间相对于当前输出时间早于第一阈值时间并且输出时间不能被除数整除的每一个存储的块,同时保持所述流式传输的视频比特流的所述先前已播放部分的输出时间相对于所述当前输出时间早于所述第一阈值时间并且输出时间能够被所述除数整除的每一个存储的块被存储作为导航调入点。
25.根据权利要求21所述的视频处理设备,其中,所述视频处理设备被配置为:丢弃所述流式传输的视频比特流的所述先前已播放部分中输出时间相对于当前输出时间早于阈值时间M倍的每第NM个存储的块,同时保持所述流式传输的视频比特流的所述先前已播放部分的剩余存储的块被存储作为导航调入点,其中,M=1…Max,其中Max是定义的整数值,并且针对每一个k=1…Max-1,Nk>Nk+1
26.根据权利要求21至25中任一项所述的视频处理设备,其中,
所述视频处理设备被配置为:基于接收到指定所述流式传输的视频比特流内与块相关联的调入位置的调入请求,对存储作为导航调入点的所述块的编码视频数据进行解码,以形成解码视频数据;以及
所述视频处理设备被配置为:在对所述块的所述编码视频数据进行解码和/或播放所述块的所述解码视频数据的同时,接收起始与所述块的末尾对齐的下一个块的编码视频数据。
27.根据权利要求26所述的视频处理设备,其中,所述视频处理设备被配置为:在对所述块的所述编码视频数据进行解码和/或播放所述块的所述解码视频数据的同时,以比所述块的质量或比特率低的质量或比特率接收所述下一个块的编码视频数据。
28.根据权利要求27所述的视频处理设备,其中,所述视频处理设备被配置为:在播放所述块的所述解码视频数据之前,降低所述块的所述质量或比特率。
29.根据权利要求28所述的视频处理设备,其中,所述视频处理设备被配置为:对所述块的所述编码视频数据的分辨率进行下采样。
30.根据权利要求21至25中任一项所述的视频处理设备,还包括:
处理器;以及
存储器,包括能够由所述处理器执行的指令,其中
所述处理器能够操作以在所述存储器中存储所述块;
所述处理器能够操作以对所述编码视频数据进行解码;以及
所述处理器能够操作以从所述存储器中丢弃所存储的块中的所选部分或所选子块。
31.根据权利要求21至25中任一项所述的视频处理设备,还包括:
存储器管理器,被配置为存储所述块;以及
解码器,被配置为对所述编码视频数据进行解码,其中所述存储器管理器还被配置为丢弃所存储的块中的所选部分或所选子块。
32.一种视频处理设备,其中,
所述视频处理设备被配置为:存储分割成多个块的流式传输的视频比特流的编码视频数据的块,所述多个块中的每个块以能够独立解码的画面开始;
所述视频处理设备被配置为:对所述流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据;以及
所述视频处理设备被配置为:丢弃所述流式传输的视频比特流的先前已播放部分的所存储的块的编码视频数据的所选子块,同时保持所述流式传输的视频比特流的所述先前已播放部分的编码视频数据的所选子块被存储作为导航调入点,每个子块对应于块的子部分并以能够独立解码的画面开始,并且每个子块的播放持续时间比所述块的播放持续时间短。
33.根据权利要求32所述的视频处理设备,其中,
所述视频处理设备被配置为:丢弃所述流式传输的视频比特流的所述先前已播放部分中的第一块的N个子块中的M1个子块,同时保持所述第一块的N-M1个子块被存储作为导航调入点;以及
所述视频处理设备被配置为:丢弃所述流式传输的视频比特流的所述先前已播放部分中的第二块的N个子块中的M2个子块,同时保持所述第二块的N-M2个子块被存储作为导航调入点,其中M2>M1,并且与所述第一块相比,所述第二块相对于当前播放时间具有更早的播放时间。
34.根据权利要求32或33所述的视频处理设备,其中,
所述视频处理设备被配置为:基于接收到指定所述流式传输的视频比特流内与子块相关联的调入位置的调入请求,对存储作为导航调入点的所述子块的编码视频数据进行解码,以形成解码视频数据;以及
所述视频处理设备被配置为:在对所述子块的所述编码视频数据进行解码和/或播放所述子块的所述解码视频数据的同时,接收起始与所述子块对应于其子部分的块的起始对齐的块、或者起始与所述子块的末尾对齐的块或下一个子块的编码视频数据。
35.根据权利要求34所述的视频处理设备,其中,所述视频处理设备被配置为:在对所述子块的所述编码视频数据进行解码和/或播放所述子块的所述解码视频数据的同时,接收质量或比特率以比所述子块的质量或比特率低的、起始与所述子块对应于其子部分的所述块的所述起始对齐的所述块、或者起始与所述子块的所述末尾对齐的所述块或所述下一个子块的编码视频数据。
36.根据权利要求35所述的视频处理设备,其中,所述视频处理设备被配置为:在播放所述子块的所述解码视频数据之前,降低所述子块的所述质量或比特率。
37.根据权利要求36所述的视频处理设备,其中,所述视频处理设备被配置为:将所述子块的所述质量或比特率降低到基本等于或低于起始与所述子块对应于其子部分的所述块的所述起始对齐的所述块、或者起始与所述子块的所述末尾对齐的所述块或所述下一个子块的所述质量或比特率的质量或比特率。
38.根据权利要求36或37所述的视频处理设备,其中,所述视频处理设备被配置为:对所述子块的所述编码视频数据的分辨率进行下采样。
39.根据权利要求32或33所述的视频处理设备,还包括:
处理器;以及
存储器,包括能够由所述处理器执行的指令,其中
所述处理器能够操作以在所述存储器中存储所述块;
所述处理器能够操作以对所述编码视频数据进行解码;以及
所述处理器能够操作以从所述存储器中丢弃所存储的块中的所选部分或所选子块。
40.根据权利要求32或33所述的视频处理设备,还包括:
存储器管理器,被配置为存储所述块;以及
解码器,被配置为对所述编码视频数据进行解码,其中所述存储器管理器还被配置为丢弃所存储的块中的所选部分或所选子块。
41.一种视频处理设备,包括:
存储器管理器,用于存储分割成多个块的流式传输的视频比特流的编码视频数据的块,所述多个块中的每个块以能够独立解码的画面开始;以及
解码器,用于对所述流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据,其中所述存储器管理器还用于丢弃所述流式传输的视频比特流的先前已播放部分的所存储的块中的所选部分,同时保持所述流式传输的视频比特流的所述先前已播放部分的所选的存储的块被存储作为分布在所述流式传输的视频比特流的所述先前已播放部分上的输出时间不相邻的导航接入点。
42.一种视频处理设备,包括:
存储器管理器,用于存储分割成多个块的流式传输的视频比特流的编码视频数据的块,所述多个块中的每个块以能够独立解码的画面开始;以及
解码器,用于对所述流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据,其中所述存储器管理器还用于丢弃所述流式传输的视频比特流的先前已播放部分的所存储的块的编码视频数据的所选子块,同时保持所述流式传输的视频比特流的所述先前已播放部分的编码视频数据的所选子块被存储作为导航调入点,每个子块对应于块的子部分并以能够独立解码的画面开始,并且每个子块的播放持续时间比所述块的播放持续时间短。
43.一种计算机可读介质,存储有计算机程序,所述计算机程序包括指令,所述指令当被处理器执行时使得所述处理器执行以下操作:
存储分割成多个块的流式传输的视频比特流的编码视频数据的块,所述多个块中的每个块以能够独立解码的画面开始;
对所述流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据;以及
丢弃所述流式传输的视频比特流的先前已播放部分的所存储的块中的所选部分,同时保持所述流式传输的视频比特流的所述先前已播放部分的所选的存储的块被存储作为分布在所述流式传输的视频比特流的所述先前已播放部分上的输出时间不相邻的导航调入点。
44.一种计算机可读介质,存储有计算机程序,所述计算机程序包括指令,所述指令当被处理器执行时使得所述处理器执行以下操作:
存储分割成多个块的流式传输的视频比特流的编码视频数据的块,所述多个块中的每个块以能够独立解码的画面开始;
对所述流式传输的视频比特流的编码视频数据进行解码,以形成要输出以供显示的解码视频数据;以及
丢弃所述流式传输的视频比特流的先前已播放部分的所存储的块的编码视频数据的所选子块,同时保持所述流式传输的视频比特流的所述先前已播放部分的编码视频数据的所选子块被存储作为导航调入点,每个子块对应于块的子部分并以能够独立解码的画面开始,并且每个子块的播放持续时间比所述块的播放持续时间短。
CN201480083599.8A 2014-10-07 2014-10-07 用于实现调入的视频比特流处理 Active CN107005743B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SE2014/051167 WO2016056959A1 (en) 2014-10-07 2014-10-07 Video bitstream processing for enabling tune-in

Publications (2)

Publication Number Publication Date
CN107005743A CN107005743A (zh) 2017-08-01
CN107005743B true CN107005743B (zh) 2020-03-31

Family

ID=51868283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480083599.8A Active CN107005743B (zh) 2014-10-07 2014-10-07 用于实现调入的视频比特流处理

Country Status (4)

Country Link
US (1) US10178428B2 (zh)
EP (1) EP3205110B1 (zh)
CN (1) CN107005743B (zh)
WO (1) WO2016056959A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102430271B1 (ko) * 2015-07-14 2022-08-08 삼성전자주식회사 전자 장치의 동작 방법 및 전자 장치
CN111372117B (zh) * 2018-12-25 2023-06-23 浙江大华技术股份有限公司 一种视频播放方法、装置、电子设备及存储介质
CN110856017A (zh) * 2019-11-07 2020-02-28 西安奥卡云数据科技有限公司 一种视频处理方法及其装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232407A (zh) * 2007-12-19 2008-07-30 深圳市同洲电子股份有限公司 用于实现网络监控中时移播放的方法、装置和视频服务器
CN101330594A (zh) * 2007-06-18 2008-12-24 中兴通讯股份有限公司 对等网络视频点播媒体的存储方法及其媒体点播系统
CN101742198A (zh) * 2008-11-24 2010-06-16 联发科技股份有限公司 多媒体记录装置及方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100447882C (zh) 1998-05-06 2008-12-31 汤姆森特许公司 重放位流的处理
US7496283B2 (en) 2002-06-28 2009-02-24 Microsoft Corporation Methods and systems for processing digital data rate and directional playback changes
US7562375B2 (en) * 2003-10-10 2009-07-14 Microsoft Corporation Fast channel change
US20070058926A1 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Optimizing trick modes for streaming media content
US7818474B2 (en) * 2006-09-29 2010-10-19 Hibbard Gary D Provisional load sharing buffer for reducing hard disk drive (HDD) activity and improving reliability and lifetime
US9288539B2 (en) * 2007-12-12 2016-03-15 Intel Corporation System and method for a user interface to manage the recording, downloading and sharing of content from multiple sources
US8365235B2 (en) * 2007-12-18 2013-01-29 Netflix, Inc. Trick play of streaming media
US20090204812A1 (en) * 2008-02-13 2009-08-13 Baker Todd M Media processing
US20100086280A1 (en) * 2008-10-02 2010-04-08 Horizon Semiconductors Ltd. Method for smoothly playing a video stream in reverse
US8380790B2 (en) * 2008-12-15 2013-02-19 Microsoft Corporation Video conference rate matching
EP2805520A1 (en) 2012-01-20 2014-11-26 Telefonaktiebolaget LM Ericsson (Publ) Sub-bitstream extraction
US8813140B2 (en) * 2012-03-08 2014-08-19 International Business Machines Corporation Content retrieval for digital media recorder devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101330594A (zh) * 2007-06-18 2008-12-24 中兴通讯股份有限公司 对等网络视频点播媒体的存储方法及其媒体点播系统
CN101232407A (zh) * 2007-12-19 2008-07-30 深圳市同洲电子股份有限公司 用于实现网络监控中时移播放的方法、装置和视频服务器
CN101742198A (zh) * 2008-11-24 2010-06-16 联发科技股份有限公司 多媒体记录装置及方法

Also Published As

Publication number Publication date
US10178428B2 (en) 2019-01-08
EP3205110A1 (en) 2017-08-16
EP3205110B1 (en) 2019-05-22
US20180234724A1 (en) 2018-08-16
CN107005743A (zh) 2017-08-01
WO2016056959A1 (en) 2016-04-14

Similar Documents

Publication Publication Date Title
US10582233B2 (en) Systems and methods to provide trick play during streaming playback
US11582497B2 (en) Methods, systems, processors and computer code for providing video clips
JP5859694B2 (ja) コンテンツのプレイアウトをサポートする方法及び装置
CN110636346B (zh) 一种码率自适应切换方法、装置、电子设备及存储介质
US9621613B1 (en) Bitrate adaptation transitioning using key frames
EP3996382A1 (en) Gapless video looping
JP2013038766A (ja) 送信装置、送信装置の制御方法、制御プログラム、及び記録媒体
WO2017071604A1 (zh) 一种播放方法、装置及存储介质
US9313084B2 (en) Systems and methods for client-side media chunking
EP2534845B1 (en) Systems and methods to provide trick play during streaming playback
CN107005743B (zh) 用于实现调入的视频比特流处理
US9872054B2 (en) Presentation of a multi-frame segment of video content
US20210400334A1 (en) Method and apparatus for loop-playing video content
CN104994406B (zh) 一种基于Silverlight插件的视频编辑方法和装置
US20150172347A1 (en) Presentation of content based on playlists
WO2016048200A1 (en) Video tune-in
US20140185690A1 (en) Multimedia data stream format, metadata generator, encoding method, encoding system, decoding method, and decoding system
CN114125499A (zh) 虚拟现实视频处理方法及其终端、服务器及存储介质

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