CN104956677A - 组合的并行流水线视频编码器 - Google Patents
组合的并行流水线视频编码器 Download PDFInfo
- Publication number
- CN104956677A CN104956677A CN201480006426.6A CN201480006426A CN104956677A CN 104956677 A CN104956677 A CN 104956677A CN 201480006426 A CN201480006426 A CN 201480006426A CN 104956677 A CN104956677 A CN 104956677A
- Authority
- CN
- China
- Prior art keywords
- frame
- section
- macro block
- coding
- computer
- 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.)
- Pending
Links
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/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
-
- 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
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
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
技术领域
描述的实施方式总体涉及一种用于提供组合的并行流水线视频编码的设备和方法。更具体地,这些实施方式涉及以组合的并行流水线方式部分使用软件和部分使用专用硬件来实现视频编码的设备和方法。
这些实施方式尤其在手持数码相机、摄像机和移动终端系统(例如具有内置摄像机的手机、智能电话、平板电脑)中获得应用。这些实施方式还在诸如针对数字电视的机顶盒的多媒体装置中获得应用。这些实施方式可应用于例如VPx(例如VP8)和H264标准的各种视频编码标准。
背景技术
在本章节中所描述的方法可被实行,但未必是先前已构想或实行的方法。因此,除非本文中另有指示,否则在本章节中所描述的方法不是对于本申请中的权利要求的现有技术,并且不因包含在本章节中而被承认作为现有技术。
随着相机和显示器的分辨率的提高,对这些装置的实时视频解码的要求在所需要的处理资源方面变得越来越苛刻。此外,随着在质量、压缩率、输入分辨率和实时约束方面的要求提高,视频标准不断演变。因此,这些苛刻的要求经历频繁改变。对于移动装置,进一步的要求是这样的视频编码还必须是功率高效的。
一般来讲,针对特定任务的专用硬件(HW)解决方案将通常在处理性能和功率效率方面提供最佳解决方案。然而,由于针对视频参数的每个改变(诸如分辨率的提高)或者针对编码所采用的标准的改变必须开发新的装置,因此专用HW解决方案通常不是特别灵活。另外,考虑到开发这样的解决方案比开发软件解决方案所花费的时间增多,这样的解决方案在快速变化的市场下通常是不可行的。
相反地,尽管中央处理单元(CPU)的性能提高以及可用在移动平台上的嵌入式CPU的数量普遍增加,但纯基于软件的解决方案通常不能提供足够快速的高分辨率实时视频编码的性能。另外,通过增大CPU频率来改善该性能,装置的功耗也增加。这种功耗的增加会导致电池寿命差、在移动装置中难以耗散功率,甚至损坏该装置。
为了改善处理性能,可以采用HW或软件(SW)的形式实现并行处理的系统。然而,视频编码算法所固有的数据相关性使得难以实现多个处理单元的并行化。因此,如果以SW算法的形式实现并行化,则不容易体现在移动平台上的多个CPU的优点。另外,针对有效的并行处理,处理单元应极少地交换信息,一般每张图片不超过几次。
因此,需要向具有处理能力的移动装置提供视频编码器,以实现实时视频编码、同时足够灵活地应对编码标准的改变、并同时以低功率运行。
US 2009 0274213公开了一种基于视频序列中的图像内的像素块的帧内编码的视频编码系统。
本文中描述的实施方式的目的在于克服或缓解上述限制中的至少一些限制。
发明内容
在根据实施方式的第一方面,提供一种在流水线处理系统中编码视频数据的方法,该视频数据包括数字图像帧的序列,所述方法包括:将所述序列中的每帧划分为多个区段,每个区段包括跨帧的水平带;将每个区段细分为多个宏块;以及对每个区段中的每个宏块的表示进行编码以形成输出流,其中,在流水线处理系统的流水线中的相邻步骤期间处理每帧的区段。
因此,有利地,可以采用流水线方式有效地划分并处理序列内的帧的处理。
在替选的或补充的实施方式中,帧被划分为的区段的数量等于在流水线中的处理步骤的数量。因此,有利地,该方法可确保该流水线得到有效利用。
在替选的或补充的实施方式中,每个区段包括基本相同数量的像素。因此,有利地,可对每个区段实施相同的处理资源和配置。
在替选的或补充的实施方式中,使用帧内估计或运动预测及补偿的过程来生成每个宏块的表示。
在替选的或补充的实施方式中,每帧区段的数量是4。因此,有利地,编码任务可被划分为4个并行进程。增加给定任务被划分为的并行进程的数量趋向于减少每个进程所花费的时间。然而,相反地,将任务划分为更多进程具有提高在帧内的区段之间的流水线同步要求的影响。进而由于这必然需要中断主机上的处理,因此这趋向于导致开销延迟。因此,通过将区段的数量选择为4,可进行以并行方式处理帧和由划分帧而生成同步延迟之间的平衡。
在替选的或补充的实施方式中,针对每个宏块,选择帧内估计表示或者帧间估计表示,用以编码在输出流中。因此,有利地,可选择针对特定宏块的最佳表示用以编码。
在替选的或补充的实施方式中,使用来自序列中的原始帧的相应的像素来生成针对每个宏块的帧内估计表示。因此,有利地,由于帧内估计表示通常不彼此依赖,因此可避免对于帧中的不同宏块的帧内估计表示的数据相关性。
在替选的或补充的实施方式中,从序列中的先前编码的帧生成针对每个宏块的运动估计及预测表示。
在替选的或补充的实施方式中,运动补偿及预测包括针对每个宏块或子宏块生成运动估计。
在替选的或补充的实施方式中,在图形处理器上执行帧内估计和运动补偿,用软件执行编码,以及用专用硬件执行运动估计。因此,有利地,不同的处理任务可被分配给最适合于实现该特定任务的处理资源。
在第二方面,提供一种用于编码视频数据的流水线处理设备,该视频数据包括数字图像帧的序列,所述设备包括:用于将所述序列中的每帧划分为多个区段的部件,每个区段包括跨帧的水平带;用于将每个区段细分为多个宏块的部件;以及用于对每个区段中的每个宏块的表示进行编码以形成输出流的部件,其中,每帧的区段在流水线处理系统的流水线中的相邻步骤期间被处理。
有利地,第二方面的设备可包含在便携式装置中,该便携式装置包括手机、平板电脑、数码相机或数码摄像机中的一者或多者。
另一方面涉及一种包括计算机可读指令的计算机程序产品,当所述计算机可读指令在计算机系统上运行时,所述计算机可读指令使该计算机系统执行第一方面的方法。另一方面涉及包括先前方面的计算机程序产品的计算机可读介质。
附图说明
在附图的各图中以示例的方式而非以限制的方式示出本发明,在附图中,相同的附图标记表示相同的元件,其中:
-图1示出当以不同的方式配置视频编码方法时应用的权衡;
-图2示出根据所描述的实施方式的划分图像序列中的帧以备处理的方法;
-图3示出根据所描述的实施方式的视频编码方法;
-图4示出在图3的方法中执行的步骤的次序的细节;以及
-图5示出在图3的方法中使用的数据之间的相关性。
具体实施方式
图1示出了在可实现视频编码方法的不同方式之间的权衡。如图1所示,通过使用纯基于软件的解决方案,可达到高的灵活度。然而,这种解决方案将使用按序算法,因此往往是缓慢的。可替选地,如果实施纯基于GPU(图形处理单元)的解决方案,则这将允许大规模并行计算。然而这种解决方案不能够容易地处理数据相关性。最后,如果实施专用HW解决方案,则这将允许借助流水线算法的高速处理速度。然而,如上所讨论的,这种解决方案缺乏灵活性。
通过组合每种解决方案(即SW、HW和GPU)的要素,如下所述的实施方式能够实现保有基于GPU的解决方案和基于HW的解决方案的性能优点的灵活的处理系统。
图2示出了根据实施方式的划分视频序列中的帧以备编码的方法。贯穿本说明书,术语“帧”用于描述来自共同形成视频序列的图像序列中的单个图像。如图2所示,帧被水平地划分为多个非重叠区段(A、B、C、D)。由于在特定区段的处理期间需要来自与该特定区段相邻的每个区段的某些帧信息,因此数据相关性存在于各区段之间的边界处。因此,在帧的处理期间,存在不同区段之间的同步要求。
通过将帧划分为更多数量的区段,可以在更多数量的并行处理流中处理该帧,这是因为例如每一区段可采用一个流。然而,使用更多数量的区段将必然增加在所划分的帧内的区段边界的数量,从而也提高了在该帧内的区段之间的同步要求。此外,只有运动矢量搜索窗口大小受限于先前图片中的共同定位的相邻层,图2中示出的处理方法才是可行的。下文参照图3对此进行更加详细地描述。因此,采用更多数量的区段将导致允许的最大运动矢量大小降低。这进而将降低编码质量。鉴于此,技术人员将认识到,在通过增加区段的数量来增加处理流的数量和通过减少帧中的分区的数量来降低帧的区段之间的同步要求之间存在权衡。考虑到该权衡,在图2中,区段的数量是4。然而,技术人员将认识到,根据特定帧编码系统的特定约束和参数,可使用更多或更少数量的区段。
如上所述,通过将帧水平地划分为四个区段,可以采用每个区段被单独处理的并行方式来处理每帧。由于水平分区更适合于用于帧数据的传输的标准格式,因此选择帧的水平分区而不是垂直分区的方法。例如,帧数据时常以图片的(水平)行的形式(一行紧接着上面的行)进行传输。因此,通过将帧划分为水平区段,可不需要在生成至少一些区段并开始对帧进行编码之前等待接收完整的帧。
在帧的每个区段内,帧进一步被划分为多个宏块。在当前所描述的实施方式中,每个宏块的大小是16×16像素。然而,技术人员将认识到,也可实施不同大小的宏块。此外,技术人员还将认识到,这里描述的方法也可应用于进而被细分为更小的块(分区或子块)的宏块。
作为使用帧内的宏块的示例,考虑在帧序列中的具有沿宽度方向为1280像素和沿高度方向为1024像素的分辨率的帧。如果采用大小为16×16像素的宏块,则该帧将由宽度为80个宏块和高度为64个宏块的宏块阵列组成。每帧的宏块的总数为5120(即80×64)。每个帧区段将由宽度为80个宏块和高度为16个宏块的宏块阵列组成。每个帧区段的宏块的总数为1280。
图3示出根据实施方式的视频编码方法。以流水线的形式实施所描述的编码方法。关于编码方法的输入1采用待编码的像素流的形式。该像素流表示共同形成视频序列的帧(图像)序列。如上所述,每帧被分解为多个宏块。因此,关于编码方法的输入1包括被分为宏块的像素流。
来自该方法的输出采用使用下述过程所形成的编码的视频流37的形式。
输入1以并行方式被输入至帧内估计器(IE)11、旁通模块15、运动估计器21和预测器23。IE 11使用帧内估计的方法来确定帧内的包含空间冗余的区域。IE 11对形成输入帧的原始像素执行帧内估计。由于为此采用原始像素,因此在待估计的当前宏块与其相邻宏块之间没有数据相关性。
使用下面的方法实现帧内估计:通过从一个或多个相邻宏块推断像素值来预测或估计当前宏块的内容。通常,IE 11使用来自前一宏块(即,紧位于当前宏块的左侧的宏块)的右侧的一竖列像素和来自紧位于当前宏块之上的宏块的下侧的一横行像素来预测当前宏块的内容。然而,技术人员将认识到,其它的帧内估计的方法是同样适用的。技术人员还将理解实现帧内估计的方法,因此这里将不包含更全面的解释。在所描述的实施方式中,IE 11产生三种版本的帧内估计的宏块:一种基于水平帧内估计;一种基于竖向帧内估计;一种基于对角线帧内估计。IE随后选择最适合的版本进行输出。为此,IE 11对由每种版本的帧内估计的宏块表示的像素和宏块的原始像素之间的绝对差(SAD)的总和进行计算。在所描述的实施方式中,具有最小SAD的版本与其相关联的SAD共同形成IE 11的输出。在如下文所阐述的编码过程期间使用该SAD。
技术人员将认识到,IE 11不需要执行三种不同的帧内估计。而是同样地可采用更多或更少数量的帧内估计。
来自IE 11的形成的输出采用一系列估计的宏块连同每个估计的宏块和实际宏块之间的差的测量的形式。该输出被传送至决策模块13。决策模块13接收来自IE 11的输出和来自预测器模块23的输出两者,预测器模块23提供每个宏块的帧间估计版本和针对帧间估计的宏块计算的SAD。将在下文描述帧间估计的宏块的推导方法。决策模块13针对每个宏块确定是使用编码的视频流中的来自IE 11的宏块的帧内估计版本,还是使用来自预测器23的宏块的帧间估计版本。
决策模块13中作出的决策是以每宏块为基础作出的。每个决策基于针对宏块的帧内估计版本和该宏块的帧间估计版本所导出的两个SAD值的比较。在所描述的实施方式中,针对帧中的该特定宏块,无论哪个版本具有最小值的SAD,该版本将作为在编码的流37中采用的该宏块的版本。来自这个决策的成功预测形成来自决策模块13的输出。技术人员将理解,也可使用其它的帧内/帧间选择标准,基于SAD的决策在此仅作为示例给出。
来自决策模块13的输出随后被传送至旁通模块15。如上所述,旁通模块15还接收输入流1。作为另外的输入,旁通模块15还接收来自宏块重建模块19的输出。将在下文进一步详细描述该宏块重建模块。
旁通模块15被配置成对输入宏块执行帧内重建(IREC)或者选择预测器23输出(即,旁通)。是执行IREC宏块还是旁通的确定基于宏块是被帧内估计还是被帧间估计。旁通模块15被配置使得如果选择的宏块被帧间估计则为旁通。如果宏块被帧内估计,则需要通过使用选择的帧内模式来计算基于重建的图片的新的帧内估计宏块。这是因为已基于输入流1的原始像素计算帧内估计宏块。这个IREC步骤由旁通模块15执行,并采用来自如下所述的宏块重建模块19的重建的宏块。
在执行IREC或者旁通之后,旁通模块15随后计算估计的宏块(帧内或帧间)和输入流1中的相应的像素之间的残差。该计算以逐个像素为基础。该残差随后被传送至编码模块17,该编码模块17的功能在下面描述。
在CPU上,恰在对宏块进行编码的步骤之后执行宏块重建。通常,期望的是帧内估计的宏块将在统计上被选择用于编码的频率远小于帧间估计的宏块,并且将仅针对选择的帧内模式执行帧内估计的宏块预测。因此,与基于重建的像素的全帧内估计相比,这个步骤将消耗更少的CPU资源。然而,这将以编码效率的稍微劣化为代价。
编码模块17被配置成将来自旁通模块15的帧内估计或帧间估计的宏块的残差编码为编码的比特流37以作为输出37。编码模块17包括离散余弦变换(DCT)模块25、量化模块27和熵编码器29。DCT模块对接收的残差执行DCT。技术人员将理解如何实施DCT,因此这里将不提供更全面的解释。而陈述如下内容就足够了:DCT的作用在于以包含余弦函数序列的阵列的形式来表示每个宏块内的像素数据,每个余弦函数具有特定的幅度和频率。换句话说,DCT将像素数据从空间域转换到频域。因此,DCT模块25的输出具有表示存在于该序列中的幅度和频率的系数阵列的形式。该输出随后被传送至量化模块27。量化模块27对从DCT模块25输出的系数进行量化。
技术人员将认识到如何执行这样的量化,因此这里将不再重复对量化模块27的进一步解释。量化的系数随后被输出至熵编码器29。
熵编码器29对从量化模块27输出的系数进行编码以形成编码的流37。技术人员将认识到如何实现熵编码器,因此这里将不提供更全面的解释。
来自量化模块27的输出还被发送到上面提到的宏块重建模块19。宏块重建模块19包括反量化模块31、逆离散余弦变换(IDCT)模块33和环路滤波器35。
反量化模块31接收来自量化模块27的输出,并对量化的输出执行反量化处理。IDCT模块33随后对反量化的输出执行逆DCT。技术人员将认识到如何实现这两个过程,因此这里将不再重复全面的解释。而注意如下内容就足够了:来自IDCT模块33的输出采用重建的宏块的形式。
来自IDCT模块33的输出被传送至环路滤波器35。环路滤波器35用以去除可由使用不同的估计技术对相邻宏块进行编码的情况引起的假象。例如,如果使用运动估计对第一宏块进行编码,同时使用帧内估计对相邻的第二宏块进行编码,则可在这些宏块之间的边界处出现假象。技术人员将理解如何实现环路滤波器,因此这里将不提供更加详细的解释。
来自IDCT模块33的输出还被传送至旁通模块15。因此,如上所述,旁通模块15可使用来自IDCT 33的重建的宏块作为如上所述的残差的部分计算。
来自环路滤波器35的输出被传送至运动估计器(ME)21。ME 21得到重建的经环路滤波的宏块,并对每个宏块执行运动估计,以确定该宏块相对于前一帧或者相对于前一帧和后一帧两者的运动估计。如上所述,ME 21还接收输入流1,用以生成针对每个宏块的运动估计。ME 21导出针对当前宏块的运动向量的最佳估计。这里的最佳运动向量被假定为产生估计的宏块和对其进行运动估计的宏块之间的最小SAD的运动向量。技术人员将认识到如何使用这些输入实现这样的运动估计,因此这里将省略全面的解释。ME 21的输出采用估计的宏块和其相应的SAD的形式。
来自ME 21的输出被传送至预测器23,该预测器23基于针对每个宏块或子宏块的最佳运动向量计算运动补偿的帧。
预测器23将帧间预测的宏块和相关联的SAD传送至决策模块13。如上所述,在决策模块中的该SAD比较的结果随后用于确定哪个版本的宏块被传送至编码器17用以包含在编码的流37内。
因此,总之,该方法的作用如下:确定每个宏块的帧内估计版本和运动估计版本,选择具有最小SAD的版本用以编码。所选版本的宏块随后被编码并被用在输出流37中。
在替选的实施方式中,偏差(bias)被添加到用于在使用帧内估计的宏块或使用帧间估计的宏块之间进行确定的SAD标准。因此,在该实施方式中,使用如下关系在宏块的帧内编码版本和帧间估计版本之间进行确定:
如果SAD帧内估计+偏差>SAD帧间估计,则选择帧间估计;否则选择帧内估计。
其中,SAD帧内估计表示从帧内估计的宏块计算的SAD,SAD帧间估计表示从帧间估计的宏块计算的SAD。这样的实施方式可用于帮助确保通过特定的方法对宏块的期望部分进行编码。
在图3中描述的实施方式中,以GPU实现IE模块11和预测器23两者。以HW实现ME模块21,以及以SW实现剩余的全部组件,即MB(宏块)编码模块17、MB重建模块19、决策模块13和旁通模块15。因此,可以采用最适合的方式实现所描述的编码器的各个不同的功能。因此,所描述的编码器可实现对可用HW资源的最佳使用,同时保持在CPU或GPU上运行的、在SW环境内经历频繁改变的功能。另外,能够以并行和流水线两者的方式运行编码处理。
图4示出使用图3的编码方法处理数据帧时出现的步骤。图的顶行指示流水线中的步骤。这处于1、2、3、4的重复模式。因此,针对每帧,该流水线被划分为四个处理步骤,并对每帧重复该处理。在各流水线步骤之间要求同步,因此在处理系统的CPU上发生中断。
第二行指示由GPU执行的步骤。处于流水线步骤1的第一步骤是对第一帧的第一区段执行帧内估计。该区段被标记为A1,其指示这是序列中的第一帧的正被编码的区段A。因此,该帧是图2中示出的帧的顶部区段。在第二行中的随后步骤(换句话说对于GPU的随后步骤)是对第一帧的区段B执行帧内估计,这被标记为B1。换句话说,区段B1是序列的第一帧的区段A1下方的区段。对于GPU的第三步骤是处理帧1中的区段C,即C1。随后,区段D1被处理。在处理第一帧的每个区段后,GPU随后以与对于第一帧相同的次序处理第二帧的区段。换句话说,处理区段A2、区段B2、区段C2和随后的区段D2。
在图4的表格的第三行中,CPU执行第一区段A1的宏块编码和宏块重建。在图4中,该进程被标记为“E”。CPU在流水线的步骤2处(换句话说,在GPU正执行区段B1的帧内估计的时候)执行该处理。这是因为宏块编码和宏块重建进程需要对区段A1的帧内估计的结果,因此不能在该结果可用之前开始。对于CPU的随后步骤是在流水线步骤3期间对区段B1执行进程E(宏块编码和宏块重建)。CPU随后以与GPU相同的次序对帧区段执行进程E,每个区段在该区段已被GPU处理之后的一个流水线步骤被处理。
在图4的第四行中,HW执行运动估计。针对第二帧的区段A(即A2)的运动估计相对于第一帧中的相应区段A1而进行。因此,针对第一帧不进行运动估计,这是因为不存在用于产生运动估计的前一帧。如关于图3所述,运动估计的随后步骤是运动预测,随后,决策模块13比较帧内估计的宏块和运动补偿的宏块的SAD。相比之下,在宏块编码之前紧连的进程E中,在帧内估计之后紧接的步骤中,在决策模块13中比较每个帧内估计的宏块。因此,要求特定宏块的运动估计先于针对该同一宏块的帧内估计一步。因此,在流水线的步骤4中执行区段A2的运动估计,同时在流水线的随后步骤中(换句话说,在流水线的下一重复中的第一步骤期间)执行区段B2的运动估计。在流水线的下一步骤中执行区段B2的运动估计,接下来的步骤是依次对C2和D2的运动估计。
在图4的第五行中,GPU执行运动补偿预测(MCP)。由于MCP依赖于行4中的运动估计的结果,因此在针对每个特定宏块的运动估计之后的一个流水线步骤执行MCP。因此,在第二个流水线步骤1处(换句话说,在自流水线开始之后的流水线中的第五步骤中)执行针对区段A2的MCP。在随后的步骤中,针对B2、然后C2及然后D2的MCP依次被执行。
从图4可知,前四个步骤实际上是流水线的开始,这是因为直到这前四个步骤之后所描述的宏块编码方法所需的全部数据才可用。由此,清楚可知,由区段A1、B1、C1和D1组成的第一帧不能以与序列中的其余帧完全相同的方式被处理。通常,完全使用帧内估计的宏块对序列中的第一帧进行编码。然而,技术人员将认识到用于处理这种情况的其它方法,因此这里将不再重复可用方法的全面解释。
从图4清楚可知,以并行流水线方式处理帧的四个区段A、B、C、D中的每个区段。由于在每个重复的流水线中具有四个待完成的任务(IE、E、ME和MCP),因此可以通过将待编码的帧划分为四个区段来实现有效处理。通过选择将帧划分为四个区段,在流水线的每个步骤期间可发生处理的意义上讲,所描述的实施方式的流水线是“完全的”。在开始步骤之后,不存在一个处理元件(GPU、CPU或HW)必须等待别处完成处理的步骤。技术人员将认识到,可替选地,该编码方法可被分成更多或更少数量的任务,可以采用不同部分的HW或SW(CPU或GPU)执行每个任务。在这样的情况下,输入帧可被划分为数量与处理任务的数量相对应的多个区段。因此,流水线可被保持处于完全状态。
图5更加详细地示出在图3和图4中的处理步骤之间的相互关系。从图5可知,为了编码区段A(n-1),其中,n表示如上使用的帧数,该方法要求对该区段进行帧内估计和运动补偿预测。采用相应的方式,为了编码区段B(n-1),要求对区段B(n-1)进行帧内估计和运动补偿预测。对于C(n-1)和D(n-1)的要求也对应于这些要求。随后,为了接着生成针对区段A(n)的运动估计,由于运动可跨越区段边界,因此使用编码的区段A(n-1)和B(n-1)。根据A(n)的运动估计,可随后推导出A(n)的MCP。
为了生成针对区段B(n)的运动估计,由于区段A和区段C两者都具有与区段B的边界,因此编码的区段A(n-1)、B(n-1)和C(n-1)全部被使用。出于该实施方式的目的,假设运动向量受限于当前帧之前的帧中的相同区段和相邻区段。
根据B(n)的运动估计,可随后推导出B(n)的MCP。类似地,为了生成针对区段C(n)的运动估计,编码的区段B(n-1)、C(n-1)和D(n-1)全部被使用。根据C(n)的运动估计,可随后推导出C(n)的MCP。为了生成针对区段D(n)的运动估计,编码的区段C(n-1)和D(n-1)被使用。根据D(n)的运动估计,可随后推导出D(n)的MCP。
因此,从图5可知,针对例如A3的MCP根本上依赖于针对A2和B2的IE的结果以及A2和B2的MCP。由于编码被划分为四个“任务”(IE、E、ME和MCP),因此可计算出针对A3的MCP的最早时间是在针对A2的IE的结果之后的四个流水线步骤。因此,如果每帧被划分为四个区段,则在该实施方式中,流水线将恰好被填满。
技术人员将认识到,通过实施如上所述的编码方法,在每个处理步骤结束时,不同的处理单元仅需要每帧被同步四次。每次同步需要SW中断,因此通过将同步降低到如此小的次数,编码方法的效率得到提高。
技术人员将认识到,实施方式可嵌入在计算机程序产品中,该计算机程序产品包括能够实现本文中描述的方法的所有特征,并且当加载于信息处理系统中时能够执行这些方法。本上下文中的计算机程序构件或计算机程序指的是指令组的以任何语言、代码或符号的任何表示,该指令组意图使具有信息处理能力的系统直接执行特定功能或者在转换为另一语言之后执行特定功能。这样的计算机程序可存储在计算机或机器可读介质上,允许从该介质中读取数据、指令、消息或消息包、和其它机器可读信息。计算机或机器可读介质可包括非易失性存储器,例如ROM、闪存、磁盘存储器、CD-ROM和其它永久性存储器。另外,计算机或机器可读介质可包括例如易失性存储器,例如RAM、缓冲器、缓存和网络电路。此外,计算机或机器可读介质可包括在暂态介质中的计算机或机器可读信息,该暂态介质例如为允许装置读取这样的计算机或机器可读信息的网络链路和/或网络接口,其中网络包括有线网络或无线网络。
诸如“包含”、“包括”、“并入”、“含有”、“是”和“具有”的表达,在解释说明书及其相关联的权利要求时将按非排他性方式被理解,即被理解成允许也存在未被明确定义的其它项或组件。对单数的引用也被理解为对复数的引用,反之亦然。
尽管已示出和描述了目前被认为是本发明的优选实施方式的内容,本领域的技术人员将理解,在不脱离本发明的真实范围的情况下,可进行各种其它修改,并可替换等效物。此外,在不脱离本文中描述的中心发明构思的情况下,可对本发明的教义进行许多修改以适应特定情况。另外,本发明的实施方式可不包括上述的所有特征。因此,意图在于使本发明不受限于公开的具体实施方式,而在于本发明包括落在如上广泛定义的本发明的范围内的所有实施方式。
本领域的技术人员将容易理解,在不脱离本发明的范围的情况下,可修改本说明书中公开的各种参数,并可组合公开的和/或要求保护的各种实施方式。
Claims (14)
1.一种在流水线处理系统中编码视频数据的方法,所述视频数据包括数字图像帧的序列,所述方法包括:
将所述序列中的每帧划分为多个区段,每个区段包括跨帧的水平带,
将每个区段细分为多个宏块,以及
对每个区段中的每个宏块的表示进行编码以形成输出流,其中,
在所述流水线处理系统的流水线中的相邻步骤期间处理每帧的所述区段。
2.根据权利要求1所述的方法,其中,帧被划分为的区段的数量等于在所述流水线中的处理步骤的数量。
3.根据权利要求1或2所述的方法,其中,每个区段包括基本相同数量的像素。
4.根据前面任一项权利要求所述的方法,其中,使用帧内估计和运动预测及补偿的过程来生成每个宏块的表示。
5.根据前面任一项权利要求所述的方法,其中,每帧区段的数量是4。
6.根据权利要求4所述的方法,其中,使用来自所述序列中的原始帧的相应的像素来生成针对每个宏块的帧内估计表示。
7.根据权利要求4或6所述的方法,其中,从所述序列中的先前编码的帧生成针对每个宏块的帧间估计。
8.根据权利要求4、6或7中任一项所述的方法,其中,针对每个宏块,选择帧内估计表示或者帧间估计表示,用以编码在所述输出流中。
9.根据权利要求5所述的方法,其中,所述运动预测及补偿包括针对每个宏块生成运动估计。
10.根据权利要求9所述的方法,其中,在图形处理器上执行所述帧内估计和运动补偿,在中央处理器上执行所述编码,以及用专用硬件执行所述运动估计。
11.一种用于编码视频数据的流水线处理设备,所述视频数据包括数字图像帧的序列,所述设备包括:
用于将所述序列中的每帧划分为多个区段的部件,每个区段包括跨帧的水平带,
用于将每个区段细分为多个宏块的部件,以及
用于对每个区段中的每个宏块的表示进行编码以形成输出流的部件,其中,
每帧的所述区段在所述流水线处理系统的流水线中的相邻步骤期间被处理。
12.根据权利要求11所述的设备,其中,所述设备包含在装置中,所述装置包括手机、平板电脑、数码相机、数码摄像机、多媒体装置或机顶盒中的一者或多者。
13.一种包括计算机可读指令的计算机程序产品,当所述计算机可读指令在计算机系统上运行时,所述计算机可读指令使所述计算机系统执行权利要求1至10中任一项所述的方法。
14.一种计算机可读介质,包括根据权利要求13所述的计算机程序产品。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13305197.9 | 2013-02-21 | ||
EP13305197.9A EP2814254A1 (en) | 2013-02-21 | 2013-02-21 | Combined parallel and pipelined video encoder |
US201361802921P | 2013-03-18 | 2013-03-18 | |
US61/802921 | 2013-03-18 | ||
PCT/EP2014/051620 WO2014127961A1 (en) | 2013-02-21 | 2014-01-28 | Combined parallel and pipelined video encoder |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104956677A true CN104956677A (zh) | 2015-09-30 |
Family
ID=47757532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480006426.6A Pending CN104956677A (zh) | 2013-02-21 | 2014-01-28 | 组合的并行流水线视频编码器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9781439B2 (zh) |
EP (1) | EP2814254A1 (zh) |
CN (1) | CN104956677A (zh) |
WO (1) | WO2014127961A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106170081A (zh) * | 2016-06-28 | 2016-11-30 | 上海米影信息科技有限公司 | 一种无线虚拟现实服务器、系统及其数据压缩传输方法 |
CN112351281A (zh) * | 2020-10-28 | 2021-02-09 | 西安万像电子科技有限公司 | 图像处理方法及装置、处理器、非易失性存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10949985B2 (en) * | 2016-06-02 | 2021-03-16 | Stc.Unm | System and methods for parallel processing motion estimation of digital videos |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007129433A1 (ja) * | 2006-04-17 | 2007-11-15 | Toshihiro Minami | 動画像符号化装置および動画像符号化方法 |
CN101459844A (zh) * | 2003-11-13 | 2009-06-17 | 高通股份有限公司 | 用于视频编解码器的选择性的和/或可缩放的复杂度控制 |
CN101490968A (zh) * | 2006-07-17 | 2009-07-22 | 索尼株式会社 | 用于视频压缩的并行处理装置 |
CN101946516A (zh) * | 2008-02-22 | 2011-01-12 | 高通股份有限公司 | 快速宏块增量量化参数的决定 |
WO2011161949A1 (ja) * | 2010-06-23 | 2011-12-29 | パナソニック株式会社 | 画像復号装置、画像復号方法、集積回路およびプログラム |
CN102714733A (zh) * | 2010-01-19 | 2012-10-03 | 瑞萨电子株式会社 | 运动图像编码方法、运动图像解码方法、运动图像编码装置以及运动图像解码装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9648325B2 (en) * | 2007-06-30 | 2017-05-09 | Microsoft Technology Licensing, Llc | Video decoding implementations for a graphics processing unit |
US20090274213A1 (en) | 2008-04-30 | 2009-11-05 | Omnivision Technologies, Inc. | Apparatus and method for computationally efficient intra prediction in a video coder |
WO2011159999A1 (en) | 2010-06-18 | 2011-12-22 | Synthes Usa, Llc | Spine disc replacement with compliant articulating core |
-
2013
- 2013-02-21 EP EP13305197.9A patent/EP2814254A1/en not_active Withdrawn
-
2014
- 2014-01-28 WO PCT/EP2014/051620 patent/WO2014127961A1/en active Application Filing
- 2014-01-28 US US14/761,821 patent/US9781439B2/en active Active
- 2014-01-28 CN CN201480006426.6A patent/CN104956677A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459844A (zh) * | 2003-11-13 | 2009-06-17 | 高通股份有限公司 | 用于视频编解码器的选择性的和/或可缩放的复杂度控制 |
WO2007129433A1 (ja) * | 2006-04-17 | 2007-11-15 | Toshihiro Minami | 動画像符号化装置および動画像符号化方法 |
CN101490968A (zh) * | 2006-07-17 | 2009-07-22 | 索尼株式会社 | 用于视频压缩的并行处理装置 |
CN101946516A (zh) * | 2008-02-22 | 2011-01-12 | 高通股份有限公司 | 快速宏块增量量化参数的决定 |
CN102714733A (zh) * | 2010-01-19 | 2012-10-03 | 瑞萨电子株式会社 | 运动图像编码方法、运动图像解码方法、运动图像编码装置以及运动图像解码装置 |
EP2528331A1 (en) * | 2010-01-19 | 2012-11-28 | Renesas Electronics Corporation | Moving image encoding method, moving image decoding method, moving image encoding device, and moving image decoding device |
WO2011161949A1 (ja) * | 2010-06-23 | 2011-12-29 | パナソニック株式会社 | 画像復号装置、画像復号方法、集積回路およびプログラム |
Non-Patent Citations (3)
Title |
---|
KAIJIN WEI ET AL: "AN OPTIMIZED HARDWARE VIDEO ENCODER FOR AVS WITH LEVEL C+ DATA REUSE SCHEME FOR MOTION ESTIMATION", 《IEEE INTERNATIONAL CONFERENCE ON MULTIMEDIA AND EXPO》 * |
NGAI-MAN CHEUNG ET AL: "Video Coding on Multicore Graphics Processors", 《IEEE SIGNAL PROCESSING MAGAZINE》 * |
TUNG-CHIEN CHEN ET AL: "Hardware Architecture Design of an H.264/AVC Video Codec", 《ASIA AND SOUTH PACIFIC CONFERENCE ON DESIGN AUTOMATION 》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106170081A (zh) * | 2016-06-28 | 2016-11-30 | 上海米影信息科技有限公司 | 一种无线虚拟现实服务器、系统及其数据压缩传输方法 |
CN112351281A (zh) * | 2020-10-28 | 2021-02-09 | 西安万像电子科技有限公司 | 图像处理方法及装置、处理器、非易失性存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP2814254A1 (en) | 2014-12-17 |
US9781439B2 (en) | 2017-10-03 |
WO2014127961A1 (en) | 2014-08-28 |
US20150358630A1 (en) | 2015-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101974261B1 (ko) | Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치 | |
US8218640B2 (en) | Picture decoding using same-picture reference for pixel reconstruction | |
US8218641B2 (en) | Picture encoding using same-picture reference for pixel reconstruction | |
CN101406056B (zh) | 减少数字视频编码器中的内预测和模式判决处理中的计算的方法 | |
US9485515B2 (en) | Video coding using reference motion vectors | |
US8867626B2 (en) | Image encoding apparatus, image encoding method, image decoding apparatus, and image decoding method | |
CN100593955C (zh) | 用于以帧间或帧内模式编码视频图像的方法和设备 | |
CN101490968A (zh) | 用于视频压缩的并行处理装置 | |
CN101888546B (zh) | 一种运动估计的方法及装置 | |
CN103975599A (zh) | 图像编码以及解码方法、装置、程序 | |
CN102196272B (zh) | 一种p帧编码方法及装置 | |
CN101621696A (zh) | 允许分数视频运动估计和双向视频运动估计的选择性使用 | |
CN104702959B (zh) | 一种视频编码的帧内预测方法及系统 | |
WO2014058796A1 (en) | Method and apparatus for video coding using reference motion vectors | |
CN104519367A (zh) | 视频解码处理装置及其操作方法 | |
CN104539949A (zh) | Hevc屏幕编码中基于边缘方向的快速分块 | |
CN108810549B (zh) | 一种面向低功耗的流媒体播放方法 | |
CN105554505A (zh) | 应用处理器及其方法以及包括该应用处理器的系统 | |
JP5187062B2 (ja) | 動画像符号化装置および動画像符号化方法 | |
US9014495B2 (en) | Parallel intra prediction method for video data | |
CN104956677A (zh) | 组合的并行流水线视频编码器 | |
US20140119451A1 (en) | System and method for efficient multi-bitrate and multi-spatial resolution media encoding | |
CN105100799B (zh) | 一种减少hevc编码器中帧内编码时延的方法 | |
CN102685473B (zh) | 一种帧内预测方法和装置 | |
JP2012147291A (ja) | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150930 |
|
WD01 | Invention patent application deemed withdrawn after publication |