降帧率的实时转码方法和装置的制造方法

文档序号:10661444阅读:284来源:国知局
降帧率的实时转码方法和装置的制造方法
【专利摘要】本发明公开了一种降帧率的实时转码方法,所述方法包括:根据输入码流的帧率和目标码流的帧率,判断在等间隔抽取的情况下当前帧是否应当被抽取丢弃;如果当前帧应当被抽取丢弃且为参考帧,改为抽取丢弃当前帧之后的第一个非参考帧,如果当前帧应当被抽取丢弃且为非参考帧,则抽取丢弃当前帧;对没有丢弃的当前帧解码获得当前解码帧,根据当前帧的帧类型以及宏块编码信息预测转码帧的帧类型及宏块编码信息以对当前解码帧进行编码。本发明还公开了一种降帧率的实时转码装置。本发明提供的降帧率的实时转码方法和装置,在降帧率的过程中保留参考帧,并预测出当前帧对应的转码帧的帧类型以及宏块编码信息用于转码,实现了高效率的实时转码。
【专利说明】
降帧率的实时转码方法和装置
技术领域
[0001]本发明涉及视频技术领域,尤其涉及一种降帧率的实时转码方法和装置。
【背景技术】
[0002]随着4K电视的普及以及家庭带宽的增加,人们对高质量视频直播的需求也越来越多。4K电视指屏幕显示采用4K分辨率的电视机。4K分辨率是一种新兴的数字电影及数字内容的解析度标准,得名于其横向解析度约为4000像素(pixel),根据不同的应用领域而存在细微差距。4K级别的分辨率可提供880多万像素,至少能提供近千万像素的显示品质,实现电影级的画质,相当于当前顶级的1SOp分辨率的四倍还多,显示细腻度为1SOp的4倍以上。
[0003]当然超高清的代价也是不菲的,4K显示中,每一帧的数据量都达到了50MB,因此4K的实时转码对转码器的资源消耗是巨大的。
[0004]转码的过程本质上是一个先解码、再编码的过程,目的主要是保持与观众的终端设备的视频编码格式一致,以及适应不同的网络带宽、不同的终端处理能力和不同的用户需求。
[0005]在降帧率转码的情况下,通常是等间隔地抽取要丢弃的帧,例如输入码流为60帧/秒,编码的目标码流为30帧/秒,则需要每隔一帧就丢弃一帧,每秒共需要丢弃30帧。现有这种降帧率的实时转码方式,转码效率不够高,因此有必要提出一种高效率的降帧率的实时转码技术方案。

【发明内容】

