发明内容
本发明提供了可以在视频编解码器的帧内预测子系统中支持相对大量预测方向的某些实施方式。根据某些实施方式,预测过程由给定粒度的、无论是水平方向还是竖直方向的参考像素行和一行像素之间的位移测量来定义。在针对块中每个像素推导预测值的时候,所选择的位移用于计算每个像素向参考像素行的投影,以及使用插值操作以便利用投影的像素位置距最近参考像素的距离来计算最终预测值。
根据本发明的第一方面,提供了一种设备,包括:
选择器,配置用于选择用于预测的像素;
投影定义器,配置用于确定所述像素向参考像素集合的投影;以及
预测定义器,配置用于基于所述投影,从所述参考像素集合中选择一个或多个参考像素,以及使用所述选择的一个或多个参考像素来获取用于待预测的所述像素的预测值。
根据本发明的第二方面,提供了一种方法,包括:
选择用于预测的像素;
确定所述像素向参考像素集合的投影;以及
基于所述投影,从所述参考像素集合中选择一个或多个参考像素;以及
通过使用所述选择的一个或多个参考像素来获取用于待预测的所述像素的预测值。
根据本发明的第三方面,提供了一种计算机可读存储介质,其上存储有供设备使用的代码,在由处理器执行时,所述代码引起所述设备:
选择用于预测的像素;
确定所述像素向参考像素集合的投影;以及
基于所述投影,从所述参考像素集合中选择一个或多个参考像素;以及
通过使用所述选择的一个或多个参考像素来获取用于待预测的所述像素的预测值。
根据本发明的第四方面,提供了至少一个处理器和至少一个存储器,所述至少一个存储器上存储有代码,在由所述至少一个处理器执行时,所述代码引起设备:
选择用于预测的像素;
确定所述像素向参考像素集合的投影;以及
基于所述投影,从所述参考像素集合中选择一个或多个参考像素;以及
通过使用所述选择的一个或多个参考像素来获取用于待预测的所述像素的预测值。
根据本发明的第五方面,提供了一种设备,包括:
分析器,配置用于检查关于待解码图像的像素块的方向性的指示;以及
重建器,配置用于:
确定待解码的所述像素块的像素在参考像素集合上的投影;以及
基于所述投影,从所述参考像素集合中选择一个或多个参考像素,以及使用所述选择的一个或多个参考像素来获取用于待预测的所述像素的预测值。
根据本发明的第六方面,提供了一种方法,包括:
检查关于待解码图像的像素块的方向性的指示;
确定待解码的所述像素块的像素在参考像素集合上的投影;以及
基于所述投影,从所述参考像素集合中选择一个或多个参考像素,以及使用所述选择的一个或多个参考像素来获取用于待预测的所述像素的预测值。
根据本发明的第七方面,提供了一种计算机可读存储介质,其上存储有供设备使用的代码,在由处理器执行时,所述代码引起所述设备:
检查关于待解码图像的像素块的方向性的指示;
确定待解码的所述像素块的像素在参考像素集合上的投影;
基于所述投影,从所述参考像素集合中选择一个或多个参考像素;以及
使用所述选择的一个或多个参考像素来获取用于待预测的所述像素的预测值。
根据本发明的第八方面,提供了至少一个处理器和至少一个存储器,所述至少一个存储器上存储有代码,在由所述至少一个处理器执行时,所述代码引起设备执行:
检查关于待解码图像的像素块的方向性的指示;
确定待解码的所述像素块的像素在参考像素集合上的投影;以及
基于所述投影,从所述参考像素集合中选择一个或多个参考像素;以及
使用所述选择的一个或多个参考像素来获取用于待预测的所述像素的预测值。
根据本发明的第九方面,提供了一种编码器,包括:
选择器,配置用于从帧内预测模式的集合中选择编码方法,以对图像的像素块进行编码;以及
选择器,配置用于选择用于预测的像素;
其中所述帧内预测模式包括:
投影定义器,配置用于确定所述像素向参考像素集合的投影;以及
预测定义器,配置用于基于所述投影,从所述参考像素集合中选择一个或多个参考像素,以及使用所述选择的一个或多个参考像素来获取用于待预测的所述像素的预测值。
根据本发明的第十方面,提供了一种解码器,包括:
分析器,配置用于检查关于待解码图像的像素块的方向性的指示;以及
重建器,配置用于:
确定待解码的所述像素块的像素在参考像素集合上的投影;以及
基于所述投影,从所述参考像素集合中选择一个或多个参考像素,以及使用所述选择的一个或多个参考像素来获取用于待预测的所述像素的预测值。
根据本发明的第十一方面,提供了一种设备,包括:
用于从帧内预测模式的集合中选择编码方法以对图像的像素块进行编码的装置;以及
用于选择用于预测的像素的装置;
其中所述帧内预测模式包括:
用于确定所述像素向参考像素集合的投影的装置;
用于基于所述投影,从所述参考像素集合中选择一个或多个参考像素的装置;以及
用于使用所述选择的一个或多个参考像素来获取用于待预测的所述像素的预测值的装置。
根据本发明的第十二方面,提供了一种设备,包括:
用于检查关于待解码图像的像素块的方向性的指示的装置;以及
用于确定待解码的所述像素块的像素在参考像素集合上的投影的装置;以及
用于基于所述投影,从所述参考像素集合中选择一个或多个参考像素的装置;以及
用于使用所述选择的一个或多个参考像素来获取用于待预测的所述像素的预测值的装置。
具体实施方式
下文更详细地描述了用于为视频编解码器提供增强的编码效率和信号保真度的适当设备和可行机制。在此方面,首先参考图1,其中示出了示例性设备或电子设备50的示意框图,该设备50可以并入根据本发明实施方式的编解码器。
电子设备50可以是例如无线通信系统的移动终端或用户设备。然而,应当理解,本发明的实施方式可以在可能需要编码和解码、或者编码,或者解码视频图像的任何电子设备或装置内实现。
设备50可以包括用于容纳和保护该设备的外壳30。设备50进一步可以包括液晶显示器形式的显示器32。在本发明的其他实施方式中,显示器可以是适于显示图像或视频的任何适当显示技术。设备50可以进一步包括小键盘34。在本发明的其他实施方式中,可以采用任何适当的数据或用户接口机制。例如,用户接口可以实现为虚拟键盘或数据录入系统,以作为触敏显示器的部分。该设备可以包括麦克风36或可以是数字或模拟信号输入的任何适当音频输入。设备50可以进一步包括音频输出设备,在本发明的实施方式中,其可以是下述任何一个:耳机38、扬声器,或模拟音频或数字音频输出连接。设备50还可以包括电池40(或者,在本发明的其他实施方式中,该设备可以由任何适当的移动能量设备供电,诸如太阳能电池、燃料电池或发条发电机)。该设备可以进一步包括红外端口42,用于支持去往其他设备的短程视线通信。在其他实施方式中,设备50可以进一步包括任何适当的短程通信方案,诸如,蓝牙无线连接或USB/火线有线连接。
设备50可以包括控制器56或处理器,以用于控制该设备50。控制器56可以连接至存储器58,在本发明的实施方式中,存储器58可以存储图像和音频数据形式的数据,和/或还可以存储用于在控制器56上实现的指令。控制器56可以进一步连接至编解码器电路54,其适于实施音频和/或视频数据的编码和解码或者辅助由控制器56实施的编码和解码。
设备50可以进一步包括读卡器48和智能卡46,例如UICC和UICC读卡器,用于提供用户信息并且适于提供用于对网络用户进行认证和授权的认证信息。
设备50可以包括无线电接口电路52,其连接至控制器并且适于生成无线通信信号,例如用于与蜂窝通信网络、无线通信系统或无线局域网进行通信。设备50可以进一步包括天线44,其连接至无线电接口电路52,用于向其他设备传输在无线电接口电路52处生成的射频信号,以及用于从其他设备接收射频信号。
在本发明的某些实施方式中,设备50包括能够记录或检测各个帧的相机,这些帧继而被传递至编解码器54或控制器以进行处理。在本发明的某些实施方式中,该设备可以从另一设备接收视频图像数据以用于处理,而后传输和/或存储该视频图像数据。在本发明的某些实施方式中,设备50可以通过无线或有线连接接收图像以进行编码/解码。
针对图3,示出了本发明的实施方式可以在其中使用的系统示例。系统10包括可以通过一个或多个网络进行通信的多个通信设备。系统10可以包括任何有线或无线网络的组合,这些网络包括但不限于无线蜂窝电话网络(诸如,GSM、UMTS、CDMA网络等)、诸如由IEEE 802.x标准中的任一标准所定义的无线局域网(WLAN)、蓝牙个人局域网、以太网局域网、令牌环局域网、广域网和因特网。
系统10可以包括适于实现本发明实施方式的有线和无线通信设备或装置50。
例如,图3中所示系统示出了移动电话网络11和因特网28的表征。去往因特网28的连接性可以包括但不限于长距离无线连接、短距离无线连接和各种有线连接,包括但不限于,电话线、线缆线、电力线和类似的通信路径。
系统10中示出的示例性通信设备可以包括但不限于电子设备或装置50、个人数字助理(PDA)和移动电话14的组合、PDA 16、集成消息收发设备(IMD)18、桌面计算机20、笔记本计算机22。设备50可以是固定的,或者在由移动的人员携带时是移动的。设备50还可以位于交通模式中,包括但不限于,小汽车、卡车、出租车、公交车、火车、轮船、飞机、自行车、摩托车或任何类似的适当交通模式。
某些或其他设备可以通过通往基站24的无线连接25发送和接收呼叫和消息,并且通过通往基站24的无线连接25与服务提供商进行通信。基站24可以连接至网络服务器26,该网络服务器26允许移动电话网络11和因特网28之间的通信。该系统可以包括附加的通信设备和各种类型的通信设备。
通信设备可以使用各种传输技术进行通信,包括但不限于,码分多址(CDMA)、全球移动通信系统(GSM)、通用移动电信系统(UMTS)、时分多址(TDMA)、频分多址(FDMA)、传输控制协议/因特网协议(TCP/IP)、短消息传递服务(SMS)、多媒体消息传递服务(MMS)、电子邮件、即时消息传递服务(IMS)、蓝牙、IEEE 802.11和任何类似的无线通信技术。在实现本发明的各种实施方式中所涉及的通信设备可以使用各种介质进行通信,包括但不限于无线电、红外、激光、线缆连接和任何适当连接。
针对图4a,示出了适于实施本发明实施方式的视频编码器的框图。此外,针对图5,详细示出了该编码器的操作,该操作具体针对所选表面区域的插值示意了本发明的实施方式。
图4a将编码器示出为包括像素预测器302、预测误差编码器303和预测误差解码器304。图4a还将像素预测器302的实施方式示出为包括帧间预测器306、帧内预测器308、模式选择器310、过滤器316和参考帧存储器318。模式选择器310包括块处理器381和成本估计器382。图4b还描绘了帧内预测器308的实施方式,其包括多个不同的帧内预测模式:模式1、模式2…,模式n,并且还可以包括预测处理器309。模式选择器310还可以包括量化器384。
像素预测器302在帧间预测器306(其确定图像和经运动补偿的参考帧318之间的差值)和帧内预测器308(其仅基于当前帧或图片的已处理部分来确定针对图像块的预测)二者处接收待编码的图像300。帧间预测器和帧内预测器二者的输出被传递至模式选择器310。帧内预测器308可以具有不止一个帧内预测模式。因此,每个模式可以执行帧内预测,并且向模式选择器310提供预测的信号。模式选择器310也接收图像300的拷贝。
块处理器381确定将使用哪个编码模式来对当前块进行编码。如果块处理器381决定使用帧间预测模式,则其将帧间预测器306的输出传递至模式选择器310的输出。如果块处理器381决定使用帧内预测模式,则其将帧内预测器模式之一的输出传递至模式选择器310的输出。
根据某些示例性实施方式,像素预测器302按如下进行操作。帧间预测器306和帧内预测模式308执行对当前块的预测,以获取当前块的预测像素值。帧间预测器306和帧内预测模式308向块处理器381提供当前块的预测像素值,以用于针对选择哪个预测进行分析。除了当前块的预测值之外,块处理器381可以在某些实施方式中从帧内预测模式接收方向性帧内预测模式的指示。
块处理器381检查是选择帧间预测模式还是选择帧内预测模式。块处理器381可以使用诸如等式(1)的成本函数或某些其他方法来分析哪个编码方法针对某个或某些标准将提供最有效的结果。所选择的标准可以包括编码效率、处理成本和/或某些其他标准。块处理器381可以检查针对每个方向性(即,针对每个帧内预测模式和帧间预测模式)的预测,并且针对每个帧内预测模式和帧间预测模式计算成本值,或者块处理器381可以在选择预测模式时仅检查所有可用预测模式的子集。
当已经针对每个帧内预测模式(或帧内预测模式的选定集合)以及可能针对帧间预测模式计算了成本时,块处理器381选择一个帧内预测模式或帧间预测模式以便对当前块进行编码。如果选择了帧内预测模式,则选定的帧内预测模式包括还应当向解码器指示的方向性指示。
方向性帧内预测模式的指示可以包括角度,该角度在竖直预测的情况下,例如指示为当前块的一行相对于相邻块的参考像素行的位移,或者在水平预测的情况下,例如指示为当前块的一列相对于相邻块的参考像素列的位移。在某些实施方式中,在水平和竖直方向中被允许的位移可以取决于待编码的块大小。某些示例性范围是:针对水平和竖直预测二者,对于N×N个像素的块大小而言,为-N到+N个像素。其他示例范围为-2N×+2N个像素、-3N×+3N个像素、-2N×+4N个像素、-4N×+2N个像素等。角度还可以使用其他方式进行指示,例如,指示为整数值、浮点数等。
相同的或不同的帧内预测方向可以应用于图片块的不同组分(例如,亮度、色度或深度组分),或者用于一个或多个组分的帧内预测方向的指示可以用于限制一个或多个其他组分所允许的帧内预测方向的集合。
帧内预测方向可以根据相邻宏块进行预测。此预测可以基于相邻宏块的重建值、相邻宏块的帧内预测方向或相邻宏块的模式来实现。
所允许位移的示例在图8a中示出,其中方向性是针对当前块进行分析的。该位移是参考该块最后一行最后一个像素进行表达的,但是其也可以参考相同块的另一像素进行表达。从最后一行最后一个像素到相邻块不同像素的线示出了在此示例性实施方式中被允许的方向(位移)。相邻块的这些像素可以用作用于预测当前块像素的参考像素。参考像素在图8a中利用三角形进行指示。在此示例中,块大小为8×8,以及范围为从-N到+N,其中该位移可以从-8到+8个像素,其中分辨率为1个像素。在某些其他实施方式中,两个连续的、所允许的位移之间的差值可以是一个像素的部分,例如,1/2个像素,其中存在可从中进行选择的更多方向。
现在,将参考图8b-图8c来更详细地描述帧内预测模式的示例。在图8b和图8c的示例中,示出了帧内预测模式,其中位移为水平方向上+1个像素的位移。从图8b中可见,当前块的像素可以根据当前块上方的像素进行预测。这也可以称为竖直预测。为了获取预测的像素值,计算每个像素到参考行和参考列的投影(图8b)。如果投影落入两个参考像素之间(如图8c所示),则预测值例如根据这两个参考像素进行线性插值,否则便可以使用对应的参考像素。在图8b的示例中,当前块最后一行最后一个像素的预测值是通过使用位于参考行上、相对于待预测像素的下一列中的像素(即,位移为+1)而根据参考像素行获取的。相应地,当前块最后一行倒数第二个像素的预测值是通过使用位于参考行上、相对于待预测像素的下一列中的像素而根据参考像素行获取的。换言之,参考像素与当前块的最后一个像素位于相同的列中。针对最后一行上其他像素的预测值可以如图8b中的箭头所指示的分别获取。
在预测当前块其他行的像素值时,使用相同的方向值并且还使用相同的参考行/列。图8c示出了当前块第6行的预测。投影的角度系数与图8b的情况相同。在此示例性情况中,在预测第6行的像素时,待使用的参考值并非正好是参考行的实际参考值,而是可以通过使用两个相邻的参考像素来获取。这可以从图8c中可见,其中箭头(方向性矢量或投影)并未经由参考行的参考像素贯穿,而是位于两个相邻参考像素之间。在示例性实施方式中,参考值是通过对两个相邻像素值进行插值而获取的。该插值可以是线性插值、对数插值或某些其他插值。例如,当前块第6行上第一像素的预测值可以通过对第一像素的同一行上的参考像素值与第一像素左侧的下一行上的参考像素值进行插值而获得。第6行上其他像素的预测值可以相应地获得。
在预测当前块其他行的像素值时,可以使用相同的原理。如果方向性矢量(其也可以称为投影)未正好指向参考像素值,则对方向性矢量横贯的像素值进行插值,以获取像素的预测值。
应当注意,此处出现的表达“指向像素”和“横贯”仅是用于澄清本发明的示例性表达。在实际实现中,不需要存在指向像素的任何矢量或箭头,但是块处理器381可以使用某些计算算法来确定应当使用参考像素值还是利用两个相邻像素值的插值来获取预测值。
在某些情况下,用于待预测像素的参考值可能并不在当前块的上方,而是也可以与当前块并排。这种情况的示例在图8d中示出。在此示例中,针对当前块最后一行上最后一个像素,位移是-3个像素。图8d揭示了关于当前块第六行的第一个像素和第二个像素的方向性矢量并未横贯参考行的两个参考像素,而是横贯了参考行最左面像素的左侧。因此,在此示例性实施方式中,参考值是从参考列获取的,即,通过使用与当前块相邻(位于左侧)的列的像素。如果方向性矢量横贯穿过参考列的参考像素,则该像素值可以用作预测值。否则,将会使用插值,以使得方向性矢量在其间横贯的参考列的相邻参考像素值被插值。
根据以上描述的实施方式,在编码/解码过程从图像的左方向右方以及从上方向下方推进时,当前块的预测值可以通过使用当前块上方的行上已解码的参考像素和/或当前块左侧的列上已解码的参考像素来获取。如果编码/解码顺序与上述不同,则参考像素也可以与上述实施方式不同。
在此示例性实施方式中,像素的参考行和列包括已解码像素,并且位于当前块(正在处理的块)的紧挨着的上方和左侧,如图8a所示。然而,参考像素也可以是除这些像素之外的像素。
参考像素的值可以在被用作参考之前借助于其他手段进行过滤或处理。在某些实施方式中,可以用信号发送下列信息:参考像素是否被处理,以及如果被处理的话,对这些像素应用的是哪种处理。
在某些实施方式中,至少存在与所允许方向性数量一样多的帧内预测模式。因此,可以将每个帧内预测模式设计为仅产生一个帧内预测结果。在该情况下,关于投影以及在预测中使用哪些参考像素的信息可以实现为帧内预测模式中的参数或其他手段。例如,对于与位移为+1有关的帧内预测模式,可以存在这样的参数,其指示针对最后一行像素的预测值是根据当前块上方位移为+1的像素直接获取的(例如,通过拷贝),等等。还可以存在预测处理器309,其可以用于针对每个方向性执行帧内预测,以及其可以知晓这些参数。
预测的像素值或者由可选的量化器384量化的预测的像素值被提供作为模式选择器的输出。
模式选择器的输出被传递至第一求和设备321。第一求和设备可以从图像300中减去像素预测器302的输出,以产生将向预测误差编码器303输入的第一预测误差信号320。
像素预测器302进一步从初步重建器339接收图像块的预测表征312与预测误差解码器304的输出338的组合。经初步重建的图像314可以被传递至帧内预测器308和过滤器316。接收初步表征的过滤器316可以对初步表征进行过滤,以及输出最终重建的图像340,该图像340可以保存在参考帧存储器318中。参考帧存储器318可以连接至帧间预测器306,以用作在帧间预测操作中与将来的图像300进行比对的参考图像。
像素预测器302的操作可以配置用于实施本领域中公知的任何已知像素预测算法。
像素预测器302还可以包括过滤器385,用于在将预测的值从像素预测器302输出之前对该预测的值进行过滤。
在某些其他实施方式中,预测值可以通过不是使用相邻像素而是使用彼此远离的像素来获得。这种方式的示例在图8e中示出。例如,如果待预测像素的投影指向参考像素行的第三参考像素和第四参考像素之间,如图8e中的箭头810所示,则预测值可以通过对第二参考像素值和第五参考像素值进行插值而获得。相反,如果待预测像素的投影指向一个参考像素值,即,并非位于两个值之间,如图8e中的箭头811所示,则预测值可以通过对该一个参考像素右侧上的参考像素和左侧上的参考像素进行插值而获得。在箭头811的示例中,在插值中使用第六和第七参考值。
预测误差编码器302和预测误差解码器304的操作将在下文中做进一步详细描述。在以下示例中,编码器利用16×16像素宏块来生成图像,这些宏块将形成整个图像或图片。由此,对于下述示例,像素预测器302输出一系列预测的大小为16×16个像素的宏块,以及第一求和设备321输出一系列的16×16像素残差数据宏块,其可以代表图像300中的第一宏块相对于预测宏块(像素预测器302的输出)的差值。应当理解,可以使用其他大小的宏块。
预测误差编码器303包括变换块342和量化器344。变换块342将第一预测误差信号320变换至变换域。该变换例如是DCT变换。量化器344对变换域信号(例如,DCT系数)进行量化,以形成经量化的系数。
熵编码器330接收预测误差编码器的输出,并且可以在该信号上执行适当的熵编码/可变长度编码,以提供误差检测和纠正能力。可以采用任何适当的熵编码算法。
预测误差解码器304从预测误差编码器303接收输出,并且执行预测误差编码器303的相反过程,以产生解码的预测误差信号338,该信号338继而在第二求和设备339处与图像块预测表征312组合,以产生初步重建的图像314。预测误差解码器可被视为包括去量化器346,该去量化器346将量化的系数值(例如,DCT系数)去量化以重建变换信号;以及逆变换块348,该逆变换块348对重建的变换信号执行逆变换,其中逆变换块348的输出包括重建的块。预测误差解码器还可以包括宏块过滤器(未示出),其可以根据进一步的已解码信息和过滤器参数来对该重建宏块进行过滤。
模式选择器310的操作和实现进一步针对图5详细示出。在基于帧间预测器306的输出、帧内预测器308的输出和/或图像信号300的预测信号的基础上,块处理器381确定使用哪个编码模式来对当前图像块进行编码。此选择在图5中描述为块500。块处理器381可以针对输入至模式选择器310的预测信号来计算失真率成本(RD)值或另一成本值,以及选择使所确定的成本最小的编码模式503、504。
模式选择器310提供对当前块编码模式的指示(501)。该指示可以被编码并插入至比特流中,或者与图像信息一起存储至存储器中。在结合了帧内预测模式的情况下,可能需要将所选帧内预测模式的某些指示包括在比特流中。例如,该指示可以包括关于帧内预测模式的方向性的信息。在某些示例性实施方式中,关于方向性的信息可以被指示为位移值。在某些实施方式中,位移值指示使用哪个参考值来获取当前块最后一行最后一个像素的预测值。在某些其他实施方式中,方向性的角度系数包括在比特流中。在又一些实施方式中,所允许的方向性值(帧内预测模式)被编制索引,并且所选帧内预测模式的索引包括在比特流中。
指示也可以不这样包括在比特流中,而是可以例如通过熵编码进行编码。预测方向也可以以预测式方式进行熵编码,该预测式方式将图像块的邻区中使用的预测方向、之前预测方向的统计或其他变量纳入考虑。
如果选择了帧内预测模式,则利用帧内预测方法对块进行预测(503)。相反地,如果选择了帧间预测模式,则利用帧间预测方法对块进行预测(504)。
图4b更详细描述了编码器示例性实施方式的帧内预测器308。帧内预测器308可以在预测处理器309中实现或者实现为另一电路。预测处理器309可以是单独的处理器,或者其可以是与块处理器310相同的处理器。帧内预测器308包括像素选择器,用于选择待预测的像素。还可以存在方向性定义器401,其确定将用于预测所选像素的值的预测模式的方向性。方向性定义器401可以从参数存储器404接收某些参数。当已经确定了方向性时,投影定义器402定义所选像素向参考像素集合的投影。投影定义器402也可以从参数存储器404接收某些参数。帧内预测器308可以进一步包括预测定义器403,其使用来自投影定义器和参考像素集合的信息来确定针对所选像素的预测值。帧内预测器308可以重复上述部分或所有步骤,以定义用于块的所有像素的预测值。在某些实施方式中,不需要针对一个块的每个像素确定方向性,而是针对一个块的每个像素使用相同的方向性。
在示例性实施方式中,如图9中所描绘的,图像的比特流包括图像起始的指示910、每个图像块的图像信息920和图像结束的指示930。每个图像块的图像信息920可以包括预测模式的指示922、方向性的指示923和块的像素值的指示924,在已经针对图像块使用了帧内预测或帧间预测时,该块的像素值的指示924实际上可以包括残差信号的系数。显然,比特流还可以包括其他信息。此外,这仅是比特流的简化图像,在实际实现中,比特流的内容可以不同于图9中描绘的内容。
该比特流可以进一步由熵编码器330进行编码。
尽管已经在上文针对为16×16个像素的宏块大小描述了实施方式,应当理解,描述的方法和设备可以被配置用于处理不同像素大小的宏块。
在下文中,解码器600的示例性实施方式的操作针对图6进行更详细描述。
为了完整性,在下文描述了适当的解码器。在解码器侧,执行类似的操作以重建图像块。图6示出了适于采用本发明实施方式的视频解码器的框图。该解码器示出了熵解码器600,其对接收的信号执行熵解码。熵解码器由此执行上述编码器的熵编码器330的逆操作。熵解码器600向预测误差解码器602和像素预测器604输出熵解码的结果。
像素预测器604接收熵解码器600的输出。像素预测器604内的预测器选择器614确定将执行帧内预测、帧间预测还是插值操作。预测器选择器可以进一步向第一组合器613输出图像块的预测表征616。图像块的预测表征616结合重建的预测误差信号612一起使用,以生成初步重建的图像618。初步重建的图像618可以在预测器614中使用,或者可以被传递至过滤器620。过滤器620应用过滤,其输出最终重建信号622。最终重建的信号622可以存储在参考帧存储器624中,参考帧存储器624进一步连接至预测器614以进行预测操作。
在帧内预测的情况下,像素预测器640还可以接收关于方向性的指示,其中像素预测器604可以选择对应的帧内预测模式以用于解码。
预测误差解码器602接收熵解码器600的输出。预测误差解码器602的去量化器692可以对熵解码器600的输出进行去量化,以及逆变换块693可以对去量化器692输出的去量化信号输出执行逆变换操作。熵解码器600的输出还可以指示未应用预测误差信号,以及在此情况下,预测误差解码器产生全0输出信号。在利用本发明示例性实施方式的情况下便是这样。然而,本发明的某些其他实施方式应用预测误差解码器单元,以对非0预测误差信号进行解码。
解码器选择16×16像素残差宏块以进行重建。对待重建的16×16像素残差宏块的选择在步骤700中示出。
解码器接收关于在当前块已被编码时使用的编码模式的信息。该指示被解码,并且在需要的时候,该指示被提供至预测选择器614的重建处理器691。重建处理器691检查该指示(图7中的块701),以及在该指示指示该块已使用帧内预测进行编码时选择帧内预测模式中的一个(块703),以及如果该指示指示该块已使用帧间预测模式编码,则选择帧间预测模式(块704)。在当前块已使用帧内预测进行编码时,解码器还可以接收关于当前块的方向性的信息。在此上下文中,仅更详细地描述帧内预测模式中解码器的操作。
在帧内预测模式中,重建处理器691对关于方向性的信息进行解码(块705)。在某些实施方式中,方向性指示足以确定可以如何获取针对待解码块的预测值,以及在帧内预测中使用哪些参考像素。重建处理器691还确定编码器已在帧内预测中使用了哪些参考点(块706),以及提供当前块的预测值(块707)。
在帧内预测模式中,重建处理器691可以向预测器块695提供初步重建的图像618,以便重建当前块的像素值。
上文描述的本发明实施方式针对单独的编码器和解码器设备描述了编解码器,以便辅助理解所涉及的过程。然而,应当理解,设备、结构和操作可以实现为单个编码器-解码器设备/结构/操作。此外,在本发明的某些实施方式中,编码器和解码器可以共享某些或所有公共元素。
尽管上述示例描述了在电子设备内的编解码器中操作的本发明实施方式,但是应当理解,下文描述的本发明可以实现为任何视频编解码器的部分。由此,例如,本发明的实施方式可以实现在视频编解码器中,该视频编解码器可以通过固定或有线通信路径来实现视频编码。
由此,用户设备可以包括诸如在上文的本发明实施方式中描述的视频编解码器。
应当理解,术语“用户设备”意在覆盖任何适当类型的无线用户设备,诸如,移动电话、便携式数据处理设备或便携式web浏览器。
此外,公共陆地移动(PLMN)的元件也可以包括上文所述的视频编解码器。
通常,本发明的各种实施方式可以以硬件或专用电路、软件、逻辑或其任何组合来实现。例如,某些方面可以以硬件实现,而其他方面可以以固件或可由控制器、微处理器或其他计算设备执行的软件来实现,但本发明不限于此。虽然本发明的各种方面可以示出和描述为框图、流程图或通过使用一些其他图示表示,但是应该理解,此处描述的这些框、设备、系统、技术或方法可以通过作为非限制性示例的硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某些组合来实现。
本发明的实施方式可以由计算机软件实现,这些计算机软件可以由移动设备的数据处理器(诸如,在处理器实体中)实现;或者由硬件实现;或者由软件和硬件的组合实现。此外,在此方面中,应当注意,附图中逻辑流的任何块可以代表程序步骤,或互联的逻辑电路、块和功能,或者程序步骤和逻辑电路、块和功能的组合。软件可以存储在这种物理介质上,诸如存储器芯片、处理器内实现的存储器块、诸如硬盘或软盘的磁介质,和诸如例如DVD和其数据变体(CD)的光学介质。
存储器可以是适合本地技术环境的任何类型,并且可以使用任何合适的数据存储技术来实现,诸如基于半导体的存储器设备、磁性存储器设备和系统、光学存储器设备和系统、固定存储器和可移动存储器。数据处理器可以是适合本地技术环境的任何类型,并且作为非限制性示例可以包括通用计算机、专用计算机、微处理器、数字信号处理器(DSP)和基于多核处理器架构的处理器中的一个或多个。
可以以诸如集成电路模块之类的各种组件实现本发明的实施方式。集成电路的设计总体上来说是高度自动化的过程。复杂和强有力的软件工具可用于将逻辑级设计转换为将被蚀刻以及形成在半导体衬底上的半导体电路设计。
例如加利福尼亚州芒廷维尤市Synopsys公司和加利福尼亚州旧金山市Cadence Design公司所提供的程序之类的程序使用建立好的设计规则以及预存设计模块库在半导体芯片上自动地对导体进行布线和对部件进行定位。一旦已经完成用于半导体电路的设计,可以将标准化电子格式(例如Opus、GDSII等)的所得设计发送到半导体工厂或者“加工厂”进行制造。
借助于示例性而非限制性示例提供了本发明示例性实施方式的完整且信息性描述。然而,在结合附图和所附权利要求阅读时,对于参考前文描述的相关领域技术人员而言,多种修改和改变将变得易见。然而,本发明教导的所有这种和类似修改仍落入本发明的范围内。