首页 / 专利库 / 电脑图像 / 运动矢量 / 用于评估宏块候选以用于被转换成跳过宏块的方法、系统和计算机程序产品

用于评估宏候选以用于被转换成跳过宏块的方法、系统和计算机程序产品

阅读:186发布:2024-02-19

专利汇可以提供用于评估宏候选以用于被转换成跳过宏块的方法、系统和计算机程序产品专利检索,专利查询,专利分析的服务。并且本 发明 提供了用于评估与视频 块 相关联的经编码数据的序列的方法和系统。评估与视频块相关联的经编码数据的序列以确定:与块相关联的经变换的残留 像素 数据的经量化系数是否等于零;该块是否利用时间压缩过程来编码;包含该块的片是否被配置成仅利用一个参考图片列表或利用两个参考图片列表来编码;该块是否未经分区或按照直接模式来编码;被使用以对该块进行编码的参考图片是否是与该一个参考图片列表上的最低索引值相关联的参考图片;以及与该块相关联的实际 运动矢量 是否等于与该块相关联的预测运动矢量。,下面是用于评估宏候选以用于被转换成跳过宏块的方法、系统和计算机程序产品专利的具体信息内容。

1.一种用于评估与视频相关联的经编码数据的序列的方法,包括:
经由至少一个电子处理系统确定与所述块相关联的经变换的残留像素数据的经量化系数是否等于零;
经由所述至少一个电子处理系统确定所述块是否利用时间压缩过程来编码;
经由所述至少一个电子处理系统确定包含所述块的片是否被配置成仅利用一个参考图片列表来编码;
经由所述至少一个电子处理系统确定所述块是否未经分区;
确定被使用以对所述块进行编码的参考图片是否是与所述一个参考图片列表上的最低索引值相关联的参考图片;以及
经由所述至少一个电子处理系统确定与所述块相关联的实际运动矢量是否等于与所述块相关联的预测运动矢量。
2.如权利要求1所述的方法,其中所述块是宏块。
3.如权利要求1所述的方法,其中所述片是
4.如权利要求1所述的方法,其中所述片是场。
5.如权利要求1所述的方法,其中确定与所述块相关联的经变换的残留像素数据的经量化系数是否等于零包括:确定经编码数据的序列中的二进制代码的值。
6.如权利要求1所述的方法,其中确定所述块是否利用时间压缩过程来编码包括:确定经编码数据的序列中的二进制代码的值。
7.如权利要求1所述的方法,其中确定包含所述块的片是否被配置成仅利用一个参考图片列表来编码包括:确定经编码数据的序列中的二进制代码的值。
8.如权利要求1所述的方法,其中确定所述块是否未经分区包括:确定经编码数据的序列中的二进制代码的值。
9.如权利要求1所述的方法,进一步包括:
经由所述至少一个电子处理系统将经编码数据的序列中的二进制代码的值递增,其中所述二进制代码指示连续数量的块,所述连续数量的块的数据从经编码数据的序列中被排除。
10.如权利要求1所述的方法,进一步包括:
经由所述至少一个电子处理系统来改变经编码数据的序列中的二进制代码的值,其中所述二进制代码与所述块相关联,且指示与所述块相关联的其它数据从经编码数据的序列中被排除。
11.一种用于评估与视频块相关联的经编码数据的序列的系统,包括:
第一电子处理系统,配置成确定与所述块相关联的经变换的残留像素数据的经量化系数是否等于零;
第二电子处理系统,配置成确定所述块是否利用时间压缩过程来编码;
第三电子处理系统,配置成确定包含所述块的片是否被配置成仅利用一个参考图片列表来编码;
第四电子处理系统,配置成确定所述块是否未经分区;
第五电子处理系统,配置成确定被使用以对所述块进行编码的参考图片是否是与所述一个参考图片列表上的最低索引值相关联的参考图片;以及
第六电子处理系统,配置成确定与所述块相关联的实际运动矢量是否等于与所述块相关联的预测运动矢量。
12.如权利要求11所述的系统,其中所述第二电子处理系统是所述第四电子处理系统。
13.如权利要求11所述的系统,还包括:第七电子处理系统,配置成将经编码数据的序列中的二进制代码的值递增,其中所述二进制代码指示连续数量的块,所述连续数量的块的数据从经编码数据的序列中被排除。
14.如权利要求11所述的系统,还包括:第七电子处理系统,配置成改变经编码数据的序列中的二进制代码的值,其中所述二进制代码与所述块相关联,且指示与所述块相关联的其它数据从经编码数据的序列中被排除。
15.一种存储指令的非瞬态机器可读介质,所述指令在由至少一个电子处理系统执行时使所述处理系统执行指令,以用于:
确定与所述块相关联的经变换的残留像素数据的经量化系数是否等于零;
确定所述块是否利用时间压缩过程来编码;
确定包含所述块的片是否被配置成仅利用一个参考图片列表来编码;
确定所述块是否未经分区;
确定被使用以对所述块进行编码的参考图片是否是与所述一个参考图片列表上的最低索引值相关联的参考图片;以及
确定与所述块相关联的实际运动矢量是否等于与所述块相关联的预测运动矢量。
16.一种用于评估与视频块相关联的经编码数据的序列的方法,包括:
经由至少一个电子处理系统确定与所述块相关联的经变换的残留像素数据的经量化系数是否等于零;
经由所述至少一个电子处理系统确定所述块是否利用时间压缩过程来编码;
经由所述至少一个电子处理系统确定包含所述块的片是否被配置成利用两个参考图片列表来编码;以及
经由至少一个电子处理系统确定所述块是否按照直接模式来编码。
17.如权利要求16所述的方法,其中所述块是宏块。
18.如权利要求16所述的方法,其中所述片是帧。
19.如权利要求16所述的方法,其中所述片是场。
20.如权利要求16所述的方法,其中确定与所述块相关联的经变换的残留像素数据的经量化系数是否等于零包括:确定经编码数据的序列中的二进制代码的值。
21.如权利要求16所述的方法,其中确定所述块是否利用时间压缩过程来编码包括:
确定经编码数据的序列中的二进制代码的值。
22.如权利要求16所述的方法,其中确定包含所述块的片是否配置成利用两个参考图片列表来编码包括:确定经编码数据的序列中的二进制代码的值。
23.如权利要求16所述的方法,其中确定所述块是否按照直接模式来编码包括:确定经编码数据的序列中的二进制代码的值。
24.如权利要求16所述的方法,还包括:
经由所述至少一个电子处理系统将经编码数据的序列中的二进制代码的值递增,其中所述二进制代码指示连续数量的块,所述连续数量的块的数据从经编码数据的序列中被排除。
25.如权利要求16所述的方法,还包括:
经由所述至少一个电子处理系统来改变经编码数据的序列中的二进制代码的值,其中所述二进制代码与所述块相关联,且指示与所述块相关联的其它数据从经编码数据的序列中被排除。
26.一种用于评估与视频块相关联的经编码数据的序列的系统,包括:
第一电子处理系统,配置成确定与所述块相关联的经变换的残留像素数据的经量化系数是否等于零;
第二电子处理系统,配置成确定所述块是否利用时间压缩过程来编码;
第三电子处理系统,配置成确定包含所述块的片是否被配置成利用两个参考图片列表来编码;以及
第四电子处理系统,配置成确定所述块是否按照直接模式来编码。
27.如权利要求26所述的系统,其中所述第二电子处理系统是所述第四电子处理系统。
28.如权利要求26所述的系统,还包括:第五电子处理系统,配置成将经编码数据的序列中的二进制代码的值递增,其中所述二进制代码指示连续数量的块,所述连续数量的块的数据从经编码数据的序列中被排除。
29.如权利要求26所述的系统,还包括:第五电子处理系统,配置成改变经编码数据的序列中的二进制代码的值,其中所述二进制代码与所述块相关联,且指示与所述块相关联的其它数据从经编码数据的序列中被排除。
30.一种存储指令的非瞬态机器可读介质,所述指令在由至少一个电子处理系统执行时使所述处理系统执行指令,以用于:
确定与所述块相关联的经变换的残留像素数据的经量化系数是否等于零;
确定所述块是否利用时间压缩过程来编码;
确定包含所述块的片是否被配置成利用两个参考图片列表来编码;以及确定所述块是否按照直接模式来编码。

说明书全文

用于评估宏候选以用于被转换成跳过宏块的方法、系统

计算机程序产品

[0001] 发明背景
[0002] 视频是对共同表示运动情景的图像的序列进行电子方式地捕捉、记录、处理、存储、传输以及重构的技术。表示视频中的图像所需的大量原始数据会对当前可用的数据存储设备的容量带来负担。此外,在当前可用的数据传输速率下,表示视频中的图像所需的大量原始数据可能阻碍接收机以足够快的速率处理所接收的原始数据以在足够快的速率下同时呈现这些以产生对人眼的连续性错觉。
[0003] 通过标识其中相同或相似值的数据被包括在位流中的不同位置、并用标识该冗余的二进制代码代替至少一些这些位置中的数据的实例,视频压缩处理可减少表示视频中的图像所需的原始数据量。因为二进制代码可使用比原始数据的值要少的位,所以可减少位流中的位的数量。
[0004] 为了减少位流中的位的数量,用于视频压缩的一些技术标准可提供要由解码器进行的默认处理,这些默认处理与在缺少指示不同处理的二进制代码时的技术标准兼容。有时候,可在位流中包括指示与视频块相关联的所有其它数据已从位流中被排除的二进制代码。
[0005] 附图简述
[0006] 图1示出被捕捉的图像的帧的示例。
[0007] 图2示出序列中的两个连续帧的示例。
[0008] 图3是视频编码器的示例的框图
[0009] 图4和7示出残留帧的示例。
[0010] 图5和6示出被分成方形块的帧的示例。
[0011] 图8示出序列中的I、B和P帧的安排的示例。
[0012] 图9和10示出被划分成片的帧的示例。
[0013] 图11和14是根据实施例的用于评估与视频块相关联的经编码数据的序列的示例方法的处理流程图
[0014] 图12和15是根据实施例的用于评估与视频块相关联的经编码数据的序列的示例系统的框图。
[0015] 图13和16分别是根据实施例的系统1200和1500的软件固件实施例的示例的框图。
[0016] 在附图中,附图标记的最左边的一个或多个数字标识该附图标记首次出现的附图。

具体实施方式

[0017] 现在参考附图对实施例进行描述,其中相同的附图标记表示相同或功能相似的要素。尽管讨论了特定结构和配置,然而应当理解这只是为了说明目的。相关领域内技术人员应当理解,可使用其它配置和安排而不背离说明书的精神和范围。本领域内技术人员将显而易见,本发明也可在本申请所描述内容以外的多种其它系统和应用中采用。 [0018] 本申请中公开的是用于评估块候选以用于被转换成跳过块的方法、系统和计算机程序产品。
[0019] 视频是对共同表示运动情景的图像的序列进行电子方式地捕捉、记录、处理、存储、传输以及重构的技术。该序列中的被捕捉的图像也被称为帧。如果呈现帧的速率足够快,例如每秒至少24帧,则人眼可从一帧到下一帧的呈现中感知到连续的错觉。 [0020] 历史上,在电视技术的早期发展中,当帧率足够低时,当呈现视频时会出现闪烁。为了补偿该闪烁,该帧被分成两个交替行的场,每个奇数行属于第一场,且每个偶数行属于第二场。每个场可在更快的帧率下呈现,而且结果可减少闪烁的出现。随着视频技术的继续演变和在以往设计上的构建,场已保留为该技术的一部分。然而,它们按照相同的方式作为帧来处理。因此,如下文描述的对帧所执行的处理可类似地对场来进行,而且术语“帧”和“场”可互换地使用。
[0021] 图1示出被捕捉的图像的帧的示例。例如,被捕捉的图像示出球场106 上方的天空104中的棒球102。以数字形式捕捉的帧100可通过图像元素(或像素)的二维阵列来表示。像素108可配置成存储表示图像中的一位置处的图像的样本,该位置对应于该阵列中的像素108的位置。该数据的值可利用二进制位(或多个位)来表示。该数据可包括对应于像素108的亮度的值。颜色可通过基色(诸如红色、绿色和蓝色)的各种比例的组合来实现。为了在帧中包含颜色,像素108可被配置成将数据存储在与基色相对应的不同通道中。视频中的该数据可被组织成位的流(或位流),该位流可被排序以使正确配置的接收机可接收该位流并处理该数据以呈现该视频。
[0022] 表示视频中的图像所需的大量原始数据会对当前可用的数据存储设备的容量带来负担。此外,在当前可用的数据传输速率下,表示视频中的图像所需的大量原始数据可能阻碍接收机以足够快的速率处理所接收的原始数据以在足够快的速率下同时呈现这些帧以产生对人眼的连续性错觉。
[0023] 视频压缩处理可减少表示视频中的图像的位的数量。压缩器(或编码器)可被用于将原始数据压缩(或编码),以产生经压缩(或编码)的数据以供存储或传输。接收机可包括解压缩器(或解码器),用于将经压缩(编码)的数据解压缩(或解码)以产生重构的数据。重构数据的值应当等于原始数据的值(无损压缩),或重构数据的值应当等价于原始数据的值(有损压缩)。
[0024] 有损压缩在某些情况下是可接受的。首先,情况可能是这样的:从重构数据产生的视频与从原始数据产生的视频之间的差别(或失真)充分小,从而人眼无法感知。其次,情况可能是这样的:从重构数据产生的视频与从原始数据产生的视频之间的差别并非充分小从而人眼无法感知,但仍然是可接受的,因为视频压缩可将位流中的位的数量减少足够量,以允许经编码数据可被:(1)存储在给定的数据存储设备上,或(2)以足够快的速率传输以使得接收机可同时处理经编码数据,可产生重构数据,并且可在足够快的速率下呈现这些帧,以产生对人眼的连续性错觉。这第二种情况可被视为一种折衷,例如,该折衷青睐视频的实时呈现速率,其代价是视频中表示的图像的保真度。
[0025] 通过标识其中相同或相似值的数据被包括在数据流中的不同位置、并用标识该冗余的二进制代码代替至少一些这些位置中的数据的实例,视频压缩处理可减少表示视频中的图像所需的原始数据量。因为二进制代码使用比原始数据的值更少的位,所以可减少位流中的位的数量。
[0026] 为了使记录器、发射机、接收机和其它视频机能够交互从而可正确地产生位流、处理位流或二者,视频产业已经开发出建立某些配置要求的技术标准。这些技术标准包括,例如,高级视频编码(ITU-T推荐H.264(ISO/IEC 14496(MPEG-4)部分10))(即高级视频编码标准)。除了其它考虑因素之外,高级视频编码标准规定了用于在位流中对数据和二进制代码进行排序的格式,使得该位流可被与该标准兼容的接收机正确地处理。 [0027] 图2示出序列中的两个连续帧的示例。例如,前一帧100包括球场106上方的天空104中的棒球102。例如,后一帧200包括球场206上方的天空204中的棒球202。帧100中的像素108可对应于帧200中的像素208。因为像素108中存储的原始数据的值可能与像素208中存储的原始数据的值相同或相似,所以可在位流中利用使用更少位的二进制代码来代替像素108和208的原始数据的值(时间压缩)。这可能是当像素108和208中存储的数据表示图像中的静止对象(例如天空104和204以及球场106和206)时的情况。类似地,因为像素108中存储的原始数据的值可能与帧100的像素210中存储的原始数据的值相同或相似,所以可在位流中利用使用更少位的二进制代码代替像素108和210的原始数据的值(空间压缩)。这可能是当像素108和208中存储的数据表示图像中的同质对象(例如天空104和球场106)时的情况。这些方法代表了视频压缩的基本原理。 [0028] 图3是视频编码器的示例的框图。在图3中,视频编码器300包括:运动补偿
302、第一求和器304、变换器306、量化器308、熵编码器310、缩放器312、逆变换器314、第二求和器316以及缓冲器318。视频编码器300可被配置成接收原始像素数据320并产生编码位流322。
[0029] 为了理解视频编码器300的诸个组件的功能,针对在空间上分布于帧的不同位置的相同或相似数据进行压缩的常见方法的基础原理的说明会是有帮助的。参考图1和3,帧100的原始像素数据320可概念性地在矩阵I 中呈现如下:
[0030]
[0031] 其中B可对应于表示像素中蓝色的数据的值,W可对应于表示像素中白色的数据的值,以及G可对应于表示像素中绿色的数据的值,矩阵I一般可将帧100表示为用于天空104的蓝色像素的行、用于球场106的绿色像素的行、以及用于棒球102的白色像素的元素。
矩阵I中的诸个值可以是沿平轴和垂直轴的距离的函数。它们可在距离域中呈现。 [0032] 视频压缩过程可利用约瑟夫·傅立叶(Joseph Fourier)的教导,他证实了在原始域中为周期性的任何原始函数可被表达为以一组正弦函数表示的元素之和。该组正弦函数中的每个元素可具有其自己的频率相移以及系数。以此方式,该组正弦函数中的元素之和:(1)可复制原始函数的形状,以及(2)可允许原始函数在频域中表达。 [0033] 此外,为了充分利用傅立叶的教导,任何具有有限区间的原始随机函数可通过重复原始随机函数而被容易地表达为周期函数。例如,在矩阵I中,第二行的原始随机函数B W B B B可被表达为周期函数B W B B B B WB B B B W B B B。
[0034] 例如,将矩阵I与图1作比较,用于蓝色像素的值在这些行上的出现可一般被视为在水平方向上不变,如曲线图110所示。用于绿色像素的值在这些行上的出现可一般被视为在水平方向上以高频率变化,如曲线图112所示,该曲线图112在与100中的球场105的青草叶片的位置相对应的多个点处出现峰值。用于白色像素的值在这些行上的出现可一般被视为在水平方向上以低频率变化,如曲线图114所示,该曲线图114在与帧100中的棒球102的位置相对应的点处出现峰值。可对列进行相似的分析。例如,用于蓝色像素的值沿列向下的出现可一般被视为在垂直方向上不变,如曲 线图116所示。用于白色像素的值沿这些列向下的出现可一般被视为在垂直方向上以低频率变化,如曲线图118所示,该曲线图
118在与帧100中的棒球102的位置相对应的点处出现峰值。用于绿色像素的值沿这些列向下的出现可一般被视为在垂直方向上以低频率变化,如曲线图120所示,该曲线图120在与帧100中的球场106的位置相对应的点处出现峰值。
[0035] 数学家已经进一步发展了傅立叶的教导,开发了诸个函数以将原始域中为周期性的原始函数变换为可在频域中表达的相应函数。这样的变换函数也具有相应的逆变换函数,以将在频域中表达的函数变换回原始函数。例如,已开发出的当原始函数包括一组离散样本时所使用的变换函数可以是诸如离散余弦变换的各种形式。用于诸组离散样本的变换函数可被表示为具有相等数量的行和列的矩阵,通常使得变换函数与其逆变换函数的叉乘乘积可以是单位矩阵,单位矩阵是方阵,其中从左上沿对角线到右下角的每个元素的值为1,且每个其它元素的值为0。
[0036] 因为用于诸组离散样本的变换函数可被表示为具有相等数量的行和列的矩阵,而且因为变换函数与其逆变换函数的叉乘乘积通常会是单位矩阵,所以这样的变换函数应当在具有相同数量的行和列的矩阵上作为变换函数来运算。在图像具有不相等数量的行和列的情况下,例如,通过矩阵I表示的图像,最后行和最后列可被复制,直到行和列的数量相+等。例如,矩阵I可被修改以产生如下矩阵I :
[0037]
[0038] 利用在矩阵I+上运算的矩阵II来执行变换的结果可在矩阵III中如下地呈现: [0039]
[0040] 例如,矩阵III可由变换器306产生,而且矩阵III的元素的值可被包含在位流322中。矩阵III的元素的值被称为系数。
[0041] 反之,利用在矩阵III上运算的矩阵IV来执行逆变换的结果可在矩阵I+中如下地再现:
[0042]
[0043] 接收位流322中的矩阵III的系数的解码器可使用矩阵IV来再现矩阵I+。 [0044] 在矩阵III中,V可表示非常大的值,L可表示大致,M可表示中等的值,并且S可表示小值。矩阵III的左上角中的系数可对应于帧100中的像素的加权值,这些值在水平和垂直方向上一般都不变化。在矩阵III的行中从左到右,每个系数可对应于帧100中的像素的加权值,这些像素的值在水平方向上变化。矩阵III的行中的系数越向右,水平方向上的变化频率会越大。在矩阵III的列中从上到下,每个系数可对应于帧100中的像素的加权值,这些像素的值在垂直方向上变化。矩阵III的列中的系数越向下,垂直方向上的变化频率会越大。
[0045] 例如,矩阵III的左上角中的系数的非常大值可对应于蓝色像素的加权值,蓝色像素的加权值可对应于帧100中的天空104的位置,其值一般在水平和垂直方向上都不变化。例如,从矩阵III的左上角向右的第一行 第二个中的系数的中等值可对应于白色像素的加权值,白色像素的加权值可对应于帧100中棒球102的位置,其值可在水平方向上以低频率变化。例如,从矩阵III的左上角向下的第一列第二个中的系数的大值可对应于白色像素的加权值和绿色像素的加权值,白色像素的加权值可对应于帧100中的棒球102的位置,绿色像素的加权值可对应于帧100中的球场106的位置,白色像素的加权值和绿色像素的加权值均可在垂直方向上以低频率变化。例如,矩阵III右上角中的系数的中等值可对应于绿色像素的加权值,绿色像素的加权值可对应于帧100中的球场106的青草叶片的位置,其值可在水平方向上以高频率变化。
[0046] 注意,与其中大量信息被包含在所有元素的值中的矩阵I+不同,在矩阵III中,大多数信息可被包含在仅一些系数的值中。视频压缩处理可减小表示视频中的图像所需的位数量的方法之一可以是,通过消除其值不包含大量信息的那些位。
[0047] 例如,如果在矩阵III中X的值为9.7,L的值为6.1,M的值为4.6,且S的值为1.2,则对矩阵III中的系数进行的阈值处理过程会将具有小于2.0的值的所有系数的值重设为0,以产生如下的矩阵III′:
[0048]
[0049] 在将矩阵III′的系数组织成位流322时,例如,熵编码器310可用二进制代码代替其中值为0的实例系列,由此减少位流322中的位数量。接收位流322中的矩阵III的+系数的解码器可使用矩阵IV来如下地产生矩阵I′:
[0050]
[0051] 就矩阵I+′中的B′的值可能不等于矩阵I+中的B的值、矩阵I+′中的W′的值可能不等于矩阵I+中的W的值、矩阵I+′中的G′的值可能不等于矩阵I+中的G的值而言,利用矩阵I+′产生的视频中的并且由于利用矩阵III′来代替矩阵III而引入的失真可被视为折衷,该折衷偏好短的位流,其代价是视频中表示的图像的保真度。 [0052] 在另一实例中,矩阵III中的系数可被量化。例如,八步量化器(例如量化器308)可如下地给矩阵III的系数分配量化值:0≤系数<1.25被分配以量化值0,1.25≤系数<2.5被分配以量化值1,2.5≤系数<3.75被分配以量化值2,3.75≤系数<5被分配以量化值3,5≤系数<6.25被分配以量化值4,6.25≤系数<7.5被分配以量化值5,7.5≤系数<8.75被分配以量化值6,以及8.75≤系数≤10被分配以量化值7。利用这样的八步量化器,矩阵III可被修改以产生如下矩阵III″:
[0053]
[0054] 在将矩阵III″的系数组织成位流322时,例如,熵编码器310可用二进制代码代替其中值为0的实例系列,由此减少位流322中的位的数量。接收位流322中的矩阵III″+的系数的解码器可使用矩阵IV来如下地产生矩阵I″:
[0055]
[0056] 同样,就矩阵I+″中的B″的值可能不等于矩阵I+中的B的值、矩阵I+″中的W″的值可能不等于矩阵I+中的W的值、矩阵I+″中的G″的值可能不等于矩阵I+中的G的值而言,利用矩阵I+″产生的视频中的且由于利用矩阵III″来代替矩阵III而引入的失真可被视为折衷,该折衷偏好短的位流,其代价是视频中表示的图像的保真度。 [0057] 例如,如果使用两步量化器来量化矩阵III中的系数,这样的两步量化器(例如量化器308)可如下地对矩阵III的系数分配量化值:0≤系数<5被分配以量化值0,5≤系数≤10被分配以量化值1。利用这样的两步量化器,矩阵III可被修改以产生如下矩阵III″′:
[0058]
[0059] 在将矩阵III″′的系数组织成位流322时,例如,熵编码器310可用二进制代码代替其中值为0的实例系列,由此减少位流322中的位的数量。接收位流322中的矩阵+III″′的系数的解码器可使用矩阵IV来如下地产生矩阵I″′:
[0060]+ + +
[0061] 同样,就矩阵I″′中的B″′的值可能不等于矩阵I 中的B的值、矩阵I″′中+ +的W″′的值可能不等于矩阵I 中的W的值、矩阵I″′中的G″′的值可能不等于矩阵+ +
I 中的G的值而言,利用矩阵I″′产生的视频中的且由于利用矩阵III″′来代替矩阵III而引入的失真可被视为折衷,该折衷偏好短的位流,其代价是视频中表示的图像的保真度。
[0062] 此外,矩阵III″与矩阵III″′之间的比较可说明例如使用八步量化器与使用两步量化器之间的折衷。矩阵III″′可能具有更多数量的其中系数为0的实例。此外,在矩阵III″′中,可在非零系数的实例中使用较小的值(由此导致较少数量的位)。因此,利用矩阵III″′而产生的位流可比利用矩阵III″而产生的位流短。然而,由于矩阵III″′与矩阵III的系数之间的差别可能大于矩阵III″与矩阵III的系数之间的差别,利用矩阵III″′而产生的视频的失真度会比利用矩阵III″而产生的视频的失真度大。 [0063] 除了可对在空间上分布在帧的不同位置处的相同或相似数据进行压缩的过程之外,视频压缩过程还标识其中数据的相同或相似值可在时间上分布在不同帧的相应位置处的实例,且可利用标识冗余的二进制代码代替这些位置中的至少一些中的数据。因为二进制代码可使用比原始数据的值更少的位,所以可减少位流中的位的数量。 [0064] 压缩在时间上分布于不同帧的相应位置的相同或相似数据的常见方法可包括从当前帧提取前一帧,以产生残留帧。图4示出残留帧的示例。例如,残留帧400可以是从当前帧200提取前一帧100的差别。例如,残留帧400可由第一求和器304来产生。在残留帧400中,表示前一帧100的图像中的静止对象(例如天空104和球场106)的像素中所存储的数据可抵消表示当前帧200的图像中的静止对象(例如天空204和球场206)的像素 中存储的数据。在这些情况下,有可能用二进制代码代替表示当前帧200的图像中的静止对象的像素中所存储的至少一些数据,所述二进制代码标识该至少一些数据可能与表示前一帧100的图像中的静止对象的像素中所存储的相应数据重复。然而,该方法对于表示在前一帧100中位于一个位置处且在当前帧200中位于另一位置处的对象的像素中所存储的数据可能是无效的。注意,残留帧400包括来自前一帧100的棒球102和来自当前帧200的棒球202。
[0065] 该问题可通过以下步骤解决:(1)将前一帧100和当前帧200中的每一个划分成像素的方块,(2)对于相应的块,比较像素数据的值,以确定是否有对象可能在前一帧100中位于一个位置且在当前帧200中位于另一位置,(3)如果确定该对象改变了位置,则使用当前帧200中的可能包括该对象的块的像素数据值来搜索前一帧100中的像素数据的值,以标识最佳匹配,以及(4)如果已经找到最佳匹配,则确定标识从前一帧100到当前帧200的对象位置改变的运动矢量的大小和方向。
[0066] 图5和6示出被分成方形块的帧的示例。一些用于视频压缩的技术标准可使用64个像素的方形块。也可使用其它大小。其它技术标准可使用256像素的方形块,并将其称为宏块。因此,如下文描述的对块执行的处理可类似地对宏块进行,而且术语“块”和“宏块”可互换地使用。在图5中,前一帧100可被划分成诸个方形块;在图6中,当前帧200可被划分成诸个方形块。
[0067] 首先,对于相应的块,可将像素数据的值进行比较。例如,这样的比较可由运动补偿器302来执行。可将块502与块602比较,可将块504与块604比较,等等。除了块504与604之间的比较以及块512与612之间的比较之外,其它比较可证实块中的对象保留在相同位置。
[0068] 接下来,因为块504与604之间的比较可指示前一帧100中的棒球102的位置与当前帧200中的棒球202的位置不同,所以可搜索前一帧100中的像素数据的值以标识与当前帧200中的块604的像素数据的值的最佳匹配。这样,这样的搜索可由运动补偿器302来执行。对前一帧100中的像素数据的值的搜索可局限于搜索区域542。搜索区域542的边界可被定义为 从块504的每个边界起的特定量的位偏移。(如果未在搜索区域542中找到最佳匹配,则可对帧200编码,而不补偿棒球202的位置的变化。)替换地,可搜索前一帧100中的像素数据的所有值以标识与当前帧200中的块604的像素数据的值的最佳匹配。
例如,在图5中,找到了与一组像素的最佳匹配,该组像素被标识为块604′。 [0069] 最终,可确定可标识从前一帧100到当前帧200的该对象的位置改变的实际运动矢量的大小和方向。例如,这样的搜索可由运动补偿器302来执行。这可通过确定块504和604′的相应转角的像素的位置之间的差别来实现。例如,可从块504的左上角处的像素的水平坐标减去块604′的左上角处的像素的水平坐标,以产生实际运动矢量的水平分量,并且从块504的左上角处的像素的垂直坐标减去位于块604′的左上角处的像素的垂直坐标,以产生实际运动矢量的垂直分量。
[0070] 替换地,如果搜索前一帧100中的像素数据的所有值以标识与当前帧200中的块604的像素数据值的最佳匹配,则如果实际运动矢量的大小足够大,则帧200可被编码,而不补偿棒球202的位置的改变。
[0071] 利用实际运动矢量,可通过将棒球102从其在帧100中的位置移动至帧200中的棒球202的位置,以从前一帧100产生对当前帧200的预测。从实际当前帧200减去对当前帧200的预测产生残留帧。图7示出这样的残留帧的示例。例如,残留帧700可由第一求和器304产生。因为对当前帧200的预测已经将棒球102从其在帧100中的位置移动至帧200中的棒球202的位置,所以对当前帧200的预测的像素中所存储的大多数数据可抵消实际当前帧200的像素中所存储的数据。注意,例如,残留帧700仅包括已从帧100中的位置移动至帧200中的棒球202的位置的棒球102的接缝742和处于帧200中的位置的棒球202的接缝744。将棒球102的位置从其在帧100中的位置移动至帧200中的棒球202的位置可能不代表帧200中的棒球202的接缝的位置从帧100中的棒球102的接缝的位置的改变。然而,残留帧700可表示可在时间上分布在不同帧的相应位置处的相同或相似数据的实质压缩。
[0072] 现在参考图3和7说明视频编码器300如何组合如上所述的时间压缩 和空间压缩的技术。假定运动补偿器302可访问最初前一帧100(称为参考图片),运动补偿器302可接收当前帧200的原始像素数据320并且可执行如上所述的过程以产生对当前帧200的预测324以及(可能的话)实际运动矢量326。如果产生实际运动矢量326并且其大小足够小,则运动补偿器302可将实际运动矢量326发送至熵编码器310。
[0073] 第一求和器304可接收原始像素数据320和预测324,且可从原始像素数据320减去预测324以产生残留帧700。第一求和器304可将残留帧700发送至变换器306。 [0074] 不是如上所述地在空间上将残留帧700整体地压缩,变换器306可在空间上独立地压缩残留帧700的每个块。因为残留帧700的所有块(除块704之外)的像素数据的值可能为零,所以由变换器306产生的用于所有这些块的系数也可能为零。此外,因为块704仅具有少量的像素数据,所以由变换器306产生的用于块704的大多数系数也可能为零。实际上,如上所述,取决于量化器308所使用的步骤数量,用于块704的系数的所有量化值可能被赋值为零。量化器308所使用的步骤数量也可确定可能被引入位流322的失真量。如果失真足够大,从重构数据产生的视频可能不包括例如接缝742和744。
[0075] 量化器308可将经量化的系数328发送至熵编码器310。熵编码器310可接收经量化的系数328以及(可能的话)实际运动矢量326,且可能产生经编码的位流322。例如,熵编码器310可利用二进制代码来代替值为零的实例系列,由此减少位流322中的位的数量。
[0076] 量化器308还可将经量化的系数328发送至缩放器312。缩放器312和逆变换器314可反转变换器306和量化器308的过程,以产生重构的残留帧700。
[0077] 第二求和器316可接收重构的残留帧700和预测324,且可将预测324添加至重构的残留帧700,以产生用于当前帧200的重构像素数据330。第二求和器316可将重构的像素数据330发送至缓冲器318。重构的像素数据330可能作为新的前一帧100对运动补偿器302可用,该新的前一帧也被称为参考图片。如上所述,由量化器308所使用的步骤数量和由缩放器312 所使用的步骤数量可确定由重构像素数据330所产生的视频中的失真量。 [0078] 然而,按照刚刚描述的方式,有可能根据最初前一帧100来压缩许多帧,尤其是在有可能产生具有足够小的量级的足够准确的实际运动矢量326时。
[0079] 此外,通过在可能时发送用于每个块的差运动矢量而不是发送用于每个块的实际运动矢量,可在位流322中实现进一步的压缩。如同残留帧700的使用表示对在时间上分布于不同帧的相应位置处的相同或相似数据的实质压缩,差运动矢量的使用也可表示对在时间上分布于不同帧的相应位置处的相同或相似数据的实质压缩。对于一个块,差运动矢量可以是用于该块的实际运动矢量与用于该块的预测运动矢量之间的差。由于差运动矢量可比实际运动矢量要小,差矢量可使用比实际运动矢量更少的位,这可减少位流322中的位的数量。
[0080] 对于当前块,可从当前块附近的至少一个先前的编码块的至少一个实际运动矢量来产生预测运动矢量。例如,根据用于视频压缩的一些技术标准,用于当前块的预测运动矢量可以是以下的中位值:(1)用于紧邻当前块左边的块(若存在)的实际运动矢量;(2)用于紧邻当前块上方的块(若存在)的实际运动矢量;以及(3)用于紧邻当前块上方和右方的块的实际运动矢量。例如,在图6中,用于当前块618的预测运动矢量可以是以下的中位值:(1)用于块616的实际运动矢量;(2)用于块608的实际运动矢量;以及(3)用于块610的实际运动矢量。
[0081] 用于存储在诸如数字视频盘之类的某些数据存储设备上的视频压缩过程可呈现特别的挑战。一方面,在压缩以用于存储在某些数据存储设备之前,有可能有利地将原始像素数据的完整序列存储在存储器中。另一方面,观看由存储在某些数据存储设备上的重构像素数据所产生的视频的用户有时候(例如)可能想要访问该序列中的特定帧,而不是仅仅从开头来观看整个序列(例如,跳至电影中的某些点,而不是观看电影整体的全部)。 [0082] 如果定位特定帧取决于对大量先前帧的解码,则因为在序列中定位这样的特定帧所消耗的时间可能长到足以降低用户的乐趣,所以用于视频压缩的一些技术标准规定,在该序列中周期性地仅使用空间压缩过程来对帧 进行编码。例如,这样的帧可称为I帧。 [0083] 为了补偿在序列中使用I帧的要求所引起的压缩损失,一些用于视频压缩的技术标准允许序列中的其它帧利用空间和时间压缩过程二者来编码,且允许时间压缩过程,在时间压缩过程中可产生对当前帧的预测以使用先前帧和后继帧二者。例如,这样的帧也可称为B帧。如果原始像素数据的完整序列在压缩之前被存储在存储器中,则使用先前帧和后继帧二者也是可能的。此外,使用先前帧和后继帧二者可改善对当前帧的预测的准确性,从而可改善对该帧的压缩。
[0084] 为了管理使用先前帧和后继帧二者来产生当前帧的预测的协议,一些用于视频压缩的技术标准规定,在序列中周期性地使用空间和时间压缩过程二者来对帧进行编码,但将时间压缩过程限制于可仅使用先前帧来产生对当前帧的预测的那些帧。例如,这样的帧也可称为P帧。一些用于视频压缩的技术标准规定,对P帧的时间压缩编码可仅使用先前的I帧或先前的P帧,而且对B帧的时间压缩编码可仅使用:(1)先前的I帧或先前的P帧,以及(2)后继的I帧或后继的P帧。
[0085] 图8示出序列中的I、B和P帧的安排的示例。在图8中,例如,序列800包括I帧802、B帧804、B帧806、P帧808、B帧810、B帧812、P帧814、B帧816、B帧818以及I帧
820。P帧808可利用先前的I帧802来编码。P帧814可利用先前的P帧808来编码。B帧804可利用先前的I帧802和后继的P帧808来编码。类似地,B帧806可利用先前的I帧802和后继的P帧808来编码。B帧810可利用先前的P帧808和后继的P帧814来编码。类似地,B帧812可利用先前的P帧808和后继的P帧814来编码。B帧816可利用先前的P帧814和后继的I帧820来编码。类似地,B帧818可利用先前的P帧814和后继的I帧820来编码。
[0086] 序列800按照帧被呈现的顺序根据它们的帧号示出这些帧。然而,为了使解码过程正确地操作,例如,熵编码器310可将用于帧的数据被放置到位流322中的顺序改变成例如:I帧802、P帧808、B帧804、B帧806、P帧814、B帧810、B帧812、I帧820、B帧816、以及B帧818。帧的该顺序可根据被称为图片顺序计数的方式来设置。
[0087] 随着视频压缩过程已变得进一步精细化,它们已经演变成包括附加的帧划分程度、过程的层次以及对哪些划分程度执行哪些过程的协议。
[0088] 第一,对于时间压缩过程的使用一个以上参考图片的能的引入可导致管理多个参考图片的需要。为了完成该任务,一些用于视频压缩的技术标准规定,兼容的编码器和解码器保持至少一个参考图片列表。例如,参考图3,参考图片可从重构的像素数据330产生并被存储在缓冲器318中。
[0089] 第二,视频压缩过程已经演变将对(1)压缩过程的类型以及(2)可被使用的参考图片的数量的确定从对帧进行改变至对帧的划分(被称为片)进行。
[0090] 根据一些用于视频压缩的技术标准,帧可被划分成从1(例如整个帧是一个片)到该帧中的块的数量的范围内的多个片。每个片可具有任意形状,但每个片包含完整数量的块。图9和10示出被划分成片的帧的示例。
[0091] 例如,在图9中,帧200可被划分成片902和片904。例如,较小的片902可对应于当前帧200的一部分,其中对象(例如棒球202)的位置可以与先前帧100中的该对象(例如棒球102)的位置不同。例如,较大的片904可对应于当前帧200的一部分,其中对象(例如天空204和球场206)的位置可以与先前帧100中的该对象(例如天空104和球场106)的位置相同或相似。
[0092] 形成片的那些块不需要是邻近的。例如,在图10中,帧200具有通过块中的图案所标注的四个片。例如,利用图10中的要点,帧200具有片1002、片1004、片1006以及片1008。
[0093] 随着片的引入,有可能将对(1)压缩过程的类型和(2)可被使用的参考图片的数量的确定从对帧进行改变至对片进行。因此,根据一些用于视频压缩的技术标准,可使用例如I片、B片以及P片,而不是使用I帧、B帧以及P帧。此外,一些用于视频压缩的技术标准规定,I片可仅包含I块;B片可包含I块、B块或二者;以及P片可包含I块、P块或二者。
[0094] 第三,虽然该块可保留基本单元(空间压缩过程对该基本单元进行),但根据一些用于视频压缩的技术标准,现在可对块的多个分区执行时间压缩过程。
[0095] 第四,与以上相对于图8呈现的方案相反,根据一些用于视频压缩的技术标准,P块与B块之间的区别可能不取决于对块进行编码所依据的参考图片的数量,而是取决于从中选择参考图片来对块进行编码的参考图片列表的数量。
[0096] 例如,P块可利用从仅一个参考图片列表中选择的参考图片来进行编码。包括该P块的P片可被配置成仅利用一个参考图片列表来编码。对于P块,参考图片列表可包括有限数量的参考图片。运动补偿器(例如,运动补偿器302)可在例如参考图片列表上的参考图片之间选择最佳匹配。当产生参考图片时,可考虑将其包含在参考图片列表上。因为可根据参考图片的图片序号而不是它们的帧号来产生参考图片,所以参考图片有可能对应于先前帧或后继帧。这与上文中相对于其中仅使用先前帧的图8来呈现P帧的限制相反。一般而言,参考图片列表上所包含的参考图片可根据它们的帧号来排序。参考图片列表上的每个参考图片的位置可通过索引号来跟踪,使得具有最高帧号的参考图片具有最低索引号。具有逐渐降低的帧号的诸个参考图片可能具有逐渐升高的索引号。如果参考列表包括最大数量的参考图片,且要添加新的参考图片,则当前在参考列表上且具有最低帧号的参考图片可被移除,使得新参考图片可被添加。
[0097] 例如,B块可利用从一个或两个参考图片列表中选择的参考图片来进行编码。包括该B块的B片可被配置成仅利用两个参考图片列表来被编码。一般而言,参考图片列表上所包含的参考图片可根据它们的图片顺序计数来排序。该缓冲器(例如缓冲器318)中的所有参考图片被包含在两个参考图片列表上,但可在缓冲器中的具有比当前帧的图片顺序计数要低的图片顺序计数的那些参考图片与缓冲器中的具有比当前帧的图片顺序计数要高的图片顺序计数的那些参考图片之间作出区分。
[0098] 在第一参考图片列表上,该缓冲器中的具有比当前帧的图片顺序计数要低的图片顺序计数的那些参考图片可通过索引号来跟踪,使得具有最高图片顺序计数的参考图片具有最低索引号。具有逐渐降低的图片顺序计数的诸个参考图片可能具有逐渐升高的索引号。一旦该缓冲器中的具有比当前帧的图片顺序计数要低的图片顺序计数的参考图片已经在第一参考图片 列表上被排序,则可添加该缓冲器中的具有比当前帧的图片顺序计数要高的图片顺序计数的参考图片,以使得具有逐渐升高的图片顺序计数的参考图片具有逐渐升高的索引号。
[0099] 在第二参考图片列表上,该缓冲器中的具有比当前帧的图片顺序计数要高的图片顺序计数的那些参考图片可通过索引号来跟踪,使得具有最低图片顺序计数的参考图片具有最低索引号。具有逐渐升高的图片顺序计数的参考图片具有逐渐升高的索引号。一旦该缓冲器中的具有比当前帧的图片顺序计数要高的图片顺序计数的参考图片已经在第二参考图片列表上被排序,则可添加该缓冲器中的具有比当前帧的图片顺序计数要低的图片顺序计数的参考图片,以使得具有逐渐降低的图片顺序计数的参考图片具有逐渐升高的索引号。
[0100] 对于B块,运动补偿器(例如,运动补偿器302)可在例如两个参考图片列表上的参考图片之间选择最佳匹配。运动补偿器可选择使用一个或两个参考图片。这与上述的相对于其中使用两个参考图片的图8来呈现B帧的限制相反。如果运动补偿器选择使用两个参考图片,则一个必须从第一参考图片列表中选择,而另一个必须从第二参考图片列表中选择。
[0101] 因为可根据参考图片的图片序号而不是它们的帧号来产生参考图片,所以两个参考图片都有可能对应于先前的帧,或两个参考图片都有可能对应于后继的帧。这与上述的相对于其中使用先前帧和后继帧二者的图8来呈现B帧的限制相反。
[0102] 为了减少位流中的位的数量,用于视频压缩的一些技术标准可提供要由解码器进行的默认处理,这些默认处理与在缺少指导不同处理的二进制代码时的技术标准兼容。例如,根据一些用于视频压缩的技术标准,如果熵编码器(例如熵编码器302)未在位流中发送当前块的差运动矢量,则解码器可默认地使用用于当前块的预测运动矢量,该预测运动矢量可从邻近于当前块的至少一个先前接收的编码块的至少一个实际运动矢量中导出。 [0103] 例如,根据一些用于视频压缩的技术标准,对于B块,直接模式可用,在直接模式中熵编码器(例如熵编码器302)不在位流中发送当前块的差运动矢量,且解码器可默认地使用用于当前块的预测运动矢量,该预测运动 矢量可从邻近于当前块的至少一个先前接收的编码块的至少一个实际运动矢量中导出。
[0104] 附加地,根据一些用于视频压缩的技术标准,解码器默认地而且在没有指示不同处理的二进制代码时可对未经分区的块而不是块的分区来执行时间压缩过程。 [0105] 有时候,熵编码器有可能在位流中包括指示与块相关联的所有其它数据已从位流中被排除的二进制代码。这样的块可称为跳过块。在发送跳过块时,编码器可能充分利用将由编码器执行的默认过程,以减少位流中的位的数量。为此,评估块候选用于被转换成跳过块的能力会是有用的。
[0106] 图11是根据实施例的用于评估与视频块相关联的经编码数据的序列的示例方法的处理流程图。该块可以是宏块。图11中的方法1100可利用操作硬件、软件、固件或这些的一些组合的至少一个电子处理系统来执行。
[0107] 在方法1100中,在1102,至少一个电子处理系统可确定与块相关联的经变换的残留像素数据的经量化系数是否等于零。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列中的二进制代码的值,可确定与该块相关联的经变换的残留像素数据的经量化系数等于零。例如,在高级视频编码标准中,通过确定二进制代码“coded_block_pattern”的值,可确定与该块相关联的经变换的残留像素数据的经量化系数等于零。 [0108] 在1104,至少一个电子处理系统可确定该块是否利用时间压缩过程来编码。例如,这样的块可以是P块或B块。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列中的二进制代码的值,可确定该块已经利用时间压缩过程来编码。例如,在高级视频编码标准中,通过确定二进制代码“mb_type”的值,可确定该块已经使用时间压缩过程来编码。 [0109] 在1106,至少一个电子处理系统可确定包含该块的片是否被配置成仅利用一个参考图片列表来编码。例如,这样的片可以是P片。该片可以是帧。该片可以是场。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列中的二进制代码的值,可确定包含该块的该片已经被配置成仅利用一个参考图片列表来编码。例如,在高级视频编码标准中,通过确定二进制代码“slice_type”的值,可确定包含该块的片已经被配置成仅使用 一个参考图片列表来编码。
[0110] 在1108,至少一个电子处理系统可确定该块是否未经分区。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列中的二进制代码的值,可确定该块未经分区。例如,在高级视频编码标准中,通过确定二进制代码“mb_type”的值,可确定该块未经分区。 [0111] 在1110,至少一个电子处理系统可确定被使用以对该块进行编码的参考图片是否是最近被添加至该一个参考图片列表的参考图片。根据一些用于视频压缩的技术标准,最近被添加至该一个参考图片列表的参考图片可以是与该参考图片列表上的最低索引值相关联的参考图片。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列中的二进制代码的值,可确定被使用以对块进行编码的参考图片是该一个参考图片列表上的具有最低索引值的参考图片。例如,在高级视频编码标准中,通过确定二进制代码“ref_idx_l0”的值,可确定被使用以对块进行编码的参考图片是该一个参考图片列表上的与最低索引值相关联的参考图片。
[0112] 在1112,至少一个电子处理系统可确定与该块相关联的实际运动矢量是否等于与该块相关联的预测运动矢量。
[0113] 如果方法1100的结果指示该块是成功的候选,则可改变经编码数据的序列以指示该块是跳过块。
[0114] 可选地,根据一些用于视频压缩的技术标准,至少一个电子处理系统可将经编码数据的序列中的二进制代码的值递增。该二进制代码可指示连续数量的块,这些块的数据从经编码数据的序列中被排除。例如,在高级视频编码标准中,将二进制代码“mb_skip_run”的值递增表明该块是连续数量的跳过块中的一个。
[0115] 另选地,根据一些用于视频压缩的技术标准,至少一个电子处理系统可改变经编码数据的序列中的二进制代码的值。该二进制代码可与该块相关联,且可指示与该块相关联的其它数据从经编码数据的序列中被排除。例如,在高级视频编码标准中,改变二进制代码“mb_skip_flag”的值表明该块是跳过块。
[0116] 图12是根据实施例的用于评估与视频块相关联的经编码数据的序列 的示例系统的框图。在图12中,例如,系统1200包括第一电子处理系统1202、第二电子处理系统1204、第三电子处理系统1206、第四电子处理系统1208、第五电子处理系统1210、第六电子处理系统1212以及存储器1214。可选地,系统1200还可包括第七电子处理系统1216。可选地,第一1202、第二1204、第三1206、第四1208、第五1210、第六1212以及第七1216电子处理系统的功能可通过单个电子处理系统来实现。
[0117] 第一电子处理系统1202可被配置成确定与该块相关联的经变换的残留像素数据的经量化系数是否等于零。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列328中的二进制代码的值,可确定与该块相关联的经变换的残留像素数据的经量化系数等于零。例如,在高级视频编码标准中,通过确定二进制代码“coded_block_pattern”的值,可确定与该块相关联的经变换的残留像素数据的经量化系数等于零。
[0118] 第二电子处理系统1204可被配置成确定该块是否利用时间压缩过程来编码。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列328中的二进制代码的值,可确定该块已经利用时间压缩过程来编码。例如,在高级视频编码标准中,通过确定二进制代码“mb_type”的值,可确定该块已经使用时间压缩过程来编码。
[0119] 第三电子处理系统1206可被配置成确定包含该块的片是否被配置成仅利用一个参考图片列表来编码。例如,这样的片可以是P片。该片可以是帧。该片可以是场。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列328中的二进制代码的值,可确定包含该块的该片已经被配置成仅利用一个参考图片列表来编码。例如,在高级视频编码标准中,通过确定二进制代码“slice_type”的值,可确定包含该块的片已经被配置成仅使用一个参考图片列表来编码。
[0120] 第四电子处理系统1208可被配置成确定该块是否未经分区。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列328中的二进制代码的值,可确定该块未经分区。例如,在高级视频编码标准中,通过确定二进制代码“mb_type”的值,可确定该块未经分区。因为根据一些用于视频压缩的技术标准,可被用于确定该块是否利用时间压缩过程来编码的同 一二进制代码也可被用于确定该块是否未经分区,所以第二电子处理系统1204和第四电子处理系统1208的功能可选地通过单个电子处理系统来执行。 [0121] 第五电子处理系统1210可被配置成确定被使用以对该块进行编码的参考图片是否是最近被添加至该一个参考图片列表的参考图片。根据一些用于视频压缩的技术标准,最近被添加至该一个参考图片列表的参考图片可以是与该一个参考图片列表上的最低索引值相关联的参考图片。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列
328中的二进制代码的值,可确定被使用以对块进行编码的参考图片是该一个参考图片列表上的与最低索引值相关联的参考图片。例如,在高级视频编码标准中,通过确定二进制代码“ref_idx_l0”的值,可确定被使用以对块进行编码的参考图片是该一个参考图片列表上的与最低索引值相关联的参考图片。
[0122] 第六电子处理系统1212可被配置成确定与该块相关联的实际运动矢量是否等于与该块相关联的预测运动矢量。例如,在系统1200中,与该块相关联的预测运动向量可被存储在存储器1214中。第六电子处理系统1212可被配置成接收来自存储器1214的与该块相关联的预测运动矢量,并接收例如来自运动补偿器302的实际运动矢量326。第六电子处理系统1212可被配置成例如将关联于该块的实际运动矢量326与关联于该块的预测运动矢量作比较,以确定它们是否相等。
[0123] 可选地,第七电子处理系统1216可被配置成确定该块是否是将转换成跳过块的成功候选,如果是,则改变经编码数据的序列328以产生位流322。可选地,第七电子处理系统1214可将经编码数据的序列中的二进制代码的值递增。该二进制代码可指示连续数量的块,这些块的数据从经编码数据的序列中被排除。例如,在高级视频编码标准中,将二进制代码“mb_skip_run”的值递增表明该块是连续数量的跳过块中的一个。替换地,可选地,第七电子处理系统1216可改变经编码数据的序列中的二进制代码的值。该二进制代码可与该块相关联,且可指示与该块相关联的其它数据从经编码数据的序列中被排除。例如,在高级视频编码标准中,改变二进制代码“mb_skip_flag”的值表明该块是跳过块。 [0124] 图13是根据实施例的系统1200的软件或固件实施例的示例的框图。在图13中,电子处理系统1300包括:例如,一个或多个可编程处理器1302、存储器1304、计算机程序逻辑1306、一个或多个I/O端口和/或I/O设备1308、经量化系数确定逻辑1310、时间压缩确定逻辑1312、片确定逻辑1314、块模式确定逻辑1316、参考图片确定逻辑1318以及运动矢量比较逻辑1320。可选地,电子处理系统1300还包括跳过块确定逻辑1322。 [0125] 一个或多个可编程处理器1302可被配置成执行如上所述的系统1200的功能。可编程处理器1302可包括中央处理单元(CPU)和/或图形处理单元(GPU)。存储器可包括可存储计算机程序逻辑1306的一种或更多种计算机可读介质。存储器1304可被实现为例如硬盘驱动器、诸如例如紧致盘、只读存储器(ROM)或随机访问存储器(RAM)之类的可移动介质、或它们的一些组合。可编程处理器1302和存储器1304可使用本领域普通技术人员公知的若干种技术中的任一种技术来通信,诸如使用总线来通信。存储器1304中包含的计算机程序逻辑1306可由可编程处理器1302来读取和执行。一个或多个I/O端口和/或I/O设备1308也可连接至处理器1302和存储器1304。
[0126] 在图13的实施例中,计算机程序逻辑1306可包括经量化系数确定逻辑1310,该经量化系数确定逻辑1310可被配置成接收与关联于该块的经变换的残留像素数据的经量化系数有关的数据值,并确定它们是否等于零。计算机程序逻辑1306还可包括时间压缩确定逻辑1312,时间压缩确定逻辑1312可被配置成接收与该块的压缩方法有关的数据值,并确定该块是否利用时间压缩过程来编码。计算机程序逻辑1306还可包括片确定逻辑1314,片确定逻辑1314可被配置成接收与包含该块的该片的压缩方法有关的数据值,并确定该片是否被配置成仅利用一个参考图片列表来编码。计算机程序逻辑1306还可包括块模式确定逻辑1316,块模式确定逻辑1316可被配置成接收与该块的模式有关的数据值,并确定该块是否未经分区。计算机程序逻辑1306还可包括参考图片确定逻辑1318,参考图片确定逻辑1318可被配置成接收与被使用以对该块进行编码的参考图片有关的数据值,并确定被使用以对该块进行编码的参考图片是否是最近被添加至该一个参考 图片列表的参考图片。计算机程序逻辑1306还可包括运动矢量比较逻辑1320,运动矢量比较逻辑可被配置成接收与关联于该块的实际运动矢量和关联于该块的预测运动矢量有关的数据值,并确定它们是否相等。
[0127] 可选地,计算机程序逻辑1306还可包括跳过块确定逻辑1322,跳过块确定逻辑1322可被配置成接收来自经量化系数确定逻辑1310、时间压缩确定逻辑1312、片确定逻辑
1314、块模式确定逻辑1316、参考图片确定逻辑1318以及运动矢量比较逻辑1320的数据值,以确定该块是否是将转换成跳过块的成功候选,而且如果是这样,则发送信号以改变经编码数据的序列328以产生位流322。可选地,跳过块确定逻辑1322可发送信号以将经编码数据的序列中的二进制代码的值递增。该二进制代码可指示连续数量的块,这些块的数据从经编码数据的序列中被排除。替换地,可选地,跳过块确定逻辑1322可发送信号以改变经编码数据的序列中的二进制代码的值。该二进制代码可与该块相关联,且可指示与该块相关联的其它数据从经编码数据的序列中被排除。
[0128] 图14是根据实施例的用于评估与视频块相关联的经编码数据的序列的示例方法的处理流程图。该块可以是宏块。图14中的方法1400可利用操作硬件、软件、固件或这些的一些组合的至少一个电子处理系统来执行。
[0129] 在方法1400中,在1402,至少一个电子处理系统可确定与块相关联的经变换的残留像素数据的经量化系数是否等于零。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列中的二进制代码的值,可确定与该块相关联的经变换的残留像素数据的经量化系数等于零。例如,在高级视频编码标准中,通过确定二进制代码“coded_block_pattern”的值,可确定与该块相关联的经变换的残留像素数据的经量化系数等于零。 [0130] 在1404,至少一个电子处理系统可确定该块是否利用时间压缩过程来编码。例如,这样的块可以是P块或B块。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列中的二进制代码的值,可确定该块已经利用时间压缩过程来编码。例如,在高级视频编码标准中,通过确定二进制代码“mb_type”的值,可确定该块已经使用时间压缩过程来编码。 [0131] 在1406,至少一个电子处理系统可确定包含该块的片是否被配置成利 用两个参考图片列表来编码。例如,这样的片可以是B片。该片可以是帧。该片可以是场。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列中的二进制代码的值,可确定包含该块的该片已经被配置成利用两个参考图片列表来编码。例如,在高级视频编码标准中,通过确定二进制代码“slice_type”的值,可确定包含该块的片已经被配置成利用两个参考图片列表来编码。
[0132] 在1408,至少一个电子处理系统可确定该块是否按照直接模式来编码。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列中的二进制代码的值,可确定该块已经按照直接模式来编码。例如,在高级视频编码标准中,通过确定二进制代码“mb_type”的值,可确定该块已经按照直接模式来编码。
[0133] 如果方法1400的结果指示该块是成功的候选,则可改变经编码数据的序列以指示该块是跳过块。
[0134] 可选地,根据一些用于视频压缩的技术标准,至少一个电子处理系统可将经编码数据的序列中的二进制代码的值递增。该二进制代码可指示连续数量的块,这些块的数据从经编码数据的序列中被排除。例如,在高级视频编码标准中,将二进制代码“mb_skip_run”的值递增表明该块是连续数量的跳过块中的一个。
[0135] 替代地,可选地,根据一些用于视频压缩的技术标准,至少一个电子处理系统可改变经编码数据的序列中的二进制代码的值。该二进制代码可与该块相关联,且可指示与该块相关联的其它数据从经编码数据的序列中被排除。例如,在高级视频编码标准中,改变二进制代码“mb_skip_flag”的值表明该块是跳过块。
[0136] 图15是根据实施例的用于评估与视频块相关联的经编码数据的序列的示例系统的框图。在图15中,系统1500包括例如第一电子处理系统1502、第二电子处理系统1504、第三电子处理系统1506、以及第四电子处理系统1508。可选地,系统1500还可包括第五电子处理系统1510。可选地,第一1502、第二1504、第三1506、第四1508、第五1510电子处理系统的功能可通过单个电子处理系统来实现。
[0137] 第一电子处理系统1502可被配置成确定与该块相关联的经变换的剩余像素数据的经量化系数是否等于零。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列328中的二进制代码的值,可确定与该块相关联的经变换的残留像素数据的经量化系数等于零。例如,在高级视频编码标准中,通过确定二进制代码“coded_block_pattern”的值,可确定与该块相关联的经变换的残留像素数据的经量化系数等于零。
[0138] 第二电子处理系统1504可被配置成确定该块是否利用时间压缩过程来编码。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列328中的二进制代码的值,可确定该块已经利用时间压缩过程来编码。例如,在高级视频编码标准中,通过确定二进制代码“mb_type”的值,可确定该块已经使用时间压缩过程来编码。
[0139] 第三电子处理系统1506可被配置成确定包含该块的片是否被配置成利用两个参考图片列表来编码。例如,这样的片可以是B片。该片可以是帧。该片可以是场。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列328中的二进制代码的值,可确定包含该块的该片已经被配置成利用两个参考图片列表来编码。例如,在高级视频编码标准中,通过确定二进制代码“slice_type”的值,可确定包含该块的片已经被配置成利用两个参考图片列表来编码。
[0140] 第四电子处理系统1508可被配置成确定该块是否按照直接模式来编码。根据一些用于视频压缩的技术标准,通过确定经编码数据的序列328中的二进制代码的值,可确定该块已经按照直接模式来编码。例如,在高级视频编码标准中,通过确定二进制代码“mb_type”的值,可确定该块已经按照直接模式来编码。因为根据一些用于视频压缩的技术标准,可被用于确定该块是否利用时间压缩过程来编码的同一二进制代码也可被用于确定该块是否按照直接模式来编码,所以第二电子处理系统1504和第四电子处理系统1508的功能可选地通过单个电子处理系统来执行。
[0141] 可选地,第五电子处理系统1510可被配置成确定该块是否是将转换成跳过块的成功候选,如果是,则改变经编码数据的序列328以产生位流322。可选地,第五电子处理系统1510可将经编码数据的序列中的二进制代码的 值递增。该二进制代码可指示连续数量的块,这些块的数据从经编码数据的序列中被排除。例如,在高级视频编码标准中,将二进制代码“mb_skip_run”的值递增表明该块是连续数量的跳过块中的一个。另选地,可选地,第五电子处理系统1510可改变经编码数据的序列中的二进制代码的值。该二进制代码可与该块相关联,且可指示与该块相关联的其它数据从经编码数据的序列中被排除。例如,在高级视频编码标准中,改变二进制代码“mb_skip_flag”的值表明该块是跳过块。 [0142] 图16是根据实施例的系统1500的软件或固件实施例的示例的框图。在图16中,电子处理系统1600包括:例如,一个或多个可编程处理器1602、存储器1604、计算机程序逻辑1606、一个或多个I/O端口和/或I/O设备1608、经量化系数确定逻辑1610、时间压缩确定逻辑1612、片确定逻辑1614、以及块模式确定逻辑1616。可选地,电子处理系统1600还包括跳过块确定逻辑1618。
[0143] 一个或多个可编程处理器1602可被配置成执行如上所述的系统1500的功能。可编程处理器1602可包括中央处理单元(CPU)和/或图形处理单元(GPU)。存储器1604可包括可存储计算机程序逻辑1606的一种或更多种计算机可读介质。存储器1604可被实现为例如硬盘和驱动器、诸如紧致盘、只读存储器(ROM)或随机访问存储器(RAM)之类的可移动介质、或它们的一些组合。可编程处理器1602和存储器1604可使用本领域普通技术人员公知的若干种技术中的任一种技术来通信,诸如使用总线来通信。存储器1604中包含的计算机程序逻辑1606可由可编程处理器1602来读取和执行。一个或多个I/O端口和/或I/O设备1608也可连接至处理器1302和存储器1604。
[0144] 在图16的实施例中,计算机程序逻辑1606可包括经量化系数确定逻辑1610,该经量化系数确定逻辑1610可被配置成接收与关联于该块的经变换的残留像素数据的经量化系数有关的数据值,并确定它们是否等于零。计算机程序逻辑1606还可包括时间压缩确定逻辑1312,时间压缩确定逻辑1312可被配置成接收与该块的压缩方法有关的数据值,并确定该块是否利用时间压缩过程来编码。计算机程序逻辑1606还可包括片确定逻辑1614, 片确定逻辑1614可被配置成接收与包含该块的该片的压缩方法有关的数据值,并确定该片是否被配置成利用两个参考图片列表来编码。计算机程序逻辑1606还可包括块模式确定逻辑1616,块模式确定逻辑1616可被配置成接收与该块的模式有关的数据值,并确定该块是否按照直接模式来编码。
[0145] 可选地,计算机程序逻辑1606还可包括跳过块确定逻辑1618,跳过块确定逻辑1618可被配置成接收来自经量化系数确定逻辑1610、时间压缩确定逻辑1612、片确定逻辑
1614、块模式确定逻辑1616的数据值,以确定该块是否是将转换成跳过块的成功候选,而且如果是这样,则发送信号以改变经编码数据的序列328以产生位流322。可选地,跳过块确定逻辑1618可发送信号以将经编码数据的序列中的二进制代码的值递增。该二进制代码可指示连续数量的块,这些块的数据从经编码数据的序列中被排除。另选地,可选地,跳过块确定逻辑1618可发送信号以改变经编码数据的序列中的二进制代码的值。该二进制代码可与该块相关联,且可指示与该块相关联的其它数据从经编码数据的序列中被排除。 [0146] 方法1100和1400以及系统1200、1300、1500和1600可在硬件、软件、固件或这些TM
的一些组合中实现,包括:例如,包含 高速视频同步技术的第二代 Core i处理器i3/i5/i7。
[0147] 在诸个实施例中,方法1100和1400以及系统1200、1300、1500和1600可被实现为有线通信系统、无线通信系统或两者的结合的一部分。例如,在诸个实施例中,方法1100和1400以及系统1200、1300、1500和1600可在具有无线能力的移动计算设备中实现。例如,移动计算设备可以指代具有电子处理系统以及诸如一个或多个电池之类的移动功率源或电源的任何设备。
[0148] 移动计算设备的示例可包括:膝上型计算机、超移动个人计算机、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝式电话、组合蜂窝式电话/PDA、智能电话、寻呼机、单向寻呼机、双向寻呼机、消息收发设备、数据通信设备、移动互联网设备、MP3播放器,等等。
[0149] 例如,在实施例中,移动计算设备可被实现为能够执行计算机应用以 及语音通信和/或数据通信的智能电话。尽管以示例的方法用被实现为智能电话的移动计算设备对一些实施例进行描述,但是可以认识到,也可使用其它无线移动计算设备实现其它的实施例。各实施例不限于此上下文的情况。
[0150] 在本申请中,方法和系统是借助于示出其功能、特征和关系的功能性构造块来公开的。在本文中为便于描述,任意地限定了这些功能性构造块的至少一些边界。可定义替代的边界,只要指定功能及其关系能适当地实现。
[0151] 本申请中公开的一个或多个特征可在硬件、软件、固件以及它们的组合中实现,包括分立和集成电路逻辑、专用集成电路(ASIC)逻辑以及微控制器,且可实现为专领域的集成电路封装的一部分或集成电路封装的组合。本文中所使用的“软件”这一术语指示包括计算机可读介质的计算机程序产品,该计算机可读介质具有存储于其中的计算机程序逻辑以使计算机系统执行本申请中所揭示的一个或多个特征和/或特征的组合。该计算机可读介质可以是瞬态的或非瞬态的。瞬态计算机可读介质的示例可以是在射频上或在电气导体上通过局域网或广域网或通过诸如因特网之类的网络所传输的数字信号。非瞬态计算机可读介质的示例可以是紧致盘、闪存或其它数据存储设备。
[0152] 虽然本申请中揭示了各种实施例,但应理解它们仅以示例方式给出而非作为限制。本领域普通技术人员应当显而易见,可在本申请中作出形式上以及细节上的各种改变而不背离本申请所揭示的方法和系统的精神和范围。因此,权利要求的宽度和范围不受本文中所揭示的任何示例性实施例的限制。
高效检索全球专利

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

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

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