CN109245850A - 基于媒体内容的自适应***码fec编译码方法 - Google Patents

基于媒体内容的自适应***码fec编译码方法 Download PDF

Info

Publication number
CN109245850A
CN109245850A CN201710561850.2A CN201710561850A CN109245850A CN 109245850 A CN109245850 A CN 109245850A CN 201710561850 A CN201710561850 A CN 201710561850A CN 109245850 A CN109245850 A CN 109245850A
Authority
CN
China
Prior art keywords
enc
rev
priority
matrix
source data
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
Application number
CN201710561850.2A
Other languages
English (en)
Other versions
CN109245850B (zh
Inventor
徐异凌
张文军
姜志乾
陈浩
孙军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority to CN201710561850.2A priority Critical patent/CN109245850B/zh
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN202110441953.1A priority patent/CN113114427B/zh
Priority to KR1020207003904A priority patent/KR102383892B1/ko
Priority to JP2020500808A priority patent/JP7408152B2/ja
Priority to PCT/CN2018/095051 priority patent/WO2019011219A1/zh
Priority to EP18831697.0A priority patent/EP3654556A4/en
Priority to CA3069594A priority patent/CA3069594C/en
Publication of CN109245850A publication Critical patent/CN109245850A/zh
Priority to US16/740,229 priority patent/US11438097B2/en
Application granted granted Critical
Publication of CN109245850B publication Critical patent/CN109245850B/zh
Priority to JP2023128800A priority patent/JP2023157921A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0043Realisations of complexity reduction techniques, e.g. use of look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明提供了一种基于媒体内容的自适应***码FEC编译码方法,包括:根据媒体内容的重要程度,将源数据按照优先级划分为N类源数据包;根据N类源数据包及其优先级,生成N类中间码;根据N类中间码,按照信道状况设定N类源数据的恢复数据,生成N类***码的编码符号;接收所述编码符号,根据译码需要对编码符号整理排序;根据接收到的编码符号数量,分情况译出中间码字,并根据该中间码恢复出相应的源数据包。本发明最大限度保证媒体内容质量,减少FEC造成的数据冗余;不需要对源数据流进行分流,降低了发送端FEC编码的复杂度,提高了FEC编码的效率;可以根据当前网络状态的变化动态的调整编码方案,具有更强的适应性。

Description

基于媒体内容的自适应***码FEC编译码方法
技术领域
本发明涉及多媒体传输技术领域,具体地,涉及基于媒体内容的自适应***码前向纠错(Forward Error Correction,FEC)编译码方法。
背景技术
在异构网络媒体服务***中,内容通过因特网协议或广播协议分发到终端,因特网中使用IP/TCP或UDP报文来传输媒体数据,广播通过MPEG2-TS来传输内容。UDP报文在经过多个网络设备后可能会出现丟失,广播TS流可能因为传输环境的影响,产生误码,从而造成终端侧的画面破损或者声音停顿。
FEC(Forward Error Correction,前向纠错)技术是一种广泛应用于通信***中的编码技术。通过服务器侧对媒体数据进行纠错编码,加入冗余信息一并发送,终端侧进行反向FEC解码,对丟失的报文进行恢复。以典型的分组码为例,其基本原理是:在发送端,通过将k bit信息作为一个分组进行编码,加入(n-k)bit的冗余校验信息,组成长度为n bit的码字。码字经过信道到达接收端之后,如果错误在可纠错范围之内,通过译码即可检查并纠正错误bit,从而抵抗信道带来的干扰,有效降低***的误码率,提高通信***的可靠性。但是FEC处理,是以冗余开销代价来降低***的误码率,过度FEC编码对***实时性和网络状态也会造成压力。
不等差错保护(Unequal Error Protection,UEP)是联合信源信道编码的一种。其核心思想是,依据码流的各部分数据的重要性不同,对各部分数据采用不同的信道保护机制,即对重要码流进行重点保护。尽管UEP降低了非重要码流的抗噪声性能,但有利于***抗误码总体性能的提升。
作为一种前向纠错编码技术,数字喷泉码(Digital Fountain Code)在传输过程中,不需要反馈及自动重发机制,避免了信号往返的延时以及广播应用中的反馈***问题。数字喷泉的基本思想是:发端将原始数据分割成k个数据符号,对这些数据符号进行编码,输出一个任意长度的编码符号码流,接收端只需正确地接收n(n稍大于k)个编码符号就可以很大的概率恢复出所有的k个数据符号。数字喷泉码本身就具有UEP性能,可以实现对不同重要性的数据的保护。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于媒体内容的自适应***码FEC编译码方法。
根据本发明提供的基于媒体内容的自适应***码FEC编译码方法,包括:
根据媒体内容的重要程度,将源数据按照优先级划分为N类源数据包;N为大于1的整数;
根据源数据和N类源数据包的优先级,生成N类中间码;
根据所述N类中间码,按照信道状况设定N类源数据的恢复数据,生成N类***码的编码符号;
接收所述编码符号,根据译码需要对所述编码符号进行整理排序,对所述编码符号进行译码处理;
根据接收到的编码符号情况,优先译出优先级高的中间码,并根据该中间码恢复出相应的源数据包。
可选地,所述根据源数据和N类源数据包的优先级,生成N类中间码,包括:
构建N类源数据包对应的编码矩阵,记为Ai,i=1,2,…N;其中:
式中:Ai表示第i类源数据包对应的编码矩阵,G_pi表示第i类源数据包对应的由LDPC矩阵和单位矩阵构成的联合矩阵,G_ENCi表示第i类源数据包对应的LT编码矩阵;
根据N类源数据包对应的编码矩阵构建源数据的编码矩阵A,所述源数据的编码矩阵如下:
式中:C1,C2,…,Ci…,CN分别对应N类源数据包的中间码,D1,D2,…,Di…,DN分别对应N类源数据包的数据,上标-1为逆矩阵运算符;i=1,2,…N。
可选地,所述根据所述N类中间码,按照信道状况设定N类源数据的恢复数据,包括:
式中:R1,R2,…,Ri…,RN分别对应N类源数据包的恢复数据,G_ENC1i表示与G_ENC1具有相同生成规则的LT编码矩阵;G_ENCi1表示与G_ENCi具有相同生成规则的LT编码矩阵;i=1,2,…N。
可选地,当N的值取2时,针对不同重要程度的数据可以产生相应的中间码如下:
改变LT编码矩阵的结构,得到G_ENC11、G_ENC12、G_ENC21,其中G_ENC12与G_ENC1的生成方式相同;G_ENC21与G_ENC2的生成方式相同;G_ENC11表示与G_ENC1具有相同生成方式的LT编码矩阵;G_ENC21表示与G_ENC2具有相同生成方式的LT编码矩阵;G_ENC12表示与G_ENC1具有相同生成方式的LT编码矩阵;
得到的恢复数据R1只与优先级为1的数据有关,而恢复数据R2与优先级1和2的数据均有关,则得到:
可选地,当N的值取2时,所述接收所述编码符号,对所述编码符号进行译码处理,包括:
在第一阶段解码时,根据恢复矩阵W以及接收到的源数据包得到中间码字;具体的:
式中:REV_G_ENC1表示根据接收到的编码符号的丢包情况,去除G_ENC1中丢失包所对应的行后的LT编码矩阵;REV_G_ENC11表示根据接收到的编码符号的丢包情况,去除G_ENC11中丢失包所对应的行后的LT编码矩阵;REV_G_ENC12表示根据接收到的编码符号的丢包情况,去除G_ENC12中丢失包所对应的行后的LT编码矩阵;REV_G_ENC2表示根据接收到的编码符号的丢包情况,去除G_ENC2中丢失包所对应的行后的LT编码矩阵;REV_G_ENC21表示根据接收到的编码符号的丢包情况,去除G_ENC21中丢失包所对应的行后的LT编码矩阵;
并根据接收到的对应优先级下源数据包的数量以及接收到的数据包总数量进行解码;
接收到的编码符号总数小于源数据生成的编码符号的个数,并且 的行数小于列数时;C1、C2均无法解出;
接收到的编码符号总数小于源数据生成的编码符号的个数,且 的行数大于等于列数时;若的行数大于等于列数,则REV_A1可逆,对应的逆矩阵记为REV_A1 -1;则可得:
其中:C2无解;
式中:REV_D1表示接收到的优先级为1的源数据,REV_R1表示接收到的优先级为1源数据的恢复数据;
接收到的编码符号总数大于等于源数据生成的编码符号的个数,且 的行数大于等于列数时;若的行数大于等于列数,则REV_A1可逆,对应的逆矩阵记为REV_A1 -1;若的行数大于等于列数,则REV_A2可逆,对应的逆矩阵记为REV_A2 -1;若REV_A1和REV_A2都可逆,则REV_A可逆,对应的逆矩阵记为REV_A-1,记得到:
的行数小于列数,则REV_A2不存在逆矩阵,只能求出
式中:REV_D2表示接收到的优先级为2的源数据,REV_R2表示接收到的优先级为1和2源数据的恢复数据;
接收到的编码符号总数大于等于源数据生成的编码符号的个数,且 的行数小于列数,的行数大于等于列数时;
使用高斯消元法直接对矩阵REV_A进行求解,即解下列线性方程组:
得到C1、C2
可选地,由于部分数据发生丢失,需要根据接收到的编码符号,生成恢复矩阵,相当于擦除掉丢失的编码符号对应的矩阵行,形成相应的恢复矩阵,记为REV_G_ENC;根据接收的数据包的数目不同,分不同情况生成中间码字;具体的,包括如下步骤:
步骤A1:假设接收到l类优先级的数据包;则得到如下的恢复矩阵方程:
对恢复矩阵方程进行初等行变换,得到:
式中:REV_G_ENC1表示根据接收到的编码符号的丢包情况,去除G_ENC1中丢失包所对应的行后的LT编码矩阵;REV_G_ENC11表示根据接收到的编码符号的丢包情况,去除G_ENC11中丢失包所对应的行后的LT编码矩阵;REV_G_ENC12表示根据接收到的编码符号的丢包情况,去除G_ENC12中丢失包所对应的行后的LT编码矩阵;REV_G_ENC2表示根据接收到的编码符号的丢包情况,去除G_ENC2中丢失包所对应的行后的LT编码矩阵;REV_G_ENC21表示根据接收到的编码符号的丢包情况,去除G_ENC21中丢失包所对应的行后的LT编码矩阵;REV_D1表示接收到的优先级为1的源数据,REV_R1表示接收到的优先级为1源数据的恢复数据;REV_D2表示接收到的优先级为2的源数据,REV_R2表示接收到的优先级为1和2源数据的恢复数据;REV_G_ENC1l表示根据接收到的编码符号的丢包情况,去除G_ENC1l中丢失包所对应的行后的LT编码矩阵,REV_Dl表示表示接收到的优先级为l的源数据,REV_Rl表示接收到的优先级为1到l的源数据的恢复数据,Cl表示生成的第l类中间码;
步骤A2:令令R(i)为接收到并经扩展后第i级编码符号数,L(i)为编码端每级符号长度,其中:1≤i≤l;
计算每级生成矩阵的秩:
eachRank(i)=min(Len(R(i)),sum(L(1:i)));
式中:eachRank(i)表示优先级为i的数据所对应的子矩阵的秩,其中i=2时所对应的子矩阵为Len(R(i))表示接收到的优先级为i的编码符号数的长度,sum(L(1:i))表示优先级为i的子矩阵的列数,min()表示取最小值运算;
计算累积矩阵的秩:
cumRank(i)=min(cumRank(i-1)+eachRank(i),sum(L(1:i))),
式中:cumRank(i)表示优先级为1到优先级为i所对应的子矩阵秩之和,cumRank(i-1)表示优先级为1到优先级为i-1所对应的子矩阵秩之和;
其中cumRank(1)=eachRank(1);
依次判断cumRank(i)>=sum(L(1:i)):若成立,cumFullRank(i)=1;否则cumFullRank(i)=0;cumFullRank(i)表示优先级为1到优先级为i所对应的子矩阵组成的矩阵满秩;
步骤A3:设置i初始值为l;
步骤A4:根据接收到的每级编码符号数,分情况分别求中间码C1、C2…Cl
若满足cumFullRand(i)==1&&cumFullRank(1:i)>0,使用RFC 6330译码方法解出C1~Ci,其中:&&表示与运算,cumFullRank(1:i)表示从优先级为1到优先级为i各子矩阵所组成的矩阵满秩;C1表示优先级为1的数据所对应的中间码,Ci表示优先级为i的数据所对应的中间码;
得到:
其中:
X1_2=A2 -1B1_2A1 -1
式中:REV_AΔi表示到优先级为i时所有子矩阵组成的满秩矩阵,B1_2表示子矩阵X1_2表示对子矩阵B1_2求逆运算后的子矩阵,Xa_b表示子矩阵Ba_b求逆运算后得到的子矩阵,Ba_b表示子矩阵a的取值范围为1~i,b的取值范围为2~i,Ai -1表示子矩阵的逆矩阵;
其中,REV_Ai -1为REV_Ai的逆矩阵,则得到:
C1=C1_temp
根据数学归纳法,得到:
求得C1、C2…Ci,其中,不能解出Ci+1…Cl
若满足cumFullRand(i)==1,且不满足cumFullRank(1:i)>0,使用高斯消元译码方法解出C1~Ci
通过高斯消元法解线性方程组:
求得C1、C2…Ci,其中,不能解出Ci+1…Cl
对于任一i值,若不满足cumFullRand(i)==1则相应Ci不能解出;直到i==1,也不满足cumFullRank(1:i)>0时,则C1、C2…Cl全部不能解出,译码失败;
步骤A5:令i的值自减1,返回执行步骤A4。
与现有技术相比,本发明具有如下的有益效果:
本发明提供的基于媒体内容的自适应***码FEC编译码方法,对目前FEC***中过度编码造成的数据拥塞,通过对媒体内容分级,赋予不同的重要性,采用不等差错保护(UEP),最大限度保证媒体内容质量的同时,减少FEC造成的数据冗余;提供了基于***喷泉码的不等差错保护方案,使***码的编译码更加灵活,可支持不等差错保护;不需要对源数据流进行分流,因此降低了发送端FEC编码的复杂度,提高了FEC编码的效率;同时,可以根据当前网络状态的变化动态的调整编码方案,因此对时变网络具有更强的适应性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为针对媒体资源数据的FEC两层结构示意图;
图2(a)、图2(b)为图像组中各帧依赖关系示意图;
图3为喷泉码的不等差错保护编码方案示意图;
图4为喷泉码不等差错保护的***架构示意图;
图5为***RaptorQ码编码矩阵结构示意图;
图6为***RaptorQ码不等差错保护的编码矩阵结构示意图;
图7为LT编码矩阵不等差错保护结构示意图;
图8为多优先级不等差错保护***喷泉码编码流程图;
图9为多优先级不等差错保护***喷泉码译码流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
如图1所示:针对媒体资源数据的FEC两层结构,第一层将源数据包块sourcepacket block分为较多的小块分别做FEC保护,第二层是一个整块做FEC保护。第一层划分较细致可以提供较小的时延,第二层保证了恢复性能和较小的冗余,但是这种方式需要进行两次FEC编码,降低了编码效率,同时缺乏灵活性。
在一个数据流中可以根据其内容分成不同类型的数据包,不同类型的数据包具有不同的重要程度。例如,数据包中的I、B、P帧的重要程度如图2a图2b所示。一个图像组中各帧依赖关系,说明一个图像组中不同帧的依赖程度和重要性不同,I帧是最重要的,B、P帧的重要程度较低。因此可以根据数据内容重要性进行不等差错保护。具体考虑传输信源数据具有两个重要等级的情况,将信源数据按上述标准进行划分,并将其按照重要程度重新进行排序,通过改变***喷泉码编码矩阵的结构,达到对不同内容的不等差错保护。其***的基本架构如图4所示。经过***喷泉码的不等差错保护编码后产生的数据如图3所示。
实施例1
本实施例以RaptorQ***码为例,***RaptorQ码的编码矩阵的结构如图5所示。其中,D表示源数据,C表示中间码,G_LDPC表示LDPC矩阵,I_S、I_H表示单位矩阵,G_ENC表示LT编码矩阵,则编码矩阵可以如下表示。
在进行FEC编码时,由源数据和图5所示的编码矩阵产生中间码。
再根据编码矩阵中的LT矩阵和得到的中间码产生源数据和恢复数据。其中R表示编码后得到的恢复数据,G_ENC′是与G_ENC相同生成方式产生的LT矩阵。
采用上述方法对源数据进行编码,不能对源数据进行优先级划分并采用不等差错保护编码,因此需要重新设计编码矩阵A以及LT矩阵G_ENC的矩阵结构。以源数据中具有两种不同优先级的数据为例,设优先级分别为优先级1和2,将源数据中的不同优先级的数据区开,对其分配不同的冗余,已达到不等差错保护的效果。
编码过程:
其编码矩阵结构如图6所示。其编码矩阵如公式(6)所示,其中G_ENC1与G_ENC2是由不同规则产生的编码矩阵,为了保证对重要数据的保护可以提高G_ENC1矩阵的度分布。
这样,针对不同重要程度的数据可以产生相应的中间码。
为了达到对不同重要程度数据的不等差错保护,还需要改变LT编码矩阵的结构如图7所示,增加对重要数据保护的冗余数据。其中G_ENC1′是与G_ENC1具有生成方式相同,G_ENC2′与G_ENC2的生成方式相同。得到的恢复数据R1只与优先级为1的数据有关,而恢复数据R与优先级1和2的数据均有关。由此增加了重要数据的冗余,提高了其保护强度。其中若由于信道条件的限制,数据总的冗余度有限,生成R1和R2的比例由[G_ENC1′ 0]与[G_ENC1″ G_ENC2′]的行数比确定,可以增加[G_ENC1′ 0]的行数进一步提高优先级为1的数据的保护强度。
译码过程:
由于在经过有损信道后,部分数据包发生了丢失,根据接收到的符号ISI,生成恢复矩阵,需要擦除掉丢失符号ISI对应的矩阵行,例如,对于矩阵REV_G_ENC1,根据接收到的REV_D1和发送端的D1可以得到丢失数据的ISI,从而删除G_ENC1相应的行。与编码过程类似,进行第一阶段解码时,根据恢复矩阵以及接收到的数据包得到中间码字。
对上面矩阵方程进行初等行变换,得到以下形式:
根据接收到的各优先级下数据包的数量以及接收到的数据包总数量分多种情况进行解码。
接收到的编码符号总数小于源数据编码符号的个数,并且的行数小于列数;C1、C2均不可求出。
接收到的编码符号总数小于源数据编码符号的个数,但是的行数大于等于列数;
的行数大于等于列数,则REV_A1可逆,其逆矩阵记为REV_A1 -1;则可得:
但C2不能求出。
接收到的编码符号总数大于源数据编码符号的个数,的行数大于等于列数;
的行数大于等于列数,则REV_A1可逆,其逆矩阵记为REV_A1 -1;若的行数大于等于列数,则REV_A2可逆,其逆矩阵记为REV_A2 -1。若REV_A1和REV_A2都可逆,则REV_A可逆,其逆矩阵记为REV_A-1,记易知则可得:
但若的行数小于列数,则REV_A2不存在逆矩阵,只能求出
接收到的编码符号总数大于等于源数据编码符号的个数,的行数小于列数,但的行数大于等于列数;
使用高斯消元法直接对矩阵REV_A进行求解,即解下列线性方程组:
易求得C1、C2
由上述解码过程的第一阶段可以得到,任何情况下都首先保证C1的正确解出,由于中间码字C1和C2作为在解码第二阶段中恢复出源数据的重要数据,提高C1的解码成功率可以进一步提高源数据正确恢复的概率。
根据得到的中间码字,生成***码编码符号
若第一阶段没有求出C1、C2,则译码失败,无法译出源符号;若只求出C1,则可以保证优先的源码数据D1可以正确译出;若C1、C2都求出,则利用上式可以得出最终的源码D1和D2
同时,该方案不仅适用于两个优先级的场景,可扩展到多个优先级的源数据上,其具体过程如下。
编码过程:
首先根据源数据以及源数据的优先级,生成中间码。假设源数据划分成l个数据包,得到:
由式(16)可得到中间码字C1,C2,…,Cl
根据得到的中间码字生成源数据和恢复数据。
整个编码流程如图8所示。将源数据和恢复数据由发送端发送给接收端,由于信道的衰减,部分数据可能会发生丢失,接收端接收到数据后,根据接收到的数据情况进行译码恢复出源数据。
译码过程:
由于部分数据发生丢失,需要根据接收到的符号ISI,生成恢复矩阵,相当于擦除掉丢失符号ISI对应的矩阵行,形成相应的矩阵,记为REV_G_ENC。根据接收数据的数目不同,分不同情况生成中间码字。
对上面矩阵方程进行初等行变换,得到以下形式:
设R(i)(1≤i≤l)为接收到并经扩展后第i级符号数,L(i)为编码端每级符号长度,对于i=1:l,计算每级生成矩阵的秩eachRank(i)=min(Len(R(i)),sum(L(1:i)));再计算累积矩阵的秩cumRank(i)=min(cumRank(i-1)+eachRank(i),sum(L(1:i))),其中cumRank(1)=eachRank(1)。依次判断cumRank(i)>=sum(L(1:i)):若成立,cumFullRank(i)=1;否则cumFullRank(i)=0。以下根据接收到的每级符号数分情况分别求中间码C1、C2…Cl,设置i初始值为l:
若满足cumFullRand(i)==1&&cumFullRank(1:i)>0,使用RFC 6330译码方法解出C(1)~C(i)
并且易知其中X1_2=A2 -1B1_2A1 -1 进而中间码可以通过下式求得:
C1=C1_temp
…(数学归纳法)
求得C1、C2…Ci,而其他Ci+1…Cl不能求得。
若满足cumFullRand(i)==1,但不满足cumFullRank(1:i)>0,使用高斯消元译码方法解出C(1)~C(i)
可以通过高斯消元法解线性方程组:
求得C1、C2…Ci,而其他Ci+1…Cl不能求得。
对于某i值,若不满足cumFullRand(i)==1则相应Ci不能解出。直到i==1,上述两个条件都不能满足,则C1、C2…Cl全部不能解出,译码失败。
令i=i-1继续循环,即i=l:-1:1,重复以上过程。
整个译码流程如图9所示。
本实施例中的方法,能够有效地节省资源,如果在接收端,人为的根据情况舍弃已经接收的数据(例如B帧)则造成了传输资源的浪费,上述方案从源端解决问题,让不想要的包在传输过程中更大概率丢掉,而更大程度的保护了重要的包。
本实施例中的方法,提供个性化的传输方案。可以根据信道状况、用户体验等设计不等差错保护的方案,使得视频传输更加灵活、细致。同时,尽管发送端的编码方式灵活,接收端都可以根据列表信息正确的恢复出原始的数据。
本实施例中的方法,提供更加灵活的编码矩阵的设计。可以根据实际媒体的应用场景,基于媒体内容进行数据的优先级划分,可以根据实际需求更加灵活的设计FEC编码矩阵,达到不等差错保护的效果。
本实施例中的方法,提供更加灵活的译码方式。根据接收到的各优先级数据的数目,可以采用不同的译码算法,在有限的带宽资源下,可以最大程度的恢复优先级高的数据,提高对对优先级较高的数据的保护强度。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (6)

1.一种基于媒体内容的自适应***码FEC编译码方法,其特征在于,包括:
根据媒体内容的重要程度,将源数据按照优先级划分为N类源数据包;N为大于1的整数;
根据源数据和N类源数据包的优先级,生成N类中间码;
根据所述N类中间码,按照信道状况设定N类源数据的恢复数据,生成N类***码的编码符号;
接收所述编码符号,根据译码需要对所述编码符号进行整理排序,对所述编码符号进行译码处理;
根据接收到的编码符号情况,优先译出优先级高的中间码,并根据该中间码恢复出相应的源数据包。
2.根据权利要求1所述的基于媒体内容的自适应***码FEC编译码方法,其特征在于,所述根据源数据和N类源数据包的优先级,生成N类中间码,包括:
构建N类源数据包对应的编码矩阵,记为Ai,i=1,2,…N;其中:
式中:Ai表示第i类源数据包对应的编码矩阵,G_pi表示第i类源数据包对应的由LDPC矩阵和单位矩阵构成的联合矩阵,G_ENCi表示第i类源数据包对应的LT编码矩阵;
根据N类源数据包对应的编码矩阵构建源数据的编码矩阵A,所述源数据的编码矩阵如下:
式中:C1,C2,…,Ci…,CN分别对应N类源数据包的中间码,D1,D2,…,Di…,DN分别对应N类源数据包的数据,上标-1为逆矩阵运算符;i=1,2,…N。
3.根据权利要求2所述的基于媒体内容的自适应***码FEC编译码方法,其特征在于,所述根据所述N类中间码,按照信道状况设定N类源数据的恢复数据,包括:
式中:R1,R2,…,Ri…,RN分别对应N类源数据包的恢复数据,G_ENC1i表示与G_ENC1具有相同生成规则的LT编码矩阵;G_ENCi1表示与G_ENCi具有相同生成规则的LT编码矩阵;i=1,2,…N。
4.根据权利要求3所述的基于媒体内容的自适应***码FEC编译码方法,其特征在于,当N的值取2时,针对不同重要程度的数据可以产生相应的中间码如下:
改变LT编码矩阵的结构,得到G_ENC11、G_ENC12、G_ENC21,其中G_ENC12与G_ENC1的生成方式相同;G_ENC21与G_ENC2的生成方式相同;G_ENC11表示与G_ENC1具有相同生成方式的LT编码矩阵;G_ENC21表示与G_ENC2具有相同生成方式的LT编码矩阵;G_ENC12表示与G_ENC1具有相同生成方式的LT编码矩阵;
得到的恢复数据R1只与优先级为1的数据有关,而恢复数据R2与优先级1和2的数据均有关,则得到:
5.根据权利要求4所述的基于媒体内容的自适应***码FEC编译码方法,其特征在于,当N的值取2时,所述接收所述编码符号,对所述编码符号进行译码处理,包括:
在第一阶段解码时,根据恢复矩阵W以及接收到的源数据包得到中间码字;具体的:
式中:REV_G_ENC1表示根据接收到的编码符号的丢包情况,去除G_ENC1中丢失包所对应的行后的LT编码矩阵;REV_G_ENC11表示根据接收到的编码符号的丢包情况,去除G_ENC11中丢失包所对应的行后的LT编码矩阵;REV_G_ENC12表示根据接收到的编码符号的丢包情况,去除G_ENC12中丢失包所对应的行后的LT编码矩阵;REV_G_ENC2表示根据接收到的编码符号的丢包情况,去除G_ENC2中丢失包所对应的行后的LT编码矩阵;REV_G_ENC21表示根据接收到的编码符号的丢包情况,去除G_ENC21中丢失包所对应的行后的LT编码矩阵;
并根据接收到的对应优先级下源数据包的数量以及接收到的数据包总数量进行解码;
接收到的编码符号总数小于源数据生成的编码符号的个数,并且 的行数小于列数时;C1、C2均无法解出;
接收到的编码符号总数小于源数据生成的编码符号的个数,且 的行数大于等于列数时;若的行数大于等于列数,则REV_A1可逆,对应的逆矩阵记为REV_A1 -1;则可得:
其中:C2无解;
式中:REV_D1表示接收到的优先级为1的源数据,REV_R1表示接收到的优先级为1源数据的恢复数据;
接收到的编码符号总数大于等于源数据生成的编码符号的个数,且 的行数大于等于列数时;若的行数大于等于列数,则REV_A1可逆,对应的逆矩阵记为REV_A1 -1;若的行数大于等于列数,则REV_A2可逆,对应的逆矩阵记为REV_A2 -1;若REV_A1和REV_A2都可逆,则REV_A可逆,对应的逆矩阵记为REV_A-1,记得到:
的行数小于列数,则REV_A2不存在逆矩阵,只能求出
式中:REV_D2表示接收到的优先级为2的源数据,REV_R2表示接收到的优先级为1和2源数据的恢复数据;
接收到的编码符号总数大于等于源数据生成的编码符号的个数,且 的行数小于列数,的行数大于等于列数时;
使用高斯消元法直接对矩阵REV_A进行求解,即解下列线性方程组:
得到C1、C2
6.根据权利要求3所述的基于媒体内容的自适应***码FEC编译码方法,其特征在于,由于部分数据发生丢失,需要根据接收到的编码符号,生成恢复矩阵,相当于擦除掉丢失的编码符号对应的矩阵行,形成相应的恢复矩阵,记为REV_G_ENC;根据接收的数据包的数目不同,分不同情况生成中间码字;具体的,包括如下步骤:
步骤A1:假设接收到l类优先级的数据包;则得到如下的恢复矩阵方程:
对恢复矩阵方程进行初等行变换,得到:
式中:REV_G_ENC1表示根据接收到的编码符号的丢包情况,去除G_ENC1中丢失包所对应的行后的LT编码矩阵;REV_G_ENC11表示根据接收到的编码符号的丢包情况,去除G_ENC11中丢失包所对应的行后的LT编码矩阵;REV_G_ENC12表示根据接收到的编码符号的丢包情况,去除G_ENC12中丢失包所对应的行后的LT编码矩阵;REV_G_ENC2表示根据接收到的编码符号的丢包情况,去除G_ENC2中丢失包所对应的行后的LT编码矩阵;REV_G_ENC21表示根据接收到的编码符号的丢包情况,去除G_ENC21中丢失包所对应的行后的LT编码矩阵;REV_D1表示接收到的优先级为1的源数据,REV_R1表示接收到的优先级为1源数据的恢复数据;REV_D2表示接收到的优先级为2的源数据,REV_R2表示接收到的优先级为1和2源数据的恢复数据;REV_G_ENC1l表示根据接收到的编码符号的丢包情况,去除G_ENC1l中丢失包所对应的行后的LT编码矩阵,REV_Dl表示表示接收到的优先级为l的源数据,REV_Rl表示接收到的优先级为1到l的源数据的恢复数据,Cl表示生成的第l类中间码;
步骤A2:令
令R(i)为接收到并经扩展后第i级编码符号数,L(i)为编码端每级符号长度,其中:1≤i≤l;
计算每级生成矩阵的秩:
eachRank(i)=min(Len(R(i)),sum(L(1:i)));
式中:eachRank(i)表示优先级为i的数据所对应的子矩阵的秩,其中i=2时所对应的子矩阵为Len(R(i))表示接收到的优先级为i的编码符号数的长度,sum(L(1:i))表示优先级为i的子矩阵的列数,min()表示取最小值运算;
计算累积矩阵的秩:
cumRank(i)=min(cumRank(i-1)+eachRank(i),sum(L(1:i))),
式中:cumRank(i)表示优先级为1到优先级为i所对应的子矩阵秩之和,cumRank(i-1)表示优先级为1到优先级为i-1所对应的子矩阵秩之和;
其中cumRank(1)=eachRank(1);
依次判断cumRank(i)>=sum(L(1:i)):若成立,cumFullRank(i)=1;否则cumFullRank(i)=0;cumFullRank(i)表示优先级为1到优先级为i所对应的子矩阵组成的矩阵满秩;
步骤A3:设置i初始值为l;
步骤A4:根据接收到的每级编码符号数,分情况分别求中间码C1、C2…Cl
若满足cumFullRand(i)==1&&cumFullRank(1:i)>0,使用RFC 6330译码方法解出C1~Ci,其中:&&表示与运算,cumFullRank(1:i)表示从优先级为1到优先级为i各子矩阵所组成的矩阵满秩;C1表示优先级为1的数据所对应的中间码,Ci表示优先级为i的数据所对应的中间码;
得到:
其中:
X1_2=A2 -1B1_2A1 -1
式中:REV_AΔi表示到优先级为i时所有子矩阵组成的满秩矩阵,B1_2表示子矩阵X1_2表示对子矩阵B1_2求逆运算后的子矩阵,Xa_b表示子矩阵Ba_b求逆运算后得到的子矩阵,Ba_b表示子矩阵a的取值范围为1~i,b的取值范围为2~i,Ai -1表示子矩阵的逆矩阵;
其中,REV_Ai -1为REV_Ai的逆矩阵,则得到:
C1=C1_temp
根据数学归纳法,得到:
求得C1、C2…Ci,其中,不能解出Ci+1…Cl
若满足cumFullRand(i)==1,且不满足cumFullRank(1:i)>0,使用高斯消元译码方法解出C1~Ci
通过高斯消元法解线性方程组:
求得C1、C2…Ci,其中,不能解出Ci+1…Cl
对于任一i值,若不满足cumFullRand(i)==1则相应Ci不能解出;直到i==1,也不满足cumFullRank(1:i)>0时,则C1、C2…Cl全部不能解出,译码失败;
步骤A5:令i的值自减1,返回执行步骤A4。
CN201710561850.2A 2017-07-11 2017-07-11 基于媒体内容的自适应***码fec编译码方法 Active CN109245850B (zh)

Priority Applications (9)

Application Number Priority Date Filing Date Title
CN202110441953.1A CN113114427B (zh) 2017-07-11 2017-07-11 基于媒体内容的自适应***码fec编码方法、译码方法
CN201710561850.2A CN109245850B (zh) 2017-07-11 2017-07-11 基于媒体内容的自适应***码fec编译码方法
JP2020500808A JP7408152B2 (ja) 2017-07-11 2018-07-09 メディア内容に基づく自己適応システムコードfec符号化および復号化方法、装置、システムおよび媒体
PCT/CN2018/095051 WO2019011219A1 (zh) 2017-07-11 2018-07-09 基于媒体内容的自适应***码fec编译码方法、装置、***及介质
KR1020207003904A KR102383892B1 (ko) 2017-07-11 2018-07-09 미디어 콘텐츠 기반의 자가 적응 시스템 코드 fec의 코딩 및 디코딩 방법, 장치, 시스템 및 매체
EP18831697.0A EP3654556A4 (en) 2017-07-11 2018-07-09 ADAPTIVE METHOD, DEVICE AND SYSTEM FOR FEC CODING AND DECODING OF SYSTEMATIC CODES AND MEDIUM BASED ON MEDIA CONTENT
CA3069594A CA3069594C (en) 2017-07-11 2018-07-09 Media content-based adaptive method, device and system for fec coding and decoding of systematic code, and medium
US16/740,229 US11438097B2 (en) 2017-07-11 2020-01-10 Media content-based adaptive method, device and system for forward error correction (FEC) coding and decoding of systematic code, and medium
JP2023128800A JP2023157921A (ja) 2017-07-11 2023-08-07 メディア内容に基づく自己適応システムコードfec符号化および復号化方法、装置、システムおよび媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710561850.2A CN109245850B (zh) 2017-07-11 2017-07-11 基于媒体内容的自适应***码fec编译码方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110441953.1A Division CN113114427B (zh) 2017-07-11 2017-07-11 基于媒体内容的自适应***码fec编码方法、译码方法

Publications (2)

Publication Number Publication Date
CN109245850A true CN109245850A (zh) 2019-01-18
CN109245850B CN109245850B (zh) 2021-04-02

Family

ID=65083383

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710561850.2A Active CN109245850B (zh) 2017-07-11 2017-07-11 基于媒体内容的自适应***码fec编译码方法
CN202110441953.1A Active CN113114427B (zh) 2017-07-11 2017-07-11 基于媒体内容的自适应***码fec编码方法、译码方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202110441953.1A Active CN113114427B (zh) 2017-07-11 2017-07-11 基于媒体内容的自适应***码fec编码方法、译码方法

Country Status (1)

Country Link
CN (2) CN109245850B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115085872A (zh) * 2022-03-09 2022-09-20 网易(杭州)网络有限公司 数据处理方法及装置、存储介质、电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007045141A1 (fr) * 2005-10-17 2007-04-26 Huawei Technologies Co., Ltd. Procede de prise en charge de transmission de donnees multimedias avec tolerance aux erreurs
CN102131083A (zh) * 2010-01-18 2011-07-20 西安电子科技大学 可分级视频优先级传输方法及装置
CN103248897A (zh) * 2013-05-15 2013-08-14 哈尔滨工业大学深圳研究生院 一种图像抗差错编码方法
WO2016110275A1 (zh) * 2015-01-08 2016-07-14 上海交通大学 一种基于媒体内容的fec机制
CN106603192A (zh) * 2015-10-16 2017-04-26 上海交通大学 一种基于媒体内容的自适应fec机制

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104320147B (zh) * 2014-10-27 2017-08-08 中国传媒大学 一种***不等差错保护的Raptor码方法
CN106603193B (zh) * 2015-10-16 2019-11-15 上海交通大学 一种基于媒体内容的fec方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007045141A1 (fr) * 2005-10-17 2007-04-26 Huawei Technologies Co., Ltd. Procede de prise en charge de transmission de donnees multimedias avec tolerance aux erreurs
CN102131083A (zh) * 2010-01-18 2011-07-20 西安电子科技大学 可分级视频优先级传输方法及装置
CN103248897A (zh) * 2013-05-15 2013-08-14 哈尔滨工业大学深圳研究生院 一种图像抗差错编码方法
WO2016110275A1 (zh) * 2015-01-08 2016-07-14 上海交通大学 一种基于媒体内容的fec机制
CN106603192A (zh) * 2015-10-16 2017-04-26 上海交通大学 一种基于媒体内容的自适应fec机制

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WEI HUANG, HAO CHEN, YILING XU: "A new AL-FEC coding scheme with limited feedback", 《2016 IEEE 18TH INTERNATIONAL WORKSHOP ON MULTIMEDIA SIGNAL PROCESSING (MMSP)》 *
许军: "基于H.264扩展的可伸缩视频编码及其传输关键技术", 《中国博士学位论文全文数据库》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115085872A (zh) * 2022-03-09 2022-09-20 网易(杭州)网络有限公司 数据处理方法及装置、存储介质、电子设备
CN115085872B (zh) * 2022-03-09 2024-06-04 网易(杭州)网络有限公司 数据处理方法及装置、存储介质、电子设备

Also Published As

Publication number Publication date
CN109245850B (zh) 2021-04-02
CN113114427A (zh) 2021-07-13
CN113114427B (zh) 2023-01-10

Similar Documents

Publication Publication Date Title
KR102133930B1 (ko) 데이터 패킷 송수신 장치 및 방법
KR101161193B1 (ko) 파일 다운로드 및 스트리밍 시스템
JP6628390B2 (ja) 順方向エラー訂正スキームを使用するパケット送受信装置及び方法
US7853856B2 (en) Forming of error correction data
US8065582B2 (en) FEC streaming with aggregation of concurrent streams for FEC computation
CN101359981B (zh) 一种数据包冗余编解码的方法、装置及***
CN101459430B (zh) 低密度生成矩阵码的编码方法及装置
WO2007134196A2 (en) Code generator and decoder using hybrid codes
RU2461970C2 (ru) Способ и устройство для приема данных
US8223643B1 (en) Method for packet-level FEC encoding a stream of source packets using shifted interleaving
CN103716134B (zh) 一次反馈条件下度渐增的喷泉码的编码方法
US20150006991A1 (en) Graceful degradation-forward error correction method and apparatus for performing same
CN103152652A (zh) 一种基于柯西rs编码的视频帧数据网络传输方法
RU2646346C2 (ru) Устройство и способ передачи и приема пакета с прямой коррекцией ошибок
CN104247319A (zh) 用于在通信***中发送/接收分组的装置和方法
KR101967884B1 (ko) 방송 및 통신 시스템에서 패킷 송/수신 장치 및 방법
KR20140045828A (ko) 방송 및 통신 시스템에서 수신 패킷들의 복호 방법 및 장치
CN109245850A (zh) 基于媒体内容的自适应***码fec编译码方法
CN107222294A (zh) 一种改进的喷泉码度分布算法
KR20150046700A (ko) 오류 정정 부호를 사용하는 통신 시스템에서 패킷 송수신 기법
CN108667557A (zh) 一种基于媒体内容的自适应fec编码矩阵设计方法
CN109687934A (zh) 基于媒体内容的自适应***码fec方法、装置及***
CN107005349A (zh) 一种数据处理方法、基站以及终端设备
CN103067130B (zh) 基于联合行列校验码和rs码的丢包恢复技术的无线通信方法
KR20080093923A (ko) 서브 블록별 순차적 업데이트 방식을 이용한 저지연 파운틴코딩 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant