CN102595134B - 一种四通道的之型扫描方法 - Google Patents
一种四通道的之型扫描方法 Download PDFInfo
- Publication number
- CN102595134B CN102595134B CN201210042360.9A CN201210042360A CN102595134B CN 102595134 B CN102595134 B CN 102595134B CN 201210042360 A CN201210042360 A CN 201210042360A CN 102595134 B CN102595134 B CN 102595134B
- Authority
- CN
- China
- Prior art keywords
- data
- sub
- clock cycle
- read
- addresses
- 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
- Static Random-Access Memory (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提出一种四通道的之型扫描方法,步骤如下:在只写一边的每个时钟周期按0、1、2、3为一组,4、5、6、7为一组的诸如此等次序,向4个输入通道分别连续输入数据;按照三个约束条件,使每个时钟周期输入的4个数据重新排列分发至4个子块及将4个子块同时分发至上16个地址的一个地址中;当完成16个时钟周期的数据输入后,在只读一边进行读操作,同时允许对下16个地址进行写操作;通过输出数据排序模块重新排序,从其4个输出通道输出的数据符合之型扫描要求,以便同时对4个数据进行并行流水之型扫描,以提高芯片的相对性能,降低主频和功耗,且具有结构简单、延迟少、吞吐量大的特点。
Description
技术领域
本发明属于芯片领域,尤其涉及一种视频压缩芯片中的多通道之型扫描方法。
背景技术
在视频压缩标准中,从视频编码标准MPEG1到MPEG4,从视频解码标准H261到H263,包括中国的视频压缩标准(Audio Video Coding Standard,AVS)等,都需要采用一8x8的二维数组,为进行传输,还需将其转换为一维排列方式。而从两维到一维的转换方式中,现有技术中的一标准的之型(Zig-Zag)扫描方式,如图1所示,或转置后的Zig-Zag扫描方式,如图2所示,方框内的数字表示扫描的次序,每个时钟周期处理一个数据,这样对于8x8的二维数组而言,需要对像素点逐次扫描,经过64个时钟才可以处理完毕,此种方法使得单位时间内被压缩的像素点较少。
然而,在多路或高清视频压缩中,单位时间内的像素点越多,图像的分辨率就越高,分辨率是影响位图图像的重要因素。因此,为了使单位时间内完成更多像素点的压缩,有必要对上述8x8的二维数组的Zig-Zag扫描方式进行改进。
发明内容
本发明所要解决的技术问题是提供一种四通道的之型扫描结构及方法,以便同时对4个数据(即象素点的数据)进行并行流水Zig-Zag扫描,以提高芯片的相对性能,降低主频和功耗,且具有结构简单、延迟少、吞吐量大的特点。
为了解决上述问题,本发明提出一种四通道的之型扫描方法,所述之型扫描要求按照0至63的次序依次输出,所述的一种四通道的之型扫描方法包括如下步骤:
第一步:在双端口RAM只写的一边通过一个时钟周期启动写有效信号后,在后续16个时钟周期的每个时钟周期内,分别向4个输入通道输入4个连续的数据并并按照逐行次序在数据地址分发模块中存储;
第二步:按照三个约束条件,使每个时钟周期输入的4个数据重新排列分发至4个不同子块RA、RB、RC、RD,并将每个时钟周期中的4个不同子块RA、RB、RC、RD同时分发至上16个地址的一个地址中,其中,所述上16个地址为由A0至A15依次分发,所述三个约束条件为:
约束条件一:每个时钟周期向4个输入通道中连续输入的4个数据分别只能写入4个子块中的一个,且所述4个数据的各子块不能重复的方式进行组合,即必须有1个RA、1个RB、1个RC和1个RD;
约束条件二:每个时钟周期要求从4个子块中输出的4个数据符合之型扫描要求,并且所述4个数据的各子块不能重复,即必须有1个RA、1个RB、1个RC和1个RD;
约束条件三:同时满足约束条件一和约束条件二时,选择4个子块重复多的组合;
第三步:再通过一个时钟周期启动读写两端的乒乓控制有效信号后,在所述双端口RAM只读的一边进行读操作,在后续16个时钟周期的每个时钟周期内,分别由A0至A15依次读取上16个地址中的每个地址中的4个数据,同时允许对所述双端口RAM的下16个地址进行写操作;
第四步:对4个不同子块的上16个地址读出的数据重新排序,使从其4个输出通道Dout0、Dout1、Dout2、Dout3输出的数据符合之型扫描要求。
基于本发明提出的一种四通道的之型扫描方法,还提供了一种四通道的之型扫描结构,所述四通道的之型扫描结构包括:
整个结构主体采用一双端口RAM,所述双端口RAM分成4个子块,所述双端口RAM最少可以存储128个数据,所述128个数据中,每4个数据一个地址,共32个地址,所述32个地址分成上16个地址、下16个地址进行乒乓操作;
所述双端口RAM一边为只写、一边为只读,所述之型扫描结构在双端口RAM只写的一边至少包括的多个写端数据选择模块和多个写端地址选择模块与所述子块数目相同,且每个子块只写的一边的两个输入端分别连接一个写端数据选择模块和一个写端地址选择模块;所述之型扫描结构在双端口RAM只写的一边还包括数据地址分发模块,其输入端接收4个输入通道中的数据,其写有效信号连接至所述双端口RAM写有效输入端,其读写的乒乓控制有效信号连接至一读端地址选择模块的输入端,以及每个写端数据选择模块和每个写端地址选择模块的输入端分别只连接所述数据地址分发模块的一个输出端;
所述之型扫描结构在双端口RAM只读的一边至少包括多个读端数据选择模块和所述读端地址选择模块,所述读端数据选择模块和所述子块数目相同,所述读端地址选择模块输出端连接至各子块只读一边的输入端,且其输入端接收读写的乒乓控制有效信号,所述每个读端数据选择模块输入端只分别连接一个子块只读一边的输入端;只读一边还包括输出数据排序模块,所述各读端数据选择模块输出端分别只连接所述输出数据排序模块的一个输入端,并通过所述输出数据排序模块输出通道按之型扫描要求输出数据。
进一步地,所述的一种四通道之型扫描结构还可以为,主体结构采用32的倍数大于等于2的地址的双端口RAM,每个地址存储4个数据,双端口RAM一端为只写,其另一端为只读。
由上述技术方案可见,与现有的之型扫描方式相比,本发明提出的一种四通道的之型扫描方法,并基于所述的四通道的之型扫描方法上还提出了一种四通道的之型扫描结构,通过一个时钟周期启动写有效信号,然后,通过对所述双端口RAM只写的一边的写端数据选择模块和写端地址选择模块的控制,将64个数据在16个时钟周期中分别写入到不同子块的上16个地址中,接着启动读写两端的乒乓控制有效信号,以便对所述双端口RAM只读的一边的读端地址选择模块和读端数据选择模块进行控制,完成8x8的二维数组数据转换成一维排列方式,产生符合需要的Zig-Zag扫描方式;同时,在所述双端口RAM上通过一个时钟周期启动读写两端的乒乓控制有效信号进行读操作,通过A0至A15依次读取上16个地址中的每个地址中的4个数据,同时允许对所述双端口RAM中的下16个地址进行写操作,这样读写地址访问的为不同的存储(Bank)空间,即对所述双端口RAM的上16个地址、下16个地址进行乒乓操作,避免了冲突。由此可见,每个时钟周期可以同时处理4个数据的之型扫描方法,还可以同步通过四通道的之型扫描结构,仅需18个CLK的延迟即可得到之型扫描的结果。因此,提高了芯片的相对性能,降低主频和功耗,且具有结构简单、延迟少、吞吐量大的特点。
附图说明
图1为现有技术中的一标准的之型扫描方式示意图;
图2为图1之转置后的之型扫描方式示意图;
图3为本发明一种四通道的之型扫描结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。
参见图1,本发明提出的一种四通道的之型扫描结构,其结构包括:
整个结构主体采用一双端口RAM,所述双端口RAM分成4个子块,所述双端口RAM最少可以存储128个数据,所述128个数据中,每4个数据一个地址,共32个地址,所述32个地址分成上16个地址、下16个地址进行乒乓操作,其中,所述4个子块分别为RA、RB、RC和RD,所述上16个地址分别为A0、A1、A2、……、A14、A15。
所述双端口RAM一边为只写、一边为只读,所述之型扫描结构在双端口RAM只写的一边W至少包括多个写端数据选择模块和多个写端地址选择模块,所述写端数据选择模块与写端地址选择模块的数目和所述双端口RAM子块的数目相同,因此,所述之型扫描结构包括4个写端数据选择模块分别为DinA、DinB、DinC、DinD,以及4个写端地址选择模块分别为AddA、AddB、AddC、AddD,且每个子块只写的一边的两个输入端分别连接一个写端数据选择模块和一个写端地址选择模块,因此,DinA和AddA的输出端连接子块RAMA输入端、DinB和AddB的输出端连接子块RAMB输入端、DinC和AddC的输出端连接子块RAMC输入端、DinD和AddD的输出端连接子块RAMD输入端。
所述之型扫描结构在双端口RAM只写的一边W还包括数据地址分发模块,在每个时钟周期,所述数据地址分发模块输入端按0、1、2、3为一组,4、5、6、7为一组,……,60、61、62、63为一组的次序,接收输入通道Din0、Din1、Din2、Din3中连续输入的数据Di,i=0、1、2、3、……、61、62、63,并且按照逐行次序的方式进行存储,且每个写端数据选择模块和每个写端地址选择模块的输入端分别只连接所述数据地址分发模块的一个输出端,所述数据地址分发模块的写有效信号连接至所述双端口RAM写有效输入端上,控制所述双端口RAM写有效,以便通过对所述数据地址分发模块进行控制而对所述写端数据选择模块和写端地址选择模块进行控制,使得每个CLK周期输入通道Din0、Din1、Din2、Din3中输入的数据分别写入4块不同的子块中,且同时将4块不同的子块分按照A0至A15的地址顺序依次发至上16个地址中的一个地址中,以及所述数据地址分发模块读写的乒乓控制有效信号连接至所述双端口RAM上(图中未示),控制只写的一边W在完成16个时钟周期、64个数据存储在不同子块的上16个不同地址后进行读操作,分别由A0至A15依次读取上16个地址中的每个地址中的4个数据。同时,允许对所述双端口RAM中的下16个地址进行写操作
所述之型扫描结构在双端口RAM只读的一边R至少包括多个读端数据选择模块和一个读端地址选择模块,所述读端数据选择模块和所述子块数目相同,即包括4个,分别为DoutA、DoutB、DoutC、DoutD,所述读端地址选择模块输出端分别连接至各子块只读一边的输入端,且所述读端地址选择模块输入端接收读写的乒乓控制有效信号,同时,每个读端数据选择模块输入端只连接一个子块只读一边的输出端,因此,通过控制所述读端地址选择模块,将存储在不同子块中不同地址的数据从各子块只读一边输出端输出的同时,还控制所述每个读端数据选择模块输入端接收来自于不同子块中不同地址的数据。
所述之型扫描结构在双端口RAM只读的一边R还包括输出数据排序模块,所述各读端数据选择模块输出端分别只连接所述输出数据排序模块的一个输入端,且通过所述输出数据排序模块输出通道Dout0、Dout1、Dout2、Dout3按照之型扫描要求在每个时钟周期输出数据Di。
而且,所述整个结构主体还可以采用地址为32的倍数大于等于2的双端口RAM,每个地址存储4个数据,双端口RAM一端为只写,其另一端为只读的四通道之型扫描结构,因此,采用上述同样地原理,可以更好地对4个数据进行并行流水之型扫描处理,延迟少、吞吐量大。
基于本发明提供的一种四通道的之型扫描结构,还提出一种四通道的之型扫描方法,其方法实现的过程分为四步:
第一步,在双端口RAM只写的一边W通过一个时钟周期启动写有效信号后,在接下来的16个时钟周期中(CLK=0、1、2、3、……、14、15)的每个时钟周期内,按0、1、2、3为一组,4、5、6、7为一组,……、60、61、62、63为一组的次序,分别向4个输入通道Din0、Din1、Din2、Din3输入4个连续的数据Di,i=0、1、2、3、……、61、62、63,因此,共有64个不同的数据Di分别通过输入通道Din0、Din1、Din2、Din3进行输入,并预先存储在数据地址分发模块中,如表(一)所示:
表(一)
CLK | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Din0 | D0 | D4 | D8 | D12 | D16 | D20 | D24 | D28 | D32 | D36 | D40 | D44 | D48 | D52 | D56 | D60 |
Din1 | D1 | D5 | D9 | D13 | D17 | D21 | D25 | D29 | D33 | D37 | D41 | D45 | D49 | D53 | D57 | D61 |
Din2 | D2 | D6 | D10 | D14 | D18 | D22 | D26 | D30 | D34 | D38 | D42 | D46 | D50 | D54 | D58 | D62 |
Din3 | D3 | D7 | D11 | D15 | D19 | D23 | D27 | D31 | D35 | D39 | D43 | D47 | D51 | D55 | D59 | D63 |
按照0、1、2、3次序对应的D0、D1、D2、D3为一组的数据,4、5、6、7次序对应的D4、D5、D6、D7为一组的数据,……、60、61、62、63次序对应的D60、D61、D62、D63为一组的数据,按照逐行次序依次存储到各子块RA、RB、Rc、RD,并且每个时钟周期内各子块按照A0、A1、A2、A3、……、A14、A15的地址顺序存储到上16个地址中的同一个地址中。其中,以D0至D8存储在各子块RA、RB、Rc、RD及上16个地址中的相应地址为例,如表(二)所示为8x8二维数组,一个输入数据存储在整个主体结构中的位置情况可以通过一个方块中的4个参数表示,如左上角的数据为输入次序,亦为之型扫描要求的输出次序,右上角的数据代表该输入数据存储的子块,左下角的数据代表输入数据,右下角的数据代表该输入数据在上16个地址中存储的地址:
表(二)
这种顺序为数据输入至双端口RAM未调整的顺序,因此,不经过调整,则输出数据排序模块对表(二)按照传统的之型扫描方式时,其输出通道是无法实现如图1或图2所示的结果,既无法依据之型扫描要求依次在其输出通道Dout0、Dout1、Dout2、Dout3再按照0、1、2、3为一组,4、5、6、7为一组,……,60、61、62、63为一组的输出次序依次输出数据Di。因此,需要对表(二)进行第二步,即数据Di到各子块RA、RB、RC、RD中的调整以及同步调整存储了数据Di的各子块到上16个地址的分发。
第二步具体分析过程如下:
首先,绘制一张能依照0、1、2、3、……、14、15个时钟周期的顺序,在每个周期中的4个数据按照约束条件、依据箭头所示方向从左到右、从上到下写入相应子块,并同时能按照之型扫描要求输出数据的表,如表(三)所示:
表(三)
输入数据受约束条件一限制,每个时钟周期向4个输入通道Din0、Din1、Din2、Din3中连续输入的4个数据分别只能写入4个子块RA、RB、RC、RD中的一个位置,并且4个数据中的任一个数据分别写入到4个子块中可以有多种不会重复的方式组合,即必须有1个RA、1个RB、1个RC和1个RD。因此,假设第一个CLK周期(CLK=0)依次向输入通道Din0、Din1、Din2、Din3中连续输入数据D1、D2、D3、D4并依次存储在4个子块RA、RB、RC、RD中(连续输入数据D1、D2、D3、D4也可以依次存储在RB、RA、RC、RD,或RC、RA、RB、RD,或4个子块不重复的组合方式中,并依据相同的原理进行后续步骤的推导),且输入数据D1、D2、D3、D4被按照0、2、3、9的输出次序经由输出数据排序模块输出通道Dout0、Dout1、Dout2、Dou3输出,如表(四)所示,A0、A0、A0、A2地址详解参见后面:,则输入数据D1、D2、D3、D4如表(四)中所示存储在上A0、A0、A0、A2地址
表(四)
同时,输出次序以0、1、2、3为一组,4、5、6、7为一组,8、9、10、11为一组,……,60、61、62、63为一组,每组依次读取A0、A1、A2、A3、……、A14、A15地址顺序中的数据。每组数据输出受约束条件二的限制,每个CLK周期要求从4个子块RA、RB、RC、RD中输出的4个数据符合之型扫描要求,并且所述4个数据的各子块RA、RB、RC、RD不能重复,即必须有1个RA、1个RB、1个RC和1个RD,因此,输出次序以0、1、2、3为一组的输出次序为1的位置只能取RD,因此,如表(五)所示:
表(五)
接着推导输出次序为4、5、6、7为一组的子块RA、RB、RC、RD的组合。第三个CLK(CLK=2)周期向输入通道Din0、Din1、Din2、Din3中连续输入数据D8、D9、D10、D11受约束条件一的限制,即每个时钟周期向4个输入通道Din0、Din1、Din2、Din3中输入的4个数据写入4个子块RA、RB、RC、RD的位置能重新组合,且不会重复,因此,当输出次序1为子块RD时,输出次序4可以取子块RD以外的其余子块RA、RB、RC的三种可能,假设输出次序4取子块RC,那么输出次序8,输出次序11可以取(RA,RB),或(RB,RA),由此,输出次序8、9、10、11的输出受约束条件二的限制,可以推导出输出次序10必须取子块RC。先假设输出次序8、11取(RB,RA),此时,如表(六)所示:
表(六)
接下来推导输出次序5、6、7的子块RA、RB、RC、RD的组合。假设输出次序5、7取(RA,RB),这样在第五个CLK(CLK=4)周期向输入通道Din0、Din1、Din2、Din3中输入的数据D16、D17、D18、D19存储于各子块的位置先要满足要符合约束条件一,同时和第一行输出次序0、2、3、9的数据D0、D1、D2、D3存储于各子块RA、RB、RC、RD的位置可能相同,又要符合约束条件三,即满足约束条件一和约束条件二的基础上,为节省面积,在4个子块RA、RB、RC、RD的已知组合中,选择4个子块RA、RB、RC、RD重复多的组合,因此,输出次序12、18取子块RC、RD的这种情况下,输出次序6只能取子块RD,如表(七)所示:
表(七)
接下来推导输出次序12、13、14、15的子块RA、RB、RC、RD的组合。当第七个CLK(CLK=6)周期时,输出次序6取子块RD、输出次序12取子块RC,因此,同时按照约束条件一和约束条件二的限制,输出次序13不能取子块RC的数据,也不能取子块RD中的数据,那么输出次序13只能取子块RA,或者子块RB,假设输出次序13取子块RB中的数据,那么输出次序14、15可以取(RA,RD)或(RD,RA)中的数据,再次假设输出次序14、15在这里取(RA,RD)中的数据,如表(八)所示:
表(八)
接下来我们推导输出次序16、17、19的子块RA、RB、RC、RD的组合。当第九个CLK(CLK=8)周期时,输出次序14、16、25、31中输出次序14已经取子块RA的数据,因此,按照约束条件一的限制,输出次序16可以取子块RB、RC、RD的一个,而按照约束条件二的限制,输出次序18已经取得子块RD中的数据,因此,输出次序16只可以取子块RB或RC中的一个数据,假设输出次序16取子块RB,那么输出次序17可以取子块RA或RC中的一个数据,假设输出次序17取子块RC中的数据,那么,输出次序19只可以取子块RA中数据。同时,在第七个CLK(CLK=6)周期时,输出次序6、13、17对应的子块分别为RD、RB、RC,按照约束条件一的限制,输出次序24只可以取子块RA中的数据,如表(九)所示:
表(九)
以此类推,可以得到如表(十)的最终表格:
表(十)
表(三)至表(十)的推导过程,表现为控制对述双端口RAM只写的一边的数据地址分发模块,从而控制所述写端数据选择模块完成输入数据对应子块的调整,即根据表(十)中的每个小方块中的右上角子块RA、RB、RC、RD和左下角输入数据D0、D1、D2、……、D63进行调整,用DinA表示RA、DinB表示RB的输入,以此类推;同时控制所述双端口RAM只写的一边的数据地址分发模块完成子块对应于上16个地址的调整,即根据表(十)中的每个小方块中的右上角子块RA、RB、RC、RD和右下角地址A0、A1、A2、……、A15进行调整,用AddA表示RA的写入地址,AddB表示RB的写入地址,依次类推,从而可以推导出输入数据、输入通道、上16个地址一一对应的关系如表(十一)所示:
表(十一)
CLK | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
DinA | D0 | D7 | D11 | D12 | D16 | D20 | D27 | D31 | D32 | D36 | D43 | D47 | D51 | D52 | D56 | D63 |
AddA | A0 | A8 | A2 | A4 | A1 | A5 | A6 | A12 | A3 | A9 | A10 | A14 | A11 | A13 | A7 | A15 |
DinB | D1 | D6 | D10 | D14 | D17 | D22 | D25 | D30 | D33 | D38 | D41 | D46 | D49 | D53 | D57 | D61 |
AddB | A0 | A5 | A2 | A8 | A1 | A9 | A3 | A11 | A4 | A12 | A6 | A14 | A7 | A13 | A10 | A15 |
DinC | D2 | D4 | D9 | D13 | D18 | D21 | D26 | D29 | D34 | D37 | D42 | D45 | D50 | D54 | D59 | D62 |
AddC | A0 | A2 | A1 | A5 | A3 | A8 | A4 | A9 | A6 | A11 | A7 | A12 | A10 | A14 | A13 | A15 |
DinD | D3 | D5 | D8 | D15 | D19 | D23 | D24 | D28 | D35 | D39 | D40 | D44 | D48 | D55 | D58 | D60 |
AddD | A2 | A5 | A0 | A9 | A4 | A12 | A1 | A8 | A7 | A14 | A3 | A11 | A6 | A15 | A10 | A13 |
第三步:当完成16个时钟周期的64个输入数据至所述双端口RAM的不同子块和存储了数据Di的不同子块对应至上16个地址后,再通过一个时钟周期启动读写两端的乒乓控制有效信号后,通过控制所述双端口RAM只读的一边的读端地址选择模块ADDr和读端数据选择模块进行读操作,使在后续16个时钟周期的每个时钟周期内,分别由A0至A15依次读取上16个地址中的每个地址中的4个数据,同时允许对所述双端口RAM的下16个地址进行写操作。
读操作时,读端地址选择模块ADDr对子块RA、RB、RC、RD按顺序地址A0、A1、……、A15依次读出,以DoutA、DoutB、DoutC、DoutD分别表示读端数据选择模块。因此,依据表(十一)可得,第一个CLK(CLK=0)周期时,子块RA、RB、RC、RD对应的相同地址A0中存储的输入数据为D0、D1、D2、D8,将通过读端数据选择模块DoutA、DoutB、DoutC、DoutD输出端分别输出,第二个CLK(CLK=1)周期时,子块RA、RB、RC、RD对应的相同地址A1中存储的输入数据为D16、D17、D9、D24,将通过读端数据选择模块DoutA、DoutB、DoutC、DoutD输出端分别输出,依次类推,可以得到表(十二):
表(十二)
CLK | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Addr | A0 | A1 | A2 | A3 | A4 | A5 | A6 | A7 | A8 | A9 | A10 | A11 | A12 | A13 | A14 | A15 |
DinA | D0 | D16 | D11 | D32 | D12 | D20 | D27 | D56 | D7 | D36 | D43 | D51 | D31 | D52 | D47 | D63 |
DinB | D1 | D17 | D10 | D25 | D33 | D6 | D41 | D49 | D14 | D22 | D57 | D30 | D38 | D53 | D46 | D61 |
DinC | D2 | D9 | D4 | D18 | D26 | D13 | D34 | D42 | D21 | D29 | D50 | D37 | D45 | D59 | D54 | D62 |
DinD | D8 | D24 | D3 | D40 | D19 | D5 | D48 | D35 | D28 | D15 | D58 | D44 | D23 | D60 | D39 | D55 |
第四步,分析表(十)可知,第一个CLK(CLK=0)周期时,实际需要得到的输出数据顺序为D0,D8,D1,D2;第二个CLK(CLK=1)周期时,实际需要得到的输出数据顺序为D9,D16,D24,D17。由此可见,此时表(十二)得到的数据还无法保证完全是按照之型扫描方式的结果输出数据,所以,在读有效的每个CLK周期时,先通过输出数据排序模块输入端接收来自于所述各读端数据选择模块输出端输出的如表(十二)的4个数据,接着再通过所述输出数据排序模块对表(十二)中的输出数据重新排序,使从其输出通道Dout0、Dout1、Dout2、Dout3输出的数据符合之型扫描要求。本例中读端数据选择模块DoutC将数据为D9赋值输出通道Dout0;读端数据选择模块DoutA将数据为D16赋值输出通道Dout1;读端数据选择模块DoutD将数据为D24赋值输出通道Dout2;读端数据选择模块DoutB将数据为D17赋值输出通道Dout3,以此类推,得到最终的输出数据调整表(十三):
表(十三)
CLK | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Dout0 | D0 | D9 | D10 | D18 | D33 | D5 | D27 | D56 | D28 | D15 | D43 | D51 | D23 | D52 | D46 | D61 |
Dout1 | D8 | D16 | D3 | D25 | D26 | D6 | 34 | D49 | D21 | D22 | D50 | D44 | D31 | D59 | D39 | D62 |
Dout2 | D1 | D24 | D4 | D32 | D19 | D13 | D41 | D42 | D14 | D29 | D57 | D37 | D38 | D60 | D47 | D55 |
Dout3 | D2 | D17 | D11 | D40 | D12 | D20 | D48 | D35 | D7 | D36 | D58 | D30 | D45 | D53 | D54 | D63 |
在进行读操作的过程中,同时允许对所述双端口RAM的下16个地址进行写操作。因此,当完成读操作后,在所述双端口RAM的各子块RA、RB、RC、RD的下16个不同地址中也同步完成写操作,即对所述双端口RAM的上16个地址、下16个地址进行乒乓操作,避免了冲突。同时,提高了芯片的相对性能,降低主频和功耗,且具有结构简单、延迟少、吞吐量大的特点。
进一步地,所述的一种四通道Zig-Zag扫描结构还可以为,主体结构采用32的倍数大于等于2的地址的双端口RAM,每个地址存储4个数据,双端口RAM一端为只写,其另一端为只读,以便可以对以8*8二维数组为格式输入的数据进行同步乒乓读写操作,从而进一步地提高了芯片的相对性能,吞吐量大的并行流水之型扫描能力。
由上述技术方案可见,与现有的之型扫描方式相比,本发明提出的一种四通道的之型扫描方法,并基于所述的四通道的之型扫描方法上还提出了一种四通道的之型扫描结构,通过一个时钟周期启动写有效信号,然后,通过对所述双端口RAM只写的一边的写端数据选择模块和写端地址选择模块的控制,将64个数据在16个时钟周期中分别写入到不同子块的上16个地址中,接着启动读写两端的乒乓控制有效信号,以便对所述双端口RAM只读的一边的读端地址选择模块和读端数据选择模块进行控制,完成8x8的二维数组数据转换成一维排列方式,产生符合需要的Zig-Zag扫描方式;同时,在所述双端口RAM上通过一个时钟周期启动读写两端的乒乓控制有效信号进行读操作,通过A0至A15依次读取上16个地址中的每个地址中的4个数据,同时允许对所述双端口RAM中的下16个地址进行写操作,这样读写地址访问的为不同的存储(Bank)空间,即对所述双端口RAM的上16个地址、下16个地址进行乒乓操作,避免了冲突。由此可见,每个时钟周期可以同时处理4个数据的之型扫描方法,还可以同步通过四通道的之型扫描结构,仅需18个CLK的延迟即可得到之型扫描的结果。因此,提高了芯片的相对性能,降低主频和功耗,且具有结构简单、延迟少、吞吐量大的特点。
本发明虽然以较佳实施例公开如上,但其并不是用来限定权利要求,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。
Claims (3)
1.一种四通道的之型扫描方法,所述之型扫描要求按照0至63的次序依次输出,其特征在于,包括如下步骤:
第一步:在双端口RAM只写的一边通过一个时钟周期启动写有效信号后,在后续16个时钟周期的每个时钟周期内,分别向4个输入通道输入4个连续的数据并按照逐行次序在数据地址分发模块中存储;
第二步:按照三个约束条件,使每个时钟周期输入的4个数据重新排列分发至4个不同子块RA、RB、RC、RD,并将每个时钟周期中的4个不同子块RA、RB、RC、RD同时分发至上16个地址的一个地址中,其中,所述上16个地址为由A0至A15依次分发,所述三个约束条件为:
约束条件一:每个时钟周期向4个输入通道中连续输入的4个数据分别只能写入4个子块中的一个,且所述4个数据的各子块不能重复的方式进行组合,即必须有1个RA、1个RB、1个RC和1个RD;
约束条件二:每个时钟周期要求从4个子块中输出的4个数据符合之型扫描要求,并且所述4个数据的各子块不能重复,即必须有1个RA、1个RB、1个RC和1个RD;
约束条件三:同时满足约束条件一和约束条件二时,选择4个子块重复多的组合;
第三步:再通过一个时钟周期启动读写两端的乒乓控制有效信号后,在所述双端口RAM只读的一边进行读操作,在后续16个时钟周期的每个时钟周期内,分别由A0至A15依次读取上16个地址中的每个地址中的4个数据,同时允许对所述双端口RAM的下16个地址进行写操作;
第四步:对4个不同子块的上16个地址读出的数据重新排序,使从其4个输出通道输出的数据符合之型扫描要求。
2.一种四通道的之型扫描方法,其特征在于,其存储方法包括如下步骤:
第一步:在双端口RAM只写的一边通过一个时钟周期启动写有效信号后,在后续16个时钟周期的每个时钟周期内,分别向4个输入通道输入4个连续的数据并按照逐行次序在数据地址分发模块中存储;
第二步:按照三个约束条件,使每个时钟周期输入的4个数据重新排列分发至4个不同子块RA、RB、RC、RD,并将每个时钟周期中的4个不同子块RA、RB、RC、RD同时分发至上16个地址的一个地址中,其中,所述上16个地址为由A0至A15依次分发,所述三个约束条件为:
约束条件一:每个时钟周期向4个输入通道中连续输入的4个数据分别只能写入4个子块中的一个,且所述4个数据的各子块不能重复的方式进行组合,即必须有1个RA、1个RB、1个RC和1个RD;
约束条件二:每个时钟周期要求从4个子块中输出的4个数据符合之型扫描要求,并且所述4个数据的各子块不能重复,即必须有1个RA、1个RB、1个RC和1个RD;
约束条件三:同时满足约束条件一和约束条件二时,选择4个子块重复多的组合。
3.根据权利要求2所述的四通道的之型扫描方法,其特征在于,其之型扫描要求按照0至63的次序依次读取的方法包括如下步骤:
第一步:通过一个时钟周期启动读写两端的乒乓控制有效信号后,在所述双端口RAM只读的一边进行读操作,在后续16个时钟周期的每个时钟周期内,分别由A0至A15依次读取上16个地址中的每个地址中的4个数据,同时允许对所述双端口RAM的下16个地址进行写操作;
第二步:对4个不同子块的上16个地址读出的数据重新排序,使从其4个输出通道输出的数据符合之型扫描要求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210042360.9A CN102595134B (zh) | 2012-02-23 | 2012-02-23 | 一种四通道的之型扫描方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210042360.9A CN102595134B (zh) | 2012-02-23 | 2012-02-23 | 一种四通道的之型扫描方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102595134A CN102595134A (zh) | 2012-07-18 |
CN102595134B true CN102595134B (zh) | 2014-06-11 |
Family
ID=46483288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210042360.9A Expired - Fee Related CN102595134B (zh) | 2012-02-23 | 2012-02-23 | 一种四通道的之型扫描方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102595134B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103581668A (zh) * | 2013-11-21 | 2014-02-12 | 杭州士兰微电子股份有限公司 | 一种四通道的之型扫描结构 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08153188A (ja) * | 1994-11-28 | 1996-06-11 | Oki Electric Ind Co Ltd | ジグザグスキャン回路 |
CN1162872A (zh) * | 1996-01-25 | 1997-10-22 | 三星电子株式会社 | 可变长编码及可变长译码方法和装置 |
JP3269186B2 (ja) * | 1993-06-10 | 2002-03-25 | カシオ計算機株式会社 | 画像符号化装置 |
CN101222634A (zh) * | 2008-01-25 | 2008-07-16 | 上海广电(集团)有限公司中央研究院 | 一种基于双缓存的Zig-Zag扫描装置及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3977087B2 (ja) * | 2001-02-13 | 2007-09-19 | キヤノン株式会社 | 画像符号化装置、方法及びプログラム |
-
2012
- 2012-02-23 CN CN201210042360.9A patent/CN102595134B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3269186B2 (ja) * | 1993-06-10 | 2002-03-25 | カシオ計算機株式会社 | 画像符号化装置 |
JPH08153188A (ja) * | 1994-11-28 | 1996-06-11 | Oki Electric Ind Co Ltd | ジグザグスキャン回路 |
JP3578497B2 (ja) * | 1994-11-28 | 2004-10-20 | 沖電気工業株式会社 | ジグザグスキャン回路 |
CN1162872A (zh) * | 1996-01-25 | 1997-10-22 | 三星电子株式会社 | 可变长编码及可变长译码方法和装置 |
CN101222634A (zh) * | 2008-01-25 | 2008-07-16 | 上海广电(集团)有限公司中央研究院 | 一种基于双缓存的Zig-Zag扫描装置及方法 |
Non-Patent Citations (2)
Title |
---|
AVS熵编码器的VLSI设计;徐龙;《计算机研究与发展》;20090531;第46卷(第5期);全文 * |
徐龙.AVS熵编码器的VLSI设计.《计算机研究与发展》.2009,第46卷(第5期), |
Also Published As
Publication number | Publication date |
---|---|
CN102595134A (zh) | 2012-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101226394B1 (ko) | 메모리 장치 | |
CN101212674B (zh) | 图像在存储器中的地址映射方法 | |
CN1105454C (zh) | 对多个连续接收的数据元素重新排序的装置和方法 | |
CN1306412C (zh) | 像素数据块生成装置及像素数据块生成方法 | |
EP2216994A2 (en) | System and method for image processing | |
TWI399648B (zh) | 用於讀取記憶體內的儲存元之方法及裝置 | |
CN101031052A (zh) | 图像在存储器中的地址映射方法 | |
CN101043595A (zh) | 储存与存取影像的相关方法以及储存n位数据的方法 | |
CN1905677A (zh) | 可变块大小运动补偿的数据缓存方法及其实现装置 | |
CN1589028A (zh) | 基于像素流水的帧内预测装置及预测方法 | |
CN102595134B (zh) | 一种四通道的之型扫描方法 | |
TWI412281B (zh) | A Method of Calculating Reverse Conversion of Low Complexity | |
CN101038666A (zh) | 一种静止图像缩放装置及其方法 | |
CN100444636C (zh) | 提高视频解码器中sdram总线效率的方法 | |
US8467624B2 (en) | Image processing apparatus, image processing circuit, and image processing method | |
CN104053011B (zh) | 应用于jpeg2000解码器中的二维离散小波逆变换器 | |
CN103581668A (zh) | 一种四通道的之型扫描结构 | |
WO2020107319A1 (zh) | 图像处理方法和设备,以及视频处理器 | |
CN1535020A (zh) | 视频编解码中变换系数块的扫描方法和装置 | |
CN1645928A (zh) | 用于压缩视频信号解码的图像存储方法 | |
CN1703094A (zh) | 1/4像素插值应用于1/2像素插值结果的图象插值装置和方法 | |
CN1728182A (zh) | 图像边缘过滤处理 | |
CN1874511A (zh) | 基于avs的视频硬件解码器的存储空间地址映射方法 | |
CN104270643A (zh) | 基于single-port SRAM的转置矩阵的地址映射算法 | |
KR101484101B1 (ko) | 동영상 변환 장치 |
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: 20140611 |