CN101931821B - 一种视频传输的差错控制方法及系统 - Google Patents
一种视频传输的差错控制方法及系统 Download PDFInfo
- Publication number
- CN101931821B CN101931821B CN201010232605.5A CN201010232605A CN101931821B CN 101931821 B CN101931821 B CN 101931821B CN 201010232605 A CN201010232605 A CN 201010232605A CN 101931821 B CN101931821 B CN 101931821B
- Authority
- CN
- China
- Prior art keywords
- edge
- macro block
- damaged macro
- line
- pixel
- 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.)
- Active
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种视频传输的差错控制方法及系统,所述方法包括误码掩盖过程,所述误码掩盖过程包括:对受损宏块进行边缘集中程度的量化分析,以将所述受损宏块区分为平滑块或边缘块;对平滑块,采用双线性差值算法进行误码掩盖;对边缘块,采用方向插值算法进行误码掩盖。本发明优化了视频传输图像解码质量,改善了视频解码效果。
Description
技术领域
本发明涉及视频传输差错控制技术,具体的说涉及一种视频传输的差错控制方法及系统。
背景技术
随着多媒体、网络技术及移动通信技术的迅速发展,移动终端,例如手机的视频传输等大容量传输应用成了必然的趋势。但是在无线移动网络信道中,误码的产生、数据的丢失总是难以避免。而且压缩后的视频数据对码元错误非常敏感,少量码元的错误就可能导致大批码元无法正确解码。进而导致手机终端重建图像质量严重下降,甚至无法重建图像。因而,对误码进行错误控制成为手机视频通信中的一个重要技术,也是当前研究的热点方向之一。
在一些特殊应用场合,如实时手机视频业务或手机视频广播(手机电视业务),当视频传输错误发生(数据丢失)时,由于不能接受重传的时间延迟,或者没有反向控制信道,不能通过自动请求重传(ARQ)重新传输错误的视频数据,则只能采取手机解码端的误码掩盖尽量减小错误对当前帧和后续帧的影响。
手机终端的误码掩盖技术的出发点是利用手机视频信号中的空域和时域的冗余信息,当传输错误发生时,接收端可以参考已经正确解码的视频数据并通过算法重建错误区域以改善图像质量。需要指出的是,手机终端的错误掩盖只针对解码过程,不需要对发送端进行修改,因此不会改变视频码流结构,具有较好的适应性。
手机终端的误码掩盖的依据是自然景物的低频特性,即视频图像在空间和时间上的高度相关性和平滑性,因此可分别在空域、时域内进行插值掩盖。空域插值是对受损宏块进行纹理恢复的一个比较有效的办法,它通过相邻宏块正确的宏块进行空域像素内插得到,它不需要宏块的运动信息。插值的方法有很多种,目前公认的经典插值算法包括双线性插值和方向插值等空域插值算法等。然而上述算法都有一定的局限性,双线性插值算法将受损的视频宏块始终作为平滑图像来对待,如果受损的视频宏块具有丰富的高频信息,或者有图像边界穿越丢失宏块的时候,该算法插值结果将导致图像的纹理丢失,画面变的模糊,画面质量并不能显著提高,甚至有可能导致下降;方向插值算法通过检测受损区域周围的边缘信息,预测受损区域内的边缘走向并沿此方向进行方向插值,但当受损区域周围边缘较乱时也可能引起虚假边缘,造成视觉效果较差。综上所述,现有的空域插值算法,仍然存在着缺陷,无法得到理想的视频解码质量。
发明内容
本发明要解决的主要技术问题是,提供了一种视频传输的差错控制方法及系统,能够优化视频传输图像的解码质量,改善视频解码效果。
为解决上述技术问题,本发明采用了如下技术方案:
一种视频传输的差错控制方法,包括误码掩盖过程,所述误码掩盖过程包括:
对受损宏块进行边缘集中程度的量化分析,以将所述受损宏块区分为平滑块或边缘块;
对平滑块,采用双线性差值算法进行误码掩盖;对边缘块,采用方向插值算法进行误码掩盖。
在本发明所述方法的一种实施例中,所述对受损宏块进行边缘集中程度的量化分析包括:
配置边缘方向类;计算所述受损宏块的各个周围像素的边缘方向,并将各个周围像素归类到对应的边缘方向类;
判断各个周围像素是否穿越所述受损宏块,如是,则相应累加到该周围像素所属的边缘方向类的个数计数中,并将该周围像素的边缘方向累加到所属边缘方向类的幅度计数中;
根据各个边缘方向类的个数计数得出方向信息熵并据所述方向信息熵判断所述受损宏块是否为边缘集中;根据各个边缘方向类的幅度计数判断所述受损宏块是否为强边缘穿越;
如果所述受损宏块为边缘集中或者强边缘穿越,判定该受损宏块为边缘块,否则,判定该受损宏块为平滑块。
在本发明所述方法的一种实施例中,所述边缘方向类包括8个,8个边缘方向类Dk,k∈[0,7],由8条穿过同一圆心并两两间隔22.5°的直线划分而成,所述根据各个边缘方向类的个数计数得出方向信息熵并据所述方向信息熵判断所述受损宏块是否为边缘集中按如下方式进行:判断方向信息熵是否小于熵阈值,如是,则判断所述受损宏块为边缘集中;所述方向信息熵根据下式得到:其中,Hmode为方向信息熵,P(k)为边缘方向类Dk对应的方向概率,Nk为边缘方向类Dk对应的像素个数。
在本发明所述方法的一种实施例中,所述边缘方向类包括8个,8个边缘方向类Dk,k∈[0,7],由8条穿过同一圆心并两两间隔22.5°的直线划分而成,所述根据各个边缘方向类的幅度计数判断所述受损宏块是否为强边缘穿越按如下方式进行:判断各个边缘方向类中是否存在有幅度超过预设的边缘强度阈值的边缘方向类,如是,则判断所述受损宏块为强边缘穿越。
在本发明所述方法的一种实施例中,所述受损宏块为8×8矩形块,所述受损宏块的周围像素为该受损宏块相邻8个宏块中的正确解码宏块或已经误码掩盖过的宏块中与所述受损宏块相邻的8×4或4×8区域内的像素。
在本发明所述方法的一种实施例中,所述方向插值算法为基于区域分割的方向插值算法,包含:将受损宏块分割为至少两个区域,对受损宏块的一像素,通过相同区域的边界参考像素进行方向插值进行恢复。
在本发明所述方法的一种实施例中,所述将受损宏块分割为至少两个区域按如下方式进行:
在所述受损宏块的邻域内设立两个圈层,并在该两个圈层上分别取一系列连续剧烈变化的像素点进行边缘检测,并选择检测出的边缘点中梯度最大的边缘点作为匹配及连线边缘点;
重复将未进行匹配的匹配及连线边缘点中的位于不同圈层且属性距离最小的两点进行连线匹配直至匹配完成或只有一个圈层上含有匹配及连线边缘点;
将连线匹配的两个边缘点进行连线形成边缘连线,并以边缘连线所在的直线作为边缘线,如果两条边缘连线位于同一条直线上,则合并为同一条边缘线,如果两条边缘线斜率相同或相近,则以其中边缘强度较大的边缘连线所在的直线作为边缘线;
按边缘线的边缘强度从大到小顺序对受损宏块进行区域分割,如两条边缘线相交,边缘强度小的边缘线不穿越边缘强度大的边缘线。
在本发明所述方法的一种实施例中,还包括误码检测过程:对视频的每一帧进行扫描判断是否有受损宏块,如有,根据预设原则选择误码掩盖方式后进入误码掩盖过程;否则,结束流程。
在本发明所述方法的一种实施例中,所述根据预设原则选择误码掩盖方式包括:受损宏块延伸到下边界,采用自上而下的掩盖方式;受损宏块从上边界开始,采用自下而上的掩盖方式;受损宏块既不在上边界也不在下边界,采用上下交替的掩盖方式。
本发明还提供了一种视频传输的差错控制系统,包括误码掩盖模块,所述误码掩盖模块包括:
边缘分析单元,用于对受损宏块进行边缘集中程度的量化分析,以将所述受损宏块区分为平滑块或边缘块;
误码掩盖单元,用于对平滑块,采用双线性差值算法进行误码掩盖;对边缘块,采用方向插值算法进行误码掩盖。
本发明通过对受损宏块的边缘集中程度的量化分析,从而可以适应性的选择双线性差值算法或者方向插值算法进行误码掩盖,从而实现了对视频传输图像解码质量的优化,改善了视频解码效果。
附图说明
图1为本发明实施例的受损宏块的检测区域选择图;
图2为本发明实施例的边缘方向的分类图;
图3为本发明实施例的平滑块的误码掩盖图;
图4为本发明实施例的差错控制过程中的扫描方式和掩盖方式图;其中,图4-a表示了对一帧图像进行定列、定行的扫描;图4-b表示了在受损块到达下边缘时的扫描方式;图4-c表示了受损块从上边缘开始时的扫描方式;图4-d表示了受损块在中间连续时的扫描方式;
图5为本发明实施例的边缘检测过程图;其中图5-a为在边界像素上进行边缘检测;图5-b为检测跳变边缘点;图5-c为获取真正边缘点;图5-d为边缘点匹配、连线;
图6为本发明实施例的受损宏块的区域分割图;
图7为本发明实施例的区域内方向插值图;图7-a显示了带两个边缘线的丢失宏块;图7-b显示了沿边缘线确定的两个参考像素;图7-c显示了丢失像素在同一区域内的参考象素的选择;
图8为本发明实施例的误码检测中的宏块状态图;
图9为本发明实施例的手机视频解码过程中的误码检测流程图;
图10为本发明实施例的手机视频传输差错控制流程图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
本发明主要是在视频传输过程中出现数据丢失时,通过空域误码掩盖方法提高图像的解码质量。在进行误码掩盖时,提供了一种有效的自适应算法选择机制,既可以较为清晰地恢复图像信息,又可以在一定程度上避免虚假边缘的产生。其关键在于对丢失的视频信息的边缘集中程度进行量化分析,从而可以自适应性的选择合适的算法。其中,对丢失的视频信息的边缘集中程度的量化分析是利用信息熵理论,通过方向信息熵的设计来完成对目标的判断。在误码掩盖时,一般以宏块为单位进行,称需要进行误码掩盖的宏块为受损宏块,受损宏块包括丢失宏块和出错宏块,丢失宏块指该宏块数据完全丢失,出错宏块指该宏块内数据部分丢失或者出现错误。但3者并没有明显的差别,本文对这3者并不做严格区分,可以认为3者的含义是相同的。
上述的自适应空域误码掩盖,包括两个过程,一是自适应切换过程,二是切换后的算法应用过程。
在自适应切换过程中,可以根据丢失宏块周围的边缘信息自适应地选择双线性插值算法或者方向插值算法进行空域误码掩盖。首先对丢失宏块周围的像素点的梯度方向进行分类并计算边缘强度,再得到各个边缘方向类的幅度计数累加值,而后比较可变阈值Bth,以此判断是否存在强边缘穿越,以及方向信息熵H与熵阈值Hth的大小来自适应的选择误码掩盖算法。
在切换后的算法应用过程中,在本发明实施例中,对于方向插值算法进行了改进,提供了一种“改进的基于区域分割多方向插值算法”,基于区域分割的多方向插值算法可以有效地解决视频传输过程中估计丢失宏块内的边缘方向不精确的问题,该算法首先对丢失宏块周围的像素点进行边缘检测,然后对丢失宏块进行区域划分,在区域分割基础上完成对丢失宏块内像素点的方向插值。边缘检测是利用图像中物体边界上的像素点,通过Sobel算子(索贝尔算子,图像处理中的算子,主要用作边缘检测)计算灰度的变化率和变化方向,得到较为精确的边缘方向信息;丢失宏块进行区域划分,将像素点分割到不同的区域,各区域采用与其边缘相同的方向进行加权插值。
梯度方向即像素点的灰度变化方向,对梯度方向进行分类是为了有效的统计像素梯度方向可能存在的概率,同时为进一步计算信息熵提供必要准备;信息熵计算可以有效的反映图像边缘方向的集中程度,它的大小将直接决定插值算法的选择。边缘强度反映了图像的平滑程度。
下面结合附图首先介绍本发明实施例所采用的差错控制算法。
本发明实施例的差错控制基本流程包括:解码时首先判断视频中的每一帧是否有数据丢失。如果有,则对受损宏块进行边缘集中程度的量化分析,以将受损宏块区分为平滑块或边缘块;对于平滑块,采用双线性插值算法;对于边缘块,则采用方向插值算法,例如采用前文提出的基于区域分割的方向插值算法,利用穿过受损宏块的相邻块边缘信息将受损宏块分割成若干区域,针对不同区域采用不同的插值策略,这样能更好的恢复图像信息,又能避免虚假边缘和错误边缘的产生。
1.基于边缘像素的方向分类和丢失宏块的判定
(1)选择受损宏块周围的检测区域。如图1所示,将受损宏块划分为8×8大小矩形块,取受损宏块周围相邻8个宏块中的8×4或4×8区域参与边缘检测,图1中示出的斜线部分为检测区域,按以下方式进行边缘检测的选择:
1)如果相邻8×8宏块为正确解码宏块或者是已经掩盖过的宏块,则该8×4或4×8宏块中的每一个像素均参与边缘方向的检测;
2)如果相邻8×8宏块为未掩盖宏块,则该8×4或4×8宏块中的每一个像素均不参与边缘方向的检测。
(2)对图像中的边缘方向进行分类。如图2所示,将一个圆平面等分成16个区域,每个区域的两条边缘线之间的夹角为22.5°,取这16个区域的平分线(即各区域的边缘线)方向作为整个检测区域内所有像素点可能的边缘方向,即每一个平分线方向代表着一个区域内的边缘方向,又在同一条直线上方向相反的两个方向被看作一个方向,因此16个划分区域对应8个边缘方向类,分别为0°,22.5°,45°,...,157.5°,也即,由8条穿过同一圆心并两两间隔22.5°的直线划分出8个边缘方向类,为了以后表述的方便,将这8个方向类分别记为D0,D1,...,D7。
(3)计算受损宏块周围像素的边缘信息。按照式(1)中的Sobel算子计算每一个像素点P(x,y)的边缘强度G(x,y)和边缘方向A(x,y),边缘强度G(x,y)和边缘方向A(x,y)分别反映了该像素点灰度的变化强度及走向,Gx(x,y)和Gy(x,y)是边缘强度G(x,y)在x和y方向上的分量,P(x,y)为受损宏块周围的一像素点。
其中,
(4)将像素P(x,y)的边缘方向A(x,y)划归到上述8个边缘方向类中对应方向类中。由于8个边缘方向类的范围在[0°,180°),而边缘方向A(x,y)的取值范围在(-90°,90°),因此需要将边缘方向A(x,y)进行变形为:
此时边缘方向A(x,y)∈[0°,180°),然后把该方向划归到D0,D1,...,D7中的某一个,划分采用如下方法:把像素的边缘方向值除以一个基准值,然后对商值下取整,作为边缘方向类的索引值。
取
可以证明k∈[0,7],且A(x,y)的对应k值均匀分布0~7之间,这样就可以将像素P(x,y)边缘方向A(x,y)归类到对应边缘方向类Dk(0≤k≤7)中。然后需要判断该边缘方向是否穿越受损宏块MB,为此,从像素P(x,y)出发作一条平行于方向Dk的直线,如果该直线穿越受损宏块,则将像素P(x,y)所属的边缘方向类Dk对应的个数计数器Nk累加1,幅度计数器Bk累加上像素P(x,y)对应边缘方向A(x,y);如果该直线未穿越受损宏块则将像素P(x,y)的边缘方向A(x,y)舍弃。
(5)当受损宏块邻域内所有的像素点被检测完后,计算各边缘方向类Dk所穿越受损宏块的方向概率P(k)。由于方向Dk对应的像素点有Nk个(0≤k≤7),则Dk所对应的方向概率P(k)为:
统计了边缘方向类Dk中的每个方向对应的方向概率P(k)后,计算方向信息熵Hmode,定义为:
利用拉格朗日乘数法可以证明,当8个方向分类的概率相同时,方向信息熵Hmode取最大值3,且方向概率越分散,Hmode值越大。因此Hmode越大,表明受损宏块邻域内边缘方向越分散,Hmode越小,则表明边缘方向集中程度越高。
(6)判断是否有强边缘穿越受损宏块。当Bk(0≤k≤7)超过(6)式中设定的可变的边缘强度阈值Bth时,即认为有强边缘穿越受损宏块,将Bk所对应的边缘方向类Dk看作是穿过丢失宏块的强边缘方向,然后统计出8个边缘方向类B0、B1,...,B7中穿越受损宏块的强边缘方向个数,并记为N(0≤N≤8)。
边缘强度阈值Bth定义为:
其中,M为参与边缘检测宏块的个数。
(7)当Hmode≥2.4且N=0时,说明受损的视频宏块是没有明显边缘集中的宏块或者没有强边缘穿越,则将这些受损宏块判定为平滑块,对于平滑块采用双线性插值算法进行误码掩盖。其中,2.4即熵阈值,熵阈值为一可调整的常数,在本例中取值为2.4。
当Hmode<2.4或N≥1时,说明边缘集中或者有强边缘穿过受损的视频宏块,则将这些受损宏块判定为边缘块,对于边缘块采用前文提出的基于区域分割的方向插值算法进行误码掩盖。
2.平滑块的误码掩盖
对于平滑块的误码掩盖,采用的是双线性插值算法。如图3所示,设p1,p2,p3,p4是受损块4个边界上离P点最近的像素点,pi到p的距离为Di(i=1,2,3,4),W为块的边界尺寸,则p点像素值为:
3.边缘块的误码掩盖
对于边缘块的误码掩盖,采用基于区域分割的方向插值算法。该方法的基本思想是:首先在受损宏块的邻域内设立两个矩形圈层,并在这两个矩形圈层上寻找边缘点,然后利用相邻块的边缘点信息估计出受损宏块的边缘方向和边缘强度;接着根据各方向的边缘强度把受损宏块划分割成若干区域;最后针对不同区域采用不同的插值策略。该方法充分利用了受损宏块的边缘信息来寻找穿越受损宏块的边缘。
(1)对受损宏块周围像素点进行边缘检测
以手机视频图像为例,如图4-a所示,首先对手机视频图像中的每一帧先定列,再定行进行扫描,通过扫描来确定受损块,确定三种不同的掩盖方式:如图4-b所示,当出错宏块到达下边缘,此时采用至上而下的掩盖方式;如图4-c所示,当出错宏块从上边缘开始,此时采用至下而上的掩盖方式;如图4-d所示,当出错宏块在中间连续,此时采用上下到中间,交替进行的掩盖方式。
然后进行边缘检测,边缘检测就是求像素点P(x,y)梯度的局部最大值和方向,边缘检测中用到的是Sobel算子,因此像素P(x,y)的梯度大小G(x,y)和梯度方向A(x,y)可由(1)式求得。如果梯度大小G(x,y)大于预先设定的梯度阈值大小Gth,则说明该像素点就是要找的边缘检测点。
如图5-a所示,在受损宏块的邻域内设立的两个矩形圈层上寻找边缘点。
如图5-b所示,在所设定的两个矩形边界线上,取一系列连续剧烈变化的像素点进行边缘检测。对于矩形圈层中的每一个像素点都计算出边缘强度G(x,y),一般的,连续的一系列像素点的边缘强度的差别应该是很小的(图5-b中分别通过黑色、交叉线、斜线表示),即一个像素相邻的左边像素和右边像素的边缘强度差别应该很小,如果出现较大的差异(这个差异的界定可以根据实际需要来自行确定),则可以认为是出现像素跳变。如果出现跳变,则在发生跳变处的两边选择连续若干像素点,选择梯度最大的一个点作为边缘点放到边缘点集合中。如图5-c所示,梯度最大的边缘点被选择为用于进行匹配和连线的边缘点,这样可以得到两个矩形圈层上的一组用于边缘匹配和连线的集合F。这些边缘点成为匹配及连线边缘点。
(2)边缘点匹配和连线
边缘进入宏块存在着两种可能的情况。第一种情况是一个边缘沿着某一方向通过一个边缘点进入受损宏块并通过另一个边缘点离开此宏块,即存在着两个边缘有着相同或者相似的边缘梯度方向。第二种情况是两个边缘在受损宏块内部相交,这时就需要量化分析两个边缘的强弱,并判断边缘的大小。
基于以上两种可能存在的情况,图像的边缘f(x,y)定义为:
其中,Gth为梯度阈值。
边缘点的属性向量定义为:
p′(x,y)=(Gx(x,y),Gy(x,y),A(x,y),P(x,y)) (9)
则两个边缘点之间的属性差异可以通过下面的计算得到:
diff(p′(x1,y1),p′(x2,y2))=|Gx(x1,y1)-Gx(x2,y2)|+|Gy(x1,y1)-Gy(x2,y2)|+|A(x1,y1)-θ1,2|+
|A(x2,y2)-θ1,2|+|P(x1,y1)-P(x2,y2)| (10)
其中,θ1,2是两个边缘点p(x1,y1)和p(x2,y2)连线的倾斜角。
如图5-d所示,在所有边缘点中,如果两个匹配及连线边缘点分别在两个不同的矩形圈层上且他们之间的属性距离最小,则这两个边缘点连线进行匹配。然后将剩余的边缘点作为新的集合F,重复上述过程直到集合F中所有的边缘点都被匹配完成,或者只有一个圈层上含有边缘点。最后对匹配的边缘点进行连线。
将两个匹配的边缘点的连线称为边缘点连线,而将该边缘点连线所在的直线称为边缘线,区域分割通过边缘线来进行。连线中还要进行边缘线的合并,如果两条边缘点连线在同一条直线上,则直接合并为一条边缘线;如果两条边缘点连线斜率相同或相近,则取边缘强度大的边缘点连线所在直线为边缘线,另一条边缘点连线去除。需要注意的是,合并之后,边缘线的强度为两段边缘点连线强度之和,其计算方式参见式8。其中,斜率相近是指:两条边缘点连线倾斜角相差在5°以内,即认为斜率相近,可以进行边缘线合并,当然该值也可以根据需要进行调整,例如也可以将倾斜角在10°以内认为是斜率相近,取边缘强度大的边缘点连线所在直线为边缘线,另一条边缘点连线去除。
(3)对受损宏块进行区域分割
根据(10)式的结果,当有边缘点连线穿越受损宏块时,此边缘点连线的方向可以通过求其上的两点边缘Mi和Nj的连线的斜率来得到,如图6所示,Mi(i=1,2,3,4)为外矩形圈层上的点,Nj(j=1,2,3,4)为内矩形圈层上的点。
定义边缘强度为:
其中,S为边缘MiNj上所有像素点的集合,f(x,y)的大小由(8)式得到。根据前面提到的边缘进入宏块存在着两种可能的情况,对受损宏块进行区域分割,分割遵循如下原则:
1)如果两条边缘MiNj和Mi’Nj’有相同或者相近的斜率或者在同一条直线上,则将这两条边缘合并,看作为同一条边缘,并用边缘强度较大边缘所在的直线进行区域分割。如图6所示,边缘M1N1和M2N2被合并为一条边缘线L12,M3N3和M4N4不合并,被看成是边缘L3和边缘L4。
2)对于合并后的所有边缘按边缘强度从大到小排列,边缘强度大的边缘连线优先被划分,边缘强度小的边缘连线后被划分。如图6所示,边缘强度L12>L3>L4,因此划分顺序为L12,L3和L4。
3)如果两条边缘相交,边缘强度小的边缘连线不能穿越边缘强度大的边缘连线。如图6所示,L3不能穿越L12,L4不能穿越L12和L3。
根据以上3条原则就可以得到受损宏块的区域划分。
(4)对受损宏块内的像素点进行方向插值
在受损宏块被分割成若干个区域后,就可以对每个区域内丢失的像素点分别进行插值。如图7-a所示,受损宏块MB中的像素p通过相同区域的边界参考像素来恢复。假设有n个边缘穿过受损宏块,每一个边缘Li(1≤i≤n)都可以用一个线性方程来表示:
y-yi-mi(x-xi)=0,1≤i≤n (12)
其中mi是该边缘(即指边缘线,下同)的斜率,(xi,yi)第i个边缘与受损宏块相交所对应的边缘点坐标。如果该边缘与受损宏块MB中对应着有一对匹配的边缘点(xi,yi)和(xj,yj),则mi=(yj-yi)/(xj-xi)。否则,mi=Gr(xi,yi)/Gc(xi,yi),Gr(xi,yi)和Gc(xi,yi)分别表示像素点(xi,yi)的边缘强度在y方向和x方向上的分量,具体参考式(1)。如果边缘和受损宏块有两个交点,这可以用这两个交点确定斜率mi;如果边缘和丢失宏块只有一个交点,则用这个交点的边缘强度在y方向的分量Gr(xi,yi)除以x方向上的分量Gc(xi,yi)来得到斜率mi。这是因为根据区域划分原则,该边缘只对应有一个边缘点。
对于每一个丢失的像素p,找到其所对应的参考像素点进行插值。如图7-b所示,沿着每一个边缘方向,过像素p做与边缘平行的直线,该直线与丢失宏块的边界的交点就是要找的参考像素点。注意,仅那些和像素点p在同一个区域内的参考像素点可以被用来进行插值计算,而与像素p不在同一区域内的参考像素点则不能被使用。
测试每一个边缘的线性方程来消除不可靠的参考像素点,具体的方法表示如下:设(px,py)表示丢失的像素p的坐标,(rx,ry)表示某一参考像素点坐标。参考像素与p在同一区域内当且仅当对于每一个边缘Li(1≤i≤n),[py-yi-mi(px-xi)]与[ry-yi-mi(rx-xi)]都有相同的符号。如图7-b所示,p1,p2为可靠的参考像素点,p3,p4为不可靠的参考像素点。
在消除了不可靠的参考像素点之后,每一个区域内的任意丢失像素p均可以利用参考像素点通过方向插值来得到:
其中,pk是第k个可靠的参考像素,dk是pk和p之间距离。图7-c显示了求丢失像素p的过程,p1,p2为参考像素。
经过以上步骤就可以完成对丢失宏块的误码掩盖。
4.手机视频解码过程误码检测
在手机终端解码过程,误码检测也是一个比较重要的问题。在网络传输发生数据丢包的情况下,为了保证视频解码的质量和解码的实时性,需要在手机终端引入误码检测机制,来检测和恢复丢失的数据信息。对于所有存放在缓冲区内的网络封装层(NEL,Network Encapsulation Layer)数据单元,因为其本身含有的压缩信息是正确的,且传输数据也没有丢失,因此经过解码都可以得到正确的宏块信息,而误码检测就是要确定这些宏块在帧中的对应位置,以便找到那些丢失的宏块,并进行掩盖。
误码检测可以采取如下的方法:对于所有解码的宏块进行状态标记,如图8所示,2表示完好宏块,1表示已掩盖宏块,0表示丢失宏块,对于每一个未解码的帧,设所有宏块的初始状态为0。当一个NEL数据单元被解码以后分析比较其本身所含的帧数N与解码器分析得到的帧数M是否相同。
1.如果N=M且该NEL数据单元不是最后一个,则说明正在对当前帧(第M帧)进行解码,则更新相应宏块的状态为2,并继续对下一个NEL数据单元进行解码和判断。
2.如果N>M,则说明视频序列的第M帧已经解码完成。这时需要对第M帧内的所有宏块的状态进行判断,找出丢失宏块,并标记掩盖的顺序。扫描方式按照从上到下,从左到右(图4-a所示)进行。每一列丢失宏块的掩盖顺序可以分三种情况,分别如图4-b、图4-c、图4-d所示,第一种情况,如果丢失宏块连续出现且一直延续到下边界,则采用自上而下的方式进行掩盖;第二种情况,如果丢失宏块连续出现且从上边界开始,则采用自下而上的方式进行掩盖;第三种情况,如果丢失宏块既不在上边界也不在下边界,则采用上下交替方式进行。然后对于每一个丢失宏块用前述误码掩盖算法进行处理。其中,在判断为I帧时,前述自适应切换来选择双线性插值或方向插值这两种空域掩盖之一来进行;而在不是I帧时,则采用时域掩盖方法来进行,掩盖完成后更新该宏块的状态为1,如此循环直到所有的丢失宏块均被掩盖。最后对M加1,并继续判断N和M的大小。
3.如果N=M且NEL数据单元全部被解码时,则需要对最后一帧进行掩盖,掩盖的方法和步骤2中使用的方法一致。
4.如果N<M,说明最后一帧已经被掩盖,退出误码检测。这样就可以完成整个误码检测和掩盖的过程,并得到最终的重建视频序列。
图9给出了手机视频解码过程中的误码检测流程。
如图10所示,本发明实施例的手机视频传输的差错控制方法的具体步骤包括:
1.误码检测。对解码的手机视频图像中的每一帧先定列,再定行进行扫描。
2.判断是否有视频宏块被损坏,如果没有,则跳转到步骤13;如果有,则继续执行步骤3。
3.根据丢失宏块的情况,选择3种误码掩盖的方式中的一种:1)自上而下的掩盖;2)自下而上的掩盖;3)交叉掩盖。
4.根据误码掩盖方式选中丢失的宏块进行掩盖:1)计算丢失宏块周围像素点的边缘梯度方向和边缘强度;2)对边缘梯度方向进行分类。
5.计算边缘方向的概率Pk,并利用边缘方向计算方向信息熵Hmode。确定边缘强度阈值Bth并与每个边缘方向幅度计算器Bk(0≤Bk≤7)进行比较,确定强边缘个数N。
6.判断Hmode是否大于等于2.4(熵阈值Hth)且N等于0,如果成立,则继续执行步骤7,否则跳转到步骤8。
7.利用双线性插值算法对丢失像素进行插值,然后跳转到步骤12。
8.利用改进的基于区域分割的方向插值算法对丢失像素进行插值。
9.对丢失宏块进行边缘检测。
10.对丢失宏块进行区域分割
11.对丢失宏块内的像素点进行方向插值。
12.判断当前帧中是否所有丢失宏块都已经掩盖。如果是,执行步骤13,否则跳转到步骤3。
13.误码掩盖结束。
本发明通过对双线性插值算法和改进的基于区域分割的方向插值算法的动态选择,解决了手机视频解码后清晰度不够和解码后产生虚假边缘的问题,提高了图像的解码质量,优化手机视频解码的过程。两个算法之间的动态选择,是通过对丢失宏块周围相邻像素边缘方向信息熵的判断来进行。由于手机视频传输的内容本身并不大,另外改算法的时间复杂度在可控的范围之内,因此对手机视频播放器的解码速度并不会有根本上的影响,本发明具有以下技术效果:
1.实现对手机视频传输图像解码质量的优化。通过对丢失宏块周围相邻像素边缘方向信息熵的量化判断,解决了受损区域周围边缘较乱时可能引起虚假边缘的问题。
2.改进了经典的方向插值算法,解决了方向插值算法对任何图像区域总是沿特定的方向进行插值,从而造成解码图像失真的问题,采用根据图像区域的不同纹理信息,对丢失宏块采取区域分割然后再插值的这样更为合理的方法加以优化。相比经典的空域算法,视频解码的效果较好,可以应用的场景更多;相比时域算法而言,由于复杂度较低,这就保证了解码的速度,使得其在手机和实时视频通信上能够有较为广泛的应用。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (9)
1.一种视频传输的差错控制方法,其特征在于,包括误码掩盖过程,所述误码掩盖过程包括:
对受损宏块进行边缘集中程度的量化分析,以将所述受损宏块区分为平滑块或边缘块;
对平滑块,采用双线性差值算法进行误码掩盖;对边缘块,采用方向插值算法进行误码掩盖;
所述方向插值算法为基于区域分割的方向插值算法,包含:将受损宏块分割为至少两个区域,对受损宏块的一像素,通过相同区域的边界参考像素进行方向插值进行恢复;其中,对受损宏块的一像素通过相同区域的边界参考像素进行方向插值进行恢复包括:
获取受损宏块中每一个边缘线Li的线性方程:
y-yi-mi(x-xi)=0,i大于等于1,小于等于n,其中,mi是该边缘线的斜率,{Xi,Yi}第i个边缘线与受损宏块相交所对应的边缘点坐标;
确定丢失像素P所对应的参考像素点;
利用所述每一个边缘的线性方程消除所述参考像素点中不可靠的参考像素点,得到可靠参考像素点Pk,1小于等于k;
根据所述可靠参考像素点Pk进行方向插值得到所述丢失像素P,具体为:P=[∑k(pk/dk)]/[∑k(1/dk)],其中,所述Pk是第k个可靠的参考像素,dk是Pk和P之间距离。
2.如权利要求1所述的方法,其特征在于,所述对受损宏块进行边缘集中程度的量化分析包括:
配置边缘方向类;计算所述受损宏块的各个周围像素的边缘方向,并将各个周围像素归类到对应的边缘方向类;
判断各个周围像素是否穿越所述受损宏块,如是,则相应累加到该周围像素所属的边缘方向类的个数计数中,并将该周围像素的边缘方向累加到所属边缘方向类的幅度计数中;
根据各个边缘方向类的个数计数得出方向信息嫡并据所述方向信息嫡判断所述受损宏块是否为边缘集中;根据各个边缘方向类的幅度计数判断所述受损宏块是否为强边缘穿越;
如果所述受损宏块为边缘集中或者强边缘穿越,判定该受损宏块为边缘块,否则,判定该受损宏块为平滑块。
3.如权利要求2所述的方法,其特征在于,所述边缘方向类包括8个,8个边缘方向类Dk,k∈[0,7],由8条穿过同一圆心并两两间隔22.5°的直线划分而成,所述根据各个边缘方向类的个数计数得出方向信息嫡并据所述方向信息嫡判断所述受损宏块是否为边缘集中按如下方式进行:判断方向信息嫡是否小于嫡阈值,如是,则判断所述受损宏块为边缘集中;所述方向信息嫡根据下式得到:
4.如权利要求2所述的方法,其特征在于,所述边缘方向类包括8个,8个边缘方向类Dk,k∈[0,7],由8条穿过同一圆心并两两间隔22.5°的直线,所述根据各个边缘方向类的幅度计数判断所述受损宏块是否为强边缘穿越按如下方式进行:判断各个边缘方向类中是否存在有幅度超过预设的边缘强度阈值的边缘方向类,如是,则判断所述受损宏块为强边缘穿越。
5.如权利要求2-4任一所述的方法,其特征在于,所述受损宏块为8×8矩形块,所述受损宏块的周围像素为该受损宏块相邻8个宏块中的正确解码宏块或已经误码掩盖过的宏块中与所述受损宏块相邻的8×4或4×8区域内的像素。
6.如权利要求1所述的方法,其特征在于,所述将受损宏块分割为至少两个区域按如下方式进行:
在所述受损宏块的邻域内设立两个圈层,并在该两个圈层上分别去一系列连续剧烈变化的像素点进行边缘检测,并选择检测出的边缘点中梯度最大的边缘点作为匹配及连线边缘点;
重复将未进行匹配的匹配及连线边缘点中的位于不同圈层且属性距离最小的两点进行连线匹配直至匹配完成或只有一个圈层上含有匹配及连线边缘点;
将连线匹配的两个边缘点进行连线形成边缘连线,并以边缘连线所在的直线作为边缘线,如果两条边缘连线位于同一条直线上,则合并为同一条边缘线,如果两条边缘线抖率相同或相近,则以其中边缘强度较大的边缘连线所在的直线作为边缘线;
按边缘线的边缘强度从大到小顺序对受损宏块进行区域分割,如两条边缘线相交,边缘强度小的边缘线不穿越边缘强度大的边缘线。
7.如权利要求1-4任一项所述的方法,其特征在于,还包括误码检测过程:对视频的每一帧进行扫描判断是否有受损宏块,如有,根据预设原则选择误码掩盖方式后进入误码掩盖过程;否则,结束流程。
8.如权利要求7所述的方法,其特征在于,所述根据预设原则选择误码掩盖方式包括:受损宏块延伸到下边界,采用自上而下的掩盖方式;受损宏块从上边界开始,采用自下而上的掩盖方式;受损宏块既不在上边界也不在下边界,采用上下交替的掩盖方式。
9.一种视频传输的差错控制系统,其特征在于,包括误码掩盖模块,所述误码掩盖模块包括:
边缘分析单元,用于对受损宏块进行边缘集中程度的量化分析,以将所述受损宏块区分为平滑块或边缘块;
误码掩盖单元,用于对平滑块,采用双线性差值算法进行误码掩盖;对边缘块,采用方向插值算法进行误码掩盖;
所述方向插值算法为基于区域分割的方向插值算法,包含:将受损宏块分割为至少两个区域,对受损宏块的一像素,通过相同区域的边界参考像素进行方向插值进行恢复;其中,对受损宏块的一像素通过相同区域的边界参考像素进行方向插值进行恢复包括:
获取受损宏块中每一个边缘线Li的线性方程:
y-yi-mi(x-xi)=0,i大于等于1,小于等于n,其中,mi是该边缘线的斜率,{Xi,Yi}第i个边缘线与受损宏块相交所对应的边缘点坐标;
确定丢失像素P所对应的参考像素点;
利用所述每一个边缘的线性方程消除所述参考像素点中不可靠的参考像素点,得到可靠参考像素点Pk,1小于等于k;
根据所述可靠参考像素点Pk进行方向插值得到所述丢失像素P,具体为:P=[∑k(pk/dk)]/[∑k(1/dk)],其中,所述Pk是第k个可靠的参考像素,dk是Pk和P之间距离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010232605.5A CN101931821B (zh) | 2010-07-21 | 2010-07-21 | 一种视频传输的差错控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010232605.5A CN101931821B (zh) | 2010-07-21 | 2010-07-21 | 一种视频传输的差错控制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101931821A CN101931821A (zh) | 2010-12-29 |
CN101931821B true CN101931821B (zh) | 2014-12-10 |
Family
ID=43370695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010232605.5A Active CN101931821B (zh) | 2010-07-21 | 2010-07-21 | 一种视频传输的差错控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101931821B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2487200A (en) | 2011-01-12 | 2012-07-18 | Canon Kk | Video encoding and decoding with improved error resilience |
CN103124356A (zh) * | 2013-01-17 | 2013-05-29 | 浙江工业大学 | 基于方向信息的自适应空域差错掩盖方法 |
WO2016154970A1 (zh) * | 2015-04-01 | 2016-10-06 | 中国科学院自动化研究所 | 基于边缘检测的图像插值方法及系统 |
CN106204441B (zh) * | 2016-06-27 | 2020-03-06 | Tcl集团股份有限公司 | 一种图像局部放大的方法及装置 |
CN110874819B (zh) * | 2018-08-29 | 2022-06-17 | 中国电信股份有限公司 | 视频图像修复方法、装置以及存储介质 |
CN108873914B (zh) * | 2018-09-21 | 2021-07-06 | 长安大学 | 一种基于深度图像数据的机器人自主导航系统及方法 |
CN115086665A (zh) * | 2021-03-15 | 2022-09-20 | 中国移动通信集团山东有限公司 | 误码掩盖方法、装置、系统、存储介质和计算机设备 |
CN113129305B (zh) * | 2021-05-18 | 2023-06-16 | 浙江大华技术股份有限公司 | 丝锭状态的确定方法、装置、存储介质及电子装置 |
CN115082441B (zh) * | 2022-07-22 | 2022-11-11 | 山东微山湖酒业有限公司 | 一种基于计算机视觉的酿酒蒸馏工艺中甑料平铺方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707721A (zh) * | 2009-09-25 | 2010-05-12 | 南京邮电大学 | 基于模糊推理的自适应空域差错掩盖方法 |
-
2010
- 2010-07-21 CN CN201010232605.5A patent/CN101931821B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707721A (zh) * | 2009-09-25 | 2010-05-12 | 南京邮电大学 | 基于模糊推理的自适应空域差错掩盖方法 |
Non-Patent Citations (9)
Title |
---|
Dimitris.Agrafiotis et al..Enhanced Spatial Error Concealment with Directional Entropy based Interpolation Switching.《International Symposium on Circuits and Systems,2006.Proceedings.2006 IEEE》.2006, * |
Enhanced Spatial Error Concealment with Directional Entropy based Interpolation Switching;Dimitris.Agrafiotis et al.;《International Symposium on Circuits and Systems,2006.Proceedings.2006 IEEE》;20060524;正文第I节最后一段--第II节 * |
HationalInstituteetal..Spatialinterpolationalgorithmforerrorconcealment.《InternationalConferenceonAcoustics Speech and Signal Processing 2008.IEEE》.2008 * |
Spatial interpolation algorithm for error concealment;Hational Institute et al.;《International Conference on Acoustics,Speech and Signal Processing 2008.IEEE》;20080404;全文 * |
一种改进的H_264自适应空域错误掩盖算法;盛赞 等;《计算机工程》;20071130;第33卷(第21期);正文第3节 * |
基于边缘检测的空域自适应差错掩盖算法;彭强 等;《铁道学报》;20081231;第30卷(第6期);全文 * |
张阳 等.基于H_264的内容自适应空域误码掩盖算法.《清华大学学报(自然科学版)》.2009,第49卷(第1期), * |
彭强 等.基于边缘检测的空域自适应差错掩盖算法.《铁道学报》.2008,第30卷(第6期), * |
盛赞 等.一种改进的H_264自适应空域错误掩盖算法.《计算机工程》.2007,第33卷(第21期), * |
Also Published As
Publication number | Publication date |
---|---|
CN101931821A (zh) | 2010-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101931821B (zh) | 一种视频传输的差错控制方法及系统 | |
Kim et al. | Deep video quality assessor: From spatio-temporal visual sensitivity to a convolutional neural aggregation network | |
CN103077539B (zh) | 一种复杂背景及遮挡条件下的运动目标跟踪方法 | |
US20030189980A1 (en) | Method and apparatus for motion estimation between video frames | |
CN102497556B (zh) | 一种基于时间变化度的场景切换检测方法、装置、设备 | |
CN110415555A (zh) | 一种基于深度学习的有效划线车位识别方法和系统 | |
CN111369539B (zh) | 一种基于多特征图融合的建筑立面窗户检测系统 | |
CN101453660B (zh) | 一种视频目标跟踪方法和装置 | |
CN109685772B (zh) | 一种基于配准失真表示的无参照立体图像质量评估方法 | |
US20230394829A1 (en) | Methods, systems, and computer-readable storage mediums for detecting a state of a signal light | |
CN102306307B (zh) | 一种彩色显微图像序列中固点噪声的定位方法 | |
CN101163250B (zh) | 一种基于边界梯度的视频流容错方法 | |
CN112731436A (zh) | 基于点云上采样的多模态数据融合可行驶区域检测方法 | |
CN113052180A (zh) | 融合语义流场的编解码网络港口影像分割方法 | |
US20240062347A1 (en) | Multi-scale fusion defogging method based on stacked hourglass network | |
CN104683783A (zh) | 一种自适应深度图滤波方法 | |
CN113610050A (zh) | 一种基于YOLOv5的口罩佩戴实时检测方法 | |
CN101931820A (zh) | 空间性错误隐藏方法 | |
CN101917627B (zh) | 一种基于自适应灵活宏块次序的视频容错编码方法 | |
CN114363632A (zh) | 帧内预测方法、编解码方法、编解码器、系统、电子设备和存储介质 | |
CN111723735B (zh) | 一种基于卷积神经网络的伪高码率hevc视频检测方法 | |
CN103051903A (zh) | 一种空域自适应的h.264视频i帧差错掩盖方法 | |
CN101370145B (zh) | 图像帧的掩盖方法与装置 | |
CN102592130A (zh) | 一种针对水下显微视频的目标识别系统及其视频编码方法 | |
CN100409689C (zh) | 用于提高视频质量的错误掩蔽方法 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200803 Address after: 210012 Nanjing, Yuhuatai District, South Street, Bauhinia Road, No. 68 Patentee after: Nanjing Zhongxing New Software Co.,Ltd. Address before: 518057 Zhongxing building, science and technology south road, Nanshan District Science Park, Guangdong, Shenzhen Patentee before: ZTE Corp. |