CN101252692B - 一种帧间预测方法、装置及视频编解码设备 - Google Patents

一种帧间预测方法、装置及视频编解码设备 Download PDF

Info

Publication number
CN101252692B
CN101252692B CN 200810065772 CN200810065772A CN101252692B CN 101252692 B CN101252692 B CN 101252692B CN 200810065772 CN200810065772 CN 200810065772 CN 200810065772 A CN200810065772 A CN 200810065772A CN 101252692 B CN101252692 B CN 101252692B
Authority
CN
China
Prior art keywords
data
unit
interpolation
address
level control
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.)
Active
Application number
CN 200810065772
Other languages
English (en)
Other versions
CN101252692A (zh
Inventor
阳昕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Actions Technology Co Ltd
Original Assignee
Actions Semiconductor Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Actions Semiconductor Co Ltd filed Critical Actions Semiconductor Co Ltd
Priority to CN 200810065772 priority Critical patent/CN101252692B/zh
Publication of CN101252692A publication Critical patent/CN101252692A/zh
Application granted granted Critical
Publication of CN101252692B publication Critical patent/CN101252692B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明适用于数字视频编解码技术领域,提供了一种帧间预测方法、装置及视频编解码设备,所述方法包括:储存不同视频标准对应的控制表,并根据需要更新所述控制表中的信息;查找所述控制表中相应的信息内容;根据所述查找到的信息内容进行插值运算。本发明在第一存储器中集成控制表,使用第二存储器更新第一存储器中的不同视频标准对应的控制表信息内容,采用流水线的设计结构,在不改变硬件电路的情况下以查表的方式实现不同视频标准下的插值运算,节约了成本,节省了硬件资源。

Description

一种帧间预测方法、装置及视频编解码设备
技术领域
本发明属于数字视频编解码技术领域,尤其涉及一种帧间预测方法、装置及视频编解码设备。
背景技术
在数字视频帧间编解码时,根据运动向量对像素点进行插值。对于不同的视频标准,插值方式也不相同。现有技术通常以硬件电路的方式实现插值运算,如图1所示,地址产生单元是固定在逻辑电路中,不同的视频标准对应着不同的地址产生单元,一旦需要支持新的视频标准则需要更改电路。无论是针对MPEG4的1/4插值,AVS的亮度插值,还是针对其它的视频标准(比如H.264,WMV,RMVB等)的插值电路,都有各自不同的控制和运算。现有的技术中要么分别独立实现针对不同视频标准不同算法的插值功能,要么共享一部分逻辑电路通过大量的复选器完成不同的运算,该方案虽然实现了一部分电路的复用,但是一旦有新的需求或者新的视频标准需要支持时,唯一的办法就是改变硬件电路来满足各种需求,这样就导致成本升高。
发明内容
本发明实施例的目的在于提供一种帧间预测方法、装置及视频编解码设备,旨在解决现有技术必须通过改变硬件电路的方式才能满足不同视频标准下插值运算的需求,从而导致成本高的问题。
本发明实施例是这样实现的,一种帧间预测方法,所述方法包括下述步骤:
储存不同视频标准对应的控制表,并根据需要更新所述控制表中的信息;
查找所述控制表中相应的信息内容;
根据所述查找到的信息内容进行插值运算;
所述控制表为三级控制表,所述三级控制表包括第一级控制表,第二级控制表和第三级控制表;
所述第一级控制表包括M个第一表单元,每个第一表单元的内容包括在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数;
其中,M为一种视频标准支持的对应不同滤波器类型及不同插值图像块尺寸的所有运动向量的数目总和;
所述第二级控制表包括N个第二表单元,每个第二表单元的内容包括当前阶段插值中所需的读取数据的起始地址,写回数据的起始地址,滤波操作控制位,滤波系数选择,预处理操作控制位,移位操作控制位,限幅操作控制位和当前阶段插值运算所需的时钟周期数量;
其中,StepNoj为对于第j个运动向量进行插值操作需要的阶段数;
所述第三级控制表包括至多K个第三表单元,每个第三表单元的内容还包括当前时钟周期插值操作中的数据输入地址偏移、数据输入位宽、数据输出地址偏移、数据输出位及写操作有效标志;
其中,
Figure GSB00000399501000022
Figure GSB00000399501000023
为对于第j个运动向量第k个插值阶段所需的时钟周期数量;
所述每个第一表单元与该表单元中包括的在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数个第二表单元相对应,且该第一表单元的内容还包括至少一个与该第一表单元相对应的第二表单元的入口地址;
所述每个第二表单元与该表单元中包括的当前阶段插值所需时钟周期数量个第三表单元相对应,且该第二表单元的内容还包括至少一个与该第二表单元相对应的第三表单元中的入口地址;
所述查找控制表中相应的信息内容具体为:
根据滤波器类型、待插值图像块的尺寸以及运动向量的值确定第一级控制表中相应的第一表单元的入口地址;
查找第一级控制表,根据该第一表单元内容中包括的第二表单元的入口地址以及当前所处的插值阶段数确定对应的第二级控制表中第二表单元的入口地址;
查找第二级控制表,根据该第二表单元内容中包括的第三表单元的入口地址以及当前所处的时钟周期确定第三级控制表中第三表单元的入口地址和部分插值参数;
根据第三表单元的入口地址查找相应的信息内容;
所述插值运算设计为流水线操作。
本发明实施例的另一目的在于提供一种帧间预测方法,所述方法包括下述步骤:
储存不同视频标准对应的控制表,并根据需要更新所述控制表中的信息;
查找所述控制表中相应的信息内容;
根据所述查找到的信息内容进行插值运算;
所述控制表为两级控制表,所述二级控制表包括:第一级控制表和第二级控制表;
所述第一级控制表包括M个第一表单元,每个第一表单元的内容包括在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数;
其中,M为一种视频标准支持的对应不同滤波器类型及不同插值图像块尺寸的所有运动向量的数目总和;
所述第二级控制表中包括N个第二表单元,每个第二表单元的内容包括当前阶段插值操作中的读取数据模式,第一个读数据块序号,第二个读数据块序号,读数据块宽度信息,读数据块高度信息,写数据块序号,写数据块宽度信息,写数据块高度信息,数据块与实际起始地址在地址寄存器记录基地址的偏移,存储空间的行宽,读取数据位宽,写实际起始地址在地址寄存器记录基地址的偏移,写数据位宽;以及滤波操作控制位,滤波系数选择,预处理操作控制位,移位操作控制位,限幅操作控制位;
其中,
Figure GSB00000399501000041
StepNoj为对于第j个运动向量进行插值操作需要的阶段数;
所述每个第一表单元与该第一表单元中包括的在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数个第二表单元相对应,该第一表单元的内容还包括至少一个与该第一表单元相对应的第二表单元的入口地址;
所述查找控制表中相应的信息内容具体为:
根据滤波器类型,待插值图像块的尺寸以及运动向量的值确定第一级控制表中相应的第一表单元的入口地址;
查找第一级控制表,根据该第一表单元内容中包括的第二表单元的入口地址以及当前所处的插值阶段数确定对应的第二级控制表中第二表单元的入口地址;
根据第二表单元的入口地址查找相应的信息内容;
所述插值运算设计为流水线操作。
本发明实施例的另一目的在于提供一种帧间预测装置,所述装置包括:
第一存储器,用于储存不同视频标准对应的控制表;
插值运算单元,用于根据所述控制表中的信息内容进行插值运算并输出插值结果;
查表控制单元,用于控制所述插值运算单元查找所述控制表中的信息内容并控制所述第一存储器将所述控制表中的信息内容提供给所述插值运算单元;
所述控制表为三级控制表,所述三级控制表包括第一级控制表,第二级控制表和第三级控制表;
所述第一级控制表包括M个第一表单元,每个第一表单元的内容包括在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数;
其中,M为一种视频标准支持的对应不同滤波器类型及不同插值图像块尺寸的所有运动向量的数目总和;
所述第二级控制表中包括N个第二表单元,每个第二表单元的内容包括当前阶段插值中所需的读取数据的起始地址,写回数据的起始地址,滤波操作控制位,滤波系数选择,预处理操作控制位,移位操作控制位,限幅操作控制位和当前阶段插值运算所需的时钟周期数量;
其中,
Figure GSB00000399501000051
StepNoj为对于第j个运动向量进行插值操作需要的阶段数;
所述第三级控制表包括至多K个第三表单元,每个第三表单元的内容还包括当前时钟周期插值操作中的数据输入地址偏移、数据输入位宽、数据输出地址偏移、数据输出位及写操作有效标志;其中,
Figure GSB00000399501000052
为对于第j个运动向量第k个插值阶段所需的时钟周期数量;
所述每个第一表单元与该表单元中包括的在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数个第二表单元相对应,且该第一表单元的内容还包括至少一个与该第一表单元相对应的第二表单元的入口地址;
所述每个第二表单元与该表单元中包括的当前阶段插值所需时钟周期数量个第三表单元相对应,且该第二表单元的内容还包括至少一个与该第二表单元相对应的第三表单元中的入口地址;
所述插值运算单元设计成流水线结构,所述流水线均启动后,每一个时钟周期计算出一个插值结果。
本发明实施例的另一目的在于提供一种帧间预测装置,所述装置包括:
第一存储器,用于储存不同视频标准对应的控制表;
插值运算单元,用于根据所述控制表中的信息内容进行插值运算并输出插值结果;
查表控制单元,用于控制所述插值运算单元查找所述控制表中的信息内容并控制所述第一存储器将所述控制表中的信息内容提供给所述插值运算单元;
所述控制表为两级控制表,所述两级控制表包括:第一级控制表和第二级控制表;
所述第一级控制表包括M个第一表单元,每个第一表单元的内容包括在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数;
其中,M为一种视频标准支持的对应不同滤波器类型及不同插值图像块尺寸的所有运动向量的数目总和;
所述第二级控制表中包括N个第二表单元,每个第二表单元的内容包括当前阶段插值操作中的读取数据模式,第一个读数据块序号,第二个读数据块序号,读数据块宽度信息,读数据块高度信息,写数据块序号,写数据块宽度信息,写数据块高度信息,数据块与实际起始地址在地址寄存器记录基地址的偏移,存储空间的行宽,读取数据位宽,写实际起始地址在地址寄存器记录基地址的偏移,写数据位宽;以及滤波操作控制位,滤波系数选择,预处理操作控制位,移位操作控制位,限幅操作控制位;
其中,
Figure GSB00000399501000061
StepNoj为对于第j个运动向量进行插值操作需要的阶段数;
所述每个第一表单元与该第一表单元中包括的在某一滤波器类型及特定插值图像决尺寸下的一个运动向量处进行插值操作需要的阶段数个第二表单元相对应,该第一表单元的内容还包括至少一个与该第一表单元相对应的第二表单元的入口地址;
所述插值运算单元设计成流水线结构,所述流水线均启动后,每一个时钟周期计算出一个插值结果。
本发明实施例的另一目的在于提供一种采用上述帧间预测装置实现的视频编解码设备。
本发明实施例在第一存储器中集成不同视频标准对应的控制表,使用第二存储器来不断的更新第一存储器中存储的不同视频标准对应的控制表中的信息内容,采用流水线的设计结构,在不改变硬件电路的情况下以查表的方式实现不同视频标准下的插值运算,节约了成本,节省了硬件资源。
附图说明
图1是现有技术提供的一种帧间预测装置的逻辑结构示意图;
图2是本发明实施例提供的一种帧间预测装置的逻辑结构示意图;
图3是本发明实施例提供的一种帧间预测装置的模块结构图;
图4是本发明第一实施例提供的三级控制表的逻辑关系图;
图5是本发明第一实施例提供的三级控制表的表单元之间对应关系图;
图6是本发明第一实施例提供的三级控制表结构示意图;
图7是本发明第二实施例提供的两级控制表的表单元之间对应关系图;
图8是本发明第二实施例提供的两级控制表结构示意图;
图9是本发明实施例提供的插值运算单元与三级控制表的逻辑结构示意图;
图10是本发明实施例提供的插值运算单元与两级控制表的逻辑结构示意图;
图11是本发明实施例提供的插值运算单元采用的10级流水线结构示意图;
图12是本发明实施例提供的一种帧间预测方法实现流程图;
图13是本发明实施例提供的基于三级控制表的帧间预测方法实现流程图;
图14是本发明实施例提供的基于H.264视频标准的不同运动向量对应的插值位置示意图;
图15是本发明实施例提供的基于H.264视频标准的1/2像素亮度插值示意图;
图16是本发明实施例提供的基于H.264视频标准的1/4像素亮度插值示意图;
图17是本发明实施例提供的基于H.264视频标准的1/8像素色度插值示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过集成所有不同视频标准对应的控制表信息,从而不改变硬件电路,采用流水线的设计,以查表的方式实现不同视频标准下的插值运算。
本发明实施例提供的一种帧间预测装置的逻辑结构如图2所示,包括第一存储器、查表控制单元以及插值运算单元,其中第一存储器用于存储不同视频标准的控制表;插值运算单元采用流水线设计,根据控制表中的信息内容进行插值运算并输出插值结果;查表控制单元用于控制插值运算单元查找所述控制表中的信息内容并控制第一存储器将所述控制表中的信息内容提供给所述插值运算单元。
本发明实施例提供的一种帧间预测装置主要应用于视频编解码设备中,图3示出了该装置的模块结构图,包括第一存储器31,查表控制单元32以及插值运算单元33,现分别对各个模块详细描述如下:
本发明实施例中,第一存储器1也叫控制表存储单元,可以是SRAM存储器,也可以是DRAM存储器,用于存储视频标准的控制表信息。作为本发明的一个实施例,控制表可以为三级控制表,具体的三级控制表的逻辑关系如图4所示,包括第一级控制表41,也称为插值控制表(Interpolate Control Table,ICTAB);第二级控制表42,也称为访问控制及插值信息表(Access ControlTable,ACTAB);第三级控制表43,也称为访问地址表(Access Address Table,AATAB)。其中,三级控制表包括插值过程中全部需要的参数。第一级控制表41由M个第一表单元组成,数量M为一种视频标准支持的对应不同滤波器类型及不同插值图像块尺寸的所有运动向量的数目总和,每个第一表单元包括在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数;第二级控制表42由N个第二表单元组成,数量与一种视频标准支持的对应不同滤波器类型及不同插值图像块尺寸的所有运动向量的数目总和M以及对应不同滤波器类型及不同插值图像块尺寸的每个运动向量进行插值操作所需要的阶段数StepNoj有关,
Figure GSB00000399501000091
每个第二表单元包括当前阶段插值中所需的读取数据的起始地址,写回数据的起始地址,滤波操作控制位,滤波系数选择,预处理操作控制位,移位操作控制位,限幅操作控制位;每个第二表单元还包括当前阶段插值所需的时钟周期数量;第三级表控制表43由K个第三表单元组成,数量K与一种视频标准支持的对应不同滤波器类型及不同插值图像块尺寸的所有运动向量的数目总和M以及对应不同滤波器类型及不同插值图像块尺寸的每个运动向量进行插值操作所需要的阶段数StepNoj、每个阶段插值需要的时钟周期数量
Figure GSB00000399501000092
有关,
Figure GSB00000399501000093
每个第三表单元的内容还包括当前时钟周期插值操作中的数据输入地址偏移、数据输入位宽、据输出地址偏移、数据输入位宽、数据输出地址偏移、数据输出位宽、写操作有效标志。
本发明实施例中,三级控制表的表单元之间对应关系分别如图5所示,第一级控制表的第j个第一表单元与第二级控制表StepNoj个第二表单元相对应,第二级控制表的第k个第一表单元与第三级控制表
Figure GSB00000399501000094
个第二表单元相对应,StepNoj为对于第j个运动向量进行插值操作需要的阶段数,
Figure GSB00000399501000101
为与第j个第一表单元对应的第k个第二表单元记录的当前阶段插值所需的时钟周期数量。
作为本发明的一个实施例,在插值过程中,为了访问相应的表单元以获取参数,参数获取过程可以按照下列步骤实现:
步骤1:根据滤波器类型、待插值图像块的尺寸以及运动向量的值确定第一级控制表中相应的第一表单元的入口地址;
步骤2:查找第一级控制表,根据该第一表单元内容中包括的第二表单元的入口地址以及当前所处的插值阶段数确定对应的第二级控制表中第二表单元的入口地址;
步骤3:查找第二级控制表,根据该第二表单元内容中包括的第三表单元的入口地址以及当前所处的时钟周期确定第三级控制表中第三表单元的入口地址和部分插值参数;
步骤4:根据第三表单元的入口地址查找相应的信息内容。
为了通过上一级表单元获得下一级表单元的地址,需要在上一级表单元中记录与表单元相对应的全部下一级表单元中至少一个表单元的地址。例如在第j个第一表单元中可以记录与该表单元相应的全部StepNoj个第二表单元的入口地址,也可以记录其中一个地址,其余第二表单元的地址通过第一表单元记录的地址计算后获得,或者在第二表单元中也记录其余第二表单元的入口地址。同理,也可以在第二表单元中记录至少一个对应的第三表单元的地址。
作为本发明的一个实施例,第二级控制表中的表单元在存储器中按相应的阶段编号顺序排列,第三级控制表中的表单元在存储器中按相应的阶段编号、时钟编号顺序排列。每个第一表单元记录与该表单元对应的全部第二表单元中阶段编号最小的表单元的地址,每个第二表单元记录与该表单元对应的全部第三表单元中时钟编号最小的表单元的地址。三级控制表的结构如图6所示,第一表单元的每个索引下包含16位信息;第二表单元的每个索引下包含64位信息;第三表单元的每个索引下包含32位信息。其中,第一级控制表的大小为128′16bit,而第二级控制表和第三级控制表的大小根据不同的视频标准而不同。比如:对于MPEG4标准,第二级控制表的大小为82′64bit,而第三级控制表的大小则为6096′32bit;对H.264标准,第二级控制表的大小为451′64bit,而第三级控制表的大小则为8619′32bit。
本发明实施例中,三级控制表中每级控制表表单元中包含的控制参数的含义如表1所示:
Figure GSB00000399501000121
表1
作为本发明的另一个实施例,控制表存储单元中的控制表也可以为两级控制表,第一级控制表称为插值控制表(Interpolate Control Table,ICTAB),第二级控制表称为访问控制表(Access Control Table,ACTAB)。两级控制表包括插值过程中全部需要的参数。第一级控制表由M个第一表单元组成,所述数量M为一种视频标准支持的对应不同滤波器类型及不同插值图像块尺寸的所有运动向量的数目总和,每个第一表单元的内容包括在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数;第二级控制表由N个第二表单元组成,数量与一种视频标准支持的对应不同滤波器类型及不同插值图像块尺寸的所有运动向量的数目总和M以及对应不同滤波器类型及不同插值图像块尺寸的每个运动向量进行插值操作所需要的阶段数StepNoj有关,
Figure GSB00000399501000122
每个第二表单元的内容包括当前阶段插值操作中的读取数据模式,第一个读数据块序号,第二个读数据块序号,读数据块宽度信息,读数据块高度信息,写数据块序号,写数据块宽度信息,写数据块高度信息,数据块与实际起始地址在基地址寄存器记录基地址的偏移,存储空间的行宽,读取数据位宽,写实际起始地址在基地址寄存器记录基地址的偏移,写数据位宽;以及滤波操作控制位,滤波系数选择,预处理操作控制位,移位操作控制位,限幅操作控制位;每个第二表单元还包括当前阶段插值所需的时钟周期数量。
本发明实施例中,两级控制表的表单元之间对应关系分别如图7所示:第一级控制表的第j个第一表单元与第二级控制表中StepNoj个第二表单元相对应,StepNoj为第j个第一表单元记录的与该表单元对应的相应滤波器类型及插值图像块尺寸的运动向量进行插值操作所需要的阶段数。
在插值过程中,为了访问相应的表单元以获取参数,参数获取过程可以按照下列步骤实现:
步骤1:根据滤波器类型,待插值图像块的尺寸以及运动向量的值确定第一级控制表中相应的第一表单元的入口地址;
步骤2:查找第一级控制表,根据该第一表单元内容中包括的第二表单元的入口地址以及当前所处的插值阶段数确定对应的第二级控制表中第二表单元的入口地址;
步骤3:根据第二级控制表单元的入口地址查找相应的信息内容。
为了通过上一级表单元获得下一级表单元的地址,需要在上一级表单元中记录相关的地址。例如在第j个第一表单元中可以记录与该表单元相应的全部StepNoj个第二表单元的入口地址,也可以记录其中一个地址,其余第二表单元的地址通过第一表单元记录的地址计算后获得,或者在第二表单元中也记录其余第二表单元的入口地址。
作为本发明的一个实施例,第二级控制表的表单元在存储器中按相应的阶段编号顺序排列,每个第一表单元记录与该表单元对应的全部第二表单元中阶段编号最小的表单元的地址。两级控制表的结构如图8所示,每级控制表中包含的控制参数的含义如表2所示:
Figure GSB00000399501000131
Figure GSB00000399501000141
表2
第一存储器是一种断电数据就会丢失的存储介质,所以控制表不可能一直保存在第一存储器中。本发明实施例中,有一个第二存储器与第一存储器连接,用于不断更新第一存储器中存储的不同视频标准对应的控制表中的信息。插值运算前,首先使用第二存储器中与视频标准对应的内容更新第一存储器中的内容。作为本发明的一个实施例,该第二存储器可以是Flash存储器,ROM存储器或任何外挂的,断电不丢失数据的存储器。
插值运算单元33包括:数据读取单元331,数据预处理单元332,滤波单元333,数据后处理单元334,数据写出单元335。其中数据读取单元31由当前阶段数据输入的起始地址Read_BA和当前周期数据输入地址偏移Read_offset相加产生地址以及当前周期数据输入位宽RW项来控制,用于读取数据;数据预处理单元332由预处理操作控制位Pre-pro来控制,用于对读取的数据进行预处理;滤波单元333由滤波操作控制位Filter-pro和滤波系数选择Filter_Coeff来控制,用于对预处理后的数据进行滤波运算;数据后处理单元334由移位操作控制位Shift以及限幅操作控制位Clip来控制,用于对滤波后的数据进行凑整,移位和限幅运算;数据写出单元335由当前阶段数据输出的起始地址Write_BA和当前周期数据输出地址偏移Write_offset相加产生地址以及当前周期数据输出位宽WW和当前周期写操作有效标志Wr_en项来控制,用于插值结果的输出。
查表控制单元32用于控制插值运算单元33访问第一存储器31中储存的控制表,完成多级查表操作;并控制第一存储器31将控制表中的信息内容提供给插值运算单元33。
图9示出了本发明实施例提供的插值运算单元与三级控制表的逻辑结构示意图,现详述插值过程如下:
启动电路,由插值滤波器的类型、待插值数据块的大小以及运动向量的值计算第一级控制表901的表单元的入口索引地址IC-addr;根据入口索引地址IC-addr查找第一级控制表901的表单元中对应的内容,该内容包括:当前操作需要的阶段数StepNO.以及第二级控制表与当前滤波器类型和图像块尺寸对应的运动向量插值相应的全部第二表单元中阶段编号最小的表单元的入口地址ACTAB_BA。当StepNO.的值不为零时,以StepNO.的值初始化第一访问计数器902,当第一访问计数器902不为零时,以第一级控制表901中查找出的ACTAB_BA为起始地址,通过第一地址产生递加单元903递增索引到第二级控制表904中每个第二表单元的表项内容,每访问一个第二表单元,第一计数器902的计数值减一,每个第二表单元的表项的内容包括:当前阶段运算总共需要的时钟周期Counter,当前阶段数据输入的起始地址Read_BA,前阶段数据输出的起始地址Write_BA,滤波操作控制位Filter-pro,滤波系数选择Filter_Coeff,预处理操作控制位Pre-pro,移位操作控制位Shift以及限幅操作控制位Clip以及第三级控制表的入口地址AATAB_BA。用Counter的值初始化第二访问计数器905,当第二计数器计数值不为零时,以第二级控制表904中查找出的AATAB_BA为起始地址,通过第二地址产生递加单元906递增索引到第三级控制表907中每个第三表单元的表项内容,每访问一个第三表单元,第二访问计数器905的计数值减一,每个第三表单元的表项的内容包括:当前周期数据输入地址偏移Read offset,当前周期数据输入位宽RW,当前周期数据输出地址偏移Write offset,当前周期数据输出位宽WW以及当前周期写操作有效标志Wr_en。将第二级控制表904的第二表单元中的当前阶段数据输入的起始地址Read_BA与第三级控制表907的第三表单元中的当前周期数据输入地址偏移Read offset送到第三地址产生递加单元908累加运算后作为数据读取地址送入插值运算单元910;将第二级控制表904的第二表单元中的当前阶段数据输出的起始地址Write_BA与第三级控制表907的第三表单元中的当前周期数据输出地址偏移Write offset送到第四地址产生递加单元909累加运算后作为数据写出地址送入插值运算单元910;第二级控制表904的第二表单元中的预处理操作控制位Pre-pro、滤波操作控制位Filter-pro、滤波系数选择Filter Coeff、限幅操作控制位Clip和移位操作控制位Shift等信息输入至插值运算单元910;重复访问第二级控制表904、第三级控制表907的表单元,直至第一访问计数器902、第二访问计数器905的计数值全部为零,完成插值运算全过程。
图10示出了本发明第二实施例提供的插值运算单元与两级控制表的逻辑结构示意图,现详述插值过程如下:
启动电路,由插值滤波器的类型、待插值数据块的大小以及运动向量的值计算第一级控制表101的表单元的入口索引地址IC-addr;根据入口索引地址IC-addr查找第一级控制表101的表单元中对应的内容,该内容包括:当前操作需要的阶段数StepNO.以及第二级控制表与当前滤波器类型和图像块尺寸对应的运动向量插值相应的全部第二表单元中阶段编号最小的表单元的入口地址ACTAB_BA;当StepNO.的值不为零时,以StepNO.的值初始化第一访问计数器102,当第一访问计数器102不为零时,以第一级控制表101的表单元中查找出的ACTAB_BA为起始地址,通过第一地址产生递加单元103递增索引到第二级控制表104的表单元中的表项内容,每访问一个第二表单元,第一计数器102的计数值减一,每个第二表单元的表项的内容包括:包括读取数据模式ReadMode,第一个读数据块序号ReadBLKa,第二个读数据块序号ReadBLKb,读数据块宽度信息ReadBLK Width,读数据块高度信息ReadBLK Height,写数据块序号WriteBLK,写数据块宽度信息WriteBLK Width,写数据块高度信息WriteBLK Height,数据块与实际起始地址在基地址寄存器记录基地址的偏移ReadBLKa(b)_Offset,存储空间的行宽ReadBLKa(b)_Stride,读取数据位宽ReadBLKa(b)_Bitwidth,写实际起始地址在基地址寄存器记录基地址的偏移WriteBLK_Offset,写数据位宽WriteBLK_Bitwidth;以及滤波操作控制位Filter-pro,滤波系数选择Filter_Coeff,预处理操作控制位Pre-pro,移位操作控制位Shift,限幅操作控制位Clip。将第二级控制表104的表单元的数据块与实际起始地址在基地址寄存器记录基地址的偏移ReadBLKa(b)_Offset输出给第二地址产生递加单元105,将写实际起始地址在基地址寄存器记录基地址的偏移WriteBLK_Offset输出给第三地址产生递加单元106,基地址寄存器107由4个读数据块基地址BLK0,BLK1,BLK2,BLK3构成,第二地址产生递加单元105将数据块与实际起始地址在基地址寄存器记录基地址的偏移ReadBLKa(b)_Offset与基地址寄存器107中的基地址求和,使用求和结果进行数据读取;插值运算单元109读取预处理操作控制位Pre-pro、滤波系数选择Filter_Coeff、限幅操作控制位Clip、移位操作控制位Shift等信息进行插值运算;第三地址产生递加单元106将写实际起始地址在基地址寄存器记录基地址的偏移WriteBLK_Offset与基地址寄存器107中的基地址求和,使用求和结果进行数据写出;重复以上访问第二级控制表的表单元,直至第一计数器102的计数值全部为零,完成插值运算全过程。
作为本发明的一个实施例,插值运算单元3采取10级流水线操作,如图11所示,P0~P9表示进入流水线进行处理的数据,在第一个时钟周期,读取第一个数据P0;第二个时钟周期,对数据P0做预处理,同时读取第二个数据P1;第三个时钟周期,对数据P0做四抽头滤波器0抽头处的滤波运算,同时对数据P1做预处理,并读取第三个数据P2;第四个时钟周期,对数据P0做四抽头滤波器1抽头处的滤波运算,同时对数据P1做四抽头滤波器0抽头处的滤波运算,对数据P2做预处理,并读取第四个数据P3;第五个时钟周期,对数据P0做四抽头滤波器2抽头处的滤波运算,同时对数据P1做四抽头滤波器1抽头处的滤波运算,对数据P2做四抽头滤波器0抽头处的滤波运算,对数据P3做预处理,并读取第五个数据P4;第六个时钟周期,对数据P0做四抽头滤波器3抽头处的滤波运算,同时对数据P1做四抽头滤波器2抽头处的滤波运算,对数据P2做四抽头滤波器1抽头处的滤波运算,对数据P3做四抽头滤波器0抽头处的滤波运算,对数据P4做预处理,并读取第六个数据P5;第七个时钟周期,对数据P0做凑整运算,同时对数据P1做四抽头滤波器3抽头处的滤波运算,对数据P2做四抽头滤波器2抽头处的滤波运算,对数据P3做四抽头滤波器1抽头处的滤波运算,对数据P4做四抽头滤波器0抽头处的滤波运算,对数据P5做预处理,并读取第七个数据P6;第八个时钟周期,对数据P0做移位运算,同时对数据P1做凑整运算,对数据P2做四抽头滤波器3抽头处的滤波运算,对数据P3做四抽头滤波器2抽头处的滤波运算,对数据P4做四抽头滤波器1抽头处的滤波运算,对数据P5做四抽头滤波器0抽头处的滤波运算,对数据P6做预处理,并读取第八个数据P7;第九个时钟周期,对数据P0做限幅运算,同时对数据P1做移位运算,对数据P2做凑整运算,对数据P3做四抽头滤波器3抽头处的滤波运算,对数据P4做四抽头滤波器2抽头处的滤波运算,对数据P5做四抽头滤波器1抽头处的滤波运算,对数据P6做四抽头滤波器0抽头处的滤波运算,对数据P7做预处理,并读取第九个数据p8;第十个时钟周期,完成一个插值结果,将数据P0的插值结果写出,同时对数据P1做限幅运算,对数据P2做移位运算,对数据P3做凑整运算,对数据P4做四抽头滤波器3抽头处的滤波运算,对数据P5做四抽头滤波器2抽头处的滤波运算,对数据P6做四抽头滤波器1抽头处的滤波运算,对数据P7做四抽头滤波器0抽头处的滤波运算,对数据P8做预处理,并读取第十个数据P9。每个时钟周期会有一个新的输入数据被读入,然后顺序的在下个周期被送入下级流水线单元,这样从第十个时钟周期开始,每一级流水线的运算单元都会进入工作状态,依次对输入的数据进行操作,直至第一访问计数器归零,完成当前阶段插值运算。
图12示出了本发明实施例提供的一种帧间预测方法实现流程,详述如下:
在步骤S121中,储存不同视频标准对应的控制表,并根据需要更新控制表中的信息;对不同的视频标准,控制表中的参数是一样的,只是参数的值发生了改变。根据使用的视频标准,将视频标准相关的信息放入控制表中。
在步骤S122中,查找控制表中相应的信息内容;
本发明实施例中,控制表可以为三级控制表,也可以为两级控制表。其中三级控制表包括第一级控制表,第二级控制表和第三级控制表,每级控制表又包括一系列表单元。三级控制表的表单元中具体的信息内容如表1所示。其中,第一级控制表的表单元大小为128′16bit,而第二级控制表和第三级控制表的表单元大小由视频标准决定。两级控制表包括第一级控制表和第二级控制表,每级控制表又包括一系列表单元,两级控制表的表单元中对应的具体的信息内容如表2所示。
在步骤S123中,根据查找到的信息内容进行插值运算。
本发明实施例中,以三级控制表为例,图13示出了根据查找三级控制表中的信息内容进行帧间预测插值运算的实现流程,现详述如下:
在步骤S131中,根据插值滤波器的类型Filter-type、待插值数据块的大小CB-size以及水平方向运动向量MVx、垂直方向运动向量MVy的值计算第一级控制表的入口索引地址IC-addr;具体程序为:
if(Filter-type=0)
IC-addr=‘CB-size[2:0]|MVy[1:0]|MVx[1:0]’;
else if(Filter-type=1)
IC-addr=‘1111|CB-size[2:0]’;
本发明实施例中,插值滤波器的类型可以为4抽头滤波器,也可以为8抽头滤波器。
作为本发明的一个实施例,待插值图像块的大小由不同的视频标准确定。对于H.264标准,待插值图像块的大小可以划分为16×16,16×8,8×16,8×8,8×4,4×8和4×4共7种模式。
在步骤S132中,根据索引地址IC-addr查找第一级控制表的表单元中对应的内容,该内容包括:第二级控制表与当前滤波器类型和图像块尺寸对应的运动向量插值相应的全部第二表单元中阶段编号最小的表单元的入口地址ACTAB_BA,当前滤波器类型和图像块尺寸对应的运动向量插值操作总共需要的阶段数StepNO.,例如第一阶段是水平方向滤波,第二阶段是用水平滤波结果进行垂直方向滤波,第三阶段是利用第一阶段和第二阶段的滤波结果运算得出最后插值结果,那么查表得到的StepNO.就等于3。
在步骤S 133中,判断当前插值操作总共需要的阶段数StepNO.(也就是在第二级控制表中需要依次访问的单元数)是否为零,若是,则结束,表示插值完成;若否,则进入步骤S134;
在步骤S134中,以StepNO.的值初始化第一访问计数器;
在步骤S135中,判断第一访问计数器是否为0,若是,则结束,完成插值运算;若否,则进入步骤S136;
在步骤S136中,第一访问计数器减1,以从第一级控制表中得到的ACTAB_BA为起始地址,递增以查找第二级控制表的表单元,增加量为每个第二表单元的大小,得到某一阶段插值运算时需要的所有固定控制信息;其中控制信息包括:读取数据在存储器中的起始地址Read_BA,写回数据在存储器中的起始地址Write_BA;滤波操作控制位Filter-pro,用于决定4抽头滤波操作是否要进行(Filter-pro=0表示在流水线中旁路掉这四级滤波操作);滤波系数选择Filter_Coeff,用于在存有滤波系数的配置寄存器中选择一个作为当前系数;预处理操作控制位Pre-pro,用于判断输入的数据是否需要在滤波之前做一些其它的运算(Pre-pro=0表示不需要,Pre-pro=1表示将6抽头的对称系数滤波器输入做运算变换成4抽头的,Pre-pro=2表示将8抽头的对称系数滤波器输入做运算变换成4抽头的);移位操作控制位Shift,用于指示滤波后处理移位位数及凑整操作(凑整操作在滤波结果上加上2(Shift-1),之后移位Shift位);限幅操作控制位Clip,用于表示限幅这一步是否需要;以及与当前滤波器类型和图像块尺寸对应的运动向量插值相应的全部第三表单元中时钟标号最小的表单元的入口地址地址AATAB_BA和需要依次访问的第三表单元的总数Counter。
在步骤S137中,从第二级控制表查表得出的各种信息被分别送到对应的流水线操作单元,完成硬件电路的选通或准备参与计算;
在步骤S138中,将当前阶段数据输入的起始地址Read_BA与当前周期数据输入地址偏移量Read Offset进行加法运算后,读数据基地址,产生读地址和读控制信号;
在步骤S139中,将当前阶段数据输出的起始地址Write_BA与当前周期数据输出地址偏移量Write Offset进行加法运算后,写数据基地址,产生写地址和写控制信号;
在步骤S140中,以Counter的值初始化第二访问计数器,第二访问计数器减1,以AATAB_BA为起始地址,递增访问第三级控制表中的第三表单元,递增的数量为每个第三表单元的大小,得出访问数据存储中读写地址偏移和读写控制信号;
在步骤S141中,判断第二访问计数器是否为零,若是,则返回到步骤S135,若否,则读数据偏移地址进入步骤S138,写数据偏移地址进入S139;
在步骤S142中,处理单元的各个流水线级电路根据得出的各种控制参数,结合根据读地址读入的数据,进行插值运算。
重复步骤S135至S142,直到第一访问计数器、第二访问计数器全部的值为零,完成插值过程。
两级控制表情况下的插值过程与三级控制表的过程类似,在此不再累述。
插值运算是在解码过程中,利用比特流中提取出来的运动向量信息,在参考帧中找到对应位置的预测块;当运动向量指向的位置不为整点像素时,利用插值,得出相应分数点位置的像素点值(包括1/2、1/4、甚至1/8精度点)构成的预测块。图14示出了基于H.264视频标准的不同运动向量MV对应的插值位置示意图。
本发明实施例中,以H.264视频标准为例,现详述在H.264视频标准下的插值运算过程:
在H.264视频标准下,亮度插值Filter_type=0与色度插值Filter_type=1不同,因此将亮度插值和色度插值分开处理。另外参考块大小有16x16,16x8,8x16,8x8,8x4,4x8,4x4共7种Block_size,可以表示为[2:0]=000,001,010,011,100,101,110。
先根据H.264视频标准和当前运动向量的位置对各种插值运算分类,亮度插值分为1/2精度像素点和1/4精度像素点。H.264视频标准对应的1/2像素亮度插值如图15所示,1/2精度像素点又分为下列三种情况:
(1)水平方向luma,half-pixel,horizontal direction
(2)垂直方向luma,half-pixel,vertical direction
(3)二维点luma,half-pixel,two-dimension这三种插值操作都包含了6抽头滤波,预处理以及后处理时的凑整、移位和限幅。抽头滤波的系数COR0=[20,20,-5,1]存于0号滤波系数寄存器中。表达式如下:
a′i=X-3,i-5X-2,i+20X-1,i+20X1,i-5X2,i+X3,i
=20X-1,i+20X1,i-5(X-2,i+X2,i)+(X-3,i+X3,i)
b′=X-1,-3-5X-1,-2+20X-1,-1+20X-1,1-5X-1,2+X-1,3
=20X-1,-1+20X1,1-5(X-1,-2+5X-1,2)+(X-1,-3+X-1,3)
c′=a′-3-5a′-2+20a′-1+20a′1-5a′2+a′3
=20a′-1+20a′1-5(a′-2+a′2)+(a′-3+a′3)
ai=CLIP((a′i+16)>>5)
其中,b=CLIP((b’+16)>>5)。在(1)和(2)情况下,查到第一级控制表对应
c=CLIP((c’+512)>>10)
的表项,找到StepNO.=1表示只需要一个阶段的操作就可以得到结果,以及相应的第二表单元的入口地址;接着查找第二级控制表第二表单元,可以查找到数据读写起始地址以及第三级表的入口地址,Filter-pro=1,Filter_Coeff=0,Pre-pro=1,shift=5(在整个H.264插值过程中,来自配置寄存器的Rounding都会被设置为零),Clip=1(移位的结果被限幅于[0,255]范围内),而Counter的值则是所需输入数据的总个数加上电路流水线的延迟周期数,这些参数都会被依次送到数据预处理单元,滤波单元,数据后处理单元以及流程控制逻辑。在(3)情况下,查找第一级控制表的表单元对应的表项,找到StepNO.=2表示需要两个阶段的操作可以得到结果,以及相应的第二表单元的入口地址;接着继续查找第二级控制表,连续的两个第二表单元对应了这种情况插值计算的第一阶段和第二阶段。第一阶段的第二表单元的内容除数据读写起始地址,该阶段对应的第三级表单元的入口地址,Counter,以及Shift=0,Clip=0外,其余几项与上面的情况相同;而第二阶段除地址和Counter信息外,Shift=10,Clip=1。Pre-pro=1,输入数据会首先进入数据预处理单元,完成如上述公式中列出的6抽头变4抽头需要的加法之后送入4级滤波单元,最后根据Shift和Clip的定义完成数据后处理。到了第三级控制表,地址的偏移会根据实际情况填写,硬件只要按照查到的值到指定地址取数或是写出就可以了。数据的宽度在上面的情况(1)和(2)中,所有的读写都是8-bit;而情况(3)的第一阶段所有的读为8-bit而写是16-bit,第二阶段则反过来所有的读为16-bit而写是8-bit。
基于H.264视频标准的1/4像素亮度插值如图16所示,1/4精度像素点又分为下列情况:
(4)luma,quarter-pixel,MV=(1,0)
(5)luma,quarter-pixel,MV=(3,0)
(6)luma,quarter-pixel,MV=(0,1)
(7)luma,quarter-pixel,MV=(0,3)
(8)luma,quarter-pixel,MV=(2,1)
(9)luma,quarter-pixel,MV=(2,3)
(10)luma,quarter-pixel,MV=(1,2)
(11)luma,quarter-pixel,MV=(3,2)
(12)luma,quarter-pixel,MV=(1,1)
(13)luma,quarter-pixel,MV=(3,1)
(14)luma,quarter-pixel,MV=(1,3)
(15)luma,quarter-pixel,MV=(3,3)
其中(4)(5)(6)(7)这四种情况在查找第一级控制表表单元时得到StepNO=2,之后索引到第二级表,连续的两个第二表单元对应了这种情况插值计算的第一阶段和第二阶段。第二级表的第一个表单元跟上述1/2精度插值时的(1)和(2)对应单元内容是相同的,在此不再赘述;而查找第二单元可以得到第二阶段的读写信息和Counter信息,以及Filter-pro=1,Filter_Coeff=1,Pre-pro=0,Shift=1,Clip=0,即在第一阶段进行1/2精度插值后,第二阶段会根据第三寄控制表提供的具体数据访问地址信息计算像素点a=(G+b+1)>>1,c=(H+b+1)>>1,d=(G+h+1)>>1,n=(M+h+1)>>1。(8)(9)(10)(11)这四种情况在查找第一级控制表时得到StepNO.=4。第一阶段与上述1/2精度插值(1)或(2)是同一种操作,在此不再赘述;而第二阶段和第三阶段与上述(3)是同一种操作;第四阶段则与(4)(5)(6)(7)的第二阶段类似,只是读写地址信息不同。像素点f=(b+j+1)>>1,q=(j+s+1)>>1,i=(h+j+1)>>1,k=(j+m+1)>>1。(12)(13)(14)(15)这四种情况在查找第一级控制表表单元时得到StepNO.=3表示总共需要三个阶段的操作。第一阶段与前面1/2精度插值(1)或(2)是同一种操作;第二阶段则刚好相反,与前面1/2精度插值(2)或(1)是同一种操作;第三阶段同样与(4)(5)(6)(7)的第二阶段类似,也只是读写地址信息不同,这些都能从第二级控制表和第三级控制表得出,最后在第三阶段得到像素点e=(b+h+1)>>1,g=(b+m+1)>>1,p=(h+s+1)>>1,r=(m+s+1)>>1。
H.264视频标准下的的色度插值是双线性插值,在查找第一级控制表时已被分类,Filter-type=1,IC-addr=‘1111|CB-size[2:0]’,并且支持的是1/8像素精度。继续查找第二级控制表以及第三级控制表,控制以下的操作过程。基于H.264视频标准的1/8像素色度插值如图17所示,这种双线性插值的滤波抽头系数由运动向量MV(x,y)计算得到,分别表示为[((8-x)*(8-y)),((8-x)*y),(x*(8-y)),(x*y)],插值计算公式如下:
p=((8-x)(8-y)?A1(8-x)创yA2+x(8-y)?B1xy?B232)>>6
其中,x,y={0L 7}。H.264视频标准下的滤波抽头系数包括:
F0=[20,20,-5,1]F1=[1,1,0,0]Bilinear F2=[((8-x)*(8-y)),((8-x)*y),((x*(8-y)),(x*y))]。
同理,对于其它视频标准的插值运算,都可以类似上面基于H.264视频标准的方法进行分类,分阶段的参数统计与设置,然后填入查找控制表中。一旦查找控制表设置好之后,所有的硬件电路运作过程就完全一致了。
本发明实施例在第一存储器中集成控制表,使用第二存储器来不断的更新第一存储器中存储的不同视频标准对应的控制表信息内容,采用流水线的设计结构,使得各个运算步骤可以同时执行,实现了很高的并行性以及硬件资源的复用,在提高速度的同时有效减少了硬件资源的占用;更重要的是参数由查表来配置,实现了具体视频标准和算法对硬件电路的透明化,各种插值操作的差异都体现在用第一存储器实现的表中,硬件电路做到了完全一致。对需要支持的插值方法,只要对其进行分析整理,在第一存储器的相应表项中填入正确的控制信息,在硬件电路完全不被改变的情况下,整个插值的过程就得以实现。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种帧间预测方法,其特征在于,所述方法包括下述步骤:
储存不同视频标准对应的控制表,并根据需要更新所述控制表中的信息;
查找所述控制表中相应的信息内容;
根据所述查找到的信息内容进行插值运算;
所述控制表为三级控制表,所述三级控制表包括第一级控制表,第二级控制表和第三级控制表;
所述第一级控制表包括M个第一表单元,每个第一表单元的内容包括在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数;
其中,M为一种视频标准支持的对应不同滤波器类型及不同插值图像块尺寸的所有运动向量的数目总和;
所述第二级控制表包括N个第二表单元,每个第二表单元的内容包括当前阶段插值中所需的读取数据的起始地址,写回数据的起始地址,滤波操作控制位,滤波系数选择,预处理操作控制位,移位操作控制位,限幅操作控制位和当前阶段插值运算所需的时钟周期数量;
其中,
Figure FSB00000399500900011
StepNoj为对于第j个运动向量进行插值操作需要的阶段数;
所述第三级控制表包括至多K个第三表单元,每个第三表单元的内容还包括当前时钟周期插值操作中的数据输入地址偏移、数据输入位宽、数据输出地址偏移、数据输出位及写操作有效标志;
其中,
Figure FSB00000399500900012
Figure FSB00000399500900013
为对于第j个运动向量第k个插值阶段所需的时钟周期数量;
所述每个第一表单元与该表单元中包括的在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数个第二表单元相对应,且该第一表单元的内容还包括至少一个与该第一表单元相对应的第二表单元的入口地址;
所述每个第二表单元与该表单元中包括的当前阶段插值所需时钟周期数量个第三表单元相对应,且该第二表单元的内容还包括至少一个与该第二表单元相对应的第三表单元中的入口地址;
所述查找控制表中相应的信息内容具体为:
根据滤波器类型、待插值图像块的尺寸以及运动向量的值确定第一级控制表中相应的第一表单元的入口地址;
查找第一级控制表,根据该第一表单元内容中包括的第二表单元的入口地址以及当前所处的插值阶段数确定对应的第二级控制表中第二表单元的入口地址;
查找第二级控制表,根据该第二表单元内容中包括的第三表单元的入口地址以及当前所处的时钟周期确定第三级控制表中第三表单元的入口地址和部分插值参数;
根据第三表单元的入口地址查找相应的信息内容;
所述插值运算设计为流水线操作。
2.一种帧间预测方法,其特征在于,所述方法包括下述步骤:
储存不同视频标准对应的控制表,并根据需要更新所述控制表中的信息;
查找所述控制表中相应的信息内容;
根据所述查找到的信息内容进行插值运算;
所述控制表为两级控制表,所述二级控制表包括:第一级控制表和第二级控制表;
所述第一级控制表包括M个第一表单元,每个第一表单元的内容包括在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数;
其中,M为一种视频标准支持的对应不同滤波器类型及不同插值图像块尺寸的所有运动向量的数目总和;
所述第二级控制表中包括N个第二表单元,每个第二表单元的内容包括当前阶段插值操作中的读取数据模式,第一个读数据块序号,第二个读数据块序号,读数据块宽度信息,读数据块高度信息,写数据块序号,写数据块宽度信息,写数据块高度信息,数据块与实际起始地址在地址寄存器记录基地址的偏移,存储空间的行宽,读取数据位宽,写实际起始地址在地址寄存器记录基地址的偏移,写数据位宽;以及滤波操作控制位,滤波系数选择,预处理操作控制位,移位操作控制位,限幅操作控制位;
其中,
Figure FSB00000399500900031
StepNoj为对于第j个运动向量进行插值操作需要的阶段数;
所述每个第一表单元与该第一表单元中包括的在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数个第二表单元相对应,该第一表单元的内容还包括至少一个与该第一表单元相对应的第二表单元的入口地址;
所述查找控制表中相应的信息内容具体为:
根据滤波器类型,待插值图像块的尺寸以及运动向量的值确定第一级控制表中相应的第一表单元的入口地址;
查找第一级控制表,根据该第一表单元内容中包括的第二表单元的入口地址以及当前所处的插值阶段数确定对应的第二级控制表中第二表单元的入口地址;
根据第二表单元的入口地址查找相应的信息内容;
所述插值运算设计为流水线操作。
3.一种帧间预测装置,其特征在于,所述装置包括:
第一存储器,用于储存不同视频标准对应的控制表;
第二存储器,与第一存储器连接,用于更新所述第一存储器中储存的不同视频标准对应的控制表中的信息;
插值运算单元,用于根据所述控制表中的信息内容进行插值运算并输出插值结果;
查表控制单元,用于控制所述插值运算单元查找所述控制表中的信息内容并控制所述第一存储器将所述控制表中的信息内容提供给所述插值运算单元;
所述控制表为三级控制表,所述三级控制表包括第一级控制表,第二级控制表和第三级控制表;
所述第一级控制表包括M个第一表单元,每个第一表单元的内容包括在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数;
其中,M为一种视频标准支持的对应不同滤波器类型及不同插值图像块尺寸的所有运动向量的数目总和;
所述第二级控制表中包括N个第二表单元,每个第二表单元的内容包括当前阶段插值中所需的读取数据的起始地址,写回数据的起始地址,滤波操作控制位,滤波系数选择,预处理操作控制位,移位操作控制位,限幅操作控制位和当前阶段插值运算所需的时钟周期数量;
其中,
Figure FSB00000399500900041
StepNoj为对于第j个运动向量进行插值操作需要的阶段数;
所述第三级控制表包括至多K个第三表单元,每个第三表单元的内容还包括当前时钟周期插值操作中的数据输入地址偏移、数据输入位宽、数据输出地址偏移、数据输出位及写操作有效标志;
其中,
Figure FSB00000399500900042
Figure FSB00000399500900043
为对于第j个运动向量第k个插值阶段所需的时钟周期数量;
所述每个第一表单元与该表单元中包括的在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数个第二表单元相对应,且该第一表单元的内容还包括至少一个与该第一表单元相对应的第二表单元的入口地址;
所述每个第二表单元与该表单元中包括的当前阶段插值所需时钟周期数量个第三表单元相对应,且该第二表单元的内容还包括至少一个与该第二表单元相对应的第三表单元中的入口地址;
所述插值运算单元设计成流水线结构,所述流水线均启动后,每一个时钟周期计算出一个插值结果。
4.如权利要求3所述的装置,其特征在于,所述第二存储器为Flash存储器,ROM存储器或任何外挂的、断电不丢失数据的存储器。
5.如权利要求3所述的装置,其特征在于,所述第一存储器为芯片内嵌的存储器,所述第一存储器具体为SRAM存储器或DRAM存储器。
6.如权利要求3所述的装置,其特征在于,所述插值运算单元包括:
数据读取单元,用于读取待插值参考块的数据并输出;
数据预处理单元,用于接收所述数据读取单元输出的数据,对所述数据进行预处理后输出;
滤波单元,用于接收所述数据预处理单元输出的数据,对所述数据进行滤波后输出;
数据后处理单元,用于接收所述滤波单元输出的数据,对所述数据进行凑整、移位、限幅处理后输出;
数据写出单元,用于接收所述数据后处理单元输出的数据,将经过处理后的插值结果写出。
7.一种帧间预测装置,其特征在于,所述装置包括:
第一存储器,用于储存不同视频标准对应的控制表;
第二存储器,与第一存储器连接,用于更新所述第一存储器中储存的不同视频标准对应的控制表中的信息;
插值运算单元,用于根据所述控制表中的信息内容进行插值运算并输出插值结果;
查表控制单元,用于控制所述插值运算单元查找所述控制表中的信息内容并控制所述第一存储器将所述控制表中的信息内容提供给所述插值运算单元;
所述控制表为两级控制表,所述两级控制表包括:第一级控制表和第二级控制表;
所述第一级控制表包括M个第一表单元,每个第一表单元的内容包括在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数;
其中,M为一种视频标准支持的对应不同滤波器类型及不同插值图像块尺寸的所有运动向量的数目总和;
所述第二级控制表中包括N个第二表单元,每个第二表单元的内容包括当前阶段插值操作中的读取数据模式,第一个读数据块序号,第二个读数据块序号,读数据块宽度信息,读数据块高度信息,写数据块序号,写数据块宽度信息,写数据块高度信息,数据块与实际起始地址在地址寄存器记录基地址的偏移,存储空间的行宽,读取数据位宽,写实际起始地址在地址寄存器记录基地址的偏移,写数据位宽;以及滤波操作控制位,滤波系数选择,预处理操作控制位,移位操作控制位,限幅操作控制位;
其中,
Figure FSB00000399500900061
StepNoj为对于第j个运动向量进行插值操作需要的阶段数;
所述每个第一表单元与该第一表单元中包括的在某一滤波器类型及特定插值图像块尺寸下的一个运动向量处进行插值操作需要的阶段数个第二表单元相对应,该第一表单元的内容还包括至少一个与该第一表单元相对应的第二表单元的入口地址;
所述插值运算单元设计成流水线结构,所述流水线均启动后,每一个时钟周期计算出一个插值结果。
8.如权利要求7所述的装置,其特征在于,所述第二存储器为Flash存储器,ROM存储器或任何外挂的、断电不丢失数据的存储器。
9.如权利要求7所述的装置,其特征在于,所述第一存储器为芯片内嵌的存储器,所述第一存储器具体为SRAM存储器或DRAM存储器。
10.如权利要求7所述的装置,其特征在于,所述插值运算单元包括:
数据读取单元,用于读取待插值参考块的数据并输出;
数据预处理单元,用于接收所述数据读取单元输出的数据,对所述数据进行预处理后输出;
滤波单元,用于接收所述数据预处理单元输出的数据,对所述数据进行滤波后输出;
数据后处理单元,用于接收所述滤波单元输出的数据,对所述数据进行凑整、移位、限幅处理后输出;
数据写出单元,用于接收所述数据后处理单元输出的数据,将经过处理后的插值结果写出。
11.一种采用权利要求3或7的帧间预测装置实现的视频编解码设备。
CN 200810065772 2008-03-07 2008-03-07 一种帧间预测方法、装置及视频编解码设备 Active CN101252692B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200810065772 CN101252692B (zh) 2008-03-07 2008-03-07 一种帧间预测方法、装置及视频编解码设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200810065772 CN101252692B (zh) 2008-03-07 2008-03-07 一种帧间预测方法、装置及视频编解码设备

Publications (2)

Publication Number Publication Date
CN101252692A CN101252692A (zh) 2008-08-27
CN101252692B true CN101252692B (zh) 2011-05-18

Family

ID=39955849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200810065772 Active CN101252692B (zh) 2008-03-07 2008-03-07 一种帧间预测方法、装置及视频编解码设备

Country Status (1)

Country Link
CN (1) CN101252692B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102547265B (zh) * 2010-12-28 2014-09-03 深圳市云宙多媒体技术有限公司 一种帧间预测方法、装置
CN102572419B (zh) * 2010-12-28 2014-09-03 深圳市云宙多媒体技术有限公司 一种帧间预测方法、装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1741418A (zh) * 2005-09-14 2006-03-01 南京大学 多帧运动估计中的基于模式继承的自适应参考帧选择方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1741418A (zh) * 2005-09-14 2006-03-01 南京大学 多帧运动估计中的基于模式继承的自适应参考帧选择方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李宇,梅顺良.基于H.264/AVC和AVS的视频解码芯片系统结构设计.电视技术第31卷 第8期.2007,第31卷(第8期),23-26.
李宇,梅顺良.基于H.264/AVC和AVS的视频解码芯片系统结构设计.电视技术第31卷 第8期.2007,第31卷(第8期),23-26. *

Also Published As

Publication number Publication date
CN101252692A (zh) 2008-08-27

Similar Documents

Publication Publication Date Title
CN101998120B (zh) 图像编码装置、图像编码方法及图像编码集成电路
US9106922B2 (en) Motion estimation engine for video encoding
KR100273629B1 (ko) 이동 벡터 평가 방법 및 장치
US10785498B2 (en) System and method of mapping multiple reference frame motion estimation on multi-core DSP architecture
CN109348234B (zh) 一种高效亚像素运动估计方法及系统
TWI403170B (zh) 背景調適性二進制算術解碼裝置及其解碼方法
JPH03256485A (ja) 動きベクトル検出回路
US8363713B2 (en) Method and apparatus for loading image data
US20090016634A1 (en) Half pixel interpolator for video motion estimation accelerator
JP2010119084A (ja) 高速動き探索装置及びその方法
CN111918057B (zh) 硬件友好的帧内编码块划分方法、设备及存储介质
KR100996337B1 (ko) 차이 절대값들의 2개의 독립적인 합산값들을 생성하기 위한명령
CN101252692B (zh) 一种帧间预测方法、装置及视频编解码设备
CN110933414B (zh) 运动信息候选者列表构建方法、装置及可读存储介质
EP1586201A1 (en) Efficient predictive image parameter estimation
JP2008060836A (ja) 動きベクトル探索方法及び装置
Kim et al. MESIP: A configurable and data reusable motion estimation specific instruction-set processor
JP5906993B2 (ja) 符号化装置、符号化方法、及びプログラム
CN102377995B (zh) 分数像素运动估计方法和系统
CN103237211A (zh) 一种基于fpga的视频亚像素亮度插值的方法及其装置
US7274824B2 (en) Method and apparatus to reduce the system load of motion estimation for DSP
CN101989350A (zh) 图像增强方法、图像增强装置及图像处理电路
Woo et al. A cache-aware motion estimation organization for a hardware-based H. 264 encoder
JP2007286827A (ja) オプティカルフロープロセッサ
CN101166272B (zh) 补差点数据储存方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170612

Address after: 519085 C District, 1# workshop, No. 1, science and technology No. four road, hi tech Zone, Zhuhai, Guangdong, China

Patentee after: ACTIONS (ZHUHAI) TECHNOLOGY Co.,Ltd.

Address before: 519085 No. 1, unit 15, building 1, 1 Da Ha Road, Tang Wan Town, Guangdong, Zhuhai

Patentee before: Juli Integrated Circuit Design Co., Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province

Patentee after: ACTIONS TECHNOLOGY Co.,Ltd.

Address before: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province

Patentee before: ACTIONS (ZHUHAI) TECHNOLOGY Co.,Ltd.