本发明涉及视频图像处理技术领域,尤其涉及一种视频图像旋转的显示方法及装置。
背景技术
在视频图像旋转中由于需要连续的输出旋转后的视频数据,因此对图像的存储器件需要很高的要求,现有技术中多将动态储存部分设置在FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)内部,但由于该部分成本极其高昂,且数量是固定的,导致分辨率处理的能力有限,若需要显示高分辨率的图像,则需要成本价格更高的FPGA;为了解决这个问题,大多通过外置SRAM(Static Random-Access Memory,静态随机存取存储器)作为视频存储器件,但由于SRAM器件支持的频率较低,导致了读写数据的带宽受到限制,在实际使用过程中,要么实现图像的分辨率高,但输出帧率低;要么实现图像的分辨率低,但输出帧率高。在低成本的情况下,不能满足高分辨率和高帧率视频图像同时存在的情况。
技术实现要素:
本发明提供了一种视频图像旋转的显示方法及装置,实现了在低成本情况下输出高分辨率高帧率的旋转视频。
为了解决上述技术问题,本发明实施例提供了一种视频图像旋转的显示方法,包括如下步骤:
获取视频图像,将所述视频图像中每一帧的帧起始进行起始标志,并划分所述视频图像的有效帧图像和无效帧图像。
按照预设的帧数存储规则,将所述有效帧图像交替存储在第一sram和第二sram中,删除所有无效帧图像;其中,第一sram和第二sram为sram存储模块的组成器件。
根据视频图像的起始标志,构造所述视频图像存储的每一有效帧图像在旋转后的显示坐标,获取用户输入的所述视频图像的旋转角度,由所述旋转角度计算显示坐标的逆坐标。
依次根据显示坐标的逆坐标,读出存储在sram存储模块中对应的实际图像坐标值,并根据预设的权重算法,计算每一有效帧图像中所有像素点各自对应的显示坐标及各显示坐标对应的图像数据。
从所述sram存储模块中交替读写每一有效帧图像,并根据每一有效帧图像的所有显示坐标对应的图像数据,加入有效帧图像的行、场标志,依次输出各有效帧图像,得到旋转后的视频图像。
进一步的,所述按照预设的帧数存储规则,将所述有效帧图像交替存储在第一sram和第二sram中,具体为:
对所述有效帧图像的第一sram使能信号和第二sram使能信号进行采集,按照预设的帧数存储规则,通过所述第一sram使能信号和所述第二sram使能信号将所述有效帧图像数据交替存储在sram存储模块中,当所述第一sram使能信号或所述第二sram使能信号为高电平时,允许所述有效帧图像数据写入所述sram存储模块中;其中,所述帧数存储规则为:只存储奇数帧图像或只存储偶数帧图像。
进一步的,所述根据视频图像的起始标志,构造所述视频图像存储的每一有效帧图像在旋转后的显示坐标,具体为:
利用所述第一个有效帧图像的起始点信号的上升沿,通过构造模块构建一个预设的循环的图像标准,以从左往右,从上到下,形成每一有效帧图像在旋转后的显示坐标。
进一步的,所述在构造所述视频图像存储的每一有效帧图像在旋转后的显示坐标之后,还包括:计算获得显示图像的逆坐标,具体为:
以所述视频图像的中心点为坐标原点,计算出所述每一显示图像中所有像素点的逆坐标,计算公式为:其中,α为所述旋转角度,(x,y)为所述显示坐标,(x′,y′)为所述逆坐标。
进一步的,根据预设的权重算法,计算每一有效帧图像中所有像素点各自对应的显示坐标及各显示坐标对应的图像数据,具体为:
根据所述每一显示坐标的逆坐标对应的实际图像坐标,获取所述逆坐标对应的实际图像坐标最近的若干个坐标点,根据预设的权重算法,计算每一有效帧图像中所有像素点各自对应的显示坐标及各显示坐标对应的图像数据。
进一步的,所述预设的权重算法,具体为获取所述实际图像坐标最近的4个坐标点,计算公式为:
f(R1)=(1-u)·f(i,j) u·f(i 1,j)
f(R2)=(1-u)·f(i,j 1) u·f(i 1,j 1)
f(P)=(1-v)·f(R1) v·f(R2)
其中f(P)为所述各显示坐标对应的图像数据,f(i,j)、f(i 1,j)、f(i,j 1)、f(i 1,j 1)为所述实际图像坐标最近4个点对应的图像数据,f(R1)、f(R2)分别为f(P)在Y分量上的坐标R1、R2对应的图像数据,(i,j)为所述各逆坐标的整数部分坐标,(u,v)为所述各逆坐标的小数部分坐标。
进一步的,所述从所述sram存储模块中交替读写每一有效帧图像,具体为:
通过数据控制模块读出有效帧图像后,写入SDRAM模块,所述SDRAM模块的输出帧率是输入帧率的两倍。进一步的,所述加入有效帧图像的行、场标志,具体为:
通过采样模块获取所述视频图像的VS、DE、HS标志信号,通过图像缓存模块将所述所有显示坐标对应的图像数据与所述VS、DE、HS标志信号对齐后依次输出得到所述旋转后的视频图像。
其中:VS为场标志,用于识别所述视频图像每一帧图像的开始位置;HS为行标志,用于标识所述视频图像显示时每一帧图像的每一行的位置;DE为有效数据标志,用于标识所述视频图像数据的有效范围区域。
本发明还公开了一种视频图像旋转的显示装置,包括:图像划分模块、图像存储模块、逆坐标获取模块、权重计算模块和图像输出模块。
其中,所述图像划分模块用于获取视频图像,将所述视频图像中每一帧的帧起始进行标志,划分所述视频图像的有效帧图像和无效帧图像。
所述图像存储模块用于按照预设的帧数存储规则,将所述有效帧图像交替存储在第一sram和第二sram中,删除所有无效帧图像;其中,第一sram和第二sram为sram存储模块的组成器件。
所述逆坐标获取模块用于根据视频图像的起始标志,构造所述视频图像存储的每一有效帧图像在旋转后的显示坐标,获取用户输入的所述视频图像的旋转角度,由所述旋转角度计算显示坐标的逆坐标。
所述权重计算模块用于依次根据显示坐标的逆坐标,读出存储在sram存储模块中对应的实际图像坐标值,并根据预设的权重算法,计算每一有效帧图像中所有像素点各自对应的显示坐标及各显示坐标对应的图像数据。
所述图像输出模块用于从所述sram存储模块中交替读写每一有效帧图像,并根据每一有效帧图像的所有显示坐标对应的图像数据,加入有效帧图像的行、场标志,依次输出各有效帧图像,得到旋转后的视频图像。
本发明还公开了一种视频图像旋转显示装置,上述的视频图像旋转的显示方法;所述显示装置包括:FPGA和外围器件;其中:
所述FPGA包括PLL时钟硬核模块、采样模块、构造模块、DSP硬核坐标输出模块、数据控制模块、SDRAM存储模块和图像缓存模块;所述外围器件包括sram存储模块、按键模块。
所述采样模块的输入端接有图像输入数据;所述采样模块的输出端与所述sram存储模块的输入端连接;所述sram模块的输出端与所述数据控制模块的输入端连接。
所述构造模块的输入端与按键模块的输出端连接以及采样模块的输出端连接;所述构造模块的输出端与DSP硬核坐标输出模块的输入端连接;所述DSP硬核坐标输出模块的输出端与所述数据控制模块的输入端连接。
所述数据控制模块的输出端与所述SDRAM存储模块的输入端连接;所述SDRAM存储模块的输出端与所述图像缓存模块的输入端连接。
相比于现有技术,本发明实施例提供了一种视频图像旋转的显示方法及装置,通过采样模块对视频图像的有效帧进行奇偶分类,只提取奇数帧缓存在FPGA外设的2组sram中,在节约了大量数据带宽和成本的同时满足了高分辨率视频的缓存,在FPGA内置SDRAM(synchronous dynamic random-access memory,同步动态随机存取内存)器件实现视频图像帧率的提升,实现了在低成本情况下输出高分辨率、高帧率的旋转视频。
附图说明
图1是本发明提供的视频图像旋转的显示方法的一种实施例的流程示意图;
图2是本发明实施例中的采样模块结构示意图;
图3是本发明实施例中的DSP硬核坐标计算模块计算逆坐标的示意图;
图4是本发明提供的视频图像旋转的显示装置的一种实施例的结构示意图;
图5是本发明提供的视频图像旋转的显示装置的一种实施例的结构连接示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本保护的范围。
实施例一
请参照图1,为本发明实施例提供的一种视频图像旋转的显示方法包括步骤11至步骤15,各步骤具体如下:
步骤11:获取视频图像,将所述视频图像中每一帧的帧起始进行标志,划分所述视频图像的有效帧图像和无效帧图像。
步骤12:按照预设的帧数存储规则,将所述有效帧图像交替存储在第一sram和第二sram中,删除所有无效帧图像;其中,第一sram和第二sram为sram存储模块的组成器件。
步骤13:根据视频图像的起始标志,构造所述视频图像存储的每一有效帧图像在旋转后的显示坐标,获取用户输入的所述视频图像的旋转角度,由所述旋转角度计算显示坐标的逆坐标。
步骤14:依次根据显示坐标的逆坐标,读出存储在sram存储模块中对应的实际图像坐标值,并根据预设的权重算法,计算每一有效帧图像中所有像素点各自对应的显示坐标及各显示坐标对应的图像数据。
步骤15:从所述sram存储模块中交替读写每一有效帧图像,并根据每一有效帧图像的所有显示坐标对应的图像数据,加入有效帧图像的行、场标志,依次输出各有效帧图像,得到旋转后的视频图像。
进一步地,所述按照预设的帧数存储规则,将所述有效帧图像交替存储在第一sram和第二sram中,具体为:
对所述有效帧图像的第一sram使能信号和第二sram使能信号进行采集,按照预设的帧数存储规则,通过所述第一sram使能信号和所述第二sram使能信号将所述有效帧图像数据交替存储在sram存储模块中,当所述第一sram使能信号或所述第二sram使能信号为高电平时,允许所述有效帧图像数据写入所述sram存储模块中;
其中,所述帧数存储规则为:只存储奇数帧图像或只存储偶数帧图像。
需要说明的是,如图2所示,通过采样模块获取外部输入的视频图像数据,每四帧有效帧图像从0到3计数循环一次,当检测到有效帧图像的帧起始标志时,计数器加一,所计数值用于第一数据选择器;当第一数据选择器识别为第一帧时,将第一sram使能为高电平,否则为低电平,同理,当第一数据选择器识别为第三帧时,将第二sram使能为高电平,否则为低电平;当第一数据选择器识别为偶数帧时都输出为低电平,交替存储奇数帧从而达到只保留一半的图像数据,减少了存储成本。
进一步地,所述根据视频图像的起始标志,构造所述视频图像存储的每一有效帧图像在旋转后的显示坐标,具体为:
利用所述第一个有效帧图像的起始点信号的上升沿,通过构造模块构建一个预设的循环的图像标准,以从左往右,从上到下,形成每一有效帧图像在旋转后的显示坐标。
需要说明的是,利用每一有效帧图像的起始点信号的上升沿,通过构造模块内部构建一个循环的图像标准,大小为1280*720,形成每一有效帧图像在旋转后的显示坐标,作为依次计算图像逆坐标的参数。
进一步地,所述在构造所述视频图像存储的每一有效帧图像在旋转后的显示坐标之后,还包括:计算获得显示图像的逆坐标,具体为:
以所述视频图像的中心点为坐标原点,计算出所述每一显示图像中所有像素点的逆坐标,计算公式为:其中,α为所述旋转角度,(x,y)为所述显示坐标,(x′,y′)为所述逆坐标。
需要说明的是,如图3所示,利用DSP硬核坐标输出模块的地址线获取到按键模块输入的视频图像旋转角度α,同时根据所述显示坐标,通过计算公式计算得到所述逆坐标。
进一步地,所述根据预设的权重算法,计算每一有效帧图像中所有像素点各自对应的显示坐标及各显示坐标对应的图像数据,具体为:
根据所述每一显示坐标的逆坐标对应的实际图像坐标,获取所述逆坐标对应的实际图像坐标最近的若干个坐标点,根据预设的权重算法,计算每一有效帧图像中所有像素点各自对应的显示坐标及各显示坐标对应的图像数据。
需要说明的是,将显示坐标的逆坐标转化为对应的sram存储模块中的实际图像坐标为现有技术,在此不展开赘述。
进一步地,所述预设的权重算法,具体为获取所述实际图像坐标最近的4个坐标点,计算公式为:
f(R1)=(1-u)·f(i,j) u·f(i 1,j)
f(R2)=(1-u)·f(i,j 1) u·f(i 1,j 1)
f(P)=(1-v)·f(R1) v·f(R2)
其中f(P)为所述各显示坐标对应的图像数据,f(i,j)、f(i 1,j)、f(i,j 1)、f(i 1,j 1)为所述实际图像坐标最近4个点对应的图像数据,f(R1)、f(R2)分别为f(P)在Y分量上的坐标R1、R2对应的图像数据,(i,j)为所述各逆坐标的整数部分坐标,(u,v)为所述各逆坐标的小数部分坐标。
需要说明的是,由于各显示坐标的逆坐标并不一定都是整数,因此不一定能与原有效帧图像的坐标相对应,所以需要通过权重计算的方法,获取各显示坐标最近的4个点对应的图像数据来计算得到各显示坐标的整数值。
进一步地,所述从所述sram存储模块中交替读写每一有效帧图像,具体为:
通过数据控制模块读出有效帧图像后,写入SDRAM模块,所述SDRAM模块的输出帧率是输入帧率的两倍。进一步地,所述加入有效帧图像的行、场标志,具体为:
通过采样模块获取所述视频图像的VS、DE、HS标志信号,通过图像缓存模块将所述所有显示坐标对应的图像数据与所述VS、DE、HS标志信号对齐后依次输出得到所述旋转后的视频图像;
其中:VS为场标志,用于识别所述视频图像每一帧图像的开始位置;HS为行标志,用于标识所述视频图像显示时每一帧图像的每一行的位置;DE为有效数据标志,用于标识所述视频图像数据的有效范围区域。
综上,本发明提供一种视频图像旋转的显示方法,通过采样模块将视频图像的有效帧进行奇偶分类,只提取有效奇数帧图像缓存在FPGA外设的2组sram器件中,在节约了大量数据带宽和成本的同时满足了高分辨率视频的缓存,在FPGA内置SDRAM存储模块,实现旋转后视频图像的帧率的提升,实现了在低成本情况下输出高分辨率高帧率的旋转视频。
如图4所示,本发明实施例还提供的一种视频图像旋转的显示装置,包括:图像划分模块、图像存储模块、逆坐标获取模块、权重计算模块和图像输出模块;
其中,图像划分模块用于获取输入的视频图像,将所述视频图像中每一帧的帧起始进行标志,划分所述视频图像的有效帧图像和无效帧图像,并产生sram的使能信号。
图像存储模块用于按照预设的帧数存储规则,将所述有效帧图像交替存储在第一sram和第二sram中,删除所有无效帧图像;其中,第一sram和第二sram为sram存储模块的组成器件。
所述逆坐标获取模块用于根据视频图像的起始标志,构造所述视频图像存储的每一有效帧图像在旋转后的显示坐标,获取用户输入的所述视频图像的旋转角度,由所述旋转角度计算显示坐标的逆坐标。
所述权重计算模块用于依次根据显示坐标的逆坐标,读出存储在sram存储模块中对应的实际图像坐标值,并根据预设的权重算法,计算每一有效帧图像中所有像素点各自对应的显示坐标及各显示坐标对应的图像数据。
所述图像输出模块从所述sram存储模块中交替读写每一有效帧图像,并根据每一有效帧图像的所有显示坐标对应的图像数据,加入有效帧图像的行、场标志,依次输出各有效帧图像,得到旋转后的视频图像。
本装置更详细的步骤流程及工作原理可以但不限于参见上文所述的视频图像旋转的显示方法。
在具体实现中,如图5所示,一种视频图像旋转的显示装置,应用本发明所述的视频图像旋转的显示方法;所述显示装置包括:FPGA和外围器件;其中:
所述FPGA包括PLL时钟硬核模块、采样模块、构造模块、DSP硬核坐标输出模块、数据控制模块、SDRAM存储模块和图像缓存模块;所述外围器件包括sram存储模块、按键模块;
所述采样模块的输入端接有图像输入数据;所述采样模块的输出端与所述sram存储模块的输入端连接;所述sram模块的输出端与所述数据控制模块的输入端连接;所述采样模块的输出端起始帧标志与构造模块的输入端口连接。
需要说明的是,PLL时钟模块在FPGA上电工作后,PLL内部锁相环利用外部输入的参考时钟,控制环路内部振荡信号的频率和相位,通过输出引脚输出不同的时钟频率到FPGA的时钟网络中的各个模块。
其中,利用获取的视频图像的输入时钟作为PLL时钟模块的输入时钟,PLL时钟模块的输入时钟为74.25MHz,输出为3种频率,分别是2倍频,1倍频,1/2倍频;输出2倍频率和1/2倍频率用于数据控制模块,输出1倍频率用于SDRAM模块、图像缓存模块,1/2频率用于构造模块、DSP硬核坐标输出模块,采样模块以及sram数据的输入时钟则采用获取获取的视频图像的输入时钟。
采样模块输入的是位宽为24bit,RGB888的数字信号,输出的是位宽为16bit,处理的数据格式为565的数字信号,即只取RGB的R高5位,G高6为,B高5位;
SRAM存储模块由独立工作且功能相同的第一sram和第二sram组成,第一sram和第二sram各自的容量为36Mbit大小,数据位宽为18bit,采用了74.25MHz输入时钟和148.5MHz输出时钟。
所述构造模块的输入端与按键模块的输出端连接;所述采样模块的输出端起始帧标志与构造模块的输入端口连接;所述构造模块的输出端与DSP硬核坐标输出模块的输入端连接;所述DSP硬核坐标输出模块的输出端与所述数据控制模块的输入端连接;
所述数据控制模块的输出端与所述SDRAM存储模块的输入端连接;所述SDRAM存储模块的输出端与所述图像缓存模块的输入端连接。
需要说明的是,SDRAM存储模块的容量大小为64Mbit,数据接口为16bit,且读写引脚共用,输入采用37.125MHz的时钟,输出采用74.25MHz的时钟,数据通过交替方式写入,由于输入输出时钟正好相差一倍,所以SDRAM存储模块在写入一帧有效帧图像数据的同时读出两帧有效帧图像数据。
所述图像缓存模块将输出的位宽由16bit恢复到24bit,将16bit中的R高5位,G高6位,B高5位分别恢复为R高8位,G高8位,B高8位。由于采用高位进行计算,使得输出的旋转后的视频图像最大限度的保留了原有的色彩。
本实施例提供的一种视频图像旋转的显示装置,可执行本发明方法实施例所提供的一种视频图像旋转的显示方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。