一种基于FPGA的视频压缩中YUV数据8x8block转换方法及装置制造方法及图纸

技术编号:16975546 阅读:102 留言:0更新日期:2018-01-07 10:09
本发明专利技术提供了一种基于FPGA的视频压缩中YUV数据8x8block转换方法及装置,涉及视频数据处理领域。转换方法包括:利用矩阵转换公式,将RGB444格式数据转换为YUV444格式数据;将YUV444格式数据转换为YUV420格式数据,并分别利用16个FIFO来存储Y分量、8个FIFO存储U分量、8个FIFO存储V分量,存储队列依次记为Y_FIFO、U_FIFO及V_FIFO;依次读取所述S2中的16个Y_FIFO、8个U_FIFO及8个V_FIFO,分别得到256个Y分量、64个U分量以及64个V分量;将所述S3中读出的256个Y分量、64个U分量及64个V分量依次传输到视频压缩IP,完成8x8block的转换。本发明专利技术打破了现有视频数据转换存在的局限性,降低了项目成本和系统复杂度。

【技术实现步骤摘要】
一种基于FPGA的视频压缩中YUV数据8x8block转换方法及装置
本专利技术涉及视频数据处理领域,具体来说涉及一种基于FPGA的视频压缩中YUV数据8x8block转换方法及装置。
技术介绍
在数字视频处理中,视频压缩技术是一项关键的技术,视频压缩在减少视频序列码率的同时保持了复原图像的质量,便于在给定的通信信道上实时传输。现场可编程门阵列FPGA是利用小型查找表来实现组合逻辑功能,这种结构允许无限次的重新编程,对于视频系统的硬件实现来说FPGA比传统的通用集成电路或专用集成电路更为优越。现有技术中,参照附图1所示,利用FPGA进行视频数据压缩的方法为,FPGA接收显卡输出的RGB视频数据,经过视频压缩,降低原始视频的数据量,并按照以太网协议打包,通过网卡进行发送。其压缩流程是首先将显卡输出的RGB444数据转换为YUV444数据,为进一步降低视频数据量,再将YUV444数据转换为YUV420数据,按照8x8block的方式输入给视频压缩IP,完成数据压缩。其中,RGB444数据到YUV420数据的转换以及8x8block的转换是利用FPGA内部的IP完成,但是FPGA内部的IP需要额外购买,使用中存在很大的局限性,并且增加了项目成本,提高了系统复杂度。为解决现有技术中RGB444到YUV4208x8block转换的局限性,本专利技术设计一种基于FPGA的视频压缩中YUV数据8x8block转换方法及装置。
技术实现思路
本专利技术的目的在于提供一种基于FPGA的视频压缩中YUV数据8x8block转换方法,将显卡输出的RGB444数据转换为YUV420数据,并按照8x8block的方式输入给视频压缩IP,提高系统的灵活性,降低系统复杂度。为解决上述技术问题,本专利技术采用如下技术方案予以实现:一种基于FPGA的视频压缩中YUV数据8x8block转换方法,所述转换方法包括下述步骤:S1、利用矩阵转换公式,通过乘法器将RGB444格式数据转换为YUV444格式数据;S2、将YUV444格式数据转换为YUV420格式数据,并分别利用16个FIFO来存储Y分量、8个FIFO存储U分量、8个FIFO存储V分量,存储队列依次记为Y_FIFO、U_FIFO及V_FIFO;S3、依次读取所述S2中的16个Y_FIFO、8个U_FIFO及8个V_FIFO,分别得到256个Y分量、64个U分量以及64个V分量;S4、将所述S3中读出的256个Y分量、64个U分量及64个V分量依次传输到视频压缩IP,完成8x8block的转换。基于上述方案,本专利技术做如下优化:作为优化,在所述S1中,将RGB444格式转换为YUV444格式的矩阵转换公式为:Y=0.257*R+0.504*G+0.098*B+16U=-0.148*R-0.291*G+0.439*B+128V=0.439R-0.368*G-0.071*B+128作为优化,在所述S2中,将Y分量写入Y_FIFO中的方法是,按照Y分量所在的行号N依次写入第((N%16)+1)个Y_FIFO中;将U分量写入U_FIFO中的方法是,对于偶数列和偶数行的U分量,根据U分量所在的行号N,依次写入第((N/2)%16)+1)个U_FIFO中,奇数行或奇数列的U分量不写入U_FIFO;将V分量写入V_FIFO中的方法是,对于偶数列和偶数行的V分量,根据V分量所在的行号N,依次写入第((N/2)%16)+1)个V_FIFO中,奇数行或奇数列的V分量不写入V_FIFO。本专利技术的另一目的在于提供一种基于FPGA的视频压缩中YUV数据8x8block转换装置,所述转换装置包括:RGB444至YUV444转换单元,用于利用矩阵转换公式将RGB444格式数据转换为YUV444格式数据;YUV444至YUV420转换单元,用于将YUV444格式数据转换为YUV420格式数据,并分别利用16个FIFO来存储Y分量,8个FIFO存储U分量,8个FIFO存储V分量,存储队列依次记为Y_FIFO、U_FIFO及V_FIFO;分量读取单元,用于依次读取所述YUV444至YUV420转换单元中的16个Y_FIFO、8个U_FIFO及8个V_FIFO,分别得到256个Y分量、64个U分量及64个V分量;分量传输单元,用于将分量读取单元中读出的256个Y分量、64个U分量及64个V分量依次传输到视频压缩IP,完成8x8block的转换。作为优化,所述RGB444至YUV444转换单元中,用于将RGB444格式转换为YUV444格式的矩阵转换公式为:Y=0.257*R+0.504*G+0.098*B+16U=-0.148*R-0.291*G+0.439*B+128V=0.439R-0.368*G-0.071*B+128作为优化,在所述的YUV444至YUV420转换单元中,用于将Y分量写入Y_FIFO中的方法是,按照Y分量所在的行号N依次写入第((N%16)+1)个Y_FIFO中;用于将U分量写入U_FIFO中的方法是,对于偶数列和偶数行的U分量,根据U分量所在的行号N,依次写入第((N/2)%16)+1)个U_FIFO中,奇数行或奇数列的U分量不写入U_FIFO;用于将V分量写入V_FIFO中的方法是,对于偶数列和偶数行的V分量,根据V分量所在的行号N,依次写入第((N/2)%16)+1)个V_FIFO中,奇数行或奇数列的V分量不写入V_FIFO。
技术实现思路
中提供的效果仅仅是实施例的效果,而不是专利技术所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:本专利技术实施例的一种基于FPGA的视频压缩中YUV数据8x8block转换方法及装置,利用矩阵变换以及逻辑控制和FIFO阵列转换,实现RGB444到YUV420数据8x8block转换,完成视频数据的压缩处理,整个处理过程只占用很少的FPGA逻辑资源,节省了使用FPGA内部IP进行转换的购买成本,打破了现有转换方式存在的局限性,系统设计实现更加灵活简单,且大大降低了项目成本和系统复杂度,提高了工作效率。附图说明图1是现有技术中基于FPGA的视频压缩流程框图;图2是本申请实施例提供的基于FPGA的视频压缩中YUV数据8x8block转换方法的流程图;图3是本申请实施例提供的8x8block转换示意图;图4是本申请实施例提供的基于FPGA的视频压缩中YUV数据8x8block转换方法的逻辑框图;图5是本申请实施例提供的基于FPGA的视频压缩中YUV数据8x8block转换装置的结构示意图;具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。为了方便对实施例的理解,对实施例中涉及的缩略词和关键术语予以解释和说明。RGB444:显卡输出的像素数据,每一个像素点都由R、G、B三种数值组成,分别表示红、绿、蓝三种颜色;YUV444:由RGB444数据经过矩阵变换得到,分量Y表示亮度信号,分量U、V表示两个色差信号;YUV420:由YUV444数据得来,保留YUV444数据中所有的Y分量不变,只保留偶数行和偶数列的U、V数据;8x8block:输入本文档来自技高网
...
一种基于FPGA的视频压缩中YUV数据8x8block转换方法及装置

【技术保护点】
一种基于FPGA的视频压缩中YUV数据8x8block转换方法,其特征在于,所述转换方法包括下述步骤:S1、利用矩阵转换公式,通过乘法器将RGB444格式数据转换为YUV444格式数据;S2、将YUV444格式数据转换为YUV420格式数据,并分别利用16个FIFO来存储Y分量、8个FIFO存储U分量、8个FIFO存储V分量,存储队列依次记为Y_FIFO、U_FIFO及V_FIFO;S3、依次读取所述S2中的16个Y_FIFO、8个U_FIFO以及8个V_FIFO,分别得到256个Y分量、64个U分量及64个V分量;S4、将所述S3中读出的256个Y分量、64个U分量及64个V分量依次传输到视频压缩IP,完成8x8block的转换。

【技术特征摘要】
1.一种基于FPGA的视频压缩中YUV数据8x8block转换方法,其特征在于,所述转换方法包括下述步骤:S1、利用矩阵转换公式,通过乘法器将RGB444格式数据转换为YUV444格式数据;S2、将YUV444格式数据转换为YUV420格式数据,并分别利用16个FIFO来存储Y分量、8个FIFO存储U分量、8个FIFO存储V分量,存储队列依次记为Y_FIFO、U_FIFO及V_FIFO;S3、依次读取所述S2中的16个Y_FIFO、8个U_FIFO以及8个V_FIFO,分别得到256个Y分量、64个U分量及64个V分量;S4、将所述S3中读出的256个Y分量、64个U分量及64个V分量依次传输到视频压缩IP,完成8x8block的转换。2.根据权利要求1所述的一种基于FPGA的视频压缩中YUV数据8x8block转换方法,其特征在于,所述S1中,将RGB444格式转换为YUV444格式的矩阵转换公式为:Y=0.257*R+0.504*G+0.098*B+16U=-0.148*R-0.291*G+0.439*B+128V=0.439R-0.368*G-0.071*B+128。3.根据权利要求1所述的一种基于FPGA的视频压缩中YUV数据8x8block转换方法,其特征在于,所述S2中,将Y分量写入Y_FIFO中的方法是,按照Y分量所在的行号N依次写入第((N%16)+1)个Y_FIFO中。4.根据权利要求1所述的一种基于FPGA的视频压缩中YUV数据8x8block转换方法,其特征在于,所述S2中,将U分量写入U_FIFO中的方法是,对于偶数列和偶数行的U分量,根据U分量所在的行号N,依次写入第((N/2)%16)+1)个U_FIFO中,奇数行或奇数列的U分量不写入U_FIFO。5.根据权利要求1所述的一种基于FPGA的视频压缩中YUV数据8x8block转换方法,其特征在于,所述S2中,将V分量写入V_FIFO中的方法是,对于偶数列和偶数行的V分量,根据V分量所在的行号N,依次写入第((N/2)%16)+1)个V_FIFO中,奇数行或奇数列的V分量不写入V_FIFO。6.一种基于FPGA的视频压缩中YUV数据8x8block转换装置,其特征在于,所述转换装置包括:RGB444至YUV444转...

【专利技术属性】
技术研发人员:张贞雷
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1