一种对曲线进行熵编码的方法

文档序号:6536496阅读:101来源:国知局
一种对曲线进行熵编码的方法
【专利摘要】本发明提供一种曲线熵编码的方法,该方法包括:对该曲线起始象素点位置进行编码;对该曲线起始象素点的方向进行编码,该方向编码用3个比特进行绝对编码;对除起始象素点之外的其它象素点的方向依次进行编码,具体为:对该曲线第n个象素点的方向进行编码,该方向编码用相对于第n-1个象素点的方向进行相对编码,n为大于等于2的自然数。本发明对曲线进行编码的方案在清楚表示一条曲线的同时实现了编码数据量小的目的。
【专利说明】一种对曲线进行熵编码的方法
【技术领域】
[0001]本发明涉及图象编码【技术领域】,尤其涉及一种对曲线进行熵编码的方法。
【背景技术】
[0002]在视频监控以及图像智能分析领域,需要从图像中提取物体,或者从运动视频中提取运动前景,或者在图像中提取不同颜色区域等。在进行上述提取操作时会形成很多边缘或者轮廓曲线。这些曲线作为特征是需要进行保存和传输的。所以当前就有必要设计一种方法来表示该曲线,并尽可能的降低其中的冗余信息。
[0003]现有技术中,通常使用曲线的每一点坐标来表示该曲线。该方案虽然剔除了非曲线背景信息,但是使用坐标表示,尤其对HD (High Definition,高清)或者UHD (Ultra HighDefinition,超高清)这样的大分辨率图像来说,数据量仍然很大。

【发明内容】

[0004]有鉴于此,本发明提供一种对曲线进行熵编码的方法。
[0005]本发明技术的实现方案如下:
[0006]一种曲线熵编码的方法,该方法包括:对该曲线起始象素点位置进行编码;对该曲线起始象素点的方向进行编码,该方向编码用3个比特进行绝对编码;对除起始象素点之外的其它象素点的方向依次进行编码,具体为:在对该曲线第η个象素点的方向进行编码,该方向编码用相对于第η-1个象素点的方向进行相对编码,η为大于等于2的自然数。
[0007]优选地,当η大于等于3,且第η-1个象素点相对于第η_2个象素点的方向为“向左前”或者“向左”或者“向左后”,则对该曲线第η个象素点的方向进行编码具体为:
[0008]A编码方式:如果第η个象素点的方向与第η-1个象素点的方向同向,则编码为O ;如果第η个象素点的方向相对于第η-1个象素点的方向为向左前,则编码为10 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向右前,则编码为110 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向左,则编码为1110 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向右,则编码为11110 ;如果第η个象素点的方向相对于第η_1个象素点的方向为向左后,则编码为111110 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向右后,则编码为1111110 ;
[0009]当η大于等于3,且第η-1个象素点相对于第η_2个象素点的方向为“向右前”或者“向右”或者“向右后”,则对该曲线第η个象素点的方向进行编码具体为:
[0010]B编码方式:如果第η个象素点的方向与第η-1个象素点的方向同向,则编码为O ;如果第η个象素点的方向相对于第η-1个象素点的方向为向右前,则编码为10 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向左前,则编码为110 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向右,则编码为1110 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向左,则编码为11110 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向右后,则编码为111110 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向左后,则编码为1111110 ;
[0011 ] 当η等于2时或者,当η大于等于3且第η_1个象素点相对于第n_2个象素点的方向为同向时,该对曲线第η个象素点的方向进行编码具体为:Α编码方式或者B编码方式。
[0012]优选地,当η大于等于3,且第n-Ι个象素点相对于第η_2个象素点的方向为“向左前”或者“向左”或者“向左后”,则对该曲线第η个象素点的方向进行编码具体为:
[0013]C编码方式:如果第η个象素点的方向与第n-Ι个象素点的方向同向,则编码为I ;如果第η个象素点的方向相对于第n-Ι个象素点的方向为向左前,则编码为01 ;如果第η个象素点的方向相对于第n-Ι个象素点的方向为向右前,则编码为001 ;如果第η个象素点的方向相对于第n-Ι个象素点的方向为向左,则编码为0001 ;如果第η个象素点的方向相对于第n-Ι个象素点的方向为向右,则编码为00001 ;如果第η个象素点的方向相对于第η_1个象素点的方向为向左后,则编码为000001 ;如果第η个象素点的方向相对于第n-Ι个象素点的方向为向右后,则编码为0000001 ;
[0014]当η大于等于3,且第n-Ι个象素点相对于第η_2个象素点的方向为“向右前”或者“向右”或者“向右后”,则对该曲线第η个象素点的方向进行编码具体为:
[0015]D编码方式:如果第η个象素点的方向与第n-Ι个象素点的方向同向,则编码为I ;如果第η个象素点的方向相对于第n-Ι个象素点的方向为向右前,则编码为01 ;如果第η个象素点的方向相对于第n-Ι个象素点的方向为向左前,则编码为001 ;如果第η个象素点的方向相对于第n-Ι个象素点的方向为向右,则编码为0001 ;如果第η个象素点的方向相对于第n-Ι个象素点的方向为向左,则编码为00001 ;如果第η个象素点的方向相对于第η_1个象素点的方向为向右后,则编码为000001 ;如果第η个象素点的方向相对于第n-Ι个象素点的方向为向左后,则编码为0000001 ;
[0016]当η等于2时或者,当η大于等于3且第η_1个象素点相对于第n_2个象素点的方向为同向时,该对该曲线第η个象素点的方向进行编码具体为:C编码方式或者D编码方式。
[0017]优选地,对该曲线起始象素点位置进行编码具体为:该起始象素点位置用坐标表示,其中I个比特表示起始象素点坐标属性,2个比特表示坐标字节数,与该坐标字节数对应的比特位数表示起始象素点的坐标值。
[0018]优选地,该方法进一步对该曲线的长度进行编码。
[0019]优选地,2个比特表示长度字节数,与该长度字节数对应的比特位数表示曲线的长度值,该曲线长度以象素点为单位。
[0020]优选地,该方法进一步对该曲线的层次进行编码。
[0021]优选地,用2个比特表示曲线的层次。
[0022]优选地,该方法进一步对该曲线的闭合性进行编码。
[0023]优选地,用I个比特表示该曲线的闭合性。
[0024]相较于现有技术,本发明对曲线进行编码的方案在清楚表示一条曲线的同时实现了编码数据量小的目的。
【专利附图】

【附图说明】
[0025]图1是象素点的方向图。[0026]图2是曲线起始位置属性图。
[0027]图3是象素点的相对方向图。
[0028]图4是曲线方向示例。
[0029]图5是起始位置属性图。
【具体实施方式】
[0030]为了解决【背景技术】中提到的对曲线编码信息量较大的问题,本发明提供一种曲线熵编码的方法。众所周知,熵编码法是一种进行无损数据压缩的技术。在这个技术中一段文字中的每个字母、数字、或符号等被一段不同长度的比特(Bit)所代替。所有的字母、数字、或符号等在压缩后需要能互相区别,并且表示的比特数要最小。本发明技术将详细阐述如何运用熵编码的思想对曲线进行熵编码,以达到数据量小且能完整的表示该曲线的目的。以下通过具体实施例详细描述。
[0031]若干个象素点依次连接构成了一条曲线。为了表示这条曲线,以下方式被认为是一种比较理想的方式:描述曲线起始象素点位置、起始象素点方向以及除起始象素点外的其他象素点的方向。需要说明的是,本文中所说的象素点方向指的是该象素点到它的下一个象素点的指向。请参图1,一个象素点的方向可能存在8种情况,分别为向前、向后、向左、向右、向左前、向右前、向左后、向右后。在描述起始象素点的方向的时候采用绝对方向;在描述除起始象素点之外的其他象素点的方向的时候采用相对方向。具体的编码方式下文将详细说明。
[0032]一条曲线的起始象素点可以选择该曲线上最左上角的象素点。在对该起始象素点的位置进行编码的时候,可以对该起始象素点的象素坐标进行编码,也可以对该象素点归一化后的坐标进行编码。所谓象素坐标指的是象素点在图像中的象素位置(x,y)。归一化坐标以宽或高为单位“I”表示,起始象素点横坐标以图像像素宽度为单位I进行浮点数表示,纵坐标以图像像素高度为单位I进行浮点数表示。请参图2,在对起始象素点位置进行编码的时候,用一定数量的比特位表示出起始象素点坐标属性,坐标位数以及坐标值。比如,用I个比特表示该坐标属性:0表示使用象素坐标表示后面的起始象素点坐标(X,y),I表示使用归一化坐标表示后面的起始象素点坐标(x,y)。比如,用2个比特表示起始象素点坐标X和y的字节数:“01”表示用I个字节表示坐标值X,I个字节表示坐标值y 10”表示用2个字节表示坐标值X,2个字节表示坐标值y 11”表示用4个字节表示坐标值X,4个字节表示坐标值y ;“00”作为“保留”比特。用与该坐标字节数对应的比特位数表示起始象素点的坐标值X和I。
[0033]起始象素点的方向用3个比特进行编码。比如:“向前”编码为000,“向后”编码为001、“向右”编码为010、“向左”编码为011、“向左前”编码为100、“向右后”编码为101、“向右上”编码为110、“向左下”编码为111。这里的编码方式仅是一个例子,实际上完全可以有其他的编码方式,比如说“向前”编码为100,“向后”编码为000等。
[0034]在对除起始象素点之外的其他象素点的方向进行编码的时候对该象素点的相对方向进行编码。该相对方向以前一个象素点的方向作为参考。对起始象素点来说,它的方向有8种可能。但对该起始象素点的下一个象素点来说,其方向只有7种。请参图3,黑色箭头表示第η-1个象素点的方向,灰色箭头表示第η个象素点可能的方向。图3的a中当第n-1个象素点的方向为“向前”时,第η个象素点的方向相对于该第n-Ι个象素点来讲,可能是同向,即向前、可能是“向右前”、可能是“向左前”、可能是“向右”、可能是“向左”、可能是“向右后”、可能是“向左后”这7种方向。图3的b~d中,第n-Ι个象素点的方向分别为向后、向右和向左;同样的,第η个象素点的方向相对于第n-Ι个象素点来讲也是上述这7种情况。根据统计发现,所述的7种方向出现的概率是不相同的:下一个象素点的走向和上一个点的走向相同的概率要大于其它方向的概率;同时现实世界中,物体的边缘缓慢变化的概率大于剧烈变化的概率,即“向左前”和“向右前”的概率大于“向左”和“向右”的概率,而“向左”和“向右”的概率大于“向左后”和“向右后”的概率。进一步地,在第n-Ι个象素点的方向相对于第n-2个象素点为“向左前”或者“向左”或者“向左后”的情况下,可以确认第η个象素点发生左偏的概率要大于右偏的概率,此时对第η (η ≥3)个象素点的方向进行编码的时候,参照表1。在第n-Ι个象素点的方向相对于第n-2个象素点为“向右前”或者“向右”或者“向右后”的情况下,可以确认第η个象素点发生右偏的概率要大于左偏的概率,此时对第η (η ≥ 3)个象素点的方向进行编码的时候,参照表2。
[0037]
【权利要求】
1.一种曲线熵编码的方法,其特征在于,该方法包括:对该曲线起始象素点位置进行编码;对该曲线起始象素点的方向进行编码,该方向编码用3个比特进行绝对编码;对除起始象素点之外的其它象素点的方向依次进行编码,具体为:在对该曲线第η个象素点的方向进行编码,该方向编码用相对于第η-1个象素点的方向进行相对编码,η为大于等于2的自然数。
2.如权利要求1所述的方法,其特征在于,当η大于等于3,且第η-1个象素点相对于第η-2个象素点的方向为“向左前”或者“向左”或者“向左后”,则对该曲线第η个象素点的方向进行编码具体为: A编码方式:如果第η个象素点的方向与第η-1个象素点的方向同向,则编码为O ;如果第η个象素点的方向相对于第η-1个象素点的方向为向左前,则编码为10 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向右前,则编码为110 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向左,则编码为1110 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向右,则编码为11110 ;如果第η个象素点的方向相对于第η_1个象素点的方向为向左后,则编码为111110 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向右后,则编码为1111110 ; 当η大于等于3,且第η-1个象素点相对于第η-2个象素点的方向为“向右前”或者“向右”或者“向右后”,则对该曲线第η个象素点的方向进行编码具体为: B编码方式:如果第η个象素点的方向与第η-1个象素点的方向同向,则编码为O ;如果第η个象素点的方向相对于第η-1个象素点的方向为向右前,则编码为10 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向左前,则编码为110 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向右,则编码为1110 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向左,则编码为11110 ;如果第η个象素点的方向相对于第η_1个象素点的方向为向右后,则编码为111110 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向左后,则编码为1111110 ; 当η等于2时或者,当η大于等于3且第η_1个象素点相对于第n_2个象素点的方向为同向时,该对曲线第η个象素点的方向进行编码具体为:Α编码方式或者B编码方式。
3.如权利要求1所述的方法,其特征在于,当η大于等于3,且第η-1个象素点相对于第η-2个象素点的方向为“向左前”或者“向左”或者“向左后”,则对该曲线第η个象素点的方向进行编码具体为: C编码方式:如果第η个象素点的方向与第η-1个象素点的方向同向,则编码为I ;如果第η个象素点的方向相对于第η-1个象素点的方向为向左前,则编码为01 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向右前,则编码为001 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向左,则编码为0001 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向右,则编码为00001 ;如果第η个象素点的方向相对于第η_1个象素点的方向为向左后,则编码为000001 ;如果第η个象素点的方向相对于第η-1个象素点的方向为向右后,则编码为0000001 ; 当η大于等于3,且第η-1个象素点相对于第η-2个象素点的方向为“向右前”或者“向右”或者“向右后”,则对该曲线第η个象素点的方向进行编码具体为: D编码方式:如果第η个象素点的方向与第η-1个象素点的方向同向,则编码为I ;如果第η个象素点的方向相对于第n-Ι个象素点的方向为向右前,则编码为Ol ;如果第η个象素点的方向相对于第n-Ι个象素点的方向为向左前,则编码为001 ;如果第η个象素点的方向相对于第n-Ι个象素点的方向为向右,则编码为0001 ;如果第η个象素点的方向相对于第n-Ι个象素点的方向为向左,则编码为00001 ;如果第η个象素点的方向相对于第η_1个象素点的方向为向右后,则编码为000001 ;如果第η个象素点的方向相对于第n-Ι个象素点的方向为向左后,则编码为0000001 ; 当η等于2时或者,当η大于等于3且第η_1个象素点相对于第n_2个象素点的方向为同向时,该对该曲线第η个象素点的方向进行编码具体为:C编码方式或者D编码方式。
4.如权利要求1所述的方法,其特征在于,对该曲线起始象素点位置进行编码具体为:该起始象素点位置用坐标表示,其中I个比特表示起始象素点坐标属性,2个比特表示坐标字节数,与该坐标字节数对应的比特位数表示起始象素点的坐标值。
5.如权利要求1所述的方法,其特征在于,该方法进一步对该曲线的长度进行编码。
6.如权利要求5所述的方法,其特征在于,2个比特表示长度字节数,与该长度字节数对应的比特位数表示曲线的长度值,该曲线长度以象素点为单位。
7.如权利要求1所述的方法,其特征在于,该方法进一步对该曲线的层次进行编码。
8.如权利要求7所述的方法,其特征在于,用2个比特表示曲线的层次。
9.如权利要 求1所述的方法,其特征在于,该方法进一步对该曲线的闭合性进行编码。
10.如权利要求9所述的方法,其特征在于,用I个比特表示该曲线的闭合性。
【文档编号】G06T9/00GK103761754SQ201410029504
【公开日】2014年4月30日 申请日期:2014年1月22日 优先权日:2014年1月22日
【发明者】吴参毅 申请人:浙江宇视科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1