首页 / 专利库 / 视听技术与设备 / 帧间位移误差 / 自适应的多维信号序列编码/解码方法和装置

自适应的多维信号序列编码/解码方法和装置

阅读:406发布:2020-11-20

专利汇可以提供自适应的多维信号序列编码/解码方法和装置专利检索,专利查询,专利分析的服务。并且本 发明 描述了一种处理 信号 序列的系统和方法。公开了一个混合型的基于 块 匹配和转换的N维信号序列 编码器 和 解码器 。该编码器包括编码器侧的 块匹配 预测器,其包括基于墒的成本函数,该成本函数可根据块匹配差值的特定 能量 监测而被估计;一种快速块匹配搜索方法,它学习来自相邻块的结果,并且仅仅通过 访问 少量的点来执行大范围的搜索。而且公开了一种方法,其基于编码器的输出,来动态地调节成本函数参数和其他的编码控制参数,并对编码器的 质量 和性能进行优化。,下面是自适应的多维信号序列编码/解码方法和装置专利的具体信息内容。

1.一种处理信号序列的系统,该系统包括:
一个接收信号序列的区分器,所述信号序列包括一个n维当前, 所述n维当前帧包括多个当前帧和多个n维参考帧,所述多个n维 参考帧中的每一帧包括多个参考帧块;
一个存储所述多个n维参考帧的帧缓冲器
一个块匹配预测器,其为所述多个当前帧块中的每一块识别所述 多个参考帧块中的一个预测块,并为所述多个当前帧块中每一块的相 应预测块确定一个参考位移索引和一个块预测差值,其中所述参考位 移索引用以识别所述参考帧块内的一个点;
一个块编码器,其对所述多个当前帧块中每一块的相应块预测差 值和相应参考位移索引进行编码,并藉此创建多个编码块;和
一个序列编码器,其根据预定格式把所述多个编码块打包在一起。
2.根据权利要求1所述的系统,包括:
一个序列解码器,其根据所述预定格式对所述多个编码块进行解 包;和
一个块解码器,其利用相应的块预测差值和相应的参考位移索引 对所述多个编码块中的每一块进行解码。
3.根据权利要求1所述的系统,其中所述预测块被识别,从而使 利用所述多个参考帧块对一个当前帧块进行编码所需的信息量减至最 小。
4.根据权利要求1所述的系统,其包括一个成本估计组件,以确 定识别所述预测块的计算强度,所述成本估计组件利用了一个成本函 数。
5.根据权利要求4所述的系统,其中所述成本估计组件是利用基 于一个或多个参数的一个估计,所述参数选自包括所述块预测差值的 一个或多个特性值和所述块匹配预测器的一个或多个状态的的线性组 合的组中。
6.根据权利要求4所述的系统,其中所述成本函数是基于至少一 个表查询,所述表查询具有所述块预测差值的特性值和所述块匹配预 测器的一个或多个状态指定的表条目。
7.根据权利要求3所述的系统,其中利用所述多个参考帧块对所 述当前帧块进行编码所需的信息量是由相应块预测差值的比特速率与 相应参考位移索引的比特速率之和确定的。
8.根据权利要求1所述的系统,其包括一个系数去相关转换组件, 以在对转换的N维系数进行编码之前,利用N维系数去相关转换T来 转换所述块预测差值。
9.根据权利要求1所述的系统,其中所述块匹配预测器能够处理 各种形状和尺寸的块。
10.根据权利要求8所述的系统,其中所述系数去相关转换组件能 够处理各种形状和尺寸的块。
11.根据权利要求8所述的系统,其中所述系数去相关转换组件将 利用具有有关形状和尺寸的块,所述有关形状和尺寸是由所述块匹配 预测器选择的。
12.根据权利要求8所述的系统,其中所述系数去相关转换组件是 根据一个或多个系统性能要求来利用一种转换方法。
13.根据权利要求8所述的系统,其中所述块编码器是利用N维 折线扫描和游程长度编码对转换的N维系数进行编码。
14.根据权利要求8所述的系统,其中所述转换T是一个N维离 散余弦变换DCT。
15.根据权利要求8所述的系统,其中所述转换T是N维离散哈 达变换DHT。
16.根据权利要求4所述的系统,其中所述成本函数J的形式如下:
J=Rdc(DC)+Rac(AC)+Rri(参考索引)
其中Rdc(DC)是所述块预测差值的DC系数的速率;Rac(AC)是所述 块预测差值的AC系数的速率;而Rri(参考索引)是所述参考索引的速 率。
17.根据权利要求16所述的系统,其中Rac(AC)可被估计为 AC_NORM(Rac(AC_NORM)),其中AC_NORM是所述块预测差值的 AC部件的NORM。
18.根据权利要求17所述的系统,其中Rac(AC_NORM)是 AC_NORM的线性函数或者是AC_NORM的分段线性函数。
19.根据权利要求18所述的系统,其中Rac(AC_NORM)的形式如 下:
Rac(AC_NORM)=K*(AC_NORM-AC_THRESHOLD)/QP_ac
其中AC_THRESHOLD能够可选地从所述估计中移除。
20.根据权利要求19所述的系统,其中所述K能够通过基于实际 速率的最小均方LMS算法调节,以致
ΔK=μ*Error*(AC_NORM-AC_THRESHOLD)/QP_ac
其中Error是所述速率估计误差,所述μ是一个学习因子,并且 Error=Actual_AC_Rate-Rac(AC_NORM)。
21.根据权利要求19所述的系统,其中利用实际的AC速率和 AC_NORM可调节所述AC_THRESHOLD。
22.根据权利要求17所述的系统,其中所述AC_NORM是L1 NORM,所述L1 NORM是所述块预测差值中每个分量的绝对值之和。
23.根据权利要求17所述的系统,其中所述AC_NORM是L2 NORM,所述L2 NORM是所述块预测差值中每个分量的平方之和。
24.根据权利要求1所述的系统,其中所述系统适合用于对二维视 频序列进行编码。
25.根据权利要求1所述的系统,其中所述块匹配预测器对所述多 个参考帧中一个或多个参考帧内的一个或多个点进行求值。
26.根据权利要求25所述的系统,其中所述多个参考帧中一个或 多个参考帧内的一个或多个点的求值包括了一种邻居开拓操作,所述 邻居开拓操作包括利用响应一个相邻块而获得的结果对所述目标参考 块求值。
27.根据权利要求26所述的系统,其中所述块匹配预测器是利用 与所述相邻块有关的参考位移索引对所述目标参考块求值。
28.根据权利要求27所述的系统,其中所述邻居开拓操作是利用 与所述相邻块有关的参考位移索引对所述目标参考块的目标系统对象 进行求值,以确定所述目标参考块是否是所述预测块。
29.根据权利要求28所述的系统,其包括:
识别由所述参考位移索引所指示的一个目标点;和
对邻近点进行求值,所述邻近点是直接与所述目标点相邻。
30.根据权利要求29所述的系统,其中所述块匹配预测器执行详 细搜索操作,所述详细搜索操作对所述目标点周围的区域进行求值。
31.根据权利要求30所述的系统,其中所述详细搜索操作包括:
在每个维度上以步长2来识别所述目标点周围的一个最佳点;和
对直接邻近所述目标点的一个或多个点进行求值。
32.根据权利要求25所述的系统,其中所述块匹配预测器执行全 局搜索操作,所述全局搜索操是响应用于多个点求值的一个阈值的建 立而被执行的。
33.根据权利要求32所述的系统,其中所述全局搜索操作包括一 个N级分层搜索。
34.根据权利要求33所述的系统,其中所述N级分层搜索可在级 别K>0时停止。
35.根据权利要求32所述的系统,其中所述阈值是通过所述邻居 开拓操作的最佳结果来建立的。
36.根据权利要求32所述的系统,其中所述阈值是通过所述详细 搜索操作的最佳结果来建立的。
37.根据权利要求1所述的系统,其中所述方法适合用于对二维视 频序列进行编码。
38.根据权利要求1所述的系统,其中:
所述块匹配预测器包括一个碎片点预测器;和
所述参考帧包括多个网格点和多个碎片点。
39.根据权利要求38所述的系统,其中来自所述多个碎片点的一 个碎片点上的信号是根据一个或多个完整网格点或者根据一个或多个 先前插值的网格点而被插值的。
40.根据权利要求39所述的系统,其中所述碎片点是利用双线性 插值而被插值的。
41.根据权利要求39所述的系统,其中所述碎片点是利用多分支 插值而被插值的。
42.根据权利要求39所述的系统,其中所述块匹配预测器是利用 第一插值机制对来自所述多个碎片点的一个或多个碎片点进行求值, 以选择最佳点,并且利用第二插值机制来计算所述块预测差值。
43.根据权利要求42所述的系统,其中所述第一插值机制是基于 双线性插值,而所述第二插值机制是基于多分支插值。
44.根据权利要求39所述的系统,其中所述第二插值机制能够被 自适应地从一组插值中选择,以对目标系统对象进行优化。
45.根据权利要求1所述的系统,其包括一个编码反馈控制单元, 以动态地调节一个或多个编码参数,其中所述一个或多个编码参数是 根据一个或多个条件而被调节的,所述一个或多个条件选自包括从所 述块编码器获得的一个或多个反馈参数和一组编码器监测参数的组 中。
46.根据权利要求45所述的系统,其中所述编码反馈控制单元包 括一个自适应块匹配控制单元,以根据从所选择的一个或多个条件动 态地调节一个或多个预测处理参数,所述一个或多个条件选自包括从 所述块编码器获得的一个或多个反馈参数和一组编码器监测参数的组 中。
47.根据权利要求46所述的系统,其中所述块匹配控制单元是基 于来自先前编码帧的一个或多个搜索特征,为所述当前帧在每个维度 上调节一个搜索范围。
48.根据权利要求47所述的系统,其中所述当前帧的每个维度上 的所述搜索范围是基于来自先前编码帧的运动矢量分布的函数而被调 节的。
49.根据权利要求46所述的系统,其中所述块匹配控制单元根据 来自所述块编码器的反馈,来调节由所述成本估计组件所利用的一个 成本函数。
50.根据权利要求49所述的系统,其中所述块匹配控制单元根据 所述块编码器创建的一个实际成本函数值与一个估计的成本值之间的 误差,来调节所述成本函数的参数,所述估计成本值是利用所述参数 表示的成本函数来计算的。
51.根据权利要求49所述的系统,其中所述成本函数利用最小均 方LMS算法被组织和调节。
52.根据权利要求46所述的系统,其中所述块匹配预测器控制单 元动态地调节一个或多个处理参数,从而为块预测处理分配和调度处 理周期。
53.根据权利要求1所述的系统,其中所述块匹配预测器根据一个 提前终止条件来终止处理。
54.根据权利要求53所述的系统,其中所述提前终止条件包括一 个跳过条件,所述跳过条件指示根据一个跳过阈值,所述当前块可由 先前的块表示。
55.根据权利要求54所述的系统,其中所述跳过阈值根据来自所 述块编码器的反馈是动态可调的。
56.根据权利要求53所述的系统,其中所述提前终止条件包括一 个良好匹配条件,所述良好匹配条件指示一个成本函数值小于一个预 先确定的良好匹配阈值。
57.根据权利要求56所述的系统,其中所述良好匹配阈值能够根 据先前求值块的特性值的移动窗口平均值的函数被动态地调节。
58.根据权利要求57所述的系统,其中所述特性值是先前求值块 的最佳成本函数值。
59.根据权利要求53所述的系统,其中所述提前终止条件包括一 个放弃条件,所述放弃条件是响应这样一个决定,即进一步搜索产生 的成本函数值将不会低于迄今发现的最佳成本值,而被触发的。
60.根据权利要求1所述的系统,其中所述块匹配预测器基于A* 算法跳过搜索点。
61.根据权利要求1所述的系统,其中所述块匹配预测器利用平行 螺旋搜索过程对参考帧进行求值。
62.根据权利要求1所述的系统,其中所述块匹配预测器利用一个 处理器阵列对所述参考帧中多个点上的系统对象求值,所述处理器阵 列包括一个或多个信号处理单元,以处理N维数据输入。
63.一种存储系统,其包括:
n维存储器,所述n维存储器包括:
一个或多个存储切片,以允许在一个时钟周期中在每个切片中存 储或取出一个数据项;
组织一个n维帧内的n维数据以允许一个既定立方体内的所有数 据在多个周期中被访问的装置,所述立方体可位于该n维帧中的任何 地方,其中周期的数量被确定为该立方体内的全部点数除以存储切片 的数量;
一个寻址转换模块,其基于n维地址输入从所述一个或多个存储 切片中访问数据;以及
一个数据多路复用器/多路分离器,以将来自所述一个或多个切片 的数据流桥接到利用n维数据的一个或多个外部处理模块。
64.根据权利要求53所述的系统,其包括:
至少一个级别的块存储器,从而以块的形式存储数据,所述块存 储器被连接到所述n维存储器;
一个寻址转换模块,以访问所述块存储器和所述n维存储器中的 数据;以及
一个数据多路复用器/多路分离器,以将来自所述n维存储器的数 据流桥接到所述块存储器。
65.根据权利要求64所述的系统,其中所述块存储器是SDRAM。
66.根据权利要求63所述的系统,其中所述存储系统适于存储二 维图像。
67.一种系统,其包括:
一个处理阵列,该处理阵列包括一个或多个信号处理单元,以处 理n维数据输入;
一个或多个数据寄存器,其为所述信号处理单元存储数据;以及
控制所述处理阵列的装置,其允许一个数据元素由所述阵列中一 个以上的处理器使用。
68.根据权利要求67所述的系统,其中所述处理阵列处理来自一 个n维存储器的数据,其中所述n维存储器包括:
一个或多个存储切片,以允许在一个时钟周期中在每个切片中存 储或取出一个数据项;
组织一个n维帧内的n维数据以允许一个既定立方体内的所有数 据在多个周期中被访问的装置,所述立方体可位于该n维帧中的任何 地方,其中周期的数量被确定为该立方体内的全部点数除以存储切片 的数量;
一个寻址转换模块,其基于n维地址输入从所述一个或多个存储 切片中访问数据;以及
一个数据多路复用器/多路分离器,以将来自所述一个或多个切片 的数据流桥接到利用n维数据的一个或多个外部处理模块。
69.根据权利要求67所述的系统,其中所述处理阵列处理来自多 级n维存储器的数据,其中所述多级n维存储器包括:
至少一个级别的块存储器,从而以块的形式存储数据,所述块存 储器被连接到所述n维存储器;
一个寻址转换模块,以访问所述块存储器和所述n维存储器中的 数据;以及
一个数据多路复用器/多路分离器,以将来自所述n维存储器的数 据流桥接到所述块存储器。
70.根据权利要求67所述的系统,其中所述系统适于对二维视频 序列进行编码。
71.一种方法,其包括:
接收一个n维帧序列,该n维帧序列包含一个原始n维帧;并且
以保存所述原始n维帧内块的相邻关系的顺序,来扫描所述n维 帧序列,使其成为一个一维的块序列。
72.根据权利要求71所述的方法,其中如果两个块是空间上或时 间上的邻居,那么它们就被认为是邻居。
73.根据权利要求71所述的方法,其中所述方法适于对二维视频 序列进行编码。
74.根据权利要求73所述的方法,其中所述的扫描所述n维帧序 列使其成为一个一维的块序列的步骤包括:
扫描来自所述n维帧序列的一组块中第一行的点;
识别这组块中第二行的点,识别所述第二行的点的开端位于所述 第一行结束的位置处。
75.根据权利要求74所述的方法,其包括:
对完成所述n维帧序列的第一帧的扫描做出响应;
对所述n维帧序列的第二帧进行扫描,识别所述第一帧结束处的 所述第二帧的开端;并且
扫描所述第二帧中各行的点,扫描顺序与扫描所述第一帧时的顺 序相反。
76.一种处理信号序列的方法,其包括:
接收一个信号序列,所述信号序列包括一个n维当前帧,所述n 维当前帧包括多个当前帧块和多个n维参考帧,所述多个n维参考帧 中的每一帧包括多个参考帧块;
存储所述多个n维参考帧;
为所述多个当前帧块中的每一块识别所述多个参考帧块中的一个 预测块;
为所述多个当前帧块中每一块的相应预测块确定一个参考位移索 引和一个块预测差值,其中所述参考位移索引用于识别参考帧块内的 一个点;
为所述多个当前帧块中的每一块,对其相应的块预测差值和相应 的参考位移索引进行编码,并藉此创建多个编码块;并且
根据预定格式把所述多个编码块打包在一起。
77.一种处理信号序列的系统,其包括:
用于接收一个信号序列的装置,所述信号序列包括一个n维当前 帧,所述n维当前帧包括多个当前帧块和多个n维参考帧,所述多个n 维参考帧中的每一帧包括多个参考帧块;
存储所述多个n维参考帧的装置;
为所述多个当前帧块中的每一块识别所述多个参考帧块中一个预 测块的装置;
为所述多个当前帧块中每一块的相应预测块确定一个参考位移索 引和一个块预测差值的装置,其中所述参考位移索引用于识别参考帧 块内的一个点;
为所述多个当前帧块中的每一块、对其相应块预测差值和相应参 考位移索引进行编码的装置,并藉此创建多个编码块;以及
根据预定格式把所述多个编码块打包在一起的装置。
78.一种存有电路描述的机器可读介质,所述电路包括:
一个用于接收信号序列的区分器,所述信号序列包括一个n维当 前帧,所述n维当前帧包括多个当前帧块和多个n维参考帧,所述多 个n维参考帧中的每一帧包括多个参考帧块;
一个存储所述多个n维参考帧的帧缓冲器;
一个块匹配预测器,其为所述多个当前帧块中的每一块识别所述 多个参考帧块中的一个预测块,并为所述多个当前帧块中每一块的相 应预测块确定一个参考位移索引和一个块预测差值,其中所述参考位 移索引用于识别所述参考帧块内的一个点;
一个块编码器,其为所述多个当前帧块中的每一块,对其相应的 块预测差值和相应的参考位移索引进行编码,并藉此创建多个编码块; 以及
一个序列编码器,其根据预定格式把所述多个编码块打包在一起。

