CN113377049B - 基于fpga低延迟视频图像缓存的ddr控制方法 - Google Patents
基于fpga低延迟视频图像缓存的ddr控制方法 Download PDFInfo
- Publication number
- CN113377049B CN113377049B CN202110653148.5A CN202110653148A CN113377049B CN 113377049 B CN113377049 B CN 113377049B CN 202110653148 A CN202110653148 A CN 202110653148A CN 113377049 B CN113377049 B CN 113377049B
- Authority
- CN
- China
- Prior art keywords
- image
- ddr
- address
- cache
- frame
- 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
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- 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
- H04N7/00—Television systems
- H04N7/01—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
- H04N7/0105—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level using a storage device with different write and read speed
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24215—Scada supervisory control and data acquisition
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Automation & Control Theory (AREA)
- Theoretical Computer Science (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明属于图像处理技术领域,具体涉及一种基于FPGA低延迟视频图像缓存的DDR控制方法。为了降低图像写入和读出的延迟时间,同时减小DDR的资源开销,本发明对每一个输入和输出的视频通道仅需要设计两个缓存区,减小了每个视频通道所需要的DDR缓存区的容量,提升了系统的多通道和高带宽的能力。本发明监控写入和读出帧率,计算其比值,同时统计实际一帧图像大小并计算出读写“竞争”的地址阈值,设计了自适应写入和读出缓存切换的控制方法,有效的降低了系统的数据延迟,提升了系统的工作性能。
Description
技术领域
本发明属于图像处理技术领域,具体涉及一种基于FPGA低延迟视频图像缓存的DDR控制方法。
背景技术
图像处理和视频传输系统中输入的视频帧率、算法处理的帧率以及视频输出的帧率都可能不同,因此需要对输入视频进行缓存,并根据视频输入的频率、算法处理的帧率以及视频输出的帧率对DDR进行整帧图像的写入和读出,同时尽量减小数据延迟并且避免读出和写入帧率不同引起的“竞争”问题。
传统的方法是多缓存区循环读写的方式,一般分配缓存的数量大于等于3个,以4个缓存举例:图像写入时,将第一帧图像先写入缓存1,第二帧写入缓存2,第三帧写入缓存3,第四帧写入缓存4,后面的图像继续循环覆盖写入缓存1到缓存4;图像读出时,首先判断缓存1是否正在被写入图像,如果写入图像的指针指向其它缓存,说明缓存1当前没有写入操作,则开始读取缓存1;读完缓存1后,再判断缓存2是否正在被写入图像,如果写入图像的指针指向其它缓存,则开始读取缓存2,如果写入图像的指针指向缓存2,则重复读取缓存1;同理读取缓存3和缓存4,读取完缓存4以后读取图像指针重新指向缓存1,重复上述的判断,循环执行上述读取操作。
传统的方法会占用多个缓存区,浪费DDR的空间,同时仅在读取图像时判断预读取的缓存区是否存在被写入的情况,导致图像处理系统和视频传输系统的数据延迟较大。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何提出一种低延迟图像缓存的DDR控制方法。
(二)技术方案
为解决上述技术问题,本发明提供一种基于FPGA低延迟视频图像缓存的DDR控制方法,所述方法包括如下步骤:
步骤1:根据主流视频最大一帧图像大小设定缓存区的大小;
步骤2:对每一路输入输出视频通道按设定的缓存区大小分配两个缓存区;根据两个缓存区的大小对应DDR用户地址总线的低若干位,地址总线剩余的高若干位的不同值则表示不同的视频通道;
步骤3:利用FPGA参考时钟监控图像写入的帧频和图像读出的帧频;
步骤4:计算图像写入帧频和图像读出帧率的比值得到读写帧率比;
步骤5:利用输入视频的像素时钟和数据有效信号计数得到一帧图像的分辨率,再乘以一个像素占DDR的字节数得到一帧图像大小;
步骤6:通过对一帧图像大小和读写帧率比做乘法或者除法运算,再对计算结果加上若干偏移量得到DDR读写竞争的地址阈值;
步骤7:如果读出图像的帧率比写入图像的帧率高,则在读出前判断当前写入的缓存区DDR地址是否大于等于DDR读写竞争的地址阈值;如果是,则从该缓存区将图像读出;反之,则从另一个缓存区将图像读出;
步骤8:如果写入图像的帧率比读取的图像帧率高,则在写入前判断当前读取的缓存区DDR地址是否大于等于DDR读写竞争的地址阈值:若果是,则将图像写入该缓存区;反之,则将图像写入另一个缓存区。
其中,所述步骤1中,主流视频图像的分辨率不超过4096x4096,数据位宽不超过4个字节,即一帧的图像大小不超过67108864字节,则缓存区的大小为67108864字节的内存空间。
其中,所述步骤2中,对每一路输入视频分配两块67108864字节的内存空间,定义为缓存A和缓存B;
在DDR物理位宽为一个字节,用户寻址位宽为30位,表示为[29:0],0为最低位,29为最高位第30位,的情况下:
缓存A对应的用户地址空间二进制码表示为从“0000000000_0000000000_0000000000”到“0000111111_1111111111_1111111111”;
缓存B对应的用户地址空间二进制码表示为从“0001000000_0000000000_0000000000”到“0001111111_1111111111_1111111111”;
其中[29:27]表示第30位到第28位,二进制码从“000”到“111”分别对应阿拉伯数字的“0”到“7”,即8个不同的数字,每个数字对应不同视频通道的输入输出缓存,即可以表示8个独立视频缓存通道。
其中,所述步骤3中,基于FPGA参考时钟对图像写入和图像读出的帧同步信号以下降沿触发对帧计数器锁存并复位,复位后开始计数,锁定值为一个帧周期的计数值,图像写入帧频锁存值定义为Si,图像读出帧频锁存值定义为So。
其中,所述步骤4中,比较Si和So的大小,若Si大于等于So,则说明图像写入帧频小于等于图像读出帧频,定义In_Out_rate信号为“01”,则So除以Si,结果保留两位小数,定义为Ro;反之,则说明图像写入帧频大于图像读出帧频,定义In_Out_rate信号为“10”,则So除以Si,结果保留两位小数,定义为Ri。
其中,所述步骤5中,基于输入视频的像素时钟,在帧同步信号下降沿触发时对分辨率计数器锁存并复位,复位后开始对一帧图像的视频有效信号进行累加计数,锁存得到的分辨率计数器的值为一帧图像的实际分辨率,再乘以4则为一帧图像在DDR内存中占用的实际大小,定义为I。
其中,所述步骤6中,当In_Out_rate信号为“01”时,I除以Ro取商,对商加1得到DDR读写竞争的地址阈值,定义为Do。
其中,所述步骤7中,当In_Out_rate信号为“01”时,输入视频第一帧图像先写缓存A,第二帧图像写入缓存B,后续图像继续ABAB缓存循环写入;
读出图像时,读出图像的DDR地址总线第30位到第28位和写入图像的DDR地址保持一致,利用输出视频帧同步信号下降沿时刻判断输入图像目前正在写入哪个缓存区:
若写入图像的DDR地址总线第27位为“0”,则代表正在写入缓存A,再判断当前写入地址是否大于等于地址阈值Do,若果是,则从该缓存区将图像读出;反之,读出地址的第27位按写入图像的DDR地址总线的第27位“取反”后从另一个缓存读出图像;
若写入图像的DDR地址总线第27位为“1”,代表正在写入缓存B,再判断当前写入地址是否大于等于地址阈值Do,若果是,则从该缓存区将图像读出;反之,读出地址的第27位按写入图像的DDR地址总线的第27位“取反”后从另一个缓存读出图像。
其中,所述步骤6中,当In_Out_rate信号为“10”时,I除以Ri取商,对商加1得到DDR读写“竞争”的地址阈值,定义为Di。
其中,所述步骤8中,当In_Out_rate信号为“10”时,输出视频第一帧图像先读出缓存A,第二帧图像读出缓存B,后续图像继续ABAB缓存循环读出;
读出图像时,读出图像的DDR地址总线第30位到第28位和写入图像的DDR地址保持一致,利用输出视频帧同步信号下降沿时刻判断输入图像目前正在写入哪个缓存区:
若读出图像的DDR地址总线第27位为“0”,则代表正在读出缓存A,再判断当前读出地址是否大于等于地址阈值Di,若果是,则将图像写入该缓存区;反之,写入地址的第27位按读出图像的DDR地址总线的第27位“取反”后将图像写入另一个缓存;
若读出图像的DDR地址总线第27位为“1”,代表正在读出缓存B,再判断当前读出地址是否大于等于地址阈值Di,若果是,则将图像写入该缓存区;反之,写入地址的第27位按读出图像的DDR地址总线的第27位“取反”后将图像写入另一个缓存。
(三)有益效果
与现有技术相比较,本发明提供一种基于现场可编程门阵列FPGA(FieldProgrammable Gate Array)视频图像乒乓帧缓存的双倍数据率同步动态随机存储器DDR(Double Data Rate Synchronus Dynamic Random Access Memory)控制方法,适用于图像处理或者视频传输,确保整帧图像完整地低延迟写入和读出。
为了降低图像写入和读出的延迟时间,同时减小DDR的资源开销,本发明对每一路视频通道在DDR仅设计两个缓存区A和B,同时监控图像写入的帧频Si和图像读出的帧频So,并自适应控制DDR的写入和读出缓存切换,在避免读出和写入帧率不同引起的“竞争”的同时尽量减小图像因缓存带来的数据延迟。
本发明具备如下有益效果:
在图像处理系统和图象传输系统中,一般会涉及多个通道的视频输入和输出,本发明对每一个输入和输出的视频通道仅需要设计两个缓存区,减小了每个视频通道所需要的DDR缓存区的容量,提升了系统的多通道和高带宽的能力。本发明监控写入和读出帧率,计算其比值,同时统计实际一帧图像大小并计算出读写“竞争”的地址阈值,设计了自适应写入和读出缓存切换的控制方法,有效的降低了系统的数据延迟,提升了系统的工作性能。
附图说明
图1为基于FPGA的视频图像DDR缓存流程图。
图2为DDR读写控制状态转移图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
为解决上述技术问题,本发明提供一种基于FPGA低延迟视频图像缓存的DDR控制方法,如图1-图2所示,所述方法包括如下步骤:
步骤1:根据主流视频最大一帧图像大小设定缓存区的大小;
步骤2:对每一路输入输出视频通道按设定的缓存区大小分配两个缓存区;根据两个缓存区的大小对应DDR用户地址总线的低若干位,地址总线剩余的高若干位的不同值则表示不同的视频通道;
步骤3:利用FPGA参考时钟监控图像写入的帧频和图像读出的帧频;
步骤4:计算图像写入帧频和图像读出帧率的比值得到读写帧率比;
步骤5:利用输入视频的像素时钟和数据有效信号计数得到一帧图像的分辨率,再乘以一个像素占DDR的字节数得到一帧图像大小;
步骤6:通过对一帧图像大小和读写帧率比做乘法或者除法运算,再对计算结果加上若干偏移量得到DDR读写竞争的地址阈值;
步骤7:如果读出图像的帧率比写入图像的帧率高,则在读出前判断当前写入的缓存区DDR地址是否大于等于DDR读写竞争的地址阈值;如果是,则从该缓存区将图像读出;反之,则从另一个缓存区将图像读出;
步骤8:如果写入图像的帧率比读取的图像帧率高,则在写入前判断当前读取的缓存区DDR地址是否大于等于DDR读写竞争的地址阈值:若果是,则将图像写入该缓存区;反之,则将图像写入另一个缓存区。
其中,所述步骤1中,主流视频图像的分辨率不超过4096x4096,数据位宽不超过4个字节,即一帧的图像大小不超过67108864字节,则缓存区的大小为67108864字节的内存空间。
其中,所述步骤2中,对每一路输入视频分配两块67108864字节的内存空间,定义为缓存A和缓存B;
在DDR物理位宽为一个字节,用户寻址位宽为30位,表示为[29:0],0为最低位,29为最高位第30位,的情况下:
缓存A对应的用户地址空间二进制码表示为从“0000000000_0000000000_0000000000”到“0000111111_1111111111_1111111111”;
缓存B对应的用户地址空间二进制码表示为从“0001000000_0000000000_0000000000”到“0001111111_1111111111_1111111111”;
其中[29:27]表示第30位到第28位,二进制码从“000”到“111”分别对应阿拉伯数字的“0”到“7”,即8个不同的数字,每个数字对应不同视频通道的输入输出缓存,即可以表示8个独立视频缓存通道。
其中,所述步骤3中,基于FPGA参考时钟对图像写入和图像读出的帧同步信号以下降沿触发对帧计数器锁存并复位,复位后开始计数,锁定值为一个帧周期的计数值,图像写入帧频锁存值定义为Si,图像读出帧频锁存值定义为So。
其中,所述步骤4中,比较Si和So的大小,若Si大于等于So,则说明图像写入帧频小于等于图像读出帧频,定义In_Out_rate信号为“01”,则So除以Si,结果保留两位小数,定义为Ro;反之,则说明图像写入帧频大于图像读出帧频,定义In_Out_rate信号为“10”,则So除以Si,结果保留两位小数,定义为Ri。
其中,所述步骤5中,基于输入视频的像素时钟,在帧同步信号下降沿触发时对分辨率计数器锁存并复位,复位后开始对一帧图像的视频有效信号进行累加计数,锁存得到的分辨率计数器的值为一帧图像的实际分辨率,再乘以4则为一帧图像在DDR内存中占用的实际大小,定义为I。
其中,所述步骤6中,当In_Out_rate信号为“01”时,I除以Ro取商,对商加1得到DDR读写竞争的地址阈值,定义为Do。
其中,所述步骤7中,当In_Out_rate信号为“01”时,输入视频第一帧图像先写缓存A,第二帧图像写入缓存B,后续图像继续ABAB缓存循环写入;
读出图像时,读出图像的DDR地址总线第30位到第28位和写入图像的DDR地址保持一致,利用输出视频帧同步信号下降沿时刻判断输入图像目前正在写入哪个缓存区:
若写入图像的DDR地址总线第27位为“0”,则代表正在写入缓存A,再判断当前写入地址是否大于等于地址阈值Do,若果是,则从该缓存区将图像读出;反之,读出地址的第27位按写入图像的DDR地址总线的第27位“取反”后从另一个缓存读出图像;
若写入图像的DDR地址总线第27位为“1”,代表正在写入缓存B,再判断当前写入地址是否大于等于地址阈值Do,若果是,则从该缓存区将图像读出;反之,读出地址的第27位按写入图像的DDR地址总线的第27位“取反”后从另一个缓存读出图像。
其中,所述步骤6中,当In_Out_rate信号为“10”时,I除以Ri取商,对商加1得到DDR读写“竞争”的地址阈值,定义为Di。
其中,所述步骤8中,当In_Out_rate信号为“10”时,输出视频第一帧图像先读出缓存A,第二帧图像读出缓存B,后续图像继续ABAB缓存循环读出;
读出图像时,读出图像的DDR地址总线第30位到第28位和写入图像的DDR地址保持一致,利用输出视频帧同步信号下降沿时刻判断输入图像目前正在写入哪个缓存区:
若读出图像的DDR地址总线第27位为“0”,则代表正在读出缓存A,再判断当前读出地址是否大于等于地址阈值Di,若果是,则将图像写入该缓存区;反之,写入地址的第27位按读出图像的DDR地址总线的第27位“取反”后将图像写入另一个缓存;
若读出图像的DDR地址总线第27位为“1”,代表正在读出缓存B,再判断当前读出地址是否大于等于地址阈值Di,若果是,则将图像写入该缓存区;反之,写入地址的第27位按读出图像的DDR地址总线的第27位“取反”后将图像写入另一个缓存。
实施例1
如图1-图2所示,本实施例中,主流视频图像的分辨率不会超过4096x4096,数据位宽一般不超过4个字节,即一帧的图像大小不超过67108864字节,因此对每一路输入视频分配两块67108864内存空间,定义为缓存A和缓存B。
以DDR物理位宽为一个字节,用户寻址位宽为30位(表示为[29:0],0为最低位,29为最高位第30位)为例:
缓存A对应的用户地址空间二进制码表示为从“0000000000_0000000000_0000000000”到“0000111111_1111111111_1111111111”;
缓存B对应的用户地址空间二进制码表示为从“0001000000_0000000000_0000000000”到“0001111111_1111111111_1111111111”;
其中[29:27]表示第30位到第28位,二进制码从“000”到“111”分别对应阿拉伯数字的“0”到“7”,即8个不同的数字,每个数字对应不同视频通道的输入输出缓存,即可以表示8个独立视频缓存通道。
基于参考时钟对输入视频和输出视频的帧同步信号以下降沿触发对帧计数器锁存并复位,复位后开始计数,锁定值为一个帧周期的计数值,输入帧锁存值定义为Si,输出帧锁存值定义为So。
比较Si和So的大小,若Si大于等于So,则说明输入视频帧率小于等于输出视频帧率,定义In_Out_rate信号为“01”,则So除以Si,结果保留两位小数,定义为Ro;反之,则说明输入视频帧率大于输出视频帧率,定义In_Out_rate信号为“10”,则So除以Si,结果保留两位小数,定义为Ri。
基于输入视频的像素时钟,在帧同步信号下降沿触发时对分辨率计数器锁存并复位,复位后开始对一帧图像的视频有效信号进行累加计数,锁存得到的分辨率计数器的值为一帧图像的实际分辨率,再乘以4则为一帧图像在DDR内存中占用的实际大小,定义为I。
当In_Out_rate信号为“01”时,I除以Ro取商,对商加1得到DDR读写“竞争”的地址阈值,定义为Do。
当In_Out_rate信号为“10”时,I除以Ri取商,对商加1得到DDR读写“竞争”的地址阈值,定义为Di。
当In_Out_rate信号为“01”时,输入视频第一帧图像先写缓存A,第二帧图像写入缓存B,后续图像继续ABAB缓存循环写入。读出图像时,读出图像的DDR地址总线第30位到第28位和写入图像的DDR地址保持一致,利用输出视频帧同步信号下降沿时刻判断输入图像目前正在写入哪个缓存区:若写入图像的DDR地址总线第27位为“0”,则代表正在写入缓存A,再判断当前写入地址是否大于等于地址阈值Do,若果是,则从该缓存区将图像读出;反之,读出地址的第27位按写入图像的DDR地址总线的第27位“取反”后从另一个缓存读出图像。若写入图像的DDR地址总线第27位为“1”,代表正在写入缓存B,再判断当前写入地址是否大于等于地址阈值Do,若果是,则从该缓存区将图像读出;反之,读出地址的第27位按写入图像的DDR地址总线的第27位“取反”后从另一个缓存读出图像。
当In_Out_rate信号为“10”时,输出视频第一帧图像先读出缓存A,第二帧图像读出缓存B,后续图像继续ABAB缓存循环读出。读出图像时,读出图像的DDR地址总线第30位到第28位和写入图像的DDR地址保持一致,利用输出视频帧同步信号下降沿时刻判断输入图像目前正在写入哪个缓存区:若读出图像的DDR地址总线第27位为“0”,则代表正在读出缓存A,再判断当前读出地址是否大于等于地址阈值Di,若果是,则将图像写入该缓存区;反之,写入地址的第27位按读出图像的DDR地址总线的第27位“取反”后将图像写入另一个缓存。若读出图像的DDR地址总线第27位为“1”,代表正在读出缓存B,再判断当前读出地址是否大于等于地址阈值Di,若果是,则将图像写入该缓存区;反之,写入地址的第27位按读出图像的DDR地址总线的第27位“取反”后将图像写入另一个缓存。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
1.一种基于FPGA低延迟视频图像缓存的DDR控制方法,其特征在于,所述方法包括如下步骤:
步骤1:根据主流视频最大一帧图像大小设定缓存区的大小;
步骤2:对每一路输入输出视频通道按设定的缓存区大小分配两个缓存区;根据两个缓存区的大小对应DDR用户地址总线的低若干位,地址总线剩余的高若干位的不同值则表示不同的视频通道;
步骤3:利用FPGA参考时钟监控图像写入的帧频和图像读出的帧频;
步骤4:计算图像写入帧频和图像读出帧率的比值得到读写帧率比;
步骤5:利用输入视频的像素时钟和数据有效信号计数得到一帧图像的分辨率,再乘以一个像素占DDR的字节数得到一帧图像大小;
步骤6:通过对一帧图像大小和读写帧率比做乘法或者除法运算,再对计算结果加上若干偏移量得到DDR读写竞争的地址阈值;
步骤7:如果读出图像的帧率比写入图像的帧率高,则在读出前判断当前写入的缓存区DDR地址是否大于等于DDR读写竞争的地址阈值;如果是,则从该缓存区将图像读出;反之,则从另一个缓存区将图像读出;
步骤8:如果写入图像的帧率比读取的图像帧率高,则在写入前判断当前读取的缓存区DDR地址是否大于等于DDR读写竞争的地址阈值:若果是,则将图像写入该缓存区;反之,则将图像写入另一个缓存区。
2.如权利要求1所述的基于FPGA低延迟视频图像缓存的DDR控制方法,其特征在于,所述步骤1中,主流视频图像的分辨率不超过4096x4096,数据位宽不超过4个字节,即一帧的图像大小不超过67108864字节,则缓存区的大小为67108864字节的内存空间。
3.如权利要求2所述的基于FPGA低延迟视频图像缓存的DDR控制方法,其特征在于,所述步骤2中,对每一路输入视频分配两块67108864字节的内存空间,定义为缓存A和缓存B;
在DDR物理位宽为一个字节,用户寻址位宽为30位,表示为[29:0],0为最低位,29为最高位第30位,的情况下:
缓存A对应的用户地址空间二进制码表示为从“0000000000_0000000000_0000000000”到“0000111111_1111111111_1111111111”;
缓存B对应的用户地址空间二进制码表示为从“0001000000_0000000000_0000000000”到“0001111111_1111111111_1111111111”;
其中[29:27]表示第30位到第28位,二进制码从“000”到“111”分别对应阿拉伯数字的“0”到“7”,即8个不同的数字,每个数字对应不同视频通道的输入输出缓存,即可以表示8个独立视频缓存通道。
4.如权利要求3所述的基于FPGA低延迟视频图像缓存的DDR控制方法,其特征在于,所述步骤3中,基于FPGA参考时钟对图像写入和图像读出的帧频以下降沿触发对帧计数器锁存并复位,复位后开始计数,锁定值为一个帧周期的计数值,图像写入帧频锁存值定义为Si,图像读出帧频锁存值定义为So。
5.如权利要求4所述的基于FPGA低延迟视频图像缓存的DDR控制方法,其特征在于,所述步骤4中,比较Si和So的大小,若Si大于等于So,则说明图像写入帧频小于等于图像读出帧频,定义In_Out_rate信号为“01”,则So除以Si,结果保留两位小数,定义为Ro;反之,则说明图像写入帧频大于图像读出帧频,定义In_Out_rate信号为“10”,则So除以Si,结果保留两位小数,定义为Ri。
6.如权利要求5所述的基于FPGA低延迟视频图像缓存的DDR控制方法,其特征在于,所述步骤5中,基于输入视频的像素时钟,在帧同步信号下降沿触发时对分辨率计数器锁存并复位,复位后开始对一帧图像的视频有效信号进行累加计数,锁存得到的分辨率计数器的值为一帧图像的实际分辨率,再乘以4则为一帧图像在DDR内存中占用的实际大小,定义为I。
7.如权利要求6所述的基于FPGA低延迟视频图像缓存的DDR控制方法,其特征在于,所述步骤6中,当In_Out_rate信号为“01”时,I除以Ro取商,对商加1得到DDR读写竞争的地址阈值,定义为Do。
8.如权利要求7所述的基于FPGA低延迟视频图像缓存的DDR控制方法,其特征在于,所述步骤7中,当In_Out_rate信号为“01”时,输入视频第一帧图像先写缓存A,第二帧图像写入缓存B,后续图像继续ABAB缓存循环写入;
读出图像时,读出图像的DDR地址总线第30位到第28位和写入图像的DDR地址保持一致,利用输出视频帧同步信号下降沿时刻判断输入图像目前正在写入哪个缓存区:
若写入图像的DDR地址总线第27位为“0”,则代表正在写入缓存A,再判断当前写入地址是否大于等于地址阈值Do,若果是,则从该缓存区将图像读出;反之,读出地址的第27位按写入图像的DDR地址总线的第27位“取反”后从另一个缓存读出图像;
若写入图像的DDR地址总线第27位为“1”,代表正在写入缓存B,再判断当前写入地址是否大于等于地址阈值Do,若果是,则从该缓存区将图像读出;反之,读出地址的第27位按写入图像的DDR地址总线的第27位“取反”后从另一个缓存读出图像。
9.如权利要求6所述的基于FPGA低延迟视频图像缓存的DDR控制方法,其特征在于,所述步骤6中,当In_Out_rate信号为“10”时,I除以Ri取商,对商加1得到DDR读写“竞争”的地址阈值,定义为Di。
10.如权利要求9所述的基于FPGA低延迟视频图像缓存的DDR控制方法,其特征在于,所述步骤8中,当In_Out_rate信号为“10”时,输出视频第一帧图像先读出缓存A,第二帧图像读出缓存B,后续图像继续ABAB缓存循环读出;
读出图像时,读出图像的DDR地址总线第30位到第28位和写入图像的DDR地址保持一致,利用输出视频帧同步信号下降沿时刻判断输入图像目前正在写入哪个缓存区:
若读出图像的DDR地址总线第27位为“0”,则代表正在读出缓存A,再判断当前读出地址是否大于等于地址阈值Di,若果是,则将图像写入该缓存区;反之,写入地址的第27位按读出图像的DDR地址总线的第27位“取反”后将图像写入另一个缓存;
若读出图像的DDR地址总线第27位为“1”,代表正在读出缓存B,再判断当前读出地址是否大于等于地址阈值Di,若果是,则将图像写入该缓存区;反之,写入地址的第27位按读出图像的DDR地址总线的第27位“取反”后将图像写入另一个缓存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110653148.5A CN113377049B (zh) | 2021-06-11 | 2021-06-11 | 基于fpga低延迟视频图像缓存的ddr控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110653148.5A CN113377049B (zh) | 2021-06-11 | 2021-06-11 | 基于fpga低延迟视频图像缓存的ddr控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113377049A CN113377049A (zh) | 2021-09-10 |
CN113377049B true CN113377049B (zh) | 2022-09-06 |
Family
ID=77573874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110653148.5A Active CN113377049B (zh) | 2021-06-11 | 2021-06-11 | 基于fpga低延迟视频图像缓存的ddr控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113377049B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114143520B (zh) * | 2021-11-29 | 2023-09-26 | 中船重工(武汉)凌久电子有限责任公司 | 一种实现多路hdmi接口传输及自动校正的方法 |
CN116112627B (zh) * | 2023-04-07 | 2023-06-20 | 合肥六角形半导体有限公司 | 一种视频帧率自适应变换的方法和电路 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1265247A1 (en) * | 2001-06-05 | 2002-12-11 | STMicroelectronics S.r.l. | A programmable delay line and corresponding memory |
CN1297099C (zh) * | 2003-06-25 | 2007-01-24 | 华为技术有限公司 | 一种减小附加延时的实时流缓存去抖方法 |
JP5612965B2 (ja) * | 2010-08-25 | 2014-10-22 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
CN104881666B (zh) * | 2014-02-27 | 2018-01-16 | 王磊 | 一种基于fpga的实时二值图像连通域标记实现方法 |
CN105282609A (zh) * | 2015-01-13 | 2016-01-27 | 合肥宏晶微电子科技股份有限公司 | 低内存视频帧率调节方法 |
CN105611234B (zh) * | 2015-12-21 | 2018-09-28 | 中国科学院长春光学精密机械与物理研究所 | 嵌入式系统任意帧频数字图像模拟显示方法 |
CN105872432B (zh) * | 2016-04-21 | 2019-04-23 | 天津大学 | 快速自适应帧率变换的装置与方法 |
CN106776368B (zh) * | 2016-11-29 | 2021-02-05 | 苏州浪潮智能科技有限公司 | 一种数据读取时的缓存管理方法、装置及系统 |
CN109996013B (zh) * | 2019-05-31 | 2019-08-16 | 南京巨鲨显示科技有限公司 | 一种低延时视频拼接方法、装置和系统 |
CN112511861B (zh) * | 2020-12-03 | 2022-05-03 | 威创集团股份有限公司 | 一种低延时视频传输方法及其系统、储存介质 |
-
2021
- 2021-06-11 CN CN202110653148.5A patent/CN113377049B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113377049A (zh) | 2021-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113377049B (zh) | 基于fpga低延迟视频图像缓存的ddr控制方法 | |
CN111367495B (zh) | 一种异步先入先出的数据缓存控制器 | |
US11500586B2 (en) | Data read-write method and apparatus and circular queue | |
KR950010570B1 (ko) | 멀티포오트메모리 | |
JP2796329B2 (ja) | 表示メモリとそれを備えた画像処理装置 | |
US7733892B2 (en) | Buffer management method based on a bitmap table | |
US6340973B1 (en) | Memory control unit and memory control method and medium containing program for realizing the same | |
CN108287336B (zh) | 一种面阵盖革apd激光雷达距离像强度像生成系统 | |
US8543759B2 (en) | Method for scheduling memory refresh operations including power states | |
CN111563052B (zh) | 降低读延时的缓存方法、装置、计算机设备及存储介质 | |
CN115460414B (zh) | 一种基板管理控制芯片的视频压缩方法、系统及相关组件 | |
KR20180075403A (ko) | 데이터 전송 장치 및 데이터 전송 방법 | |
CN115035875B (zh) | 一种三档优先级的gpu显示控制器预取显存方法及装置 | |
US7965895B1 (en) | Screen compression | |
CN101212680A (zh) | 图像数据的存储器存取方法及系统 | |
CN114442908B (zh) | 一种用于数据处理的硬件加速系统及芯片 | |
JP2009251713A (ja) | キャッシュメモリ制御装置 | |
US10031884B2 (en) | Storage apparatus and method for processing plurality of pieces of client data | |
KR100498233B1 (ko) | 선입선출 메모리 회로 및 그 구현 방법 | |
EP2579507A1 (en) | Method and system for counting data packets | |
CN104407992A (zh) | 一种基于双端口寄存器阵列的四端口存储器 | |
CN115221082B (zh) | 一种数据缓存方法、装置及存储介质 | |
US8036264B2 (en) | Memory management in video decoding systems | |
US6678331B1 (en) | MPEG decoder using a shared memory | |
EP0662681B1 (en) | Method of and apparatus for data compression during monitor refresh operations |
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 |