CN1186939C - 一种基于多级流水线结构的实时1/4插值方法 - Google Patents
一种基于多级流水线结构的实时1/4插值方法 Download PDFInfo
- Publication number
- CN1186939C CN1186939C CN 03152502 CN03152502A CN1186939C CN 1186939 C CN1186939 C CN 1186939C CN 03152502 CN03152502 CN 03152502 CN 03152502 A CN03152502 A CN 03152502A CN 1186939 C CN1186939 C CN 1186939C
- Authority
- CN
- China
- Prior art keywords
- interpolation
- data
- stage pipeline
- row
- read
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种基于与多级流水线结构的实时1/4插值方法。将MPEG4协议中规定的1/4插值过程与运动估计过程结合进行,即只对运动估计的过程中需要用到的块进行1/4插值,并将插值过程组织成数据读入、行1/2插值、列1/2插值、双线性插值和数据输出5级流水线结构,这样不但可以节约插值过程中存储器资源的占用,而且可以大大加快插值速度。包括以下步骤:对编解码器运动估计的过程中需要用到的块进行实时插值;插值过程和运动估计过程按流水线顺序结合进行;通过设立中间缓冲区消除数据重复读入;将插值过程组织成5级流水线结构;将1/2插值过程设计成4级流水线结构;本方法可以应用于基于MPEG4协议的视频编码器的设计中。
Description
技术领域
本发明涉及视频编解码技术领域,特别涉及视频帧间图像基于时间预测的编解码技术的一种基于多级流水线结构的实时1/4插值方法。
背景技术
在视频编码中,常把图像分为帧内图像和帧间图像两种。其中,帧间图像需要采用运动估计编码方法,这主要是因为相邻图像块的像素具有很大的时间相关性。这种编码方法的主要思想是在参考图像中找到和编码块最匹配的块作为编码块的预测值(预测块),进行编码。编码块和预测块匹配程度越高,编码的效率越高。为了提高二者的匹配程度,就需要提高运动估计的精度。MPEG1采用的是整像素精度,MPEG2和H.263采用的是半像素精度,在MPEG4中采用了1/4像素精度,从而可以提高编码效率。但1/4精度运动估计需要对参考图像进行1/4插值,1/4插值过程计算复杂度高,欲对一个整数点进行插值需要对该点周围的6×6个整数点进行6阶线性插值和双线性插值。如图1所示,一个图像块经过1/4插值后大小变为原来的16倍。在原图像块中的一个整像素点经过1/4插值后变为16个点,过程如图2所示,欲将点A插值为16个点需要将点A周围的6×6个整数点作为输入,具体过程为:
(1)分别对6×6块每行数据进行6阶线性插值,得到点1和5。
(2)分别对点A、1、4所在列进行6阶线性插值,得到点2、3、4。
(3)分别对点A、2、C所在行进行行线性插值,得到点a、b、h、i、o、p。
(4)分别对点A、a、1、b所在列进行列线性插值得到点c、d、e、f、j、k、m、l。
(5)利用点A、B、C和D对点m进行低通滤波。
经过上述5步就得到1/4插值后点A周围的16个点A、a、1、b、c、d、e、f、2、h、3、i、j、k、l、m。我们经过对插值过程的仔细分析发现存在以下一些问题:
(1)如果对整帧数据进行插值后再进行运动估计每帧数据量将膨胀为16帧的数据量,需要大容量存储空间存储插值结果。
(2)插值和运动估计过程完全串行,增加了帧间编码时间。
(3)相邻整像素点如点A、B、C、D的插值输入数据存在大量重复。
发明内容
本发明的目的在于提供一种基于多级流水线结构的实时1/4插值方法。它通过将插值过程与运动估计过程结合进行,并将插值过程组织成多级流水线结构,来降低视频编解码过程1/4插值过程的时间和空间占用,从而提高编解码效率。降低对存储资源的占用,提高1/4值的运算速度,对提高视频编解码的速度起重要作用。
技术方案如下:
一种基于多级流水线结构的实时1/4插值方法,本方法将MPEG4协议中规定的1/4插值过程与运动估计过程按流水线顺序结合进行,并将插值过程组织成数据读入、行1/2插值、列1/2插值、行列1/4插值和数据输出5级全流水线结构,这样不但可以节约插值过程中存储器资源的占用,而且可以大大加快插值速度。包括以下步骤:
(1)对运动估计过程中用到的当前块进行实时插值;
(2)将运动估计和1/4插值过程组织成2级流水线结构;
(3)通过设立中间缓冲区消除数据重复读入;
(4)将1/4插值过程组织成数据读入、行1/2插值、列1/2插值、双线性插值和数据输出5级流水线结构;
(5)将1/2插值过程设计成4级流水线结构;
(6)设计可伸缩:可以根据应用不同,方便的通过增加或减少插值运算单元的数目提高插值速度或降低资源占用。
所述方法,将运动估计过程和1/4插值过程结合在一起进行,对运动估计过程中用到的当前块进行实时插值,从而可以节约存储资源占用。
所述方法,将运动估计和1/4插值过程组织成2级流水线结构,减少插值在整个编码过程中的时间占用比例。
所述方法,通过设立中间缓冲区缓冲部分输入数据,消除相邻整像素点在插值过程中输入数据的重复读入,从而使每个与插值数据块相关的整像素点只需被读入一次。
所述方法,将1/4插值过程组织成数据读入、行1/2插值、列1/2插值、双线性插值和数据输出5级流水线结构,加速1/4插值的运算速度。
所述方法,将1/2插值过程采用的6阶线性插值,设计成4级流水线结构,流水线启动后每拍计算出一个结果,从而可以大大提高插值的运算速度。
所述方法,插值运算单元的数目可配置,可以根据应用不同,方便的通过增加或减少插值运算单元的数目提高插值速度或降低资源占用。
附图说明
图1是数据块1/4插值过程示意图;
图2是点A的插值过程示意图;
图3是点A与B输入数据重复示意图;(图中白色部分为重复区域)
图4是1/4插总体结构图;(其中clip:min(max(0,s7),255))
此方法包括以下特征:
(1)对运动估计过程中用到的当前块进行实时插值。
在H.264协议中共有16×16、16×8、8×16、8×8、8×4、4×8和4×4共7种形状的数据块,视频编解码过程以宏块为单位,针对每种形状块在运动估计过程中每个宏块只用到48×48个插值结果(解码只需要16×16个),这些结果用完一次就不再重复用,所以如果采用实时插值的做法,只需在对宏块进行运动估计之前,将要用到的数据进行插值,将结果放在48×48(解码是16×16)的缓冲区中,在进行下一个宏块的运动估计时,用新的插直结果覆盖掉原宏块用的插值数据,这样无论编码多大的帧整个运动估计过程只需要48×48字节(解码只需要16×16字节)的存储空间存放插值结果。
(2)将运动估计和插值过程按流水线顺序组织
为了提高运动估计和1/4插值的并行程度,本发明将运动估计和1/4插值过程按照流水线顺序组织,如图3所示,当插值器算出一行插值结果后,就用该行数据进行运动估计,同时插值器计算下一行插值结果。这样1/4插值过程的时间占用基本上被“溶解“在运动估计过程中。
(3)通过设立中间缓冲区消除数据重复读入
欲对一点A进行插值,如图2所示需要其周围的6×6数据块作为输入,同样欲对点B进行插值也需要其周围的6×6数据块作为输入,由于A与B相邻,因此二者的输入存在大量重复,如图3所示点A的后5列输入与点B的前5列是重复的。同样的道理,图2中的点C的插值输入与A的输入也存在5行6列的重复。为了减少数据的重复输入,本发明采用了一个中间缓冲区,先缓存整个数据块插值输入的前6行数据,然后依次对数据块中每个点进行插值,这样对第一行的整像素点进行插值时,数据直接从内部存储区中得到,不需重复访问外部存储区,同时再增加一个行缓冲区,用来缓冲下一行(第7行)的读入数据,第一行数据的插值和第7行数据的读入同时进行,当第一行的整像素点插值结束时,第7行数据也应已经被读入到缓冲区中,用2-6行数据和刚读入的第7行数据作为第二行整像素点的插值输入数据,如此往复完成对整个数据块的1/4插值,将结果存入48×48的中间缓冲区中供运动估计过程调用。这种结构的特点是访问外部存储区的次数低,每个数据只需读入一次。
(4)将插值器设计成5级流水线结构
插值器以6×6数据块为输入单位,分成数据读入、行1/2插值、列1/2插值、双线性插值和输出五级流水线结构。如图3所示,每拍送入插值器一个6×6数据块对一个点A进行插值,经过五级流水线后,得到与该点对应的16个插值结果,流水线完全启动后,每拍输出16个插值结果。
(5)将1/2插值过程设计成4级流水线结构。
由于在1/2插值过程采用的6阶线性插值,计算复杂度高。例如设一行连续6个数据为(in0,in1,in2,in3,in4,in5)欲对in2进行6阶线性插值,计算过程为:
out=min((max((in0-5*in1+20*in2+20*in3-5*in4+in5+16)/32,0),255),
这个运算如果在一拍内完成将降低整个系统的频率,为了消除这个关键路径,本发明将这个运算设计为4级流水线结构,如图4所示,每拍送入6个数据,4拍后每拍输出一个插值结果。
(6)设计可伸缩:可以根据应用不同,方便的通过增加或减少插值运算单元的数目提高插值速度或降低资源占用。
一个插值运算单元如图4所示,它可以独立完成一系列点的插值,可以通过改变插值运算单元的数目来提高插值速度或降低资源占用。
实际应用
我们应经将该方法成功应用于我所开发的H.264解码验证芯片中,取得了显著的效果,该芯片目前每秒能解码标准清晰度视频(720×576)35帧。
设计可伸缩:方便的通过增加或减少插值运算单元的数目提高插值速度或降低资源占用。本方法可以应用于基于MPEG4协议的视频编码器的设计中。
Claims (3)
1.一种基于多级流水线结构的实时1/4插值方法,将MPEG4协议中规定的1/4插值过程与运动估计过程按流水线顺序结合进行,并将插值过程组织成数据读入、行1/2插值、列1/2插值、行列1/4插值和数据输出5级全流水线结构,包括以下步骤:
(1)对运动估计过程中用到的当前块进行实时插值;
(2)将运动估计和1/4插值过程组织成2级流水线结构;
(3)通过设立中间缓冲区消除数据重复读入;
(4)将1/4插值过程组织成数据读入、行1/2插值、列1/2插值、双线性插值和数据输出5级流水线结构;
(5)将1/2插值过程设计成4级流水线结构;
(6)根据不同应用,增加或减少插值运算单元的数目。
2.按照权利要求1所述的方法,其特征在于:通过设立中间缓冲区缓冲部分输入数据,消除相邻整像素点在插值过程中输入数据的重复读入,从而使每个与插值数据块相关的整像素点只需被读入一次。
3.按照权利要求1所述的方法,其特征在于:将1/2插值过程采用的6阶线性插值,设计成4级流水线结构,流水线启动后每拍计算出一个结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03152502 CN1186939C (zh) | 2003-08-01 | 2003-08-01 | 一种基于多级流水线结构的实时1/4插值方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03152502 CN1186939C (zh) | 2003-08-01 | 2003-08-01 | 一种基于多级流水线结构的实时1/4插值方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1481169A CN1481169A (zh) | 2004-03-10 |
CN1186939C true CN1186939C (zh) | 2005-01-26 |
Family
ID=34156542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 03152502 Expired - Fee Related CN1186939C (zh) | 2003-08-01 | 2003-08-01 | 一种基于多级流水线结构的实时1/4插值方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1186939C (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100394797C (zh) * | 2006-04-13 | 2008-06-11 | 上海交通大学 | 基于avs运动补偿的亮度插值器的vlsi实现方法 |
CN100592799C (zh) * | 2008-06-12 | 2010-02-24 | 四川虹微技术有限公司 | 基于h.264标准运动补偿的数据快速读取方法 |
CN102340668B (zh) * | 2011-09-30 | 2013-07-17 | 上海交通大学 | 一种基于可重构技术的mpeg2亮度插值的实现方法 |
US9165010B2 (en) * | 2012-04-30 | 2015-10-20 | Sap Se | Logless atomic data movement |
-
2003
- 2003-08-01 CN CN 03152502 patent/CN1186939C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1481169A (zh) | 2004-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101376385B1 (ko) | 화상 처리 장치 및 화상 처리 방법 | |
CN101610413B (zh) | 一种视频的编码/解码方法及装置 | |
CN1305313C (zh) | 以管线架构应用于离散余弦变换与反离散余弦变换的系统 | |
CN1182335A (zh) | 用于符合mpeg2的实时编码的有效灵活的运动估计结构 | |
CN1275469C (zh) | 一种复杂度可分级的帧内预测方法 | |
CN1325220A (zh) | 运动向量编码方法 | |
CN1665299A (zh) | 可伸缩视频编解码器体系结构设计方法 | |
CN1852442A (zh) | 一种分层运动估计方法和超大规模集成电路 | |
CN1245839C (zh) | 分散式视频数据流解码方法 | |
CN1968420A (zh) | 应用于影像译码器与编码器的影像处理方法 | |
CN1779716A (zh) | 一种快速游程长度编解码电路的实现方法 | |
CN1186939C (zh) | 一种基于多级流水线结构的实时1/4插值方法 | |
CN1777286A (zh) | 影像处理装置及方法 | |
CN1529512A (zh) | 基于流水线的帧内预测模式块编码加速方法 | |
CN1745587A (zh) | 用于手持装置的视频编码方法 | |
CN1941903A (zh) | 一种实现多码流同时输出的转码系统及方法 | |
CN1805544A (zh) | 频域内用于位移估算的区块匹配 | |
CN1117484C (zh) | 存储器要求降低的已压缩视频数据流的解码与编码方法 | |
CN1625266A (zh) | 计算绝对差值的设备、运动估计设备和运动图像编码设备 | |
CN1520187A (zh) | 用于视频数据压缩的系统和方法 | |
CN101035282A (zh) | 基于块内降采样的avs-m视频编码快速运动估计方法 | |
CN1459200A (zh) | 视频编码器和记录设备 | |
CN1306823C (zh) | 一种并行处理行程解码、反扫描和反量化的方法及装置 | |
CN1825960A (zh) | 基于数据缓存的多流水线阶段信息共享方法 | |
CN1909663A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050126 Termination date: 20190801 |