说明书全文

技术领域

一个实施例一般地涉及数据编码、存储、分配和解码,更特别地 (但不是专地)是涉及利用n维匹配方法的n维信号序列编码、 存储、分配和解码。

背景技术

视频信号通常具有大量的信息。因而,视频信号通常是在被传输 或存储之前被压缩编码。为了以高效率对视频信号进行编码,单位为 的图像被分成单位为预定数目像素的多个块。对每个块进行正交变 换,把图像的空间频率分成多个频率分量。每个频率分量作为变换系 数被获得和被编码。
发明内容
根据本发明的一个方面,处理信号序列的一个系统包括:一个接 收信号序列的区分器或差示器(differentiator),所述信号序列包括一个 n维当前帧,所述n维当前帧包括多个当前帧块和多个n维参考帧,所 述多个n维参考帧中的每一帧包括多个参考帧块;一个存储所述多个n 维参考帧的帧缓冲器;一个块匹配预测器,其为所述多个当前帧块中 的每一块识别所述多个参考帧块中的一个预测块,并为所述多个当前 帧块中每一块的相应预测块确定一个参考位移索引和一个块预测差 值,其中所述参考位移索引用以识别所述参考帧块内的一个点;一个 块编码器,其对所述多个当前帧块中每一块的相应块预测差值和相应 参考位移索引进行编码,并藉此创建多个编码块;和一个序列编码器, 其根据预定格式把所述多个编码块打包在一起。
根据另一个方面,一个存储系统包括n维存储器。该n维存储器 包括一个或多个存储切片或存储器分割区(memory slice),以允许在 一个时钟周期中在每个切片中存储或取出一个数据项;组织一个n维 帧内的n维数据以允许一个既定立方体(cube)内的所有数据在多个 周期中被访问的装置,所述立方体可位于该n维帧中的任何地方,其 中周期的数量被确定为该立方体内的全部点数除以存储切片的数量; 一个寻址转换模块,其基于n维地址输入从所述一个或多个存储切片 中访问数据;以及一个数据多路复用器/多路分离器,以将来自所述一 个或多个切片的数据流桥接到利用n维数据的一个或多个外部处理模 块。
根据另外一个方面,一种系统包括一个处理阵列,该处理阵列包 括一个或多个信号处理单元,以处理n维数据输入;一个或多个数据 寄存器,其为所述信号处理单元存储数据;以及控制所述处理阵列的 装置,其允许一个数据元素由所述阵列中一个以上的处理器使用。
根据另外的一个方面,一种方法包括:接收一个n维帧序列,该n 维帧序列包含一个原始n维帧;并且以保存所述原始n维帧内块的相 邻关系的顺序,来扫描所述n维帧序列,使其成为一个一维的块序列。
参考附图和下文的详细描述,本发明的其它特征将是明显的。

附图说明

虽然本发明是通过示例来描述的,但其并不限于所附的附图。附 图中相同的参考标记表示类似的元件。
图1根据本发明的一个实施例示出了一个自适应多维信号序列编 码系统。
图2根据本发明的一个实施例示出了利用线性模型和分段线性模 型来拟合R_AC与AC_NORM。
图3根据本发明的一个实施例示出了自适应的速率(rate)查询表 /求值器的结构。
图4根据本发明的一个实施例示出了一个快速ME(运动估计)搜 索过程。
图5根据本发明的一个实施例示出了在二维视频序列情况中邻居 开拓集(neighbor exploit set)的一个示例。
图6根据本发明的一个实施例示出了为确定详细搜索起点而被求 值的点。
图7根据本发明的一个实施例示出了详细搜索的一个实施例。
图8根据本发明的一个实施例示出了全局搜索的一个实施例。
图9根据本发明的一个实施例示出了利用碎片网格点(fractional grid points)上的块匹配进行编码的一个实施例
图10根据本发明的一个实施例示出了ME搜索过程中利用平均滤 波器来计算子像素值。
图11根据本发明的一个实施例示出了一个自适应ME控制结构。
图12根据本发明的一个实施例示出了可调节的ME搜索范围的一 个示例。
图13根据本发明的一个实施例示出了MEPU周期调度器的一个实 施例。
图14根据本发明的一个实施例示出了在螺旋搜索情况中的提前终 止(early-termination)。
图15示出了具有用于帧中的块的固定网格的二维帧以及需要在任 意位置的块存取模式的示例。
图16示出了N维存储器结构的一个实施例。
图17示出了二维存储器中切片ID的分配,以允许在一个周期中 在任何位置存取一个二维块。
图18示出了二维存储器中切片ID分配,以允许在2个周期的猝 发(burst)中在任何位置存取一个二维块。
图19示出了多级N维存储器的一个实施例,其利用SDRAM作为 第二级外部记忆装置(memory storage)。
图20示出了第二级外部SDRAM中二维帧数据的分配,以优化二 维块的访问性能。
图21示出了一个线性第二级外部存储器中的一个二维块的数据分 配序列。
图22示出了ME搜索的PSP阵列处理器的一个实施例。
图23示出了ME搜索算法中通常使用的单处理器螺旋搜索模式。
图24示出了利用一个3×3阵列的平行螺旋搜索模式的示例。
图25示出了假定使用的是传统的线性存储器,在该3×3阵列中的 数据存取共享。
图26示出了假定使用的是二维存储器,在该3×3阵列中的数据存 取共享。
图27根据本发明的一个实施例示出了N维信号序列的示例。
图28根据本发明的一个实施例示出了相邻保留(neighbor preserving)的一种扫描方法。
图29根据本发明的一个实施例示出了二维帧中的一个块。
图30根据本发明的一个实施例示出了应用到CCD或CMOS图像 传感器的相邻保留扫描。

具体实施方式

在本文的描述中,提供了大量的具体细节,如系统组件和方法的 描述,以提供对本发明的实施例的透彻理解。然而,相关技术领域的 技术人员将认识到,如果缺少一个或多个这样的具体细节,或者利用 了其它的系统、方法、组件、材料、部件等等,仍然可以实现本发明。 此外,公知的结构、材料或操作未被详细地显示或描述,以免混淆本 发明的特征。
在整个说明书中所提到的“一个实施例”或“实施例”表示结合 该实施例描述的一个特定特征、结构或特性将被包括在本发明的至少 一个实施例中。因此,整个说明书中各处出现的短语“在一个实施例 中”或“在实施例中”,并不必表示同一个实施例。此外,特定的特征、 结构或特性可以任何适当的方式被包含在一个或多个实施例中。
概述
在一个实施例中,描述了一种有效地压缩多维信号序列的方法和 装置,以在一定的失真限制下降低比特速率。该方法可被用于对一个N 维信号序列进行编码,图27示出了一些示例。该方法的一个示例性应 用是在以传输和存储为目的的视频编码中。需注意的是,尽管在下文 的多数描述中,仅将二维视频信号序列压缩作为说明性示例而详细描 述,但是本文给出的方法和装置可扩展到压缩一个普通的n维信号序 列。
N维块匹配信号序列的编码
图1示出了一个自适应多维信号序列编码系统100的一个示例性 实施例的方框图。该系统可被用于压缩n维信号序列中的一个序列。 图27中的项2704、2705和2706是n维序列的一些示例。该系统的输 入可以是一个n维信号帧(如图27中的项2701、2702和2703)。一个 帧可由n维块组成。图29表示二维帧2901中的块2902的一个示例。 如图1所示,系统100在帧缓冲器102中保存一组解码帧。目标块是 一个块或参考帧中多个块的某种组合。输入帧101中的每个块可根据 预定标准与帧缓冲器内参考帧中的多个目标块匹配。
为改进对帧间信号变化的跟踪,块尺寸可以是可变的。在一个实 施例中,不同的块尺寸和块形状可被用于匹配参考帧中的块。较大的 块可被用于跟踪较大对象的移动,而较小的块可被用于跟踪较小对象 的移动。该块匹配的操作可在二维视频编码情况中的运动估计的一个 示例形式中被执行。在发现最佳目标块之后,当前块与目标块之间的 差别通过n维系数去相关转换T104被转换,该转换系数通过一个可选 的量化操作Q105被量化,然后与运动矢量信息一起被编码。如果要求 无损编码,量化操作Q可被跳过。在无损编码的情况下,编码过程是 可逆的,即,原始信号序列可由解码器以准确度100%的进行恢复。由 于人眼具有一定的精确度限制,因此在不影响人类感觉的情况下可允 许进行一定程度的量化。量化的配置方式应使量化误差不会被人眼明 显感知
在一个典型的视频压缩系统中,转换T是一个二维离散余弦变换 (DCT)(参考文献[1])。在一些情况下,DCT可产生接近于最优的系 数去相关结果。但是,由于计算的复杂性,DCT通常只能处理小的固 定块(MPEG4标准中为8×8,和H.264标准中为4×4)。为了具有较大 的块尺寸和节省计算时间,在一个实施例中,离散哈达变换(DHT) 可被用作系数去相关转换。根据去相关系数(参考文献[2]),与DCT 不同的是,DHT可能不是最优的。但是,由于DHT只要求加法和减法 操作,因此其处理非常大的块尺寸是可能的,而且与DCT相比复杂性 较低。在一个示例性实施例中,系统100允许转换可选的可变块尺寸, 而且可选地,允许为不同的块尺寸利用不同的转换。例如,DCT可被 用于转换较小的块,而DHT可被用于转换较大的块。利用可变块尺寸 转换,转换的块尺寸可与块匹配大小相同,从而产生比小固定块尺寸 的转换更好的系数去相关效果。
被编码的视频的质量是由量化控制的,量化是基于特定的量化参 数(QP)把转换系数量化为离散级别。QP越大,级别的数量就越少, 因此表示系数的比特的数量越少,但这是以降低质量为代价的。认真 调节QP,可对速率-失真进行平衡折衷。在量化操作之后,转换块中的 许多系数变为0。为了降低比特速率,通过折线扫描方法(从低频分量 到高频分量扫描这些系数,或以相反的方向扫描)来扫描量化的转换 系数。该操作把N维系数转换为一维序列。然后被扫描的一维序列通 过游程长度(run-length)编码106被编码,其对多个前导零(游程)、 非零系数(级别)值对(pairs)的示例表单中的信息进行编码。然后 该(游程,级别)对可利用熵编码操作107(如霍夫曼(Huffman)或算 术编码)被编码,以进一步降低速率。
运动估计(ME)成本函数
在一个示例性实施例中,一个运动估计(ME)模块103是图1所 示的系统中的一个计算强度模块。ME块匹配可以基于对参考帧中当前 块与目标块之间误差测量的最小化来进行。误差测量可以根据差值能 量测量而被指定(例如,这两块像素之间的平方误差之和(SSE)或绝 对误差(SAE)之和,SAE作为ME搜索的最广泛使用的测量,以节 省计算时间(参考文献[1]))。利用如SAE或SSE的差值能量测量并 不一定产生最小的比特速率。在一个实施例中,一个墒测量可被用作 成本函数,引导ME搜索来发现最佳目标块。该墒测量可以测量在给 定了参考帧的情况下,对当前块进行编码所需的信息量。在一个示例 性实施例中,可以利用一种引导ME搜索以便为目标块发现最小墒的 方法。在一个实施例中,该ME成本函数可表示为:
J=Rate_T(T(FPD)|QP)+Rate_MV(MV)                    (1)
其中Rate_*()是信号通过它的每个编码方法如Rate_T、Rate_MV 等等的比特数量;T(FPD)是帧预测差值FPD的变换式;QP是量化参 数。
由于确定Rate_MV()很容易,因此成本函数J可以通过确定ME 搜索过程中的Rate_T(T(FPD)|QP)的近似值而被求值。在一个实施例 中,Rate_T()可以表示为:
Rate_T(T(FPD)|QP)=Rate_T_DC(T_DC{FPD)|QP_dc)+
                   Rate_T_AC(T_AC(FPD)|QP_ac)
                   ~=Rate_T_DC(DC{FPD)|QP_dc)+
                   Rate_T_AC(AC_NORM(FPD)|QP_ac)
                                                  (2)
其中T_DC(FPD)是T{FPD)的DC分量;T_AC(FPD)是T(FPD)的 AC矩阵;DC(FPD)是FPD块的DC值;AC_Norm(FPD)是FPD块的 AC矩阵的Norm(范数)值:
AC_NORM(FPD)=∑ijABS(FPDij-DC(FPD))              (3)
墒测量的一种简单近似值可被表示为:
J=R_DC(DC(FPD)|QP_dc)+R_AC(AC_NORM(FPD)|QP_ac)
+
R_MV(MV)                                          (4)
其中R_DC()和R_MV()可通过简单的表查询而被准确地求值; R_AC()可通过一个预先拟合的表而被近似求值。
R_AC与AC_NORM之间的关系可取决于所用的编码方法,并且 在一个实施例中,可通过线性或分段线性模型进行拟合,如图2所示。 在一个实施例中,利用MPEG4标准,R_AC()的下列近似值可被利用:
R_AC(AC_NORM|QP_ac)=AC_NORM/(2*QP_ac)            (5)
在另一个实施例中,下列线性模型可被利用:
R_AC(AC_NORM(FPD)|QP_ac)=K*AC_NORM/QP_ac           (6)
一般地,K可基于FPD的局部统计而变化。为发现R_AC与 AC_NORM之间的局部统计关系,可使用一种自适应方法,以动态地 调节上文指定的因子K。
图3表示自适应速率查询表/求值器结构的一个实施例。在ME搜 索过程中,墒(表示为比特速率)可通过将一组表输入参数301输入 到速率查询表/求值器302而被估计。对于每个块来说,来自墒编码107 的实际的编码速率303可与估计的速率304比较,误差305可被反馈 到自适应速率查询表,以调节某些表参数,从而降低速率误差。总之, 速率查询表包括一个准确速率部分和一个估计速率部分,如下所示:
J~=R_Accurate+R_Estimation                         (7)
R_Accurate是速率的一部分,其在给定某些输入参数的情况下, 可被准确地确定。在一个具体实施例中,R_Accurate包括R_DC和 R_MV,即:
R_Accurate=R_DC(DC/QP_dc)+R_MV(MV)                  (8)
R_Estimation是块的估计部分,一般取决于到查询表的一组输入参 数。在一个实施例中,R_Estimation是作为特定输入参数的一个线性组 合,即:
R_Estimation=∑iKi*(Xi-Θi)                         (9)
其中{Xi}是输入参数,{Θi}是输入参数的阈值,而{Ki}是加权 因子。这里我们采用了最小均方(LMS)算法(参考文献[3])来训练 (train)加权因子{Ki},使阈值{Θi}预先固定或动态可调。在上述方 法的一个具体实施例中,我们可准确地查询R_DC()、R_MV_X()和 R_MV_Y()(以及在H.264中使用的多个帧参考情况下的R_MV_F()), 利用线性模型自适应地调节R_AC()的因子K。在该情况下,成本函数 可表示如下:
J=R_DC(DC|QP_dc)+R_MV(MV)+
K*(AC_NORM-AC_THRESHOLD)/QP_ac                 (10)
将R设为墒编码之后的块的速率(包括DCT和MV的速率),并 将J设为块的速率的估计值,则K可以是通过下面的过程被调节
ΔK=μ*(R-J)*(AC_NORM-AC_THRESHOLD)/QP_ac
                                               (11)
其中ΔK是因子K的平差,(R-J)是速率误差;μ是学习因子, 通常以平衡收敛速度与稳定性的方式来设定;AC_THRESHOLD是在 AC速率保持非零时表征最小AC_NORM值的阈值。AC_THRESHOLD 可被预先固定为特定值或者可被动态地调节。在一个实施例中, AC_THRESHOLD可根据下列示例性处理被调节(以类似C语言的伪 码来表示):
Zero_Point=Th0;
for each block {//块处理的循环
     ……
     If{Actual AC Rate==0}{
         Zero_Point=α*AC_NORM+(1-α)*
         Zero_Point;AC_THRESHOLD=m*Zero_Point;
     } 
}
其中Zero_Point是跟踪零速率AC_NORM位置的一个变量; Zero_Point在程序开始时被初始化为Th0;α是平均窗口控制因子,它 是一个大于0的小的正数;m是一个比例因子,基于平均的Zero_Point 值控制AC_THRESHOLD的位置。
在一个实施例中,在(11)中调节K的方法可以使速率函数的均 方误差最小化:
min E{(R-J)2}                                      (12)
一般地,多个参数可被用于确定R_Estimation,如(9)中所指定 的,其中可对因子K使用下面所示的自适应方法:
对于每个i,ΔKi=μ*(R-J)*(Xi-Θi)                  (13)
在一个实施例中,与基于成本函数的差值能量测量相比,基于墒 的成本函数(4)可产生较低的比特速率和较好的图像质量。
ME搜索方法
为了识别产生最低成本函数值的最佳点,需要进行大区域搜索。 为了支持实时应用,应该避免计算成本过高。在一个示例性实施例中, 使用一种方法,以执行大区域ME搜索,以小于与完全搜索相比的计 算时间的1%来产生接近于完全搜索的结果。该方法是基于这样一种现 象,即:真实世界的N维帧序列中的多数帧内(如在典型的视频实例 中),只有少量的运动矢量串,运动矢量域从每个串内的块到块连续地 变化。基于这一观察,来自相邻块的运动矢量可提供有关ME搜索的 起点的一个好的建议。
图4表示快速ME搜索过程的一个实施例,在操作401中,一组 点基于相邻块的参考位移索引(如运动矢量(MVs))而被求值,(和 可能的是,MVs指定的围绕那些点的直接邻近的点,如图6所示),以 确定详细搜索的起点(图4中的操作402)。邻近的块可以是空间域和/ 或时域中的邻居,可被称为邻居开拓集。图5表示把该方法应用于二 维视频序列情况的一个示例,其中来自三个相邻块的MVs:左501, 上502,上右503,以及原点被用于确定当前块500的ME搜索的起点。 四个块一起构成该当前块的邻居开拓集504。产生最低成本值的点被选 择作为详细ME搜索的一个起点。
在邻居开拓操作401之后,执行详细搜索操作402。详细搜索可被 利用,以执行围绕搜索起点的点的彻底的求值,这可基于邻居开拓集 中的点的求值而被选择。
图7表示该操作的一个具体实施例。这里,在围绕搜索起点701 的一个小区域内执行两个级别的搜索。在级别1,对于所有其它的点, 执行ME搜索。在确定了级别1上的最佳点703之后,其在级别0上 的直接邻近点704被求值,以确定出最佳点。将迄今发现的最佳成本 函数值设置为J-Best。
在详细搜索之后,在图4的操作403执行大区域的分层搜索。操 作403可被称为全局搜索操作,该操作的目的是在大的搜索窗口中的 点进行取样,以发现在详细搜索区域之外的运动矢量,万一相邻块不 提供准确的初始起点。图8表示该操作的一个实施例。这里N个级别 的分层搜索被执行。在每个级别上,围绕来自上个级别的最佳点的8 个点被求值。对于搜索窗口=+-128的情况,表示如下:
级别6:(64,0),(-64,0),(0,64),(0,-64),(64,64),
       (64,-64),(-64,64),(-64,64)
级别5:来自级别6中的最佳点
       (+-32,0),(0,+-32),(+-32,+-32)
级别4:来自级别5中的最佳点
       (+-16,0),(0,+-16),(+-16,+-16)
级别3:来自级别4中的最佳点
       (+-8,0),(0,+-8),(+-8,+-8)
级别2:来自级别3中的最佳点
       (+-4,0),(0,+-4),(+-4,+-4)
级别1:来自级别2中的最佳点
       (+-2,0),(0,+-2),(+-2,+-2)
级别0:来自级别1中的最佳点
       (+-1,0),(0,+-1),(+-1,+-1)
