会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 专利权 / 国际初步审查 / 国际初步审查要求 / 选定 / 带有块合并的视频编码器以及与其一起使用的方法

带有块合并的视频编码器以及与其一起使用的方法

阅读:161发布:2021-02-24

IPRDB可以提供带有块合并的视频编码器以及与其一起使用的方法专利检索,专利查询,专利分析的服务。并且本公开内容涉及带有块合并的视频编码器以及与其一起使用的方法。视频编码器包括运动搜索模块,所述运动搜索模块确定所述多个图像中的选定图像的区域的运动搜索运动矢量。所述运动搜索模块通过基于对与所述选定图像的多个块相关联的成本矩阵的评估而合并所述选定图像的所述多个块中的选定块,来确定所述区域。,下面是带有块合并的视频编码器以及与其一起使用的方法专利的具体信息内容。

1.一种用在处理包括图像序列的视频信号的视频处理设备中的视频编码器,所述视频编码器包括:运动搜索模块,所述运动搜索模块确定所述图像序列中的选定图像的区域的运动搜索运动矢量,其中,所述运动搜索模块通过基于对与所述选定图像的多个块相关联的至少一个成本矩阵的评估而合并所述选定图像的所述多个块中的选定块,来确定所述区域,其中,所述评估包括通过标识所述多个块中的第一块的第一成本矩阵的最小值条目以及将该最小值条目与阈值相比较,来确定第一成本矩阵何时缺乏占优势的最小值,其中如果成本矩阵的最小成本低于优势阈值,则该最小成本是占优势的最小值。

2.如权利要求1所述的视频编码器,其中,所述多个块中的所述选定块包括多个近邻的块。

3.如权利要求1所述的视频编码器,其中,所述评估包括确定第一块的第一成本矩阵何时包括第一小成本部分,以及第二块的第二成本矩阵何时包括与第一小成本部分重叠的第二小成本部分,其中小成本部分是成本矩阵中的、成本小于小成本阈值的部分。

4.如权利要求1或3所述的视频编码器,其中,所述多个块中的所述选定块进一步通过比较第一块的第一纹理与第二块的第二纹理、并确定第一纹理和第二纹理何时变化小于纹理阈值来确定。

5.如权利要求4所述的视频编码器,其中,当第一成本矩阵缺乏所述占优势的最小值、第二小成本部分与第一小成本部分重叠、并且第一纹理和第二纹理变化小于所述纹理阈值时,所述运动搜索模块合并第一块与第二块。

6.如权利要求1所述的视频编码器,其中,所述运动搜索模块通过将与所述多个块中的所述选定块相关联的成本矩阵合并到所述区域的合并的成本矩阵中,来确定所述区域的所述运动搜索运动矢量;

可选地,所述运动搜索模块通过确定所述合并的成本矩阵的最小值,来确定所述区域的所述运动搜索运动矢量。

7.如权利要求5所述的视频编码器,其中,所述合并的成本矩阵基于与所述多个块中的所述选定块相关联的成本矩阵的加权总和而确定。

8.如权利要求1-3和5-7中任一项所述的视频编码器,其中,所述运动搜索模块通过对多个近邻块的迭代评估来确定所述区域。

9.一种用在编码包括图像序列的视频信号的视频编码器中的方法,所述方法包括:

通过基于对与所述图像序列中的选定图像的多个块相关联的至少一个成本矩阵的评估而合并所述选定图像的所述多个块中的选定块,来确定所述选定图像的区域的运动搜索运动矢量,其中,所述评估包括通过标识所述多个块中的第一块的第一成本矩阵的最小值条目以及将该最小值条目与阈值相比较,来确定第一成本矩阵何时缺乏占优势的最小值,其中如果成本矩阵的最小成本低于优势阈值,则该最小成本是占优势的最小值。

10.如权利要求9所述的方法,其中,所述评估还包括确定第一块的第一成本矩阵何时包括第一小成本部分,以及第二块的第二成本矩阵何时包括与第一小成本部分重叠的第二小成本部分,其中小成本部分是成本矩阵中的、成本小于小成本阈值的部分。

11.如权利要求10所述的方法,其中,所述多个块中的所述选定块进一步通过比较第一块的第一纹理与第二块的第二纹理、并确定第一纹理和第二纹理何时变化小于纹理阈值来确定。

12.如权利要求11所述的方法,其中,

当第一成本矩阵缺乏所述占优势的最小值、第二小成本部分与第一小成本部分重叠、并且第一纹理和第二纹理变化小于所述纹理阈值时,第一块与第二块合并;以及/或者确定所述区域的所述运动搜索运动矢量包括将与所述多个块中的所述选定块相关联的成本矩阵合并到所述区域的合并的成本矩阵中。

13.一种非暂时性计算机可读介质,包括存储在该非暂时性计算机可读介质上的指令,所述指令当被执行时使得执行如权利要求9-12中任一项所述的方法的步骤。

14.一种用于编码包括图像序列的视频信号的设备,包括:

一个或多个处理器;以及

存储器,存储当被执行时使所述一个或多个处理器执行如权利要求9-12中任一项所述的方法的步骤的指令。

说明书全文

带有块合并的视频编码器以及与其一起使用的方法

技术领域

[0001] 本公开内容涉及在诸如视频编码器/解码器之类的设备中使用的编码。

背景技术

[0002] 视频编码已经变为现代的视频处理设备的重要问题。稳健(robust)的编码算法使视频信号能以减小的带宽传输并存储在较小的存储器中。然而,这些编码方法的精度面临习惯于较大分辨率和较高图像质量的用户的审视。发布了对于许多编码方法的标准,包括H.264标准,也称为MPEG-4部分10或高级视频编码(AVC)。尽管此标准阐述了许多强有力的技术,但是,可以有进一步的完善,以改善这样的方法的实现的性能和速度。必须类似地解码通过这些编码方法所编码的视频信号,以在大多数视频显示设备上播放。
[0003] 对视频信号的高效且快速的编码和解码对许多视频设备的实现是重要的,特别是对家用视频设备。运动估计对视频编码可以是重要的。准确的运动估计节省编码中的比特,并且对于编码质量也是重要的,特别是在高量化水平时。

发明内容

[0004] 根据本公开内容的一个方面,此处讨论了一种用在处理包括图像序列的视频信号的视频处理设备中的视频编码器。所述视频编码器包括运动搜索模块,所述运动搜索模块确定所述图像序列中的选定图像的区域的运动搜索运动矢量,其中,所述运动搜索模块通过基于对与所述选定图像的多个块相关联的成本矩阵的评估而合并所述选定图像的所述多个块中的选定块,来确定所述区域。
[0005] 根据本公开内容的另一个方面,此处讨论了一种用在编码包括图像序列的视频信号的视频编码器中的方法。所述方法包括:通过基于对与所述图像序列中的选定图像的多个块相关联的成本矩阵的评估而合并所述选定图像的所述多个块中的选定块,来确定所述选定图像的区域的运动搜索运动矢量。
[0006] 根据本公开内容的再一个方面,此处讨论了某种计算机软件。当由计算机执行时,所述计算机软件被布置成执行此处所讨论的方法;可选地,所述计算机软件存储在计算机可读介质上。

附图说明

[0007] 图1-3呈现了根据本公开内容的各实施例的各种视频设备的示意图表示。
[0008] 图4呈现了根据本公开内容的一实施例的视频设备的框图表示。
[0009] 图5呈现了根据本公开内容的一实施例的视频编码器/解码器的框图表示。
[0010] 图6呈现了根据本公开内容的一实施例的视频编码操作的流程框图。
[0011] 图7呈现了根据本公开内容的一实施例的视频编码操作的流程框图。
[0012] 图8呈现了根据本公开内容的一实施例的图像的框图表示。
[0013] 图9呈现了根据本公开内容的一实施例的块的框图表示。
[0014] 图10呈现了根据本公开内容的一实施例的搜索区域的框图表示。
[0015] 图11呈现了根据本公开内容的一实施例的成本矩阵的框图表示。
[0016] 图12呈现了根据本公开内容的一实施例的方法的流程图表示。
[0017] 图13呈现了根据本公开内容的一实施例的方法的流程图表示。
[0018] 图14呈现了根据本公开内容的一实施例的视频分发系统375的框图表示。
[0019] 图15呈现了根据本公开内容的一实施例的视频存储系统179的框图表示。

具体实施方式

[0020] 图1-3呈现了根据本公开内容的各实施例的各种视频设备的示意图表示。具体而言,带有内嵌的数字视频记录器功能或独立数字视频记录器的机顶盒10、计算机20和便携式计算机30示出了包含其中包括本公开内容的一个或多个特征或功能的视频处理设备125的电子设备。尽管示出了这些特定设备,但是视频处理设备125包括能够根据结合图4-15以及权利要求书所描述的方法和系统来编码、解码和/或转码视频内容的任何设备。
[0021] 图4呈现了根据本公开内容的一实施例的视频设备的框图表示。具体而言,此视频设备包括接收模块100,诸如电视接收器、有线电视接收器、卫星广播接收器、宽带调制解调器、3G收发器或者能够接收接收到的信号98并通过时分去复用、频分去复用或其他去复用技术来提取一个或多个视频信号110的其他信息接收器或收发器。视频处理设备125包括视频编码器/解码器102,并耦合到接收模块100,以编码、解码或转码视频信号用于以对应于视频显示设备104的格式存储、编辑和/或播放。
[0022] 在本公开内容的一实施例中,接收到的信号98是广播视频信号,诸如电视信号、高清晰度电视信号、增强清晰度电视信号或者通过无线介质(或者直接或者通过一个或多个卫星或其他中继站)或通过有线电视网络、光网络或其他传输网络而传输的其他广播视频信号。另外,接收到的信号98可以从存储的视频文件生成,从诸如磁带、磁盘或光盘之类的记录介质播放,并可包括通过诸如局域网、广域网、城域网或因特网之类的公众或专用网络传输的流式视频信号。
[0023] 视频信号110可包括以若干种视频格式中的任何一种而格式化的模拟视频信号,包括美国国家电视系统委员会(NTSC)、逐行倒相制(PAL)或顺序与存储彩色电视系统(SECAM)。经处理的视频信号112可包括符合数字视频编解码器标准(诸如H.264、MPEG-4部分10高级视频编码(AVC))或另一数字格式(诸如运动图像专家组(MPEG)格式(诸如MPEG1、MPEG2或MPEG4)、QuickTime格式、Real Media格式、Windows Media Video(WMV)或Audio Video Interleave(AVI)等)的数字视频信号。
[0024] 视频显示设备104可包括电视机、监视器、计算机、手持式设备或者直接或间接地(诸如通过投影)基于对作为流式视频信号或通过播放存储的数字视频文件的经处理的视频信号112解码来创建光学图像流的其他视频显示设备。
[0025] 图5呈现了根据本公开内容的一实施例的视频编码器/解码器的框图表示。具体而言,视频编码器/解码器102可以是根据高效率视频编码标准(HEVC)、H.264标准、MPEG-4标准、VC-1(SMPTE标准421M)或其他标准的许多功能和特征操作,以通过编码、解码或转码视频信号110来生成经处理的视频信号112的视频编解码器。视频信号110可选地通过信号接口198来格式化以供编码、解码或转码。
[0026] 视频编码器/解码器102包括可以使用单个处理设备或多个处理设备来实现的处理模块200。这样的处理设备可以是微处理器、协处理器、微控制器、数字信号处理器、微计算机、中央处理单元、现场可编程门阵列、可编程逻辑器件、状态机、逻辑电路系统、模拟电路系统、数字电路系统和/或基于存储在存储器(诸如存储器模块202)中的操作指令来操纵信号(模拟和/或数字)的任何设备。存储器模块202可以是单个存储器设备或多个存储器设备。这样的存储器设备可包括硬盘驱动器或其他的盘驱动器、只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪存、高速缓存存储器和/或存储数字信息的任何设备。注意,当处理模块通过状态机、模拟电路系统、数字电路系统和/或逻辑电路系统来实现其功能中的一个或多个时,存储对应的操作指令的存储器可嵌入在包括状态机、模拟电路系统、数字电路系统和/或逻辑电路系统的电路系统内,或者在该电路系统外部。
[0027] 处理模块200以及存储器模块202通过总线221耦合到信号接口198和多个其他模块,诸如运动搜索模块204、运动细化模块206、直接模式模块208、帧内预测模块210、模式判断模块212、重构模块214、熵编码/重新排序模块216、近邻管理模块218、转发变换和量化模块220、去块效应滤波器模块222、以及场景检测模块230。在本公开内容的一实施例中,视频编码器/解码器102的模块可以通过VIXS Systems Inc.销售的XCODE处理设备以及软件或固件来实现。另选地,这些模块中的一个或多个可以使用其他硬件来实现,诸如另一处理器或硬件引擎,其包括状态机、模拟电路系统、数字电路系统和/或逻辑电路系统,并且取决于特定的实现而或者独立地操作或者在处理模块200或其他模块中的一个或多个的控制和/或指示下操作。还应注意,本公开内容的软件实现可以存储在诸如磁盘或光盘、只读存储器或随机存取存储器之类的有形存储介质中,还可以作为制品来生产。尽管示出了特定的总线体系结构,但是根据本公开内容,可以同样实现使用一个或多个模块之间的直接连接和/或额外的总线的另选的体系结构。
[0028] 视频编码器/解码器102可以在各种操作模式下操作,这些操作模式包括由模式选择信号的值设置的编码模式和解码模式,模式选择信号可以是用户定义的参数、用户输入、寄存器值、存储器值或其他信号。另外,在视频编码器/解码器102中,编码或解码模式用来编码或解码输入信号的特定标准可以由标准选择信号来确定,标准选择信号也可以是用户定义的参数、用户输入、寄存器值、存储器值或其他信号。在本公开内容的一实施例中,编码模式的操作使用多个模块,每一个模块都执行特定的编码功能。解码的操作也使用这些多个模块中的至少一个来在解码中执行类似的功能。如此,诸如运动细化模块206(更具体而言是其中所使用的内插滤波器)以及帧内预测模块210之类的模块可以用于编码和解码过程两者中,以当视频编码器/解码器102在集成电路上实现时节省体系结构基板面(real estate)或实现其他效率。另外,出于类似的目的,直接模式模块208、模式判断模块212、重构模块214、变换和量化模块220、去块效应滤波器模块222或其他功能特定的模块的一些或全部组件可以在编码和解码过程两者中使用。
[0029] 运动补偿模块150包括运动搜索模块204,该运动搜索模块204基于从视频信号110的帧和/或场的列和行分割为像素值(诸如64像素x64像素、32像素x32像素、16像素x16像素或某种其他大小)的宏块,来处理来自视频信号110的图片。在本公开内容的一实施例中,运动搜索模块对于视频信号的场和/或帧的每一个宏块或宏块对确定一个或多个运动矢量,这些运动矢量表示宏块(或子块)从视频信号的参考帧或参考场到当前帧或场的位移。在操作中,运动搜索模块在搜索范围内操作,以将当前帧或场中的宏块(或子块)定位到整数像素水平精度,诸如1像素的分辨率。基于成本公式评估候选位置,以确定具有最有利的(诸如最低)成本的位置和对应的运动矢量。
[0030] 尽管上文已经结合完全分辨率搜索描述了运动搜索模块204,但是,运动搜索模块204可以操作以部分地基于缩放的或缩小的分辨率图像来确定候选运动搜索运动矢量。具体而言,运动搜索模块204可以通过缩小传入的图像和参考图像以生成多个缩小的图像来操作。接着,运动搜索模块204基于缩小的图像,生成缩小分辨率的多个运动矢量候选。运动搜索模块204基于运动矢量候选对全尺寸图像进行操作,以生成完全分辨率的运动搜索运动矢量。在另一个实施例中,运动搜索模块204可以完全基于缩小分辨率的图像,生成运动搜索运动矢量以供运动细化模块206细化。
[0031] 运动估计对视频编码是重要的。准确的运动估计节省编码中的比特,并且对于编码质量可能也是重要的,特别是在高量化水平时。在许多视频流上,存在带有很少的细节的区域。当较小的块大小用于运动估计时,有许多类似的本地成本最小值。如果使用较大的块大小,则对由包含不同的运动的块覆盖的较大的区域的搜索结果可能是错误的。
[0032] 在本公开内容的一实施例中,运动搜索模块204通过动态搜索区域与块合并方法来确定选定的图像的区域的运动搜索运动矢量。具体而言,运动搜索模块204通过基于对与选定的图像的多个块相关联的成本矩阵的评估而合并选定的图像的所述多个块中的选定块,来确定区域。当在缩放的运动估计中采用时和/或对于带有很少的细节或重复模式的区域,特别是对于支持块分区的许多选项的HEVC,此方法可以是高效的。将结合随后的图8-13描述此包括此动态搜索区域与块合并方法的进一步的细节。
[0033] 运动细化模块206基于运动搜索运动矢量,生成对于多个宏块中的每一个宏块的细化运动矢量。在本公开内容的一实施例中,运动细化模块对于视频信号110的场和/或帧的每一个宏块或宏块对,确定细化运动矢量,这些细化运动矢量表示宏块从视频信号的参考帧或参考场到当前帧或场的位移。
[0034] 基于像素和内插的像素,运动细化模块206将当前帧或场中的宏块的位置细化到较大的像素水平精度,诸如到1/4像素的分辨率或其他子像素分辨率。候选位置还基于成本公式被评估,以确定具有最有利的(诸如最低)成本的位置和细化的运动矢量。与运动搜索模块的情况相同,成本公式可以基于参考宏块和候选宏块像素值之间的绝对差值的总和(SAD)以及加权的速率项(weighted rate term),该加权的速率项表示编码候选运动矢量和预测的运动矢量(PMV)(基于当前宏块右边的近邻宏块,并基于从视频信号的前一行的近邻当前宏块的运动矢量)或估计的预测运动矢量(基于从视频信号的前一行的近邻当前宏块的运动矢量而确定的)之间的差值需要花费的比特数。在本公开内容的一实施例中,成本计算避免使用当前宏块内的近邻子块。如此,运动细化模块206能够对宏块进行操作,以同时确定宏块的每一个子块的运动搜索运动矢量。
[0035] 当使用估计的预测运动矢量时,成本公式避免使用来自当前行的运动矢量,运动搜索模块204和运动细化模块206两者可以并行地对视频信号110的整行进行操作,以同时确定行中的每一个宏块的细化的运动矢量。
[0036] 直接模式模块208基于与每一个宏块近邻的宏块,生成该宏块的直接模式运动矢量。在本公开内容的一实施例中,直接模式模块208操作,以基于视频信号110的B切片(slice)的候选直接模式运动矢量的成本,诸如以由H.264标准所定义的方式,确定直接模式运动矢量和与该直接模式运动矢量相关联的成本。
[0037] 尽管以前的模块专注于运动矢量的帧间预测,但是,帧内预测模块210生成多个宏块中的每一个宏块的最佳帧内预测模式。在本公开内容的一实施例中,帧内预测模块210如由H.264标准所定义的那样操作,然而,同样可以使用其他帧内预测技术。具体而言,帧内预测模块210操作,以基于根据近邻宏块确定的运动矢量来评估多个帧内预测模式,诸如帧内4x4或帧内16x16,它们是亮度预测模式、色度预测(8x8)或其他帧内编/解码,以确定最佳的帧内预测模式和相关联的成本。
[0038] 模式判断模块212基于与细化的运动矢量、直接模式运动矢量以及最佳的帧内预测模式、并且特别是与产生最有利的(最低)成本的方法相关联的成本或者其他可接受的成本,确定多个宏块中的每一个宏块的最终宏块成本。重构模块214通过生成多个宏块中的每一个宏块的残余亮度和/或色度像素值,完成运动补偿。
[0039] 视频编码器/解码器102的转发变换和量化模块220通过将残余像素值转换编码和量化为已量化变换的系数,来生成经处理的视频信号112,已量化变换的系数可以被进一步编码(诸如通过在熵编码模块216中的熵编码)、通过去块效应滤波器模块222被滤波。在本公开内容的一实施例中,可以可选地通过信号接口198执行进一步的格式化和/或缓冲,并且经处理的视频信号112可以表示为来自其中的输出。
[0040] 如上文所讨论的,运动补偿模块150的许多模块基于为近邻宏块确定的运动矢量进行操作。近邻管理模块218生成并存储多个宏块中的至少一个宏块的近邻数据,以供当对多个宏块中的至少一个近邻宏块进行操作时,由运动搜索模块204、运动细化模块206、直接模式模块208、帧内预测模块210、熵编码模块216和去块效应滤波器模块222中的至少一个检索。在本公开内容的一实施例中,诸如链接列表、阵列或一个或多个寄存器之类的数据结构被用来在缓冲区、高速缓存、共享存储器或其他存储器结构中关联并存储每一个宏块的近邻数据。近邻数据包括运动矢量、参考索引、量化参数、编码的块模式、宏块类型、帧内/帧间预测模块类型相邻像素值和/或来自本公开内容的模块或过程中的一个或多个用来计算当前宏块的结果的近邻宏块和/或子块的其他数据。例如,为了使运动搜索模块204和运动细化模块206确定预测的运动矢量,需要近邻的参考索引和运动矢量两者。除此数据之外,直接模式模块208需要前面的参考图像的共同定位(co-located)的宏块的运动矢量。去块效应滤波器模块222根据通过使用近邻的运动矢量、量化参数、参考索引以及编码的块模式等确定的一组滤波强度来进行操作。对于熵编码模块216中的熵编码,需要运动矢量差异(MVD)、宏块类型、量化参数增量、帧间预测类型等等。
[0041] 考虑这样的示例:特定的宏块MB(x,y)需要来自宏块MB(x-1,y-1)、MB(x,y-1)、MB(x+1,y-1)和MB(x-1,y)的近邻数据。在现有技术编解码器中,近邻数据的准备需要计算相关近邻子块的位置。然而,该计算不是如在常规视频编码标准中那样简单。例如,在H.264编码中,对多个分区类型的支持使子块的大小与形状有显著差异。此外,对宏块自适应帧和场(MBAFF)编码的支持使宏块处于或者帧模式或者场模式下。对于每一种模式,在H.264中定义了一个近邻派生方法。如此,计算需要相应地考虑每一种模式。另外,为了获得所需的全部近邻数据,需要调用派生四次,因为有四个涉及的近邻:MB(x-1,y-1)、MB(x,y-1),、MB(x+1,y-1),以及MB(x-1,y)。如此,对当前宏块MB(x,y)的编码直到已经确定了四个近邻的位置并且已经从存储器中获取了它们的数据才可以开始。
[0042] 在本公开内容的一实施例中,当处理每一宏块并确定最终的运动矢量和经编码的数据时,近邻数据存储在将需要此数据的每一个近邻宏块的数据结构中。由于预先准备了近邻数据,因此,当前宏块MB(x,y)可以当它准备好被处理时立即开始。准确定位近邻的负担事实上被重新分配给其前面的宏块。因此,宏块的编码可以更精简(streamline)、更快速。换言之,当对于MB(x-1,y-1)确定最终的运动矢量时,近邻数据被存储以用于有待于处理的每一个近邻宏块,包括MB(x,y)以及其他近邻宏块,诸如MB(x,y-1)、MB(x-2,y)MB(x-1,y)。类似地,当对于MB(x,y-1)、MB(x+1,y-1)和MB(x-1,y)确定了最终的运动矢量时,近邻数据被存储以用于对应于这些有待于处理的宏块(包括MB(x,y))中的每一个的每一个近邻宏块。如此,当MB(x,y)准备好被处理时,近邻数据已经存储在对应于此宏块的数据结构中,供快速检索。
[0043] 接着,可以使用检索到的数据进行运动补偿。具体而言,运动搜索模块204和/或运动细化模块可以使用检索到的近邻数据为多个宏块中的每一个宏块生成至少一个预测的运动矢量(诸如标准PMV或估计的预测运动矢量)。进一步地,直接模式模块208可以使用检索到的近邻数据为多个宏块中的每一个宏块生成至少一个直接模式运动矢量,帧内预测模块210可以使用检索到的近邻数据为多个宏块中的每一个宏块生成最佳帧内预测模式,并且编码模块216可以在熵编码中使用检索到的近邻数据,每一项都如在HEVC标准、H.264标准、MPEG-4标准、VC-1(SMPTE标准421M)中所阐述的或通过其他标准或其他手段所阐述的。
[0044] 场景检测模块230基于例如视频信号110中的运动检测,检测视频信号110中的场景变化。在本公开内容的一实施例中,场景检测模块230为每一个图像视频信号110生成运动标识信号。每一图像(诸如视频场(或帧,如果它是逐行扫描视频源的话))中的运动可以通过叫做“全局运动”(GM)的参数来表示。GM的值量化场与前面的相同奇偶校验(same-parity)场相比的变化。就每一宏块对而言,将顶部场与顶部场进行比较,将底部场与底部场进行比较,等等。可以将GM的值计算为场或帧中的所有像素上的像素运动(PM)的总和,其中,对场或帧中的每一个像素计算PM的值。
[0045] 参数GM可用于检测视频信号110中的场景变化。当在场上发生场景时,场将与“普通”场相比生成高得多的GM值。可以通过沿着连续的场来分析GM模式,例如通过检测连续场中的超出场景检测阈值的GM增大或缩小,来检测场景变化。一旦检测到对应于特定的图像的场景变化,就可以调整编码器/解码器102的编码参数,以实现更好的结果。例如,场景变化的检测可用于触发新图像组(GOP)的开始。在另一个示例中,编码器/解码器102通过调整QP的值以补偿场景变化,通过启用或禁用视频滤波器,或通过调整或适应编码器/解码器102的编码、解码、转码或其他处理的其他参数,来对场景变化检测作出响应。
[0046] 尽管没有明确地示出,视频编码器/解码器102可包括高速缓存、共享存储器、存储器管理模块、梳状滤波器或其他视频滤波器、和/或支持将视频信号110编码为经处理的视频信号112的其他模块。
[0047] 将结合图6和7来更详细地描述一般编码和解码过程的进一步的细节。
[0048] 图6呈现了根据本公开内容的一实施例的视频编码操作的流程框图。具体而言,示出了示例视频编码操作,该操作使用结合图5描述的许多功能特定的模块来实现类似的编码操作。运动搜索模块204基于当前帧/场260和一个或多个参考帧/场262,为多个宏块中的每一个宏块生成运动搜索运动矢量。运动细化模块206基于运动搜索运动矢量为多个宏块中的每一个宏块生成细化的运动矢量。帧内预测模块210为多个宏块中的每一个宏块评估并选择最佳帧内预测模式。模式判断模块212基于与细化的运动矢量以及最佳帧内预测模式相关联的成本,为多个宏块中的每一个宏块确定最终的运动矢量。
[0049] 重构模块214通过由差电路282从当前帧/场260的像素值减去最终的运动矢量来为多个宏块中的每一个宏块生成对应于最终的运动矢量的残余像素值,并通过使用加法电路284重新加上残余像素值(经过变换和量化模块220处理的)来生成未滤波的重构的帧/场。变换和量化模块220在变换模块270和量化模块272中变换并量化残余像素值,并通过在逆变换模块276和去量化模块274中的逆变换和去量化来重新形成残余像素值。另外,已量化并且变换的残余像素值由熵编码/重新排序模块216的重新排序模块278重新排序,并由熵编码模块280熵编码,以形成网络抽象层输出281。
[0050] 去块效应滤波器模块222从未滤波的重构的帧/场形成当前重构的帧/场264。还应注意,可以缓冲当前重构的帧/场264,以生成参考帧/场262用于未来的当前帧/场260。
[0051] 如结合图5所讨论的,视频编码器/解码器102的模块中的一个或多个也可以用于解码过程,如下文结合图7进一步描述的。
[0052] 图7呈现了根据本公开内容的一实施例的视频解码操作的流程框图。具体而言,此视频解码操作包含结合图6所描述的通过共同的参考编号引用的许多共同的元素。在此情况下,运动补偿模块207、帧内补偿模块211、模式开关213处理参考帧/场262以生成当前的重构的帧/场264。另外,重构模块214还重复使用加法电路284,变换和量化模块重复使用逆变换模块276和逆量化模块274。应该指出的是,尽管重复使用熵编码/重新排序模块216,但是,不是重新排序模块278和熵编码模块280产生网络抽象层输出281,网络抽象层输入287是由熵解码模块286和重新排序模块288处理的。
[0053] 尽管已经结合图6和7的特定的编码和解码操作描述了诸如具体的功能特定的硬件引擎之类的模块的重复使用,但是,本公开内容可以同样类似地用于结合图1-5和8-14所描述以及/或者具有结合视频编码和解码使用的其他功能特定的模块的本公开内容的其他实施例。
[0054] 图8呈现了根据本公开内容的一实施例的图像的框图表示。具体而言,图像300被示为具有区域302,该区域302包括已被合并在一起并通过单个运动矢量304表示的多个块。与基于将宏块或宏块对分区为子块来进行操作的其他方法相比,区域302表示多个近邻块的合并。作为结果,区域302可以具有如在所示出的示例中的不规则的形状。然而,区域302的形状只是可能的区域的说明,可以通过此处所呈现的方法的结果合并近邻块的许多不同的组合。
[0055] 图9呈现了根据本公开内容的一实施例的块的框图表示。具体而言,区域302包括已被合并在一起以创建如前所描述的单个区域302的多个块a、b、c、d、e、f以及g。如结合图8所讨论的,区域302的形状只是可能的区域的说明,可以通过此处所呈现的方法的结果合并近邻块的许多不同的组合。
[0056] 图10呈现了根据本公开内容的一实施例的搜索区域的框图表示。呈现了图像的特定块320的搜索区域322。块320位于参考图像中的搜索区域的中心处,搜索区域322表示视频序列的另一图像中的块的可能的位置。
[0057] 在操作中,运动搜索模块204试图找到最佳位置,诸如对于搜索区域322中的块320的最佳适合或最低成本位置。运动矢量表示参考图像中的块320的位置和视频序列的其他图像中的块320之间的空间差异。搜索区域322中的每一个可能的位置都具有通过成本函数(诸如绝对差值的总和、绝对变换差值的总和或其他函数)确定的相关联的成本。搜索区域322中的各种位置的这些成本的集合可以通过成本矩阵来表示。
[0058] 图11呈现了根据本公开内容的一实施例的成本矩阵的框图表示。具体而言,呈现了特定块(诸如结合图10所讨论的块320)的NxM成本矩阵。N的值基于水平维度324,M的值基于垂直维度326。具体而言,块320具有(N-1)/2可能的上平移,(N-1)/2可能的下平移(M-1)/2可能的右平移,(M-1)/2可能的左平移。值Xi,j表示运动矢量的成本函数,该运动矢量具有:
[0059] 水平坐标=((N-1)/2-i-1)
[0060] 垂直坐标=((M-1)/2-j-1)。
[0061] 如结合图5所讨论的,运动搜索模块204通过基于对与选定图像的多个块相关联的成本矩阵的评估而合并选定图像的所述多个块中的选定块,来确定区域。
[0062] 在一实施例中,对成本矩阵的评估可包括确定块的成本矩阵何时缺乏占优势的最小值。例如,可以评估成本矩阵的条目,以标识最小成本Xi,j的位置。考虑最小成本的位置通过(imin,jmin)来表示,那么,最小成本可以通过Ximin,jmin来表示。在一个示例中,可以通过例如比较Ximin,jmin与某个优势阈值并确定成本低于该阈值,来评估此最小成本的优势。优势阈值可以是预定值,或者可以是QP或其他编码参数的函数。
[0063] 在另一个示例中,可以通过比较Ximin,jmin与其他成本值Xi,j并确定最小成本低于其他值至少某一其他成本阈值,来确定此最小成本的优势。在进一步的示例中,可以通过比较Ximin,jmin与成本条目的平均值并确定最小成本低于平均值至少某一其他成本阈值,来确定此最小成本的优势。这些成本阈值也可以是预定值,或者可以是QP或其他编码参数的函数。
[0064] 在一实施例中,确定是否要合并两个块可包括确定第一块的成本矩阵何时包括第一小成本部分以及第二块的成本矩阵何时包括重叠第一小成本部分的第二小成本部分。具体而言,可以评估这些成本矩阵的条目,以标识矩阵的其中成本Xi,j小于某一小成本阈值的部分。对于两个不同的块,可以比较这些小成本条目,以确定对于这两个块是否有共同的小成本位置。
[0065] 在一实施例中,确定是否要合并两个块可包括每一个块的纹理的确定。例如,可以基于与块的像素值相关联的统计(诸如像素方差、像素标准偏差和/或统计),来确定块的纹理。对是否要合并两个块的确定可以基于这两个块是否具有类似的纹理来作出。例如,对是否要合并两个块的确定可包括比较第一块的第一纹理与第二块的第二纹理并确定第一纹理和第二纹理何时变化小于纹理阈值。
[0066] 在一种操作模式下,可以组合地使用上面的方法。例如,当第一块的成本矩阵缺乏占优势的最小值、第二块的小成本部分重叠第一块的小成本部分、并且第一和第二块的纹理变化小于纹理阈值时,运动搜索模块204可以确定合并第二块与第一块。当合并块时,基于单独成本矩阵的总和、平均、加权总和或加权平均,确定合并的成本矩阵用于合并的块。进一步地,运动搜索模块204可以操作以通过确定合并的成本矩阵的最小值来确定区域的运动搜索运动矢量。
[0067] 进一步地,尽管上面的示例讨论了单个近邻块到初始块的潜在合并,但是,可以以类似的方式评估两个或更多个块或者所有近邻块。另外,运动搜索模块204可以迭代进行两次或更多次来以类似的方式评估新合并的块的近邻,直到没有新的近邻被添加或者达到迭代的某个最大数量。
[0068] 图12呈现了根据本公开内容的一实施例的方法的流程图表示。具体而言,呈现了和具有与图1-11相关联地描述的特征和功能中的一个或多个的视频处理设备结合使用的方法。步骤400包括通过基于对与选定的图像的多个块相关联的成本矩阵的评估而合并选定的图像的所述多个块中的选定块,来确定多个图像中的选定图像的区域的运动搜索运动矢量。
[0069] 对成本矩阵的评估可包括确定多个块中的第一块的第一成本矩阵何时缺乏占优势的最小值。对成本矩阵的评估还可以包括确定何时第一块的第一成本矩阵包括第一小成本部分以及第二块的第二成本矩阵包括重叠第一小成本部分的第二小成本部分。
[0070] 可以进一步通过比较第一块的第一纹理与第二块的第二纹理并确定第一纹理和第二纹理何时变化小于纹理阈值,来确定多个块中的选定的块。例如,当第一成本矩阵缺乏占优势的最小值、第二小成本部分重叠第一小成本部分并且第一纹理和第二纹理变化小于纹理阈值时,第一块可以与第二块合并。确定区域的运动搜索运动矢量可包括将与多个块中的选定的块相关联的成本矩阵合并到区域的合并的成本矩阵中。
[0071] 图13呈现了根据本公开内容的一实施例的方法的流程图表示。具体而言,呈现了与具有与图1-12相关联地描述的特征和功能中的一个或多个的视频处理设备结合使用的方法。步骤410包括确定块的成本矩阵何时具有占优势的最小值。如果是,则方法前进到步骤412,在该步骤中,设置来自占优势的最小值的运动矢量。否则,方法前进到步骤414,在该步骤中,方法确定是否有更多的近邻块要评估。如果是,则方法前进到步骤416,以考虑与块的可能的合并的下一块,否则方法前进到步骤422,在该步骤中,从块的最低成本设置运动矢量。在步骤416中,方法确定下一块是否具有与该块重叠的小成本部分。如果是,则方法继续以进一步评估此下一块,否则,方法返回到步骤414,以判断是否有更多块要评估。在步骤418中,方法确定下一块的纹理是否匹配该块的纹理。如果是,则方法前进以如步骤420所示的合并块,并通过合并成本矩阵来形成合并的成本。接着,方法前进到步骤410,以基于合并的块和成本矩阵而再次开始。如果不,则方法直接前进到步骤414。如此,方法继续以评估与块或合并的块的潜在的合并的近邻块,以形成潜在地包括多个块的区域。
[0072] 可以结合以下示例进一步描述此方法的操作。首先选择小的块大小作为基本运动估计与合并单元。在运动估计期间,评估在图像中的每一个当前块与搜索范围中的其他块之间的SAD成本(或其他匹配度量或成本)。如果成本矩阵中的最小SAD成本比其他小得多,如根据QP相关的优势阈值所判断的,则可以立即设置块的运动而不需要与其他块合并。否则,评估其近邻(或者2D一起,或者一个一个地)。如果一个块和近邻块具有(a)类似的纹理,以及(b)它们的成本矩阵中的小SAD成本的重叠部分这两者,则合并块。具体而言,通过对要合并的块的两个SAD矩阵的求和,形成组合的成本矩阵。检查成本矩阵的最小SAD以查看是否可以设置合并的块的运动,或者块是否需要以与对于初始单元块同样的方式进一步合并。
[0073] 该方法以此方式继续,来潜在地合并一个或多个近邻块,以形成区域并可选地扩展以随着合并的区域的发展而评估近邻的近邻。甚至在为合并块的区域设置了运动之后,也可以不丢弃合并的块的组合的SAD成本矩阵。如果在设置运动之后新的近邻仍可以与区域合并,则组合的SAD成本矩阵可以被去加权并添加到新评估的近邻成本,以帮助确定这些其他块或区域中的运动。加权的滑动窗口方法可以帮助近邻块捕捉区域内的逐步变化的运动。在块区域的所有随后的近邻都被检查并且不可以合并到区域中之后,对应于组合的成本矩阵中的最小值的运动被设置为区域的输出运动。
[0074] 运动估计度量不仅限于SAD成本——也可以使用其他成本度量。另外,此方法可用于提供候选运动矢量,用于由编码器的其他部分执行的进一步的运动细化或用于由编码器的其他部分执行的帧间预测大小和模式判断。
[0075] 图14呈现了根据本公开内容的一实施例的视频分发系统375的框图表示。具体而言,经处理的视频信号112通过传输路径122从第一视频编码器/解码器102传输到作为解码器来操作的第二视频编码器/解码器102。第二视频编码器/解码器102操作,以解码经处理的视频信号112以供显示在诸如电视机12、计算机14或其他显示设备之类的显示设备上。
[0076] 传输路径122可包括根据诸如802.11协议、WIMAX协议、Bluetooth协议等之类的无线局域网协议操作的无线路径。进一步地,传输路径可包括根据诸如通用串行总线协议、以太网协议或其他高速协议之类的有线协议操作的有线路径。
[0077] 图15呈现了根据本公开内容的一实施例的视频存储系统179的框图表示。具体而言,设备11是带有内嵌的数字视频记录器功能的机顶盒、独立数字视频记录器、DVD记录器/播放器、或存储经处理的视频信号112以供显示在诸如电视机12之类的视频显示设备上的其他设备。尽管视频编码器/解码器102被示为单独的设备,但是,它也可以包含到设备11中。在此配置中,视频编码器/解码器102可以进一步操作以在从存储装置中检索经处理的视频信号112时解码经处理的视频信号112,以生成适用于由视频显示设备12显示的格式的视频信号。尽管示出了这些特定设备,但是,视频存储系统179可包括硬驱动器、闪存设备、计算机、DVD刻录器、或者能够根据结合如此处所描述的本公开内容的特征和功能而描述的方法和系统来生成、存储、解码和/或显示经处理的视频信号112的视频内容的任何其他设备。
[0078] 如此处可以使用的,术语“基本上”和“大致”提供其对应的术语的行业可接受的容限和/或项目之间的相对性。这样的行业可接受的容限在从小于1%到50%之间变化,并对应于(但不仅限于)组件值、集成电路工艺变化、温度变化、上升和下降时间、和/或热噪声。项目之间的这样的相对性在从百分之几的差值到巨大差值之间变化。如此处也可以使用的,术语“被配置成”、“可操作地耦合到”、“耦合到”和/或“耦合”包括项目之间的直接耦合和/或项目之间的通过中间项目(例如,项目包括但不仅限于组件、元件、电路和/或模块)的间接耦合,其中,作为间接耦合的示例,中间项目不修改信号的信息但可以调整其电流水平、电压水平和/或功率水平。如此处还可以进一步使用的,推断的耦合(即,在一个元件通过推段耦合到另一元件的情况下)包括两个项目之间的与“耦合到”相同的方式的直接和间接耦合。如此处更进一步使用的,术语“被配置成”、“可操作以”、“耦合到”或“可操作地耦合到”表示项目包括电源连接、输入端、输出端等中的一个或多个,以当被激活时执行一个或多个其对应的功能,并还可以包括到一个或多个其他项目的推断的耦合。如此处可以更进一步地使用的,术语“与相关联”包括分开的项目的直接和/或间接耦合以及/或者一个项目被嵌入在另一项目内。
[0079] 如此处可以使用的,术语“有利地比较”表示两个或更多项目、信号等之间的比较提供所期望的关系。例如,当所期望的关系是信号1比信号2具有更大的大小时,当信号1的大小大于信号2的大小或者当信号2的大小小于信号1大小时可以实现有利的比较。
[0080] 也可以如此处使用的,术语“处理模块”、“处理电路”、“处理器”和/或“处理单元”可以是单个处理设备或多个处理设备。这样的处理设备可以是微处理器、微控制器、数字信号处理器、微计算机、中央处理单元、现场可编程门阵列、可编程逻辑器件、状态机、逻辑电路系统、模拟电路系统、数字电路系统和/或基于电路的硬编码和/或操作指令来操纵信号(模拟和/或数字)的任何设备。处理模块、模块、处理电路和/或处理单元可以是或者可以进一步包括存储器和/或集成存储器元件,它们可以是单个存储器设备、多个存储器设备、以及/或者另一处理模块、模块、处理电路和/或处理单元的嵌入电路系统。这样的存储器设备可以是只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪存、高速缓存存储器,和/或存储数字信息的任何设备。注意,如果处理模块、模块、处理电路和/或处理单元包括多于一个的处理设备,则处理设备可以集中地放置(例如,通过有线和/或无线总线结构直接耦合在一起)或者可以分布式地放置(例如,通过经局域网和/或广域网的间接耦合的云计算)。进一步要注意,如果处理模块、模块、处理电路和/或处理单元通过状态机、模拟电路系统、数字电路系统和/或逻辑电路系统实现其功能中的一个或多个,则存储对应的操作指令的存储器和/或存储器元件可以嵌入在包括该状态机、模拟电路系统、数字电路系统和/或逻辑电路系统的电路系统内,或者在这样的电路系统外部。更进一步要注意,存储器元件可以存储对应于在附图的一个或多个中所示出的至少某些步骤和/或功能的硬编码的和/或操作指令,并且处理模块、模块、处理电路和/或处理单元执行这样的硬编码的和/或操作指令。这样的存储器设备或存储器元件可以被包括在制品中。
[0081] 上文借助于说明了指定功能的性能以及其关系的方法步骤,描述了一个或多个实施例。为了描述方便起见,此处任意定义了这些功能构件和方法步骤的边界和序列。可以定义另选的边界和序列,只要指定的功能以及关系适当地执行。如此,任何这样的另选边界或序列在权利要求的范围和精神内。进一步地,为了描述方便起见,此处任意定义了这些功能构件的边界。可以定义另选的边界,只要某些重要功能适当地执行。类似地,此处也可能任意定义了流程图框,以示出特定的重要功能。到所使用的程度,流程图框边界和序列可以以别的方式定义,并仍执行特定的重要功能。如此,功能构件和流程图框及序列的这样的另选定义在权利要求的范围和精神内。本领域的普通技术人员还将认识到,此处的功能构件以及其他说明性的框、模块和组件可如所示出的那样实现,或通过分立组件、专用集成电路、执行合适的软件的处理器等或它们的任何组合来实现。
[0082] 此处使用一个或多个实施例来示出一个或多个方面、一个或多个特征、一个或多个概念、和/或一个或多个示例。装置、制品、机器和/或过程的物理实施例可以包括参考此处所讨论的各实施例中的一个或多个所描述的方面、特征、概念、示例等中的一个或多个。进一步地,从图到图,各实施例可以包含可使用相同或不同的参考编号的相同或类似地命名的功能、步骤、模块等,并且如此,功能、步骤、模块等可以是相同或类似的功能、步骤、模块等,或者不同的功能、步骤、模块等。
[0083] 除非特别有相反声明,往来于此处所呈现的图形中的任何一个图形中的元件或这些元件之间的信号可以是模拟或数字的、连续时间或离散时间的、以及单端或差分的。例如,如果信号路径被示为单端路径,则它还表示差分信号路径。类似地,如果信号路径被示为差分路径,则它还表示单端信号路径。尽管此处描述了一个或多个特定体系结构,但是,也可以同样实现使用一个或多个未明确地示出的数据总线、元件之间的直接连接、和/或其他元件之间的间接耦合的其他体系结构,如本领域的普通技术人员所认识到的。
[0084] 术语“模块”用于各实施例中的一个或多个的描述中。模块包括处理模块、处理器、功能块、硬件和/或存储用于执行一个或多个此处可以描述的功能的操作指令的存储器。注意,如果模块是通过硬件实现的,则硬件可以独立地以及/或者结合软件和/或固件来操作。也如此处使用的,模块可以包含一个或多个子模块,每一个子模块都可以是一个或多个模块。
[0085] 尽管此处明确地描述了一个或多个实施例的各种功能和特征的特定组合,但是,这些特征和功能的其他组合同样也是可以的。本公开内容不受此处所公开的特定示例限制,并明确地包括这些其他组合。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用