CN101506845A - 运动矢量检测装置 - Google Patents
运动矢量检测装置 Download PDFInfo
- Publication number
- CN101506845A CN101506845A CNA2007800314952A CN200780031495A CN101506845A CN 101506845 A CN101506845 A CN 101506845A CN A2007800314952 A CNA2007800314952 A CN A2007800314952A CN 200780031495 A CN200780031495 A CN 200780031495A CN 101506845 A CN101506845 A CN 101506845A
- Authority
- CN
- China
- Prior art keywords
- vertical direction
- motion vector
- projection
- data
- unit
- 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.)
- Granted
Links
Images
Landscapes
- Image Analysis (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及一种能够高精度地快速进行帧图像间的运动矢量的检测的运动矢量检测装置。本发明的运动矢量检测装置用于检测关于前面帧和当前帧(后面帧)的帧图像间的运动矢量,在该运动矢量检测装置中,首先对沿垂直方向分割帧图像得到的多个图像区域强调垂直方向的边缘,然后沿垂直方向取投影并生成1个水平行的量的投影数据。然后,搜索该投影数据与第1阈值的交叉点,提取与以各个交叉点为中心的运动矢量检测范围相当的当前帧的投影数据。并且,按照距上述各个交叉点的距离,对提取出的各个投影数据进行相加,根据该相加结果来检测关于帧图像的水平方向的运动矢量。
Description
技术领域
本发明涉及运动矢量检测装置,检测关于在时序上为前后关系的前面帧和后面帧的帧图像间的运动矢量。
背景技术
作为在抖动校正等中使用的帧图像间的运动矢量检测技术,使用代表点匹配方式,从连续取入的图像中检测运动矢量。在该代表点匹配方式中,在连续取入的图像中,在前面帧的图像的固定位置设定代表点,同时使当前帧的图像沿二维方向偏移来进行代表点的相关运算,从而把相关最高的偏移量检测为运动矢量。
但是,在以上的运动矢量检测技术中,代表点需要具有一定程度以上的亮度梯度,例如在把文档图像那样的黑白图像作为对象时,全部代表点的亮度梯度较低,不能高精度地检测移动量(运动矢量)。
作为改善这种不利情况的技术例如有专利文献1公开的技术。在该技术中,首先提取具有亮度梯度的图像的特征点,把所提取的特征点作为代表点进行代表点匹配处理,从而可以实现运动矢量的良好检测。
另外,专利文献2记载了一种方法,把图像分割为多个块,对每个块检测边缘并跟踪边缘的移动,从而检测运动矢量。在该方法中,为了减少像天空等那样空间频率低且没有特征图案时的错误判定、以及像格子门那样空间频率较高且具有许多特征点时的错误判定,利用每一块的边缘数进行加权,并评价可靠性。并且,作为边缘检测的方法使用零交叉法(zero crossing method)等。
专利文献1:日本专利第3534551号公报
专利文献2:日本专利第3164121号公报
但是,在专利文献1的技术中,虽然能够可靠地设定具有亮度梯度的代表点,但由于在帧图像中的整个搜索范围中依旧使像素一点一点地偏移来进行代表点的相关运算,所以每个代表点(特征点)需要相当大的运算量。因此,除非将代表点的数量抑制在一定数量以下,否则难以实现快速的运动矢量检测,难以实现实时处理。另一方面,如果代表点过少,则将导致运动矢量的检测精度下降。
另外,专利文献2公开的运动矢量检测方法,对于按照每个块计算出的运动矢量的可靠性,利用每个块的边缘数进行加权,从而减少错误判定,但在要求实时处理时,存在很难同样地评价全部块的问题。
即,为了同样地评价整个图像,需要在取入整体图像之后进行运动矢量检测处理,而这不适合于实时处理。为了满足处理时间的要求,需要以块为单位来完成处理并一个接一个地进行处理,此时由于不能以同样的方式处理各个块,所以仅利用边缘数对各个块同样地进行加权,未必能够获得满意的结果。
发明内容
本发明就是为了解决上述问题而提出的,其目的在于,提供一种运动矢量检测装置,其能够高精度地快速进行帧图像间的运动矢量的检测,同时满足实时处理要求,并能够评价根据各个块计算出的运动矢量的可靠性。
本发明的运动矢量检测装置的第一方式是检测关于在时序上为前后关系的前面帧和后面帧的帧图像间的运动矢量的运动矢量检测装置,该运动矢量检测装置具有:边缘强调单元,对于沿垂直方向依次反复进行水平行的像素扫描而读出的帧图像,该边缘强调单元针对沿垂直方向以具有一定分割宽度的方式被分割为多个块而得到的每个块,强调垂直方向的边缘;投影单元,对由所述边缘强调单元强调了边缘的图像,该投影单元针对每个所述块在垂直方向上取投影,按照每个所述块生成具有1个水平行的量的数据数组的投影数据;确定单元,关于通过所述投影单元得到的针对所述前面帧的投影数据,该确定单元确定按照所述数据数组的要素顺序将数组要素的值曲线化而得到的波形、与数组要素的值为预定的固定值的直线交叉的各个交叉点的数组要素的位置;提取单元,其从通过所述投影单元得到的针对所述后面帧的投影数据中,提取以所述各个交叉点的数组要素的位置为中心的预定范围的数据数组;相加单元,对于由所述提取单元提取出的预定范围的各个数据数组,针对所述各个交叉点的数组要素的位置,对相对位置相同的各个数组要素的值进行相加;以及检测单元,其根据由所述相加单元相加得到的相加结果,检测关于帧图像的水平方向的运动矢量。
本发明的运动矢量检测装置的第二方式是检测关于在时序上为前后关系的前面帧和后面帧的帧图像间的运动矢量的运动矢量检测装置,该运动矢量检测装置具有:边缘强调单元,对于沿垂直方向依次反复进行水平行的像素扫描而读出的帧图像,该边缘强调单元针对沿水平方向以具有一定分割宽度的方式被分割为多个块而得到的每个块,强调水平方向的边缘;投影单元,对由所述边缘强调单元强调了边缘的图像,该投影单元针对每个所述块在水平方向上取投影,按照每个所述块生成具有1个垂直行的量的数据数组的投影数据;确定单元,关于通过所述投影单元得到的针对所述前面帧的投影数据,该确定单元确定按照所述数据数组的要素顺序将数组要素的值曲线化而得到的波形、与数组要素的值为预定的固定值的直线交叉的各个交叉点的数组要素的位置;提取单元,其从通过所述投影单元得到的针对所述后面帧的投影数据中,提取以所述各个交叉点的数组要素的位置为中心的预定范围的数据数组;相加单元,对于由所述提取单元提取出的预定范围的各个数据数组,针对所述各个交叉点的数组要素的位置,对相对位置相同的各个数组要素的值进行相加;以及检测单元,其根据由所述相加单元相加得到的相加结果,检测关于帧图像的垂直方向的运动矢量。
本发明的运动矢量检测装置的第三方式是检测关于在时序上为前后关系的前面帧和后面帧的帧图像间的运动矢量的运动矢量检测装置,该运动矢量检测装置具有:边缘强调单元,对于沿垂直方向依次反复进行水平行的像素扫描而读出的帧图像,该边缘强调单元针对沿垂直方向以具有一定分割宽度的方式被分割为多个块而得到的每个块,强调垂直方向的边缘;投影单元,对于由所述边缘强调单元强调了边缘的图像,该投影单元针对每个所述块在垂直方向上取投影,按照每个所述块生成具有1个水平行的量的数据数组的投影数据;最大值获取单元,其在通过所述投影单元得到的针对所述后面帧的后面帧投影数据的数组要素中求出最大值;确定单元,关于通过所述投影单元得到的针对所述前面帧的前面帧投影数据,该确定单元确定按照所述数据数组的要素顺序将数组要素的值曲线化而得到的波形、与数组要素的值为预定的固定值的直线交叉的各个交叉点的数组要素的位置并作为交叉点信息输出;提取单元,其从所述后面帧投影数据中,提取以所述各个交叉点的数组要素的位置为中心的预定范围的数据数组;相加单元,对于由所述提取单元提取出的预定范围的各个数据数组,针对所述各个交叉点的数组要素的位置,对相对位置相同的各个数组要素的值进行相加,并根据得到的相加结果来计算每个所述块的水平方向运动矢量;以及检测单元,其根据由所述相加单元计算出的每个所述块的水平方向运动矢量,检测帧图像整体的水平方向运动矢量,所述检测单元使用由所述最大值获取单元得到的所述后面帧投影数据的所述最大值、由所述相加单元得到的所述相加结果、和由所述确定单元得到的所述交叉点信息中的至少一方,来进行每个所述块的水平方向运动矢量的可靠性评价。
本发明的运动矢量检测装置的第四方式是检测关于在时序上为前后关系的前面帧和后面帧的帧图像间的运动矢量的运动矢量检测装置,该运动矢量检测装置具有:边缘强调单元,对于沿垂直方向依次反复进行水平行的像素扫描而读出的帧图像,该边缘强调单元针对沿水平方向以具有一定分割宽度的方式被分割为多个块而得到的每个块,强调水平方向的边缘;投影单元,对于由所述边缘强调单元强调了边缘的图像,该投影单元针对每个所述块在水平方向取投影,按照每个所述块生成具有1个垂直行的量的数据数组的投影数据;最大值获取单元,其在通过所述投影单元得到的针对所述后面帧的后面帧投影数据的数组要素中求出最大值;确定单元,关于通过所述投影单元得到的针对所述前面帧的前面帧投影数据,该确定单元确定按照所述数据数组的要素顺序将数组要素的值曲线化而得到的波形、与数组要素的值为预定的固定值的直线交叉的各个交叉点的数组要素的位置;提取单元,其从所述后面帧投影数据中,提取以所述各个交叉点的数组要素的位置为中心的预定范围的数据数组;相加单元,对于由所述提取单元提取出的预定范围的各个数据数组,针对所述各个交叉点的数组要素的位置,对相对位置相同的各个数组要素的值进行相加,并根据得到的相加结果来计算每个所述块的垂直方向运动矢量;以及检测单元,其根据由所述相加单元计算出的每个所述块的垂直方向运动矢量,检测帧图像整体的垂直方向运动矢量,所述检测单元使用由所述最大值获取单元得到的所述后面帧投影数据的所述最大值、由所述相加单元得到的所述相加结果、和由所述确定单元得到的所述交叉点信息中的至少一方,来进行所述每个块的垂直方向运动矢量的可靠性评价。
根据本发明的运动矢量检测装置的第一方式,对于帧图像中的预定的图像区域强调垂直方向的边缘,对被强调了边缘的图像在垂直方向取投影,生成具有1个水平行的量的数据数组的投影数据,同时对于前面帧的投影数据,确定按照数据数组的要素顺序将数组要素的值曲线化而得到的波形、与数组要素的值为预定的固定值的直线进行交叉的各个交叉点的数组要素的位置。并且,从后面帧投影数据中,提取以各个交叉点的数组要素的位置为中心的预定范围的数据数组,同时对于所提取的预定范围的各个数据数组,针对各个交叉点的数组要素的位置,对相对位置相同的各个数组要素的值进行相加,根据该相加结果检测关于帧图像的水平方向的运动矢量。结果,可以高精度地快速进行帧图像间的运动矢量的检测。
根据本发明的运动矢量检测装置的第二方式,对于帧图像中的预定的图像区域强调水平方向的边缘,对被强调了边缘的图像在水平方向取投影,生成具有1个垂直行的量的数据数组的投影数据,同时对于前面帧的投影数据,确定按照数据数组的要素顺序将数组要素的值曲线化的波形、与数组要素的值为预定的固定值的直线进行交叉的各个交叉点的数组要素的位置。并且,从后面帧投影数据中,提取以各个交叉点的数组要素的位置为中心的预定范围的数据数组,同时对于所提取的预定范围的各个数据数组,针对各个交叉点的数组要素的位置,对相对位置相同的各个数组要素的值进行相加,根据该相加结果检测关于帧图像的垂直方向的运动矢量。结果,可以高精度地快速进行帧图像间的运动矢量的检测。
根据本发明的运动矢量检测装置的第三方式,检测单元使用由最大值获取单元得到的后面帧投影数据的最大值、由相加单元得到的相加结果、和由确定单元得到的交叉点信息中的至少一方,进行每个块的水平方向运动矢量的可靠性评价,所以能够把从可靠性较低的块得到的水平方向运动矢量除外,其结果,能够计算可靠性较高的帧图像整体的水平方向运动矢量。
根据本发明的运动矢量检测装置的第四方式,检测单元使用由最大值获取单元得到的后面帧投影数据的最大值、由加法单元得到的相加结果、和由确定单元得到的交叉点信息中的至少一方,进行每个块的垂直方向运动矢量的可靠性评价,所以能够把从可靠性较低的块得到的垂直方向运动矢量除外,其结果能够计算可靠性较高的帧图像整体的垂直方向运动矢量。
本发明的目的、特征、形势和优点,根据下面的具体说明和附图将更加明确。
附图说明
图1是表述本发明的实施方式1的运动矢量检测装置1、实施方式2的运动矢量检测装置1A、实施方式3的运动矢量检测装置1B和实施方式4的运动矢量检测装置1C的主要部分结构的方框图。
图2是用于说明帧图像中的像素扫描方向的图。
图3是表示水平方向运动矢量检测部2的主要部分结构的方框图。
图4是表示垂直方向块投影部23的主要部分结构的方框图。
图5是表示垂直方向块水平方向运动矢量计算部31的主要部分结构的方框图。
图6是表示垂直方向运动矢量检测部4的主要部分结构的方框图。
图7是表示水平方向块投影部43的主要部分结构的方框图。
图8是表示水平方向块垂直方向运动矢量计算部50的主要部分结构的方框图。
图9是用于说明垂直方向图像分割部21和垂直方向块投影部23的动作的图。
图10是用于说明n值化器314和504的n值化处理的图。
图11是用于说明第1阈值交叉点搜索部29、垂直方向块投影数据读出部30和垂直方向块水平方向运动矢量计算部31的动作的图。
图12是用于说明加法器315和峰值检测部317的动作的图。
图13是用于说明水平方向图像分割部41和水平方向块投影部43的动作的图。
图14是用于说明第3阈值交叉点搜索部48、水平方向块投影数据读出部49和水平方向块垂直方向运动矢量计算部50的动作的图。
图15是用于说明加法器505和峰值检测部507的动作的图。
图16是表示本发明的实施方式2的运动矢量检测装置1A的水平方向运动矢量检测部2A的主要部分结构的方框图。
图17是表示运动矢量检测装置1A的垂直方向运动矢量检测部4A的主要部分结构的方框图。
图18是表示本发明的实施方式3的运动矢量检测装置1C的水平方向运动矢量检测部2B的主要部分结构的方框图。
图19是表示垂直方向块水平方向运动矢量计算部310的主要部分结构的方框图。
图20是垂直方向运动矢量检测部4B的主要部分结构的方框图。
图21是表示水平方向块垂直方向运动矢量计算部500的主要部分结构的方框图。
图22是说明使用第1垂直方向块投影数据最大值判定各个垂直方向块的有效/无效的方法的图。
图23是示意表示垂直方向块的有效/无效的判定的图。
图24是说明使用垂直方向块n值化相加数据峰值判定各个垂直方向块的有效/无效的方法的图。
图25是示意表示垂直方向块的有效/无效的判定的图。
图26是说明使用第1阈值交叉点的个数判定各个垂直方向块的有效/无效的方法的图。
图27是示意表示垂直方向块的有效/无效的判定的图。
图28是示意表示垂直方向块的有效/无效的判定的图。
图29是说明图像整体的水平方向运动矢量的确定方法的一例的图。
图30是说明图像整体的水平方向运动矢量的确定方法的一例的图。
图31是说明使用第1水平方向块投影数据最大值判定各个水平方向块的有效/无效的方法的图。
图32是示意表示水平方向块的有效/无效的判定的图。
图33是说明使用水平方向块n值化相加数据峰值判定各个水平方向块的有效/无效的方法的图。
图34是示意表示水平方向块的有效/无效的判定的图。
图35是说明使用第3阈值交叉点的个数判定各个水平方向块的有效/无效的方法的图。
图36是示意表示水平方向块的有效/无效的判定的图。
图37是示意表示水平方向块的有效/无效的判定的图。
图38是说明图像整体的垂直方向运动矢量的确定方法的一例的图。
图39是说明图像整体的垂直方向运动矢量的确定方法的一例的图。
图40是表示本发明的实施方式4的运动矢量检测装置1C的水平方向运动矢量检测部2C的主要部分结构的方框图。
图41是表示运动矢量检测装置1C的垂直方向运动矢量检测部4C的主要部分结构的方框图。
具体实施方式
实施方式1
<运动矢量检测装置1的结构>
图1是表示本发明的实施方式1的运动矢量检测装置1的主要部分结构的方框图。
运动矢量检测装置1用于检测例如在动态图像中表示画面内的被摄体的移动的图像运动矢量,检测关于在时序上为前后关系的前面帧和后面帧的帧图像间的运动矢量。由该运动矢量检测装置1检测出的运动矢量被用于摄像机的抖动校正等。另外,通过进行如图2所示的水平方向的像素扫描和垂直方向的行扫描而读出输入到运动矢量检测装置1的帧图像。
运动矢量检测装置1具有输入端子11、水平方向运动矢量检测部2、垂直方向运动矢量检测部4、和两个输出端子12、13。关于该水平方向运动矢量检测部2和垂直方向运动矢量检测部4,其功能例如可以利用微处理器从软件上实现,另外还可以大部分利用硬件来实现(利用软件实现一部分)。当然,也可以利用硬件实现全部功能。
输入端子11被输入例如由摄像机内的摄像元件获取的图像数据(动态图像)和视频信号等的图像数据(动态图像)。在水平方向运动矢量检测部2中,检测输入到输入端子11的图像数据的水平方向的运动矢量,并从输出端子12输出该检测出的水平方向运动矢量。
另一方面,在垂直方向运动矢量检测部4中,检测输入到输入端子11的图像数据的垂直方向的运动矢量。从输出端子13输出由该垂直方向运动矢量检测部4检测出的垂直方向运动矢量。
以下,依次说明水平方向运动矢量检测部2和垂直方向运动矢量检测部4的结构。
图3是表示水平方向运动矢量检测部2的主要部分结构的方框图。
水平方向运动矢量检测部2具有输入端子20、垂直方向图像分割部21、垂直方向边缘提取滤波部22、垂直方向块投影部23、第1垂直方向块投影数据最大值保存部24、比特数削减部25、和第1垂直方向块投影行存储器26。并且,水平方向运动矢量检测部2具有第2垂直方向块投影行存储器27、第2垂直方向块投影数据最大值保存部28、第1阈值交叉点搜索部29、垂直方向块投影数据读出部30、垂直方向块水平方向运动矢量计算部31、水平方向运动矢量确定部32、和输出端子33。关于水平方向运动矢量检测部2的以上各个部分,简单说明其功能(有关具体动作将在后面说明)。
垂直方向图像分割部21沿垂直方向分割输入到输入端子20的帧图像,输出沿垂直方向分割而成的块(以下也称为“垂直方向块”)。
垂直方向边缘提取滤波部22对经垂直方向图像分割部21分割而成的每个块执行用于进行边缘提取的滤波处理。另外,有时把垂直方向图像分割部21和垂直方向边缘提取滤波部22统称为边缘强调单元。
垂直方向块投影部23对于从垂直方向边缘提取滤波部22输出的已完成边缘强调的垂直方向块,在垂直方向上取投影,按照每个垂直方向块输出投影数据。
第1垂直方向块投影数据最大值保存部24保存从垂直方向块投影部23输出的当前帧的垂直方向块的投影数据中的最大值(以下称为“当前帧的垂直方向块投影数据最大值”或“第1垂直方向块投影数据最大值”)。并且,第1垂直方向块投影数据最大值保存部24根据第1垂直方向块投影数据最大值,计算后面叙述的第2阈值。
比特数削减部25根据保存在第1垂直方向块投影数据最大值保存部24中的第1垂直方向块投影数据最大值,削减从垂直方向块投影部23输出的垂直方向块的投影数据的比特数。把比特数被削减后的垂直方向块的投影数据称为“第1垂直方向块投影数据”。
第1垂直方向块投影行存储器26保存通过比特数削减部25削减了比特数的第1垂直方向块投影数据。
第2垂直方向块投影行存储器27把从第1垂直方向块投影行存储器26发送的垂直方向块投影数据,保存为前面帧的垂直方向块的投影数据(以下也称为“第2垂直方向块投影数据”)。
第2垂直方向块投影数据最大值保存部28把从第1垂直方向块投影数据最大值保存部24输出的第1垂直方向块投影数据最大值,保存为关于前面帧的“第2垂直方向块投影数据最大值”(也称为“前面帧的垂直方向块投影数据最大值”)。并且,第2垂直方向块投影数据最大值保存部28根据第2垂直方向块投影数据最大值计算后面叙述的第1阈值。
第1阈值交叉点搜索部29求出保存在第2垂直方向块投影行存储器27中的关于前面帧的第2垂直方向块投影数据的波形与由第2垂直方向块投影数据最大值保存部28计算出的第1阈值交叉的点,输出该交叉点(以下也称为“第1阈值交叉点”)的信息。
垂直方向块投影数据读出部30从第1垂直方向块投影行存储器26读出第1垂直方向块投影数据,该第1垂直方向块投影数据位于以第1阈值交叉点搜索部29求出的第1阈值交叉点为中心的前后预定范围(运动矢量检测范围)内。
垂直方向块水平方向运动矢量计算部31使用从第1垂直方向块投影数据最大值保存部24输出的第2阈值,将由垂直方向块投影数据读出部30读出的第1垂直方向块投影数据分别进行n值化(n为2以上的整数),来进行比特数的削减,同时按照距第1阈值交叉点的距离对被n值化后的投影数据进行相加。
水平方向运动矢量确定部32根据来自垂直方向块水平方向运动矢量计算部31的输出,确定图像的水平方向运动矢量。从输出端子33输出此处确定的图像的水平方向运动矢量。
图4是表示垂直方向块投影部23的主要部分结构的方框图。
垂直方向块投影部23具有输入端子231、针对水平行逐行进行数据相加的加法器232、逐次保存由加法器232进行相加后的数据的缓冲存储器即垂直方向投影临时存储器233、和输出端子234。
将由垂直方向边缘提取滤波部22强调了垂直方向上的边缘的图像按照每个垂直方向块输入到输入端子231。通过加法器232和垂直方向投影临时存储器233,对输入到输入端子231的图像按照每个垂直方向块在垂直方向获取投影。具体地讲,在加法器232中,对垂直方向块的1个水平行的量的数据、和从垂直方向投影临时存储器233读出的1个水平行的量的数据进行相加,并将相加结果再次返回并存储在垂直方向投影临时存储器233中。当通过反复这种相加动作而结束垂直方向块的全部水平行的相加后,从输出端子234输出全部水平行的相加数据即垂直方向的投影数据。
图5是表示垂直方向块水平方向运动矢量计算部31的主要部分结构的方框图。
垂直方向块水平方向运动矢量计算部31具有3个输入端子311~313、n值化器314、对通过n值化器314被n值化的第1垂直方向块投影数据进行相加的加法器315、逐次保存由加法器315进行了相加的数据的缓冲存储器即水平方向运动矢量加法存储器316、峰值检测器317、和输出端子318。
从垂直方向块投影数据读出部30输出的第1垂直方向块投影数据输入到输入端子311,从第1垂直方向块投影数据最大值保存部24输出的第2阈值输入到输入端子312。并且,从第1阈值交叉点搜索部29输出的第1阈值交叉点的信息输入到输入端子313。
n值化器314根据从输入端子312输入的第2阈值,对从输入端子311输入的第1垂直方向块投影数据进行n值化(例如3值化)。
加法器315以第1阈值交叉点为中心,对被n值化器314进行了n值化后的第1垂直方向块投影数据和从水平方向运动矢量加法存储器316读出的数据进行相加,并将相加结果再次存储在水平方向运动矢量加法存储器316中。通过反复这种相加动作而结束针对垂直方向块的全部第1阈值交叉点的相加后,将关于垂直方向块的相加数据输出给峰值检测器317。
峰值检测器317检测从加法器315输出的相加数据中的峰值位置(后面叙述的水平方向运动矢量)。由该峰值检测器317检测出的峰值位置通过输出端子318输入到水平方向运动矢量确定部32。
下面,说明垂直方向运动矢量检测部4的结构。
图6是表示垂直方向运动矢量检测部4的主要部分结构的方框图。
垂直方向运动矢量检测部4具有输入端子40、水平方向图像分割部41、水平方向边缘提取滤波部42、水平方向块投影部43、第1水平方向块投影行存储器44、和第1水平方向块投影数据最大值保存部45。并且,垂直方向运动矢量检测部4具有第2水平方向块投影行存储器46、第2水平方向块投影数据最大值保存部47、第3阈值交叉点搜索部48、水平方向块投影数据读出部49、水平方向块垂直方向运动矢量计算部50、垂直方向运动矢量确定部51、和输出端子52。关于以上的垂直方向运动矢量检测部4的各个部分简单说明其功能(有关具体动作将在后面说明)。
水平方向图像分割部41沿水平方向对输入到输入端子40的帧图像进行分割,并输出沿水平方向分割而得到的块(以下也称为“水平方向块”)。
水平方向边缘提取滤波部42对由水平方向图像分割部41分割而得到的每个块执行用于进行边缘提取的滤波处理。另外,有时把水平方向图像分割部41和水平方向边缘提取滤波部42统称为边缘强调单元。
水平方向块投影部43对从水平方向边缘提取滤波部42输出的已进行了边缘强调的水平方向块,在水平方向取投影,按照每个水平方向块输出投影数据。
第1水平方向块投影行存储器44把从水平方向块投影部43输出的水平方向块的投影数据,保存为当前帧的水平方向块投影数据(以下也称为“第1水平方向块投影数据”)。
第1水平方向块投影数据最大值保存部45保存从水平方向块投影部43输出的当前帧的水平方向块的投影数据中的最大值(以下也称为“当前帧的水平方向块投影数据最大值”或“第1水平方向块投影数据最大值”)。
第2水平方向块投影行存储器46把从第1水平方向块投影行存储器44发送的水平方向块投影数据,保存为前面帧的水平方向块投影数据(以下也称为“第2水平方向块投影数据”)。
第2水平方向块投影数据最大值保存部47把从第1水平方向块投影数据最大值保存部45输出的第1水平方向块投影数据最大值,保存为关于前面帧的“第2水平方向块投影数据最大值”(也称为“前面帧的水平方向块投影数据最大值”)。并且,第2水平方向块投影数据最大值保存部47根据第2水平方向块投影数据最大值来计算后面叙述的第3阈值和第4阈值。
第3阈值交叉点搜索部48求出保存在第2水平方向块投影行存储器46中的关于前面帧的第2水平方向块投影数据、与由第2水平方向块投影数据最大值保存部47计算出的第3阈值进行交叉的点,输出该交叉点(以下也称为“第3阈值交叉点”)的信息。
水平方向块投影数据读出部49从第1水平方向块投影行存储器44读出第1水平方向块投影数据,该第1水平方向块投影数据位于以第3阈值交叉点搜索部48求出的第3阈值交叉点为中心的前后预定范围(运动矢量检测范围)内。
水平方向块垂直方向运动矢量计算部50使用从第2水平方向块投影数据最大值保存部47输出的第4阈值,对由水平方向块投影数据读出部49读出的第1水平方向块投影数据分别进行n值化(n为2以上的整数),进行比特数的削减,同时按照距第3阈值交叉点的距离对被n值化后的投影数据进行相加。
垂直方向运动矢量确定部51根据水平方向块垂直方向运动矢量计算部50的输出,来确定图像的垂直方向运动矢量。从输出端子52输出此处确定的图像的垂直方向运动矢量。
图7是表示水平方向块投影部43的主要部分结构的方框图。
水平方向块投影部43具有输入端子431、进行水平方向块的1个水平行数据的相加的加法器432、逐次保存由加法器432进行相加的数据的缓冲存储器即水平方向投影临时存储器433、和输出端子434。
由水平方向边缘提取滤波部42强调了水平方向上的边缘的图像输入到输入端子431。通过加法器432和水平方向投影临时存储器433,按照每个水平方向块对输入到输入端子431的图像在水平方向取投影。具体地讲,关于水平方向块内的1个水平行的像素,利用加法器432对从输入端子431输入的像素、和由加法器432对相加到前一像素并存储在水平方向投影临时存储器433中的相加结果进行相加,把该相加结果再次返回存储在水平方向投影临时存储器433中。通过反复这种相加动作,在水平方向块中的1个水平行的相加结束后,从输出端子434输出该水平方向块中的1个水平行的全部像素的相加数据即水平方向的投影数据。以后,同样处理下一个水平方向块的水平方向投影数据,在对1个水平行结束全部水平方向块的处理后,进行接下来的1个水平行的处理。
图8是表示水平方向块垂直方向运动矢量计算部50的主要部分结构的方框图。
水平方向块垂直方向运动矢量计算部50具有3个输入端子501~503、n值化器504、进行通过n值化器504被n值化的第1水平方向块投影数据的相加的加法器505、逐次保存由加法器505相加的数据的缓冲存储器即垂直方向运动矢量加法存储器506、峰值检测器507、和输出端子508。
从水平方向块投影数据读出部49输出的第1水平方向块投影数据输入到输入端子501,从第2水平方向块投影数据最大值保存部47输出的第4阈值输入到输入端子502。并且,从第3阈值交叉点搜索部48输出的第3阈值交叉点的信息输入到输入端子503。
n值化器504根据从输入端子502输入的第4阈值,对从输入端子501输入的第1水平方向块投影数据进行n值化(例如3值化)。
加法器505以第3阈值交叉点为中心,对通过n值化器504被n值化的第1水平方向块投影数据和从垂直方向运动矢量加法存储器506读出的数据进行相加,并将相加结果再次存储在垂直方向运动矢量加法存储器506中。通过反复这种相加动作,在针对关于水平方向块的全部第3阈值交叉点的相加结束后,将关于水平方向块的相加数据输出给峰值检测器507。
峰值检测器507检测从加法器505输出的相加数据中的峰值位置(后面叙述的垂直方向运动矢量)。由该峰值检测器507检测出的峰值位置通过输出端子508输入垂直方向运动矢量确定部51。
下面,说明具有上述结构的运动矢量检测装置1的动作。
<运动矢量检测装置1的动作>
首先,说明在运动矢量检测装置1中检测图像的水平方向运动矢量的水平方向运动矢量检测部2的动作。
按照图2所示沿垂直方向依次反复进行水平行的像素扫描而读出的帧图像,被输入图3所示的水平方向运动矢量检测部2的输入端子20,然后由垂直方向图像分割部21沿垂直方向分割成块。即,在垂直方向图像分割部21中,设定在帧图像中沿垂直方向分割而得到的多个图像区域(垂直方向块)。由此,在以后的处理中对每个垂直方向块进行处理和管理。
在垂直方向图像分割部21中,例如按照图9(a)所示,640像素×480像素的图像数据沿垂直方向被分割成为具有64像素宽度(分割宽度)的7个垂直方向块vb0~vb6。另外,虽然在检测水平方向运动矢量时不使用垂直方向的最下级的图像数据vb7,但占据帧图像的大部分的7个垂直方向块vb0~vb6用于检测水平方向运动矢量,所以认为在检测精度方面没有特别问题。在此,不必一定设为图9(a)所示的分割宽度和分割数量。
由垂直方向图像分割部21按照图9(a)所示分割为7个垂直方向块vb0~vb6的图像,在垂直方向边缘提取滤波部22中进行沿垂直方向延伸的边缘分量的提取,换言之,实施对在水平方向急剧变化的图像部分进行强调的滤波处理。作为在该滤波处理中使用的滤波器,可以使用单纯地获取与水平方向上相邻的像素之间的差分的(1,-1)2抽头滤波器、或相当于二次微分的(-1,2,-1)3抽头滤波器等。另外,并不是必须使用这种滤波器,只要是在水平方向的亮度变化增大的图像部分中输出值上升的滤波器即可。
由垂直方向边缘提取滤波部22对各个垂直方向块(图像区域)vb0~vb6强调了垂直方向的边缘的图像数据,输入到垂直方向块投影部23,由垂直方向块投影部23在垂直方向进行投影。通过该投影,能够降低垂直方向的(行间)噪声分量,并且能够进一步强调垂直方向的边缘分量,所以能够使与特征点对应的垂直方向边缘醒目,提高运动矢量检测精度。关于垂直方向块投影部23的动作,参照图9(b)所示的示意图进行说明。
在垂直方向块投影部23中,在图9(a)所示的各个垂直方向块vb0~vb6的输入完成的时刻、即被强调了边缘的各个垂直方向块vb0~vb6中的最末行的最后像素被输入的时刻,生成具有1个水平行的量的数据数组Mv的各个垂直方向块投影数据vn0~vn6(图9(b))的全部数组要素。另外,数据数组Mv具有水平行的总像素数(例如640)个数组要素,但在(1,-1)那样的2抽头滤波器中,有效要素是水平行的总像素数—1(例如639)个,在(-1,2,-1)的3抽头滤波器中,有效要素是水平行的总像素数—2(例如638)个。
具体地讲,如图4所示,通过输入端子231输入的各个垂直方向块vn0~vn6的图像数据(实施了垂直方向的边缘强调的图像数据),被依次输入加法器232。在加法器232中,首先将输入的垂直方向块的最先的水平行写入垂直方向投影临时存储器233中,而不读出垂直方向投影临时存储器233中的数据。接着,在加法器232中,读出存储在垂直方向投影临时存储器233中的截止到前面行的相加结果,将其与从输入端子231输入的垂直方向块的1个水平行进行相加,并把该相加结果写回到垂直方向投影临时存储器233中。
并且,在垂直方向块的最末水平行被输入加法器232后,读出保存在垂直方向投影临时存储器233中的截止到前面行的相加结果,将其与从输入端子231输入的垂直方向块的最末行进行相加,并从输出端子234把该相加结果即垂直方向块的全部水平行的相加数据,作为垂直方向块的投影数据,输出给第1垂直方向块投影数据最大值保存部24和比特数削减部25。
另外,也可以把在加法器232中对垂直方向块的全部水平行进行了相加的投影数据暂且存储在垂直方向投影临时存储器233中,在输入下一个垂直方向块的最先行时,读出垂直方向投影临时存储器233中的投影数据,并从输出端子234输出。
在第1垂直方向块投影数据最大值保存部24中,计算关于从垂直方向块投影部23输出的垂直方向块的投影数据的最大值,并保存为第1垂直方向块投影数据最大值(当前帧的垂直方向块投影数据最大值)。即,第1垂直方向块投影数据最大值保存部24在关于当前帧(后面帧)的投影数据的数据数组Mv(图9(b))的数组要素中求出最大值,并存储该最大值。
并且,在第1垂直方向块投影数据最大值保存部24中,根据计算出的当前帧的垂直方向块投影数据最大值,计算第2阈值。例如,把当前帧的垂直方向块投影数据最大值设为P1max,利用下式(1)计算第2阈值α2。
α2=P1max×k1......(1)
其中,k1是预先设定的系数,且0<k1<1。
另外,第2阈值α2的运算不限于上式(1),只要是当前帧的垂直方向块投影数据最大值P1max增大时,第2阈值α2也增大的算式即可,并且还可以使用转换表。
在比特数削减部25中,根据从第1垂直方向块投影数据最大值保存部24输入的当前帧的垂直方向块投影数据最大值(第1垂直方向块投影数据最大值),来确定投影数据的有效比特范围。并且,从由垂直方向块投影部23输入的垂直方向块投影数据中削减根据该有效比特范围设定的上位无效比特和下位无效比特,把只利用有效比特构成的当前帧的垂直方向块投影数据输出给第1垂直方向块投影行存储器26。
第1垂直方向块投影行存储器26把通过比特数削减部25降低了比特数的当前帧的垂直方向块投影数据,按照每个垂直方向块保存为第1垂直方向块投影数据。即,在第1垂直方向块投影行存储器26中存储当前帧(后面帧)的投影数据,该当前帧的投影数据已在比特数削减部25中根据由第1垂直方向块投影数据最大值保存部24求出的第1垂直方向块投影数据最大值削减了比特数(各个数组要素的数据长度)。
第1垂直方向块投影行存储器26在输入关于当前帧的新的第1垂直方向块投影数据的定时,读出前面帧的垂直方向块投影数据,并提供给第2垂直方向块投影行存储器27。
第2垂直方向块投影行存储器27把从第1垂直方向块投影行存储器26读出的前面帧的垂直方向块投影数据,保存为第2垂直方向块投影数据。
同样,第1垂直方向块投影数据最大值保存部24在关于当前帧的新的第1垂直方向块投影数据最大值被更新的定时,读出已经保存的第1垂直方向块投影数据最大值,并提供给第2垂直方向块投影数据最大值保存部28。
在第2垂直方向块投影数据最大值保存部28中,从第1垂直方向块投影数据最大值保存部24读出的第1垂直方向块投影数据最大值,被保存为关于前面帧的第2垂直方向块投影数据最大值(前面帧的垂直方向块投影数据最大值)。
换言之,保存在第1垂直方向块投影数据最大值保存部24中的当前帧的垂直方向块投影数据最大值,在下一帧中,作为前面帧的垂直方向块投影数据最大值,被保存在第2垂直方向块投影数据最大值保存部28中。
第2垂直方向块投影数据最大值保存部28根据关于前面帧的第2垂直方向块投影数据最大值,设定第1阈值(预定的固定值)。例如,把前面帧的垂直方向块投影数据最大值设为P2max,利用下式(2)计算第1阈值α1。
α1=P2max×k2......(2)
其中,k2是预先设定的系数,且0<k2<1。
另外,第1阈值α1的运算不限于上式(2),只要是前面帧的垂直方向块投影数据最大值P2max增大时,第1阈值α1也增大的算式即可,并且还可以使用转换表。
在第1阈值交叉点搜索部29中,沿水平方向搜索从第2垂直方向块投影行存储器27读出的第2垂直方向块投影数据、与从第2垂直方向块投影数据最大值保存部28输出的第1阈值的交叉点(第1阈值交叉点)。通过该第1阈值交叉点搜索部29得到的第1阈值交叉点的信息输出给垂直方向块投影数据读出部30和垂直方向块水平方向运动矢量计算部31。
垂直方向块投影数据读出部30从第1垂直方向块投影行存储器26读出与运动矢量检测范围对应的当前帧的(第1)垂直方向块投影数据,其中,该运动矢量检测范围以从第1阈值交叉点搜索部29输出的第1阈值交叉点为中心。
即,当把第1阈值交叉点设为A(i)(其中,i=1、2、...p,p是检测出的第1阈值交叉点的总数),且把运动矢量检测范围设为以第1阈值交叉点为中心的(—V)~(+V)(其中V是正整数)的范围时,从第1垂直方向块投影行存储器26读出的投影数据是处于水平方向的(A(i)—V)~(A(i)+V)的范围中的第1垂直方向块投影数据的部分数据。
由该垂直方向块投影数据读出部30从第1垂直方向块投影行存储器26读出的第1垂直方向块投影数据输出给垂直方向块水平方向运动矢量计算部31。
从垂直方向块投影数据读出部30输出的第1垂直方向块投影数据,通过图5所示的垂直方向块水平方向运动矢量计算部31的输入端子311输入n值化器314(压缩单元)。
在该n值化器314中,根据从第1垂直方向块投影数据最大值保存部24输出、并通过输入端子312输入的第2阈值,对第1垂直方向块投影数据进行n值化。
即,n值化器314对关于由垂直方向块投影数据读出部30提取出的当前帧的投影数据的数据数组Mv(图9(b))的各个数组要素的数据长度,进行例如3值化处理而压缩。关于该n值化器314的处理,参照图10进行说明。
图10是说明n值化器314的n值化处理的图。另外,在图10中,表示n=3的3值化处理的一例。
把输入n值化器314的第1垂直方向块投影数据设为D,把通过输入端子312输入的第2阈值设为α2(α2为正整数),在n值化器314中,在D<(—α2)时输出(—1),在(—α2)≦D≦α2时输出0,在D>α2时输出1,由此进行3值化处理。即,在n值化器314的3值化处理中,关于根据当前帧(后面帧)的投影数据中的数据数组Mv的数组要素的最大值设定的第2阈值α2(α2>0),分为关于由垂直方向块投影数据读出部30提取出的当前帧的投影数据的数组要素的值小于(—α2)的情况、大于等于(—α2)且小于等于α2的情况、以及大于α2的情况这三个阶段来进行3值化。
关于该n值化器314的n值化处理,从垂直方向块投影数据读出部30输出的当前帧的第1垂直方向块投影数据的部分波形相对第1阈值交叉点是什么位置关系、即是什么趋势的波形非常重要,所以只要在第1垂直方向块投影数据的波形中确保能够判别峰和谷的比特精度即足以。
另一方面,当在n值化器314中不进行比特数的削减而直接采用从垂直方向块投影数据读出部30输出的第1垂直方向块投影数据的值时,与第1垂直方向块投影数据D>α2对应的较大振幅的峰、和与D<(—α2)对应的较大振幅的谷,有可能淹没表现图像特征的较小振幅的峰和谷,所以不合适。而且,与(—α2)≦D≦α2对应的较小的峰和谷容易受到噪声影响,其数量也比较多,所以表现图像特征的合适振幅的峰和谷也有可能淹没于其中。
因此,在n值化器314中,通过对第1垂直方向块投影数据实施合适的n值化处理,从而提高运动矢量的检测精度。
关于以上说明的第1阈值交叉点搜索部29、垂直方向块投影数据读出部30和垂直方向块水平方向运动矢量计算部31的动作,参照图11进行具体说明。另外,图11(a)和(b)中的横轴表示投影数据的数据数组Mv(图9(b))的数组要素的位置。并且,在图11(a)中,分别利用圆圈表示第1阈值交叉点A(1)~A(8)。
第1阈值交叉点搜索部29按照图11(a)所示,求出关于前面帧的第2垂直方向块投影数据W2的波形中、与从第2垂直方向块投影数据最大值保存部28输出的第1阈值α1交叉的第1阈值交叉点A(1)~A(8)。
即,第1阈值交叉点搜索部29对于由垂直方向块投影部23得到的针对前面帧的投影数据,确定按照投影数据的数据数组Mv(图9(b))的要素顺序将数组要素的值曲线化而得到的波形W2、与数组要素的值为第1阈值(预定的固定值)α1时的直线交叉的各个第1阈值交叉点的数组要素的位置。
然后,垂直方向块投影数据读出部30对于图11(a)所示以各个第1阈值交叉点A(1)~A(8)为中心的预定的运动矢量检测范围,从第1垂直方向块投影行存储器26读出当前帧的垂直方向块投影数据。
即,垂直方向块投影数据读出部30从由垂直方向块投影部23输出并被比特数削减部25削减了比特数的当前帧(后面帧)的投影数据中,提取以各个第1阈值交叉点处的投影数据(数据数组)的数组要素的位置为中心的预定范围的数据数组。
例如,关于第1阈值交叉点A(7),如图11(b)所示,读出与以第1阈值交叉点A(7)为中心的(A(7)—V)~(A(7)+V)的范围(矩形虚线内的波形部分)对应的第1垂直方向块投影数据W1。
并且,关于由垂直方向块投影数据读出部30读出的第1垂直方向块投影数据,在垂直方向块水平方向运动矢量计算部31的n值化器314中,使用从第1垂直方向块投影数据最大值保存部24输出的第2阈值α2进行n值化处理。
例如,关于第1阈值交叉点A(7),根据图11(b)所示的第1垂直方向块投影数据W1相对第2阈值α2和(—α2)的大小关系,对以第1阈值交叉点A(7)为中心的(A(7)—V)~(A(7)+V)的范围(矩形虚线内的波形部分),按照图11(c)所示对第1垂直方向块投影数据进行3值化处理。由此,当前帧的垂直方向块投影数据被表示为“—1”、“0”或“1”。
在n值化器314中,对从第1阈值交叉点搜索部29输出的全部第1阈值交叉点,进行图11(c)所示的n值化处理。
然后,在加法器315(图5)中,把以通过输入端子313从第1阈值交叉点搜索部29输出的第1阈值交叉点为中心并通过n值化器314被n值化的第1垂直方向块投影数据、和从水平方向运动矢量加法存储器316读出的截止到前一个被n值化的第1垂直方向块投影数据的相加值进行相加,并把该相加结果再次存储在水平方向运动矢量加法存储器316中。
并且,在加法器315中对与被第1阈值交叉点搜索部29检测出的全部第1阈值交叉点中的最后的交叉点有关的、被n值化的第1垂直方向块投影数据进行相加,在结束对一个垂直方向块的相加处理时,把该相加结果输出给峰值检测器317。
另外,也可以在加法器315的相加处理结束后,峰值检测器317从存储关于全部第1阈值交叉点的相加结果的水平方向运动矢量加法存储器316中读出该相加结果。
关于由第1阈值交叉点搜索部29检测出的全部第1阈值交叉点,把与运动矢量检测范围(上述的±V范围)对应的已被n值化的第1垂直方向块投影数据的数据相加得到的数据(以下也称为“垂直方向块n值化数据”)输入峰值检测器317,峰值检测器317检测关于该垂直方向块n值化数据的峰值,其中,该运动矢量检测范围以各个第1阈值交叉点为中心。
在该峰值检测器317中所检测的垂直方向块n值化数据的峰值位置为从该垂直方向块得到的水平方向运动矢量,通过输出端子318输出给水平方向运动确定部32。
关于以上说明的加法器315和峰值检测器317的动作,参照图12进行具体说明。另外,图12(a)示意表示在图11(a)所示的以第1阈值交叉点A(1)~A(8)为中心的运动矢量检测范围(±V范围)中,对第1垂直方向块投影数据进行3值化的情况。
在加法器315中,在依次输入图12(a)所示的第1阈值交叉点A(1)~A(8)周围的3值化数据后,对这些数据进行相加,生成图12(b)所示的垂直方向块n值化数据。
具体地讲,在加法器315中,针对由垂直方向块投影数据读出部30从垂直方向块投影数据(数据数组Mv(图9(b)))中提取、并由n值化器314压缩了数据长度的、关于当前帧的运动矢量检测范围(预定范围)的各个数据数组,把相对位置相同的数组要素的值进行相加,该相对位置是针对各个第1阈值交叉点的数组要素的位置的相对位置。
当由加法器315生成的垂直方向块n值化数据输入峰值检测器317时,作为该垂直方向块的水平方向运动矢量,检测出图12(b)所示的水平方向的峰值位置hv。即,在峰值检测器317中,根据由加法器315相加的相加结果,检测与帧图像的水平方向有关的运动矢量。
在该峰值检测器317中,原则上在运动矢量检测范围(±V的范围)中搜索达到最大值的峰值位置,但是当存在多个相同的最大值时,使接近原点0的最大值(在距原点0的距离相等时,使负值位置的最大值)优先。另外,不限于这种峰值位置的检测规则,也可以使正值位置的最大值优先,还可以把前面帧的运动矢量的趋势用于当前帧的峰值位置的检测中。
由峰值检测器317按照每个垂直方向块计算出的水平方向运动矢量,通过输出端子318依次输入水平方向运动矢量确定部32。
在水平方向运动矢量确定部32中,根据从垂直方向块水平方向运动矢量计算部31依次输出的各个垂直方向块的水平方向运动矢量,确定图像整体的水平方向运动矢量。在该水平方向运动矢量确定部32中,例如把出现频度最高的水平方向运动矢量确定为图像整体的水平方向运动矢量。
另外,并不是必须把出现频度最高的水平方向运动矢量确定为图像整体的水平方向运动矢量,也可以把从垂直方向块水平方向运动矢量计算部31输出的各个垂直方向块的水平方向运动矢量的平均值,确定为图像整体的水平方向运动矢量。
如上所述,在水平方向运动矢量确定部32中,根据各个垂直方向块的水平方向运动矢量确定关于帧图像整体的水平方向的运动矢量,所以在图像的一部分出现移动时,也可以抑制对该移动的错误反应。
另外,在检测关于帧图像整体的水平方向运动矢量时,未必一定使用整个帧图像,也可以从帧图像的一部分检测水平方向运动矢量,把其作为关于帧图像整体的水平方向运动矢量。
下面,说明在运动矢量检测装置1中对图像的垂直方向的运动矢量进行检测的垂直方向运动矢量检测部4的动作。
按照图2所示沿垂直方向依次反复进行水平行的像素扫描而读出的帧图像,被输入图6所示的垂直方向运动矢量检测部4的输入端子40,然后由水平方向图像分割部41沿水平方向分割成块。即,在水平方向图像分割部41中,设定在帧图像中沿水平方向分割得到的多个图像区域(水平方向块)。由此,在以后的处理中对每个水平方向块进行处理和管理。
在水平方向图像分割部41中,例如按照图13(a)所示,640像素×480像素的图像数据被沿水平方向分割成为具有64像素宽度(分割宽度)的10个水平方向块hb0~hb9。另外,不必一定设为图13(a)所示的分割宽度和分割数量。
由水平方向图像分割部41按照图13(a)所示分割为10个水平方向块hb0~hb9的图像,在水平方向边缘提取滤波部42中进行沿水平方向延伸的边缘分量的提取,换言之,实施对在垂直方向急剧变化的图像部分进行强调的滤波处理。作为在该滤波处理中使用的滤波器,可以使用单纯地获取与垂直方向上相邻的像素之间的差分的(1,-1)2抽头滤波器、或相当于二次微分的(-1,2,-1)3抽头滤波器等。另外,并不是必须使用这种滤波器,只要是在沿垂直方向的亮度变化增大的图像部分中输出值上升的滤波器即可。
由水平方向边缘提取滤波部42对各个水平方向块(图像区域)hb0~hb9强调了水平方向的边缘的图像数据输入到水平方向块投影部43,由水平方向块投影部43在水平方向进行投影。通过该投影,可以降低水平方向的(行间)噪声分量,能够进一步强调水平方向的边缘分量,所以能够使对应特征点的水平方向边缘醒目,提高运动矢量检测精度。关于水平方向块投影部43的动作,参照图13(b)所示的示意图进行说明。
在水平方向块投影部43中,在图13(a)所示的各个水平方向块hb0~hb9的1个水平行的输入完成的时刻,生成具有1个垂直行的量的数据数组Mh的水平方向块投影数据hn0~hn9(图13(b))的1个数组要素。因此,在各个水平方向块hb0~hb9的最末水平行的输入完成的时刻全部数组要素备齐。另外,数据数组Mh具有垂直行的总像素数(例如480)个数组要素,但在(1,-1)那样的2抽头滤波器中,有效要素是垂直行的总像素数—1(例如479)个,在(-1,2,-1)的3抽头滤波器中,有效要素是垂直行的总像素数—2(例如478)个。
具体地讲,如图7所示,通过输入端子431输入的各个水平方向块hb0~hb9的图像数据(实施了水平方向的边缘强调的图像数据)输入到加法器432。在加法器432中,首先将输入的水平方向块的1个水平行的开头写入水平方向投影临时存储器433中,而不读出水平方向投影临时存储器433中的数据。
接着,在加法器432中,读出存储在水平方向投影临时存储器433中的截止到一个水平行的前一像素的相加结果,将其与从输入端子431输入的水平方向块的1个水平行的当前像素进行相加,并把该相加结果写回到水平方向投影临时存储器433中。
并且,在水平方向块的1个水平行的最后的像素被输入加法器432时,读出保存在水平方向投影临时存储器433中的截止到前一像素的相加结果,将其与从输入端子431输入的水平方向块的1个水平行的最后的像素进行相加,并从输出端子434把该相加结果即水平方向块的1个水平行的全部像素的相加数据,作为关于水平方向块的1个水平行的投影数据,输出给第1水平方向块投影数据行存储器44和第1水平方向块投影数据最大值保存部45。
另外,也可以把在加法器432中对水平方向块的1个水平行的全部像素进行了相加的投影数据暂且存储在水平方向投影临时存储器433中,在输入下一个水平方向块的1个水平行的最先像素时,读出水平方向投影临时存储器433中的投影数据,并从输出端子434输出。
在第1水平方向块投影行存储器44中,把从水平方向块投影部43输入的当前帧的水平方向块投影数据,按照每个水平方向块保存为第1水平方向块投影数据。
在第1水平方向块投影数据最大值保存部45中,计算关于从水平方向块投影部43输入的水平方向块的投影数据的最大值,并将其保存为第1水平方向块投影数据最大值(当前帧的水平方向块投影数据最大值)。
第2水平方向块投影行存储器46把从第1水平方向块投影行存储器44读出的水平方向块投影数据,保存为关于前面帧的第2水平方向块投影数据。
同样,在第2水平方向块投影数据最大值保存部47中,把从第1水平方向块投影数据最大值保存部45输出的第1水平方向块投影数据最大值,保存为关于前面帧的第2水平方向块投影数据最大值(前面帧的水平方向块投影数据最大值)。
换言之,保存在第1水平方向块投影数据最大值保存部45中的当前帧的水平方向块投影数据最大值,在下一帧中,作为前面帧的水平方向块投影数据最大值保存在第2水平方向块投影数据最大值保存部47中。
并且,在第2水平方向块投影数据最大值保存部47中,根据所计算的前面帧的水平方向块投影数据最大值,计算第4阈值。例如,把前面帧的水平方向块投影数据最大值设为P4max,利用下式(3)计算第4阈值α4。
α4=P4max×k4......(3)
其中,k4是预先设定的系数,且0<k4<1。
另外,第4阈值α4的运算不限于上式(3),只要是前面帧的水平方向块投影数据最大值P4max增大时,第4阈值α4也增大的算式即可,并且还可以使用转换表。另外,关于第4阈值α4,并不是必须使用每个水平方向块的第2水平方向块投影数据最大值,例如也可以使用关于前面帧的图像整体的水平方向块投影数据的最大值,来计算第4阈值,在图像整体中采用相同的第4阈值。
第2水平方向块投影数据最大值保存部47根据关于前面帧的第2水平方向块投影数据最大值,设定第3阈值(预定的固定值)。例如,把前面帧的水平方向块投影数据最大值设为P3max,利用下式(4)计算第3阈值α3。
α3=P3max×k3......(4)
其中,k3是预先设定的系数,且0<k3<1。
另外,第3阈值α3的运算不限于上式(4),只要是前面帧的水平方向块投影数据最大值P3max增大时,第3阈值α3也增大的算式即可,并且还可以使用转换表。另外,关于第3阈值α3,并不是必须使用每个水平方向块的第2水平方向块投影数据最大值,例如也可以使用关于前面帧的图像整体的水平方向块投影数据的最大值,来计算第3阈值,在图像整体中采用相同的第3阈值。
在第3阈值交叉点搜索部48中,沿垂直方向搜索从第2水平方向块投影行存储器46读出的第2水平方向块投影数据、与从第2水平方向块投影数据最大值保存部47输出的第3阈值的交叉点(第3阈值交叉点)。通过该第3阈值交叉点搜索部48得到的第3阈值交叉点的信息,输入到水平方向块投影数据读出部49和水平方向块垂直方向运动矢量计算部50。
水平方向块投影数据读出部49从第1水平方向块投影行存储器44读出与运动矢量检测范围对应的当前帧的(第1)水平方向块投影数据,其中,该运动矢量检测范围以从第3阈值交叉点搜索部48输出的第3阈值交叉点为中心。
即,当把第3阈值交叉点设为B(i)(其中,i=1、2、...q,q是检测出的第3阈值交叉点的总数),且把运动矢量检测范围设为以第3阈值交叉点为中心的(—U)~(+U)(其中U是正整数)的范围时,从第1水平方向块投影行存储器44读出的投影数据是处于垂直方向的(B(i)—U)~(B(i)+U))范围中的第1水平方向块投影数据的部分数据。
由该水平方向块投影数据读出部49从第1水平方向块投影行存储器44读出的第1水平方向块投影数据输出给水平方向块垂直方向运动矢量计算部50。
从水平方向块投影数据读出部49输出的第1水平方向块投影数据,通过图8所示的水平方向块垂直方向运动矢量计算部50的输入端子501输入到n值化器504(压缩单元)。
在该n值化器504中,根据从第2水平方向块投影数据最大值保存部47输出并通过输入端子502输入的第4阈值,对第1水平方向块投影数据进行n值化。
即,n值化器504压缩与由水平方向块投影数据读出部49提取出的当前帧的投影数据有关的数据数组Mh(图13(b))的各个数组要素的数据长度。关于该n值化器504的处理是进行与上述n值化器314相同的处理,例如执行3值化处理。
即,在n值化器504的3值化处理中,关于根据前面帧的投影数据中的数据数组Mh的数组要素的最大值设定的第4阈值α4(α4>0),分为与由水平方向块投影数据读出部49提取出的当前帧的投影数据有关的数组要素的值小于(—α4)的情况、大于等于(—α4)且小于等于α4的情况、以及大于α4的情况这三个阶段来进行3值化。另外,在n值化器504中,并不是必须具有与n值化器314相同的特性,也可以具有与n值化器314不同的特性。
关于以上说明的第3阈值交叉点搜索部48、水平方向块投影数据读出部49和水平方向块垂直方向运动矢量计算部50的动作,参照图14进行具体说明。另外,图14(a)和(b)中的横轴表示投影数据的数据数组Mh(图13(b))的数组要素的位置。并且,在图14(a)中,分别利用圆圈表示第3阈值交叉点B(1)~B(6)。
第3阈值交叉点搜索部48按照图14(a)所示,求出关于前面帧的第2垂直方向块投影数据W4的波形中、与从第2水平方向块投影数据最大值保存部47输出的第3阈值α3交叉的第3阈值交叉点B(1)~B(6)。
即,第3阈值交叉点搜索部48对于由水平方向块投影部43得到的针对前面帧的投影数据,确定按照投影数据的数据数组Mh(图13(b))的要素顺序将数组要素的值曲线化而得到的波形W4、和与数组要素的值为第3阈值(预定的固定值)α3时的直线交叉的各个第3阈值交叉点的数组要素的位置。
然后,水平方向块投影数据读出部49针对以图14(a)所示的各个第3阈值交叉点B(1)~B(6)为中心的预定的运动矢量检测范围,从第1水平方向块投影行存储器44读出当前帧的水平方向块投影数据。
即,水平方向块投影数据读出部49从在水平方向块投影部43得到的当前帧(后面帧)的投影数据中,提取以各个第3阈值交叉点处的投影数据(数据数组)的数组要素的位置为中心的预定范围的数据数组。例如,关于第3阈值交叉点B(4),如图14(b)所示,读出与以第3阈值交叉点B(4)为中心的(B(4)—U)~(B(4)+U)的范围(矩形虚线内的波形部分)对应的第1水平方向块投影数据W3。
并且,关于由水平方向块投影数据读出部49读出的第1水平方向块投影数据,在水平方向块垂直方向运动矢量计算部50的n值化器504中,使用从第2水平方向块投影数据最大值保存部47输出的第4阈值α4进行n值化处理。
例如,关于第3阈值交叉点B(4),根据图14(b)所示的第1水平方向块投影数据W3相对第4阈值α4和(—α4)的大小关系,对以第3阈值交叉点B(4)为中心的(B(4)—U)~(B(4)+U)的范围(矩形虚线内的波形部分),按照图14(c)所示对第1水平方向块投影数据进行3值化处理。由此,当前帧的水平方向块投影数据被表示为“—1”、“0”或“1”。
在n值化器504中,对从第3阈值交叉点搜索部48输出的全部第3阈值交叉点,进行图14(c)所示的n值化处理。
然后,在加法器505(图8)中,对以通过输入端子503从第3阈值交叉点搜索部48输出的第3阈值交叉点为中心并通过n值化器504被n值化的第1水平方向块投影数据、和从垂直方向运动矢量加法存储器506输出的截止到前一个被n值化的第1水平方向块投影数据的相加值进行相加,并把该相加结果再次存储在垂直方向运动矢量加法存储器506中。
并且,在加法器505中对与由第3阈值交叉点搜索部48检测出的全部第3阈值交叉点中的最后的交叉点有关的且被n值化的第1水平方向块投影数据进行相加,在结束对一个水平方向块的相加处理时,把该相加结果输出给峰值检测器507。
另外,也可以在加法器505的相加处理结束后,峰值检测器507从存储关于全部第3阈值交叉点的相加结果的垂直方向运动矢量加法存储器506中读出该相加结果。
关于被第3阈值交叉点搜索部48检测出的全部第3阈值交叉点,对与以各个第3阈值交叉点为中心的运动矢量检测范围(上述的±U范围)对应的已被n值化的第1水平方向块投影数据进行了相加的数据(以下也称为“水平方向块n值化数据”),被输入峰值检测器507,峰值检测器507检测关于该水平方向块n值化数据的峰值。
在该峰值检测器507中所检测的水平方向块n值化数据的峰值位置为根据该水平方向块得到的垂直方向运动矢量,通过输出端子508输出给垂直方向运动确定部51。
关于以上说明的加法器505和峰值检测器507的动作,参照图15进行具体说明。另外,图15(a)示意表示在以图14(a)所示的第3阈值交叉点B(1)~B(6)为中心的运动矢量检测范围(±U范围)中,将第1水平方向块投影数据3值化的情况。
在加法器505中,当依次输入图15(a)所示的第3阈值交又点B(1)~B(6)周围的3值化数据时,对这些数据进行相加,生成图15(b)所示的水平方向块n值化数据。具体地讲,在加法器505中,针对由水平方向块投影数据读出部49从水平方向块投影数据(数据数组Mh(图13(b)))中提取、并由n值化器504压缩了数据长度的、关于当前帧的运动矢量检测范围(预定范围)的各个数据数组,针对各个第3阈值交叉点的数组要素的位置,把相对位置相同的数组要素的值进行相加。
当由加法器505生成的水平方向块n值化数据输入峰值检测器507时,作为该水平方向块的垂直方向运动矢量,检测出图15(b)所示的垂直方向的峰值位置vv。即,在峰值检测器507中,根据由加法器505相加的相加结果,检测与帧图像的垂直方向有关的运动矢量。
在该峰值检测器507中,原则上在运动矢量检测范围(±U的范围)中搜索达到最大值的峰值位置,但是当存在多个相同的最大值时,使接近原点0的最大值(在距原点0的距离相等时使负值位置的最大值)优先。另外,不限于这种峰值位置的检测规则,也可以使正值位置的最大值优先,还可以把前面帧的运动矢量的趋势用于当前帧的峰值位置的检测中。
由峰值检测器507针对每个水平方向块计算出的垂直方向运动矢量(峰值),通过输出端子508依次输入垂直方向运动矢量确定部51。
在垂直方向运动矢量确定部51中,根据从水平方向块垂直方向运动矢量计算部50依次输出的各个水平方向块的垂直方向运动矢量,确定图像整体的垂直方向运动矢量。在该垂直方向运动矢量确定部51中,例如把出现频度最高的垂直方向运动矢量确定为图像整体的垂直方向运动矢量。
另外,并不是必须把出现频度最高的垂直方向运动矢量确定为图像整体的垂直方向运动矢量,也可以把从水平方向块垂直方向运动矢量计算部50输出的各个水平方向块的垂直方向运动矢量的平均值,确定为图像整体的垂直方向运动矢量。
如上所述,在垂直方向运动矢量确定部51中,根据各个水平方向块的垂直方向运动矢量确定关于帧图像整体的垂直方向的运动矢量,所以在图像的一部分出现移动时,也能够抑制对该移动的错误反应。
另外,在检测关于帧图像整体的垂直方向运动矢量时,未必一定使用整个帧图像,也可以从帧图像的一部分检测垂直方向运动矢量,把其作为关于帧图像整体的垂直方向运动矢量。
<效果>
根据以上所述的运动矢量检测装置1的动作,对强调了垂直方向的边缘的各个垂直方向块在垂直方向取投影,而生成垂直方向块投影数据,同时读出与运动矢量检测范围对应的当前帧的垂直方向块投影数据,并按照距各个第1阈值交叉点的距离进行相加,根据该相加结果检测关于水平方向的运动矢量,其中,该运动矢量检测范围以前面帧的垂直方向块投影数据与第1阈值α1的交叉点(第1阈值交叉点)为中心,所以能够以较少的运算量跟踪相当于特征点的图像垂直方向边缘的移动。
同样,对强调了水平方向的边缘的各个水平方向块在水平方向获取投影,而生成水平方向块投影数据,同时读出与运动矢量检测范围对应的当前帧的水平方向块投影数据,并按照距各个第3阈值交叉点的距离进行相加,根据该相加结果检测关于垂直方向的运动矢量,其中,该运动矢量检测范围以前面帧的水平方向块投影数据与第3阈值α3的交叉点(第3阈值交叉点)为中心,所以能够以较少的运算量跟踪相当于特征点的水平方向边缘的移动。其结果,能够高精度地迅速进行关于水平方向和垂直方向的运动矢量的检测。
并且,在运动矢量检测装置1的比特数削减部25中,根据由第1垂直方向块投影数据最大值保存部24求出的当前帧的垂直方向块投影数据的最大值,削减当前帧的垂直方向块投影数据的比特数,所以能够抑制后续处理中的运算量,能够更加快速地进行运动矢量的检测。
并且,在运动矢量检测装置1中,求出关于前面帧的第2垂直方向块投影数据最大值,根据该最大值设定第1阈值α1,所以能够设定合适的第1阈值交叉点。同样,求出关于前面帧的第2水平方向块投影数据最大值,根据该最大值设定第3阈值α3,所以能够设定合适的第3阈值交叉点。
并且,在运动矢量检测装置1中,在通过垂直方向图像分割部21沿垂直方向分割帧图像后,对于各个分割图像(垂直方向块)强调垂直方向的边缘,所以能够容易生成强调了垂直方向的边缘的分割图像。同样,在通过水平方向图像分割部41沿水平方向分割帧图像后,对于各个分割图像(水平方向块)强调水平方向的边缘,所以能够容易生成强调了水平方向的边缘的分割图像。
并且,在运动矢量检测装置1中,在垂直方向块水平方向运动矢量计算部31的n值化器314中,将由垂直方向块投影数据读出部30读出的投影数据n值化,所以能够减少后续的运算量,能够更快速地进行运动矢量的检测。尤其在n值化器314中,根据依据当前帧的垂直方向块投影数据的最大值设定的第2阈值α2进行3值化,所以能够确保比较大的动态范围,实现能够实时处理的运动矢量检测。并且,也可以大幅削减存储容量。
同样,在水平方向块垂直方向运动矢量计算部50的n值化器504中将由水平方向块投影数据读出部49读出的投影数据n值化,所以能够减少后续的运算量,能够更快速地进行运动矢量的检测。尤其在n值化器504中,根据依据前面帧的水平方向块投影数据的最大值设定的第4阈值α4进行3值化,所以能够设定合适的第4阈值α4,不会大幅损失动态范围,实现能够可实时处理的运动矢量检测。并且,也可以大幅削减存储容量。
实施方式2
<运动矢量检测装置1A的结构>
如图1所示,本发明的实施方式2的运动矢量检测装置1A具有与实施方式1的运动矢量检测装置1相似的结构,但水平方向运动矢量检测部和垂直方向运动矢量检测部的结构与实施方式1不同。参照图16和图17,说明该运动矢量检测装置1A的水平方向运动矢量检测部2A和垂直方向运动矢量检测部4A的结构。
图16是表示水平方向运动矢量检测部2A的主要部分结构的方框图。另外,在图16中,对具有与在实施方式1中说明的水平方向运动矢量检测部2相同功能的部位标注相同标号,并省略重复的说明。
在水平方向运动矢量检测部2A的边缘强调单元中,相对于实施方式1的水平方向运动矢量检测部2的边缘强调单元,使垂直方向图像分割部21和垂直方向边缘提取滤波部22的配置颠倒。
<运动矢量检测装置1A的动作>
首先,说明水平方向运动矢量检测部2A的动作。
当按照图2所示通过沿垂直方向依次反复进行水平行的像素扫描而读出的帧图像被输入水平方向运动矢量检测部2A的输入端子20时,在垂直方向边缘提取滤波部22中进行沿垂直方向延伸的边缘分量的提取,换言之,实施对在水平方向上急剧变化的图像部分进行强调的滤波处理。
由垂直方向边缘提取滤波部22强调了垂直方向的边缘的帧图像输入到垂直方向图像分割部21,沿垂直方向被分割成块。即,在垂直方向图像分割部21中,设定沿垂直方向对被实施了边缘强调的帧图像进行分割而得到的多个图像区域(垂直方向块)。由此,在以后的处理中针对每个垂直方向块进行处理和管理。
由垂直方向图像分割部21分割的图像数据被输入垂直方向块投影部23,关于该垂直方向块投影部23以后的处理是进行与实施方式1的水平方向运动矢量检测部2相同的处理。
图17是表示垂直方向运动矢量检测部4A的主要部分结构的方框图。另外,在图17中,对具有与在实施方式1中说明的垂直方向运动矢量检测部4相同功能的部位标注相同标号,并省略重复的说明。
在垂直方向运动矢量检测部4A的边缘强调单元中,相对于实施方式1的垂直方向运动矢量检测部4的边缘强调单元,使水平方向图像分割部41和水平方向边缘提取滤波部42的配置颠倒。以下说明该垂直方向运动矢量检测部4A的动作。
当按照图2所示在垂直方向上依次反复进行水平行的像素扫描而读出的帧图像输入垂直方向运动矢量检测部4A的输入端子40时,在水平方向边缘提取滤波部42中进行沿水平方向延伸的边缘分量的提取,换言之,实施对在垂直方向上急剧变化的图像部分进行强调的滤波处理。
由水平方向边缘提取滤波部42强调了水平方向的边缘的帧图像输入到水平方向图像分割部41,沿水平方向被分割成块。即,在水平方向图像分割部41中,设定沿水平方向对被实施了边缘强调的帧图像进行分割而得到的多个图像区域(水平方向块)。由此,在以后的处理中对每个水平方向块进行处理和管理。
由水平方向图像分割部41分割的图像数据输入水平方向块投影部43,该水平方向块投影部43以后的处理是进行与实施方式1的垂直方向运动矢量检测部4相同的处理。
<效果>
根据以上所述的运动矢量检测装置1A的动作,可以发挥与实施方式1相同的效果。
并且,在运动矢量检测装置1A中,在由垂直方向边缘提取滤波部22针对帧图像强调了垂直方向的边缘后,垂直方向图像分割部21沿垂直方向分割被强调了边缘的帧图像,所以能够容易生成强调了垂直方向的边缘的分割图像。
同样,在由水平方向边缘提取滤波部42针对帧图像强调了水平方向的边缘后,水平方向图像分割部41沿水平方向分割被强调了边缘的帧图像,所以能够容易生成强调了水平方向的边缘的分割图像。
另外,在运动矢量检测装置1A中,并不是必须把垂直方向边缘提取滤波部22和水平方向边缘提取滤波部42分别配置在水平方向运动矢量检测部2A和垂直方向运动矢量检测部4A中,也可以设置将垂直方向边缘提取滤波部22和水平方向边缘提取滤波部42双方的功能一体化的水平/垂直方向边缘提取滤波部,把其输出分别输入垂直方向图像分割部21和水平方向图像分割部41。
实施方式3
<运动矢量检测装置1B的结构>
如图1所示,本发明的实施方式3的运动矢量检测装置1B具有与实施方式1的运动矢量检测装置1类似的结构,但水平方向运动矢量检测部和垂直方向运动矢量检测部的结构与实施方式1不同。
下面,说明该运动矢量检测装置1B的水平方向运动矢量检测部2B和垂直方向运动矢量检测部4B的结构。
图18是表示水平方向运动矢量检测部2B的主要部分结构的方框图。另外,在图18中,对具有与在实施方式1中说明的水平方向运动矢量检测部2相同功能的部位标注相同标号,并省略重复的说明。
水平方向运动矢量检测部2B具有输入端子20、垂直方向图像分割部21、垂直方向边缘提取滤波部22、垂直方向块投影部23、第1垂直方向块投影数据最大值保存部24、比特数削减部25、和第1垂直方向块投影行存储器26。并且,水平方向运动矢量检测部2具有第2垂直方向块投影行存储器27、第2垂直方向块投影数据最大值保存部28、第1阈值交叉点搜索部29、垂直方向块投影数据读出部30、垂直方向块水平方向运动矢量计算部310、水平方向运动矢量确定部320、和输出端子33。
在以上所述的水平方向运动矢量检测部2B中,垂直方向块水平方向运动矢量计算部310和水平方向运动矢量确定部320的功能,与实施方式1的水平方向运动矢量检测部2的垂直方向块水平方向运动矢量计算部31和水平方向运动矢量确定部32不同。
即,垂直方向块水平方向运动矢量计算部310使用从第1垂直方向块投影数据最大值保存部24输出的第2阈值,对由垂直方向块投影数据读出部30读出的第1垂直方向块投影数据分别进行n值化(n为2以上的整数),并进行比特数的削减,同时按照距第1阈值交叉点的距离对被n值化的投影数据进行相加。并且,将相加数据的峰值位置(后面叙述的水平方向运动矢量)和峰值的信息提供给水平方向运动矢量确定部320。
并且,水平方向运动矢量确定部320根据垂直方向块水平方向运动矢量计算部31的输出,确定图像的水平方向运动矢量。从输出端子33输出此处确定的图像的水平方向运动矢量。另外,水平方向运动矢量确定部320接受保存在第1垂直方向块投影数据最大值保存部24中的第1垂直方向块投影数据最大值、和从第1阈值交叉点搜索部29输出的第1阈值交叉点的信息,并用于提高水平方向运动矢量的可靠性的处理中。另外,关于具体动作将在后面具体说明。
图19是表示垂直方向块水平方向运动矢量计算部310的主要部分结构的方框图。
垂直方向块水平方向运动矢量计算部310具有3个输入端子311~313、n值化器314、进行通过n值化器314被n值化的第1垂直方向块投影数据的相加的加法器315、逐次保存由加法器315相加后的数据的缓冲存储器即水平方向运动矢量加法存储器316、峰值检测器3170、和输出端子318及319。
从垂直方向块投影数据读出部30输出的第1垂直方向块投影数据输入到输入端子311,从第1垂直方向块投影数据最大值保存部24输出的第2阈值输入到输入端子312。从第1阈值交叉点搜索部29输出的第1阈值交叉点的信息输入到输入端子313。
n值化器314根据从输入端子312输入的第2阈值,对从输入端子311输入的第1垂直方向块投影数据进行n值化(例如3值化)。
加法器315以第1阈值交叉点为中心,对通过n值化器314被n值化的第1垂直方向块投影数据和从水平方向运动矢量加法存储器316读出的数据进行相加,将相加结果再次存储在水平方向运动矢量加法存储器316中。通过反复进行这种相加动作,在针对关于垂直方向块的全部第1阈值交叉点的相加结束后,将关于垂直方向块的相加数据输出给峰值检测器3170。
峰值检测器3170检测从加法器315输出的相加数据中的峰值位置(后面叙述的水平方向运动矢量)和峰值。由该峰值检测器3170检测出的峰值位置通过输出端子318输入水平方向运动矢量确定部320,峰值通过输出端子319输入水平方向运动矢量确定部320。
下面,说明垂直方向运动矢量检测部4B的结构。
图20是表示垂直方向运动矢量检测部4B的主要部分结构的方框图。
垂直方向运动矢量检测部4B具有输入端子40、水平方向图像分割部41、水平方向边缘提取滤波部42、水平方向块投影部43、第1水平方向块投影行存储器44、和第1水平方向块投影数据最大值保存部45。并且,垂直方向运动矢量检测部4具有第2水平方向块投影行存储器46、第2水平方向块投影数据最大值保存部47、第3阈值交叉点搜索部48、水平方向块投影数据读出部49、水平方向块垂直方向运动矢量计算部500、垂直方向运动矢量确定部510、和输出端子52。
在以上所述的垂直方向运动矢量检测部4B中,水平方向块垂直方向运动矢量计算部500和垂直方向运动矢量确定部510的功能,与实施方式1的垂直方向运动矢量检测部4的水平方向块垂直方向运动矢量计算部50和垂直方向运动矢量确定部51不同。
即,水平方向块垂直方向运动矢量计算部500使用从第2水平方向块投影数据最大值保存部47输出的第4阈值,对由水平方向块投影数据读出部49读出的第1水平方向块投影数据分别进行n值化(n为2以上的整数),并进行比特数的削减,同时按照距第3阈值交叉点的距离对被n值化的投影数据进行相加。并且,将相加数据的峰值位置(后面叙述的垂直方向运动矢量)和峰值的信息提供给垂直方向运动矢量确定部510。
并且,垂直方向运动矢量确定部510根据水平方向块垂直方向运动矢量计算部500的输出,确定图像的垂直方向运动矢量。从输出端子52输出此处确定的图像的垂直方向运动矢量。另外,垂直方向运动矢量确定部510接受保存在第1水平方向块投影数据最大值保存部45中的第1水平方向块投影数据最大值、和从第3阈值交叉点搜索部48输出的第3阈值交叉点的信息,并将它们用于提高垂直方向运动矢量的可靠性的处理中。另外,关于具体动作将在后面具体说明。
图21是表示水平方向块垂直方向运动矢量计算部500的主要部分结构的方框图。
水平方向块垂直方向运动矢量计算部500具有3个输入端子501~503、n值化器504、进行通过n值化器504被n值化的第1水平方向块投影数据的相加的加法器505、逐次保存由加法器505进行相加得到的数据的缓冲存储器即垂直方向运动矢量加法存储器506、峰值检测器5070、和输出端子508及509。
从水平方向块投影数据读出部49输出的第1水平方向块投影数据输入到输入端子501,从第2水平方向块投影数据最大值保存部47输出的第4阈值输入到输入端子502。并且,从第3阈值交叉点搜索部48输出的第3阈值交叉点的信息输入到输入端子503。
n值化器504根据从输入端子502输入的第4阈值,对从输入端子501输入的第1水平方向块投影数据进行n值化(例如3值化)。
加法器505以第3阈值交叉点为中心,对通过n值化器504被n值化的第1水平方向块投影数据和从垂直方向运动矢量加法存储器506读出的数据进行相加,将相加结果再次存储在垂直方向运动矢量加法存储器506中。通过反复进行这种相加动作,在针对关于水平方向块的全部第3阈值交叉点的相加结束后,将关于水平方向块的相加数据输出给峰值检测器5070。
峰值检测器5070检测从加法器505输出的相加数据中的峰值位置(后面叙述的垂直方向运动矢量)和峰值。由该峰值检测器507检测出的峰值位置通过输出端子508输入垂直方向运动矢量确定部510,峰值通过输出端子509输入水平方向运动矢量确定部510。
下面,说明具有上述结构的运动矢量检测装置1B的动作。
<运动矢量检测装置1B的动作>
<水平方向运动矢量检测部2B的动作>
首先,说明运动矢量检测装置1B中检测图像的水平方向运动矢量的水平方向运动矢量检测部2B的动作。
另外,水平方向运动矢量检测部2B的动作基本上与在实施方式1中说明的水平方向运动矢量检测部2的动作相同,所以省略重复的说明,主要说明垂直方向块水平方向运动矢量计算部310和水平方向运动矢量确定部320的动作。
在第1阈值交叉点搜索部29中,在水平方向搜索从第2垂直方向块投影行存储器27读出的第2垂直方向块投影数据、与从第2垂直方向块投影数据最大值保存部28输出的第1阈值进行交叉的交叉点(第1阈值交叉点)。通过该第1阈值交叉点搜索部29得到的第1阈值交叉点的信息输出给垂直方向块投影数据读出部30、垂直方向块水平方向运动矢量计算部310和水平方向运动矢量确定部320。
垂直方向块投影数据读出部30从第1垂直方向块投影行存储器26读出与运动矢量检测范围对应的当前帧的(第1)垂直方向块投影数据,其中,该运动矢量检测范围以从第1阈值交叉点搜索部29输出的第1阈值交叉点为中心。即,当把第1阈值交叉点设为A(i)(其中,i=1、2、...p,p是检测出的第1阈值交叉点的总数),且把运动矢量检测范围设为以第1阈值交叉点为中心的(—V)~(+V)(其中V是正整数)的范围时,从第1垂直方向块投影行存储器26读出的投影数据是水平方向的(A(i)—V)~(A(i)+V)的范围中的第1垂直方向块投影数据中的部分数据。
由该垂直方向块投影数据读出部30从第1垂直方向块投影行存储器26读出的第1垂直方向块投影数据,被输出给垂直方向块水平方向运动矢量计算部310。
从垂直方向块投影数据读出部30输出的第1垂直方向块投影数据通过图19所示的垂直方向块水平方向运动矢量计算部310的输入端子311输入n值化器314。关于该n值化器314的处理已经使用图10说明,所以省略说明。
并且,关于第1阈值交叉点搜索部29、垂直方向块投影数据读出部30和垂直方向块水平方向运动矢量计算部310(基本上与垂直方向块水平方向运动矢量计算部31相同)的动作,已经使用图11说明,所以省略说明。
在加法器315(图19)中,对以通过输入端子313从第1阈值交叉点搜索部29输出的第1阈值交叉点为中心、并通过n值化器314被n值化的第1垂直方向块投影数据、和从水平方向运动矢量加法存储器316读出的截止到前一个被n值化的第1垂直方向块投影数据的相加值进行相加,并把该相加结果再次存储在水平方向运动矢量加法存储器316中。并且,在加法器315中对与由第1阈值交叉点搜索部29检测出的全部第1阈值交叉点中的最后的交叉点有关的、被n值化的第1垂直方向块投影数据进行相加,在结束对一个垂直方向块的相加处理时,把该相加结果输出给峰值检测器3170。另外,也可以在加法器315的相加处理结束后,峰值检测器3170从存储关于全部第1阈值交叉点的相加结果的水平方向运动矢量加法存储器316读出相加结果。
相加数据(以下也称为“垂直方向块n值化数据”)被输入峰值检测器3170,峰值检测器3170检测关于该垂直方向块n值化数据的峰值,其中,该相加数据是针对被第1阈值交叉点搜索部29检测出的全部第1阈值交叉点,对与以各个第1阈值交叉点为中心的运动矢量检测范围(上述的±V范围)对应的已被n值化的第1垂直方向块投影数据进行相加得到的数据。在该峰值检测器3170中所检测的垂直方向块n值化数据的峰值位置,成为从该垂直方向块得到的水平方向运动矢量,通过输出端子318输出给水平方向运动矢量确定部320。同样,此时的峰值从输出端子319输出。
另外,关于加法器315和峰值检测器3170的具体动作,与使用图12说明的垂直方向块水平方向运动矢量计算部31的加法器315和峰值检测器317相同,所以省略说明,但由峰值检测器3170对按照每个垂直方向块计算出的水平方向运动矢量(峰值位置)、和垂直方向块的被n值化后相加的相加数据的峰值(以下也称为“垂直方向块n值化相加数据峰值”),分别通过输出端子318和319输入水平方向运动矢量确定部320,垂直方向块n值化相加数据峰值用于垂直方向块的有效/无效判定。
在水平方向运动矢量确定部320中,根据从垂直方向块水平方向运动矢量计算部310依次输出的各个垂直方向块的水平方向运动矢量,确定图像整体的水平方向运动矢量。
此时,根据从第1垂直方向块投影数据最大值保存部24输出的第1垂直方向块投影数据最大值、从垂直方向块水平方向运动矢量计算部310输出的垂直方向块n值化相加数据峰值、和从第1阈值交叉点搜索单元29输出的第1阈值交叉点的信息,判定各个垂直方向块的有效/无效。并且,在确定图像整体的水平方向运动矢量时,不使用根据被判定为无效块的垂直方向块而计算出的水平方向运动矢量。
<垂直方向块的有效/无效的判定动作>
<使用第1垂直方向块投影数据最大值的情况>
下面,说明判定各个垂直方向块的有效/无效的方法。
图22是说明使用第1垂直方向块投影数据最大值判定各个垂直方向块的有效/无效的方法的图。
在图22中,表示以图9(a)所示的640像素×480像素的图像数据为例,沿垂直方向分割为具有64像素宽度(分割宽度)的7个垂直方向块vb0~vb6的情况。
并且,在图22中,按照各个块,利用十六进制表示从第1垂直方向块投影数据最大值保存部24(图18)输出的各个垂直方向块的第1垂直方向块投影数据最大值。
在水平方向运动矢量确定部320中,从各个垂直方向块vb0~vb6的第1垂直方向块投影数据最大值中求出全部块中的最大值。在图22的示例中,垂直方向块vb2具有全部块中的最大值,把该值称为全部垂直方向块投影数据最大值。
并且,在水平方向运动矢量确定部320中,把只具有全部垂直方向块投影数据最大值的例如1/4以下的最大值的垂直方向块,判定为无效块。在图22的示例中,垂直方向块vb0、vb1和vb6被判定为无效块。
图23是示意表示垂直方向块的有效/无效的判定的图。
在图23中,表示把横轴设为全部垂直方向块投影数据最大值、把纵轴设为第1垂直方向块投影数据最大值的曲线,表示利用把原点作为起点的斜率为1/4(S=1/4)的直线为界来划分有效块和无效块。
被判断为无效块的垂直方向块可以说其图案特征比较少(特别鲜明的部位较少)、或者是非常细腻的图案,其结果,可以判断为其可靠性低于其他有效块。因此,在确定图像整体的水平方向运动矢量时,不使用被判定为无效块的垂直方向块,由此可以提高水平方向运动矢量的可靠性。
另外,在上述说明中,说明了把有效/无效的判定条件设为全部垂直方向块投影数据最大值的1/4以下,但不限于此,根据情况也可以设定为1/2以下或1/8以下。这样,通过将判定条件设定为1/2n,能够容易地进行有效、无效的判定。
<使用垂直方向块n值化相加数据峰值的情况>
图24是说明使用垂直方向块n值化相加数据峰值判定各个垂直方向块的有效/无效的方法的图。
在图24中,表示以图9(a)所示的640像素×480像素的图像数据为例,沿垂直方向分割为具有64像素宽度(分割宽度)的7个垂直方向块vb0~vb6的情况。
并且,在图24中,按照各个块,利用十六进制表示从垂直方向块水平方向运动矢量计算部310(图18)输出的各个垂直方向块的垂直方向块n值化相加数据峰值。
在水平方向运动矢量确定部320中,从各个垂直方向块vb0~vb6的垂直方向块n值化相加数据峰值中求出最大值。在图24的示例中,垂直方向块vb4具有最大值,把该值称为垂直方向块n值化相加数据峰值的最大值。
并且,在水平方向运动矢量确定部320中,在垂直方向块n值化相加数据峰值的最大值为预定值A(例如利用十进制表示的12)以上时,把垂直方向块n值化相加数据为预定值B(例如利用十进制表示的7)以下的垂直方向块判断为无效块。在图24的示例中,垂直方向块vb0、vb1、vb5和vb6被判定为无效块。
垂直方向块水平方向运动矢量计算部310(图18)的加法器315(图19)的输出是以第1阈值交叉点为中心、对利用第2阈值进行了n值化的第1垂直方向块投影数据进行相加得到的,第1阈值交叉点越多、而且超过正侧的第2阈值(α2)的振幅(峰)越多时,该输出成为越大的值。相反,如果存在超过负侧的第2阈值(—α2)的振幅,则该输出被抵消。
换言之,在加法器315的输出的最大值、即某个垂直方向块的垂直方向块n值化相加数据峰值为预定值A以上,而另一垂直方向块的垂直方向块n值化相加数据峰值为预定值B以下时,可以说该另一垂直方向块是相加结果被抵消的图案、或者特征比较少、振幅较少的图案。
因此,可以判定垂直方向块n值化相加数据峰值在预定值B以下的块的可靠性低于在预定值A以上的块,其结果,可以判断为其可靠性低于其他有效块。因此,在确定图像整体的水平方向运动矢量时,不使用被判定为无效块的垂直方向块,由此可以提高水平方向运动矢量的可靠性。
图25是示意表示垂直方向块的有效/无效的判定的图。
在图25中,示出横轴表示垂直方向块n值化相加数据峰值的最大值、纵轴表示垂直方向块n值化相加数据峰值的曲线,表示在垂直方向块n值化相加数据峰值的最大值为预定值A以上时,把垂直方向块n值化相加数据为预定值B以下的垂直方向块判断为无效块的动作。
并且,在图25中,也表示在垂直方向块n值化相加数据峰值的最大值小于预定值A时,即使存在垂直方向块n值化相加数据峰值为预定值B以下的块,也不将该块判定为无效块的动作。
例如,以图24为例,在垂直方向块n值化相加数据峰值的最大值为7时,不将垂直方向块vb0、vb1、vb5和vb6判定为无效块。这是因为相对于垂直方向块n值化相加数据峰值为最大值的块,不能说可靠性相对较低。
另外,在上述说明中,关于有效/无效的判定条件,示出了把预定值A设为12、把预定值B设为7的示例,但不限于此,在依赖于图像的水平方向像素数时,例如水平方向像素数为640像素时,可以将预定值A设定为10左右的值,将预定值B设定为其一半左右的值。
<使用第1阈值交叉点的个数的情况>
图26是说明使用第1阈值交叉点的个数来判定各个垂直方向块的有效/无效的方法的图。
在图26中,表示以图9(a)所示的640像素×480像素的图像数据为例,沿垂直方向分割为具有64像素宽度(分割宽度)的7个垂直方向块vb0~vb6的情况。
并且,在图26中,按照各个块,利用十六进制表示从第1阈值交叉点搜索部29(图18)输出的第1阈值交叉点的个数。
第1阈值交叉点搜索部29输出保存在第2垂直方向块投影行存储器27中的前面帧的第2垂直方向块投影数据的波形、与由第2垂直方向块投影数据最大值保存部28计算出的第1阈值交叉的第1阈值交叉点的信息,该信息也包含关于第1阈值交叉点的个数的信息,如图26所示,可以得到各个垂直方向块vb0~vb6的第1阈值交叉点的个数。
图27是示意表示垂直方向块的有效/无效的判定的图。
在图27中,示出横轴表示各个垂直方向块vb0~vb6的第1阈值交叉点的个数的最大值、纵轴表示第1阈值交叉点的个数的曲线,在水平方向运动矢量确定部320中,与第1阈值交叉点的个数的最大值无关,将各个垂直方向块vb0~vb6的第1阈值交叉点的个数为预定值D(例如利用十进制表示的3)以下的块判断为无效块。在图26的示例中,垂直方向块vb0和vb6被判断为无效块。
在确定图像整体的水平方向运动矢量时,不使用被判定为无效块的垂直方向块,由此可以提高水平方向运动矢量的可靠性。
另一方面,也可以构成为在第1阈值交叉点的个数至少为水平方向的像素数以下,与水平方向的像素数相比个数太多时,可以说捕捉到非常周期性的图案,所以例如在达到预定值E以上(例如水平方向像素数的一半以上)时,把该块判断为无效块。
并且,如图28所示,也可以构成为仅在第1阈值交叉点个数的最大值为预定值C(>D)以上时,将预定值D以下的块判断为无效块。该情况时,在第1阈值交叉点个数的最大值小于预定值C时,即使存在预定值D以下的块,也不将该块判断为无效块,可以更加精细地设定无效块的判定基准。
另外,在上述说明中,关于有效/无效的判定条件,示出了把预定值D设为3、把预定值E设为水平方向像素数的一半的示例,但不限于此。
通过采用以上说明的使用第1垂直方向块投影数据最大值来判定各个垂直方向块的有效/无效的方法、使用垂直方向块n值化相加数据峰值来判定各个垂直方向块的有效/无效的方法、以及使用第1阈值交叉点的信息来判定各个垂直方向块的有效/无效的方法,来判定无效块,在确定图像整体的水平方向运动矢量时,不使用根据被判定为无效块的垂直方向块计算出的水平方向运动矢量,由此可以提高运动矢量的可靠性。
并且,以上说明的三种判定方法可以单独使用也可以组合使用。
例如,可以在使用第1垂直方向块投影数据最大值判定有效/无效的同时,使用垂直方向块n值化相加数据峰值判定各个垂直方向块的有效/无效,还可以在使用第1垂直方向块投影数据最大值来判定有效/无效的同时,使用第1阈值交叉点的信息来判定各个垂直方向块的有效/无效。
根据这种组合,能够可靠地选择无效块,能够进一步提高运动矢量的可靠性。
<水平方向运动矢量的确定方法>
在水平方向运动矢量确定部320中,按照上面所述判定垂直方向块的有效/无效,对于被判定为有效块的垂直方向块,根据其水平方向运动矢量来确定图像整体的水平方向运动矢量。
此时,集合具有相同的水平方向运动矢量的垂直方向块,生成直方图。
下面,使用图29和图30说明图像整体的水平方向运动矢量的确定方法的一例。
在图29和图30中,示出把水平方向运动矢量的检测范围设为—V~V的情况,在此,作为一例示出V为31的情况,以1个矢量间隔表示—31~31。另外,在对应各个矢量而设的框内示出的数字表示具有相同矢量的垂直方向块的个数。
如图29所示,在对各个垂直方向块计算的水平方向运动矢量中,水平方向运动矢量6是利用两个垂直方向块计算得到的,而在其他垂直方向块中全部为分散的水平方向运动矢量,其分布范围的最小值为—14、最大值为27,其差异为41,对于运动矢量检测范围而言可以说存在非常大的偏差。另外,在图29中,对与根据当前帧的各个垂直方向块得到的水平方向运动矢量对应的块添加点阴影。
在水平方向运动矢量确定部320中,在从各个垂直方向块得到的水平方向运动矢量的分布范围的最大值与最小值之差为预先设定的阈值B(例如上述的V)以上时,从各个垂直方向块得到的水平方向运动矢量的可靠性低,把水平方向运动矢量设为0。
通过进行这种处理,能够提高图像整体的水平方向运动矢量的可靠性。
另一方面,在具有水平方向运动矢量6的垂直方向块的个数为预先设定的数值A(例如3)以上时,判断为从各个垂直方向块得到的水平方向运动矢量充分可靠。
同样,在从各个垂直方向块得到的水平方向运动矢量的最大值与最小值之差小于阈值B时,也判断为从各个垂直方向块得到的水平方向运动矢量充分可靠。
另外,数值A、阈值B不限于上述的值。并且,偏差的判断也不限于根据上述水平方向运动矢量的最大值与最小值之差进行判定,也可以使用标准偏差,例如在标准偏差为阈值B以上时,判断为偏差较大。
在上述处理的结果为判断为从各个垂直方向块得到的水平方向运动矢量充分可靠时,按照下面的步骤计算当前帧的水平方向运动矢量。
简单地讲,把从当前帧的各个垂直方向块输出的水平方向运动矢量中、与前面帧的水平方向运动矢量最接近的水平方向运动矢量,作为当前帧的水平方向运动矢量。
在图30中,表示从各个垂直方向块得到的水平方向运动矢量的分布范围的最大值与最小值之差为11的情况,由于小于阈值B(例如V=31),所以水平方向运动矢量确定部320判断为根据各个垂直方向块计算出的水平方向运动矢量具有可靠性。
在此,在图30中,水平方向运动矢量5是前面帧的水平方向运动矢量,从与其最接近的当前帧的各个垂直方向块得到的水平方向运动矢量是水平方向运动矢量6。因此,水平方向运动矢量6被确定为当前帧的水平方向运动矢量。另外,在图30中,对与从当前帧的各个垂直方向块得到的水平方向运动矢量对应的块添加点阴影,对与前面帧的水平方向运动矢量对应的块添加斜线阴影。
在此,在多个垂直方向块的输出结果为相同的水平方向运动矢量时,即某个水平方向运动矢量的个数为2以上时,个数1的水平方向运动矢量被视为可靠性低而去除,然后求出与前面帧的水平方向运动矢量最接近的水平方向运动矢量,把该水平方向运动矢量作为当前帧的水平方向运动矢量。
在采用该方法时,在图30的示例中,水平方向运动矢量8成为当前帧的水平方向运动矢量。
另外,在与前面帧的水平方向运动矢量最接近的水平方向运动矢量有两个时,把其平均、即前面帧的水平方向运动矢量本身作为当前帧的水平方向运动矢量。
在此,前面帧的水平方向运动矢量的信息保存在设于水平方向运动矢量确定部320中的预定的存储部(前面帧水平方向运动矢量保存单元)中,可以根据需要读出。
如以上说明的那样,根据垂直方向块的有效/无效的判定动作,去除可靠性低的垂直方向块,然后对根据可靠性高的垂直方向块计算的水平方向运动矢量考虑偏差来评价图像整体的水平方向运动矢量的可靠性,在判断为可靠时,也通过考虑前面帧的水平方向运动矢量,能够确定考虑了来自前面帧的移动的不协调感小的水平方向运动矢量。
<垂直方向运动矢量检测部4B的动作>
下面,说明运动矢量检测装置1B中检测图像的垂直方向的运动矢量的垂直方向运动矢量检测部4B的动作。
另外,垂直方向运动矢量检测部4B的动作基本上与在实施方式1中说明的垂直方向运动矢量检测部4的动作相同,所以省略重复的说明,主要说明水平方向块垂直方向运动矢量计算部500和垂直方向运动矢量确定部510的动作。
第3阈值交叉点搜索部48在垂直方向搜索从第2水平方向块投影行存储器46读出的第2水平方向块投影数据、与从第2水平方向块投影数据最大值保存部47输出的第3阈值的交叉点(第3阈值交叉点)。通过该第3阈值交叉点搜索部48得到的第3阈值交叉点的信息,被输出给水平方向块投影数据读出部49、水平方向块垂直方向运动矢量计算部500和垂直方向运动矢量确定部510。
水平方向块投影数据读出部49从第1水平方向块投影行存储器44读出与运动矢量检测范围对应的当前帧的(第1)水平方向块投影数据,其中,该运动矢量检测范围以从第3阈值交叉点搜索部48输出的第3阈值交叉点为中心。即,在把第3阈值交叉点设为B(i)(其中,i=1、2、...q,q是检测出的第3阈值交叉点的总数),且把运动矢量检测范围设为以第3阈值交叉点为中心的(—U)~(+U)(其中U是正整数)的范围时,从第1水平方向块投影行存储器44读出的投影数据是垂直方向上的(B(i)—U)~(B(i)+U)的范围中的第1水平方向块投影数据的部分数据。
由该水平方向块投影数据读出部49从第1水平方向块投影行存储器44读出的第1水平方向块投影数据输出给水平方向块垂直方向运动矢量计算部500。
从水平方向块投影数据读出部49输出的第1水平方向块投影数据,通过图21所示的水平方向块垂直方向运动矢量计算部500的输入端子501输入n值化器504。关于该n值化器504的处理已经使用图10进行了说明,所以在此省略说明。
并且,关于第3阈值交叉点搜索部48、水平方向块投影数据读出部49和水平方向块垂直方向运动矢量计算部500(基本上与水平方向块垂直方向运动矢量计算部50相同)的动作,已经使用图14进行了说明,所以在此省略说明。
然后,在加法器505(图21)中,以通过输入端子503从第3阈值交叉点搜索部48输出的第3阈值交叉点为中心、对通过n值化器504被n值化的第1水平方向块投影数据、和从垂直方向运动矢量加法存储器506读出的截止到前一个被n值化的第1水平方向块投影数据的相加值进行相加,把该相加结果再次存储在垂直方向运动矢量加法存储器506中。并且,当利用加法器505对与第3阈值交叉点搜索部48检测出的全部第3阈值交叉点中的最后的交叉点有关的被n值化的第1水平方向块投影数据进行相加并结束对一个水平方向块的相加处理时,把该相加结果输出给峰值检测器5070。另外,也可以在加法器505的相加处理结束后,峰值检测器5070从存储关于全部第3阈值交叉点的相加结果的垂直方向运动矢量加法存储器506读出该相加结果。
相加数据(以下也称为“水平方向块n值化数据”)被输入峰值检测器5070,峰值检测器5070检测关于该水平方向块n值化数据的峰值,其中,该相加数据是针对被第3阈值交叉点搜索部48检测出的全部第3阈值交叉点,对与以各个第3阈值交叉点为中心的运动矢量检测范围(上述的±U的范围)对应的已被n值化的第1水平方向块投影数据进行相加而得到的。在该峰值检测器5070中检测的水平方向块n值化数据的峰值位置成为从该水平方向块得到的垂直方向运动矢量,通过输出端子508输出给垂直方向运动确定部510。同样,从输出端子509输出此时的峰值。
另外,关于加法器505和峰值检测器5070的具体动作,与使用图15说明的水平方向块垂直方向运动矢量计算部50的加法器505和峰值检测器507相同,所以省略说明,但由峰值检测器507对按照每个水平方向块计算出的垂直方向运动矢量(峰值位置)、和水平方向块的被n值化后相加的相加数据的峰值(以下也称为“水平方向块n值化相加数据峰值”),分别通过输出端子508和509输入垂直方向运动矢量确定部510,水平方向块n值化相加数据峰值用于水平方向块的有效/无效判定。
在垂直方向运动矢量确定部510(图20)中,根据从水平方向块垂直方向运动矢量计算部500依次输出的各个水平方向块的垂直方向运动矢量,来确定图像整体的垂直方向运动矢量。
此时,在垂直方向运动矢量确定部510中,根据从第1水平方向块投影数据最大值保存部45输出的第1水平方向块投影数据最大值、从水平方向块垂直方向运动矢量计算部500输出的水平方向块n值化相加数据峰值、和从第3阈值交叉点搜索部48输出的第3阈值交叉点的信息,来判定各个水平方向块的有效/无效。并且,在确定图像整体的垂直方向运动矢量时,不使用根据被判定为无效块的水平方向块计算出的垂直方向运动矢量。
<水平方向块的有效/无效的判定动作>
<使用第1水平方向块投影数据最大值的情况>
下面,说明判定各个水平方向块的有效/无效的方法。
图31是说明使用第1水平方向块投影数据最大值来判定各个水平方向块的有效/无效的方法的图。
在图31中,表示以图13(a)所示的640像素×480像素的图像数据为例,沿水平方向分割为具有64像素宽度(分割宽度)的10个水平方向块hb0~hb9的情况。
并且,在图31中,按照各个块,利用十六进制表示从第1水平方向块投影数据最大值保存部45(图20)输出的各个水平方向块的第1水平方向块投影数据最大值。
在垂直方向运动矢量确定部510中,从各个水平方向块hb0~hb9的第1水平方向块投影数据最大值中求出全部块中的最大值。在图31的示例中,水平方向块hb4具有全部块中的最大值,把该值称为全部水平方向块投影数据最大值。
并且,在垂直方向运动矢量确定部510中,把只具有全部水平方向块投影数据最大值的例如1/4以下的最大值的水平方向块,判断为无效块。在图31的示例中,水平方向块hb0、hb1、hb8和hb9被判断为无效块。
图32是示意表示水平方向块的有效/无效的判定的图。
在图32中,示出横轴表示全部水平方向块投影数据最大值、纵轴表示第1水平方向块投影数据最大值的曲线,示出以把原点作为起点的斜率为1/4(S=1/4)的直线为界来划分有效块和无效块。
被判断为无效块的水平方向块可以说其图案特征比较少(特别鲜明的部位较少)、或者是非常细腻的图案,其结果,可以判断为其可靠性低于其他有效块。因此,在确定图像整体的垂直方向运动矢量时,不使用被判断为无效块的水平方向块,由此可以提高垂直方向运动矢量的可靠性。
另外,在上述说明中,说明了把有效/无效的判定条件设为全部水平方向块投影数据最大值的1/4以下,但不限于此,根据情况也可以设为1/2以下或1/8以下。这样,通过将判定条件设定为1/2n,可以容易地进行有效、无效的判定。
<使用水平方向块n值化相加数据峰值的情况>
图33是说明使用水平方向块n值化相加数据峰值来判定各个水平方向块的有效/无效的方法的图。
在图33中,示出以图13(a)所示的640像素×480像素的图像数据为例,沿水平方向分割为具有64像素宽度(分割宽度)的10个水平方向块hb0~hb9的情况。
并且,在图33中,按照各个块,利用十六进制表示从水平方向块垂直方向运动矢量计算部500(图20)输出的各个水平方向块的水平方向块n值化相加数据峰值。
在垂直方向运动矢量确定部510中,从各个水平方向块hb0~hb9的水平方向块n值化相加数据峰值中求出最大值。在图33的示例中,水平方向块hb4具有最大值,把该值称为水平方向块n值化相加数据峰值的最大值。
并且,在垂直方向运动矢量确定部510中,在水平方向块n值化相加数据峰值的最大值为预定值A(例如利用十进制表示的12)以上时,把水平方向块n值化相加数据为预定值B(例如利用十进制表示的7)以下的水平方向块判断为无效块。在图33的示例中,垂直方向块hb0、hb1、hb7、hb8和vb9被判断为无效块。
水平方向块垂直方向运动矢量计算部500(图20)的加法器505(图21)的输出是以第3阈值交叉点为中心、对根据第4阈值被n值化的第1水平方向块投影数据进行相加得到的,第3阈值交叉点越多且超过正侧的第4阈值(α4)的振幅(峰)越多时,该输出成为越大的值。相反,如果存在超过负侧的第4阈值(—α4)的振幅(峰),则该输出被抵消。
换言之,在加法器505的输出的最大值、即某个水平方向块的水平方向块n值化相加数据峰值为预定值A以上,而其他水平方向块的水平方向块n值化相加数据峰值为预定值B以下时,可以说该其他水平方向块是相加结果被抵消的图案、或者特征比较少、振幅较少的图案。
因此,可以判断为水平方向块n值化相加数据峰值在预定值B以下的块的可靠性低于在预定值A以上的块,因此,在确定图像整体的垂直方向运动矢量时,不使用被判断为无效块的水平方向块,由此能够提高垂直方向运动矢量的可靠性。
图34是示意表示水平方向块的有效/无效的判定的图。
在图34中,示出横轴表示水平方向块n值化相加数据峰值的最大值、纵轴表示水平方向块n值化相加数据峰值的曲线,示出在水平方向块n值化相加数据峰值的最大值为预定值A以上时,把水平方向块n值化相加数据为预定值B以下的水平方向块判断为无效块的动作。
并且,在图34中,也表示在水平方向块n值化相加数据峰值的最大值小于预定值A时,即使存在水平方向块n值化相加数据峰值为预定值B以下的块,也不将该块判断为无效块的动作。
例如,以图33为例,在水平方向块n值化相加数据峰值的最大值为7时,不将垂直方向块hb0、hb1、hb7、hb8和hb9判断为无效块。这是因为相对于水平方向块n值化相加数据峰值为最大值的块,不能说可靠性相对较低。
另外,在上述说明中,关于有效/无效的判定条件,示出了把预定值A设为12、把预定值B设为7的示例,但不限于此,在依赖于图像的垂直方向像素数时,例如垂直方向像素数为480像素时,可以将预定值A设定为10左右的值,将预定值B设定为预定值A的一半左右的值。
<使用第3阈值交叉点的个数的情况>
图35是说明使用第3阈值交叉点的个数来判定各个垂直方向块的有效/无效的方法的图。
在图35中,表示以图13(a)所示的640像素×480像素的图像数据为例,沿水平方向分割为具有64像素宽度(分割宽度)的10个水平方向块hb0~hb9的情况。
并且,在图35中,按照各个块,利用十六进制表示从第3阈值交叉点搜索部48(图20)输出的第3阈值交叉点的个数。
第3阈值交叉点搜索部48输出保存在第2水平方向块投影行存储器46中的前面帧的第2水平方向块投影数据的波形、与由第2水平方向块投影数据最大值保存部45计算出的第3阈值交叉的第3阈值交叉点的信息,该信息也包含关于第3阈值交叉点的个数的信息,如图35所示,可以得到各个水平方向块hb0~hb9的第3阈值交叉点的个数。
图36是示意表示水平方向块的有效/无效的判定的图。
在图36中,示出横轴表示各个水平方向块hb0~hb9的第3阈值交叉点的个数的最大值、纵轴表示第3阈值交叉点的个数的曲线,在垂直方向运动矢量确定部510(图20)中,与第3阈值交叉点的个数的最大值无关,将各个水平方向块hb0~hb9的第3阈值交叉点的个数为预定值D(例如利用十进制表示的3)以下的块判断为无效块。在图35的示例中,水平方向块hb0和hb9被判断为无效块。
在确定图像整体的垂直方向运动矢量时,不使用被判断为无效块的水平方向块,由此能够提高垂直方向运动矢量的可靠性。
另一方面,也可以构成为在第3阈值交叉点的个数至少为垂直方向的像素数以下且与垂直方向的像素数相比个数太多时,可以说捕捉到非常周期性的图案,所以例如在达到预定值E以上(例如垂直方向像素数的一半以上)时,把该块判断为无效块。例如,在图35中的水平方向块hb4中,第3阈值交叉点的个数为241,达到垂直方向像素数的一半以上,所以判断为无效块。
并且,如图37所示,也可以构成为仅在第3阈值交叉点的个数的最大值为预定值C(>D)以上时,将预定值D以下的块判断为无效块。该情况时,在第3阈值交叉点的个数的最大值小于预定值C时,即使存在预定值D以下的块,也不将该块判断为无效块,可以更加精细地设定无效块的判定基准。
另外,在上述说明中,关于有效/无效的判定条件,示出了把预定值D设为3、把预定值E设为垂直方向像素数的一半的示例,但不限于此。
通过采用以上说明的使用第1水平方向块投影数据最大值来判定各个水平方向块的有效/无效的方法、使用水平方向块n值化相加数据峰值来判定各个水平方向块的有效/无效的方法、以及使用第3阈值交叉点的信息来判定各个水平方向块的有效/无效的方法,从而判定无效块,在确定图像整体的垂直方向运动矢量时,不使用根据被判定为无效块的水平方向块计算出的垂直方向运动矢量,由此能够提高运动矢量的可靠性。
并且,以上说明的三种判定方法可以单独使用也可以组合使用。
例如,可以在使用第1水平方向块投影数据最大值判定有效/无效的同时,使用水平方向块n值化相加数据峰值判定各个水平方向块的有效/无效,还可以在使用第1水平方向块投影数据最大值判定有效/无效的同时,使用第3阈值交叉点的信息判定各个水平方向块的有效/无效。
根据这种组合,能够可靠地选择无效块,能够进一步提高运动矢量的可靠性。
<垂直方向运动矢量的确定方法>
在垂直方向运动矢量确定部510中,按照上面所述判定水平方向块的有效/无效,对于被判定为有效块的水平方向块,根据其垂直方向运动矢量来确定图像整体的垂直方向运动矢量。
此时,集合具有相同的垂直方向运动矢量的水平方向块,生成直方图。
下面,使用图38和图39说明图像整体的垂直方向运动矢量的确定方法的一例。
在图38和图39中,表示把水平方向运动矢量的检测范围设为—U~U的情况,在此,作为一例表示U为31的情况,以1个矢量间隔表示—31~31。另外,在对应各个矢量而设的框内示出的数字表示具有相同矢量的水平方向块的个数。
如图38所示,在对各个水平方向块计算出的垂直方向运动矢量中,垂直方向运动矢量—3和垂直方向运动矢量2是利用两个水平方向块计算得到的,在其他水平方向块中全部为分散的垂直方向运动矢量,其分布范围的最小值为—26、最大值为8,其差异为34,对于运动矢量检测范围而言可以说存在非常大的偏差。另外,在图38中,对与从当前帧的各个水平方向块得到的垂直方向运动矢量对应的块添加点阴影。
在垂直方向运动矢量确定部510中,在从各个水平方向块得到的垂直方向运动矢量的最大值与最小值之差为预先设定的阈值B(例如上述的U)以上时,从各个水平方向块得到的垂直方向运动矢量的可靠性较低,因而把垂直方向运动矢量设为0。
通过进行这种处理,可以提高图像整体的水平方向运动矢量的可靠性。
另一方面,在具有垂直方向运动矢量—3和垂直方向运动矢量2的水平方向块的个数为预先设定的数值A(例如3)以上时,可以判断为从各个水平方向块得到的垂直方向运动矢量充分可靠。
同样,在从各个水平方向块得到的垂直方向运动矢量的最大值与最小值之差小于阈值B时,也判断为从各个水平方向块得到的垂直方向运动矢量充分可靠。
另外,数值A、阈值B不限于上述的值。并且,偏差的判断也不限于根据上述的垂直方向运动矢量的最大值与最小值之差来进行判断,也可以使用标准偏差,例如在标准偏差为阈值B以上时,判断为偏差大。
在上述处理的结果为判断为从各个水平方向块得到的垂直方向运动矢量充分可靠时,按照下面的步骤计算当前帧的垂直方向运动矢量。
简单地讲,把从当前帧的各个水平方向块输出的垂直方向运动矢量中、与前面帧的垂直方向运动矢量最接近的垂直方向运动矢量,作为当前帧的垂直方向运动矢量。
在图39中,表示从各个水平方向块得到的垂直方向运动矢量的分布范围的最大值与最小值之差为9的情况,由于小于阈值B(例如U=31),所以垂直方向运动矢量确定部510判断为根据各个水平方向块计算出的垂直方向运动矢量具有可靠性。
在此,在图39中,垂直方向运动矢量8是前面帧的垂直方向运动矢量,从与其最接近的当前帧的各个水平方向块得到的垂直方向运动矢量是垂直方向运动矢量6。因此,垂直方向运动矢量6被确定为当前帧的垂直方向运动矢量。另外,在图39中,对与从当前帧的各个水平方向块得到的垂直方向运动矢量对应的块添加点阴影,对与前面帧的垂直方向运动矢量对应的块添加斜线阴影。
在此,在多个水平方向块的输出结果达到相同的垂直方向运动矢量时,即某个垂直方向运动矢量的个数为2以上时,个数为1的垂直方向运动矢量被视为可靠性较低而除外,在此基础上求出与前面帧的垂直方向运动矢量最接近的垂直方向运动矢量,把该垂直方向运动矢量作为当前帧的垂直方向运动矢量。
在采用该方法时,在图39的示例中,垂直方向运动矢量5是当前帧的水平方向运动矢量。
另外,在与前面帧的垂直方向运动矢量最接近的垂直方向运动矢量有两个时,可以把其平均、即前面帧的垂直方向运动矢量本身作为当前帧的垂直方向运动矢量。
在此,前面帧的垂直方向运动矢量的信息预先保存在设于垂直方向运动矢量确定部510中的预定的存储部(前面帧垂直方向运动矢量保存单元)中,可以根据需要读出。
如以上说明的那样,根据水平方向块的有效/无效的判定动作,把可靠性较低的水平方向块除外,在此基础上对根据可靠性高的水平方向块计算的垂直方向运动矢量,考虑偏差来评价图像整体的垂直方向运动矢量的可靠性,在判断为可靠时,通过考虑前面帧的垂直方向运动矢量,能够确定也考虑了源自前面帧的运动的不协调感较小的垂直方向运动矢量。
<效果>
如以上说明的那样,在实施方式3的运动矢量检测装置1B的水平方向运动矢量检测部2B中,在水平方向运动矢量确定部320中,根据从第1垂直方向块投影数据最大值保存部24输出的第1垂直方向块投影数据最大值、从垂直方向块水平方向运动矢量计算部310输出的垂直方向块n值化相加数据峰值、和从第1阈值交叉点搜索部29输出的第1阈值交叉点的信息,进行垂直方向块的有效/无效的判断,所以能够把从可靠性低的垂直方向块得到的水平方向运动矢量除外,其结果,能够计算出可靠性高的水平方向运动矢量。
并且,对于根据可靠性高的垂直方向块计算的水平方向运动矢量,考虑偏差来评价图像整体的水平方向运动矢量的可靠性,在判断为可靠时,通过考虑前面帧的水平方向运动矢量,也能够确定考虑了源自前面帧的运动的不协调感小的水平方向运动矢量。
并且,在垂直方向运动矢量确定部510中,根据从第1水平方向块投影数据最大值保存部45输出的第1水平方向块投影数据最大值、从水平方向块垂直方向运动矢量计算部500输出的水平方向块n值化相加数据峰值、和从第3阈值交叉点搜索部48输出的第3阈值交叉点的信息,进行水平方向块的有效/无效的判断,所以在垂直方向运动矢量检测部4B中,能够把从可靠性低的水平方向块得到的垂直方向运动矢量除外,其结果,能够计算出可靠性高的垂直方向运动矢量。
并且,在对于根据可靠性高的水平方向块计算的垂直方向运动矢量考虑偏差来评价图像整体的垂直方向运动矢量的可靠性且判断为可靠时,通过考虑前面帧的垂直方向运动矢量,也能够确定考虑了源自前面帧的运动的不协调感小的垂直方向运动矢量。
并且,在运动矢量检测装置1B中,在由垂直方向图像分割部21沿垂直方向分割帧图像后,对各个分割图像(垂直方向块)强调垂直方向的边缘,所以能够容易地生成对垂直方向的边缘进行了强调的分割图像。同样,在由水平方向图像分割部41沿水平方向分割帧图像后,对各个分割图像(水平方向块)强调水平方向的边缘,所以能够容易地生成对水平方向的边缘进行了强调的分割图像。
实施方式4
<运动矢量检测装置的结构>
如图1所示,本发明的实施方式4的运动矢量检测装置1C具有与实施方式1的运动矢量检测装置1类似的结构,但水平方向运动矢量检测部和垂直方向运动矢量检测部的结构不同。
下面,参照图40和图41,说明运动矢量检测装置1C的水平方向运动矢量检测部2C和垂直方向运动矢量检测部4C的结构。图40是表示水平方向运动矢量检测部2C的主要部分结构的方框图。另外,在图40中,对具有与在实施方式3中说明的水平方向运动矢量检测部2B相同功能的部位标注相同标号,并省略重复的说明。
在水平方向运动矢量检测部2C的边缘强调单元中,相对于实施方式3的水平方向运动矢量检测部2B的边缘强调单元,使垂直方向图像分割部21和垂直方向边缘提取滤波部22的配置颠倒。下面,说明该水平方向运动矢量检测部2C的动作。
按照图2所示沿垂直方向依次反复进行水平行的像素扫描而读出的帧图像,被输入水平方向运动矢量检测部2C的输入端子20,然后在垂直方向边缘提取滤波部22中进行沿垂直方向延伸的边缘分量的提取,换言之,实施对在水平方向上急剧变化的图像部分进行强调的滤波处理。
由垂直方向边缘提取滤波部22对垂直方向的边缘进行了强调的帧图像被输入垂直方向图像分割部21,被沿垂直方向分割成块。即,在垂直方向图像分割部21中,设定沿垂直方向对被实施了边缘强调的帧图像进行分割而得到的多个图像区域(垂直方向块)。由此,在以后的处理中按照每个垂直方向块进行处理和管理。
由垂直方向图像分割部21分割的图像数据输入垂直方向块投影部23,关于该垂直方向块投影部23后续的处理是进行与实施方式3的水平方向运动矢量检测部2B相同的处理。
图41是表示垂直方向运动矢量检测部4C的主要部分结构的方框图。另外,在图41中,对具有与在实施方式3中说明的垂直方向运动矢量检测部4B相同功能的部位标注相同标号,并省略重复的说明。
在垂直方向运动矢量检测部4C的边缘强调单元中,相对于实施方式3的垂直方向运动矢量检测部4B的边缘强调单元,使水平方向图像分割部41和水平方向边缘提取滤波部42的配置颠倒。以下说明该垂直方向运动矢量检测部4C的动作。
当按照图2所示沿垂直方向依次反复进行水平行的像素扫描而读出的帧图像被输入垂直方向运动矢量检测部4C的输入端子40时,在水平方向边缘提取滤波部42中进行沿水平方向延伸的边缘分量的提取,换言之,实施对在垂直方向急剧变化的图像部分进行强调的滤波处理。
由水平方向边缘提取滤波部42对水平方向的边缘进行了强调的帧图像被输入水平方向图像分割部41,被沿水平方向分割成块。即,在水平方向图像分割部41中,设定沿水平方向对被实施了边缘强调的帧图像进行分割而得到的多个图像区域(水平方向块)。由此,在以后的处理中针对每个水平方向块进行处理和管理。
由水平方向图像分割部41分割的图像数据输入水平方向块投影部43,关于该水平方向块投影部43以后的处理是进行与实施方式3的垂直方向运动矢量检测部4B相同的处理。
根据以上所述的运动矢量检测装置1C的动作,可以发挥与实施方式3相同的效果。
并且,在运动矢量检测装置1C中,在由垂直方向边缘提取滤波部22对帧图像进行了垂直方向的边缘强调后,在垂直方向图像分割部21中沿垂直方向对被强调了边缘的帧图像进行分割,所以能够容易地生成强调了垂直方向的边缘的分割图像。
同样,在由水平方向边缘提取滤波部42对帧图像的水平方向的边缘进行了强调后,在水平方向图像分割部41中沿水平方向对被强调了边缘的帧图像进行分割,所以能够容易地生成对水平方向的边缘进行了强调的分割图像。
另外,在运动矢量检测装置1C中,并不是必须把垂直方向边缘提取滤波部22和水平方向边缘提取滤波部42分别配置在水平方向运动矢量检测部2A和垂直方向运动矢量检测部4A中,也可以设置将垂直方向边缘提取滤波部22和水平方向边缘提取滤波部42双方的功能一体化的水平/垂直方向边缘提取滤波部,把其输出分别输入到垂直方向图像分割部21和水平方向图像分割部41。
<变形例>
关于上述各个实施方式中的垂直方向边缘提取滤波部和水平方向边缘提取滤波部,也可以在进行边缘提取的滤波处理后,通过判别与预定阈值的大小关系的阈值处理,进行例如“有边缘”“无边缘”的2值化、和“有正边缘”“无边缘”“有负边缘”的3值化。通过进行这种阈值处理,可以同样地处理具有预定阈值以上的亮度变化(亮度梯度)的边缘。
在上述各个实施方式中,也可以通过例如每个帧的开关切换,把从比特数削减部25输出的数据交替输入第1垂直方向块投影行存储器26和第2垂直方向块投影行存储器27中。
并且,也可以通过例如每个帧的开关切换,把从水平方向块投影部43输出的数据交替输入第1水平方向块投影行存储器44和第2水平方向块投影行存储器46中。
同样,也可以通过例如每个帧的开关切换,把从垂直(水平)方向块投影部输出的数据交替输入第1垂直(水平)方向块投影数据最大值保存部和第2垂直(水平)方向块投影数据最大值保存部中。
本发明中的“前面帧”不限于相对后面帧(例如当前帧)的前一帧,也可以包括两个以上的前面帧。例如,在通过帧间疏(間引き)处理跳过中间的帧时,则也包括处于被跳过的帧前面的帧。
以上具体说明了本发明,但上述的说明仅是全部方面中的示例,本发明不限于上述说明。可以理解为没有例示的无数个变形例均可以在不脱离本发明范围的情况下得到。
Claims (26)
1.一种运动矢量检测装置,其检测关于在时序上为前后关系的前面帧和后面帧的帧图像间的运动矢量,该运动矢量检测装置具有:
边缘强调单元(21、22),对于沿垂直方向依次反复进行水平行的像素扫描而读出的帧图像,该边缘强调单元(21、22)针对沿垂直方向以具有一定分割宽度的方式被分割为多个块而得到的每个块,强调垂直方向的边缘;
投影单元(23),对由所述边缘强调单元(21、22)强调了边缘的图像,该投影单元(23)针对每个所述块在垂直方向上取投影,按照每个所述块生成具有1个水平行的量的数据数组的投影数据;
确定单元(29),关于通过所述投影单元(23)得到的针对所述前面帧的投影数据,该确定单元(29)确定按照所述数据数组的要素顺序将数组要素的值曲线化而得到的波形、与数组要素的值为预定的固定值的直线交叉的各个交叉点的数组要素的位置;
提取单元(30),其从通过所述投影单元得到的针对所述后面帧的投影数据中,提取以所述各个交叉点的数组要素的位置为中心的预定范围的数据数组;
相加单元(31),对于由所述提取单元(30)提取出的预定范围的各个数据数组,针对所述各个交叉点的数组要素的位置,对相对位置相同的各个数组要素的值进行相加;以及
检测单元(32),其根据由所述相加单元(31)相加得到的相加结果,检测关于帧图像的水平方向的运动矢量。
2.根据权利要求1所述的运动矢量检测装置,该运动矢量检测装置还具有:
最大值获取单元(24),其在所述投影数据的数组要素中求出最大值;
削减单元(25),其根据由所述最大值获取单元求出的最大值,来削减关于所述投影数据的各个数组要素的数据长度;以及
存储单元(26),其存储通过所述削减单元(25)削减了数据长度的关于所述后面帧的投影数据,
所述确定单元(29)具有位置确定单元,对于通过所述削减单元(25)削减了数据长度的关于所述前面帧的投影数据,该位置确定单元确定按照所述数据数组的要素顺序将数组要素的值曲线化而得到的波形、与数组要素的值为预定的固定值的直线交叉的各个交叉点的数组要素的位置,
所述提取单元(30)具有下述单元,该单元从存储在所述存储单元(26)中的被削减了数据长度的后面帧的投影数据中,提取预定范围的数据数组,其中,该预定范围的数据数组以由所述位置确定单元确定的各个交叉点的数组要素的位置为中心。
3.根据权利要求1所述的运动矢量检测装置,所述相加单元(31)具有:
压缩单元(314),其压缩由所述提取单元(30)提取出的关于预定范围的数据数组的各个数组要素的数据长度;以及
单元(315),对于由所述压缩单元压缩了数据长度的预定范围的各个数据数组,该单元(315)针对所述各个交叉点的数组要素的位置,对相对位置相同的各个数组要素的值进行相加。
4.根据权利要求3所述的运动矢量检测装置,
所述压缩单元(314)对与由所述提取单元提取出的预定范围的数据数组有关的各个数组要素的值进行3值化处理,
在所述3值化处理中,关于根据所述后面帧的投影数据中的数组要素的最大值设定的阈值Th(Th>0),进行基于3个阶段的3值化,该3个阶段是指:与所述提取单元(30)提取出的投影数据有关的数组要素的值小于(-Th)的情况、大于等于(-Th)且小于等于Th的情况、以及大于Th的情况这3个阶段。
5.一种运动矢量检测装置,其检测关于在时序上为前后关系的前面帧和后面帧的帧图像间的运动矢量,该运动矢量检测装置具有:
边缘强调单元(42),对于沿垂直方向依次反复进行水平行的像素扫描而读出的帧图像,该边缘强调单元(42)针对沿水平方向以具有一定分割宽度的方式被分割为多个块而得到的每个块,强调水平方向的边缘;
投影单元(43),对由所述边缘强调单元强调了边缘的图像,该投影单元(43)针对每个所述块在水平方向上取投影,按照每个所述块生成具有1个垂直行的量的数据数组的投影数据;
确定单元(48),关于通过所述投影单元(43)得到的针对所述前面帧的投影数据,该确定单元(48)确定按照所述数据数组的要素顺序将数组要素的值曲线化而得到的波形、与数组要素的值为预定的固定值的直线交叉的各个交叉点的数组要素的位置;
提取单元(49),其从通过所述投影单元得到的针对所述后面帧的投影数据中,提取以所述各个交叉点的数组要素的位置为中心的预定范围的数据数组;
相加单元(50),对于由所述提取单元(49)提取出的预定范围的各个数据数组,针对所述各个交叉点的数组要素的位置,对相对位置相同的各个数组要素的值进行相加;以及
检测单元(51),其根据由所述相加单元(50)相加得到的相加结果,检测关于帧图像的垂直方向的运动矢量。
6.根据权利要求5所述的运动矢量检测装置,所述相加单元(50)具有:
压缩单元(504),其压缩与所述提取单元(49)提取出的预定范围的数据数组有关的各个数组要素的数据长度;以及
单元(505),对于由所述压缩单元压缩了数据长度的预定范围的各个数据数组,该单元(505)针对所述各个交叉点的数组要素的位置,对相对位置相同的各个数组要素的值进行相加。
7.根据权利要求6所述的运动矢量检测装置,
所述压缩单元(504)对与所述提取单元提取出的预定范围的数据数组有关的各个数组要素的值进行3值化处理,
在所述3值化处理中,关于根据所述前面帧的投影数据中的数组要素的最大值设定的阈值Th(Th>0),进行基于3个阶段的3值化,该3个阶段是指:与所述提取单元提取出的投影数据有关的数组要素的值小于(-Th)的情况、大于等于(-Th)且小于等于Th的情况、以及大于Th的情况这3个阶段。
8.根据权利要求1或5所述的运动矢量检测装置,其具有最大值确定单元(28、47),该最大值确定单元(28、47)用于求出关于所述前面帧的投影数据的数组要素中的最大值。
9.一种运动矢量检测装置,其检测关于在时序上为前后关系的前面帧和后面帧的帧图像间的运动矢量,该运动矢量检测装置具有:
边缘强调单元(21、22),对于沿垂直方向依次反复进行水平行的像素扫描而读出的帧图像,该边缘强调单元(21、22)针对沿垂直方向以具有一定分割宽度的方式被分割为多个块而得到的每个块,强调垂直方向的边缘;
投影单元(23),对于由所述边缘强调单元(21、22)强调了边缘的图像,该投影单元(23)针对每个所述块在垂直方向上取投影,按照每个所述块生成具有1个水平行的量的数据数组的投影数据;
最大值获取单元(24),其在通过所述投影单元(23)得到的针对所述后面帧的后面帧投影数据的数组要素中求出最大值;
确定单元(29),关于通过所述投影单元(23)得到的针对所述前面帧的前面帧投影数据,该确定单元(29)确定按照所述数据数组的要素顺序将数组要素的值曲线化而得到的波形、与数组要素的值为预定的固定值的直线交叉的各个交叉点的数组要素的位置;
提取单元(30),其从所述后面帧投影数据中,提取以所述各个交叉点的数组要素的位置为中心的预定范围的数据数组;
相加单元(310),对于由所述提取单元(30)提取出的预定范围的各个数据数组,针对所述各个交叉点的数组要素的位置,对相对位置相同的各个数组要素的值进行相加,并根据得到的相加结果来计算每个所述块的水平方向运动矢量;以及
检测单元(320),其根据由所述相加单元(310)计算出的每个所述块的水平方向运动矢量,检测帧图像整体的水平方向运动矢量,
所述检测单元(320)使用由所述最大值获取单元(24)得到的所述后面帧投影数据的所述最大值、由所述相加单元(310)得到的所述相加结果、和由所述确定单元(29)得到的所述交叉点信息中的至少一方,来进行每个所述块的水平方向运动矢量的可靠性评价。
10.根据权利要求9所述的运动矢量检测装置,
所述检测单元(320)在使用所述后面帧投影数据的所述最大值进行每个所述块的水平方向运动矢量的可靠性评价时,
从在所述多个块中分别得到的、所述后面帧投影数据的所述最大值中,求出全部块中的最大值,把具有相比于该全部块中的最大值在预先设定的比率以下的所述最大值的所述块视为无效块,在所述帧图像整体的水平方向运动矢量的检测中不使用根据该无效块计算出的每个所述块的水平方向运动矢量。
11.根据权利要求9所述的运动矢量检测装置,
所述检测单元(320)在使用所述相加结果进行每个所述块的水平方向运动矢量的可靠性评价时,
从在所述多个块中分别得到的所述相加结果的峰值中求出最大峰值,在该最大峰值为预先设定的第1预定值以上时,把具有预先设定的第2预定值以下的所述最大值的所述块视为无效块,在所述帧图像整体的水平方向运动矢量的检测中不使用根据该无效块计算出的每个所述块的水平方向运动矢量。
12.根据权利要求9所述的运动矢量检测装置,
所述检测单元(320)在使用所述交叉点信息进行每个所述块的水平方向运动矢量的可靠性评价时,使用所述交叉点信息中的交叉点数量信息,
把在所述多个块中分别得到的所述交叉点数量中、具有预先设定的第1预定值以下以及预先设定的第2预定值以上的所述交叉点数量的所述块视为无效块,在所述帧图像整体的水平方向运动矢量的检测中不使用根据该无效块计算出的每个所述块的水平方向运动矢量。
13.根据权利要求9所述的运动矢量检测装置,
所述检测单元(320)在使用所述交叉点信息进行每个所述块的水平方向运动矢量的可靠性评价时,使用所述交叉点信息中的交叉点数量信息,
从在所述多个块中分别得到的所述交叉点数量中求出最大值,在该最大值为预先设定的第1预定值以上时,把具有预先设定的第2预定值以下以及预先设定的第3预定值以上的所述交叉点数量的所述块视为无效块,在所述帧图像整体的水平方向运动矢量的检测中不使用根据该无效块计算出的每个所述块的水平方向运动矢量。
14.根据权利要求10~13中任一项所述的运动矢量检测装置,所述检测单元(320)对每个所述块的水平方向运动矢量求出分布范围,在该分布范围为预先设定的阈值以上时,把所述帧图像整体的水平方向运动矢量设为零,其中,该每个所述块的水平方向运动矢量是根据通过每个所述块的水平方向运动矢量的可靠性评价被判断为有效块的所述块而计算的。
15.根据权利要求14所述的运动矢量检测装置,
所述检测单元(320)具有前面帧水平方向运动矢量保存单元,该前面帧水平方向运动矢量保存单元保存所述前面帧的所述帧图像整体的水平方向运动矢量,
把根据所述被判断为有效块的所述块计算出的每个所述块的水平方向运动矢量中、最接近所述前面帧的所述帧图像整体的水平方向运动矢量的水平方向运动矢量,作为所述后面帧的所述帧图像整体的水平方向运动矢量。
16.一种运动矢量检测装置,其检测关于在时序上为前后关系的前面帧和后面帧的帧图像间的运动矢量,该运动矢量检测装置具有:
边缘强调单元(42),对于沿垂直方向依次反复进行水平行的像素扫描而读出的帧图像,该边缘强调单元(42)针对沿水平方向以具有一定分割宽度的方式被分割为多个块而得到的每个块,强调水平方向的边缘;
投影单元(43),对于由所述边缘强调单元(42)强调了边缘的图像,该投影单元(43)针对每个所述块在水平方向取投影,按照每个所述块生成具有1个垂直行的量的数据数组的投影数据;
最大值获取单元(45),其在通过所述投影单元(43)得到的针对所述后面帧的后面帧投影数据的数组要素中求出最大值;
确定单元(48),关于通过所述投影单元(43)得到的针对所述前面帧的前面帧投影数据,该确定单元(48)确定按照所述数据数组的要素顺序将数组要素的值曲线化而得到的波形、与数组要素的值为预定的固定值的直线交叉的各个交叉点的数组要素的位置,作为交叉点信息输出;
提取单元(49),其从所述后面帧投影数据中,提取以所述各个交叉点的数组要素的位置为中心的预定范围的数据数组;
相加单元(500),对于由所述提取单元(49)提取出的预定范围的各个数据数组,针对所述各个交叉点的数组要素的位置,对相对位置相同的各个数组要素的值进行相加,并根据得到的相加结果来计算每个所述块的垂直方向运动矢量;以及
检测单元(510),其根据由所述相加单元(500)计算出的每个所述块的垂直方向运动矢量,检测帧图像整体的垂直方向运动矢量,
所述检测单元(510)使用由所述最大值获取单元(45)得到的所述后面帧投影数据的所述最大值、由所述相加单元(500)得到的所述相加结果、和由所述确定单元(48)得到的所述交叉点信息中的至少一方,来进行所述每个块的垂直方向运动矢量的可靠性评价。
17.根据权利要求16所述的运动矢量检测装置,
所述检测单元(510)在使用所述后面帧投影数据的所述最大值进行每个所述块的垂直方向运动矢量的可靠性评价时,
从在所述多个块中分别得到的所述后面帧投影数据的所述最大值中求出全部块中的最大值,把具有相比于该全部块中的最大值在预先设定的比率以下的所述最大值的所述块视为无效块,在所述帧图像整体的垂直方向运动矢量的检测中不使用根据该无效块计算出的每个所述块的垂直方向运动矢量。
18.根据权利要求16所述的运动矢量检测装置,
所述检测单元(510)在使用所述相加结果进行每个所述块的垂直方向运动矢量的可靠性评价时,
从在所述多个块中分别得到的所述后面帧投影数据的所述最大值中求出全部块中的最大值,把具有相比于该全部块中的最大值在预先设定的比率以下的所述最大值的所述块视为无效块,在所述帧图像整体的垂直方向运动矢量的检测中不使用根据该无效块计算出的每个所述块的垂直方向运动矢量。
19.根据权利要求16所述的运动矢量检测装置,
所述检测单元(510)在使用所述交叉点信息进行每个所述块的垂直方向运动矢量的可靠性评价时,使用所述交叉点信息中的交叉点数量信息,
把在所述多个块中分别得到的所述交叉点数量中、具有预先设定的第1预定值以下以及预先设定的第2预定值以上的所述交叉点数量的所述块视为无效块,在所述帧图像整体的垂直方向运动矢量的检测中不使用根据该无效块计算出的每个所述块的垂直方向运动矢量。
20.根据权利要求16所述的运动矢量检测装置,
所述检测单元(510)在使用所述交叉点信息进行每个所述块的垂直方向运动矢量的可靠性评价时,使用所述交叉点信息中的交叉点数量信息,
从在所述多个块中分别得到的所述交叉点数量中求出最大值,在该最大值为预先设定的第1预定值以上时,把具有预先设定的第2预定值以下以及预先设定的第3预定值以上的所述交叉点数量的所述块视为无效块,在所述帧图像整体的垂直方向运动矢量的检测中不使用根据该无效块计算出的每个所述块的垂直方向运动矢量。
21.根据权利要求17~20中的任一项所述的运动矢量检测装置,所述检测单元(510)对每个所述块的垂直方向运动矢量求出分布范围,在该分布范围为预先设定的阈值以上时,把所述帧图像整体的垂直方向运动矢量设为零,其中,该每个所述块的垂直方向运动矢量是根据通过每个所述块的垂直方向运动矢量的可靠性评价被判断为有效块的所述块而计算的。
22.根据权利要求21所述的运动矢量检测装置,所述检测单元具有前面帧垂直方向运动矢量保存单元,该前面帧垂直方向运动矢量保存单元保存所述前面帧的所述帧图像整体的垂直方向运动矢量,
把根据所述被判断为有效块的所述块计算出的每个所述块的垂直方向运动矢量中、最接近所述前面帧的所述帧图像整体的垂直方向运动矢量的垂直方向运动矢量,作为所述后面帧的所述帧图像整体的垂直方向运动矢量。
23.根据权利要求1或9所述的运动矢量检测装置,所述边缘强调单元(21、22)具有:
图像分割单元(21),其把沿垂直方向分割所述帧图像而得到的多个图像区域分别设定为所述块;以及
强调单元(22),其对所述多个块分别强调垂直方向的边缘。
24.根据权利要求1或9所述的运动矢量检测装置,所述边缘强调单元(21、22)具有:
强调单元(22),其对所述帧图像强调垂直方向的边缘;以及
图像分割单元(21),其把沿垂直方向对被所述强调单元(22)强调了边缘的所述帧图像进行分割而得到的多个图像区域,分别设定为所述块。
25.根据权利要求5或16所述的运动矢量检测装置,所述边缘强调单元(41、42)具有:
图像分割单元(41),其把沿水平方向分割所述帧图像而得到的多个图像区域分别设定为所述块;以及
强调单元(42),其对所述多个块分别强调水平方向的边缘。
26.根据权利要求5或16所述的运动矢量检测装置,所述边缘强调单元(41、42)具有:
强调单元(42),其对所述帧图像强调水平方向的边缘;以及
图像分割单元(41),其把沿水平方向对被所述强调单元(42)强调了边缘的所述帧图像进行分割而得到的多个图像区域,分别设定为所述块。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006227384A JP4027398B1 (ja) | 2006-08-24 | 2006-08-24 | 動きベクトル検出装置 |
JP227384/2006 | 2006-08-24 | ||
JP242343/2006 | 2006-09-07 | ||
JP2006242343A JP4213739B2 (ja) | 2006-09-07 | 2006-09-07 | 動きベクトル検出装置 |
PCT/JP2007/052011 WO2008023466A1 (en) | 2006-08-24 | 2007-02-06 | Moving vector detecting bdevice |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101506845A true CN101506845A (zh) | 2009-08-12 |
CN101506845B CN101506845B (zh) | 2011-11-23 |
Family
ID=38935754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800314952A Expired - Fee Related CN101506845B (zh) | 2006-08-24 | 2007-02-06 | 运动矢量检测装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP4027398B1 (zh) |
CN (1) | CN101506845B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114205621A (zh) * | 2018-02-28 | 2022-03-18 | 三星电子株式会社 | 编码方法及其装置以及解码方法及其装置 |
CN115278231A (zh) * | 2015-11-11 | 2022-11-01 | 三星电子株式会社 | 对视频进行解码的设备和对视频进行编码的设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101499498B1 (ko) | 2008-10-08 | 2015-03-06 | 삼성전자주식회사 | 초고해상도 비디오 처리 장치 및 방법 |
WO2018164105A1 (ja) * | 2017-03-06 | 2018-09-13 | ソニーセミコンダクタソリューションズ株式会社 | 駆動装置および表示装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0181031B1 (ko) * | 1995-03-20 | 1999-05-01 | 배순훈 | 움직임 보상된 인터폴레이션에서의 엣지 보상 장치 |
-
2006
- 2006-08-24 JP JP2006227384A patent/JP4027398B1/ja not_active Expired - Fee Related
-
2007
- 2007-02-06 CN CN2007800314952A patent/CN101506845B/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115278231A (zh) * | 2015-11-11 | 2022-11-01 | 三星电子株式会社 | 对视频进行解码的设备和对视频进行编码的设备 |
US12003761B2 (en) | 2015-11-11 | 2024-06-04 | Samsung Electronics Co., Ltd. | Method and apparatus for decoding video, and method and apparatus for encoding video |
CN114205621A (zh) * | 2018-02-28 | 2022-03-18 | 三星电子株式会社 | 编码方法及其装置以及解码方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101506845B (zh) | 2011-11-23 |
JP4027398B1 (ja) | 2007-12-26 |
JP2008052472A (ja) | 2008-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7606423B2 (en) | Method and apparatus for blocking artifact detection and measurement in block-coded video | |
EP2053844B1 (en) | Image processing device, image processing method, and program | |
US20110188583A1 (en) | Picture signal conversion system | |
US20050259738A1 (en) | Image processing apparatus and method, and recording medium and program used therewith | |
JPS61200789A (ja) | 画面上の物体の動きベクトル検出方式 | |
CN105872345A (zh) | 基于特征匹配的全帧电子稳像方法 | |
CN101506845B (zh) | 运动矢量检测装置 | |
CN107749987A (zh) | 一种基于块运动估计的数字视频稳像方法 | |
US8983204B2 (en) | Image processing apparatus and method for controlling same | |
CN101625721B (zh) | 基于统计数据的人脸检测和跟踪方法 | |
US20110187924A1 (en) | Frame rate conversion device, corresponding point estimation device, corresponding point estimation method and corresponding point estimation program | |
CN111741186A (zh) | 一种视频抖动检测方法、装置以及系统 | |
US20080260040A1 (en) | Method, device, integrated circuit and encoder for filtering video noise | |
JP3862728B2 (ja) | 画像動きベクトル検出装置 | |
CN104065975A (zh) | 基于适应性运动估计的帧率提升方法 | |
JP2008109545A (ja) | 画像ブレ検出装置並びにこれを備えた画像ブレ補正装置、固体撮像装置、及び電子機器 | |
CN106951831B (zh) | 一种基于深度摄像机的行人检测跟踪方法 | |
CN101523440B (zh) | 运动矢量检测装置 | |
EP2061007A1 (en) | Moving vector detecting bdevice | |
US6801669B2 (en) | Image filter processing apparatus and method | |
JP4213739B2 (ja) | 動きベクトル検出装置 | |
JPH10327401A (ja) | 動きベクトル検出方法及びそれを用いた画像信号の符号化方法及び装置 | |
JP3597107B2 (ja) | 動きベクトル検出回路及び動きベクトル検出方法 | |
Vo et al. | Automatic video deshearing for skew sequences capturedby rolling shutter cameras | |
JP5397372B2 (ja) | テロップ移動ベクトル算出方法、装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111123 Termination date: 20150206 |
|
EXPY | Termination of patent right or utility model |