为节省计算时间,可以不必一直搜索到级别0。在级别3停止(操 作尺寸8)即可产生可接受的结果。该过程可继续,直到达到最终级别。 在N级分层搜索的过程中具有最小成本值的点随后可与来自详细搜索 的最佳点比较,产生较小的成本值的点被选择作为最佳ME搜索匹配 点。
图4中表示的ME搜索操作不同于通常使用的快速搜索方法。图4 的操作401、402、493的独特组合和顺序可产生接近于完全搜索的结 果。这里,操作401可被用来从相邻块识别发现的MV,以设定详细搜 索起点。操作402可被用来对操作401中发现的最佳起点周围的点彻 底求值。该操作也可设定下一个操作的成本函数值阈值。如果详细搜 索不能发现产生足够低成本值的点,操作403可超出小的详细搜索区 域,以覆盖全部的搜索空间,尽量达到良好的点的邻近。来自先前求 值的块的这些搜索结果可被转移到邻近的块。这种中继效果可传播好 的结果,并且可以产生块间的一个局部的组合作,以实现全局最优化, 这类似于在蜂窝自动机(参考文献[4])或神经网络系统(参考文献[5]) 中观察到的系统动态特性。
碎片网格点搜索方法
在一个实施例中,为了进一步降低速率,在通过执行上述ME搜 索过程发现了最佳的完整网格点之后,可以执行碎片网格点搜索。在 MPEG4和H.264标准中,使用多分支插值函数以创建q-pel模式的h-pel 像素。如果在ME搜索内部循环(loop)中执行,这可以是高强度的计算。 为了说明该问题,可以采用一种利用简化插值在碎片点上执行ME搜 索的方法。在一个示例性实施例中,可以在一个视频编码应用中采用 一个简单的滤波器来为ME搜索产生子像素值。在发现了最佳的sub-pel 点之后,可以利用更复杂的多分支滤波器来进行运动补偿计算。其结 果可接近于利用真正多分支滤波器的ME搜索。通过选择自适应运动 补偿滤波器可以增强这些结果。图9示出了该原理的一个示例性实施 例。利用一个简单的平均滤波器来执行ME搜索,然后选择一个在运 动补偿(MC)过程中产生较低速率的滤波器。图10示出了如何使用 平均滤波器来计算ME搜索过程中的子像素值。仅仅在完整像素(1001, 1001a等)处才可以得到这些像素值,而子像素位置只能被插值。在一 个实施例中,使用了双线性插值来为ME搜索参考帧计算子像素值。 图10中示例的说明如下:
半像素:
在1002的像素值=
(在1001处的像素值+在1001a的像素值)/2
1/4像素:
在1003的像素值=
(在1001的像素值+在1002的像素值)/2
1/8像素:
在1004的像素值=
(在1001的像素值+在1003的像素值)/2
在一个实施例中,该方法可被扩展到对1/(2n)像素进行求值,并 且可以被进一步扩展来处理N维信号序列。
自适应编码器控制器
这些输入帧中各个块的特性在一个帧内以及在帧和帧之间是变化 的。可以基于编码器输出的反馈,以及可选地基于在整个编码过程中 测量的某些块特性值的反馈,利用一个结构来改善编码器的质量和性 能。例如,跨越块和帧的MV距离分布可以是不均匀的。由于较大的 MV意味着需要更多的ME搜索周期,因此跨越块和帧可能需要不均匀 的ME搜索周期。在一个实施例中,为了更好地利用硬件处理周期, 利用了一种可以在帧和块中进行周期共享的方法。图11表示一种自适 应ME控制结构。ME处理单元(MEPU)1101是一个执行ME搜索的 引擎。ME控制单元(MECU)1102是用于控制MEPU的单元。MECU 将某些ME监测参数1104、编码器反馈参数1106和存储在参数存储器 1103中的某些可调参数作为输入,创建一组ME控制参数1105,自适 应地控制MEPU,以便更好地利用MEPU周期来实现最佳的ME搜索 目标。图3所示的自适应速率查询表和前面所述的学习方法可被认为 是图11中ME控制函数1107的一个具体实施例。
在ME控制函数的另一个示例性实施例中,基于来自先前帧的MV 值,可为当前帧调节ME搜索范围。可以监测先前的X、Y(以及H.264 情况下的帧)运动矢量值,从而可以扩大或缩小当前帧上每个维度(X、 Y或F)的ME搜索范围。该自适应ME搜索窗口调节方法可有效地降 低表示运动矢量需要的比特速率,并降低ME搜索的周期数。
图12示出了ME搜索范围的一个示例。
调节方法。对于既定的当前ME搜索范围D1201,ME搜索范围可 根据下面的标准被调节:
1.如果范围大于扩大的范围阈值1204(在该例中设定为3D/4)的 MVs的数量大于某个预先设定的阈值数量,则将ME搜索范围扩大到 2D。
2.如果范围大于缩小的范围阈值1205(在该例中设定为3D/8)的 MVs的数量小于某个预先设定的阈值数量,则将ME搜索范围缩小到 D/2。
图12所示的方法可被用来调节每个独立ME搜索维度(对于H.264 多帧情况而言,是X、Y和可能的F)上的ME搜索范围。
除了上述自适应ME搜索范围方法之外,当满足一定条件时,系 统100也可提前终止每个块的ME搜索,以节省处理周期。提前终止 所节省的处理周期可被添加到可用周期池中。MECU将基于该池中的 可用周期来分配和调度MEPU将要使用的周期。这种方案可以允许充 分利用可用处理周期来实现最佳的ME搜索结果。
图13表示MEPU周期调度器1301的一个实施例。MEPU周期调 度器基于周期池中可用周期来调节用于MEPU 1302中各个模块的ME 控制参数。
3种示例性的提前终止情况如下所示:
1.跳过情形:根据参考帧中相同位置的块来检查当前块。如果两 个块相同,则可跳过ME处理。在这种情况下,我们跳过了视频编码 循环的主要部分(包括ME、DCT等),节省了许多周期。用于跳过的 类似条件的一个实施例是:
a.计算当前块与参考帧的相同位置的块之间的块差值(BD)。
b.计算DC[BD]和AC[BD]
c.如果DC[BD]/QP_dc<SKIP_DC_TH且AC[BD]/QP_ac< SKIP_AC_TH,则跳过。SKIP_DC_TH和SKIP_AC_TH是确定SKIP 条件的一些阈值。SKIP_DC_TH和SKIP_AC_TH可被固定或根据来自 编码器的特定反馈动态地调节。例如,在一个实施例中,SKIP_AC_TH 被设定为上述的动态调节的AC_THRESHOLD值。
2.良好匹配终止:在ME搜索特定块的过程中的任何时刻,当成 本函数值低于特定阈值J_Early_Terminate_TH时,我们可终止ME搜 索。当发现了非常好的块匹配时,这种情况就会发生,从而形成低成 本函数值。J_Early_Terminate_TH可以是预先固定的值或基于编码器的 特定特性值可动态地调节。例如,在本发明的一个实施例中,
J_Early_Terminate_TH=f*J_B_est_Mean
其中f是小于1的正数,用于控制J_Early_Terminate_TH; J_Best_Mean是通过特定移动取样窗口的J_Best的移动平均值。在本发 明的一个实施例中,J_Best_Mean可通过下面公式被简单计算:
J_Best_Mean=α*J_Best+(1-α)*J_Best_Mean
其中α是小于1的小数值,用于控制移动平均窗口的宽度。
3.ME搜索放弃终止:如果进一步的ME搜索不可能产生比迄今发 现的最佳成本值J_Best更好的结果,这将发生。当这一情况发生时, 我们不需要浪费周期来搜索该特定块的更多的点。这可由将来搜索点 的一些较低的界限估计来求值。如果将来搜索点的较低界限大于迄今 发现的最佳成本,那么可终止搜索,不用牺牲任何东西。该想法可被 认为是应用经常用于策略树搜索的A*搜索算法(参考文献[6])到ME 搜索。下面的实施例是由该想法派生的一些实施例:
a.在完成1MV搜索之后,和4MV搜索之前,如果从1MV发现 的最佳成本小于运动矢量速率,我们终止4MV搜索,即,
J_Best(1MV)<=R_MV(4MV)
这是因为
R_MV(4MV)<J(4MV)=
R_DC(4MV)+R_AC(4MV)+R_MV(4MV)
b.在MPEG4中,如果我们执行遵循来自ME预测点的螺旋模式 的ME搜索,则R_MV(MV)将从运动矢量的速率的增加顺序中的搜索 起点中被分类。在该情况下,如果运动矢量的速率大于迄今发现的最 佳成本,我们可终止ME搜索过程。该想法被表示在图14中。如图14 所示,ME搜索从某种预测点1401开始。如图14所示,ME搜索遵循 某种螺旋波扩展模式。在MPEG4中,MV被编码为自预测点的差值: R_MV=R_MV_X(Delta_X)+R_MV_Y(Delta_Y)。R_MV_X()和 R_MV_Y()遵循相同VLC表R_MV(Delta),二者随Delta单调增长。 在图14中,如果R_MV(D)>=J_Best(迄今发现的最佳成本值),当 ME搜索波扩展到达波阵面1402时,可终止该搜索,因为所有将来的 R_MV()将大于R_MV(D)。
在另一个实施例中,A*搜索方法可被用来以删节搜索过程中被求 值的点的数量。一般地,如果在任何既定点p的成本函数J(p)大于特定 的界限B(p),并且如果B(p)>J_Best,迄今发现的最佳成本函数值, 则点p可被跳过,而不牺牲任何质量。注意,B(p)可以是某种变量,在 点p的求值全部过程中增加,同时有关点p的更多信息被处理。在任 何给定的时刻,如果满足B(p)>J_Best,点p的计算可被停止。
相邻保留扫描方法
为了从前面的块处理结果中获得最佳的自适应学习效果,如果按 照一定的序列来扫描和处理这些块,以保留空间和时间距离的顺序关 系,那么所学习的信息可能会更加有用。图28示出了在二维视频序列 处理中实施一种相邻保留扫描方法的示例。这里,块2803根据2804 所示的顺序被扫描和处理。该方法的说明如下:
(a)扫描n块组(由n个块构成的组)的一行,正整数n从前一 行结束的位置开始n块组下一行。
(b)扫描完一帧之后,从前一帧结束的位置处开始下一帧的扫描, 而且扫描这些行的顺序与前一帧的相反。对每帧重复(a)和(b)。所 示的扫描过程可以保留扫描序列中的相邻关系,即扫描之后一维序列 中的相邻块在原始的N维序列中也是空间或时间上相邻的。一般地, 相邻保留扫描使下列条件的匹配最大化:
(a)扫描后一维序列中的相邻块在原始N维序列中也是邻居。
(b)如果块是同一帧中的相邻块(空间邻居),或位于邻近帧中 相同位置(时间邻居),两个块被认为是邻居。
这个示例性的扫描方法可被分层使用。
在一个实施例中,也可通过相同的方法在每个N维块内扫描N维 块本身。一般地,可允许该扫描方法具有多级层次结构。一种示例性 相邻保留扫描方法也可被用于外围图像扫描设备,例如电荷耦合装置 (CCD)传感器和CMOS传感器,以准备好与信号处理顺序相匹配的 输入信号。这样,从输入传感设备中移除帧缓冲器就成为可能。图30 表示我们的扫描方法应用于CNOS或CCD图像扫描的一个实施例。这 里,在每个像素3001感知的光信号以保留相邻关系的顺序3002而被 扫描出。
N维记忆装置
ME算法的实施在访问参考缓冲存储器时通常具有瓶颈。利用典型 地以视频算法在2维或3维目标中组织的视频流,基于存储器的一维 线性寻址不提供有效率的结果。为解决这个问题,在传统的基于一维 寻址的存储器的基础上开发了一种特殊的存储器结构,即N维记忆装 置,以优化ME算法帧缓冲器存取的存储器访问效率和存取模式的灵 活性。当然,该结构的使用并不仅限于ME算法。任何N维数据处理 均可利用该机制来实现灵活性和效率优势。
图15说明该存储器访问问题。一个2维的例子在该图表中被用作 示例,如在ME算法中。在视频应用程序中,视频数据通常是以2维 帧来组织,表示出在电视屏幕上任何情况的一个图像。(图15中的 1501)在一个帧内部,数据通常是以小于2维的块被组织。这些块通 常尺寸是16×16或8×8。这些块被形成为具有每个帧上的固定网格模式 (图15中的1502)。
在视频算法中,必须以高效方式来访问这些块,如在1个单周期 或单个猝发中得到所有像素。在视频算法中,一个2维块必须在不对 齐固定网格的任何随机位置被访问,如图15中1503所示。
电子存储器(如SDRAM、SRAM等)是按照基于一维的寻址机 制而被组织的,最多是以线性方式来对像素进行同时访问/猝发,即访 问一行像素。利用存储器中像素数据分配的某些预先安排,在一个与 该帧中的固定网格模式对齐的块进行猝发是可能的。但是,不可能在 一个周期/一个猝发中访问一个随机位置的块。
存储器结构方案的一个实施例的方框图表示在图16中。在该方框 图中,n维目标存储器被分成L个切片。每个存储器切片是一个传统的 一维存储器(如在SRAM中)。每个切片的数据宽度是该目标的最小单 元尺寸。在视频中,该尺寸是(例如8比特的)一个像素。在其它应 用中,存储器切片的总线宽度可以是任何尺寸。L切片组织的目的是允 许在一个周期中(如果数据块具有L个元素),或每个具有L个元素的 多个访问周期的一个猝发中访问一个N维块。实现该目的的问题在于 如何将N维块数据分配成L个切片。我们为分配到每个切片的数据设 定了2个条件:
(1)属于同一块的数据元素应该被平均分配成L个切片,以使该 块中的L个数据元素能够被无冲突地同时访问。
(2)如果切片的数量L小于一个块中数据元素的数量,例如如果 B=L*M,其中B是一个块中数据元素的数量,那么一个块中的多个元 素(M)会存在于同一个切片上。M个数据元素应该被放置在一个切 片的连续区域内,从而实现单个猝发的块访问。
基于一种示例性方法的数据分配示例被示于图17中。在该图中, 示出了一个L=12的3×4的2维块的示例。可见,在一个单周期中可以 访问该帧中任意的3×4块。L=6、M=2的另一个示例被表示在图18中。 在该例中,所有3×4的块均由具有相同切片存储器ID的2个元素组成。 也就是说,该3×4的块可在2个时钟周期中被访问。另外,如图17和 18所示,对一行中L个像素的任意访问也可在一个时钟周期中完成, 因为在行像素集中不存在切片存储器重叠。
一旦根据示例性方法完成了数据分配,就可设计地址转换和数据 多路控制,以反映图16所示的分配模式。
在一个示例性实施例中,可以用参数来表示维度数目n、每个维度 上块尺寸的大小、以及存储器切片的数目L,以适应特定应用所需要的 任何可能的情况。
多级N维记忆装置
视频ME算法具有下列一组独特的要求,这将其与非实时CPU系 统区别开来。
1.大容量
2.大带宽
3.2维数据元素的随机访问
4.低成本
在这些要求中,第二和第三项要求可通过先前所述的存储机制解 决。但是,如果仅使用N维存储装置,也许并不能满足大容量和低成 本方面的要求。另外,较大的切片数量L将提供较大的访问带宽,但 同时也会增加成本。
可将传统的多级高速缓冲存储器结构用于所述的N维存储器中。n 维记忆装置的高速度和成本使之最适于用作最接近于处理引擎的最核 心层次的存储器。
用于该n维记忆装置的一个示例性二级存储器实施例被表示在图 19中。在这种机制中,对数据进行组织,以便首先从第二级存储器(例 如一个SDRAM)中读取数据,并将其存储在片上(on-chip)n维记忆 装置中。一旦数据存储在n维记忆装置中,那么数据就可被灵活地访 问,并被多次重复使用。这样,就降低了对外部SDRAM带宽和访问 模式灵活性的要求。
如果将SDRAM用作二级n维记忆装置中的第二级存储器时,在 SDRAM使用中需要精心设置某些细节来支持n维数据结构,并克服 SDRAM架构的限制。由于SDRAM设计架构方面的原因,存在与 SDRAM访问有关的开销。典型的是,SDRAM访问包括下列操作,每 个操作所具有的各种延迟都会在猝发之间产生开销:
(1)先前访问的存储体(memory bank)的预先充电
(2)发送RAS命令
(3)发送CAS命令
没有像素数据的适当安排,猝发访问之间的开销可能是非常高的。 另一方面,SDRAM提供了多存储体的存储结构,允许独立地发出命令 和预先充电。利用帧的像素数据的适当组织,SDRAM访问开销可被最 小化。为做到这点,我们如在图20中固定SDRAM中的帧缓冲器数据 分配模式。一个帧缓冲器首先被预先分成固定尺寸的块(16×16、8×8 或其它固定尺寸),每个块被分配到一个SDRAM存储器的存储体中。 图20中的示例表示8×8的块。这些块被对齐到固定网格模式,如图15 的1502所示。这些块被有顺序地排列成有顺序的存储体ID,如图20 所示。在一个块内,像素数据以图21所示的顺序被排列。
藉此,下面列出的对SDRAM的访问模式是以零开销方式完成的:
(1)块猝发:整个块被连续地排列在一个存储体中。因此,只需 利用一个单个猝发即可完成整个块的访问。
(2)有顺序的块猝发:光栅扫描顺序中的多个块猝发(如图20 所示)是利用多个猝发实现的。由于每个块是被分配到不同的存储体 中,所以这些猝发命令是由管道传送的,不存在开销问题。
(3)行访问:可利用多个猝发来访问相同线上的一行像素。此外, 多个猝发属于不同的存储体,因此进行跨猝发的管道传送是可能的。 是否存在零开销取决于块内的猝发长度,以及SDRAM的CAS和RAS 延迟。
尽管对外部SDRAM的访问可以具有非常有限的访问模式,但是 对于将SDRAM作为第二或更高级别存储器的多级N维记忆装置而言, 一旦将数据从SDRAM读到N维记忆装置中,数据访问就会非常灵活。
ME搜索的平行螺旋模式(PSP)阵列处理器
在一个实施例中提出了一种结构,以降低利用平行螺旋搜索模式 和阵列处理器的ME算法中对参考带宽的需求。该方案可允许多个处 理器共享来自参考缓冲器的相同数据输出,如图22所示。
在一个实施例中,可以利用ME算法中的固定搜索/访问模式的特 点。共享二级存储器输出的方法是预先规定ME算法中搜索模式,以 使多个搜索点被平行或并行地处理。传统上,ME算法利用各种算法。 一种实施方式利用了螺旋搜索,其遵循预先规定的搜索路线,直到最 终发现最佳搜索点。图23示出了一个操作尺寸为4像素的螺旋搜索。 为允许具有固定访问存储器的访问模式的平行搜索,本发明利用一种 搜索模式,即“平行螺旋搜索”。
图24示出了平行螺旋模式的一个示例,该平行螺旋模式具有平行 的P个搜索点,在该例中P=9。利用固定的3×3网格模式中平行处理 的P搜索点,输入数据可被进一步分析,以增强共享和降低存储器带 宽使用。
该概念的一个示例被表示在图25中。图中的每个搜索点规定了成 本函数将被执行的位置。在该例中,可以假定成本函数是基于一个尺 寸为16×16的块。搜索点1、2和3共享每行中24个像素中的16个像 素。这样,当从参考缓冲器读取第一行时,其被全部3个搜索点1、2 和3共享。从第5行开始,数据被搜索点1、2、3、4、5和6共享。 从第9行开始,被全部9个搜索点共享。由于9个搜索点是以固定的 3×3网格排列,参考缓冲器的访问模式是固定的,并容易设计为重新使 用数据,当数据被从缓冲器读取时。
注意,在基于平行螺旋搜索模式的该阵列处理结构中,搜索模式 操作尺寸,X、Y方向上的阵列尺寸是可被设定为任何值的所有参数。
用于ME搜索具有N维存储器的PSP阵列处理器
可替代地,PSP阵列处理器也可参加一列数据,或一个数据块(如 4×4),如果一个N维存储器与平行螺旋阵列处理器一起被使用。该组 合的一个实施例表示在图26中。
使用具有N维记忆装置的平行螺旋阵列处理器可以获得更好的性 能。在没有N维记忆装置的情况下,该阵列处理器仅能读取和共享一 行或一列的数据。假定参考缓冲器的数据宽度为16像素,即提供输入 数据时是一次提供16像素。考虑图25中的情况。如果没有可用的N 维记忆装置,每次就只能读取一行或一列的16个像素。为了访问全部 24行、每行24个像素,9个处理器就需要和共享48个周期。这样, 每个处理器的周期数量就是48/9=5.33。
如果N维记忆装置可用,从而允许在一个周期中访问一个4×4块 (如图26所示),那么总共需要36个周期。在这种情况下,每个处理 器的周期数量为36/9=4。注意,在不存在PSP和阵列处理器的情况下, 周期数量为每个处理器16个周期。该性能对单独PSP处理器从16改 进到5.33,对具有N维存储的PSP改进到4。总之,这种阵列处理器 架构可被单独使用,或者如此处所述,可以与N维存储器一起使用。 与传统的单螺旋点搜索模式相比,利用带二级存储器的阵列处理器的 平行螺旋模式可使ME算法的执行效率更高,以搜索更多的点,从而 获得更高的压缩性能。
还要注意的是,本文描述的实施例不仅可以实施在物理电路(例 如半导体芯片)中,而且也可以实施在机器可读介质中。例如,上面 所讨论的电路和设计可以存储在和/或嵌入在与用于设计半导体器件的 设计工具有关的机器可读介质中。具体示例包括以“VHSIC硬件描述 语言”(VHDL)语言、Verilog语言或SPICE语言表现的网表(netlist)。 部分网表示例包括:行为层网表、寄存器传送层(RTL)网表、栅层网 表、以及晶体管层网表。机器可读介质也包括具有布局信息例如GDS-II 文件的介质。此外,用于半导体芯片设计的网表文件或其它机器可读 介质可使用在仿真环境中,以执行本文所述原理的各种方法。
因此,也应理解的是,本发明的实施例可被用作或支持在某种形 式的处理核(例如计算机的CPU)上执行的软件程序,或在机器可读 介质上或其中实施或实现的软件程序。机器可读介质包括存储或传输 机器(如计算机)可读形式信息的任何装置或机制。例如,机器可读 介质包括只读存储器(ROM),随机访问存储器(RAM),磁盘存储介 质,光存储器,闪存装置,电子、光学、声学或其它形式的传播信号 (例如载波、红外信号、数字信号等)等等。
至此,本文已描述了自适应多维信号序列编码和解码的方法和系 统。尽管本发明的描述参考了具体的示例性实施例,但是显然,在不 脱离本发明的更广泛的精神和范围的情况下,可对这些实施例做出各 种修改和变化。因此,应该以一种说明性的而非限制性的度来看待 本发明的说明书和附图。
申请要求2003年6月23日提交的、题为“自适应的多维信号 序列编码/解码方法和装置(Method and Apparatus for Adaptive Multiple-Dimensional Signal Sequences Encoding/Decoding)”的美国临 时专利申请第60/480985号的优先权,在此将其内容以引用方式并入本 文。
参考文献
[1]Iaiain E.G.Richardson,Video Codec Design,John Willey&Sons, Ltd.,2002,1983
[2]Douglas F.Elliott and K.Ramamohan Rao,Fast Transforms: Algorithms,Analyses,APPlications,Academic Press,1983
[3]Bernard Widrow and Samuel D.Steams,Adaptive Signal Processing,Prentice-Hall,Inc.,1985
[4]John von Neumann,″Theory of Self-Reproducing Automata″, edited and completed by Arthur W.Burks,University of Illinois Press, Urbana and London,1966
[5]Tsu-Chang Lee,Structure Level Adaptation for Artifcial N6ural N6tworks,Kluwer Academic Publishers,1991
[6]Nils J.Nilsson,Principles of Artificial Intelligence,Morgan Kaufmann,1986
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