CN114449170B - 一种基于可编程芯片的实时图像处理系统 - Google Patents
一种基于可编程芯片的实时图像处理系统 Download PDFInfo
- Publication number
- CN114449170B CN114449170B CN202210108246.5A CN202210108246A CN114449170B CN 114449170 B CN114449170 B CN 114449170B CN 202210108246 A CN202210108246 A CN 202210108246A CN 114449170 B CN114449170 B CN 114449170B
- Authority
- CN
- China
- Prior art keywords
- ddr
- image
- ram
- target image
- control module
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 47
- 238000012937 correction Methods 0.000 claims abstract description 6
- 238000000034 method Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 description 7
- 238000013519 translation Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/80—Camera processing pipelines; Components thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/64—Circuits for processing colour signals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种基于可编程芯片的实时图像处理系统,实时图像处理系统的DDR写入控制模块将源图像的图像数据存入DDR中;坐标计算模块根据视频修正参数获得DDR读取控制模块从DDR中读取的目标图像的像素点的位置及RAM读取控制模块从RAM中读取的目标图像的像素点的地址;DDR读取控制模块通过读取方块区域的方式按顺序依次读取目标图像所需的图像数据;RAM读取控制模块根据其从RAM中读取目标图像的像素点的地址,通过读取方块行的方式读取目标图像所需的图像数据,能够实现在预设的延迟时间内,提高从内存读取到的数据的利用率,减少等待的时间和读取内存的次数,保证处理性能满足视频流的要求。
Description
技术领域
本发明涉及视频处理领域,特别涉及一种基于可编程芯片的实时图像处理系统。
背景技术
在基于可编程芯片的图像处理应用场景中,有时需要对单相机或多相机的图像进行实时处理,比如平移、旋转、缩放等。目前的常规做法是将一帧图像数据先全部缓存到DDR中,然后再进行处理,这种做法对于实时性要求不高的系统来说是简单且易实现的,但是,这种至少一帧以上的延迟,对于实时性要求较高的系统(如VR、显微镜等)来说,会造成至用户体验的明显下降。因此,对于实时性要求高的应用场景来说,如何降低延迟成为了一个重要的问题。
对于图像帧率要求高的系统(如VR、3D直播等),通常由于可编程芯片内部RAM容量有限,无法缓存大量数据,而现在的高清、4K视频等的数据量很大,使得在处理过程中,除了需要使用内部RAM,还需要片外存储器DDR作为缓存,特别是对于旋转处理,其相较于平移、缩放,更是需要大量的缓存空间。一般来说,片外存储器DDR是按行激活,按照burst方式读写的,这对于实时旋转处理来说是不利的。由于输出图像经过了旋转,导致了按照输出图像的像素顺序对应于原图的读取位置发生了变化,其中,行序号跳变的幅度取决于设置的旋转的角度。这样就会出现按行读取出来的数据很多成为使用不到的冗余,降低了读取效率,还会影响整体的处理帧率,而且随着旋转角度增大、图像尺寸增大以及像素增多,冗余就会越多,读取效率越低。
发明内容
本发明的目的在于提供一种基于可编程芯片的实时图像处理系统,针对高像素、高帧率视频,可以实现在预设的延迟时间内,完成图像平移、旋转、缩放等操作,并且在有旋转操作的情况下提高从内部RAM读取到的数据的利用率,减少等待的时间和读取内部RAM的次数,保证处理性能满足视频流的要求。
为了实现上述目的,本发明提供一种基于可编程芯片的实时图像处理系统,包括DDR写入控制模块、DDR读取控制模块、DDR、RAM、坐标计算模块和RAM读取控制模块,
所述DDR写入控制模块接收输入视频数据的源图像的图像数据,并将所述源图像的图像数据存入DDR中;
所述坐标计算模块在一帧所述源图像的图像数据在所述DDR中缓存达到预设的延迟行数时,根据视频修正参数获得所有方块区域的起始位置、目标图像的像素点的坐标与其在所述源图像中对应像素点的坐标之间的关系,从而获得所述DDR读取控制模块从所述DDR中读取所需的方块区域的起始位置、目标图像的像素点的位置及所述RAM读取控制模块从RAM中读取的目标图像的像素点的地址;
所述DDR读取控制模块根据其从所述DDR中读取所述目标图像的像素点的位置,并通过按顺序依次读取方块区域的方式读取目标图像所需的图像数据,并存入RAM中;以及
所述RAM读取控制模块根据其从所述RAM中读取目标图像的像素点的地址,并通过读取目标图像所在的方块行的方式读取目标图像所需的图像数据,并进行插值计算,以得到目标图像的图像数据。
可选的,所述RAM为可编程芯片的片内存储器,用于缓存所述源图像的图像数据;所述DDR为片外存储器,并用于存储当前数据。
进一步的,所述DDR中存入的每帧所述源图像的图像数据包括若干个方块区域,每块所述方块区域的大小为2m×2n,其中,m、n均为正整数。
进一步的,所述源图像的旋转角度的绝对值大于等于0,且小于等于所述方块区域的对角线与行方向之间的夹角α。
可选的,所述坐标计算模块用于从所述目标图像的第一行的第一个像素点开始,根据所述目标图像的像素点的坐标(Xdst,Ydst)逐一计算与其在所述源图像中对应像素点的坐标(Xs,Ys),若计算结果中的(Xs,Ys)的取值存在负数,则做出“本像素无效”的标记,并将其与(Xs,Ys)的取值为正数的坐标一并输出到所述DDR读取控制模块和RAM读取控制模块中;还用于计算所有所述方块区域的起始位置的纵坐标。
可选的,所述DDR读取控制模块读取所述目标图像所需的方块区域的方式为:
先根据所述DDR的数据位宽将所述方块区域的宽换算成burst的长度,并读出一个burst;
再根据所述DDR写入控制模块将源图像的图像数据写入所述DDR时规划的地址空间,将目标图像所需的图像数据在读取地址中的行序号加1,并再读一个burst,以读完一个方块区域。
可选的,所述目标图像的方块区域的起始位置的坐标确定方式为:
从每行的所述方块区域的第一个方块区域开始,每行的横坐标固定;
从第一行第一个方块区域开始,每个所述方块区域的起始位置的纵坐标通过所述坐标计算模块计算得出,并逐一计算出第一行所有所述方块区域的起始点坐标;
从第二行方块区域开始,每行的每个所述方块区域起始位置的纵坐标由前一行对应方块区域的起始位置纵坐标加2n得出;
最后一行第一个方块区域的起始位置的纵坐标通过所述坐标计算模块计算出,从而根据第一行所有方块区域的起始点坐标以及最后一行第一个方块区域的起始位置的纵坐标计算出所述目标图像的所有方块区域在所述源图像中的读取地址。
进一步的,所述RAM以整行的方块区域为单位写入,且写满RAM则以先进先出的方式轮流替换数据。
可选的,所述RAM能够容纳的所述方块行的数量小于所述DDR容纳的每帧图像数据的方块行的数量。
可选的,还包括计数器,所述计数器用于在所述RAM中写完1个方块行时计数加1,在所述RAM中读完1个方块行时计数减1。
可选的,所述RAM读取控制模块还包括插值计算模块,所述插值计算模块用于根据所述目标图像的像素点的坐标进行插值运算,并计算所得目标图像的像素点的像素值。
与现有技术相比,本发明至少具有以下有益效果:
本发明提供一种基于可编程芯片的实时图像处理系统,包括DDR写入控制模块、DDR读取控制模块、DDR、RAM、坐标计算模块和RAM读取控制模块,所述DDR写入控制模块用于接收输入视频数据的源图像的图像数据,并将所述源图像的图像数据存入DDR中;所述坐标计算模块用于在一帧所述源图像的图像数据在所述DDR中缓存达到预设的延迟行数时,根据视频修正参数获得目标图像的像素点的坐标与其在所述源图像中对应像素点的坐标之间的关系,从而获得所述DDR读取控制模块从所述DDR中读取所需的方块区域的起始位置、目标图像的像素点的位置及所述RAM读取控制模块从RAM中读取的目标图像的像素点的地址;所述DDR读取控制模块根据其从所述DDR中读取所述目标图像的像素点的位置,并通过读取目标图像所需的方块区域的方式读取目标图像所需的图像数据,并存入RAM中;以及所述RAM读取控制模块用于根据其从所述RAM中读取目标图像的像素点的地址,并通过读取目标图像所在的方块行的方式读取目标图像所需的图像数据,并进行插值计算,以得到目标图像的图像数据,能够实现在预设的延迟时间内,使用芯片内部RAM及DDR,针对高像素、高帧率视频完成图像平移、旋转、缩放等操作,提高从内存读取到的数据的利用率,减少等待的时间和读取内存的次数,保证处理性能满足视频流的要求。
附图说明
图1a为本发明一实施例的一种基于可编程芯片的实时图像处理系统的结构示意图;
图1b为本发明一实施例的可编程芯片为FPGA时的实时图像处理系统的结构示意图;
图2a-2c为本发明一实施例的图像在旋转前后的示意图;
图3a-3b为本发明一实施例图像数据在RAM写入和读出时的示意图。
具体实施方式
以下将对本发明的一种基于可编程芯片的实时图像处理系统作进一步的详细描述。下面将参照附图对本发明进行更详细的描述,其中表示了本发明的优选实施例,应该理解本领域技术人员可以修改在此描述的本发明而仍然实现本发明的有利效果。因此,下列描述应当被理解为对于本领域技术人员的广泛知道,而并不作为对本发明的限制。
为了清楚,不描述实际实施例的全部特征。在下列描述中,不详细描述公知的功能和结构,因为它们会使本发明由于不必要的细节而混乱。应当认为在任何实际实施例的开发中,必须做出大量实施细节以实现开发者的特定目标,例如按照有关系统或有关商业的限制,由一个实施例改变为另一个实施例。另外,应当认为这种开发工作可能是复杂和耗费时间的,但是对于本领域技术人员来说仅仅是常规工作。
为使本发明的目的、特征更明显易懂,下面结合附图对本发明的具体实施方式作进一步的说明。需说明的是,附图均采用非常简化的形式且均使用非精准的比率,仅用以方便、明晰地辅助说明本发明实施例的目的。
图1a为本实施例的一种基于可编程芯片的实时图像处理系统的结构示意图。图1b为本实施例的可编程芯片为FPGA时的实时图像处理系统的结构示意图。如图1a-1b所示,本实施例提供一种基于可编程芯片的实时图像处理系统,所述可编程芯片例如为FPGA,所述实时图像处理系统用于对源图像进行缩放、旋转和平移等处理以得到目标图像,并输出。在本实施例中,所述实时图像处理系统可以外接SDI相机和SDI显示器,并对SDI格式的视频数据进行处理,且输入实时图像处理系统的SDI格式的视频数据为1路1920x1080的视频信号,输出为1路1920x1080的视频信号。本实施例基于Xilinx Ultrascale+的平台,并采用Xilinx的ZCU106开发板。其中,可编程芯片采用Xilinx的XCZU7EV,所述包括PL部分和PS部分(即FPGA和ARM部分);qpsi Flash采用Micron的MT25QU512,Flash作为实时图像处理系统的程序存储器;PL部分连接的DDR采用Micron的MT40A256M16GE-075E;PL部分接入的时钟通过SI570提供主时钟信号,所述实时图像处理系统采用XILINX SDI IP,所述视频数据的输入端例如是采用SDI-RX IP,所述视频数据的输出端例如是采用SDI-TX IP。
输入设备发送SDI视频信号到所述实时图像处理系统的视频数据的输入端,本实施例的系统板上的SDI接口电路接入可编程芯片,通过SDI-RX IP转换为AXI-Stream数据流,视频数据的输出端将经过所述实时图像处理系统处理所得到的目标图像的图像数据通过SDI-TX IP转化为SDI信号,发送到与PL部分连接的SDI接口。可编辑芯片将SDI-RX IP转换得到的AXI-Stream数据流的时钟、的编码格式均进行了格式转化以使得时钟、的编码格式统一,例如将时钟频率统一为300M,将编码格式转换为统一的色彩空间(如RGB)。
所述实时图像处理系统包括DDR写入控制模块11、DDR读取控制模块12、DDR20、RAM30、坐标计算模块40和RAM读取控制模块50。
所述DDR写入控制模块11用于接收输入视频数据的源图像的图像数据,并将所述源图像的图像数据存入DDR20中。详细的,所述DDR写入控制模块11将所述源图像的图像数据存入DDR20时,需按照行顺序逐一图像数据的像素点存入。
图2a-2c为本实施例的图像在旋转前后的示意图。如图2a-2c所示,所述DDR20为片外存储器,DDR20作为主存储器,并用于缓存源图像1的图像数据。在预设的延迟时间后,所述DDR读取控制模块12从所述DDR中读出图像数据,因此事先将预设的延迟时间换算得到延迟行数p。以在DDR20中存储像素为1920x1080,且像素大小为4Byte的一帧图像数据为例:一帧图像数据的每个像素点的像素值均占用4个像素内部Byte地址,使得DDR20中每个地址中的[bit1:bit0]表示像素内部Byte地址;每行1920个像素点在DDR20的内部空间中占用了2048个像素点所需的空间,使得DDR20中每个地址中的[bit12:bit2]表示像素点所在的列序号;每帧图像数据在DDR20的内部空间中占用了2048行像素点所需的空间,使得DDR20中每个地址中的[bit23:bit13]表示像素点所在的行序号。
当所述DDR写入控制模块11向DDR20写入的行数达到延迟行数p后,所述DDR读取控制模块开始从DDR20中读取图像数据。延迟行数p要保证读RAM时,里面有至少已写完一个方块行的数据。在本实施例中,将所述DDR20中的每帧源图像1的图像数据划分为若干个方块区域1a,每块方块区域1a的大小为2m×2n,其中,所述DDR20以方块区域1a为单位,每个方块区域1a的长、宽均是2的幂数,为了方便硬件处理,例如,m取值为6,n取值为5,则每个方块区域1a设定为64×32;需要说明的是,源图像的旋转角度的绝对值大于等于0,且小于等于所述方块区域的对角线与行方向之间的夹角α(如图2a所示)。
在所述DDR读取控制模块12从所述DDR20中读取目标图像2所需的图像数据时,为了可以快速通过所述DDR20的地址对应源图像1的图像数据中的像素点的坐标,各像素点在DDR20中的存储地址做如下处理:为了便于所述DDR读取控制模块12从所述DDR20中读取图像数据以及更容易从行列序号获得源图像1的像素点在DDR20中的地址,所述DDR20的内空间按阵列分布,且一个完整帧的每行、每列像素点在DDR20中占用的内空间都以2的幂数为单位,这就是DDR20中允许一定的冗余空间存在。
所述坐标计算模块40用于在一帧所述源图像在所述DDR20中缓存达到预设的延迟行数p时,根据视频修正参数获得所有方块区域的起始位置、目标图像的像素点的坐标与其在所述源图像中对应像素点的坐标之间的关系,并获得所述DDR读取控制模块12从所述DDR20中读取所需的方块区域的起始位置、目标图像的像素点的位置(即目标图像的像素点的绝对位置)及RAM读取控制模块50从RAM30中读取的目标图像的像素点的地址(即目标图像的像素点的相对位置)。
详细的,所述坐标计算模块40的输入根据视频修正参数通过一系列针对所述源图像的缩放、旋转和平移操作的仿射变换的计算得来,最终输入一个参数矩阵(即复合仿射变换矩阵),再根据参数矩阵和目标图像的像素点的坐标获得目标图像的像素点的坐标与其在所述源图像中对应像素点的坐标之间的关系,具体的,从所述目标图像2从第一行的第一个像素点(0,0)开始,根据目标图像2的像素点的坐标(Xdst,Ydst)逐一计算与其在所述源图像中对应像素点的坐标(Xs,Ys),计算结果中的Xs、Ys的取值可以为负数(即在需要被裁剪的范围内),此时该坐标超过了源图像的范围,则给出一个“本像素无效”的标记,并将其与Xs、Ys的取值为正数的坐标(即在需要被裁剪的范围外)一并输出到所述DDR读取控制模块12、RAM读取控制模块50中;还用于计算所有所述方块区域的起始位置的纵坐标。
在本实施例中,所述目标图像2的像素点的坐标与其在所述源图像1中对应像素点的坐标之间的关系可以参考申请号为:202110688723.5-一种基于FPGA的实时图像处理方法中建立目标图像的像素点的坐标与其在所述源图像中对应的像素点Q的坐标之间的关系的方法实现。
请参阅图2a-2c,所述DDR读取控制模块12用于在所述DDR写入控制模块11向所述DDR20中写入的行数达到p后,开始执行读操作,并按顺序(例如从上到下)依次将读取的目标图像所需的图像数据的读入RAM30,这样就可以保证目标图像输出的低延迟性。也就是说,所述DDR读取控制模块12从所述DDR20中读取方块行时,所述目标图像的第一个方块行对应于源图像的所有方块区域需要已经写入DDR20中。详细的,由于输出的目标图像需要经过旋转处理,所述DDR读取控制模块12读取目标图像所需的方块区域1a的方式为先从左至右,再从上至下,依次读取,并按行合并后存入RAM30中。
所述DDR读取控制模块12读取目标图像的每个方块区域1a的方式为:先根据DDR20的数据位宽将方块区域1a的宽2m换算成burst的长度(设DDR20数据位宽为2k,则burst长度为2k-m),并读出一个burst;再根据DDR写入控制模块11的写入DDR20时规划的地址空间,将在源图像中的读取地址中的行序号加1,并再读一个burst,以此类推,读完2n个burst,即读完一个方块区域。目标图像的每个方块区域1a的起始位置的y坐标读取时从图2a-2b中A点开始,并跟随图像倾斜的趋势变化,目的是尽量减少冗余数据;目标图像的每个方块区域1a的起始位置的x坐标的不同行之间上下对齐,并且为了处理过程的统一,允许存在超出源图像范围的无效区域,如图2a-2b中源图像1的图像数据之外的目标图像的方块区域1a。
其中,目标图像的方块区域1a的起始位置坐标的确定方式为:从方块区域1a的第一个方块区域开始,每行的x坐标固定,进一步的,从每行的所述方块区域的第一个方块区域开始,即从0坐标处开始,每隔2m即为一个下一个方块区域1a的起始位置,直到一行结束;如图2a-2b中,第一行第一个方块区域从A点开始,每个方块区域的起始位置的y坐标通过所述坐标计算模块40计算得出,并逐一计算出第一行所有方块区域1a的起始点坐标。A点的计算方式为:Xs=0,Ydst=0的情况下求Ys;然后将Xs逐个加2m,求Ys,即为第一行后续方块区域起始位置的y坐标;从第二行方块区域开始,每行的每个方块区域起始位置的纵坐标由前一行对应方块区域的起始位置纵坐标加2n得出。最后一行第一个方块区域1a的起始位置y坐标也可通过所述坐标计算模块40计算得出,以确定需要读取的方块区域的行数,即Xs=0,Ydst=height的情况下求Ys,其中height为图像高度-1,求得的Ys即为每帧目标图像的最后一行的第一个方块的起始y坐标,则该帧目标图像的所有方块区域1a在源图像中的读取地址就可以全部计算出来。
如图3a-3b所示,所述RAM30为可编程芯片的片内存储器(例如BRAM、URAM等),其作为可编程芯片的内部缓存,并用于存储当前数据,从而使得DDR20和RAM30形成两级的存储结构。所述RAM30以整行的方块区域为单位写入,写满RAM30则以先进先出的方式轮流替换数据,例如以L1、L2……Ln,每个整行的方块区域包含的图像数据定义为方块行。所述RAM能够容纳的方块行的数量小于所述DDR容纳的方块行的数量。其中,写入所述RAM30的地址的方法跟写入DDR20的地址的方法类似,每行占用空间为2的幂数,以便于通过地址分辨目标图像的像素点的坐标。所述DDR读取控制模块12从DDR20中读取包含所需目标图像的像素点的图像数据并在RAM30中缓存写入,以及RAM读取控制模块50的读取过程,均受限于RAM30的容量,需要以方块行为单位,控制RAM30读写过程。若RAM30能容纳a个方块行,则设置一个计数器,写完1个方块行,计数器加1;“读完”一个方块行,计数器减1。计数器值大于1时,允许读;计数器值小于a时,允许写。本实施例以URAM作为本系统的缓存资源,所述URAM的总容量为6个方块行,设置一个计数器,写完1个方块行,计数器加1;“读完”一个方块行,计数器减1。计数器值大于1时,允许读;计数器值小于5时,允许写。需要说明的是,“读完”是指把本方块行中所需的数据读完,并非所有的数据读完。同时,需要注意的是,当有旋转时,URAM中每一个方块行对应到源图像的图像数据的区域中的形状呈现锯齿状,而本方块行读出的顺序是按照目标图像逐行读取,对应到源图像是斜向方向(请参考图2a-2b),所以当计数器正好等于1时,读操作同一行的目标图像的像素点的位置可能在相邻方块行中发生变化,所以允许读的逻辑是计数值大于1,也就是URAM至少存在两个完整的方块行数据。
所述RAM读取控制模块50用于从RAM中读出目标图像所需的图像数据,并进行插值计算。所述RAM读取控制模块50还包括插值计算模块,以对读出的目标图像所需的图像数据进行插值计算。
具体的转换方法为:每个方块区域的起始位置的x坐标与Xs相同,表示横向位置;每个方块区域的起始位置的y坐标分为低位和高位两个区域来转换,其中,y坐标的低位等于Ys中低位,表示在RAM30中某个方块行内部的纵向相对位置。例如,方块行中的像素行数为2n,则Ys中整数部分的低n位则为y坐标的低n位;y坐标的高位表示所在方块行在RAM30中的序号,具体的,如前述,由于同一行的目标图像的像素点的位置可能在相邻方块行中变化,故而设置一个“当前行”作为参考行序号,若可供RAM读取控制模块50使用的RAM能容纳a个方块行,则“当前行”进行0~a-1的循环变换,且变换的时机由(Xs,Ys)而定,即如果某一行的Xs(整数部分)为0时,对应的Ys高位发生了变化,记录下这个值,并将“当前行”加1;如果此时“当前行”等于a-1,则“当前行”变为0。
所述y坐标的高位由Ys的高位和前述“当前行”来确定,即如果Ys的高位与前述记录值相同,则y坐标的高位等于“当前行”的值;如果Ys的高位大于记录值,则y坐标的高位等于“当前行”的值加1;如果Ys的高位小于记录值,则y坐标的高位等于“当前行”的值减1。需要说明的是,所有的目标图像的“坐标”都允许包含小数,也就是说,目标图像的坐标可能与源图像的某像素点重合,也可能落于2个或4个像素之间的位置。根据需要,将上述计算所得的RAM30读坐标,转换为实际读取地址,从RAM30中读取数据,并进行插值计算。例如,读取坐标位置周围4个像素点的像素值,即若该坐标的整数部分为(x,y),则四个像素的地址分别为(x,y)、(x,y+1)、(x+1,y)、(x+1,y+1)后续做双线性插值运算等等。
由于目标图像的像素点的坐标是根据输出图像的坐标顺序依次算出,所以此处算出的RAM30读取地址读出的图像数据,则为依次输出像素需要的图像数据。
所述插值计算模块用于根据前述计算所得目标图像的像素点的坐标(Xs,Ys)的小数部分,计算上述4个像素点的像素值对于目标图像的像素点的权重,再根据目标图像的像素点的权重依次进行插值运算,并计算所得即为目标图像的像素点的像素值。
综上所述,本发明提供一种基于可编程芯片的实时图像处理系统,能够实现在预设的延迟时间内,使用芯片内部RAM及DDR,针对高像素、高帧率视频完成图像平移、旋转、缩放等操作,并提高从内存读取到的数据的利用率,减少等待的时间和读取内存的次数,保证处理性能满足视频流的要求。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (10)
1.一种基于可编程芯片的实时图像处理系统,其特征在于,包括DDR写入控制模块、DDR读取控制模块、DDR、RAM、坐标计算模块和RAM读取控制模块,
所述DDR写入控制模块接收输入视频数据的源图像的图像数据,并将所述源图像的图像数据存入DDR中;
所述坐标计算模块在一帧所述源图像的图像数据在所述DDR中缓存达到预设的延迟行数时,根据视频修正参数获得所有方块区域的起始位置、目标图像的像素点的坐标与其在所述源图像中对应像素点的坐标之间的关系,从而获得所述DDR读取控制模块从所述DDR中读取所需的方块区域的起始位置、目标图像的像素点的位置及所述RAM读取控制模块从RAM中读取的目标图像的像素点的地址;
所述DDR读取控制模块根据其从所述DDR中读取所述目标图像的像素点的位置,并通过按顺序依次读取方块区域的方式读取目标图像所需的图像数据,并存入RAM中;以及
所述RAM读取控制模块根据其从所述RAM中读取目标图像的像素点的地址,并通过读取目标图像所在的方块行的方式读取目标图像所需的图像数据,并进行插值计算,以得到目标图像的图像数据;
其中,所述目标图像的方块区域的起始位置的坐标确定方式为:
从每行的所述方块区域的第一个方块区域开始,每行的横坐标固定;
从第一行第一个方块区域开始,每个所述方块区域的起始位置的纵坐标通过所述坐标计算模块计算得出,并逐一计算出第一行所有所述方块区域的起始点坐标;
从第二行方块区域开始,每行的每个所述方块区域起始位置的纵坐标由前一行对应方块区域的起始位置纵坐标加2^n得出;
最后一行第一个方块区域的起始位置的纵坐标通过所述坐标计算模块计算出,从而根据第一行所有方块区域的起始点坐标以及最后一行第一个方块区域的起始位置的纵坐标计算出所述目标图像的所有方块区域在所述源图像中的读取地址。
2.如权利要求1所述的基于可编程芯片的实时图像处理系统,其特征在于,所述RAM为可编程芯片的片内存储器,用于缓存所述源图像的图像数据;所述DDR为片外存储器,并用于存储当前数据。
3.如权利要求2所述的基于可编程芯片的实时图像处理系统,其特征在于,所述DDR中存入的每帧所述源图像的图像数据包括若干个方块区域,每块所述方块区域的大小为2m×2n,其中,m、n均为正整数。
4.如权利要求3所述的基于可编程芯片的实时图像处理系统,其特征在于,所述源图像的旋转角度的绝对值大于等于0,且小于等于所述方块区域的对角线与行方向之间的夹角α。
5.如权利要求1所述的基于可编程芯片的实时图像处理系统,其特征在于,所述坐标计算模块用于从所述目标图像的第一行的第一个像素点开始,根据所述目标图像的像素点的坐标(Xdst,Ydst)逐一计算与其在所述源图像中对应像素点的坐标(Xs,Ys),若计算结果中的(Xs,Ys)的取值存在负数,则做出“本像素无效”的标记,并将其与(Xs,Ys)的取值为正数的坐标一并输出到所述DDR读取控制模块和RAM读取控制模块中;还用于计算所有所述方块区域的起始位置的纵坐标。
6.如权利要求1所述的基于可编程芯片的实时图像处理系统,其特征在于,所述DDR读取控制模块读取所述目标图像所需的方块区域的方式为:
先根据所述DDR的数据位宽将所述方块区域的宽换算成burst的长度,并读出一个burst;
再根据所述DDR写入控制模块将源图像的图像数据写入所述DDR时规划的地址空间,将目标图像所需的图像数据在读取地址中的行序号加1,并再读一个burst,以读完一个方块区域。
7.如权利要求2所述的基于可编程芯片的实时图像处理系统,其特征在于,所述RAM以整行的方块区域为单位写入,且写满RAM则以先进先出的方式轮流替换数据。
8.如权利要求1所述的基于可编程芯片的实时图像处理系统,其特征在于,所述RAM能够容纳的所述方块行的数量小于所述DDR容纳的每帧图像数据的方块行的数量。
9.如权利要求1所述的基于可编程芯片的实时图像处理系统,其特征在于,还包括计数器,所述计数器用于在所述RAM中写完1个方块行时计数加1,在所述RAM中读完1个方块行时计数减1。
10.如权利要求1所述的基于可编程芯片的实时图像处理系统,其特征在于,所述RAM读取控制模块还包括插值计算模块,所述插值计算模块用于根据所述目标图像的像素点的坐标进行插值运算,并计算所得目标图像的像素点的像素值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210108246.5A CN114449170B (zh) | 2022-01-28 | 2022-01-28 | 一种基于可编程芯片的实时图像处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210108246.5A CN114449170B (zh) | 2022-01-28 | 2022-01-28 | 一种基于可编程芯片的实时图像处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114449170A CN114449170A (zh) | 2022-05-06 |
CN114449170B true CN114449170B (zh) | 2024-02-13 |
Family
ID=81372262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210108246.5A Active CN114449170B (zh) | 2022-01-28 | 2022-01-28 | 一种基于可编程芯片的实时图像处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114449170B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428725A (en) * | 1989-06-14 | 1995-06-27 | Hitachi, Ltd. | System for performing coordinate transformation of source image data |
CN109040755A (zh) * | 2018-09-17 | 2018-12-18 | 珠海亿智电子科技有限公司 | 一种适用于视频编码的图像前处理装置 |
CN110958362A (zh) * | 2019-11-27 | 2020-04-03 | 湖南海森格诺信息技术有限公司 | 基于分块查表的图像校正系统及其方法 |
CN111369446A (zh) * | 2018-12-26 | 2020-07-03 | 杭州海康威视数字技术股份有限公司 | 一种图像旋转方法及装置 |
CN112508793A (zh) * | 2020-12-22 | 2021-03-16 | 深圳开立生物医疗科技股份有限公司 | 一种图像缩放方法、装置及电子设备和存储介质 |
CN113298703A (zh) * | 2021-06-25 | 2021-08-24 | 北京爱芯科技有限公司 | 一种图像处理方法、装置、电子设备和存储介质 |
CN113298695A (zh) * | 2021-06-25 | 2021-08-24 | 北京爱芯科技有限公司 | 一种图像处理组件和芯片、图像处理方法和存储介质 |
CN113421184A (zh) * | 2021-06-21 | 2021-09-21 | 上海爱观视觉科技有限公司 | 一种基于fpga的实时图像处理方法 |
-
2022
- 2022-01-28 CN CN202210108246.5A patent/CN114449170B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428725A (en) * | 1989-06-14 | 1995-06-27 | Hitachi, Ltd. | System for performing coordinate transformation of source image data |
CN109040755A (zh) * | 2018-09-17 | 2018-12-18 | 珠海亿智电子科技有限公司 | 一种适用于视频编码的图像前处理装置 |
CN111369446A (zh) * | 2018-12-26 | 2020-07-03 | 杭州海康威视数字技术股份有限公司 | 一种图像旋转方法及装置 |
CN110958362A (zh) * | 2019-11-27 | 2020-04-03 | 湖南海森格诺信息技术有限公司 | 基于分块查表的图像校正系统及其方法 |
CN112508793A (zh) * | 2020-12-22 | 2021-03-16 | 深圳开立生物医疗科技股份有限公司 | 一种图像缩放方法、装置及电子设备和存储介质 |
CN113421184A (zh) * | 2021-06-21 | 2021-09-21 | 上海爱观视觉科技有限公司 | 一种基于fpga的实时图像处理方法 |
CN113298703A (zh) * | 2021-06-25 | 2021-08-24 | 北京爱芯科技有限公司 | 一种图像处理方法、装置、电子设备和存储介质 |
CN113298695A (zh) * | 2021-06-25 | 2021-08-24 | 北京爱芯科技有限公司 | 一种图像处理组件和芯片、图像处理方法和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114449170A (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10068309B2 (en) | Interface apparatus and method of operating an interface apparatus | |
EP2446413B1 (en) | Apparatus and method for displaying a warped version of a source image | |
US9942510B2 (en) | Method and device for processing input image data | |
CN108564551B (zh) | 鱼眼图像处理方法及鱼眼图像处理装置 | |
CN110958362A (zh) | 基于分块查表的图像校正系统及其方法 | |
CN1280734C (zh) | 用于分段存取控制的控制装置和方法和具有该控制装置的视频存储器装置 | |
CN108492243B (zh) | 一种基于块处理的图像旋转装置、系统和方法 | |
US20160218739A1 (en) | Data access methods and data access devices utilizing the same | |
CN114375459A (zh) | 图像去扭曲系统 | |
CN111861883A (zh) | 基于同步积分surf算法的多路视频拼接方法 | |
JP5359569B2 (ja) | メモリのアクセス方法 | |
CN105577985B (zh) | 一种数字图像处理系统 | |
CN114449170B (zh) | 一种基于可编程芯片的实时图像处理系统 | |
US7525577B2 (en) | Image processing apparatus and image processing method | |
CN106355545A (zh) | 一种数字图像几何变换的处理方法及装置 | |
US20110157465A1 (en) | Look up table update method | |
TWI545961B (zh) | 固定壓縮倍率的影像壓縮方法、影像解壓縮方法及其電子裝置 | |
CN113900813B (zh) | 一种基于双口ram的盲元填充方法、系统及装置 | |
US20130127887A1 (en) | Method for storing interpolation data | |
US11189006B2 (en) | Managing data for transportation | |
JP2020160828A (ja) | 2次元画像をアフィン変換するための画像データ処理装置 | |
KR100353894B1 (ko) | 제이펙 화상 데이터 버퍼링을 위한 메모리 구조 및 주소어드레스 방법 | |
JP5614490B2 (ja) | メモリアクセス装置 | |
CN112966813B (zh) | 一种卷积神经网络输入层装置及其工作方法 | |
US20230307036A1 (en) | Storage and Accessing Methods for Parameters in Streaming AI Accelerator Chip |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |