CN101753270B - 一种编码发送方法和装置 - Google Patents
一种编码发送方法和装置 Download PDFInfo
- Publication number
- CN101753270B CN101753270B CN2009102654127A CN200910265412A CN101753270B CN 101753270 B CN101753270 B CN 101753270B CN 2009102654127 A CN2009102654127 A CN 2009102654127A CN 200910265412 A CN200910265412 A CN 200910265412A CN 101753270 B CN101753270 B CN 101753270B
- Authority
- CN
- China
- Prior art keywords
- macro block
- slice
- liveness
- threshold
- average
- 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
Images
Abstract
本发明公开了一种编码发送方法和装置。本发明中对于包括不同优先级的SLICE的媒体包进行区别处理,只对包括具有特定优先级的SLICE的媒体包进行冗余保护。通过使用本发明,在丢包的网络环境中,可以在保证高丢包恢复率的情况下提高网络带宽的有效利用率。
Description
技术领域
本发明涉及通讯技术领域,尤其涉及一种编码发送方法和装置。
背景技术
在视频会议、IP(Internet Protocol,因特网协议)可视电话等基于IP的视频监控等通信设备中,为了保证实时性的要求,编码后的媒体包通过UDP(UserData Protocol,用户数据文报协议)连接进行传送,UDP连接属于不可靠连接,在实际网络应用中,将不可避免的存在媒体包的丢失,但即使是最轻微的丢包(0.5%-2%)也会对图像质量产生较大的影响。
在丢包情况下,采用合适的丢包补偿算法保证较好的视觉效果显得尤为重要。常用丢包补偿算法有,解码侧丢包隐藏算法和FEC(Forward ErrorConceal,前向纠错)算法。丢包隐藏算法属于信源编码,其实施原理为:在解码侧实行丢包隐藏算法,即在解码过程中根据图像的时域和空域的相关性,对丢失的图像数据进行预测恢复。因此,对于准静止宏块,丢包隐藏算法可以有较好的补偿效果,但对于非静止的宏块补偿效果不佳。FEC算法属于信道编码,其实施原理为:对所有的媒体包,根据丢包率插入冗余包进行保护,以便于在丢包时,能够依据已接收到的媒体包和冗余包恢复出丢失的媒体包。
在图像的划分方法上,将图像按FRAME(帧)进行划分,而帧又可以分成一个或几个SLICE(片);每个SLICE由MB(宏块)组成。以CIF(CommonIntermediate Format,公共中间格式)分辨率为例,一帧中包括396个宏块,每个宏块包括16×16个像素点,宏块是编码处理的基本单元。在媒体包传输时,传统的划分方法中,每个媒体包中只包含一个SLICE,而每个SLICE的大小按照MTU(Maximum Transmission Unit,最大传输单元)的大小进行划分,即 在编码过程中,当生成的码流大小接近MTU值时,则该SLICE结束。现有技术中SLICE的划分示意图如图1所示。从图1中可以看出,对于一帧图像中的SLICE划分,与图像中的宏块为准静止宏块或非静止宏块无关,只是按照MTU值,确定将一个宏块编码到当前的SLICE或者下一个SLICE中。对于每一个SLICE,可能只包括准静止宏块或非静止宏块,也可能同时包括准静止宏块和非静止宏块。
图2A是现有技术中丢包恢复算法的编码模块示意图。在图2A中,视频编码模块对图像进行编码,生成视频数据媒体包,再经过FEC保护模块,按照当前的丢包率,针对媒体包生成冗余包,最后,RTP发送模块将媒体包和冗余包发送至网络。
图2B是现有技术中丢包恢复算法的解码模块示意图。在图2B中,RTP接收模块将网络上的媒体包以及冗余包,传递给FEC恢复模块,此模块根据媒体包中携带的信息,判断出丢失包的个数以及位置,再根据冗余包及已接收到的媒体包,对丢失的媒体包进行恢复,最后,将恢复过的媒体包中的视频数据发送给解码器进行解码。
现有技术中存在的问题在于:传统的SLICE划分方法不考虑宏块的内容(准静止宏块或者非静止宏块),对所有的宏块进行统一处理。而传统的FEC算法中,对所有的媒体包不加区分,均插入冗余包进行保护。而在实际应用中,在启用了解码的错误隐藏算法时,对于准静止宏块编码得到的SLICE即媒体包,即使不进行冗余包保护也不会影响图像质量。因此,非必要的冗余包将会占用额外的带宽,降低正常码流图像的传输带宽。
发明内容
本发明提供一种编码发送方法和装置,用于在丢包的网络环境中,在保证高丢包恢复率的情况下提高网络带宽的有效利用率。
为了达到上述目的,本发明提供了一种编码发送方法,包括:
获取当前待编码的第M个宏块,计算所述第M个宏块对应的平均活跃度,所述第M个宏块对应的平均活跃度为:根据第M个宏块的活跃度以及所述第M个宏块前连续N个已编码宏块各自的活跃度计算所得平均活跃度;所述M和N为不小于0的整数;
判断所述第M个宏块对应的平均活跃度与第M-1个宏块对应的平均活跃度相比是否发生突变;
未发生突变时,将所述第M个宏块编码到当前正在编码的SLICE,并继续获取当前编码帧中的下一个待编码宏块;否则设置当前正在编码的SLICE的优先级并结束当前正在编码的SLICE,将所述第M个宏块编码到新的SLICE;
将具有不同优先级SLICE的媒体包进行发送,并发送对具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包进行保护的冗余包。
其中,所述根据所述第M个宏块的类型以及运动矢量大小,获取所述第M个宏块的活跃度,包括:
根据关于所述第M个宏块在x方向上的运动矢量mvx、以及在y方向上的运动矢量mvy的函数,获取所述第M个宏块的活跃度δmb,其中,在skipmb情况下δmb为0;skipmb是指当前待编码宏块与在参考帧中搜索到的最佳参考宏块相比,其运动矢量为0,且两个宏块间残差也为0或者接近0的情况。
其中,所述第M个宏块对应的平均活跃度计算方法为:
获取所述第M个宏块以及所述第M个宏块前连续N个已编码宏块的活跃度δNMB;计算:
其中,δNMB为平均活跃度,δmb[i]为第i个宏块的活跃度,若所述第M 个宏块前连续已编码宏块的数量不足N个,则取实际数目,γ为宏块数目比重因子。
其中,所述判断所述第M个宏块对应的平均活跃度与上一次获取的第M-1个宏块对应的平均活跃度相比是否发生突变,包括:
预先设置第一阈值与第二阈值,所述第一阈值小于所述第二阈值;
当所述第M个宏块对应的平均活跃度小于所述第一阈值、且所述第M-1个宏块对应的平均活跃度大于所述第二阈值;或当所述第M个宏块对应的平均活跃度大于所述第二阈值、且所述第M-1个宏块对应的平均活跃度小于所述第一阈值时,判断所述平均活跃度与上一次获取的平均活跃度相比发生了突变;否则判断为未发生突变。
其中,所述设置当前正在编码的SLICE的优先级包括:
对于由于所述第M个宏块对应的平均活跃度小于所述第一阈值、且所述第M-1个宏块对应的平均活跃度大于所述第二阈值所导致的突变导致结束编码的SLICE,设置其为高优先级;对于由于所述第M个宏块对应的平均活跃度大于所述第二阈值、且所述第M-1个宏块对应的平均活跃度小于所述第一阈值所导致的突变导致结束编码的SLICE,设置其为低优先级;
所述对包括具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包进行冗余保护,包括:
对包括具有高优先级的SLICE的媒体包进行冗余保护。
其中,所述将编码结束的SLICE添加在媒体包中进行发送后,还包括:
解码端接收媒体包以及冗余包,获取所述媒体包中携带的SLICE的优先级;将包括具有特定优先级的SLICE的媒体包以及对应的冗余包进行恢复后,进行解码;将其他媒体包直接进行解码。
本发明还提供了一种编码发送装置,包括:
编码单元,用于获取当前待编码的第M个宏块,计算所述第M个宏块对 应的平均活跃度,所述第M个宏块对应的平均活跃度为:根据第M个宏块的活跃度以及所述第M个宏块前连续N个已编码宏块各自的活跃度计算所得平均活跃度;所述M和N为不小于0的整数;判断所述第M个宏块对应的平均活跃度与第M-1个宏块对应的平均活跃度相比是否发生突变;未发生突变时,将所述第M个宏块编码到当前正在编码的SLICE,并继续获取当前编码帧中的下一个待编码宏块;否则设置当前正在编码的SLICE的优先级并结束当前正在编码的SLICE,将所述第M个宏块编码到新的SLICE;
媒体包分流单元,用于将所述编码单元对编码得到的SLICE添加在媒体包中,将包括具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包发送到冗余保护单元;进一步地,将除所述具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包之外的其他媒体包发送到发送单元或将包括具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包的所有媒体包均发送到发送单元;
冗余保护单元,用于将媒体包分流单元发送的具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包进行冗余保护;进一步地,在媒体包分流单元未将所述具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包发送到发送单元的情况下,将具有特定优先级的SLICE的媒体包和冗余包发送到发送单元或在所述媒体包分流单元将所有媒体包都发送到发送单元的情况下,只将冗余包发送到发送单元;
发送单元,用于发送从所述媒体包分流单元、以及冗余保护单元接收到的媒体包和冗余包。
其中,所述编码单元,具体用于:根据以下方法获取第M个宏块的活跃度:
根据关于所述第M个宏块在x方向上的运动矢量mvx、以及在y方向上的运动矢量mvy的函数,获取所述第M个宏块的活跃度δmb,其中,在skipmb 情况下δmb为0;skipmb是指当前待编码宏块与在参考帧中搜索到的最佳参考宏块,其运动矢量为0,且两个宏块间残差也为0或者接近0的情况。
其中,所述编码单元,具体用于:根据以下方法计算所述第M个宏块对应的平均活跃度:
获取所述第M个宏块以及所述第M个宏块前连续N个已编码宏决的活跃度δNMB;计算:
其中,δNMB为平均活跃度,δmb[i]为第i个宏块的活跃度,若所述第M个宏块前连续已编码宏块的数量不足N个,则取实际数目,γ为宏块数目比重因子。
其中,所述编码单元,具体用于:根据以下方法判断所述第M个宏块对应的平均活跃度与第M-1个宏块对应的平均活跃度相比是否发生突变:
获取预先设置的第一阈值与第二阈值,所述第一阈值小于所述第二阈值;
当所述第M个宏块对应的平均活跃度小于所述第一阈值、且所述第M-1个宏块对应的平均活跃度大于所述第二阈值;或当所述第M个宏块对应的平均活跃度大于所述第二阈值、且所述第M-1个宏块对应的平均活跃度小于所述第一阈值时,判断所述平均活跃度与上一次获取的平均活跃度相比发生了突变;否则判断为未发生突变。
其中,所述编码单元,具体用于:根据以下方法设置当前正在编码的SLICE的优先级:
对于由于所述第M个宏块对应的平均活跃度小于所述第一阈值、且所述第M-1个宏块对应的平均活跃度大于所述第二阈值所导致的突变导致结束编码的SLICE,设置其为高优先级;对于由于所述第M个宏块对应的平均活跃度大于所述第二阈值、且所述第M-1个宏块对应的平均活跃度小于所述第一 阈值所导致的突变导致结束编码的SLICE,设置其为低优先级;
所述冗余保护单元,具体用于:对包括具有高优先级的SLICE的媒体包进行冗余保护。
本发明还提供了一种解码接收装置,包括:
接收单元,用于接收媒体包以及冗余包,并发送至恢复单元;
恢复单元,用于获取所述媒体包中携带的SLICE的优先级,将包括具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包以及对应的冗余包进行恢复后,发送到解码单元;将其他媒体包直接发送到解码单元;
解码单元,用于对所述恢复单元发送的内容进行解码后播放。
与现有技术相比,本发明具有以下优点:
通过使用本发明,对于包括不同优先级的SLICE的媒体包进行区别处理,只对包括具有特定优先级的SLICE的媒体包进行冗余保护。从而可以在丢包的网络环境中,在保证高丢包恢复率的情况下提高网络带宽的有效利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中现有技术中SLICE的划分示意图;
图2A是现有技术中丢包恢复算法的编码模块示意图;
图2B是现有技术中丢包恢复算法的解码模块示意图;
图3是本发明中提供的编码发送方法的流程图;
图4是本发明中基于图像内容划分SLICE的流程图;
图5是本发明中基于图像内容划分SLICE的结果示意图;
图6是本发明中提供的解码发送装置的结构示意图;
图7是本发明中提供的编码接收装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种编码发送方法,如图3所示,包括:
步骤s301、获取当前待编码的第M个宏块,计算第M个宏块对应的平均活跃度,第M个宏块对应的平均活跃度为:根据第M个宏块的活跃度以及第M个宏块前连续N个已编码宏块各自的活跃度计算所得平均活跃度;M和N为不小于0的整数。
步骤s302、判断第M个宏块对应的平均活跃度与第M-1个宏块对应的平均活跃度相比是否发生突变;判断结果为未发生突变时,进行步骤s303;判断结果为发生突变时,进行步骤s304。
步骤s303、判断结果为未发生突变时,将第M个宏块编码到当前正在编码的SLICE,并继续获取当前编码帧中的下一个待编码宏块,返回步骤s301。
步骤s304、判断结果为发生突变时,设置当前正在编码的SLICE的优先级并结束当前正在编码的SLICE,将第M个宏块编码到新的SLICE。
步骤s305、将具有不同优先级SLICE的媒体包进行发送,并发送对具有特定优先级的SLICE的媒体包进行保护的冗余包。
之后,解码端接收到媒体包以及冗余包时,获取媒体包中携带的SLICE的优先级;将包括具有特定优先级的SLICE的媒体包以及对应的冗余包进行恢复后,进行解码后播放;将其他媒体包直接进行解码后播放。
本发明提供的编码发送方法主要包括两部分内容:(一)基于图像内容(主要考虑一帧图像中准静止宏块和非静止宏块的分布)进行SLICE的编码即划分,并设置划分得到的SLICE的优先级;(二)对包括不同优先级的SLICE的媒体包进行区分处理,只对包括具有特定优先级的SLICE的媒体包进行冗 余处理。以下结合一个具体的应用场景,对本发明中提供的编码发送方法的两部分内容分别进行详细描述。
如图4所示,为本发明中是基于图像内容划分SLICE的流程图,包括:
步骤s401,帧编码启动。
步骤s402,启动新的一个SLICE编码,获取帧中当前待编码的宏块,此处假设新的SLICE的序号为S,当前待编码宏块在帧中的宏块序号为M,新的SLICE可以通过“SLICE BEGIN”标识。
步骤s403,编码过程中,根据当前待编码的宏块的类型,以及宏块的运动矢量大小,计算当前待编码的宏块(即第M个宏块)的活跃度δmb。
具体的,可以根据第M个宏块在x方向上的运动矢量mvx、以及在y方向上的运动矢量mvy的函数,计算第M个宏块的活跃度δmb。本发明中,在基于大量训练数据进行模拟的基础上,提供了一种活跃度δmb的计算方式如公式(1)所示:
其中,skipmb是指当前待编码宏块(即第M个宏块)与在参考帧中搜索到的最佳参考宏块,其运动矢量为0,且两个宏块间残差也为0或者接近0的情况,mvx与mvy分别为当前宏块在x方向和y方向上的运动矢量,abs为绝对值函数。
可以理解的是,基于相同或相似的原理,可以使用其他计算方法,根据第M个宏块在x方向上的运动矢量mvx、以及在y方向上的运动矢量mvy等参数获取宏块的活跃度δmb。本发明中提出的上述公式(1)只是本发明提供的一种较佳实施方式,并不用于限定本发明的保护范围。
步骤s404,判断当前待编码的宏块是否是帧中的最后一个宏块,若是则 进行步骤s409,否则继续步骤s405。
该步骤中判断当前待编码的宏块是否是帧中的最后一个宏块的考虑在于:在仅剩最后一个宏块的情况下,处于节约运算量、减少数据包的数量以减小设备负担的考虑,可以不考虑最后一个宏块的活跃度对最近的N个宏块的平均活跃度的影响,直接将其编码到当前的SLICE。当然,也可以根据正常的判断流程计算最后一个宏块的活跃度对最近的N个宏块的平均活跃度的影响,进一步确定是否将最后一个宏块单独编码到一个SLICE。本发明并不对此进行限定。
步骤s405,统计当前待编码的宏块以及最近编码的N个宏块的平均活跃度δNMB。
其中,δNMB为平均活跃度,δmb[i]为第i个宏块的活跃度,N为整数例如5,若当前宏块数不足N个,则取实际数目,γ为宏块数目比重因子。对于第M个宏块,根据该方法计算得到的第M个宏块对应的平均活跃度为δNMB[M],另外,若N为0,则可以将当前待编码宏块的活跃度作为其对应的平均活跃度。
步骤s406,若满足当前状态τ产生突变,则进行步骤407;若不满足,则进行步骤s408。
为了判断当前状态τ是否产生突变,本发明首先设置了以下根据平均活跃度δNMB获取当前状态τ的方法:
其中,LOW threshold和HIGH threshold分别为预先设置的第一阈值与第 二阈值,且LOW threshold的值小于HIGH threshold。
基于该设置,判断当前状态τ是否发生突变的判断方法为:
δNMB(例如对于第M个宏块,为δNMB[M])小于LOW threshold、且上一次获取的平均活跃度(例如对于第M个宏块,上一次获取的平均活跃度为δNMB[M-1])大于HIGH threshold;或当δNMB(例如对于第M个宏块,为δNMB[M])大于HIGHthreshold、且上一次获取的平均活跃度(例如对于第M个宏块,上一次获取的平均活跃度为δNMB[M-1])小于LOW threshold时,判断平均活跃度与上一次获取的平均活跃度相比发生了突变;否则判断为未发生突变。当LOW threshold≤δNMB≤HIGH threshold时,τ维持原状态不变。
步骤s407,停止对当前SLICE的编码,并设置当前SLICE的优先级,并启动一个新的SLICE,将当前的宏块(即第M个宏块)编码到新的SLICE中,继续执行步骤s402。
本步骤中,若δNMB[M]小于LOW threshold、且上一次获取的平均活跃度δNMB[M-1]大于HIGH threshold所导致的突变导致结束编码的SLICE,设置其为高优先级HIGH;若δNMB[M]大于HIGH threshold、且上一次获取的平均活跃度δNMB[M-1]小于LOW threshold所导致的突变导致结束编码的SLICE,设置其为低优先级LOW。
步骤s408,当前编码的宏块(即第M个宏块)编码到当前的SLICE中,然后进行下一个宏块的编码(当然满足MTU的限制条件),继续执行s403;
步骤s409,结束当前SLICE的编码,设置当前SLICE的优先级。至此,完成了基于SLICE的对一帧的编码。具体的,对于该情况下SLICE优先级的设置可以根据最近一次由上述公式(2)得到的平均活跃度δNMB所对应的当前状态τ确定。例如,当前状态τ为HIGH时,设置SLICE的优先级为高优先级;当前状态为LOW时,设置SLICE的优先级为低优先级。
按照此算法,可以根据编码结束后的图像帧中的“SLICE BEGIN”确定 图像帧中包括的各个SLICE的起始位置,从而将连续的准静止宏块编码到同一个SLICE中,并将其标记为LOW级别;将连续的非静止宏块编码同一个SLICE中,并将其标记为HIGH级别。图5为本发明中基于图像内容的SLICE划分方法示意图,其中,SLICE的划分是依据图像的运动特性得到,SLICE1和SLICE3中主要包括准静止宏块;SLICE2中主要包括非静止宏块。若单个SLICE的长度大于MTU,则该SLICE分割至多个RTP(Real-time TransportProtocol,实时传送协议)媒体包并通过UDP连接进行传送。
在对编码结束的SLICE进行发送时,对包括不同优先级的SLICE的媒体包进行区分处理,只对具有HIGH优先级的SLICE的媒体包进行冗余处理,使得主要包括非静止宏块的编码内容的SLICE得到冗余保护。
本发明提供的上述方法中,将不同的SLICE划分为两个优先级,将主要包括非静止宏块的编码内容的SLICE设置为HIGH优先级,将主要包括准静止宏块的编码内容的SLICE设置为LOW优先级,并只对HIGH优先级的SLICE的媒体包进行冗余处理。基于同样的思想,可以进一步将不同的SLICE划分为更多的优先级,分别对应包括运动幅度较大\适中\较小的非静止宏块的编码内容的SLICE、包括准静止宏块的编码内容的SLICE等等,并只对具有某些优先级的SLICE进行冗余保护。例如在网络带宽较大的情况下,对具有最高优先级、次高优先级等优先级的SLICE的媒体包进行冗余保护;在网络带宽较小的情况下,只对具有最高优先级的SLICE的媒体包进行冗余保护。其具体实现原理与本发明前述实施例中的实施原理相似,都属于本发明的保护范围,在此不进行重复描述。
通过使用本发明提供的方法,在编码端对于包括不同优先级的SLICE的媒体包进行区别处理,只对包括具有特定优先级的由非静止宏块编码得到的SLICE的媒体包进行冗余保护。在解码端启用了错误隐藏算法时,对于准静止宏块编码得到的媒体包,即使不进行冗余包保护也不会影响图像质量。因 此,从而可以在丢包的网络环境中,在保证高丢包恢复率的情况下提供网络带宽的使用率。
本发明还提供了一种编码发送装置,如图6所示,包括:
编码单元10,获取当前待编码的第M个宏块,计算第M个宏块对应的平均活跃度,第M个宏块对应的平均活跃度为:根据第M个宏块的活跃度以及第M个宏块前连续N个已编码宏块各自的活跃度计算所得平均活跃度;M和N为不小于0的整数;判断第M个宏块对应的平均活跃度与第M-1个宏块对应的平均活跃度相比是否发生突变;未发生突变时,将第M个宏块编码到当前正在编码的SLICE,并继续获取当前编码帧中的下一个待编码宏块;否则设置当前正在编码的SLICE的优先级并结束当前正在编码的SLICE,将第M个宏块编码到新的SLICE;
媒体包分流单元20,用于将编码单元10对编码得到的SLICE添加在媒体包中,将包括具有特定优先级的SLICE的媒体包发送到冗余保护单元30;进一步地,将除具有特定优先级的SLICE的媒体包之外的其他媒体包发送到发送单元40或将包括具有特定优先级的SLICE的媒体包的所有媒体包均发送到发送单元40;
冗余保护单元30,用于将媒体包分流单元20发送的具有特定优先级的SLICE的媒体包进行冗余保护;进一步地,在媒体包分流单元20未将具有特定优先级的SLICE的媒体包发送到发送单元40的情况下,将具有特定优先级的SLICE的媒体包和冗余包发送到发送单元40或在媒体包分流单元20将所有媒体包都发送到发送单元40的情况下,只将冗余包发送到发送单元40;
发送单元40,用于发送从媒体包分流单元20、以及冗余保护单元30接收到的媒体包和冗余包。
以下对编码单元10的功能进行详细介绍:
编码单元10,在获取第M个宏块的活跃度时,具体用于:
根据关于所述第M个宏块在x方向上的运动矢量mvx、以及在y方向上的运动矢量mvy的函数,获取所述第M个宏块的活跃度δmb,其中,在skipmb情况下δmb为0;skipmb是指当前待编码宏块与在参考帧中搜索到的最佳参考宏块,其运动矢量为0,且两个宏块间残差也为0或者接近0的情况。
编码单元10,在计算所述第M个宏块对应的平均活跃度时,具体用于:
获取第M个宏块以及第M个宏块前连续N个已编码宏块的活跃度δNMB;计算:
其中,δNMB为平均活跃度,δmb[i]为第i个宏块的活跃度,若第M个宏块前连续已编码宏块的数量不足N个,则取实际数目,γ为宏块数目比重因子。
编码单元10,在判断第M个宏块对应的平均活跃度与第M-1个宏块对应的平均活跃度相比是否发生突变时,具体用于:
获取预先设置的第一阈值与第二阈值,第一阈值小于第二阈值;
当第M个宏块对应的平均活跃度小于第一阈值、且第M-1个宏块对应的平均活跃度大于第二阈值;或当第M个宏块对应的平均活跃度大于第二阈值、且第M-1个宏块对应的平均活跃度小于第一阈值时,判断平均活跃度与上一次获取的平均活跃度相比发生了突变;否则判断为未发生突变。
编码单元10,在设置当前正在编码的SLICE的优先级时,具体用于:
对于由于第M个宏块对应的平均活跃度小于第一阈值、且第M-1个宏块对应的平均活跃度大于第二阈值所导致的突变导致结束编码的SLICE,设置其为高优先级;对于由于第M个宏块对应的平均活跃度大于第二阈值、且第M-1个宏块对应的平均活跃度小于第一阈值所导致的突变导致结束编码的 SLICE,设置其为低优先级;
相应的,冗余保护单元30,具体用于:对包括具有高优先级的SLICE的媒体包进行冗余保护。
本发明还提供了一种解码接收装置,如图7所示,包括:
接收单元50,用于接收媒体包以及冗余包,并发送至恢复单元60;
恢复单元60,用于获取媒体包中携带的SLICE的优先级,将包括具有特定优先级的SLICE的媒体包以及对应的冗余包进行恢复后,发送到解码单元;将其他媒体包直接发送到解码单元70;
解码单元70,用于对恢复单元60发送的内容进行解码后播放。
通过使用本发明提供的装置,在编码端对于包括不同优先级的SLICE的媒体包进行区别处理,只对包括具有特定优先级的由非静止宏块编码得到的SLICE的媒体包进行冗余保护。在解码端启用了错误隐藏算法时,对于准静止宏块编码得到的媒体包,即使在发生丢包时不进行冗余包保护,也不会影响图像质量。因此,从而可以在丢包的网络环境中,在保证高丢包恢复率的情况下提供网络带宽的使用率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的单元或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的单元可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一 个或多个装置中。上述实施例的单元可以合并为一个单元,也可以进一步拆分成多个子单元。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
Claims (12)
1.一种编码发送方法,其特征在于,包括:
获取当前待编码的第M个宏块,计算所述第M个宏块对应的平均活跃度,所述第M个宏块对应的平均活跃度为:根据第M个宏块的活跃度以及所述第M个宏块前连续N个已编码宏块各自的活跃度计算所得平均活跃度;所述M和N为不小于0的整数;
判断所述第M个宏块对应的平均活跃度与第M-1个宏块对应的平均活跃度相比是否发生突变;
未发生突变时,将所述第M个宏块编码到当前正在编码的SLICE,并继续获取当前编码帧中的下一个待编码宏块;否则设置当前正在编码的SLICE的优先级并结束当前正在编码的SLICE,将所述第M个宏块编码到新的SLICE;
将具有不同优先级SLICE的媒体包进行发送,并发送对具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包进行保护的冗余包。
2.如权利要求1所述的方法,其特征在于,所述根据所述第M个宏块的类型以及运动矢量大小,获取所述第M个宏块的活跃度,包括:
根据关于所述第M个宏块在x方向上的运动矢量mvx、以及在y方向上的运动矢量mvy的函数,获取所述第M个宏块的活跃度δmb,其中,在skipmb情况下δmb为0;skipmb是指当前待编码宏块与在参考帧中搜索到的最佳参考宏块相比,其运动矢量为0,且两个宏块间残差也为0或者接近0的情况。
3.如权利要求2所述的方法,其特征在于,所述第M个宏块对应的平均活跃度计算方法为:
获取所述第M个宏块以及所述第M个宏块前连续N个已编码宏块的活跃度δNMB;计算:
其中,δNMB为平均活跃度,δmb[i]为第i个宏块的活跃度,若所述第M个宏块前连续已编码宏块的数量不足N个,则取实际数目,γ为宏块数目比重因子。
4.如权利要求1所述的方法,其特征在于,所述判断所述第M个宏块对应的平均活跃度与上一次获取的第M-1个宏块对应的平均活跃度相比是否发生突变,包括:
预先设置第一阈值与第二阈值,所述第一阈值小于所述第二阈值;
当所述第M个宏块对应的平均活跃度小于所述第一阈值、且所述第M-1个宏块对应的平均活跃度大于所述第二阈值;或当所述第M个宏块对应的平均活跃度大于所述第二阈值、且所述第M-1个宏块对应的平均活跃度小于所述第一阈值时,判断所述平均活跃度与上一次获取的平均活跃度相比发生了突变;否则判断为未发生突变。
5.如权利要求4所述的方法,其特征在于,所述设置当前正在编码的SLICE的优先级包括:
对于由于所述第M个宏块对应的平均活跃度小于所述第一阈值、且所述第M-1个宏块对应的平均活跃度大于所述第二阈值所导致的突变导致结束编码的SLICE,设置其为高优先级;对于由于所述第M个宏块对应的平均活跃度大于所述第二阈值、且所述第M-1个宏块对应的平均活跃度小于所述第一阈值所导致的突变导致结束编码的SLICE,设置其为低优先级;
所述对包括具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包进行冗余保护,包括:
对包括具有高优先级的SLICE的媒体包进行冗余保护。
6.如权利要求1至5中任一项所述的方法,其特征在于,所述将编码结束的SLICE添加在媒体包中进行发送后,还包括:
解码端接收媒体包以及冗余包,获取所述媒体包中携带的SLICE的优先级;将包括具有特定优先级的SLICE的媒体包以及对应的冗余包进行恢复后,进行解码;将其他媒体包直接进行解码。
7.一种编码发送装置,其特征在于,包括:
编码单元,用于获取当前待编码的第M个宏块,计算所述第M个宏块对应的平均活跃度,所述第M个宏块对应的平均活跃度为:根据第M个宏块的活跃度以及所述第M个宏块前连续N个已编码宏块各自的活跃度计算所得平均活跃度;所述M和N为不小于0的整数;判断所述第M个宏块对应的平均活跃度与第M-1个宏块对应的平均活跃度相比是否发生突变;未发生突变时,将所述第M个宏块编码到当前正在编码的SLICE,并继续获取当前编码帧中的下一个待编码宏块;否则设置当前正在编码的SLICE的优先级并结束当前正在编码的SLICE,将所述第M个宏块编码到新的SLICE;
媒体包分流单元,用于将所述编码单元对编码得到的SLICE添加在媒体包中,将包括具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包发送到冗余保护单元;进一步地,将除所述具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包之外的其他媒体包发送到发送单元或将包括具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包的所有媒体包均发送到发送单元;
冗余保护单元,用于将媒体包分流单元发送的具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包进行冗余保护;进一步地,在媒体包分流单元未将所述具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包发送到发送单元的情况下,将具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包和冗余包发送到发送单元或在所述媒体包分流单元将所有媒体包都发送到发送单元的情况下,只将冗余包发送到发送单元;
发送单元,用于发送从所述媒体包分流单元、以及冗余保护单元接收到的媒体包和冗余包。
8.如权利要求7所述的编码发送装置,其特征在于,所述编码单元,具体用于:根据以下方法获取第M个宏块的活跃度:
根据关于所述第M个宏块在x方向上的运动矢量mvx、以及在y方向上的运动矢量mvy的函数,获取所述第M个宏块的活跃度δmb,其中,在skipmb情况下δmb为0;skipmb是指当前待编码宏块与在参考帧中搜索到的最佳参考宏块,其运动矢量为0,且两个宏块间残差也为0或者接近0的情况。
9.如权利要求8所述的编码发送装置,其特征在于,所述编码单元,具体用于:根据以下方法计算所述第M个宏块对应的平均活跃度:
获取所述第M个宏块以及所述第M个宏块前连续N个已编码宏块的活跃度δNMB;计算:
其中,δNMB为平均活跃度,δmb[i]为第i个宏块的活跃度,若所述第M个宏块前连续已编码宏块的数量不足N个,则取实际数目,γ为宏块数目比重因子。
10.如权利要求7所述的编码发送装置,其特征在于,所述编码单元,具体用于:根据以下方法判断所述第M个宏块对应的平均活跃度与第M-1个宏块对应的平均活跃度相比是否发生突变:
获取预先设置的第一阈值与第二阈值,所述第一阈值小于所述第二阈值;
当所述第M个宏块对应的平均活跃度小于所述第一阈值、且所述第M-1个宏块对应的平均活跃度大于所述第二阈值;或当所述第M个宏块对应的平均活跃度大于所述第二阈值、且所述第M-1个宏块对应的平均活跃度小于所述第一阈值时,判断所述平均活跃度与上一次获取的平均活跃度相比发生了突变;否则判断为未发生突变。
11.如权利要求10所述的编码发送装置,其特征在于,所述编码单元,具体用于:根据以下方法设置当前正在编码的SLICE的优先级:
对于由于所述第M个宏块对应的平均活跃度小于所述第一阈值、且所述第M-1个宏块对应的平均活跃度大于所述第二阈值所导致的突变导致结束编码的SLICE,设置其为高优先级;对于由于所述第M个宏块对应的平均活跃度大于所述第二阈值、且所述第M-1个宏块对应的平均活跃度小于所述第一阈值所导致的突变导致结束编码的SLICE,设置其为低优先级;
所述冗余保护单元,具体用于:对包括具有高优先级的SLICE的媒体包进行冗余保护。
12.一种解码接收装置,其特征在于,包括:
接收单元,用于接收媒体包以及冗余包,并发送至恢复单元;
恢复单元,用于获取所述媒体包中携带的SLICE的优先级,将包括具有特定优先级的主要包括非静止宏块的编码内容的SLICE的媒体包以及对应的冗余包进行恢复后,发送到解码单元;将其他媒体包直接发送到解码单元;
解码单元,用于对所述恢复单元发送的内容进行解码后播放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102654127A CN101753270B (zh) | 2009-12-28 | 2009-12-28 | 一种编码发送方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102654127A CN101753270B (zh) | 2009-12-28 | 2009-12-28 | 一种编码发送方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101753270A CN101753270A (zh) | 2010-06-23 |
CN101753270B true CN101753270B (zh) | 2013-04-17 |
Family
ID=42479722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102654127A Active CN101753270B (zh) | 2009-12-28 | 2009-12-28 | 一种编码发送方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101753270B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104754341B (zh) * | 2013-12-31 | 2019-02-26 | 华为技术有限公司 | 一种视频数据编码、解码的方法和装置 |
CN110139168B (zh) * | 2018-02-02 | 2021-07-13 | 中南大学 | 视频编码方法、装置、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1095540A (zh) * | 1993-01-11 | 1994-11-23 | 索尼公司 | 图象信号编码方法、译码方法和图象信号记录介质 |
CN1478355A (zh) * | 2000-08-21 | 2004-02-25 | ��˹��ŵ�� | 视频编码 |
CN1593065A (zh) * | 2001-11-27 | 2005-03-09 | 诺基亚有限公司 | 其中图像被分成条带的前景和背景的视频编码与解码 |
-
2009
- 2009-12-28 CN CN2009102654127A patent/CN101753270B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1095540A (zh) * | 1993-01-11 | 1994-11-23 | 索尼公司 | 图象信号编码方法、译码方法和图象信号记录介质 |
CN1478355A (zh) * | 2000-08-21 | 2004-02-25 | ��˹��ŵ�� | 视频编码 |
CN1593065A (zh) * | 2001-11-27 | 2005-03-09 | 诺基亚有限公司 | 其中图像被分成条带的前景和背景的视频编码与解码 |
Also Published As
Publication number | Publication date |
---|---|
CN101753270A (zh) | 2010-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103634594B (zh) | 一种获得视频编码压缩质量的方法及装置 | |
Rhee | Error control techniques for interactive low-bit rate video transmission over the internet | |
CN101635846B (zh) | 一种视频质量评估方法、系统及装置 | |
EP3657787A1 (en) | Video quality assessment method and apparatus | |
KR100580158B1 (ko) | 화상 패킷 전송을 위한 무선통신 시스템 | |
JP2003244676A5 (ja) | 動画配信システム、動画配信装置および方法、並びにプログラム | |
Hohlfeld et al. | Packet loss in real-time services: Markovian models generating QoE impairments | |
US20170063497A1 (en) | Method and apparatus for decoding packetized data | |
CN101023677A (zh) | 以多个参考帧以及可变块尺寸的帧速率上变换方法和装置 | |
Tan et al. | A remote thin client system for real time multimedia streaming over VNC | |
Shen et al. | Foveation-based wireless soft image delivery | |
CN106488243A (zh) | 一种多描述屏幕内容视频编码方法 | |
CN100521646C (zh) | 计算每个流的可用带宽和比特流协调的发送多数据流的数据通信方法和系统 | |
CN110572695A (zh) | 媒体数据的编码、解码方法及电子设备 | |
CN107995493A (zh) | 一种全景视频的多描述视频编码方法 | |
CN102547376B (zh) | 一种视频数据传输方法、装置和系统 | |
CN109618170B (zh) | 基于网络编码的d2d实时视频流传输方法 | |
CN101895753B (zh) | 基于网络拥塞程度的视频传输方法、系统及装置 | |
JP4787210B2 (ja) | 映像品質推定方法、装置、およびプログラム | |
CN111093083A (zh) | 数据传输方法及装置 | |
CN101854224B (zh) | 纠错编码方法、装置和系统以及转发控制方法和装置 | |
CN101753270B (zh) | 一种编码发送方法和装置 | |
CN108429921B (zh) | 一种视频编解码方法及装置 | |
Schumeyer et al. | Region of interest priority coding for sign language videoconferencing | |
CN104247317A (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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |