一种PAL制视频编码IP核的制作方法

文档序号:14256702阅读:757来源:国知局
本发明属于视频显示
技术领域

背景技术
:在需要用pal制显示的fpga成像系统中,为了完成最终的pal制的时序显示,一般有两种方案。一是使用单通道da转换芯片,如adv7123,在fpga中产生pal制的同步信号和消隐信号,组合完成视频显示。这种方案相对来说功耗较低,但缺点是只能显示黑白的图像。在需要显示彩色pal制图像的系统中,就需要用专用的彩色pal制da芯片,如adv7393,这类芯片只需要fpga送给图像的rgb或者yuv格式数据,在芯片内部进行pal制的时序产生、正交平衡调制和滤波等工作,这类芯片虽然使用简便,成像质量好,但是功耗较大,通常为单通道da转换芯片的5到10倍。在一些对功耗和体积要求较严格的成像系统中,往往不得以选用单通道da转换芯片只显示黑白图像。即便只显示黑白图像,由于pal制的时序相对vga等数字化标准较为复杂,且市面上众多监视器兼容的标准也不尽相同,往往出现在调试pal制的时序时,在一些监视器上成像效果很好,而在其他一些监视器上却会出现抖动、闪烁甚至不能成像的问题。因此倘若能针对某一业界公认的标准接口设计一套pal制ip核,不但可以方便地调试pal制的时序,而且前端的图像接口也更容易设计。技术实现要素:本发明的目的在于提出一种pal制视频编码ip核,其在fpga上实现pal制显示所需的滤波和调制方法,并封装成ip核,使其可广泛应用于各种成像显示系统中,为低功耗、小体积成像系统后端视频输出提供一定的参考。为了解决上述技术问题,本发明提供一种pal制视频编码ip核,包括在fpga中实现的视频流接收模块、滤波模块、nco模块、正交平衡调制模块、时序产生模块、合成模块、信号嵌入模块;当所述ip核工作在黑白显示模式时,视频流接收模块从输入的视频数据流中提取出亮度信号y并缓存,时序产生模块产生pal制的全同步脉冲信号和全消隐信号,信号嵌入模块将全同步脉冲信号和全消隐信号嵌入到视频数据中输出;当所述ip核工作在彩色显示模式时,视频流接收模块从输入的视频数据流中提取出亮度信号y以及色差信号u和v,并将该三路数据缓存,时序产生模块产生全同步脉冲信号、全消隐信号、色同步脉冲、色消隐信号以及逐行倒相使能信号,nco模块产生正弦副载波和余弦副载波,滤波模块对色差信号u和v进行低通滤波,正交平衡调制模块使用滤波后的色差信号u和v分别对正弦副载波和余弦副载波进行调制,合成模块将色差信号u逐行倒相后与亮度信号y以及色差信号v合成,信号嵌入模块将全同步脉冲信号、全消隐信号、色同步脉冲、色消隐信号嵌入到合成的数据中输出。进一步,所述视频流接收模块的输入接口为avalon-st总线形式;所述视频流接收模块采用有限状态机实现。进一步,所述视频流接收模块对符合要求的图像数据包,先将逐行扫描的图像数据转换成隔行扫描数据,然后缓存到fifo中供fir滤波模块使用。进一步,所述视频流接收模块中维护有一个计数器,该计数器用于统计图像帧之间的间隔和pal的扫描进程,当两者出现较大偏差导致显示不当时或者需要较大缓存时,复位后续图像显示系统,使后续图像显示系统与输入的图像数据流重新同步。进一步,所述滤波模块采用fir滤波器。进一步,所述nco模块由一个存储正弦波形的片上随机存储器和扫描逻辑单元构成,扫描逻辑单元通过计算时钟与输出频率的比得到扫描步长,在时钟的驱动下读取随机存储器中存储的正弦波数据,输出正弦波信号。进一步,所述nco模块采用可变步长的扫描方法,每次跳跃式的读取随机存储器。进一步,所述时序产生模块中设置有行计数器和列计数器,列计数器用于记录从左至右的扫描,行计数器用于记录从上到下的扫描,将同步脉冲和消隐脉冲由时间转换为时钟个数后,通过判断计数器的值来输出同步脉冲信号和消隐信号。本发明与现有技术相比,其显著优点在于,本发明实现了在fpga上进行pal制显示的相关工作,使其可以在使用低功耗、单通道da转换芯片的系统中显示彩色pal制图像。同时,本发明使用了avalon接口,兼容于qsys,使其具有兼容性和易用性的特点。附图说明图1是本发明所述pal制视频编码ip核逻辑结构示意图。图2是本发明所述pal制视频编码ip核数据流示意图。图3是pal制输出参数对应关系示意图。图4是avalon-st总线信号图。具体实施方式容易理解,依据本发明的技术方案,在不变更本发明的实质精神的情况下,本领域的一般技术人员可以想象出本发明pal制视频编码ip核的多种实施方式。因此,以下具体实施方式和附图仅是对本发明的技术方案的示例性说明,而不应当视为本发明的全部或者视为对本发明技术方案的限制或限定。视频流接收模块视频接收模块的功能是对输入的视频流进行格式转换和数据缓存,输出为亮度信号y以及两路色差信号u和v。altera规定的vip视频流格式为avalon-st总线的数据包形式,其中数据包的第一个数据指明了该数据包的类型,如0xf为控制数据包,0x0为图像数据包。视频流接收模块采用一个fsm(finite-statemachine,有限状态机)来实现。如图4所示,当检测到startofpacket信号有效时,说明到来了一帧新的数据包,此时根据data线上的数据辨别新一帧的数据包是控制数据包还是图像数据包,如果是控制数据包,则对该数据包中提供的图像宽度、高度和交错信息进行检查,如果不符合显示的格式,就忽略图像数据包。当符合要求的图像数据包到来时,则先将逐行扫描的图像数据转换成隔行扫描数据,即丢弃奇场的偶行和偶场的奇行,再缓存到fifo中,供fir滤波模块使用。由于pal制的显示和图像数据流往往工作在两个不同的时钟域,该fifo同时还具有隔离时钟域的功能。并且由于在不同的时钟域,有可能显示扫描的进度快过图像输入的进度导致显示不同步,或者显示扫描的进度远落后于图像输入的进度,导致需要缓存大量数据。针对这种情况在视频流接收模块中维护了一个计数器,该计数器用于统计图像帧之间的间隔和pal的扫描进程,当两者出现较大偏差导致显示出现问题或者需要较大缓存时就复位后续显示系统,使其与图像数据流重新同步,以达到最佳的显示效果。fir滤波模块fir滤波模块从视频流接收模块中读取分离后的两路色差信号u和v数据进行低通滤波。pal制的图像显示中规定亮度信号的带宽为6mhz,色差信号的带宽为1.3mhz,因此要对色差信号进行低通滤波。通常低通滤波器由模拟电路实现,在fpga中则只能实现数字滤波器,结合fpga本身的特性,本发明采用较好实现的fir滤波器完成低通滤波功能。先在matlab软件中使用工具箱设计出符合要求的滤波器参数,然后导入到fpga中生成fir滤波器。在fpga实现滤波器的原理是卷积,将输入的数据跟对应的系数相乘,再将相乘后的数据加和。滤波器的阶数选择的越高,滤波的效果就会越好,但也会需要越多的资源。本发明选择24阶的对称fir滤波器。nco模块nco模块的全称是numericallycontrolledoscillator,即数控振荡器。根据“gb3174-1995pal-d制电视广播技术规范”中的规定,色差信号u和v需要经过正交平衡调制,因此需要产生75hz的色度副载波,通常在这一步还要对v副载波进行逐行倒相。本发明为了适应fpga,将逐行倒相放到调制时再实现,本发明在nco模块中仅仅生成不考虑逐行倒相的u和v副载波,即同频的、相位相差90°的两个正弦波信号。nco模块由一个存储正弦波形的片上随机存储器(ram)和扫描逻辑单元构成,扫描逻辑单元通过计算时钟与输出频率的比得到扫描步长,在时钟的驱动下读取ram中存储的正弦波数据,输出正弦波信号。产生正弦波有很多种方法,fpga中最常用的是查找表法,即计算一个周期内各个采样点的波形值存入ram中,再依次读取查找表中的数值,就可以输出完整的正弦波了。采样点越多则精度越高,但占用的存储空间就越多,为了在保证精度的前提下尽量减少占用空间,依据正弦波的特性只保存1/4周期,即sinx(0≤x<π/2)的波形,其余3/4的波形都可以根据这1/4的波形简单计算得出。x与sinx的换算关系见表1。表1xsinx0≤x<π/2sinxπ/2≤x<πsin(π-x)π≤x<3π/2-sin(x-π)3π/2≤x<2π-sin(2π-x)为了让nco模块能接收不同频率的时钟而输出固定频率的正弦波,采用可变步长的扫描方法,即每次不是读取相邻的存储单元,而是跳跃式的读取存储单元,跳跃的步伐越大,一个周期扫描的采样点就越少,输出的正弦波频率就越高。正交平衡调制模块正交平衡调制模块负责对色差信号u和v进行正交平衡调制,经过fir滤波的u信号与v信号跟nco模块产生的正弦波一同送往正交平衡调制模块。该模块使用两个有符号乘法器,对两个正弦波做调幅运算。pal制的时序产生模块时序产生模块的输入为时钟信号和复位信号,输出为送给信号嵌入模块的全同步信号、全消隐信号,以及送给合成模块(信号叠加模块)的色同步脉冲、色消隐信号和逐行倒相使能信号。pal制的时序在很多教材和资料上都有提及,但这些资料要么语焉不详,要么只是出于教育的目的编写,跟实际使用时的参数有出入。因此像编写一个使其能兼容各种型号的监视器并能通过修改参数适应不同需求的标准pal制的时序模块并非易事。本发明在完成这一部分工作时,主要的参考资料为itu-r(internationaltelecommunicationunion–radiocommunicationssector,国际电信联盟无线电通信组)发布的“itu-rbt。601-7”标准和中国发布的“gb3174-1995pal-d制电视广播技术规范”。时序产生模块输出pal制的全同步脉冲信号和全消隐信号,并输出在显示彩色图像时使用的色同步脉冲信号和色消隐信号。时序产生模块中使用了两个计数器,分别是行计数器和列计数器,列计数器用于记录从左至右的扫描,行计数器用于记录从上到下的扫描。将同步脉冲和消隐脉冲由时间转换为时钟个数后,通过判断计数器的值来输出同步脉冲信号和消隐信号。而在前述转换过程中,不同的时钟速度会导致不同的转换结果,不同分辨率下脉冲的宽度也不尽相同。为了输出正确的同步脉冲信号和消隐信号,将脉冲的宽度设置成可调整的,用户可以在调用ip核时根据具体的需求输入不同脉冲宽度参数。pal制输出参数对应关系见图3。图3中,pal_cnt_x为pal制显示一行的总像素数,包括有效像素和消隐像素,单位为时钟周期。pal_dis_x为行有效显示的像素数,pal_blank_h_before为行起始的消隐长度,pal_sync_slot为行同步脉冲宽度。场同步、场消隐及均衡脉冲和开槽脉冲等都可以由这些参数计算得出。为了实现逐行倒相,时序产生模块还输出了一个随行计数器变化的使能信号。合成模块合成模块从视频接收模块中取出亮度信号y,做一定的延时以保证跟调制后的色差信号u和v同步,然后对亮度信号y以及色差信号u和v进行有符号相加,相加时色差信号v根据从pal时序产生模块送出的行计数值进行逐行取反,以实现逐行倒相的功能。此外,合成模块还负责产生色同步门控脉冲和色消隐门控脉冲,以保证再合成后数据中包含正确的色同步信号。合成模块的输出即为彩色全电视信号。信号嵌入模块信号嵌入模块将同步脉冲信号和消隐信号嵌入到视频数据当中,再送给负责将数字信号转换为模拟信号的数模转换芯片。此时最终输出数据o的转换公式为:其中,i为合成模块的图像数据输出,为消隐脉冲,为同步脉冲。在fpga内很难实现浮点运算,因此对数据进行放大后再运算。用乘法器和加法器实现数据的运算。为了满足不同系统的需求,乘法器的流水周期是可调的,当其延时较小时会占用更少的逻辑资源,但较大的延时可以得到更好的时序结果。之后再用一个加法器对图像信号进行平移,以满足图像显示的标准。当本发明所述ip核工作在黑白模式时,视频流接收模块从输入数据流中提取出的亮度信号y的数据缓存,时序产生模块产生pal制的全同步脉冲信号和全消隐信号,信号嵌入模块将全同步脉冲信号和全消隐信号嵌入到视频数据中,然后输出。当本发明所述ip核工作在彩色模式时,视频流接收模块从输入数据流中提取出亮度信号y以及色差信号u和v的三路数据缓存,时序产生模块产生全同步脉冲信号、全消隐信号、色同步脉冲、色消隐信号以及行倒相使能信号,nco模块产生正弦和余弦副载波,fir滤波模块对u和v两路信号进行低通滤波,正交平衡调制模块对用滤波后的u和v信号对副载波进行调制,合成模块将u路信号逐行倒相后跟y信号和v信号合成,信号嵌入模块将全同步脉冲信号、全消隐信号、色同步脉冲、色消隐信号嵌入到合成的数据中,最终输出。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1