[0006]本发明的一个目的是提供一种降帧率的实时转码的新技术方案,能够有较高的转码效率。
[0007]根据本发明的第一方面,提供了一种降帧率的实时转码方法,包括以下步骤:
[0008]根据输入码流的帧率和目标码流的帧率,判断在等间隔抽取的情况下,当前帧是否应当被抽取丢弃;
[0009]如果当前帧应当被抽取丢弃并且当前帧为参考帧,则保留当前帧并改为抽取丢弃当前帧之后的第一个非参考帧;如果当前帧应当被抽取丢弃并且当前帧为非参考帧,则抽取丢弃当前帧;
[0010]如果当前帧没有被抽取丢弃,则对当前帧进行解码获得当前解码帧,并在解码过程中获取当前帧的帧类型以及宏块编码信息,根据当前帧的帧类型以及宏块编码信息预测当前帧对应的转码帧的帧类型及宏块编码信息,按照预测出的转码帧的帧类型及宏块编码信息对所述当前解码帧进行编码。
[0011]进一步,所述输入码流采用H.264视频编码格式;将当前帧的帧类型作为当前帧对应的转码帧的帧类型,其中所述帧类型包括帧内预测编码帧、前向预测编码帧或双向预测编码帧。
[0012]进一步,对所述帧内预测编码帧的帧内编码宏块进行编码时,预先计算以8X8分块模式进行编码的编码代价;从所述输入码流中获取与所述帧内预测编码帧的当前帧内编码宏块位置相同的宏块对应的原分块模式;根据所述原分块模式和所述编码代价对所述帧内编码宏块的编码模式进行选择。
[0013]进一步,对所述前向预测编码帧进行编码时,从所述输入码流中获取与所述前向预测编码帧的当前编码宏块位置相同的宏块对应的原编码模式;根据所述原编码模式进行运动估计,从而得到运动矢量;根据所述运动矢量对所述前向预测编码帧进行运动补偿预测编码。
[0014]进一步,对所述双向预测编码帧进行编码时,从所述输入码流中获取与所述双向预测编码帧的当前编码宏块位置相同的宏块对应的原编码模式;根据所述原编码模式以及默认开启的B_DIRECT模式选择最优的所述双向预测编码帧的编码模式。
[0015]根据本发明的第二方面,提供了一种降帧率的实时转码装置,包括帧抽取模块、解码模块、以及编码模块;
[0016]所述帧抽取模块,用于根据输入码流的帧率和目标码流的帧率,判断在等间隔抽取的情况下,当前帧是否应当被抽取丢弃;以及,如果当前帧应当被抽取丢弃并且当前帧为参考帧,则保留当前帧并改为抽取丢弃当前帧之后的第一个非参考帧,如果当前帧应当被抽取丢弃并且当前帧为非参考帧,则抽取丢弃当前帧;
[0017]所述解码模块,用于在当前帧没有被抽取丢弃的情况下,对当前帧进行解码获得当前解码帧,并在解码过程中获取当前帧的帧类型以及宏块编码信息;
[0018]所述编码模块,用于在当前帧没有被抽取丢弃的情况下,根据当前帧的帧类型以及宏块编码信息预测当前帧对应的转码帧的帧类型及宏块编码信息,按照预测出的转码帧的帧类型及宏块编码信息对所述当前解码帧进行编码。
[0019]进一步,所述输入码流采用H.264视频编码格式;所述编码模块,用于将当前帧的帧类型作为当前帧对应的转码帧的帧类型,其中所述帧类型包括帧内预测编码帧、前向预测编码帧或双向预测编码帧。
[0020]进一步,所述编码模块,进一步用于,对所述帧内预测编码帧的帧内编码宏块进行编码时,预先计算以8 X 8分块模式进行编码的编码代价;从所述输入码流中获取与所述帧内预测编码帧的当前帧内编码宏块位置相同的宏块对应的原分块模式;根据所述原分块模式和所述编码代价对所述帧内编码宏块的编码模式进行选择。
[0021]进一步,所述编码模块,进一步用于,对所述前向预测编码帧进行编码时,从所述输入码流中获取与所述前向预测编码帧的当前编码宏块位置相同的宏块对应的原编码模式;根据所述原编码模式进行运动估计,从而得到运动矢量;根据所述运动矢量对所述前向预测编码帧进行运动补偿预测编码。
[0022]进一步,所述编码模块,进一步用于,对所述双向预测编码帧进行编码时,从所述输入码流中获取与所述双向预测编码帧的当前编码宏块位置相同的宏块对应的原编码模式;根据所述原编码模式以及默认开启的8_011?(:1'模式选择最优的所述双向预测编码帧的编码模式。
[0023]本发明提供的降帧率的实时转码方法和装置,在降帧率的过程中保留参考帧,然后进行编码信息继承,预测出当前帧对应的转码帧的帧类型以及宏块编码信息用于转码,实现了高效率的实时转码。可选地,本发明通过预测宏块的编码模式和/或运动矢量,实现了高质量的实时转码。可选地,本发明的转码方法及装置在减少转码时间的同时保持较高的视频输出质量。
[0024]通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
【附图说明】
[0025]被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
[0026]图1示出了本发明第一实施例提供的降帧率的实时转码方法的流程图。
[0027]图2示出了本发明第二实施例提供的预测转码帧的编码信息的流程图。
[0028]图3示出了本发明第三实施例提供的预测转码帧的编码信息的流程图。
[0029]图4示出了本发明第四实施例提供的预测转码帧的编码信息的流程图。
[0030]图5示出了本发明实施例提供的降帧率的实时转码装置的框图。
[0031 ]图6示出了可用于实现本发明实施例的直播平台的硬件配置的例子的框图。
【具体实施方式】
[0032]现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
[0033]以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
[0034]对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
[0035]在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
[0036]应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0037]本发明实施例应用于实时转码系统,尤其适用于4K的实时转码。
[0038]实施例一:
[0039]参考图1所示,本发明实施例提供了一种降帧率的实时转码方法,包括以下步骤:
[0040]步骤1、根据输入码流的帧率和目标码流的帧率,判断在等间隔抽取的情况下,当前帧是否应当被抽取丢弃。
[0041]步骤2、如果当前帧应当被抽取丢弃并且当前帧为参考帧,则保留当前帧并改为抽取丢弃当前帧之后的第一个非参考帧;如果当前帧应当被抽取丢弃并且当前帧为非参考帧,则抽取丢弃当前帧。
[0042]本发明在降低帧率的过程中仍然保留参考帧。例如,如果输入码流为60帧/秒,转码的目标码流是为40帧/秒,在等间隔抽取的情况下,应当每隔2帧就抽取丢弃I帧,例如抽取丢弃第3、6、9.....57、60帧;假设当前帧为第9帧,在等间隔抽取的情况下应当被抽取丢弃,但由于第9帧为参考帧,则保留第9帧,改为抽取丢弃第9帧之后的第一个非参考帧(例如第10帧为非参考帧,则改为抽取丢弃第10帧),如果第9帧为非参考帧,则抽取丢弃第9帧。通过步骤I和步骤2的降帧方法,在降低帧率的过程中保留了参考帧。
[0043]步骤3、如果当前帧没有被抽取丢弃,则对当前帧进行解码获得当前解码帧,并在解码过程中获取当前帧的帧类型以及宏块编码信息,根据当前帧的帧类型以及宏块编码信息预测当前帧对应的转码帧的帧类型及宏块编码信息,按照预测出的转码帧的帧类型及宏块编码信息对所述当前解码帧进行编码。
[0044]步骤3的核心在于,对当前解码帧进行编码之前,获取输入码流的原编码信息(包括帧类型以及宏块编码信息),并根据所述原编码信息进行编码信息继承,从而实现编码信息预测用以进行后续高质量的编码。
[0045]本发明的实施例中,编码默认采用H.264视频编码格式。输入码流的帧类型包括帧内预测编码帧(I帧)、前向预测编码帧(P帧)以及双向预测编码帧(B帧),其中帧内预测编码帧(I帧)为参考帧,前向预测编码帧(P帧)和双向预测编码帧(B帧)为非参考帧。
[0046]数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。一帧就是一副静止的画面,连续的帧就形成动画,如电视图像等。
[0047]在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。I帧是帧内预测编码帧,属于帧内压缩,I帧画面完整保留,解码时只需要本帧数据就可以完成。
[0048]P帧为向前预测编码帧,属于帧间编码。P帧表示的是这一帧跟之前一个参考帧的差别,残差数据加上通过前向运动补偿得到的预测数据来重构当前P帧。
[0049]B帧是双向差别帧,也就是B帧记录的是本帧与前后参考帧的差别,解码时既需要前向参考帧又需要后向参考帧,通过残差数据加上通过前-后向运动补偿得到的预测数据来重构当前B帧。
[0050]在本发明的一个实施例中,所述宏块编码信息包括原始输入码流中每一宏块的编码模式、参考帧以及运动矢量,以使后续编码继承这些编码信息,实现高效的编码预测。
[0051]在步骤3中,根据当前帧的帧类型以及宏块编码信息预测当前帧对应的转码帧的帧类型及宏块编码信息,当采用H.264作为视频编码格式时,是将当前帧的帧类型预测为当前帧对应的转码帧的帧类型,即当前帧的转码帧的帧类型和当前帧的帧类型一致。对所述输入码流进行转码包括对帧内预测编码帧、前向预测编码帧以及双向预测编码帧的转码:
[0052]对所述帧内预测编码帧(I帧)的帧内编码宏块进行编码时,预先计算以8X8分块模式进行编码的编码代价;从所述输入码流中获取与所述帧内预测编码帧的当前帧内编码宏块位置相同的宏块对应的原分块模式;根据所述原分块模式和所述编码代价对所述帧内编码宏块的编码模式进行选择。
[0053]对所述前向预测编码帧(P帧)进行编码时,从所述输入码流中获取与所述前向预测编码帧的当前编码宏块位置相同的宏块对应的原编码模式;根据所述原编码模式进行运动估计,从而得到运动矢量;根据所述运动矢量对所述前向预测编码帧进行运动补偿预测编码。
[0054]对所述双向预测编码帧(B帧)进行编码时,从所述输入码流中获取与所述双向预测编码帧的当前编码宏块位置相同的宏块对应的原编码模式;根据所述原编码模式以及默认开启的8_011^(^模式选择最优的所述双向预测编码帧的编码模式。
[0055]本发明提供的降帧率的实时转码方法,在降帧率的过程中保留参考帧,然后进行编码信息继承,预测出当前帧对应的转码帧的帧类型以及宏块编码信息用于转码,实现了高效率的实时转码。
[0056]实施例二
[0057]图2是本发明实施例二的技术流程图,实施例二是上述步骤3中,对所述帧内预测编码帧(I帧)的帧内编码宏块进行编码的具体示例。I帧编码采用帧内预测模式进行编码,分块模式可以划分为Ι_16χ16,Ι_8χ8,Ι_4χ4。为了保证视频质量,通常会遍历所有的编码模式来选择最优的模式,这无疑会在很大程度上增加编码时间。但I帧作为参考帧,所以要优先保证更好的视频质量。
[0058]步骤210:对当前宏块进行编码之前,预先计算以Ι_8χ8分块模式进行编码的编码代价;
[0059]由于Ι_8χ8只在H.264-High-prof i Ie中定义,有些输入码流并未采用此模式,而1_8x8是在I_16xl6,I_4x4之间折中的选择,所以为了更好的保证视频质量,所以所述当前编码宏块进行编码时,预先计算I_8x8的编码代价(cost);
[0060]步骤220:从所述输入码流中获取与所述当前宏块的相同位置的宏块对应的原分块模式,并根据所述原分块模式和所述编码代价对所述帧内编码宏块的编码模式进行选择。
[0061 ]若所述原分块模式为I_8x8,则以I_8x8分块模式对所述当前宏块进行编码;
[0062]若所述原分块模式为16X16,则以16X16分块模式对所述当前宏块进行编码;
[0063]若所述原分块模式为4X4,,比较I_4x4与预先计算的I_8x8的cost,以cost较小的作为真正的编码模式。
[0064]本发明实施例中,通过判断所述输入码流中与当前编码宏块位置相同的编码宏块的编码模式,并结合预先计算以I_8x8模式进行编码的编码代价,实现了 I帧最优编码模式的快速选择,提高了编码效率以及编码视频质量。
[0065]实施例三
[0066]图3是本发明实施例三的技术流程图,实施例三是上述步骤3中,对所述前向预测编码帧(P帧)进行编码的具体示例。
[0067]由于P帧采用前向参考帧编码和帧内编码的混合模式,原始输入码流对应位置宏块的运动向量有很高的可利用性,因此,本发明实施例中,所以将所述输入码流的MV(Mot1n Vector,即运动矢量)作为后续运动估计的起始参考点。
[0068]步骤310:从所述输入码流中获取与所述前向预测编码帧的当前编码宏块位置相同的宏块对应的原编码模式;
[0069]若所述原编码模式为帧内编码宏块(INTRA块),则所述当前编码宏块采用与I帧的帧内编码模块相同的编码策略进行编码。
[0070]若所述原编码模式为SKIP类型的宏块(P_SKIP),则判断所述当前编码宏块是否适合进行P_SKIP编码,若适合,则将所述当前编码宏块的编码模式标记Sp_skip。
[0071]若所述原编码模式为P_16xl6,则所述当前编码宏块只进行?_51(1?和?_16116的模式决策,以COSt最小的作为最后的实际编码模式。
[0072]若所述原编码模式为P_16x8,则所述当前编码宏块只进行?_51(1?和?_16#的模式决策,以cost最小的作为最后的实际编码模式。
[0073]若所述原编码模式为P_8xl6,则所述当前编码宏块只进行?_51(1?和?_8116的模式决策,以COSt最小的作为最后的实际编码模式。
[0074]若所述原编码模式的编码模式为P_8x8,则所述当前编码宏块只进行?_31(1?和?_16116和?_818的模式决策。
[0075]步骤320:根据所述原编码模式进行运动估计,从而得到运动矢量;
[0076]在帧间预测编码中,由于活动图像邻近帧中的景物存在着一定的相关性。因此,可将活动图像分成若干块或宏块,并设法搜索出每个块或宏块在邻近帧图像中的位置,并得出两者之间的空间位置的相对偏移量,得到的相对偏移量就是通常所指的运动矢量,得到运动矢量的过程被称为运动估计。
[0077]运动矢量和经过运动匹配后得到的预测误差通过量化-变换发送到解码端,在解码端按照运动矢量指明的位置,从已经解码的邻近参考帧图像中找到相应的块或宏块,和预测误差相加后就可以重构当前宏块。
[0078]本发明实施例中,若所述原编码模式为SKIP类型的宏块(P_SKIP),以MV(0,0)作为搜索候选运动矢量的起始点;
[0079]若所述原编码模式为?_16116、?_1618、?_8116或?_818,以所述当前编码宏块在所述输入码流中对应位置的宏块的MV作为搜索候选MV的起始点。
[0080]步骤330:根据所述运动矢量对所述前向预测编码帧进行运动补偿预测编码。
[0081]本实施例中,利用原始输入码流对应位置宏块的运动向量对当前编码宏块进行运动估计,可以相当大的程度上减少编码时间,而且可以将实际编码运动搜索窗口,限制在一个比较小的范围内,进一步提高运动估计的效率。
[0082]实施例四
[0083]图4是本发明实施例四的技术流程图,实施例四是上述步骤3中,对所述双向预测编码帧(B帧)进行编码的具体示例:
[0084]步骤410:禁用8_1618和8_8116两种编码模式并默认开启B_DIRECT模式;
[0085]B帧类似于P帧的编码,只是可以支持后向参考帧。所以模式选择较P帧而言也更加复杂。在实际测试当中,由于116#和8_8116所占的比重不足5%,而且带来的码率节省也十分有限(不同内容的测试序列可能结果也会不同,通常也不会超过5% ),所以在实际转码系统当中禁用[1618和8_8116两种编码模式并默认开启B_DIRECT模式。
[0086]步骤420:从所述输入码流中获取与所述双向预测编码帧的当前编码宏块位置相同的宏块对应的原编码模式,根据所述原编码模式以及默认开启的B_DIRECT模式选择最优的所述双向预测编码帧的编码模式。
[0087]若所述原编码模式为INTRA块(帧内编码宏块),则所述当前编码宏块采用与I帧INTRA相同的编码策略,选择最优的INTRA预测模式与B_DIRECT模式进行比较,以cost最小的,作为最终的编码模式;
[0088]若所述原编码模式为B_SKIPSB_DIRECT,则所述当前编码宏块只进行B_DIRECT模式的预先判别以及B_16xl6下ref O的模式判决,以cost最小的,作为最终的编码模式;
[0089]若所述原编码模式为B_16xl6,则所述当前编码宏块只进行B_DIRECT模式的预先判别以&B_16xl6的模式判决,以对应位置块的参考帧作为候选参考帧,以cost最小的,作为最终的编码模式;
[0090]若所述原编码模式为B_8x8,则所述当前编码宏块只进行B_DIRECT模式的预先判别以及B_8x8的模式判决,以对应位置块的参考帧作为候选参考帧,以cost最小的,作为最终的编码模式;
[0091]本实施例中,通过获取与所述双向预测编码帧的当前编码宏块位置相同的宏块对应的原编码模式,预测所述当前编码块的编码模式,在减少转码的时间的同时保持较高的视频输出质量。
[0092]与本发明实施例提供的降帧率的实时转码方法相对应的,本发明实施例还提供了一种降帧率的实时转码装置,参考图5所示,本发明的降帧率的实时转码装置包括帧抽取模块11、解码模块102、以及编码模块103。
[0093]所述帧抽取模块101,用于根据输入码流的帧率和目标码流的帧率,判断在等间隔抽取的情况下,当前帧是否应当被抽取丢弃;以及,如果当前帧应当被抽取丢弃并且当前帧为参考帧,则保留当前帧并改为抽取丢弃当前帧之后的第一个非参考帧,如果当前帧应当被抽取丢弃并且当前帧为非参考帧,则抽取丢弃当前帧。
[0094]所述解码模块102,用于在当前帧没有被抽取丢弃的情况下,对当前帧进行解码获得当前解码帧,并在解码过程中获取当前帧的帧类型以及宏块编码信息。
[0095]所述编码模块103,用于在当前帧没有被抽取丢弃的情况下,根据当前帧的帧类型以及宏块编码信息预测当前帧对应的转码帧的帧类型及宏块编码信息,按照预测出的转码帧的帧类型及宏块编码信息对所述当前解码帧进行编码。
[0096]所述输入码流采用H.264视频编码格式;所述编码模块,用于将当前帧的帧类型作为当前帧对应的转码帧的帧类型,其中所述帧类型包括帧内预测编码帧、前向预测编码帧或双向预测编码帧。
[0097]所述编码模块103,进一步用于,对所述帧内预测编码帧的帧内编码宏块进行编码时,预先计算以8X8分块模式进行编码的编码代价;从所述输入码流中获取与所述帧内预测编码帧的当前帧内编码宏块位置相同的宏块对应的原分块模式;根据所述原分块模式和所述编码代价对所述帧内编码宏块的编码模式进行选择。
[0098]所述编码模块103,进一步用于,对所述前向预测编码帧进行编码时,从所述输入码流中获取与所述前向预测编码帧的当前编码宏块位置相同的宏块对应的原编码模式;根据所述原编码模式进行运动估计,从而得到运动矢量;根据所述运动矢量对所述前向预测编码帧进行运动补偿预测编码。
[0099]所述编码模块103,进一步用于,对所述双向预测编码帧进行编码时,从所述输入码流中获取与所述双向预测编码帧的当前编码宏块位置相同的宏块对应的原编码模式;根据所述原编码模式以及默认开启的B_DIRECT模式选择最优的所述双向预测编码帧的编码模式。
[0100]图5所示装置可以执行图1?图4所示实施例的方法,实现原理和技术效果参考图1?图4所示实施例,不再赘述。
[0101]本发明还提供了一种直播平台,包括如前所述的实时转码装置。图6显示了可用于实现本发明实施例的直播平台的硬件配置的例子的框图。
[0102]如图6所示,直播平台包括计算装置1110。计算装置1110包含通过系统总线1121连接的处理单元1120、系统存储器1130、不可拆卸非易失性存储器接口 1140、可拆卸非易失性存储器接口 1150、用户输入接口 1160、网络接口 1170、视频接口 1190和输出外设接口 1195。
[0103]其中,某个存储器用于存储指令,所述指令用于控制处理单元1120进行操作以执行本发明的降帧率的实时转码方法。
[0104]系统存储器1130包含ROM(只读存储器)1131和RAM(随机存取存储器)1132A1S(基本输入输出系统)1133驻留于ROM 1131中。操作系统1134、应用程序1135、其它的程序模块1136和一些程序数据1137驻留于RAM 1132中。
[0105]诸如硬盘的不可拆卸非易失性存储器1141与不可拆卸非易失性存储器接口1140连接。例如,不可拆卸非易失性存储器1141可存储操作系统1144、应用程序1145、其它的程序模块1146和一些程序数据1147。
[0106]诸如软盘驱动器1151和⑶-ROM驱动器1155的可拆卸非易失性存储器与可拆卸非易失性存储器接口 1150连接。例如,软盘可被插入软盘驱动器1151中,并且,CD(光盘)可被插入CD-ROM驱动器1155中。
[0107]诸如鼠标1161和键盘1162的输入设备与运维管理接口 1160连接。
[0108]计算装置1110可通过网络接口 1170与远程计算装置1180连接。例如,网络接口1170可通过局域网络1171与远程计算装置1180连接。作为替代方案,网络接口 1170可与调制解调器(调制器-解调器)1172连接,并且调制解调器1172通过广域网络1173与远程计算装置1180连接。
[0109]远程计算装置1180可包含存储远程应用程序1185的诸如硬盘的存储器1181。
[0110]视频接口1190与监视器1191连接。
[0111]输出外设接口 1195与打印机1196和扬声器1197连接。
[0112]图6所示的直播后台仅是解释性的,并且决不是为了要限制本发明、其应用或用途。
[0113]本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0114]计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是一一但不限于一一电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0115]这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0116]用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言一诸如Smalltalk、C++等,以及常规的过程式编程语言一诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
[0117]这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0118]这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0119]也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0120]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
[0121]以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
[0122]以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
【主权项】
1.一种降帧率的实时转码方法,其特征在于,包括以下步骤: 根据输入码流的帧率和目标码流的帧率,判断在等间隔抽取的情况下,当前帧是否应当被抽取丢弃; 如果当前帧应当被抽取丢弃并且当前帧为参考帧,则保留当前帧并改为抽取丢弃当前帧之后的第一个非参考帧;如果当前帧应当被抽取丢弃并且当前帧为非参考帧,则抽取丢弃当前帧; 如果当前帧没有被抽取丢弃,则对当前帧进行解码获得当前解码帧,并在解码过程中获取当前帧的帧类型以及宏块编码信息,根据当前帧的帧类型以及宏块编码信息预测当前帧对应的转码帧的帧类型及宏块编码信息,按照预测出的转码帧的帧类型及宏块编码信息对所述当前解码帧进行编码。2.根据权利要求1所述的方法,其特征在于,所述输入码流采用H.264视频编码格式;将当前帧的帧类型作为当前帧对应的转码帧的帧类型,其中所述帧类型包括帧内预测编码帧、前向预测编码帧或双向预测编码帧。3.根据权利要求2所述的方法,其特征在于,对所述帧内预测编码帧的帧内编码宏块进行编码时,预先计算以8X8分块模式进行编码的编码代价; 从所述输入码流中获取与所述帧内预测编码帧的当前帧内编码宏块位置相同的宏块对应的原分块模式; 根据所述原分块模式和所述编码代价对所述帧内编码宏块的编码模式进行选择。4.根据权利要求2所述的方法,其特征在于,对所述前向预测编码帧进行编码时,从所述输入码流中获取与所述前向预测编码帧的当前编码宏块位置相同的宏块对应的原编码模式; 根据所述原编码模式进行运动估计,从而得到运动矢量; 根据所述运动矢量对所述前向预测编码帧进行运动补偿预测编码。5.根据权利要求2所述的方法,其特征在于,对所述双向预测编码帧进行编码时,从所述输入码流中获取与所述双向预测编码帧的当前编码宏块位置相同的宏块对应的原编码模式; 根据所述原编码模式以及默认开启的8_011^(^模式选择最优的所述双向预测编码帧的编码模式。6.—种降帧率的实时转码装置,其特征在于,包括帧抽取模块、解码模块、以及编码模块; 所述帧抽取模块,用于根据输入码流的帧率和目标码流的帧率,判断在等间隔抽取的情况下,当前帧是否应当被抽取丢弃;以及,如果当前帧应当被抽取丢弃并且当前帧为参考帧,则保留当前帧并改为抽取丢弃当前帧之后的第一个非参考帧,如果当前帧应当被抽取丢弃并且当前帧为非参考帧,则抽取丢弃当前帧; 所述解码模块,用于在当前帧没有被抽取丢弃的情况下,对当前帧进行解码获得当前解码帧,并在解码过程中获取当前帧的帧类型以及宏块编码信息; 所述编码模块,用于在当前帧没有被抽取丢弃的情况下,根据当前帧的帧类型以及宏块编码信息预测当前帧对应的转码帧的帧类型及宏块编码信息,按照预测出的转码帧的帧类型及宏块编码信息对所述当前解码帧进行编码。7.根据权利要求6所述的装置,其特征在于,所述输入码流采用H.264视频编码格式;所述编码模块,用于将当前帧的帧类型作为当前帧对应的转码帧的帧类型,其中所述帧类型包括帧内预测编码帧、前向预测编码帧或双向预测编码帧。8.根据权利要求7所述的装置,其特征在于,所述编码模块,进一步用于,对所述帧内预测编码帧的帧内编码宏块进行编码时,预先计算以8X8分块模式进行编码的编码代价; 从所述输入码流中获取与所述帧内预测编码帧的当前帧内编码宏块位置相同的宏块对应的原分块模式; 根据所述原分块模式和所述编码代价对所述帧内编码宏块的编码模式进行选择。9.根据权利要求7所述的装置,其特征在于,所述编码模块,进一步用于,对所述前向预测编码帧进行编码时,从所述输入码流中获取与所述前向预测编码帧的当前编码宏块位置相同的宏块对应的原编码模式; 根据所述原编码模式进行运动估计,从而得到运动矢量; 根据所述运动矢量对所述前向预测编码帧进行运动补偿预测编码。10.根据权利要求7所述的装置,其特征在于,所述编码模块,进一步用于,对所述双向预测编码帧进行编码时,从所述输入码流中获取与所述双向预测编码帧的当前编码宏块位置相同的宏块对应的原编码模式; 根据所述原编码模式以及默认开启的8_011^(^模式选择最优的所述双向预测编码帧的编码模式。
【文档编号】H04N21/4402GK106028139SQ201610323809
【公开日】2016年10月12日
【申请日】2016年5月16日
【发明人】白茂生, 蔡砚刚, 魏伟
【申请人】乐视控股(北京)有限公司, 乐视云计算有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1