CN112425178B - 两遍组块并行转码处理 - Google Patents
两遍组块并行转码处理 Download PDFInfo
- Publication number
- CN112425178B CN112425178B CN201980045934.8A CN201980045934A CN112425178B CN 112425178 B CN112425178 B CN 112425178B CN 201980045934 A CN201980045934 A CN 201980045934A CN 112425178 B CN112425178 B CN 112425178B
- Authority
- CN
- China
- Prior art keywords
- transcoding
- chunk
- chunks
- bitstream
- transcoding process
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/177—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
在一个实施例中,一种方法从视频接收多个组块中的第一组块。该多个组块被发送到多个转码单元以进行并行转码。该方法在第一转码单元处对第一组块进行转码以生成第一经转码的子比特流。然后,接收来自被其它转码单元转码的一个或多个第二组块的第一统计信息。将来自该一个或多个第二组块的第一统计信息与来自第一组块的第二统计信息进行比较,并且基于该比较来确定是否执行第二转码处理。当要执行第二转码处理时,该方法对第一组块执行第二转码处理以生成第二经转码的比特流并且输出第二经转码的比特流。当不执行第二转码处理时,该方法输出第一经转码的子比特流。
Description
相关申请的交叉引用
本公开要求于2018年7月9日提交的题为“Two Pass Chunk ParallelTranscoding Process”的编号为16/030,688的美国非临时申请的优先权。该申请的全部内容出于所有目的通过引用全文并入本文。
背景技术
包括音频-视频数据的媒体节目越来越多地分布在电信网络上,以供用户观看和欣赏。服务通过各种视频传递技术(例如,流传输)向用户提供媒体节目。例如,服务可以允许用户使用媒体播放器观看最新的电视节目或电影。在电视节目播出之后,服务可能经历对该电视节目的高需求。在一个示例中,媒体节目提供商将电视节目提供给服务。然后,在该服务能够使该电视节目对用户可用之前,该服务需要对该电视节目进行转码(transcode)。例如,电视节目可能需要被转码成不同的比特率。由于视频的受欢迎程度,服务希望尽可能快地对媒体节目进行转码。但是,如果转码是由一个转码器执行的,那么服务必须等到转码器完成对整个电视节目的转码后,才能使该电视节目对用户可用。使用H.264转码器对两个小时的1080p视频进行转码的典型运行时间约为48小时。另外,如果使用更高的视频分辨率视频(诸如,4K分辨率或甚至更高)和更复杂的转码技术(诸如,高效视频编码(HEVC)/H.265或VP9),那么新视频内容的转码时间将大大增加。
更快地对视频进行转码的一种方法是将视频拼接成多个组块(chunk),然后使用多个转码器对这些组块进行转码。因此,可以并行执行转码,并且将来自转码器的视频的转码部分组合为单个比特流。在改善转码视频所花费的时间的同时,拼接方法引入了质量问题。例如,转码器内部的转码模型(诸如,速率控制模型)需要串行转码,该串行转码将被并行转码破坏。也就是说,转码器独立地处理组块边界内的视频。因此,可能在组块边界处发生视频质量波动。
附图说明
图1描绘了根据一些实施例的用于执行组块并行转码的简化系统。
图2描绘了根据一些实施例的转码单元#(N)的更详细的示例。
图3描绘了根据一些实施例的用于确定其中接收当前组块的统计信息的组块的数量的方法的简化流程图。
图4描绘了根据一些实施例的用于执行两遍(two pass)转码处理的方法的简化流程图。
图5描绘了根据一些实施例的用于生成组装的比特流的方法的简化流程图。
图6描绘了根据一个实施例的经由一个或多个通信网络与多个客户端设备进行通信的视频流传输系统。
图7描绘了用于观看视频内容和广告的装置的示意图。
具体实施方式
本文描述了用于视频转码系统的技术。在下面的描述中,出于解释的目的,阐述了许多示例和具体细节以便提供对一些实施例的透彻理解。由权利要求书限定的一些实施例可以单独地或与下面描述的其它特征组合地包括这些示例中的一些或全部特征,并且还可以包括本文描述的特征和概念的修改和等同形式。
一些实施例使用组块并行转码技术,该组块并行转码技术使用转码云系统中的多个转码单元并行地对视频的组块进行转码。与在一个转码单元中以串行方式执行视频转码相比,组块并行转码技术可以减少对视频进行转码所需的时间。转码单元被配置为独立地对视频进行转码。也就是说,视频的每个组块在单个转码单元上以串行方式从头到尾逐帧地被处理和压缩。组块并行转码可以将一个视频资产分割成多个组块,这些组块由多个转码单元并行处理和转码。例如,两小时的视频可以被分割成12个十分钟的组块,这些组块由12个转码单元并行地转码为12个子比特流。当组块的转码完成时,系统将子比特流组装为表示整个视频的转码的全长经转码的比特流。
将视频分割成多个组块可能在最终经转码的比特流中引入质量问题。例如,在跨经转码的子比特流中,尤其是在组块的边界处可能观察到组块的质量波动。质量问题在边界处发生的一个原因是转码器对视频进行串行转码,并且当视频在组块边界处被分割时,该视频之前的视频未用于组块的转码。这限制了转码的质量,因为转码器无法使用边界之前的帧对边界之后的帧进行转码。这可能导致边界处的质量问题。
一些实施例通过对组块执行两遍转码处理来解决质量问题。两遍转码处理可以使用来自其它组块的统计信息来确定在执行第一转码处理之后是否需要第二转码处理。在一些实施例中,当统计信息指示来自相邻组块的内容可能类似于组块内的内容时,可以执行第二转码处理。如果对组块进行独立转码,那么内容的相似性可能在边界周围引入质量问题。例如,当内容类似于相邻组块时,该内容在对当前组块进行转码时可能有用。这是因为当内容相似时,转码利用相邻帧的内容来增加在转码单元中实现的压缩。当内容不相似时,那么转码不过多利用该内容或者根本不利用该内容。
其中接收到当前组块的统计信息的其它组块的数量可以变化。例如,系统可以为视频生成组块边界以从视频形成组块。然后,系统可以选择组块的左边界之前的第一数量的组块和/或组块的右边界之后的第二数量的组块。所选择的组块的数量可以基于对不同因素(诸如边界周围的组块的内容)的分析。例如,如果视频在组块边界周围是相似的,那么可以使用组块边界周围的更多组块,因为可以使用附加组块来提高转码的质量。但是,如果组块边界周围的内容相差很大,那么来自组块边界外部的组块的内容可能对执行转码无用,因此可以在组块边界外部使用较少的组块。在其它实施例中,可以使用组块边界外部的固定数量的组块。
每个转码单元可以基于来自其它组块的统计信息来单独确定是否需要第二转码。然后,转码单元并行地对组块进行转码。一些组块可能被转码多次,但一些组块可能只被转码一次。例如,包括与相邻组块不相似的内容的当前组块可能不会从第二转码处理中受益,因为来自其它组块的内容可能根本不会那么多地提高当前组块的质量。该组块仅被转码一次。但是,包括与相邻组块相似的内容的另一个组块可能受益于第二转码处理,因为来自其它组块的内容可能提高组块边界周围的转码的质量,并且该组块被转码两次。第二转码处理可以使用基于来自其它组块的统计信息而确定的改变的参数。一旦接收到所有经转码的组块,系统就将子比特流组装成最终经转码的比特流。
系统概述
图1描绘了根据一些实施例的用于执行组块并行转码的简化系统100。系统100对源视频资产进行转码,该源视频资产可以是任何类型的视频,诸如用于电视节目、电影或视频剪辑。源视频可能需要被转码成一种或多种格式,诸如一个或多个比特率,并且也可能在一定时间内(诸如在接收到视频的24小时内)。为了减少对源视频进行转码所需的时间,系统100可以使用本文描述的组块并行转码技术。
组块分割器102接收源视频,并且可以将源视频分割成多个组块。组块可以是源视频中的视频的一部分。例如,组块分割器102可以接收具有作为全长视频的源视频的文件,然后将视频分割成多个组块。
在一些示例中,组块分割器102可以首先确定源视频的组块边界。组块可以为将由转码单元104-1至104-N中的一个转码单元进行转码的组块定义边界。组块可以包括定义组块的起始点的左边界和定义组块的终点的右边界。如将在下面更详细讨论的,组块分割器102可以最初诸如使用组块边界的十分钟间隔来确定组块边界。然后,组块分割器102还可以分析组块边界周围的内容,并确定左边界之前的组块和/或右边界之后的组块,以用于向当前组块发信号通知统计信息。与仅使用边界内的视频相比,来自其它组块的统计信息可以允许转码单元104对组块执行更高质量的转码。更高质量的转码是可能的,因为转码单元104可以使用来自边界外部组块的统计信息来确定是否应该执行第二转码处理。在第二转码处理中,转码单元104可以更改用于对组块进行转码的参数,诸如转码单元104基于相邻组块接收到的统计信息来更改参数。更改后的参数可以利用来自其它组块的一些信息,诸如关于其它组块的内容的统计信息。
转码单元104可以是被配置在计算机处理单元(CPU)上的软件视频处理器/转码器、具有图形处理单元(GPU)的硬件加速视频处理器/转码器、或现场可编程门阵列(FPGA)、和/或在专用集成电路(ASIC)中实现的硬件处理器/转码器。每个转码单元104可以位于不同的设备中、在同一设备中或组合到多个设备中。在一些实施例中,可以取决于组块分割器102输出的组块的数量来配置云计算环境中的转码单元104的数量。转码可以是从一种数字格式到另一种数字格式的转换。转码可能涉及对源格式进行解码并且将源视频编码为另一种数字格式,或者将源视频转换成具有特定分辨率、帧速率、比特率、编解码器等的视频。此外,编码可以是模拟源内容和到数字格式的转换。如所使用的,术语转码可以包括编码。
转码单元#1至#(N)(104-1至104-N)接收组块并且并行地对组块进行转码。例如,转码单元#1接收组块#1;转码单元#2接收组块#2;并且转码单元#(N)接收组块#(N)。虽然转码单元可以对每个源视频仅处理一个组块,但是转码单元104可以对每个源视频处理一个以上的组块。但是,对于完整的并行转码,组块的数量可以等于转码单元104的数量。
转码单元104可以接收视频组块,然后输出一个子比特流。转码单元104还单独确定是否需要第二转码。而且,虽然描述了第二转码,但是可以执行两个以上的转码处理,诸如转码单元104可以继续评估转码的质量并更改参数,直到转码的质量可接受为止。在一些实施例中,对于特定时间,每个转码单元104可以对单个组块进行转码并输出单个子比特流。但是,第二转码处理将很可能增加输出单个子比特流的时间。
组块组装器106接收N个子比特流,诸如从每个转码单元104接收一个。然后,组块组装器106组装子比特流并且可以生成经组装的比特流。经组装的比特流是源视频的单个经转码的比特流。
组块组装器106根据组块的时间顺序将子比特流级联。然后,组块组装器106将组块组装在一起成为经组装的比特流。
组块验证器108接收经组装的比特流,并且可以验证比特流。验证可以基于不同的因素来检查经组装的比特流。例如,因素可以包括完整性、正确性、整体质量和跨组块质量。完整性检查没有丢失的组块,正确性检查组块处于正确的顺序,整体质量检查整体比特率符合任何比特率要求,跨组块质量检查各个组块的比特率和质量的波动在预定义条件内。
组块并行调度器110可以从组块分割器102、转码单元104、组块分割器106和组块验证器108收集信息,以协调源视频的转码的各个阶段的调度。组块并行调度器110可以协调组块并行转码以实现最佳的组块并行转码结果。例如,组块并行调度器110可以调度组块分割器102以将源视频分割成组块。然后,组块并行调度器110配置所需的转码单元104的数量,并在转码单元104处调度转码。此后,组块并行调度器110调度组块组装器106以将子比特流组装成经组装的比特流。然后,组块并行调度器110调度组块验证器108以验证经组装的比特流。
组块生成
如上所述,系统100通过使用来自当前组块的左组块边界之前和/或右组块边界之后的组块的统计信息确定是否应当执行第二转码处理来改进组块并行转码处理。
在一些实施例中,组块分割器102使用不同的处理为源视频生成组块边界。例如,可以使用固定长度的组块和固定计数的组块。对于固定长度的组块,组块分割器102每隔源视频的T秒生成组块边界。对于固定计数的组块处理,给定固定计数C,组块分割器102生成组块边界以生成C个偶数(even)长度的组块。最后一个组块可能不是偶数长度。
生成组块边界的其它方法包括使用场景改变组块边界、IDR组块边界或固定尺寸/相似尺寸的组块边界。对于场景改变组块边界,组块分割器102分析源视频以确定何时发生场景改变。例如,场景改变可能是在视频中由于场景从一个位置改变到另一个位置而发生大量内容改变时。而且,可以在不同的相机拍摄时确定场景改变组块。在一些实施例中,组块分割器102在源视频中生成组块边界以基于场景改变的边界发生的时间而生成可变长度的组块。
IDR帧存在于某些转码协议中,诸如H.264/AVC、运动图片专家组(MPEG)4等。IDR帧可以是在一起被转码的一组图片中被转码的第一个图片。虽然描述了IDR帧,但是可以使用其它帧,诸如I帧。通常,IDR帧或I帧可以在不参考任何其它帧的情况下被转码。组块分割器102可以确定IDR帧的位置,然后使用IDR帧的位置作为边界在源视频中生成组块边界。取决于源视频中IDR的位置,生成的组块的长度可以变化。每个组块的尺寸将不相同,因为当IDR帧出现时,组块边界可能发生。
固定尺寸或相似尺寸的组块与固定长度的组块的不同之处在于,组块的尺寸不取决于长度。也就是说,尺寸可以是组块中的字节数。当优化组块的网络转换效率时,可以使用该尺寸,因为网络可以传递相同尺寸的组块。组块分割器102每隔T字节的源视频生成组块边界。
两遍转码处理
一旦生成组块,转码单元104就对组块进行转码。图2描绘了根据一些实施例的转码单元#(N)104-3的更详细的示例。在一些实施例中,关于转码单元#(N)描述的体系架构可以被包括在所有其它转码单元104中。在其它实施例中,关于转码单元#(N)描述的体系架构被包括在至少一个其它转码单元104中。每个转码单元104可以执行其自己的第二转码检查以确定是否需要第二转码处理。因此,在一些示例中,一些转码单元104可以从第一转码处理输出子比特流,并且一些转码单元104可以从第二转码处理输出子比特流。在没有第二转码处理的情况下输出第一转码处理,或者在没有第一转码处理的情况下输出第二转码处理。应当注意的是,虽然描述了第二转码处理,但是转码单元104还可以取决于最后转码的质量来执行第三转码处理或更多的转码处理。例如,转码单元104可以继续对视频进行转码,直到满足一个或多个标准(诸如当前组块的所得比特率和整体质量满足标准、当前组块的边界处的质量波动在阈值内可接受等)为止。
在转码单元#(N)104-3处接收组块#(N),其中N是数字。例如,转码单元#(N)可以是转码单元#5,并且如果N=5,那么正在处理组块#5。其它转码单元被标记为转码单元#(N-2)104-1、转码单元#(N)之前的转码单元#(N-1)104-2。转码单元#(N-2)正在处理组块#(N-2),并且转码单元#(N-1)正在处理组块#(N-1)。在组块#(N)之后,转码单元#(N+1)104-4正在处理组块#(N+1),并且转码单元#(N+2)104-5正在处理组块#(N+2)。
在转码单元#(N)中,第一转码逻辑202对组块#(N)进行转码以生成子比特流#(N)。然后,第二转码检查逻辑204分析第一转码以确定是否应当执行第二转码处理。第二转码检查逻辑204的逻辑可以被嵌入在转码单元#(N)中,并且第二转码检查逻辑204从其它转码单元104收集后向(backward)统计信息和/或前向(forward)统计信息。例如,转码单元#(N-2)和/或转码单元#(N-1)可以向第二转码检查逻辑204发送后向统计信息,并且转码单元#(N+1)和转码单元#(N+2)可以向第二转码检查逻辑204发送前向统计信息。后向统计信息是来自转码的时间轴顺序中组块#(N)之前的组块的统计信息,并且前向统计信息是来自组块#(N)之后的组块的统计信息。可以动态地确定从中接收到统计信息的后向组块和前向组块的数量。例如,可以围绕组块#(N)的组块边界来分析视频的内容,以确定内容的相似性。如果组块边界周围的内容相似,那么可以使用来自其它转码单元的更多组块的统计信息。但是,如果组块边界周围的内容不相似,那么可能接收到更少的统计信息或没有来自其它转码单元的组块的统计信息。使用来自其它组块的更少的统计信息可以使第二转码检查逻辑204更高效,因为第二转码检查逻辑204只需分析较少的信息。当内容相似时,可以使用来自更多组块的附加统计信息,并且第二转码处理可能需要来自其它组块的统计信息,以便更好地确定是否应该执行或者稍后使用第二转码处理来在第二转码处理中提高转码的质量。也就是说,当组块包括与当前组块内的内容不同的内容时,来自其它组块的内容在对当前组块的帧进行转码时不太有帮助,因为转码利用内容中的相似性来对内容进行转码。因此,当内容不相似时,当不使用当前组块外部的帧时,当前组块内的转码的质量不会受到很大影响。但是,如果当前组块的左边界之前或右边界之后的内容分别包括与左边界或右边界内的帧相似的内容,那么当前组块的转码的质量可能在组块边界处降低。
除了来自第一转码逻辑202的当前统计信息之外,第二转码检查逻辑204还可以分析后向统计信息和前向统计信息。当前统计信息是来自当前组块#(N)的转码的统计信息。然后,第二转码检查逻辑204可以使用第二转码处理逻辑206来确定是否发起第二转码处理。由第二转码检查逻辑204执行的分析将在下面更详细地描述。取决于对来自其它组块的后向统计信息和前向统计信息的分析,第二转码检查逻辑204可以将信号输出到开关208。当不需要第二转码处理时,开关208可以处于所示位置,其中来自第一转码逻辑202的子比特流#(N)由转码单元#(N)输出。但是,当需要第二转码处理时,第二转码检查逻辑204切换开关208以将第一转码逻辑202连接到第二转码处理逻辑206。此外,第二转码检查逻辑204可以将更改的参数发送到第二转码处理逻辑206。可以基于对后向统计信息、当前统计信息和前向统计信息的分析来确定更改的参数。更改的参数可以被配置为改善边界周围的质量,因为来自其它组块的信息被用于确定更改的参数。通过比较边界前后的帧的质量,可以确定更改的参数。例如,如果当前组块#(N)的开始处的帧的质量比先前组块#(N-1)的结束帧的质量差超过阈值,那么将观察到质量波动。在这种情况下,应当更改当前组块#(N)的开始处的帧的转码参数,以生成具有更好质量的转码。
第二转码逻辑206然后使用源视频的更改的参数来执行组块#(N)的第二转码处理。虽然第一转码逻辑202的输出连接到第二转码处理逻辑204,但是原始源视频可以通过第二转码处理逻辑206进行转码。第二转码逻辑206可以使用更改的参数,诸如修改后的量化参数、速率控制模型参数等,以改善当前组块的边界处的波动的质量。例如,如果当前组块#(N)和先前组块#(N-1)之间的边界处质量下降,那么应当在转码单元#(N)中应用第二转码处理,以提高组块#(N)的开始处的帧的质量。为了达到质量目标,可以将来自转码单元#(N-1)中的编码的第一转码的后向统计信息(诸如所得的比特率、最终速率控制模型参数、最终量化参数(QP)等)发送到转码单元#(N)。然后,转码单元#(N)可以使用选项来启动对组块#(N)的第二转码。该选项包括但不限于将组块#(N)的目标编码比特率更改为组块#(N-1)的所得的比特率、将组块#(N)的初始QP设置为等于组块#(N-1)的最终QP,和/或将组块#(N)的初始速率控制参数设置为等于组块#(N-1)的最终速率控制参数。
前向和后向统计信息确定
图3描绘了根据一些实施例的用于确定其中接收当前组块的统计信息的组块的数量的方法的简化流程图300。在302处,组块分割器102为源视频的组块生成组块边界。然后,组块分割器102可以分析组块以确定在第二转码检查中应当包括该组块之前的多少个组块和该组块之后的多少个组块。在304处,组块分割器102选择组块,诸如组块#(N)。然后,在306处,组块分割器102分析该组块的左组块边界之前的组块。组块分割器102分析的组块的数量可以是固定数量或可以基于内容而变化。组块分割器102可以分析组块的内容,并且将该内容与当前组块的内容进行比较。
在308处,组块分割器102确定用于后向统计信息的第一参数,该第一参数可以用于确定其中接收后向统计信息的组块的数量。例如,如果第一参数为二,那么在该组块之前使用的组块的数量为两个组块。在一些实施例中,当在左组块边界之前的组块的内容与组块内的内容相似时,那么增加第一参数。但是,如果在左组块边界之前的组块的内容与组块内的内容不相似,那么减少第一参数。组块分割器102可以诸如通过将组块的内容特性之间的差异与阈值进行比较以确定第一参数来分析不同的内容特性。在确定前向统计信息和后向统计信息时,可以比较X个连续组块的内容特性,其中X是预定义值。
类似于以上关于左组块边界,在310处,组块分割器102分析右组块边界之后的组块。在312处,组块分割器102确定用于前向统计信息的第二参数。组块分割器102以与以上关于确定后向统计信息所述的类似的方式确定第二参数。在一些实施例中,第一参数和第二参数可以是相同的值。但是,如果在左组块边界或右组块边界处的内容不太相似,那么第一参数和第二参数可以不同。
在314处,组块分割器102输出用于在第二转码处理中使用的第一参数和第二参数。
两遍转码
图4描绘了根据一些实施例的用于执行两遍转码的方法的简化流程图400。在402处,转码单元#(N)执行第一转码处理。在没有来自其它组块的任何信息的情况下执行第一转码处理。
在404处,转码单元#(N)基于第一参数和第二参数从多个组块接收前向统计信息和后向统计信息。如以上讨论的,第一参数和第二参数可以是固定值或可以是可变的。组块并行调度器110可以配置每个转码单元104将后向统计信息或前向统计信息发送到其它转码单元104。统计信息(前向统计信息或后向统计信息)可以从视频内容特性中导出,包括但不限于内容复杂度,诸如对象的数量、边缘的数量、纹理的幅度等,以及时间复杂度,诸如对象运动的幅度、运动方向的多样性等。基于对内容的分析来确定内容复杂度和时间复杂度。对象的数量是在组块中识别出的对象的数量(例如,人、家具等)。边缘的数量是从内容的边缘检测中找到的边缘。纹理的幅度是像素的视频局部变化的测量。对象运动的幅度是对组块中对象的运动量的测量。运动方向的多样性是组块中移动的分布,其可以通过运动向量或对象的光流的变化来测量。此外,可以从其它转码单元以及还从当前组块的第一转码处理接收第一转码处理结果,诸如所得的比特率、平均量化参数、质量测量等。基于执行的转码来确定转码结果。平均比特率是经转码的组块的比特率的平均值。平均量化参数调节在转码中节省了多少空间细节。质量测量是视频质量的度量,诸如峰值信噪比(PSNR)或结构相似度(SSIM)等。
在406处,转码单元#(N)分析前向统计信息和后向统计信息以确定是否需要第二转码处理。例如,转码单元#(N)可以将前向统计信息与来自当前组块的当前统计信息进行比较,并且还可以将后向统计信息与当前统计信息进行比较。如果前向统计信息和/或后向统计信息在阈值内与当前统计信息相似,那么可以使用第二转码处理。可以使用第二转码处理是因为相邻组块可以共享相似的视频内容特性,并且第二转码处理应当用于提高当前组块的边界处的质量。也就是说,来自其它组块的一些信息在对当前组块进行转码中可能是有用的。例如,可以将来自其它组块的边缘的数量、纹理的幅度或运动强度与来自当前组块的统计信息进行比较。在一些实施例中,如果与一个或多个统计信息的数量差异小于一个或多个阈值,那么当前组块被确定为具有与先前组块或后续组块相似的内容特性。在一些示例中,如果在后向统计信息中边缘的数量为1000,并且在当前统计信息中边缘的数量为1100,并且使用阈值200,那么差异100会满足阈值(例如,低于阈值)。可以使用其它统计的类似比较。满足阈值意味着,由于相邻组块和当前组块具有相似数量的边缘,因此确定相邻组块和当前组块之间的内容相似。
在一些实施例中,转码单元#(N)将后向统计信息和当前统计信息与一个或多个阈值进行比较,并且还将前向统计信息和当前统计信息与一个或多个阈值进行比较。如果被比较的统计信息有多种类型,那么转码单元#(N)可能要求一种或多种不同类型的统计信息的内容相似,诸如大于不同类型统计信息的75%。例如,如果仅边缘的数量这一种统计信息类型是相似的,那么转码单元#(N)可以确定不需要第二转码处理。但是,如果两种类型的统计信息,诸如边缘的数量和纹理的幅度满足阈值,那么转码单元#(N)执行第二转码处理。在其它实施例中,如果任何类型的统计信息满足阈值,那么转码单元#(N)可以确定需要第二转码处理。
转码单元#(N)还可以比较第一转码处理统计信息,诸如比特率、量化参数或质量测量(例如,PSNR或SSIM)。转码统计信息是来自转码的转码结果,并且内容特性来自内容本身。转码单元#(N)可以将来自后向统计信息的第一转码处理结果与来自当前统计信息的第一转码处理结果进行比较,并且还可以将当前统计信息和前向统计信息之间的第一转码处理结果进行比较。再一次地,转码单元#(N)可以将差异与阈值进行比较,并且如果差异满足阈值,那么这指示当前组块具有与先前组块和/或后续组块相似的内容特性。当一个或多个第一转码处理结果满足阈值时,转码单元#(N)可以确定应用当前组块的第二转码处理。
通过以上比较,在408处,转码单元#(N)确定是否需要第二转码处理。如果不需要,那么转码单元#(N)输出来自第一转码的子比特流。
如果需要第二转码处理,那么在412处,转码单元#(N)选择更改的转码参数。转码单元#(N)可以基于以上比较以及后向和/或前向统计信息来确定更改的转码参数。
在414处,转码单元#(N)使用更改的参数执行第二转码处理。然后,在416处,转码单元#(N)输出来自第二转码处理的子比特流。
比特流组件
组块组装器106可以接收第一转码处理或第二转码处理。图5描绘了根据一些实施例的用于生成经组装的比特流的方法的简化流程图500。在502处,组块组装器106从第一转码处理接收经转码的组块。组块组装器106可以在执行第二转码处理之前从第一转码处理接收经转码的组块,因为由于第二转码处理再次被执行而使得第二转码处理花费更多的时间。在504处,组块组装器106将第一转码处理组块添加到经组装的比特流。在一些示例中,组块组装器106知道组块的位置,并且可以基于视频中的时间插入组块。在其它示例中,组块组装器106可以串行地添加第一转码处理组块以生成经组装的比特流,直到没有接收到来自转码单元的第一转码处理组块为止。此时,组块组装器106等待接收第二转码处理。组块组装器106然后可以存储第一转码处理组块的其余部分,以稍后插入到经组装的比特流中。
在506处,组块组装器106从第二转码处理接收经转码的组块。来自第二转码处理的经转码的组块可以在来自第一转码处理的经转码的组块之后被接收。然后,在508处,组块组装器106将来自第二转码处理的经转码的组块添加到经组装的比特流。在一些实施例中,组块组装器106可以基于第二转码组块的时间顺序将第二转码组块插入到经组装的比特流中的第一转码处理组块之间。在其它示例中,如果在缺少第一转码处理组块时组块组装器106已停止插入第一转码处理组块,那么组块组装器106可以继续使用第二转码组块和所存储的第一转码处理组块来生成经组装的比特流。一旦生成经组装的比特流,组块组装器106就输出经组装的比特流。
结论
因此,当组块边界周围的质量可能受到组块并行编码处理的影响时,一些实施例执行第二转码处理。该处理提高了转码的质量,同时允许更快地执行转码。例如,仅基于对后向统计信息、当前统计信息和/或前向统计信息的比较,在需要时才执行第二转码处理。此外,在转码单元104之间传送的信息量可以被限制为统计信息,而不是组块的实际内容。这可以限制在转码单元之间传送的信息量。这还可以提高确定是否应当执行第二转码处理的速度,因为每个转码单元不需要分析内容。准确地说,对统计信息进行比较,这比对内容进行比较更快。
系统
本文公开的特征和方面可以结合经由一个或多个通信网络与多个客户端设备进行通信的视频流传输系统600来实现,如图6中所示。描述视频流传输系统600的各方面仅仅是为了提供启用根据本公开准备的内容的分发和传递的应用的示例。应当认识到的是,本技术不限于流传输视频应用,而且可以适用于其它应用和传递机制。
在一个实施例中,媒体节目提供者可以包括媒体节目库。例如,媒体节目可以通过站点(例如,网站)、应用或浏览器进行聚合和提供。用户可以访问媒体节目提供者的站点或应用,并请求媒体节目。用户可以限于只请求媒体节目提供者提供的媒体节目。
在系统600中,可以从一个或多个源(例如,从视频源610)获得视频数据,用作到视频内容服务器602的输入。输入的视频数据可以包括原始的或基于编辑帧的、任何合适的数字格式的视频数据,例如运动图像专家组(MPEG)-1、MPEG-2、MPEG-4、VC-1、H.264/高级视频编码(AVC)、高效率视频编码(HEVC)、或其它格式。在替代方案中,可以以非数字格式提供视频并且使用扫描仪和/或转码器将其转换成数字格式。输入的视频数据可以包括各种类型的视频剪辑或节目,例如,作为消费者感兴趣的主要内容产生的电视情节、运动画面和其它内容。视频数据还可以包括音频或者可以只使用音频。
视频流传输系统600可以包括分布在一个或多个计算机上的一个或多个计算机服务器或模块602、604和/或607。每个服务器602、604、607可以包括或可操作地耦合到一个或多个数据存储库609,例如数据库、索引、文件或其它数据结构。视频内容服务器602可以访问各种视频片段的数据存储库(未示出)。视频内容服务器602可以如由与客户端设备进行通信的用户接口控制器指示的那样提供视频片段。如本文所使用的,视频片段是指基于帧的视频数据的既定部分,诸如可以在用以观看电视情节、运动画面、记录的现场表演或其它视频内容的流传输视频会话中所使用的。
在一些实施例中,视频广告服务器604可以访问相对短的视频(例如,10秒、30秒或60秒视频广告)的数据存储库,该相对短的视频被配置为针对特定广告商或消息的广告。可以提供广告,用于广告商换取某种形式的支付,或者广告可以包括用于系统600的推广信息、公共服务消息或一些其它信息。视频广告服务器604可以如由用户接口控制器(未示出)指示的那样提供视频广告片段。
视频流传输系统600还可以包括系统100。
视频流传输系统600还可以包括将视频内容和视频广告集成到流传输视频片段中的集成和流传输部件607。例如,流传输部件607可以是内容服务器或流传输媒体服务器。控制器(未示出)可以基于任何合适的算法或处理来确定流传输视频中的广告的选择或配置。视频流传输系统600可以包括图6中未描绘的其它模块或单元,例如行政管理服务器、商业服务器、网络基础设施、广告选择引擎等。
视频流传输系统600可以连接到数据通信网络612。数据通信网络612可以包括局域网(LAN)、广域网(WAN)(例如,互联网)、电话网、无线蜂窝电信网络(WCS)614、或者这些或类似网络的一些组合。
一个或多个客户端设备620可以经由数据通信网络612、无线蜂窝电信网络614和/或另一个网络与视频流传输系统600进行通信。这样的客户端设备可以包括例如经由用于LAN的路由器618、经由用于无线蜂窝电信网络614的基站617或经由某个其它连接的一个或多个膝上型计算机620-1、台式计算机620-2、“智能”移动电话620-3、平板设备620-4、支持网络的电视620-5或其组合。在操作中,响应于从用户输入设备接收的用户输入或其它输入,这种客户端设备620可以向系统600发送和接收数据或指令。作为响应,系统600可以响应于媒体节目的选择而从数据存储库609向客户端设备620提供视频片段和元数据。客户端设备620可以使用显示屏、投影仪或其它视频输出设备从媒体播放器中的流传输视频片段中输出视频内容,并且接收用于与视频内容交互的用户输入。
音频-视频数据的分发可以使用各种方法(例如,流传输)通过计算机网络、电信网络以及这种网络的组合从流传输部件607到远程客户端设备实现。在流传输中,内容服务器将音频-视频数据连续地流传输到至少部分地在客户端设备上操作的媒体播放器部件,媒体播放器部件可以与从服务器接收流传输数据并发地播放音频-视频数据。虽然讨论了流传输,但是可以使用其它传递方法。媒体播放器部件可以在从内容提供者接收数据的初始部分之后立即发起视频数据的播放。传统的流传输技术使用单个提供者向最终用户的集合传递数据流。高带宽和处理能力可能是向大量观众传递单个流所需要的,并且当最终用户的数量增加时,提供者的所需带宽可能增加。
流传输媒体可以按需或实时传递。流传输允许在文件内的任何点立即重放。最终用户可以跳过媒体文件,以开始重放或将重放改变到媒体文件中的任何点。因此,最终用户不需要等待文件逐步下载。通常,流传输媒体是经由接收对视频文件的请求的专用设备从具有高带宽能力的几个专用服务器传递的,并且具有关于格式、带宽和这些文件的结构的信息,仅以播放视频所需的速率传递播放视频所需的数据量。流传输媒体服务器还可以考虑目的地客户端上媒体播放器的传输带宽和能力。流传输部件607可以使用控制消息和数据消息与客户端设备620进行通信,以在播放视频时根据变化的网络状态进行调整。这些控制消息可以包括用于启用控制功能的命令,诸如快进、快退、暂停或在客户端查找文件的特定部分。
由于流传输部件607仅根据需要并以所需的速率发送视频数据,因此可以维持对所服务的流的数量的精确控制。观看者将无法通过较低数据速率的传输介质来查看高数据速率视频。但是,流传输媒体服务器(1)向用户提供对视频文件的随机访问,(2)允许监视谁在看什么视频节目以及这些视频节目被观看了多长时间,(3)更高效地使用传输带宽,因为只发送支持观看体验所需的数据量,以及(4)视频文件不存储在观看者的计算机中,而是被媒体播放器丢弃,从而允许对内容的更多控制。
流传输部件607可以使用基于TCP的协议,诸如HTTP和实时消息传送协议(RTMP)。流传输部件607也可以传递网络直播并可以多播,这允许一个以上的客户端调谐到单个流,从而节省带宽。流传输媒体播放器可以不依赖于缓存整个视频以提供对媒体节目中任何点的随机访问。相反,这是通过使用从媒体播放器发送到流传输媒体服务器的控制消息来实现的。用于流传输的其它协议是超文本传输协议(HTTP)直播流传输(HLS)或经HTTP的动态自适应流传输(DASH)。HLS和DASH协议经由小片段的播放列表经HTTP传递视频,这些小片段通常从一个或多个内容传递网络(CDN)以各种比特速率可用。这允许媒体播放器以片段为基础切换比特速率和内容源两者。切换有助于补偿网络带宽差异以及在视频重放期间可能发生的基础设施故障。
通过流传输的视频内容的传递可以在各种模式下完成。在一个模式中,用户为观看视频节目而付费,例如,为访问媒体节目库或受限媒体节目部分而支付费用,或者使用按需付费服务。在广播电视开始之后不久被广泛采用的另一种模式中,赞助商支付媒体节目呈现,以换取在节目呈现期间或附近展示广告的权利。在一些模式中,广告插在视频节目中的预定时间处,该时间可以被称为“广告位”或“广告插播”。对于流传输视频,媒体播放器可以被配置为使得客户端设备无法在没有在指定的广告位期间还播放预定广告的情况下播放视频。
参考图7,图示了用于观看视频内容和广告的装置700的示意图。在选定的实施例中,装置700可以包括操作地耦合到处理器存储器704的处理器(CPU)702,处理器存储器704保持二进制编码的功能模块以供处理器702执行。这些功能模块可以包括用于处理系统功能(诸如输入/输出和存储器访问)的操作系统706、显示网页的浏览器708、以及用于播放视频的媒体播放器710。存储器704可以保持在图7中未示出的附加模块,例如用于执行本文其它地方描述的其它操作。
总线714或其它通信部件可以支持装置700内信息的通信。处理器702可以是专门的或专用的微处理器,该专门的或专用的微处理器被配置为通过执行定义特定任务的机器可读软件代码来根据本文所公开的特征和方面执行特定任务。处理器存储器704(例如,随机存取存储器(RAM)或其它动态存储设备)可以连接到总线714或直接连接到处理器702,并且存储要由处理器702执行的信息和指令。存储器704还可以在执行此类指令期间存储临时变量或其它中间信息。
存储设备724中的计算机可读介质可以连接到总线714并且存储用于处理器702的静态信息和指令;例如,存储设备(CRM)724可以在装置700断电时存储模块706、708、710和712,当装置700上电时可以将模块从存储设备加载到处理器存储器704中。存储设备724可以包括保持信息、指令或其某种组合的非暂态计算机可读存储介质,例如在被处理器702执行时使装置700被配置成执行本文所述的方法的一个或多个操作的指令。
通信接口716也可以连接到总线714。通信接口716可以提供或支持装置700与一个或多个外部设备(例如,流传输系统600)之间的双向数据通信,可选地经由路由器/调制解调器726以及有线或无线连接。在替代方案中,或附加地,装置700可以包括连接到天线729的收发器718,装置700通过该收发器718可以与用于无线通信系统的基站或者与路由器/调制解调器726进行无线通信。在替代方案中,装置700可以经由局域网、虚拟专用网或其它网络与视频流传输系统600进行通信。在另一种替代方案中,装置700可以被并入作为系统600的模块或部件,并且经由总线714或通过某种其它方式与其它部件进行通信。
装置700可以连接(例如,经由总线714和图形处理单元720)到显示单元728。显示器728可以包括用于向装置700的操作者显示信息的任何合适的配置。例如,显示器728可以包括或利用液晶显示器(LCD)、触摸屏LCD(例如,电容显示器)、发光二极管(LED)显示器、投影仪或其它显示设备,以在可视显示器中将信息呈现给装置700的用户。
一个或多个输入设备730(例如,字母数字键盘、麦克风、小键盘、遥控器、游戏控制器、相机或相机阵列)可以经由用户输入端口722连接到总线714,以便向装置700传送信息和命令。在选定的实施例中,输入设备730可以提供或支持对光标定位的控制。这种光标控制设备(也被称为定点设备)可以被配置为鼠标、轨迹球、轨迹垫、触摸屏、光标方向键或用于接收或跟踪物理运动并将运动转化为指示光标移动的电子信号的其它设备。光标控制设备可以被并入到显示单元728中,例如使用触摸敏感屏。光标控制设备可以向处理器702传送方向信息和命令选择,并且在显示器728上控制光标移动。光标控制设备可以具有两个或更多个自由度,例如允许设备在平面或三维空间中指定光标位置。
一些实施例可以在非暂态计算机可读存储介质中实现,以供指令执行系统、装置、系统或机器使用或与其结合使用。计算机可读存储介质包含用于控制计算机系统以执行由一些实施例描述的方法的指令。计算机系统可以包括一个或多个计算设备。指令当由一个或多个计算机处理器执行时,可以被配置为执行一些实施例中描述的指令。
如在本文描述中并且贯穿所附权利要求所使用的,“一个”、“一”和“该”包括复数引用,除非上下文另有明确规定。而且,如在本文描述中并且贯穿所附权利要求所使用的,“在...中”中的含义包括“在...中”和“在...上”,除非上下文另有明确规定。
以上描述示出了各种实施例,连同一些实施例的各方面可以如何实现的示例。以上示例和实施例不应当被视为唯一的实施例,并且被呈现以说明由所附权利要求限定的一些实施例的灵活性和优点。基于以上公开内容和所附权利要求,可以在不脱离权利要求限定的其范围的情况下采用其它布置、实施例、实现和等同物。
Claims (19)
1.一种方法,包括:
由计算设备从视频中接收多个组块中的第一组块,所述多个组块被发送到多个转码单元以进行并行转码;
由所述计算设备使用第一转码处理在第一转码单元处对第一组块进行转码以生成第一经转码的子比特流;
由所述计算设备接收来自被其它转码单元转码的一个或多个第二组块的第一统计信息;
由所述计算设备将来自所述一个或多个第二组块的第一统计信息与来自第一组块的第二统计信息进行比较;
由所述计算设备基于所述比较来确定是否执行第二转码处理;
当要执行第二转码处理时,由所述计算设备执行第二转码处理对所述第一组块进行重新转码以生成第二经转码的比特流,并且输出该第二经转码的比特流用于被包括在没有第一经转码的子比特流的经组装的比特流中;以及
当不执行第二转码处理时,由所述计算设备输出第一经转码的子比特流用于被包括在经组装的比特流中。
2.如权利要求1所述的方法,其中确定是否执行第二转码处理包括:
将来自一个或多个组块的第一统计信息与来自第一组块的第二统计信息之间的差异与阈值进行比较;
当所述差异满足所述阈值时,确定应当执行第二转码处理;以及
当所述差异不满足所述阈值时,确定不应当执行第二转码处理。
3.如权利要求2所述的方法,其中当来自对一种类型的第一统计信息与该种类型的第二统计信息的比较的差异满足所述阈值时,应当执行第二转码处理。
4.如权利要求2所述的方法,其中当来自对多种类型的第一统计信息与所述多种类型的第二统计信息的比较的差异满足所述阈值时,应当执行第二转码处理。
5.如权利要求1所述的方法,其中对第一组块执行第二转码处理包括:
选择与在第一转码处理中使用的参数不同的更改的参数;以及
在第二转码处理中使用所述更改的参数。
6.如权利要求5所述的方法,其中从第一统计信息确定所述更改的参数。
7.如权利要求1所述的方法,其中来自一个或多个组块的第一统计信息包括来自从第一组块之前的一个或多个组块的统计信息以及来自从第一组块之后的一个或多个组块的统计信息。
8.如权利要求7所述的方法,其中基于对从第一组块之前的一个或多个组块以及第一组块的内容分析,确定从第一组块之前的一个或多个组块的第一数量,并且基于对从第一组块之后的一个或多个组块以及第一组块的内容分析,确定从第一组块之后的一个或多个组块的第二数量。
9.如权利要求7所述的方法,其中从第一组块之前的一个或多个组块的第一数量是第一固定数量,并且从第一组块之后的一个或多个组块的第二数量是第二固定数量。
10.如权利要求1所述的方法,其中所述多个转码单元中的每个转码单元确定是否执行第二转码处理。
11.如权利要求1所述的方法,其中第一统计信息包括内容特性,所述内容特性描述所述一个或多个第二组块和第一组块中的内容的特性。
12.如权利要求11所述的方法,其中所述内容特性包括描述所述一个或多个第二组块和第一组块的内容的内容复杂度和描述所述一个或多个第二组块和第一组块的时间特性的时间复杂度。
13.如权利要求1所述的方法,其中确定是否执行第二转码处理是在不比较第一组块的内容和所述一个或多个第二组块的内容的情况下确定的。
14.如权利要求1所述的方法,还包括:
从所述多个转码单元将来自第一转码处理或第二转码处理的子比特流进行组装,以形成经组装的比特流。
15.如权利要求14所述的方法,其中所述经组装的比特流包括第一组块的至少一个第一转码处理和第二组块的至少一个第二转码处理。
16.一种包含指令的非暂态计算机可读存储介质,所述指令在被执行时控制将计算机系统配置为:
从视频中接收多个组块中的第一组块,所述多个组块被发送到多个转码单元以进行并行转码;
使用第一转码处理在第一转码单元处对第一组块进行转码以生成第一经转码的子比特流;
接收来自被其它转码单元转码的一个或多个第二组块的第一统计信息;
将来自所述一个或多个第二组块的第一统计信息与来自第一组块的第二统计信息进行比较;
基于所述比较来确定是否执行第二转码处理;
当要执行第二转码处理时,执行第二转码处理对所述第一组块进行重新转码以生成第二经转码的比特流,并且输出该第二经转码的比特流用于被包括在没有第一经转码的子比特流的经组装的比特流中;以及
当不执行第二转码处理时,输出第一经转码的子比特流用于被包括在经组装的比特流中。
17.如权利要求16所述的非暂态计算机可读存储介质,其中确定是否执行第二转码处理包括:
将来自一个或多个组块的第一统计信息与来自第一组块的第二统计信息之间的差异与阈值进行比较;
当所述差异满足所述阈值时,确定应当执行第二转码处理;以及
当所述差异不满足所述阈值时,确定不应当执行第二转码处理。
18.如权利要求16所述的非暂态计算机可读存储介质,其中对第一组块执行第二转码处理包括:
选择与在第一转码处理中使用的参数不同的更改的参数;以及
在第二转码处理中使用所述更改的参数。
19.一种装置,包括:
一个或多个计算机处理器;以及
包括指令的非暂态计算机可读存储介质,所述指令在被执行时控制将所述一个或多个计算机处理器配置为:
从视频中接收多个组块中的第一组块,所述多个组块被发送到多个转码单元以进行并行转码;
使用第一转码处理在第一转码单元处对第一组块进行转码以生成第一经转码的子比特流;
接收来自被其它转码单元转码的一个或多个第二组块的第一统计信息;
将来自所述一个或多个第二组块的第一统计信息与来自第一组块的第二统计信息进行比较;
基于所述比较来确定是否执行第二转码处理;
当要执行第二转码处理时,执行第二转码处理对所述第一组块进行重新转码以生成第二经转码的比特流,并且输出该第二经转码的比特流用于被包括在没有第一经转码的子比特流的经组装的比特流中;以及
当不执行第二转码处理时,输出第一经转码的子比特流用于被包括在经组装的比特流中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/030,688 US10798393B2 (en) | 2018-07-09 | 2018-07-09 | Two pass chunk parallel transcoding process |
US16/030,688 | 2018-07-09 | ||
PCT/US2019/039353 WO2020013990A1 (en) | 2018-07-09 | 2019-06-26 | Two pass chunk parallel transcoding process |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112425178A CN112425178A (zh) | 2021-02-26 |
CN112425178B true CN112425178B (zh) | 2023-04-21 |
Family
ID=69102398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980045934.8A Active CN112425178B (zh) | 2018-07-09 | 2019-06-26 | 两遍组块并行转码处理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10798393B2 (zh) |
EP (1) | EP3821612A4 (zh) |
CN (1) | CN112425178B (zh) |
WO (1) | WO2020013990A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10779017B2 (en) * | 2018-12-10 | 2020-09-15 | Warner Bros. Entertainment Inc. | Method and system for reducing drop-outs during video stream playback |
CN113038279B (zh) * | 2021-03-29 | 2023-04-18 | 京东方科技集团股份有限公司 | 视频转码方法、系统及电子设备 |
US11694655B2 (en) * | 2021-05-20 | 2023-07-04 | Tcl China Star Optoelectronics Technology Co., Ltd. | Video play system, video play device, and video play method |
CN115589488B (zh) * | 2022-09-30 | 2023-09-08 | 摩尔线程智能科技(北京)有限责任公司 | 视频转码系统、方法、gpu以及电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103181184A (zh) * | 2010-10-27 | 2013-06-26 | 高通股份有限公司 | 用于电子装置以节省资源的媒体文件高速缓存 |
CN104125465A (zh) * | 2013-04-26 | 2014-10-29 | 英特尔公司 | 用于协调并行视频代码转换的技术 |
WO2017140946A1 (en) * | 2016-02-17 | 2017-08-24 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
JP2018011197A (ja) * | 2016-07-13 | 2018-01-18 | 日本電信電話株式会社 | 映像配信装置、映像符号化装置、映像配信方法、映像符号化方法、映像配信プログラム及び映像符号化プログラム |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009272706A (ja) * | 2008-04-30 | 2009-11-19 | Toshiba Corp | 動画像トランスコード装置およびその方法 |
ES2373810T3 (es) * | 2008-08-09 | 2012-02-08 | Saffron Digital Limited | Procesamiento y suministro de datos de video. |
US9083976B2 (en) * | 2008-09-05 | 2015-07-14 | Freescale Semiconductor, Inc. | Processing a video stream in real time based on binary information of the video stream |
US8635357B2 (en) | 2009-09-08 | 2014-01-21 | Google Inc. | Dynamic selection of parameter sets for transcoding media data |
US9338467B1 (en) * | 2010-07-19 | 2016-05-10 | Google Inc. | Parallel video transcoding |
EP2566172A1 (en) | 2011-09-02 | 2013-03-06 | Thomson Licensing | Method and apparatus for adaptive transcoding of multimedia stream |
US9432704B2 (en) * | 2011-11-06 | 2016-08-30 | Akamai Technologies Inc. | Segmented parallel encoding with frame-aware, variable-size chunking |
KR20130108882A (ko) * | 2012-03-26 | 2013-10-07 | 삼성전자주식회사 | 복수의 트랜스코딩 수행시 로드 밸런싱을 위한 스케줄링 장치 및 방법 |
US8928804B2 (en) * | 2012-11-19 | 2015-01-06 | Broadcom Corporation | Managing encoder parameters for parallel transcoding |
US9813706B1 (en) * | 2013-12-02 | 2017-11-07 | Google Inc. | Video content analysis and/or processing using encoding logs |
US20150189222A1 (en) * | 2013-12-30 | 2015-07-02 | Google Inc. | Content-adaptive chunking for distributed transcoding |
US9414100B2 (en) | 2014-03-31 | 2016-08-09 | Arris Enterprises, Inc. | Adaptive streaming transcoder synchronization |
US9288510B1 (en) | 2014-05-22 | 2016-03-15 | Google Inc. | Adaptive video transcoding based on parallel chunked log analysis |
US20160191961A1 (en) * | 2014-12-31 | 2016-06-30 | Imagine Communications Corp. | Fragmented video transcoding systems and methods |
HK1205426A2 (zh) * | 2015-09-24 | 2015-12-11 | Tfi Digital Media Ltd | 種分佈式視頻編碼方法 |
CN106856571B (zh) * | 2015-12-09 | 2019-12-06 | 阿里巴巴集团控股有限公司 | 一种转码方法及装置 |
WO2017165417A1 (en) * | 2016-03-21 | 2017-09-28 | Hulu, LLC | Conversion and pre-processing of spherical video for streaming and rendering |
WO2017166089A1 (en) * | 2016-03-30 | 2017-10-05 | Intel Corporation | Techniques for determining a current location of a mobile device |
US10652627B2 (en) * | 2017-03-31 | 2020-05-12 | Intel Corporation | Controlling digital video bandwidth utilization with a virtualized communication hub |
US12028397B2 (en) * | 2017-08-29 | 2024-07-02 | Comcast Cable Communications, Llc | Bandwidth reduction through duration averaging |
-
2018
- 2018-07-09 US US16/030,688 patent/US10798393B2/en active Active
-
2019
- 2019-06-26 EP EP19834915.1A patent/EP3821612A4/en active Pending
- 2019-06-26 CN CN201980045934.8A patent/CN112425178B/zh active Active
- 2019-06-26 WO PCT/US2019/039353 patent/WO2020013990A1/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103181184A (zh) * | 2010-10-27 | 2013-06-26 | 高通股份有限公司 | 用于电子装置以节省资源的媒体文件高速缓存 |
CN104125465A (zh) * | 2013-04-26 | 2014-10-29 | 英特尔公司 | 用于协调并行视频代码转换的技术 |
WO2017140946A1 (en) * | 2016-02-17 | 2017-08-24 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
JP2018011197A (ja) * | 2016-07-13 | 2018-01-18 | 日本電信電話株式会社 | 映像配信装置、映像符号化装置、映像配信方法、映像符号化方法、映像配信プログラム及び映像符号化プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20200014944A1 (en) | 2020-01-09 |
CN112425178A (zh) | 2021-02-26 |
WO2020013990A1 (en) | 2020-01-16 |
EP3821612A1 (en) | 2021-05-19 |
EP3821612A4 (en) | 2022-11-02 |
US10798393B2 (en) | 2020-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10757158B2 (en) | Feedback optimized video coding parameters | |
CN112425178B (zh) | 两遍组块并行转码处理 | |
US10917653B2 (en) | Accelerated re-encoding of video for video delivery | |
US11218663B2 (en) | Video chunk combination optimization | |
CN114448967B (zh) | 用于视频的配置文件阶梯的自适应转码 | |
US10791366B2 (en) | Fast channel change in a video delivery network | |
CN114449353B (zh) | 用于视频流的基于会话的自适应回放配置文件决策 | |
US11120615B2 (en) | Dynamic rendering of low frequency objects in a virtual reality system | |
US11025987B2 (en) | Prediction-based representation selection in video playback | |
US10469860B1 (en) | Chunk parallel transcoding using overlapping frames | |
US20210051373A1 (en) | Extension bundle generation for recording extensions in video delivery | |
US11140060B2 (en) | Dynamic variation of media segment durations for optimization of network round trip times | |
US20240179331A1 (en) | Optimized video transcoding based on a timing requirement | |
EP4376420A1 (en) | Optimized video transcoding based on a timing requirement | |
US20240212118A1 (en) | Quality measurement between mismatched videos | |
US11909795B1 (en) | Input switching for streaming content |
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 | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: HULU LLC Address before: California, USA Applicant before: HULU, LLC |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |