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

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

Info

Publication number
CN109245850B
CN109245850B CN201710561850.2A CN201710561850A CN109245850B CN 109245850 B CN109245850 B CN 109245850B CN 201710561850 A CN201710561850 A CN 201710561850A CN 109245850 B CN109245850 B CN 109245850B
Authority
CN
China
Prior art keywords
matrix
enc
rev
priority
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.)
Active
Application number
CN201710561850.2A
Other languages
English (en)
Other versions
CN109245850A (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 CN202110441953.1A priority Critical patent/CN113114427B/zh
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201710561850.2A priority patent/CN109245850B/zh
Priority to JP2020500808A priority patent/JP7408152B2/ja
Priority to KR1020207003904A priority patent/KR102383892B1/ko
Priority to EP18831697.0A priority patent/EP3654556A4/en
Priority to PCT/CN2018/095051 priority patent/WO2019011219A1/zh
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

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类源数据的恢复数据,生成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;其中:
Figure BDA0001347316670000021
式中:Ai表示第i类源数据包对应的编码矩阵,G_pi表示第i类源数据包对应的由LDPC矩阵和单位矩阵构成的联合矩阵,G_ENCi表示第i类源数据包对应的LT编码矩阵;
根据N类源数据包对应的编码矩阵构建源数据的编码矩阵A,所述源数据的编码矩阵如下:
Figure BDA0001347316670000022
Figure BDA0001347316670000031
Figure BDA0001347316670000032
式中:C1,C2,…,Ci…,CN分别对应N类源数据包的中间码,D1,D2,…,Di…,DN分别对应N类源数据包的数据,上标-1为逆矩阵运算符;i=1,2,…N。
可选地,所述根据所述N类中间码,按照信道状况设定N类源数据的恢复数据,包括:
Figure BDA0001347316670000033
式中:R1,R2,…,Ri…,RN分别对应N类源数据包的恢复数据,G_ENC1i表示与G_ENC1具有相同生成规则的LT编码矩阵;G_ENCi1表示与G_ENCi具有相同生成规则的LT编码矩阵;i=1,2,…N。
可选地,当N的值取2时,针对不同重要程度的数据可以产生相应的中间码如下:
Figure BDA0001347316670000034
改变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 BDA0001347316670000041
可选地,当N的值取2时,所述接收所述编码符号,对所述编码符号进行译码处理,包括:
在第一阶段解码时,根据恢复矩阵W以及接收到的源数据包得到中间码字;具体的:
Figure BDA0001347316670000042
Figure BDA0001347316670000043
式中: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 BDA0001347316670000044
并根据接收到的对应优先级下源数据包的数量以及接收到的数据包总数量进行解码;
接收到的编码符号总数小于源数据生成的编码符号的个数,并且
Figure BDA0001347316670000045
Figure BDA0001347316670000046
的行数小于列数时;C1、C2均无法解出;
接收到的编码符号总数小于源数据生成的编码符号的个数,且
Figure BDA0001347316670000047
Figure BDA0001347316670000051
的行数大于等于列数时;若
Figure BDA0001347316670000052
的行数大于等于列数,则REV_A1可逆,对应的逆矩阵记为REV_A1 -1;则可得:
Figure BDA0001347316670000053
其中:C2无解;
式中:REV_D1表示接收到的优先级为1的源数据,REV_R1表示接收到的优先级为1源数据的恢复数据;
接收到的编码符号总数大于等于源数据生成的编码符号的个数,且
Figure BDA0001347316670000054
Figure BDA0001347316670000055
的行数大于等于列数时;若
Figure BDA0001347316670000056
的行数大于等于列数,则REV_A1可逆,对应的逆矩阵记为REV_A1 -1;若
Figure BDA0001347316670000057
的行数大于等于列数,则REV_A2可逆,对应的逆矩阵记为REV_A2 -1;若REV_A1和REV_A2都可逆,则REV_A可逆,对应的逆矩阵记为REV_A-1,记
Figure BDA0001347316670000058
Figure BDA0001347316670000059
得到:
Figure BDA00013473166700000510
Figure BDA00013473166700000511
的行数小于列数,则REV_A2不存在逆矩阵,只能求出
Figure BDA00013473166700000512
式中:REV_D2表示接收到的优先级为2的源数据,REV_R2表示接收到的优先级为1和2源数据的恢复数据;
接收到的编码符号总数大于等于源数据生成的编码符号的个数,且
Figure BDA00013473166700000513
Figure BDA00013473166700000514
的行数小于列数,
Figure BDA00013473166700000515
的行数大于等于列数时;
使用高斯消元法直接对矩阵REV_A进行求解,即解下列线性方程组:
Figure BDA0001347316670000061
得到C1、C2
可选地,由于部分数据发生丢失,需要根据接收到的编码符号,生成恢复矩阵,相当于擦除掉丢失的编码符号对应的矩阵行,形成相应的恢复矩阵,记为REV_G_ENC;根据接收的数据包的数目不同,分不同情况生成中间码字;具体的,包括如下步骤:
步骤A1:假设接收到l类优先级的数据包;则得到如下的恢复矩阵方程:
Figure BDA0001347316670000062
对恢复矩阵方程进行初等行变换,得到:
Figure BDA0001347316670000063
式中: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:令
Figure BDA0001347316670000071
令R(i)为接收到并经扩展后第i级编码符号数,L(i)为编码端每级符号长度,其中:1≤i≤l;
计算每级生成矩阵的秩:
eachRank(i)=min(Len(R(i)),sum(L(1:i)));
式中:eachRank(i)表示优先级为i的数据所对应的子矩阵的秩,其中i=2时所对应的子矩阵为
Figure BDA0001347316670000072
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的数据所对应的中间码;
Figure BDA0001347316670000081
得到:
Figure BDA0001347316670000082
其中:
X1_2=A2 -1B1_2A1 -1
Figure BDA0001347316670000083
式中:REV_AΔi表示到优先级为i时所有子矩阵组成的满秩矩阵,B1_2表示子矩阵
Figure BDA0001347316670000084
X1_2表示对子矩阵B1_2求逆运算后的子矩阵,Xa_b表示子矩阵Ba_b求逆运算后得到的子矩阵,Ba_b表示子矩阵
Figure BDA0001347316670000085
a的取值范围为1~i,b的取值范围为2~i,Ai -1表示子矩阵
Figure BDA0001347316670000086
的逆矩阵;
Figure BDA0001347316670000087
其中,
Figure BDA0001347316670000088
REV_Ai -1为REV_Ai的逆矩阵,则得到:
C1=C1_temp
Figure BDA0001347316670000089
Figure BDA00013473166700000810
根据数学归纳法,得到:
Figure BDA0001347316670000091
求得C1、C2…Ci,其中,不能解出Ci+1…Cl
若满足cumFullRand(i)==1,且不满足cumFullRank(1:i)>0,使用高斯消元译码方法解出C1~Ci
Figure BDA0001347316670000092
通过高斯消元法解线性方程组:
Figure BDA0001347316670000093
求得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编码矩阵,则编码矩阵可以如下表示。
Figure BDA0001347316670000111
Figure BDA0001347316670000112
在进行FEC编码时,由源数据和图5所示的编码矩阵产生中间码。
Figure BDA0001347316670000113
再根据编码矩阵中的LT矩阵和得到的中间码产生源数据和恢复数据。其中R表示编码后得到的恢复数据,G_ENC′是与G_ENC相同生成方式产生的LT矩阵。
Figure BDA0001347316670000114
采用上述方法对源数据进行编码,不能对源数据进行优先级划分并采用不等差错保护编码,因此需要重新设计编码矩阵A以及LT矩阵G_ENC的矩阵结构。以源数据中具有两种不同优先级的数据为例,设优先级分别为优先级1和2,将源数据中的不同优先级的数据区开,对其分配不同的冗余,已达到不等差错保护的效果。
编码过程:
其编码矩阵结构如图6所示。其编码矩阵如公式(6)所示,其中G_ENC1与G_ENC2是由不同规则产生的编码矩阵,为了保证对重要数据的保护可以提高G_ENC1矩阵的度分布。
Figure BDA0001347316670000115
Figure BDA0001347316670000116
这样,针对不同重要程度的数据可以产生相应的中间码。
Figure BDA0001347316670000117
为了达到对不同重要程度数据的不等差错保护,还需要改变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 BDA0001347316670000121
译码过程:
由于在经过有损信道后,部分数据包发生了丢失,根据接收到的符号ISI,生成恢复矩阵,需要擦除掉丢失符号ISI对应的矩阵行,例如,对于矩阵REV_G_ENC1,根据接收到的REV_D1和发送端的D1可以得到丢失数据的ISI,从而删除G_ENC1相应的行。与编码过程类似,进行第一阶段解码时,根据恢复矩阵以及接收到的数据包得到中间码字。
Figure BDA0001347316670000122
对上面矩阵方程进行初等行变换,得到以下形式:
Figure BDA0001347316670000123
Figure BDA0001347316670000124
根据接收到的各优先级下数据包的数量以及接收到的数据包总数量分多种情况进行解码。
接收到的编码符号总数小于源数据编码符号的个数,并且
Figure BDA0001347316670000131
的行数小于列数;C1、C2均不可求出。
接收到的编码符号总数小于源数据编码符号的个数,但是
Figure BDA0001347316670000132
的行数大于等于列数;
Figure BDA0001347316670000133
的行数大于等于列数,则REV_A1可逆,其逆矩阵记为REV_A1 -1;则可得:
Figure BDA0001347316670000134
但C2不能求出。
接收到的编码符号总数大于源数据编码符号的个数,
Figure BDA0001347316670000135
的行数大于等于列数;
Figure BDA0001347316670000136
的行数大于等于列数,则REV_A1可逆,其逆矩阵记为REV_A1 -1;若
Figure BDA0001347316670000137
的行数大于等于列数,则REV_A2可逆,其逆矩阵记为REV_A2 -1。若REV_A1和REV_A2都可逆,则REV_A可逆,其逆矩阵记为REV_A-1,记
Figure BDA0001347316670000138
易知
Figure BDA0001347316670000139
则可得:
Figure BDA00013473166700001310
但若
Figure BDA0001347316670000141
的行数小于列数,则REV_A2不存在逆矩阵,只能求出
Figure BDA0001347316670000142
接收到的编码符号总数大于等于源数据编码符号的个数,
Figure BDA0001347316670000143
的行数小于列数,但
Figure BDA0001347316670000144
的行数大于等于列数;
使用高斯消元法直接对矩阵REV_A进行求解,即解下列线性方程组:
Figure BDA0001347316670000145
易求得C1、C2
由上述解码过程的第一阶段可以得到,任何情况下都首先保证C1的正确解出,由于中间码字C1和C2作为在解码第二阶段中恢复出源数据的重要数据,提高C1的解码成功率可以进一步提高源数据正确恢复的概率。
根据得到的中间码字,生成系统码编码符号
Figure BDA0001347316670000146
若第一阶段没有求出C1、C2,则译码失败,无法译出源符号;若只求出C1,则可以保证优先的源码数据D1可以正确译出;若C1、C2都求出,则利用上式可以得出最终的源码D1和D2
同时,该方案不仅适用于两个优先级的场景,可扩展到多个优先级的源数据上,其具体过程如下。
编码过程:
首先根据源数据以及源数据的优先级,生成中间码。假设源数据划分成l个数据包,得到:
Figure BDA0001347316670000151
由式(16)可得到中间码字C1,C2,…,Cl
Figure BDA0001347316670000152
根据得到的中间码字生成源数据和恢复数据。
Figure BDA0001347316670000153
整个编码流程如图8所示。将源数据和恢复数据由发送端发送给接收端,由于信道的衰减,部分数据可能会发生丢失,接收端接收到数据后,根据接收到的数据情况进行译码恢复出源数据。
译码过程:
由于部分数据发生丢失,需要根据接收到的符号ISI,生成恢复矩阵,相当于擦除掉丢失符号ISI对应的矩阵行,形成相应的矩阵,记为REV_G_ENC。根据接收数据的数目不同,分不同情况生成中间码字。
Figure BDA0001347316670000154
对上面矩阵方程进行初等行变换,得到以下形式:
Figure BDA0001347316670000161
Figure BDA0001347316670000162
设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)
Figure BDA0001347316670000163
并且易知
Figure BDA0001347316670000171
其中X1_2=A2 -1B1_2A1 -1
Figure BDA0001347316670000172
Figure BDA0001347316670000173
进而中间码可以通过下式求得:
Figure BDA0001347316670000174
C1=C1_temp
Figure BDA0001347316670000175
Figure BDA0001347316670000176
…(数学归纳法)
Figure BDA0001347316670000177
求得C1、C2…Ci,而其他Ci+1…Cl不能求得。
若满足cumFullRand(i)==1,但不满足cumFullRank(1:i)>0,使用高斯消元译码方法解出C(1)~C(i)
Figure BDA0001347316670000178
可以通过高斯消元法解线性方程组:
Figure BDA0001347316670000181
求得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 (5)

1.一种基于媒体内容的自适应系统码FEC编译码方法,其特征在于,包括:
根据媒体内容的重要程度,将源数据按照优先级划分为N类源数据包;N为大于1的整数;
根据源数据和N类源数据包的优先级,生成N类中间码;
根据所述N类中间码,按照信道状况设定N类源数据的恢复数据,生成N类系统码的编码符号;
接收所述编码符号,根据译码需要对所述编码符号进行整理排序,对所述编码符号进行译码处理;
根据接收到的编码符号情况,优先译出优先级高的中间码,并根据该中间码恢复出相应的源数据包;
所述根据源数据和N类源数据包的优先级,生成N类中间码,包括:
构建N类源数据包对应的编码矩阵,记为Ai,i=1,2,…N;其中:
Figure FDA0002912178780000011
式中:Ai表示第i类源数据包对应的编码矩阵,G_pi表示第i类源数据包对应的由LDPC矩阵和单位矩阵构成的联合矩阵,G_ENCi表示第i类源数据包对应的LT编码矩阵;
根据N类源数据包对应的编码矩阵构建源数据的编码矩阵A,所述源数据的编码矩阵如下:
Figure FDA0002912178780000012
Figure FDA0002912178780000013
Figure FDA0002912178780000021
式中:C1,C2,…,Ci…,CN分别对应N类源数据包的中间码,D1,D2,…,Di…,DN分别对应N类源数据包的数据,上标-1为逆矩阵运算符;i=1,2,…N。
2.根据权利要求根据权利要求1所述的基于媒体内容的自适应系统码FEC编译码方法,其特征在于,所述根据所述N类中间码,按照信道状况设定N类源数据的恢复数据,包括:
Figure FDA0002912178780000022
式中:R1,R2,…,Ri…,RN分别对应N类源数据包的恢复数据,G_ENC1i表示与G_ENC1具有相同生成规则的LT编码矩阵;G_ENCi1表示与G_ENCi具有相同生成规则的LT编码矩阵;i=1,2,…N。
3.根据权利要求2所述的基于媒体内容的自适应系统码FEC编译码方法,其特征在于,当N的值取2时,针对不同重要程度的数据可以产生相应的中间码如下:
Figure FDA0002912178780000023
改变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 FDA0002912178780000031
4.根据权利要求3所述的基于媒体内容的自适应系统码FEC编译码方法,其特征在于,当N的值取2时,所述接收所述编码符号,对所述编码符号进行译码处理,包括:
在第一阶段解码时,根据恢复矩阵W以及接收到的源数据包得到中间码字;具体的:
Figure FDA0002912178780000032
Figure FDA0002912178780000033
式中: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 FDA0002912178780000034
并根据接收到的对应优先级下源数据包的数量以及接收到的数据包总数量进行解码;
接收到的编码符号总数小于源数据生成的编码符号的个数,并且
Figure FDA0002912178780000035
Figure FDA0002912178780000036
的行数小于列数时;C1、C2均无法解出;
接收到的编码符号总数小于源数据生成的编码符号的个数,且
Figure FDA0002912178780000037
Figure FDA0002912178780000041
的行数大于等于列数时;若
Figure FDA0002912178780000042
的行数大于等于列数,则REV_A1可逆,对应的逆矩阵记为REV_A1 -1;则可得:
Figure FDA0002912178780000043
其中:C2无解;
式中:REV_D1表示接收到的优先级为1的源数据,REV_R1表示接收到的优先级为1源数据的恢复数据;
接收到的编码符号总数大于等于源数据生成的编码符号的个数,且
Figure FDA0002912178780000044
Figure FDA0002912178780000045
的行数大于等于列数时;若
Figure FDA0002912178780000046
的行数大于等于列数,则REV_A1可逆,对应的逆矩阵记为REV_A1 -1;若
Figure FDA0002912178780000047
的行数大于等于列数,则REV_A2可逆,对应的逆矩阵记为REV_A2 -1;若REV_A1和REV_A2都可逆,则REV_A可逆,对应的逆矩阵记为REV_A-1,记
Figure FDA0002912178780000048
Figure FDA0002912178780000049
得到:
Figure FDA00029121787800000410
Figure FDA00029121787800000411
的行数小于列数,则REV_A2不存在逆矩阵,只能求出
Figure FDA00029121787800000412
式中:REV_D2表示接收到的优先级为2的源数据,REV_R2表示接收到的优先级为1和2源数据的恢复数据;
接收到的编码符号总数大于等于源数据生成的编码符号的个数,且
Figure FDA00029121787800000413
Figure FDA00029121787800000414
的行数小于列数,
Figure FDA00029121787800000415
的行数大于等于列数时;
使用高斯消元法直接对矩阵REV_A进行求解,即解下列线性方程组:
Figure FDA0002912178780000051
得到C1、C2
5.根据权利要求2所述的基于媒体内容的自适应系统码FEC编译码方法,其特征在于,由于部分数据发生丢失,需要根据接收到的编码符号,生成恢复矩阵,相当于擦除掉丢失的编码符号对应的矩阵行,形成相应的恢复矩阵,记为REV_G_ENC;根据接收的数据包的数目不同,分不同情况生成中间码字;具体的,包括如下步骤:
步骤A1:假设接收到l类优先级的数据包;则得到如下的恢复矩阵方程:
Figure FDA0002912178780000052
对恢复矩阵方程进行初等行变换,得到:
Figure FDA0002912178780000053
式中: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:令
Figure FDA0002912178780000061
令R(i)为接收到并经扩展后第i级编码符号数,L(i)为编码端每级符号长度,其中:1≤i≤l;
计算每级生成矩阵的秩:
eachRank(i)=min(Len(R(i)),sum(L(1:i)));
式中:eachRank(i)表示优先级为i的数据所对应的子矩阵的秩,其中i=2时所对应的子矩阵为
Figure FDA0002912178780000062
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的数据所对应的中间码;
Figure FDA0002912178780000071
得到:
Figure FDA0002912178780000072
其中:
X1_2=A2 -1B1_2A1 -1
Figure FDA0002912178780000073
式中:REV_AΔi表示到优先级为i时所有子矩阵组成的满秩矩阵,B1_2表示子矩阵
Figure FDA0002912178780000074
Xi_2表示对子矩阵B1_2求逆运算后的子矩阵,Xa_b表示子矩阵Ba_b求逆运算后得到的子矩阵,Ba_b表示子矩阵
Figure FDA0002912178780000075
a的取值范围为1~i,b的取值范围为2~i,Ai -1表示子矩阵
Figure FDA0002912178780000076
的逆矩阵;
Figure FDA0002912178780000077
其中,
Figure FDA0002912178780000078
REV_Ai -1为REV_Ai的逆矩阵,则得到:
C1=C1_temp
Figure FDA0002912178780000079
Figure FDA00029121787800000710
根据数学归纳法,得到:
Figure FDA0002912178780000081
求得C1、C2…Ci,其中,不能解出Ci+1…Cl
若满足cumFullRand(i)==1,且不满足cumFullRank(1:i)>0,使用高斯消元译码方法解出C1~Ci
Figure FDA0002912178780000082
通过高斯消元法解线性方程组:
Figure FDA0002912178780000083
求得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
CN201710561850.2A CN109245850B (zh) 2017-07-11 2017-07-11 基于媒体内容的自适应系统码fec编译码方法
CN202110441953.1A CN113114427B (zh) 2017-07-11 2017-07-11 基于媒体内容的自适应系统码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
JP2020500808A JP7408152B2 (ja) 2017-07-11 2018-07-09 メディア内容に基づく自己適応システムコードfec符号化および復号化方法、装置、システムおよび媒体
PCT/CN2018/095051 WO2019011219A1 (zh) 2017-07-11 2018-07-09 基于媒体内容的自适应系统码fec编译码方法、装置、系统及介质
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 CN109245850A (zh) 2019-01-18
CN109245850B true CN109245850B (zh) 2021-04-02

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 Before (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) 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 (4)

* 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
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102131083B (zh) * 2010-01-18 2013-08-14 西安电子科技大学 可分级视频优先级传输方法及装置
CN104320147B (zh) * 2014-10-27 2017-08-08 中国传媒大学 一种系统不等差错保护的Raptor码方法
CN106603193B (zh) * 2015-10-16 2019-11-15 上海交通大学 一种基于媒体内容的fec方法

Patent Citations (4)

* 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
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机制

Also Published As

Publication number Publication date
CN113114427B (zh) 2023-01-10
CN109245850A (zh) 2019-01-18
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) 데이터 패킷 송수신 장치 및 방법
JP3349114B2 (ja) 誤り訂正符号化装置及び復号装置
KR20130057937A (ko) 통신 시스템에서 패킷 송수신 장치 및 방법
US11438097B2 (en) Media content-based adaptive method, device and system for forward error correction (FEC) coding and decoding of systematic code, and medium
Xu et al. Expanding-window BATS code for scalable video multicasting over erasure networks
KR20040071765A (ko) Rs 코드들을 기초로 하여 포워드 에러 정정을 이용하는 비동등 에러 보호
Hussain et al. Adaptive video-aware forward error correction code allocation for reliable video transmission
CN108667557B (zh) 一种基于媒体内容的自适应fec编码矩阵设计方法
Fong et al. Low-latency network-adaptive error control for interactive streaming
CN109245850B (zh) 基于媒体内容的自适应系统码fec编译码方法
JP5497917B2 (ja) 直交多重記述符号化
CN109687934B (zh) 基于媒体内容的自适应系统码fec方法、装置及系统
KR101259659B1 (ko) 중요도에 따라 손실 복원율을 차별화하는 비균일 랩터 코딩방법
US11706456B2 (en) System and method for correcting network loss of data
KR102181553B1 (ko) 전자장치에서 부호화 및 복호화를 위한 방법 및 장치
CN113301387B (zh) 数据编解码方法、相关设备及系统
JPH07245600A (ja) 誤り訂正方式
Shih et al. Small‐block interleaving for low‐delay cross‐packet forward error correction over burst‐loss channels
JP2005236739A (ja) 送信装置、受信装置および映像配信システム
JP3730977B2 (ja) データ伝送方法およびデータ処理方法
KR20170075127A (ko) 패킷손실 복구처리를 위한 경량화된 채널코딩 방법
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