CN103918270B - 用于视频编码管线的系统、方法和计算机程序产品 - Google Patents

用于视频编码管线的系统、方法和计算机程序产品 Download PDF

Info

Publication number
CN103918270B
CN103918270B CN201180073798.7A CN201180073798A CN103918270B CN 103918270 B CN103918270 B CN 103918270B CN 201180073798 A CN201180073798 A CN 201180073798A CN 103918270 B CN103918270 B CN 103918270B
Authority
CN
China
Prior art keywords
frames
frame
estimation
reconstruction
executed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201180073798.7A
Other languages
English (en)
Other versions
CN103918270A (zh
Inventor
S-H·李
J·周
N·路
J·D·坦纳
C·D·李
H·江
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN103918270A publication Critical patent/CN103918270A/zh
Application granted granted Critical
Publication of CN103918270B publication Critical patent/CN103918270B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/436Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

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

用于视频编码管线的系统、方法和计算机程序产品
背景技术
视频编码可能包括两个过程,模式决定(包括运动估计)和比特流打包(包括帧重建)。这些过程可以按照管线的方式实现。所述模式决定过程可以在可编程核心上运行,而比特流打包可以在硬件中实现。可选地,这些过程可以在包括向图形处理单元(GPU)卸载一些任务的中央处理单元(CPU)的架构上运行。例如,比特流打包可以在CPU上运行,而模式决定可以在GPU上执行。
模式决定和比特流打包操作之间的交互包括会减慢编码过程的相互依赖性。这一两级管线可以是基于图片的,其中可以由模式决定逻辑处理整个帧;然后由比特流打包逻辑处理该整个帧。所述比特流打包逻辑可以等待模式决定逻辑完成该帧的处理以便访问由该模式决定逻辑产生的诸如宏块模式的运动向量和附加信息。所述模式决定逻辑可以等待对前一帧执行的比特流打包逻辑的完成,因为该模式决定逻辑可以使用重建的帧作为运动估计(ME)的参考。这些依赖性使视频编码过程所要求的时间增加(contribute to),并且会因此影响用户体验。
附图说明
图1是说明管线式模式决定和比特流打包过程的方框图。
图2是说明帧序列的处理的图。
图3是说明帧序列的处理的图。
图4是说明根据实施例的帧序列的处理的图。
图5是说明图4的实施例的示例性处理的流程图。
图6是说明根据实施例的帧序列的处理的图。
图7是说明图6的实施例的示例性处理的流程图。
图8是说明根据可选实施例的帧序列的处理的图。
图9是说明图8的实施例的示例性处理的流程图。
图10是说明根据可选实施例的帧序列的处理的图。
图11是说明图10的实施例的示例性处理的流程图。
图12是说明根据可选实施例的帧序列的处理的图。
图13是说明图12的实施例的示例性处理的流程图。
图14是说明根据可选实施例的帧序列的处理的图。
图15是说明图14的实施例的示例性处理的流程图。
图16是说明根据可选实施例的帧序列的处理的图。
图17是说明图16的实施例的示例性处理的流程图。
图18是说明软件或固件实施例的计算环境的方框图。
在图示中,附图标记的最左侧数字识别该附图标记第一次出现在其中的图。
具体实施方式
现在参照图示来描述实施例,其中相似的附图标记指代相同或功能上相似的元素。尽管讨论了特定的配置和布置,但是应该理解,这仅仅出于说明的目。相关领域的普通技术人员将意识到,在不背离本描述的精神和范围的情况下,可以使用其它配置和布置。对于相关领域的普通技术人员来说显而易见的是,本发明也可以在除本文描述之外的各种其它系统和应用中使用。
本文公开了可以改善视频编码过程的效率的方法、系统和计算机程序产品。对于序列中的各种帧,可以并行执行模式决定处理和比特流打包。这降低了对于模式决定处理逻辑和比特流打包逻辑的空闲时间的量,改善了视频编码器的整体效率。
图1说明了在视频编码中发生的依赖性。可以将帧110输入到模式决定模块120。这一模块可以包括运动估计功能并且产生数据130。数据130可以包括一个或多个运动向量(MV)以及宏块(MB)模式。然后将数据130输入到比特流打包模块140。这一后者模块可以包括帧重建功能。比特流打包模块140可以然后产生重建的帧150。比特流打包处理因此依赖于由模式决定模块120产生的MV和MB模式130。然而,当处理下一帧时,模式决定模块120会要求对于前一帧产生的重建的帧150。重建的帧150可以由模式决定模块120使用作为用于对于下一帧的运动估计目的的参考。
这可以产生图2所示的处理时间线。这一图示说明了在编码顺序上具有IBBPBBP......形式的帧的序列的情况,其中I代表内部帧,B代表双向预测帧,P代表预测帧。在该图示中(并且在后面的所有类似图示中),附加在字母后的数字指示在整个序列中的位置。第一帧为I0,下一帧为B1,接下来为B2,接下来为P3等等。在图2中,每一个帧可以顺序地由模式决定模块(由“ENC”表示)处理并且然后由比特流打包模块(由“PAK”表示)进行处理。当由模式决定(ENC)模块处理帧时,比特流打包(PAK)模块可能是空闲的,并且反之亦然。这适应上面描述的依赖性。对于每一个帧,比特流打包过程等待模式决定过程的完成和输出(即,MV和MB模式)。对于下一帧的模式决定过程等待对于前一帧的比特流打包的完成,以使得在运动估计中可以使用前一帧的重建的帧。
初始,帧I0(或者锚定帧P0)可以由模式决定模块处理。这一帧然后在下一个时间间隔内由比特流打包模式使用由模式决定过程产生的MV和MB模式进行处理。在完成对于I0的比特流打包过程之后,在下一个时间间隔内,可以发生对于下一个帧P3的模式决定过程。所述对于P3的模式决定过程使用由对于帧I0执行的比特流打包过程产生的重建的帧。如图所示,这一交替序列对于随后的帧继续进行。注意到,比特流打包和模式决定模块中的每一个在交替的时间间隔内会是闲置的。
也注意到,在这一图示和后面的类似图示中,编号的时间间隔在长度上可以不相等,但是会是如所需要的那样长以便适应对于给定帧的所指示的处理。
图3示出了对于具有IPPP......形式的一系列帧的类似处理序列。初始,帧I0(或者锚定帧P0)可以由模式决定模块处理。这一帧可以然后在下一个时间间隔内由比特流打包模块使用由模式决定过程产生的MV和MB模式进行处理。在完成对于I0的比特流打包过程之后,在下一个时间间隔内,可以发生对于下一个帧P1的模式决定过程。所述对于P1的模式决定过程使用由对于帧I0执行的比特流打包过程生成的重建的帧。如图所示,这一交替序列对于随后的帧继续进行。仍然注意到,比特流打包和模式决定模块中的每一个在交替的时间间隔内会是闲置的。
在实施例中,可以通过允许模式决定和比特流打包过程的并行操作来改善效率。图4示出了对于IBBPBBP......情况的示例。这里,对于帧B2的模式决定处理不必等待B1的比特流打包的完成。代替使用B1的重建的帧,B2的模式决定处理可以使用来自先前处理的I或P帧的一个或多个重建的帧。在这一实例中,可以使用对于I0或P3的重建的帧。这允许对于B2的模式决定处理与对于B1的比特流打包处理同时发生。P6的模式决定处理不必等待B2的比特流打包的完成;P6的模式决定处理可以使用来自之前的I或P帧的重建的帧,而不是等待B2的重建的帧。结果,在所说明的实施例中,P6的模式决定处理和B2的比特流打包可以同时发生。这一处理基于B帧可能不会用作下面的帧的参考帧的假设。在至少一个视频编码标准中,也允许B帧用作运动估计参考帧。如果将B帧设置为参考帧,则可以按照与P帧相同的方式进行处理。
注意到,图4的帧序列(即,IBBPBBP......)以在每一个P帧前包括两个B帧的重复的子序列为特征。在其它序列中,可能存在在每一个P帧前包括多于两个B帧的子序列。
根据实施例,图5说明了图4的处理。在505,可以在I帧上执行模式决定处理(包括运动估计)。在510,可以在这一帧上执行比特流打包(包括帧重建)。在515,可以在第一个P帧(即,图4的示例中的P3)上执行模式决定处理。在520,可以在这一帧上执行比特流打包。在525,可以在B帧i上执行模式决定处理,其中初始i=1。这一帧在图4中被表示为B1。在530,可以在下一个B帧上执行模式决定处理,这里表示为帧i+1。在这一相同的时间间隔内,在535,可以在B帧i上执行比特流打包。
在540,做出关于在下一个P帧之前是否存在附加B帧要被处理的确定。如果为是,则在545,可以使i加1,并且处理可以在考虑下一个B帧的530和535处继续。如果在下一个P帧之前不存在更多的B帧要被处理,则处理可以在考虑下一个P帧的550处继续。在555,可以在这一下一个P帧上执行模式决定处理。在这一相同的时间间隔内,在560,可以在B帧i+1上执行比特流打包。处理然后可以在其中使i加3的565处继续。然后在520处在P帧上执行比特流打包。
在可选实施例中,B1的模式决定处理可以使用原始帧作为参考而不是P3的重建的帧。在这一情况下,B1的模式决定处理可以不必等待对于P3的比特流打包的完成。这允许B1的模式决定处理与对于P3的比特流打包处理并行发生。可以将这一概念扩展到每一个子序列B......BP中的每第一个B帧。
图6对此进行了说明。这里,B1的模式决定处理可以与对于P3的比特流打包同时发生。仍然是,对于帧B2的模式决定处理不必等待帧B1的比特流打包的完成。代替使用B1的重建的帧,B2的模式决定处理可以使用来自之前处理的I或P帧的一个或多个重建的帧。这允许对于B2的模式决定处理与对于B1的比特流打包处理同时发生。这一模式可以如图所示地继续。
根据实施例,图7说明了图6的处理。在705,可以在I帧上执行模式决定处理(包括运动估计)。在710,可以在这一帧上执行比特流打包(包括帧重建)。在715,可以在第一个P帧(即,图6的示例中的P3)上执行模式决定处理。在720,可以在这一帧上执行比特流打包。同时,在725,可以在B帧i上执行模式决定处理,其中初始i=1。这一帧在图6中被表示为B1。在730,可以在下一个B帧上执行模式决定处理,这里表示为帧i+1。在这一相同的时间间隔内,在735,可以在B帧i上执行比特流打包。
在740,做出关于在下一个P帧之前是否存在附加B帧要被处理的确定。如果为是,在745,使i加1,并且处理可以在考虑下一个B帧的730和735处继续。如果在下一个P帧之前不存在更多的B帧要被处理,则处理可以在考虑下一个P帧的750处继续。在755,在这一下一个P帧上执行模式决定处理。在这一相同的时间间隔内,在760,可以在B帧i+1上执行比特流打包。然后处理可以在使i加3的765处继续。然后,在720,在P帧上执行比特流打包,同时,可以在B帧i上执行模式决定处理。
在可选实施例中,第一个P帧可以使用I0的原始帧用于模式决定处理,而不是由I0的比特流打包产生的重建的帧。这在图8中进行说明。这里,对于P3的模式决定处理可以与I0的比特流打包同时发生。图8的实施例也利用了上面关于图4和图6讨论的并行化。特别地,对于帧B2的模式决定处理不必等待帧B1的比特流打包的完成。代替使用B1的重建的帧,B2的模式决定处理可以使用来自之前处理的I帧或P帧的一个或多个重建的帧。在这一实例中,可以使用对于I0或P3的重建的帧。这允许对于B2的模式决定处理与对于B1的比特流打包处理同时发生。并且,B1的模式决定处理可以使用原始帧作为参考而不是P3的重建的帧。在这一情况下,B1的模式决定处理不必等待对于P3的比特流打包的完成。这允许B1的模式决定处理与对于P3的比特流打包处理并行发生。
根据实施例,图9说明了图8的处理。在905,可以在I帧上执行模式决定处理(包括运动估计)。在910,可以在这一帧上执行比特流打包(包括帧重建)。同时,在915,可以在第一个P帧(即,图8的示例中的P3)上执行模式决定处理。在920,可以在这一帧上执行比特流打包。同时,在925,可以在B帧i上执行模式决定处理,其中初始i=1。这一帧在图8中被表示为B1。在930,可以在下一个B帧上执行模式决定处理,这里被表示为帧i+1。在这一相同的时间间隔内,在935,可以在B帧i上执行比特流打包。
在940,做出关于在下一个P帧之前是否存在附加B帧要被处理的确定。如果为是,则在945,使i加1,并且处理可以在考虑下一个B帧的930和935处继续。如果在下一个P帧之前不存在更多的B帧要被处理,则处理在考虑下一个P帧的950处继续。在955,可以在这一下一个P帧上执行模式决定处理。在这一相同的时间间隔内,在960,可以在B帧i+1上执行比特流打包。然后处理在使i加3的965处继续。接下来,在920,在当前P帧上执行比特流打包,同时,在925,可以在B帧i上执行模式决定处理。
在另一实施例中,可以使用原始帧作为用于整数运动估计的参考,并且可以使用重建的帧作为用于分数运动估计的参考。这可以允许图10所示的并行化。这里,对于第一个P帧的整数运动估计(即P3_i)可以使用原始帧作为运动估计的参考,而不是使用由I0的比特流打包产生的重建的帧。因此对于P3_i的运动估计可以与帧I0的比特流打包并行执行。接下来可以执行对于P帧的分数运动估计(即P3_f)。出于类似的原因,对于第一个B帧的整数运动估计(即B1_i)可以使用原始帧作为运动估计的参考,因此可以与帧P3的比特流打包并行执行。接下来可以执行对于B1帧的分数运动估计(即B1_f)。如图所示,该过程可以按照这一方式继续,其中每一个子序列BB......BP中的初始B帧经历分离的整数和分数运动估计。
图11说明了对于这一实施例的处理。在1105,可以在I帧上执行模式决定处理(包括运动估计)。在1110,可以在这一帧上执行比特流打包(包括帧重建)。同时,在1115,可以在第一个P帧(即,图10的示例中的P3)上执行整数ME。在1117,可以在P3上执行分数ME。在1120,可以在这一帧上执行比特流打包。同时,在1125,可以在B帧i上执行整数运动估计,其中初始i=1。这在图10中如B1_i所示。在1127,可以在B帧i上执行分数ME。这在图10中如B1_f所示。在1130,可以在下一个B帧上执行模式决定处理,这里被表示为B帧i+1。在这一相同的时间间隔期间,在1135,可以在B帧i上执行比特流打包。
在1140,做出关于在下一个P帧之前是否存在附加B帧要被处理的确定。如果为是,则在1145,使i加1,并且处理可以在考虑下一个B帧的1130和1135处继续。如果在下一个P帧之前不存在更多的B帧要被处理,则处理可以在考虑下一个P帧的1150处继续。在1155,在这一下一个P帧上执行模式决定处理。在这一相同的时间间隔期间,在1160,可以在B帧i+1上执行比特流打包。然后处理可以在使i加3的1165处继续。接下来,在1120,可以在P帧上执行比特流打包,同时,在1125,可以在B帧I上执行包括整数ME的模式决定处理。
给定具有形式IPPP......的一系列帧,相似的方案可以用于实现并行处理。图12对此进行了说明。如上面讨论的,可以使用原始帧作为整数运动估计的参考,并且可以使用重建的帧作为用于分数运动估计的参考。这可以允许图12所示的并行化。这里,对于第一个P帧的整数运动估计(即P1_i)可以使用原始帧作为运动估计的参考,而不是使用由I0的比特流打包产生的重建的帧。因此,对于P1_i的运动估计可以与帧I0的比特流打包并行执行。然后,可以使用在I0的比特流打包中重建的帧来执行对于P帧的分数运动估计(即P1_f)。然后,可以使用原始帧而不是将由帧P1的比特流打包产生的重建的帧来执行如P2_i所示的下一个P帧的整数ME。因此,P2的整数ME(即P2_i)可以与P1的比特流打包并行执行。然后,可以使用由P1的比特流打包产生的重建的帧来执行P2的分数ME(即P2_f)。如图所示,处理可以按照这一模式继续。
图13中示出了对于这一实施例的处理。在1310,可以对于I帧I0执行模式决定处理。在1320,可以在P帧i上执行整数ME,其中初始i=1。同时,在1330,可以在I帧上执行比特流打包。在1340,可以在P帧i上执行分数ME。
在1350,可以在P帧i+1上执行整数ME。同时,在1360,可以在P帧i上执行比特流打包。在1370,可以在P帧i+1上执行分数ME。在1380,可以使i加1。然后,处理可以在考虑下一个P帧的1350和1360处继续。
在另一实施例中,可以在运动估计中使用N层分级运动搜索。在这一情况下,对于较低分辨率运动估计,可以使用原始帧而不是由前一帧的比特流打包产生的重建的帧。然而,对于较高分辨率运动估计,可以使用重建的帧。关于低分辨率运动估计,可能不会损失编码效率,因为来自于较低分辨率的运动向量可以仅用于较高分辨率运动估计的搜索中心并且可以随后被改善。
由于对于较低分辨率运动估计可以使用原始帧而不是重建的帧,因此可以如在图14的实施例中示出地实现并行化。这里,对于第一个P帧的低分辨率运动估计(即P3_L)可以使用原始帧作为运动估计的参考,而不是使用由I0的比特流打包产生的重建的帧。因此,可以与帧I0的比特流打包并行地执行P3_L的运动估计。然后可以执行对于P帧的高分辨率运动估计(即P3_H)。类似地,对于第一个B帧的低分辨率运动估计(即B1_L)可以使用原始帧作为运动估计的参考,因此可以与帧P3的比特流打包并行地执行。然后可以执行对于B1帧的高分辨率运动估计(即B1_H)。如所示出的,过程可以按照这一方式继续,其中每一个子序列BB......BP中的初始B帧经历分离的低分辨率和高分辨率运动估计。
图15中说明了对于这一实施例的处理。在1505,可以在I帧上执行模式决定处理(包括运动估计)。在1510,可以在这一帧上执行比特流打包(包括帧重建)。同时,在1515,可以在第一个P帧上执行低分辨率ME(即,图14的示例中的P3_L)。在1517,可以在P3上执行高分辨率ME,即图14中的P3_H。在1520,可以在P3上执行比特流打包。同时,在1525,可以在B帧i上执行低分辨率运动估计,其中初始i=1。这在图14中如B1_L所示。在1527,可以在B帧i上执行高分辨率运动估计。这在图14中如B1_H所示。在1530,可以在下一个B帧上执行模式决定处理,这里表示为B帧i+1。在这一相同的时间间隔期间,在1535,可以在B帧i上执行比特流打包。
在1540,做出关于在下一个P帧之前是否存在额外B帧要被处理的确定。如果为是,则在1545,可以使i加1,并且处理可以在考虑下一个B帧的1530和1535处继续。如果在下一个P帧之前不存在更多的B帧要被处理,则处理可以在考虑下一个P帧的1550处继续。在1555,在这一下一个P帧上执行模式决定处理。在这一相同的时间间隔期间,在1560,可以在B帧i+1上执行比特流打包。然后,处理可以在使i加3的1565处继续。然后,在1520,可以在P帧上执行比特流打包,同时,可以在B帧i上执行包括低分辨率ME的模式决定处理。
也可以将这一概念扩展到具有形式IPP......P的帧序列。这在图16的实施例中进行了说明。这里,对于第一个P帧的低分辨率运动估计(即P1_L)可以使用原始帧作为运动估计的参考,而不是使用由I0的比特流打包产生的重建的帧。因此,对于P1_L的运动估计可以与帧I0的比特流打包并行执行。然后,可以使用在I0的比特流打包中重建的帧来执行对于P帧的高分辨率运动估计(即P1_H)。然后,可以使用原始帧而不是将由帧P1的比特流打包产生的重建的帧来执行如P2_L所示的下一个P帧的低分辨率ME。P2的低分辨率ME(即P2_L)因此可以与P1的比特流打包并行执行。然后,可以使用由P1的比特流打包产生的重建的帧来执行P2的高分辨率ME(即P2_H)。然后,如图所示,处理可以按照这一方式继续。
图17中示出了这一实施例的处理。在1710,可以对于I帧I0执行模式决定处理。在1720,可以在P帧i上执行低分辨率ME,其中初始i=1。同时,在1730,可以在I帧上执行比特流打包。在1740,可以在P帧i上执行高分辨率ME。
在1750,可以在P帧i+1上执行低分辨率ME。同时,在1760,可以在P帧i上执行比特流打包。在1770,可以在P帧i+1上执行高分辨率ME。在1780,可以使i加1。然后,处理可以在考虑下一个P帧的1350和1360处继续。
本文描述的系统、方法和计算机程序产品可以在视频编码器或包括相似功能的其它部件中实现。而且,本文描述的系统、方法和计算机程序产品也可以在个人计算机(PC)、膝上型计算机、超级膝上型计算机或笔记本电脑、平板电脑、触摸板、便携式计算机、手持电脑、掌上电脑、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、智能设备(例如,智能电话、智能平板或智能电视)、移动互联网设备(MID)、消息传送设备、数据通信设备等等的环境中实现。
本文公开的一个或多个特征可以在硬件、软件、固件和它们的组合中实现,包括分立和集成电路逻辑、专用集成电路(ASIC)逻辑以及微控制器,并且也可以实现为特殊领域集成电路封装或集成电路封装的组合的一部分。本文使用的软件一词指的是包括具有存储在其中的计算机程序逻辑以便使计算机系统执行本文公开的一个或多个特征和/或特征的组合的计算机可读介质的计算机程序产品。所述计算机可读介质可以是暂态或非暂态的。暂态计算机可读介质的示例可以是在射频上或在电导体上经过局域网或广域网或者经过诸如以太网的网络传输的数字信号。非暂态计算机可读介质的示例可以是压缩盘、闪存、随机存取存储器(RAM)、只读存储器(ROM)或其它数据存储设备。
图18中说明了比较和归一化功能的软件实施例。所说明的系统1800可以包括一个或多个处理器1820并且可以进一步包括存储器1810的主体。处理器1820可以包括中央处理单元(CPU)和/或图形处理单元(GPU)。存储器1810可以包括可以存储计算机程序逻辑1840的一个或多个计算机可读介质。存储器1810可以例如实现为硬盘和硬驱、诸如压缩盘、只读存储器(ROM)或随机存取存储器(RAM)设备的可移动介质,或者它们的一些组合。处理器1820和存储器1810可以使用本领域普通技术人员已知的几种技术中的任意一种进行通信,例如总线。包含在存储器1810中的计算机程序逻辑1840可以由处理器1820读取和执行。被共同表示为I/O 1830的一个或多个I/O接口和/或I/O设备也可以连接到处理器1820和存储器1810。
计算机程序逻辑1840可以包括模式决定代码1850。这一模块可以负责上述的模式决定处理,包括运动估计。如上所述,在一些实施例中,可以使用原始帧而不是重建的帧来执行运动估计。在这样的情况下,模式决定代码1850可以合适地配置为使用原始帧来执行运动估计。
计算机程序逻辑1840可以包括比特流打包代码1860。这一模块可以负责上述的比特流打包处理,包括帧重建。
计算机程序逻辑1840可以包括调度代码1870。这一模块可以负责给定帧用于模式决定和/或比特流打包处理的调度,其中,如上所述,这些处理有时并行发生。
这一并行化可以通过在不同的部件中执行不同的过程来部分地实现。在实施例中(未示出),模式决定处理可以在软件或固件中实现,而比特流打包可以在硬件中实现。在可选实施例中,比特流打包可以在软件或硬件中实现,而模式决定处理可以在硬件中实现。可选地,比特流打包和模式决定处理可以均在软件/固件中实现,其中,每一个可以在不同的处理器上执行。例如,比特流打包可以在执行在CPU上的软件或固件中实现,而模式决定处理可以在执行在GPU上的软件或固件中实现。
值得注意的是,上面的描述涉及帧编码。然而,可以将上述概念更广泛地应用到其它形式的编码。例如,本领域普通技术人员将理解到,也可以将上面的概念应用于场编码,其中,可以将给定帧划分为顶部场和底部场。这里,编码器可以通过单独地处理顶部场和底部场、将它们看作单独的帧来处理帧。
借助于说明功能、特征和它们之间关系的功能构建方框,本文公开了方法和系统。出于描述的方便,本文任意地定义了这些功能构建方框的至少一些边界。只要合适地执行了特定的功能和它们之间的关系,可以定义可选的边界。
尽管本文公开了各种实施例,但是应该理解,仅通过示例而非限制的方式呈现了这些实施例。对于本领域的普通技术人员来说显而易见的是,在不背离本文公开的方法和系统的精神和范围的情况下,可以做出形式和细节方面的各种改变。因而,权利要求的宽度和范围不应该受限于本文公开的任一示例性实施例。

Claims (15)

1.一种视频编码方法,对于由内部帧I帧以及在所述I帧之后的一组子序列组成的帧的序列,其中,每一个子序列由预测帧P帧以及在编码顺序上在所述P帧之后的第一个和第二个双向预测帧B帧组成,所述方法包括:
在所述I帧上执行模式决定;
在所述I帧上执行重建;
在第一时间间隔期间,在所述I帧上执行所述重建的同时,在所述P帧上执行模式决定;
在所述P帧上执行重建;
在所述第一个B帧上执行模式决定;并且
在继所述第一时间间隔之后的另一时间间隔期间,在所述第一个B帧上执行重建,同时在所述第二个B帧上执行模式决定,其中所述模式决定使用从所述I帧重建的帧和从所述P帧重建的帧中的一个或多个;
其中,在所述I帧的重建期间执行所述P帧的整数运动估计,之后,执行所述P帧的分数运动估计;并且在所述P帧的重建期间执行所述第一个B帧的整数运动估计,之后,执行所述第一个B帧的分数运动估计。
2.如权利要求1所述的方法,其中,
在所述P帧上的重建的执行期间发生在所述第一个B帧上的模式决定的执行。
3.如权利要求2所述的方法,其中,
在所述第一个B帧上的模式决定的执行使用原始帧作为参考。
4.如权利要求1所述的方法,其中,
所述P帧的运动估计还包括分级运动搜索,其中在所述I帧的重建期间执行在第一分辨率下的所述P帧的第一运动估计,之后,基于从所述第一运动估计确定的运动向量,执行在比所述P帧的第一分辨率更高的分辨率下的所述P帧的第二运动估计;并且
所述第一个B帧的运动估计还包括分级运动搜索,其中在所述P帧的重建期间执行在第一分辨率下的所述第一个B帧的第一运动估计,之后,基于从所述第一个B帧的运动估计确定的运动向量,执行在比所述第一个B帧的第一分辨率更高的分辨率下的所述第一个B帧的第二运动估计。
5.如权利要求4所述的方法,其中,
使用原始帧来执行在第一分辨率下的所述P帧和所述第一个B帧的运动估计;并且
使用重建的帧来执行在更高的分辨率下的所述P帧和所述第一个B帧的运动估计。
6.一种视频编码系统,包括:
中央处理器;
图形处理器;以及
一个或多个与所述中央处理器以及所述图形处理器通信的存储器设备,其中,所述存储器设备存储配置为对视频进行编码的多个处理指令,所述视频包括由内部帧I帧以及在所述I帧之后的一组子序列组成的帧的序列,其中,每一个子序列由预测帧P帧以及在编码顺序上在所述P帧之后的第一个和第二个双向预测帧B帧组成,其中:
所述图形处理器执行在所述I帧上的模式决定;
所述中央处理器执行在所述I帧上的重建;
在第一时间间隔期间,在所述中央处理器执行在所述I帧上的重建的同时,所述图形处理器执行在所述P帧上的模式决定;
所述中央处理器执行在所述P帧上的重建;
所述图形处理器执行在所述第一个B帧上的模式决定;以及
在继所述第一时间间隔之后的另一时间间隔期间,所述中央处理器执行在所述第一个B帧上的重建,同时所述图形处理器使用从所述I帧重建的帧和从所述P帧重建的帧中的一个或多个来执行在所述第二个B帧上的模式决定;
其中,在所述I帧的重建期间执行所述P帧的整数运动估计,之后,执行所述P帧的分数运动估计;并且在所述P帧的重建期间执行所述第一个B帧的整数运动估计,之后,执行所述第一个B帧的分数运动估计。
7.如权利要求6所述的系统,其中,
在所述P帧的重建期间发生在所述第一个B帧上的模式决定。
8.如权利要求7所述的系统,其中,
在所述第一个B帧上的模式决定使用原始帧作为参考。
9.如权利要求6所述的系统,其中,
所述P帧的运动估计还包括分级运动搜索,其中在所述I帧的重建期间执行在第一分辨率下的所述P帧的第一运动估计,之后,基于从所述第一运动估计确定的运动向量,执行在比所述P帧的第一分辨率更高的分辨率下的所述P帧的第二运动估计;并且
所述第一个B帧的运动估计还包括分级运动搜索,其中在所述P帧的重建期间执行在第一分辨率下的所述第一个B帧的第一运动估计,之后,基于从所述第一个B帧的运动估计确定的运动向量,执行在比所述第一个B帧的第一分辨率更高的分辨率下的所述第一个B帧的第二运动估计。
10.如权利要求9所述的系统,其中,
使用原始帧来执行在第一分辨率下的所述P帧和所述第一个B帧的运动估计;并且
使用重建的帧来执行在更高的分辨率下的所述P帧和所述第一个B帧的运动估计。
11.一种视频编码装置,对于由内部帧I帧以及在所述I帧之后的一组子序列组成的帧的序列,其中,每一个子序列由预测帧P帧以及在编码顺序上在所述P帧之后的第一个和第二个双向预测帧B帧组成,所述装置包括:
使第一处理器执行在所述I帧上的模式决定的单元;
使第二处理器执行在所述I帧上的重建的单元;
在第一时间间隔期间,在所述第二处理器执行在所述I帧上的重建的同时,使所述第一处理器执行在所述P帧上的模式决定的单元;
使所述第二处理器执行在所述P帧上的重建的单元;
使所述第一处理器执行在所述第一个B帧上的模式决定的单元;以及
在继所述第一时间间隔之后的另一时间间隔期间使所述第二处理器执行在所述第一个B帧上的重建、同时所述第一处理器执行在所述第二个B帧上的模式决定的单元;
其中,在所述I帧的重建期间执行所述P帧的整数运动估计,之后,执行所述P帧的分数运动估计;并且在所述P帧的重建期间执行所述第一个B帧的整数运动估计,之后,执行所述第一个B帧的分数运动估计。
12.如权利要求11所述的装置,其中,
在所述P帧上的重建期间发生在所述第一个B帧上的模式决定。
13.如权利要求12所述的装置,其中,
在所述第一个B帧上的模式决定使用原始帧作为参考。
14.如权利要求11所述的装置,其中,
所述P帧的运动估计还包括分级运动搜索,其中在所述I帧的重建期间执行在第一分辨率下的所述P帧的第一运动估计,之后,基于从所述第一运动估计确定的运动向量,执行在比所述P帧的第一分辨率更高的分辨率下的所述P帧的第二运动估计;并且
所述第一个B帧的运动估计还包括分级运动搜索,其中在所述P帧的重建期间执行在第一分辨率下的所述第一个B帧的第一运动估计,之后,基于从所述第一个B帧的运动估计确定的运动向量,执行在比所述第一个B帧的第一分辨率更高的分辨率下的所述第一个B帧的第二运动估计。
15.一种计算机可读介质,在其上存储有指令,所述指令当被计算机执行时使得所述计算机实施根据权利要求1-5中的任一项所述的方法。
CN201180073798.7A 2011-09-30 2011-09-30 用于视频编码管线的系统、方法和计算机程序产品 Expired - Fee Related CN103918270B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/054386 WO2013048471A1 (en) 2011-09-30 2011-09-30 Systems, methods, and computer program products for a video encoding pipeline

Publications (2)

Publication Number Publication Date
CN103918270A CN103918270A (zh) 2014-07-09
CN103918270B true CN103918270B (zh) 2018-08-21

Family

ID=47996202

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180073798.7A Expired - Fee Related CN103918270B (zh) 2011-09-30 2011-09-30 用于视频编码管线的系统、方法和计算机程序产品

Country Status (6)

Country Link
US (1) US10602185B2 (zh)
EP (1) EP2761870A4 (zh)
JP (1) JP5905582B2 (zh)
CN (1) CN103918270B (zh)
TW (1) TWI517677B (zh)
WO (1) WO2013048471A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5905582B2 (ja) 2011-09-30 2016-04-20 インテル コーポレイション ビデオ符号化パイプラインのためのシステム、方法及びコンピュータプログラム
JP6724581B2 (ja) 2016-06-15 2020-07-15 富士通株式会社 画像符号化装置、方法、及びプログラム
US10602174B2 (en) 2016-08-04 2020-03-24 Intel Corporation Lossless pixel compression for random video memory access
US10715818B2 (en) * 2016-08-04 2020-07-14 Intel Corporation Techniques for hardware video encoding
US10142633B2 (en) 2016-12-21 2018-11-27 Intel Corporation Flexible coding unit ordering and block sizing
US10291925B2 (en) 2017-07-28 2019-05-14 Intel Corporation Techniques for hardware video encoding
US11025913B2 (en) 2019-03-01 2021-06-01 Intel Corporation Encoding video using palette prediction and intra-block copy
US10855983B2 (en) 2019-06-13 2020-12-01 Intel Corporation Encoding video using two-stage intra search

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101547354A (zh) * 2008-03-26 2009-09-30 联发科技股份有限公司 实现运动估计的视频编码器与其运动估计方法
CN101621696A (zh) * 2008-06-30 2010-01-06 英特尔公司 允许分数视频运动估计和双向视频运动估计的选择性使用

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0714212A3 (en) * 1994-11-21 1999-03-31 SICAN, GESELLSCHAFT FÜR SILIZIUM-ANWENDUNGEN UND CAD/CAT NIEDERSACHSEN mbH Video decoder using concurrent processing and resource sharing
US6101276A (en) * 1996-06-21 2000-08-08 Compaq Computer Corporation Method and apparatus for performing two pass quality video compression through pipelining and buffer management
JP3263901B2 (ja) 1997-02-06 2002-03-11 ソニー株式会社 画像信号符号化方法及び装置、画像信号復号化方法及び装置
JP2000295616A (ja) 1999-04-08 2000-10-20 Matsushita Electric Ind Co Ltd 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法及びプログラム記録媒体
JP4414904B2 (ja) 2004-04-16 2010-02-17 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法、及び動画像復号プログラム
US20060256854A1 (en) * 2005-05-16 2006-11-16 Hong Jiang Parallel execution of media encoding using multi-threaded single instruction multiple data processing
US8243804B2 (en) * 2005-12-01 2012-08-14 Lsi Corporation Hierarchical motion estimation for images with varying horizontal and/or vertical dimensions
JP4822940B2 (ja) * 2006-06-02 2011-11-24 キヤノン株式会社 画像処理装置及び画像処理方法
JP2008088106A (ja) 2006-10-02 2008-04-17 Sumitomo Chemical Co Ltd エポキシ化合物の製造方法
US8451897B2 (en) 2006-12-04 2013-05-28 Atmel Corporation Highly parallel pipelined hardware architecture for integer and sub-pixel motion estimation
ES2561714T3 (es) 2007-02-05 2016-02-29 Nec Corporation Sistema de comunicación inalámbrica, su estación de base y estación de telefonía móvil, método de gestión de la sincronización de la comunicación y programa de control de temporizador para los mismos
JP5011017B2 (ja) * 2007-07-30 2012-08-29 株式会社日立製作所 画像復号化装置
US8270471B2 (en) * 2007-11-08 2012-09-18 Mediatek, Inc. Encoders and scheduling methods for macroblock-based adaptive frame/filed coding
US8351508B1 (en) * 2007-12-11 2013-01-08 Marvell International Ltd. Multithreaded descriptor based motion estimation/compensation video encoding/decoding
JP2009284208A (ja) * 2008-05-22 2009-12-03 Renesas Technology Corp 動画像符号化装置及び動画像記録装置
US20100020877A1 (en) * 2008-07-23 2010-01-28 The Hong Kong University Of Science And Technology Multiple reference frame motion estimation in video coding
US8436909B2 (en) * 2008-10-21 2013-05-07 Stmicroelectronics S.R.L. Compound camera sensor and related method of processing digital images
US20100220786A1 (en) * 2009-02-27 2010-09-02 Hong Kong Applied Science and Technology Research Institute Company Limited Method and apparatus for multiple reference picture motion estimation
US9237355B2 (en) * 2010-02-19 2016-01-12 Qualcomm Incorporated Adaptive motion resolution for video coding
JP2011182169A (ja) * 2010-03-01 2011-09-15 Sony Corp 符号化装置および方法
US8787443B2 (en) * 2010-10-05 2014-07-22 Microsoft Corporation Content adaptive deblocking during video encoding and decoding
US8553964B2 (en) * 2010-10-20 2013-10-08 Siemens Aktiengesellschaft Unifying reconstruction and motion estimation in first pass cardiac perfusion imaging
US20120236940A1 (en) * 2011-03-16 2012-09-20 Texas Instruments Incorporated Method for Efficient Parallel Processing for Real-Time Video Coding
JP5905582B2 (ja) 2011-09-30 2016-04-20 インテル コーポレイション ビデオ符号化パイプラインのためのシステム、方法及びコンピュータプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101547354A (zh) * 2008-03-26 2009-09-30 联发科技股份有限公司 实现运动估计的视频编码器与其运动估计方法
CN101621696A (zh) * 2008-06-30 2010-01-06 英特尔公司 允许分数视频运动估计和双向视频运动估计的选择性使用

Also Published As

Publication number Publication date
US20130266072A1 (en) 2013-10-10
TW201328360A (zh) 2013-07-01
JP5905582B2 (ja) 2016-04-20
JP2014529256A (ja) 2014-10-30
WO2013048471A1 (en) 2013-04-04
EP2761870A1 (en) 2014-08-06
US10602185B2 (en) 2020-03-24
TWI517677B (zh) 2016-01-11
CN103918270A (zh) 2014-07-09
EP2761870A4 (en) 2016-03-16

Similar Documents

Publication Publication Date Title
CN103918270B (zh) 用于视频编码管线的系统、方法和计算机程序产品
JP2014529792A5 (zh)
CN107820091B (zh) 一种图片处理方法、系统及一种图片处理设备
CN106341692B (zh) 图像数据的霍夫曼解码装置和方法
US20150016713A1 (en) Image processing device and image processing method
CN104539949B (zh) Hevc屏幕编码中基于边缘方向的快速分块的方法及装置
CN103702122B (zh) 编码模式选择方法、装置及编码器
CN104732574A (zh) 一种角色游戏的压缩装置及装置
Oh et al. Parallel implementation of hybrid vector quantizer-based block truncation coding for mobile display stream compression
CN107079169B (zh) 用于由视频编码器使用正向变换矩阵执行正向变换的方法、设备、装置和介质
CN108228074A (zh) 展示控制方法、展示系统、电子设备和计算机可读介质
CN107483950A (zh) 图片并行编码方法及系统
US20150036750A1 (en) Method for storing movement prediction-related information in an interscreen prediction method, and method for calculating the movement prediction-related information in the inter-screen prediction method
JP2015138553A (ja) 画像平滑化方法及び画像平滑化装置
CN104956677A (zh) 组合的并行流水线视频编码器
CN110121886A (zh) 编码装置、解码装置以及程序
US9998745B2 (en) Transforming video bit streams for parallel processing
CN101854538A (zh) 运动图像处理方法及运动图像处理器
CN106550238B (zh) 一种图像处理方法及系统
EP4354872A1 (en) Point cloud attribute information encoding and decoding method and apparatus, and related device
Wakatani Improvement of adaptive fractal image coding on GPUs
KR102155711B1 (ko) 포인트 클라우드 데이터에 대한 고속 움직임 추정을 수행하는 방법 및 장치
CN110213577B (zh) 一种重建帧构造方法、系统及电子设备和存储介质
TWI559750B (zh) 圖元區塊之寫碼方法和裝置及其重建方法和串流解碼裝置
CN106254884B (zh) 基于h265编码的帧间预测方法和编码器ip

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180821

Termination date: 20200930