CN113114427B - 基于媒体内容的自适应系统码fec编码方法、译码方法 - Google Patents

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

Info

Publication number
CN113114427B
CN113114427B CN202110441953.1A CN202110441953A CN113114427B CN 113114427 B CN113114427 B CN 113114427B CN 202110441953 A CN202110441953 A CN 202110441953A CN 113114427 B CN113114427 B CN 113114427B
Authority
CN
China
Prior art keywords
matrix
priority
source data
code
enc
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
Application number
CN202110441953.1A
Other languages
English (en)
Other versions
CN113114427A (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
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN202110441953.1A priority Critical patent/CN113114427B/zh
Publication of CN113114427A publication Critical patent/CN113114427A/zh
Application granted granted Critical
Publication of CN113114427B publication Critical patent/CN113114427B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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类系统码的编码符号;接收所述编码符号,分情况译出中间码字,并根据该中间码恢复出相应的源数据包,本发明最大限度保证媒体内容质量,减少FEC造成的数据冗余;不需要对源数据流进行分流,降低了发送端FEC编码的复杂度,提高了FEC编码的效率;可以根据当前网络状态的变化动态的调整编码方案,具有更强的适应性。

Description

基于媒体内容的自适应系统码FEC编码方法、译码方法
本申请是母案为201710561850.2,发明创造名称为《基于媒体内容的自适应系统码FEC编译码方法》,申请日期为2017年7月11日的分案申请。
技术领域
本发明涉及多媒体传输技术领域,具体地,涉及基于媒体内容的自适应系统码前向纠错(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;其中:
Figure BDA0003035436700000021
式中:Ai表示第i类源数据包对应的编码矩阵,G_pi表示第i类源数据包对应的由LDPC矩阵和单位矩阵构成的联合矩阵,G_ENCi表示第i类源数据包对应的LT编码矩阵;
根据N类源数据包对应的编码矩阵构建源数据的编码矩阵A,所述源数据的编码矩阵如下:
Figure BDA0003035436700000022
Figure BDA0003035436700000031
Figure BDA0003035436700000032
式中:C1,C2,…,Ci…,CN分别对应N类源数据包的中间码,D1,D2,…,Di…,DN分别对应N类源数据包的数据,上标-1为逆矩阵运算符;i=1,2,…N。
可选地,所述根据所述N类中间码,按照信道状况设定N类源数据的恢复数据,包括:
Figure BDA0003035436700000033
式中:R1,R2,…,Ri…,RN分别对应N类源数据包的恢复数据,G_ENC1i表示与G_ENC1具有相同生成规则的LT编码矩阵;G_ENC2i表示与G_ENC2具有相同生成规则的LT编码矩阵,每列以此类推i=1,2,…N。
可选地,当N的值取2时,针对不同重要程度的数据可以产生相应的中间码如下:
Figure BDA0003035436700000034
改变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的数据均有关,则得到:
Figure BDA0003035436700000041
可选地,当N的值取2时,所述接收所述编码符号,对所述编码符号进行译码处理,包括:
在第一阶段解码时,根据恢复矩阵W以及接收到的源数据包得到中间码字;具体的:
Figure BDA0003035436700000042
Figure BDA0003035436700000043
式中: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编码矩阵;
Figure BDA0003035436700000044
并根据接收到的对应优先级下源数据包的数量以及接收到的数据包总数量进行解码;
接收到的编码符号总数小于源数据生成的编码符号的个数,并且
Figure BDA0003035436700000045
Figure BDA0003035436700000046
的行数小于列数时;C1、C2均无法解出;
接收到的编码符号总数小于源数据生成的编码符号的个数,且
Figure BDA0003035436700000051
Figure BDA0003035436700000052
的行数大于等于列数时;若
Figure BDA0003035436700000053
的行数大于等于列数,则REV_A1可逆,对应的逆矩阵记为REV_A1 -1;则可得:
Figure BDA0003035436700000054
其中:C2无解;
式中:REV_D1表示接收到的优先级为1的源数据,REV_R1表示接收到的优先级为1源数据的恢复数据;
接收到的编码符号总数大于等于源数据生成的编码符号的个数,且
Figure BDA0003035436700000055
Figure BDA0003035436700000056
的行数大于等于列数时;若
Figure BDA0003035436700000057
的行数大于等于列数,则REV_A1可逆,对应的逆矩阵记为REV_A1 -1;若
Figure BDA0003035436700000058
的行数大于等于列数,则REV_A2可逆,对应的逆矩阵记为REV_A2 -1;若REV_A1和REV_A2都可逆,则REV_A可逆,对应的逆矩阵记为REV_A-1,记
Figure BDA0003035436700000059
Figure BDA00030354367000000510
得到:
Figure BDA00030354367000000511
Figure BDA00030354367000000512
的行数小于列数,则REV_A2不存在逆矩阵,只能求出
Figure BDA00030354367000000513
式中:REV_D2表示接收到的优先级为2的源数据,REV_R2表示接收到的优先级为1和2源数据的恢复数据;
接收到的编码符号总数大于等于源数据生成的编码符号的个数,且
Figure BDA00030354367000000514
Figure BDA0003035436700000061
的行数小于列数,
Figure BDA0003035436700000062
的行数大于等于列数时;
使用高斯消元法直接对矩阵REV_A进行求解,即解下列线性方程组:
Figure BDA0003035436700000063
得到C1、C2
可选地,由于部分数据发生丢失,需要根据接收到的编码符号,生成恢复矩阵,相当于擦除掉丢失的编码符号对应的矩阵行,形成相应的恢复矩阵,记为REV_G_ENC;根据接收的数据包的数目不同,分不同情况生成中间码字;具体的,包括如下步骤:
步骤A1:假设接收到l类优先级的数据包;则得到如下的恢复矩阵方程:
Figure BDA0003035436700000064
对恢复矩阵方程进行初等行变换,得到:
Figure BDA0003035436700000065
式中: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_ENG21表示根据接收到的编码符号的丢包情况,去除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:令
Figure BDA0003035436700000071
令R(i)为接收到并经扩展后第i级编码符号数,L(i)为编码端每级符号长度,其中:1≤i≤l;
计算每级生成矩阵的秩:
eachRank(i)=min(Len(R(i)),sum(L(1:i)));
式中:eachRank(i)表示优先级为i的数据所对应的子矩阵的秩,其中i=2时所对应的子矩阵为
Figure BDA0003035436700000072
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
若满足cumFullRank(i)==1&&cumFullRank(1:i-1)>0,使用RFC 6330译码方法解出C1~Ci,其中:&&表示与运算,cumFullRank(1:i)表示从优先级为1到优先级为i各子矩阵所组成的矩阵满秩;C1表示优先级为1的数据所对应的中间码,Ci表示优先级为i的数据所对应的中间码;
Figure BDA0003035436700000081
得到:
Figure BDA0003035436700000082
其中:
Figure BDA0003035436700000083
式中:REV_AΔi表示到优先级为i时所有子矩阵组成的满秩矩阵,B1_2表示子矩阵
Figure BDA0003035436700000084
X1_2表示对子矩阵B1_2求逆运算后的子矩阵,Xa_b表示子矩阵Ba_b求逆运算后得到的子矩阵,Ba_b表示子矩阵
Figure BDA0003035436700000085
a的取值范围为1~i,b的取值范围为2~i,Ai -1表示子矩阵
Figure BDA0003035436700000086
的逆矩阵;
Figure BDA0003035436700000087
其中,
Figure BDA0003035436700000088
REV_Ai -1为REV_Ai的逆矩阵,则得到:
C1=C1_temp
Figure BDA0003035436700000089
Figure BDA0003035436700000091
根据数学归纳法,得到:
Figure BDA0003035436700000092
求得C1、C2…Ci,其中,不能解出Ci+1…Cl
若满足cumFullRank(i)==1,且不满足cumFullRank(1:i-1)>0,使用高斯消元译码方法解出C1~Ci
Figure BDA0003035436700000093
通过高斯消元法解线性方程组:
Figure BDA0003035436700000094
求得C1、C2…Ci,其中,不能解出Ci+1…Cl
对于任一i值,若不满足cumFullRank(i)==1则相应Ci不能解出;直到i==1,也不满足cumFullRank(1:i-1)>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编码矩阵,则编码矩阵可以如下表示。
Figure BDA0003035436700000111
Figure BDA0003035436700000112
在进行FEC编码时,由源数据和图5所示的编码矩阵产生中间码。
Figure BDA0003035436700000113
再根据编码矩阵中的LT矩阵和得到的中间码产生源数据和恢复数据。其中R表示编码后得到的恢复数据,G_ENC′是与G_ENC相同生成方式产生的LT矩阵。
Figure BDA0003035436700000114
采用上述方法对源数据进行编码,不能对源数据进行优先级划分并采用不等差错保护编码,因此需要重新设计编码矩阵A以及LT矩阵G_ENC的矩阵结构。以源数据中具有两种不同优先级的数据为例,设优先级分别为优先级1和2,将源数据中的不同优先级的数据区开,对其分配不同的冗余,已达到不等差错保护的效果。
编码过程:
其编码矩阵结构如图6所示。其编码矩阵如公式(6)所示,其中G_ENC1与G_ENC2是由不同规则产生的编码矩阵,为了保证对重要数据的保护可以提高G_ENC1矩阵的度分布。
Figure BDA0003035436700000115
Figure BDA0003035436700000116
这样,针对不同重要程度的数据可以产生相应的中间码。
Figure BDA0003035436700000121
为了达到对不同重要程度数据的不等差错保护,还需要改变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的数据的保护强度。
Figure BDA0003035436700000122
译码过程:
由于在经过有损信道后,部分数据包发生了丢失,根据接收到的符号ISI,生成恢复矩阵,需要擦除掉丢失符号ISI对应的矩阵行,例如,对于矩阵REV_G_ENC1,根据接收到的REV_D1和发送端的D1可以得到丢失数据的ISI,从而删除G_ENC1相应的行。与编码过程类似,进行第一阶段解码时,根据恢复矩阵以及接收到的数据包得到中间码字。
Figure BDA0003035436700000123
对上面矩阵方程进行初等行变换,得到以下形式:
Figure BDA0003035436700000124
Figure BDA0003035436700000131
根据接收到的各优先级下数据包的数量以及接收到的数据包总数量分多种情况进行解码。
接收到的编码符号总数小于源数据编码符号的个数,并且
Figure BDA0003035436700000132
的行数小于列数;C1、C2均不可求出。
接收到的编码符号总数小于源数据编码符号的个数,但是
Figure BDA0003035436700000133
的行数大于等于列数;
Figure BDA0003035436700000134
的行数大于等于列数,则REV_A1可逆,其逆矩阵记为REV_A1 -1;则可得:
Figure BDA0003035436700000135
但C2不能求出。
接收到的编码符号总数大于源数据编码符号的个数,
Figure BDA0003035436700000136
的行数大于等于列数;
Figure BDA0003035436700000137
的行数大于等于列数,则REV_A1可逆,其逆矩阵记为REV_A1 -1;若
Figure BDA0003035436700000138
的行数大于等于列数,则REV_A2可逆,其逆矩阵记为REV_A2 -1。若REV_A1和REV_A2都可逆,则REV_A可逆,其逆矩阵记为REV_A-1,记
Figure BDA0003035436700000139
易知
Figure BDA0003035436700000141
则可得:
Figure BDA0003035436700000142
但若
Figure BDA0003035436700000143
的行数小于列数,则REV_A2不存在逆矩阵,只能求
Figure BDA0003035436700000144
接收到的编码符号总数大于等于源数据编码符号的个数,
Figure BDA0003035436700000145
的行数小于列数,但
Figure BDA0003035436700000146
的行数大于等于列数;
使用高斯消元法直接对矩阵REV_A进行求解,即解下列线性方程组:
Figure BDA0003035436700000147
易求得C1、C2
由上述解码过程的第一阶段可以得到,任何情况下都首先保证C1的正确解出,由于中间码字C1和C2作为在解码第二阶段中恢复出源数据的重要数据,提高C1的解码成功率可以进一步提高源数据正确恢复的概率。
根据得到的中间码字,生成系统码编码符号
Figure BDA0003035436700000148
若第一阶段没有求出C1、C2,则译码失败,无法译出源符号;若只求出C1,则可以保证优先的源码数据D1可以正确译出;若C1、C2都求出,则利用上式可以得出最终的源码D1和D2
同时,该方案不仅适用于两个优先级的场景,可扩展到多个优先级的源数据上,其具体过程如下。
编码过程:
首先根据源数据以及源数据的优先级,生成中间码。假设源数据划分成l个数据包,得到:
Figure BDA0003035436700000151
由式(16)可得到中间码字C1,C2,…,Cl
Figure BDA0003035436700000152
根据得到的中间码字生成源数据和恢复数据。
Figure BDA0003035436700000153
整个编码流程如图8所示。将源数据和恢复数据由发送端发送给接收端,由于信道的衰减,部分数据可能会发生丢失,接收端接收到数据后,根据接收到的数据情况进行译码恢复出源数据。
译码过程:
由于部分数据发生丢失,需要根据接收到的符号ISI,生成恢复矩阵,相当于擦除掉丢失符号ISI对应的矩阵行,形成相应的矩阵,记为REV_G_ENC。根据接收数据的数目不同,分不同情况生成中间码字。
Figure BDA0003035436700000161
对上面矩阵方程进行初等行变换,得到以下形式:
Figure BDA0003035436700000162
Figure BDA0003035436700000163
设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:
若满足cumFullRank(i)==1&&cumFullRank(1:i-1)>0,使用RFC 6330译码方法解出C(1)~C(i)
Figure BDA0003035436700000171
并且易知
Figure BDA0003035436700000172
其中X1_2=A2 -1B1_2A1 -1
Figure BDA0003035436700000173
Figure BDA0003035436700000174
进而中间码可以通过下式求得:
Figure BDA0003035436700000175
C1=C1_temp
Figure BDA0003035436700000176
Figure BDA0003035436700000177
…(数学归纳法)
Figure BDA0003035436700000178
求得C1、C2…Ci,而其他Ci+1…Cl不能求得。
若满足cumFullRank(i)==1,但不满足cumFullRank(1:i-1)>0,使用高斯消元译码方法解出C(1)~C(i)
Figure BDA0003035436700000181
可以通过高斯消元法解线性方程组:
Figure BDA0003035436700000182
求得C1、C2…Ci,而其他Ci+1…Cl不能求得。
对于某i值,若不满足cumFullRank(i)==1则相应Ci不能解出。直到i==1,上述两个条件都不能满足,则C1、C2…Cl全部不能解出,译码失败。
令i=i-1继续循环,即i=l:-1:1,重复以上过程。
整个译码流程如图9所示。
本实施例中的方法,能够有效地节省资源,如果在接收端,人为的根据情况舍弃已经接收的数据(例如B帧)则造成了传输资源的浪费,上述方案从源端解决问题,让不想要的包在传输过程中更大概率丢掉,而更大程度的保护了重要的包。
本实施例中的方法,提供个性化的传输方案。可以根据信道状况、用户体验等设计不等差错保护的方案,使得视频传输更加灵活、细致。同时,尽管发送端的编码方式灵活,接收端都可以根据列表信息正确的恢复出原始的数据。
本实施例中的方法,提供更加灵活的编码矩阵的设计。可以根据实际媒体的应用场景,基于媒体内容进行数据的优先级划分,可以根据实际需求更加灵活的设计FEC编码矩阵,达到不等差错保护的效果。
本实施例中的方法,提供更加灵活的译码方式。根据接收到的各优先级数据的数目,可以采用不同的译码算法,在有限的带宽资源下,可以最大程度的恢复优先级高的数据,提高对对优先级较高的数据的保护强度。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (8)

1.一种自适应系统码FEC编码方法,其特征在于,包括:
将源数据按照优先级划分为N类源数据包,N为大于1的整数;
根据N类源数据包构建源数据的编码矩阵A:
Figure FDA0003934184840000011
式中:G_pi表示第i类源数据包对应的由LDPC矩阵和单元矩阵构成的联合矩阵,G_ENCi表示第i类源数据包对应的LT编码矩阵;
Figure FDA0003934184840000012
则得到中间码
Figure FDA0003934184840000013
式中:Ai表示第i类源数据包对应的编码矩阵,
Figure FDA0003934184840000014
C1,C2,...,Ci...,CN分别对应N类源数据包的中间码,D1,D2,...,Di...,DN分别对应N类源数据包的数据,上标-1为逆矩阵运算符;i=1,2,...N;
根据N类源数据包的中间码,获得N类源数据的恢复数据,生成N类系统码的编码符号;
其中,所述根据N类源数据包的中间码,获得N类源数据的恢复数据,包括:
Figure FDA0003934184840000021
式中:R1,R2,…,Ri…,RN分别对应N类源数据包的恢复数据,G_ENC1i表示与G_ENC1具有相同生成规则的LT编码矩阵;G_ENC2i表示与G_ENC2具有相同生成规则的LT编码矩阵,每列以此类推,i=1,2,…N。
2.一种自适应系统码FEC译码方法,其特征在于,包括:
接收编码符号,按照译码需要对所述编码符号进行整理排序,对所述编码符号进行译码处理;
根据接收到的编码符号情况,优先译出优先级高的中间码,并根据该中间码恢复出相应的源数据包;
具体包括如下步骤:
接收到l类优先级的数据包,得到如下恢复矩阵方程:
Figure FDA0003934184840000022
对所述恢复矩阵方程进行初等行变换,得到:
Figure FDA0003934184840000023
REV_G_ENC1表示根据丢包情况去除G_ENC1中丢失包所对应的行后的LT编码矩阵;REV_G_ENC11表示根据丢包情况去除G_ENC11中丢失包所对应的行后的LT编码矩阵;以此类推;REV_Dl表示接收到的优先级为l的源数据,REV_Rl表示接收到的优先级为1到l的源数据的恢复数据,Cl表示生成的第l类中间码,G_p1表示第1类源数据包对应的由LDPC矩阵和单元矩阵构成的联合矩阵。
3.根据权利要求2所述的自适应系统码FEC译码方法,其特征在于:
其中,通过判断恢复矩阵REV_A的满秩情况来判断恢复矩阵REV_A是否可逆。
4.根据权利要求3所述的自适应系统码FEC译码方法,其特征在于:
其中,对式中的恢复矩阵REV_A判断是否可逆求解中间码,
恢复矩阵REV_A全部满秩时为可逆;
恢复矩阵REV_A非全部满秩时为不可逆,则排除最低优先级之后再判断是否满秩,假如不可逆再排除次优先级,循环直至全部满秩时为可逆,其中,
Figure FDA0003934184840000031
5.根据权利要求2所述的自适应系统码FEC译码方法,其特征在于:
其中,cumRank(i)表示优先级为1到优先级为i所对应的子矩阵秩之和,cumRank(i-1)表示优先级为1到优先级为i-1所对应的子矩阵秩之和;cumFullRank(i)表示优先级为1到优先级为i所对应的子矩阵组成的矩阵满秩,
设置i初始值为l,区分以下满秩情况求中间码C1、C2...Cl
情况1:若满足cumFullRank(i)==1且cumFullRank(1:i-1)>0,使用RFC6330译码方法求解中间码。
6.根据权利要求2所述的自适应系统码FEC译码方法,其特征在于:
其中,cumRank(i)表示优先级为1到优先级为i所对应的子矩阵秩之和,cumRank(i-1)表示优先级为1到优先级为i-1所对应的子矩阵秩之和;cumFullRank(i)表示优先级为1到优先级为i所对应的子矩阵组成的矩阵满秩,
设置i初始值为l,区分以下满秩情况求中间码C1、C2...Cl
情况2:若满足cumFullRank(i)==1,且不满足cumFullRank(1:i-1)>0,使用高斯消元译码方法求解中间码。
7.根据权利要求2所述的自适应系统码FEC译码方法,其特征在于:
其中,cumRank(i)表示优先级为1到优先级为i所对应的子矩阵秩之和,cumRank(i-1)表示优先级为1到优先级为i-1所对应的子矩阵秩之和;cumFullRank(i)表示优先级为1到优先级为i所对应的子矩阵组成的矩阵满秩,
设置i初始值为l,区分以下满秩情况求中间码C1、C2...Cl
情况3:若不满足cumFullRank(i)==1,令i减1,对cumFullRank(i-1)进行满秩判断,直到满足cumFullRank(i)==1,再利用情况1或情况2来译码求解中间码:
情况1:若满足cumFullRank(i)==1且cumFullRank(1:i-1)>0,使用RFC6330译码方法求解中间码;
情况2:若满足cumFullRank(i)==1,且不满足cumFullRank(1:i-1)>0,使用高斯消元译码方法求解中间码。
8.根据权利要求2所述的自适应系统码FEC译码方法,其特征在于:
根据得到的中间码字,生成系统码编码符号D1、D2...Di,i=1,2,...N,
Figure FDA0003934184840000041
CN202110441953.1A 2017-07-11 2017-07-11 基于媒体内容的自适应系统码fec编码方法、译码方法 Active CN113114427B (zh)

Priority Applications (1)

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

Applications Claiming Priority (2)

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

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
CN113114427A CN113114427A (zh) 2021-07-13
CN113114427B true CN113114427B (zh) 2023-01-10

Family

ID=65083383

Family Applications (2)

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

Family Applications After (1)

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

Country Status (1)

Country Link
CN (2) CN113114427B (zh)

Families Citing this family (1)

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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104320147A (zh) * 2014-10-27 2015-01-28 中国传媒大学 一种系统不等差错保护的Raptor码方法
CN106603192A (zh) * 2015-10-16 2017-04-26 上海交通大学 一种基于媒体内容的自适应fec机制
CN106603193A (zh) * 2015-10-16 2017-04-26 上海交通大学 一种基于媒体内容的fec机制

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100450187C (zh) * 2005-10-17 2009-01-07 华为技术有限公司 支持错误弹性的多媒体数据网络实时传送方法
CN102131083B (zh) * 2010-01-18 2013-08-14 西安电子科技大学 可分级视频优先级传输方法及装置
CN103248897B (zh) * 2013-05-15 2016-08-10 哈尔滨工业大学深圳研究生院 一种图像抗差错编码方法
CA2998900C (en) * 2015-01-08 2022-08-30 Shanghai Jiao Tong University Fec mechanism based on media contents

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104320147A (zh) * 2014-10-27 2015-01-28 中国传媒大学 一种系统不等差错保护的Raptor码方法
CN106603192A (zh) * 2015-10-16 2017-04-26 上海交通大学 一种基于媒体内容的自适应fec机制
CN106603193A (zh) * 2015-10-16 2017-04-26 上海交通大学 一种基于媒体内容的fec机制

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A New AL-FEC Coding Scheme with Limited Feedback;Wei Huang, Hao Chen, Yiling Xu;《 2016 IEEE 18th International Workshop on Multimedia Signal Processing (MMSP)》;20170116;全文 *
FEC在高波动性网络中的应用研究;段涛,孙军;《电视技术》;20140930;全文 *
Optimizing the MPEG Media Transport Forward Error Correction Scheme;Xuguo Tang,Wei Huang, Yiling Xu;《2015 IEEE International Symposium on Broadband Multimedia Systems and Broadcasting》;20150619;全文 *

Also Published As

Publication number Publication date
CN109245850A (zh) 2019-01-18
CN109245850B (zh) 2021-04-02
CN113114427A (zh) 2021-07-13

Similar Documents

Publication Publication Date Title
US8429503B2 (en) Encoding device and decoding device
US8037397B2 (en) Method for recovering a lost data unit
KR102133930B1 (ko) 데이터 패킷 송수신 장치 및 방법
EP1512228B1 (en) Forward error correction method and system for reliable transmission of real time data over a packet based networks
US20200153545A1 (en) Media content-based adaptive method, device and system for forward error correction (fec) coding and decoding of systematic code, and medium
WO1998058468A1 (fr) Systeme de transmission avec multiplexage de donnees d'information, multiplexeur et demultiplexeur utilises a cet effet et codeur et decodeur pour correction d'erreurs
US7349440B1 (en) System and method for broadcasting information over a network
JP6519474B2 (ja) 情報処理装置、情報処理方法及びプログラム
Hussain et al. Adaptive video-aware forward error correction code allocation for reliable video transmission
KR20040071765A (ko) Rs 코드들을 기초로 하여 포워드 에러 정정을 이용하는 비동등 에러 보호
CN108667557B (zh) 一种基于媒体内容的自适应fec编码矩阵设计方法
CN113114427B (zh) 基于媒体内容的自适应系统码fec编码方法、译码方法
JP5497917B2 (ja) 直交多重記述符号化
CN109687934B (zh) 基于媒体内容的自适应系统码fec方法、装置及系统
KR101259659B1 (ko) 중요도에 따라 손실 복원율을 차별화하는 비균일 랩터 코딩방법
KR102181553B1 (ko) 전자장치에서 부호화 및 복호화를 위한 방법 및 장치
Skorokhod The experimental studies of the jpwl tools ability to correct burst errors in a noisy channel when transmitting video in a jpeg 2000 format
Thomos et al. Growth codes: Intermediate performance analysis and application to video
CN115623154A (zh) 校正网络数据丢包的系统和方法
Arai et al. Analysis of using convolutional codes to recover packet losses over burst erasure channels
Varnica et al. Multi-resolution adaptation of the SPIHT algorithm for multiple description
KR20170075127A (ko) 패킷손실 복구처리를 위한 경량화된 채널코딩 방법
Hsiao et al. An analysis modeling of frame-level forward error correction for H. 264/AVC over burst-loss channels
CN112769523A (zh) 一种基于媒体内容的自适应fec方法及系统
JP2008017330A (ja) 映像音声配信装置

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