图像处理方法和系统的制作方法
【专利摘要】本发明公开了一种图像处理方法和系统,所述方法包括:根据图像数据的同步信号,对所述图像数据进行分辨率检测,获取检测分辨率;当所述检测分辨率与基准分辨率不一致时,将所述检测分辨率作为链表长度生成链表;根据所述链表,对所述图像数据进行图像处理。实施本发明的方法和系统,可避免生成错误链表、保证图像质量,进而提高图像处理系统的稳定性。
【专利说明】图像处理方法和系统【技术领域】
[0001]本发明涉及图像处理【技术领域】,特别是涉及一种图像处理方法和系统。
【背景技术】
[0002]在图像处理技术中,视频解码装置将视频信号解成特定格式的图像数据后,再经过 FPGA (Field-Programmable Gate Array,现场可编程门阵列)米集处理,用 DMA (DirectMemory Access,直接内存存取)方式通过PCIE总线将采集到的数据传送到显存或内存,然后利用GPU或者CPU对图像数据进行处理。
[0003]但是,受信号质量差或者温度,湿度等其它因素的影响,解码装置会进入异常状态,出现解码出错的情况,会使DMA传送到显存或内存的图像数据不完整,导致显示图像出现噪点、闪烁或异常条纹。
【发明内容】
[0004]基于此,有必要针对上述图像处理技术中DMA传送到显存或内存的图像数据不完整,导致显示图像出现噪点、闪烁或异常条纹的问题,提供一种图像处理方法和系统。
[0005]一种图像处理方法,包括以下步骤:
[0006]根据图像数据的同步信号,对所述图像数据进行分辨率检测,获取检测分辨率;
[0007]当所述检测分 辨率与基准分辨率不一致时,将所述检测分辨率作为链表长度生成链表;
[0008]根据所述链表,对所述图像数据进行图像处理。
[0009]一种图像处理系统,包括:
[0010]检测模块,用于根据图像数据的同步信号,对所述图像数据进行分辨率检测,获取检测分辨率;
[0011]链表模块,用于在所述检测分辨率与基准分辨率不一致时,将所述检测分辨率作为链表长度生成链表;
[0012]处理模块,用于根据所述链表,对所述图像数据进行图像处理。
[0013]上述图像处理方法和系统,根据图像数据的同步信号,对所述图像数据进行分辨率检测,获取检测分辨率,在所述检测分辨率与基准分辨率不一致时,将所述检测分辨率作为链表长度生成链表,可避免因同步信号中的分辨率信息与基准分辨率不一致,而生成错误的链表,降低链表出错率,进而提高根据链表进行的图像处理的正确率,可保证图像质量、提高图像处理系统的稳定性。
【专利附图】
【附图说明】
[0014]图1是本发明图像处理方法第一实施方式的流程示意图;
[0015]图2是本发明图像处理方法第二实施方式的流程示意图;
[0016]图3是本发明图像处理系统第一实施方式的结构示意图;[0017]图4是本发明图像处理系统第二实施方式的结构示意图。
【具体实施方式】
[0018]请参阅图1,图1是本发明图像处理方法第一实施方式的流程示意图。
[0019]本实施方式的所述图像处理方法包括以下步骤:
[0020]步骤101,根据图像数据的同步信号,对所述图像数据进行分辨率检测,获取检测分辨率。
[0021]步骤102,当所述检测分辨率与基准分辨率不一致时,将所述检测分辨率作为链表长度生成链表。
[0022]步骤103,根据所述链表,对所述图像数据进行图像处理。
[0023]本实施方式所述图像处理方法,根据图像数据的同步信号,对所述图像数据进行分辨率检测,获取检测分辨率,在所述检测分辨率与基准分辨率不一致时,将所述检测分辨率作为链表长度生成链表,可避免因同步信号中的分辨率信息与基准分辨率不一致,而生成错误的链表,降低链表出错率,进而提高根据链表进行的图像处理的正确率,可保证图像质量、提高图像处理系统的稳定性。
[0024]其中,对于步骤101,优选地,所述图像数据和与所述图像数据的同步信号均可通过预先获取视频图像获得,还可根据图像处理系统的需要,设定对所述图像数据进行分辨率检测的具体时间,可以对实时获取的图像数据进行分辨率检测,也可以隔一段时间检测一次,还可以定时检测。
[0025]优选地,当所述图像数据为解码后的图像数据,所述基准分辨率为对应解码装置的分辨率寄存器中的值或对应解码装置的制式寄存器中的值。所述图像数据还可以为经过除图像解码外的其他图像数据。
[0026]在一个实施例中,所述同步信号优选地包括视频有效区域指示信号(DE)、行同步信号(HS)和场同步信号(VS),所述根据图像数据的同步信号,对所述图像数据进行分辨率检测,获取检测分辨率的步骤包括以下步骤:
[0027]步骤1011,统计水平方向视频有效指示信号的高电平所含的像素时钟个数作为所述检测分辨率中的水平分辨率。
[0028]步骤1012,统计所述图像数据中两个场同步信号间视频有效区域指示信号的上升沿的个数作为所述检测分辨率中的垂直分辨率。
[0029]其中,对于步骤1011,当DE为高电平时,每一个像素时钟上升沿到来时,统计的计数值加1,DE下降沿到来时,用本次计数值赋值给保存水平分辨率的寄存器,同时计数器清零,准备下一次的统计。
[0030]对于步骤1012,在两个VS之间,每到来一个DE的上升沿,计数值加1,当VS上升沿到来时,用本次计数值赋值给保存垂直分辨率的寄存器,同时计数器清零,准备下一次的统计。
[0031]在另一个实施例中,在执行所述根据图像数据的同步信号,对所述图像数据进行分辨率检测,获取检测分辨率的步骤之前,还包括以下步骤:
[0032]实时从生成所述图像数据的生成装置获取所述图像数据和与所述图像数据对应的基准分辨率。[0033]其中,当所述图像数据为解码后的图像数据时,所述生成装置为解码装置,可读取对应解码装置的分辨率寄存器中的值为所述基准分辨率,或,读取对应解码装置的制式寄存器中的值为所述基准分辨率。
[0034]在其他实施例中,也可以从用于缓存所述图像数据的缓存器和所述基准分辨率的缓存器中获取所述图像数据和所述基准分辨率。还可以使用本领域技术人员惯用的其他方式获取。
[0035]对于步骤102,所述链表优选地可包括链表长度、所述图像数据的目标地址和源地址。
[0036]在一个实施例中,在所述将所述检测分辨率作为链表长度生成链表的步骤之后,还包括以下步骤:
[0037]判断是否已存有与所述图像数据对应的链表,若存在,将生成的链表替换原链表,并与所述图像数据唯一对应。
[0038]对于步骤103,所述图像处理包括依赖于所述链表进行的图像转存、图像数字化、图像编码、图像增强、图像复原、图像分割和图像分析等处理操作。
[0039]在一个实施例中,在所述根据所述链表,对所述图像数据进行图像处理的步骤之前,还包括以下步骤:
[0040]当所述检测分辨率与所述基准分辨率一致时,将所述基准分辨率作为链表长度生成链表。
[0041]其中,在所述将所述基准分辨率作为链表长度生成链表的步骤之前,还可包括以下步骤:
[0042]判断已有链表的链表长度是否为所述基准分辨率,若否,则将所述基准分辨率作为链表长度生成链表,若是,则不更改所述已有链表,并根据所述已有链表,对所述图像数据进行图像处理。
[0043]请参阅图2,图2是本发明图像处理方法第二实施方式的流程示意图。
[0044]本实施方式的图像处理方法与第一实施方式的区别在于:在所述根据所述链表,对所述图像数据进行图像处理的步骤之前,还包括以下步骤:
[0045]步骤201,当所述检测分辨率与从所述基准分辨率不一致时,对生成所述图像数据的生成装置执行复位操作。
[0046]步骤202,从复位后的生成装置中获取基准分辨率和图像数据。
[0047]步骤203,根据获取的图像数据的同步信号,对所述获取的图像数据进行分辨率检测,获取检测分辨率,并判断所述检测分辨率与获取的基准分辨率是否一致,若一致,则将获取的基准分辨率作为链表长度生成链表。
[0048]本实施方式所述的图像处理方法,在最新获取的检测分辨率与重新获取的基准分辨率一致时,将获取的基准分辨率作为链表长度生成链表,不一直采用检测分辨率作为链表长度生成链表,可在基准分辨率与检测分辨率持续一致时,将根据所述基准分辨率在先生成的链表及时下发,提高后续的图像处理的效率。
[0049]其中,对于步骤203,若所述检测分辨率与获取的基准分辨率不一致,循环执行步骤201至步骤203,直至所述检测分辨率与获取的基准分辨率一致。
[0050]以下所述是本发明图像处理方法第三实施方式。[0051]本实施方式的图像处理方法与第一实施方式和第二实施方式的区别在于:所述根据所述链表,对所述图像数据进行图像处理的步骤包括以下步骤:
[0052]根据所述链表,对解码后的图像数据进行直接内存存取。
[0053]本实施方式所述的图像处理方法,可保证解码出来的图像数据的实际大小(检测分辨率)与解码装置的解码寄存器中的分辨率信息(基准分辨率)一致,避免内存的图像数据出现不完整或“无效数据”的状况、进而避免显示的图像出现闪烁、噪点、异样的条纹。
[0054]其中,优选地可通过FPGA (现场可编程门阵列)、DDR (Double Data Rate,双倍速率同步动态随机存储器)、CPU、现存或者内存执行上述图像处理。
[0055]具体的操作过程如下:
[0056]CPU往FPGA中的DMA控制模块发送启动DMA的控制命令,DMA控制模块从DDR读
取链表。
[0057]FPGA根据链表信息(包含源地址,目标地址信息),从DDR读取图像数据,并将图像数据通过FPGA的PCIE IP传送到显存或者内存部分中相应的地址。
[0058]当解码装置检测到基准分辨率有变化时,即通过I2C总线向CPU发送中断信号,CPU通过I2C总线读取解码装置解码后的当前帧的分辨率寄存器中的值,并把读取的值作为链表长度用来重新生成链表,再通过PCIE总线把该值写到FPGA的对应寄存器中,FPGA同时使用fifo对图像数据进行缓存。
[0059]在缓存所述图像数据的同时,根据所述图像数据的同步信号,进行分辨率检测获得检测分辨率,并比较所述检测分辨率与所述基准分辨率,如果比较结果一致,则不发中断信息,继续所述重新生成的链表进行正常的DMA操作,
[0060]如果比较结果不一致,则表明链表长度出错,解码装置进入了异常工作状态,通过PCIE总线把FPGA的检测分辨率发送至CPU,同时向CPU发送一个指示链表长度出错的中断,CPU收到中断以后,即通过I2C总线向解码装置发送快速复位信号,并通过写寄存器快速初始化解码装置。
[0061]同时利用FPGA的检测分辨率暂时作为链表长度生成链表下发给FPGA进行DMA操作,CPU再次把从解码装置新读取的基准分辨率发送至FPGA,与FPGA检测分辨率比较,直至比较结果一致,即表明解码装置重新进入正常工作状态,随即利用基准分辨率重新生成链表,下发给FPGA写到DDR中,恢复正常的DMA操作。
[0062]请参阅图3,图3是本发明图像处理系统第一实施方式的结构示意图。
[0063]本实施方式的所述图像处理系统包括检测模块100、链表模块200和处理模块300,其中:
[0064]检测模块100,用于根据图像数据的同步信号,对所述图像数据进行分辨率检测,获取检测分辨率。
[0065]链表模块200,用于在所述检测分辨率与基准分辨率不一致时,将所述检测分辨率作为链表长度生成链表。
[0066]处理模块300,用于根据所述链表,对所述图像数据进行图像处理。
[0067]本实施方式所述图像处理系统,根据图像数据的同步信号,对所述图像数据进行分辨率检测,获取检测分辨率,在所述检测分辨率与基准分辨率不一致时,将所述检测分辨率作为链表长度生成链表,可避免因同步信号中的分辨率信息与基准分辨率不一致,而生成错误的链表,降低链表出错率,进而提高根据链表进行的图像处理的正确率,可保证图像质量、提高图像处理系统的稳定性。
[0068]其中,对于检测模块100,可根据图像处理系统的需要,设定对所述图像数据进行分辨率检测的具体时间,可以对实时获取的图像数据进行分辨率检测,也可以隔一段时间检测一次,还可以定时检测。
[0069]优选地,当所述图像数据为解码后的图像数据,所述基准分辨率为对应解码装置的分辨率寄存器中的值或对应解码装置的制式寄存器中的值。所述图像数据还可以为经过除图像解码外的其他图像数据。
[0070]在一个实施例中,所述同步信号优选地包括视频有效区域指示信号(DE)、行同步信号(HS)和场同步信号(VS),检测模块100还可用于:
[0071]统计水平方向视频有效指示信号的高电平所含的像素时钟个数作为所述检测分辨率中的水平分辨率。
[0072]统计所述图像数据中两个场同步信号间视频有效区域指示信号的上升沿的个数作为所述检测分辨率中的垂直分辨率。
[0073]其中,对于检测模块100,当DE为高电平时,每一个像素时钟上升沿到来时,统计的计数值加1,DE下降沿到来时,用本次计数值赋值给保存水平分辨率的寄存器,同时计数器清零,准备下一次的统计。
[0074]优选地,在两个VS之间,每到来一个DE的上升沿,计数值加1,当VS上升沿到来时,用本次计数值赋值给保存垂直分辨率的寄存器,同时计数器清零,准备下一次的统计。
[0075]在另一个实施例中,还包括获取模块,用于实时从生成所述图像数据的生成装置获取所述图像数据和与所述图像数据对应的基准分辨率。
[0076]其中,当所述图像数据为解码后的图像数据时,所述生成装置为解码装置,可读取对应解码装置的分辨率寄存器中的值为所述基准分辨率,或,读取对应解码装置的制式寄存器中的值为所述基准分辨率。
[0077]在其他实施例中,也可以从用于缓存所述图像数据的缓存器和所述基准分辨率的缓存器中获取所述图像数据和所述基准分辨率。还可以使用本领域技术人员惯用的其他方式获取。
[0078]对于链表模块200,所述链表优选地可包括链表长度、所述图像数据的目标地址和源地址。
[0079]在一个实施例中,链表模块200还用于判断是否已存有与所述图像数据对应的链表,若存在,将生成的链表替换原链表,并与所述图像数据唯一对应。
[0080]在另一个实施例中,链表模块200,还用于在所述检测分辨率与所述基准分辨率一致时,将所述基准分辨率作为链表长度生成链表。
[0081]其中,链表模块200还可在将所述基准分辨率作为链表长度生成链表之前,判断已有链表的链表长度是否为所述基准分辨率,若否,则将所述基准分辨率作为链表长度生成链表,若是,则不更改所述已有链表,并根据所述已有链表,对所述图像数据进行图像处理。
[0082]对于处理模块300,所述图像处理包括依赖于所述链表进行的图像转存、图像数字化、图像编码、图像增强、图像复原、图像分割和图像分析等处理操作。[0083]请参阅图4,图4是本发明图像处理系统第二实施方式的流程示意图。
[0084]本实施方式的图像处理系统与第一实施方式的区别在于:还包括调控模块400,用于在所述检测分辨率与从所述基准分辨率不一致时,对生成所述图像数据的生成装置执行复位操作,从复位后的生成装置中获取基准分辨率和图像数据,根据获取的图像数据的同步信号,对所述获取的图像数据进行分辨率检测,获取检测分辨率,并判断所述检测分辨率与获取的基准分辨率是否一致,若一致,则将获取的基准分辨率作为链表长度生成链表。
[0085]本实施方式所述的图像处理系统,在最新获取的检测分辨率与重新获取的基准分辨率一致时,将获取的基准分辨率作为链表长度生成链表,不一直采用检测分辨率作为链表长度生成链表,可在基准分辨率与检测分辨率持续一致时,将根据所述基准分辨率在先生成的链表及时下发,提高后续的图像处理的效率。
[0086]其中,对于调控模块400,若所述检测分辨率与获取的基准分辨率不一致,循环对生成所述图像数据的生成装置执行复位操作,从复位后的生成装置中获取基准分辨率和图像数据,根据获取的图像数据的同步信号,对所述获取的图像数据进行分辨率检测,获取检测分辨率,并判断所述检测分辨率与获取的基准分辨率是否一致,直至所述检测分辨率与获取的基准分辨率一致。
[0087]以下所述是本发明图像处理系统第三实施方式。
[0088]本实施方式的图像处理系统与第一实施方式和第二实施方式的区别在于:处理模块300还可用于根据所述链表,对解码后的图像数据进行直接内存存取。
[0089]本实施方式所述的图像处理系统,可保证解码出来的图像数据的实际大小(检测分辨率)与解码装置的解码寄存器中的分辨率信息(基准分辨率)一致,避免内存的图像数据出现不完整或“无效数据”的状况、进而避免显示的图像出现闪烁、噪点、异样的条纹。
[0090]其中,处理模块优选地可包括FPGA (现场可编程门阵列)、DDR、CPU、现存或者内存。
[0091]具体的操作过程如下:
[0092]CPU往FPGA中的DMA控制模块发送启动DMA的控制命令,DMA控制模块从DDR读
取链表。
[0093]FPGA根据链表信息(包含源地址,目标地址信息),从DDR读取图像数据,并将图像数据通过FPGA的PCIE IP传送到显存或者内存部分中相应的地址。
[0094]当解码装置检测到基准分辨率有变化时,即通过I2C总线向CPU发送中断信号,CPU通过I2C总线读取解码装置解码后的当前帧的分辨率寄存器中的值,并把读取的值作为链表长度用来重新生成链表,再通过PCIE总线把该值写到FPGA的对应寄存器中,FPGA同时使用fifo对图像数据进行缓存。
[0095]在缓存所述图像数据的同时,根据所述图像数据的同步信号,进行分辨率检测获得检测分辨率,并比较所述检测分辨率与所述基准分辨率,如果比较结果一致,则不发中断信息,继续所述重新生成的链表进行正常的DMA操作,
[0096]如果比较结果不一致,则表明链表长度出错,解码装置进入了异常工作状态,通过PCIE总线把FPGA的检测分辨率发送至CPU,同时向CPU发送一个指示链表长度出错的中断,CPU收到中断以后,即通过I2C总线向解码装置发送快速复位信号,并通过写寄存器快速初始化解码装置。
[0097]同时利用FPGA的检测分辨率暂时作为链表长度生成链表下发给FPGA进行DMA操作,CPU再次把从解码装置新读取的基准分辨率发送至FPGA,与FPGA检测分辨率比较,直至比较结果一致,即表明解码装置重新进入正常工作状态,随即利用基准分辨率重新生成链表,下发给FPGA写到DDR中,恢复正常的DMA操作。
[0098]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种图像处理方法,其特征在于,包括以下步骤: 根据图像数据的同步信号,对所述图像数据进行分辨率检测,获取检测分辨率; 当所述检测分辨率与基准分辨率不一致时,将所述检测分辨率作为链表长度生成链表; 根据所述链表,对所述图像数据进行图像处理。
2.根据权利要求1所述的图像处理方法,其特征在于,在所述根据所述链表,对所述图像数据进行图像处理的步骤之前,还包括以下步骤: 当所述检测分辨率与所述基准分辨率一致时,将所述基准分辨率作为链表长度生成链表。
3.根据权利要求1所述的图像处理方法,其特征在于,所述根据图像数据的同步信号,对所述图像数据进行分辨率检测,获取检测分辨率的步骤包括以下步骤: 统计水平方向视频有效指示信号的高电平所含的像素时钟个数作为所述检测分辨率中的水平分辨率; 统计所述图像数据中两个场同步信号间视频有效区域指示信号的上升沿的个数作为所述检测分辨率中的垂直分辨率。
4.根据权利要求1所述的图像处理方法,其特征在于,当所述图像数据为解码后的图像数据时: 读取对应解码装置的分辨率寄存器中的值为所述基准分辨率;或, 读取对应解码装置的制式寄存器中的值为所述基准分辨率。
5.根据权利要求4所述的图像处理方法,其特征在于,所述根据所述链表,对所述图像数据进行图像处理的步骤包括以下步骤: 根据所述链表,对解码后的图像数据进行直接内存存取。
6.根据权利要求1至5中任意一项所述的图像处理方法,其特征在于,在所述根据所述链表,对所述图像数据进行图像处理的步骤之前,还包括以下步骤: 当所述检测分辨率与从所述基准分辨率不一致时,对生成所述图像数据的生成装置执行复位操作; 从复位后的生成装置中获取基准分辨率和图像数据; 根据获取的图像数据的同步信号,对所述获取的图像数据进行分辨率检测,获取检测分辨率,并判断所述检测分辨率与获取的基准分辨率是否一致,若一致,则将获取的基准分辨率作为链表长度生成链表。
7.一种图像处理系统,其特征在于,包括: 检测模块,用于根据图像数据的同步信号,对所述图像数据进行分辨率检测,获取检测分辨率; 链表模块,用于在所述检测分辨率与基准分辨率不一致时,将所述检测分辨率作为链表长度生成链表; 处理模块,用于根据所述链表,对所述图像数据进行图像处理。
8.根据权利要求7所述的图像处理系统,其特征在于,所述链表模块还用于在所述检测分辨率与所述基准分辨率一致时,将所述基准分辨率作为链表长度生成链表。
9.根据权利要求7所述的图像处理系统,其特征在于,所述检测模块还用于:统计水平方向视频有效指示信号的高电平所含的像素时钟个数作为所述检测分辨率中的水平分辨率; 统计所述图像数据中两个场同步信号间视频有效区域指示信号的上升沿的个数作为所述检测分辨率中的垂直分辨率。
10.根据权利要求7至9中任意一项所述的图像处理系统,其特征在于,当所述图像数据为解码后的图 像数据,所述基准分辨率为对应解码装置的分辨率寄存器中的值或对应解码装置的制式寄存器中的值。
【文档编号】H04N19/86GK103596015SQ201310545657
【公开日】2014年2月19日 申请日期:2013年11月5日 优先权日:2013年11月5日
【发明者】陈燕凯 申请人:广东威创视讯科技股份有限公司