为您推荐:
精华内容
最热下载
问答
  • 5星
    1.05MB wlwdecs_dn 2021-01-20 08:52:45
  • 762KB syp_net 2021-01-09 17:35:56
  • 联合信源信道编码基本框架 腾讯天籁联合信源信道编码的基本框架进行介绍: 系统可以分解为发送端、网络侧、接收端。 发送端将新方案的码流发往上行媒体代理。其中,cFEC提供了信源侧抗性,带外和流控,根据实际的...

    前言

    2020年疫情的突如其来,让数字通信成为了人与人沟通的重要手段;同时也对实时音视频通信(RTC)的稳定性和通讯效果提供了极大考验。由于业务量激增,在保障用户体验方面,RTC业务面临着诸多困难,包括但不限于通话质量、最小化卡顿、端到端延时、带宽成本等。在网络传输过程中,RTC方案,需要面对用户体验、运营成本的双重约束,挑战巨大。本白皮书,将聚焦RTC业务中网络抗性下的体验保障这一命题展开讨论。本文首先对相关技术的特点进行描述。然后,本文重点介绍腾讯天籁推出的音频联合信源信道编码方案。该方案已经在腾讯会议、TRTC等产品推广和部署;在保障用户体验同时,显著降低带宽和延时。

    1.背景介绍     

    图1. 端到端视角下音频通话体验的影响因素

    VoIP是一个复杂的链式系统,以单侧的发送端到接收端通信为例,要经过采集、前处理、编码、传输、解码、增强、回放等多个阶段。每个阶段都会影响最终体验。从端到端到角度,影响通话体验的因素,可以分成信源和信道(链路)两个部分。信源部分,主要干扰因素是声学侧的噪声、回声等物理特征;一般地,通过优化音频信号处理方案(包括结合深度学习技术等)进行质量保证。如果说,信源决定最终体验的上界,信道则决定了体验“打折”后的上界。

    图2. 语音丢包

    RTC业务中,一个重要的挑战就是传输过程中出现丢包;丢包导致接收端解码声音不连续或卡顿,影响体验(图2)。因此,网络抗性提升是RTC业务绕不开的话题。然而,任何一种抗性提升手段,避免不了增加带宽冗余、CPU消耗等。同时,任何一种单一手段,并不能很完美解决上述问题。因此,打造一个好的RTC通话体验,需要联合信源和信道,自顶向下地设计系统。本文将重点讨论如何提升RTC系统中的网络抗性。

    2.相关技术概述

    1)WebRTC        

    图3. WebRTC引擎

    RTC主流商用方案,始于开源。目前的开源体系中,WebRTC使用得最为广泛[1]。WebRTC实现了基于网页的RTC视频会议能力,核心技术包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:Windows,Linux,Mac,Android。相对全面的平台能力,使得RTC公司优选其作为开发平台,搭建自主品牌的SDK。

    因此,相当一部分RTC厂商采用的策略,是完全基于WebRTC,不做底层的改动;针对应用场景,发力于易用性等方面的改进。

    然而,在疫情这一特殊背景下,用户对实时音视频通信的稳定性和通讯效果提出了更高要求。简单地基于开源平台改动,并不能从根本上,将通话体验提升一个档次。因此,具备更多核心能力、底层技术的方案,将在市场上更具竞争力。

    2)嵌入式编码技术(分层编码)

    嵌入式编码,也叫分层编码,通过对信源中不同成份,进行分层处理,以适应网络抗性方面的要求(图4)。原理可以概述为:

    • 通过带通滤波器,将输入的语音信号分离成窄带和宽带部分。

    • 对窄带部分使用更多码率进行压缩,减少失真。如果还有带宽资源,会先花少量码率对高频进行高效率的参数编码,恢复出质量可接受的高频。进一步,如果还有更多带宽资源,对高频做更为精细编码,恢复出高质量的高频。

    • 上述编码的码流,将使用不同优先级传输保障策略,发给接收端。特别地,网络非常差情况下,只发送窄带部分的码流。

    • 如果接收端至少收到低频部分,可恢复出窄带语音,基础质量可以保障。根据收到不同编码精度的高频,输出不同质量水平的宽带语音。

    图4. 嵌入式编码基本架构

    嵌入式编码,在视频编码系统中被普遍采纳;语音编领域,在2000-2010年这个区间,流行过一段时间,比如ITU-T G729.1和G.718 ,以及相关标准的超宽带演进版本[2, 3]。

    然而,嵌入式编码,对于语音业务,存在效率不高的问题。究其原因,语音业务的基础码率偏低,比如20kbps;如果引入嵌入式编码,为了2kbps的分层编码,系统需要做复杂的分层逻辑,在QoE综合质量上不见得是最优策略。因此,2010年之后的主流标准,如IETF OPUS[4],并没有采用嵌入式编码。一般地,即使未采用嵌入编码,相关的编码标准也会采纳多速率编码技术,即支持多种编码码率,用户根据业务特点进行合理配置。

    3)多描述编码技术(MDC)

    多描述编码(MDC)是一种码流分离技术,具体说,就是将一段音频信号,分离成不同子部分(称之为“描述”);每个部分分别组包,并使用不同的传输路径进行传输。接收端如果收到部分的描述,可以恢复出低质量的音频;如果收到全部描述,可以恢复出高质量的音频[5]。

    一个最简单的MDC实施方式是,对一段音频信号进行奇偶抽样;奇数抽样和偶数抽样分别组包传输;接收端即使只收到奇数或者偶数抽样相关的数据包,通过解码和插值,即可恢复出低质量的音频。更为复杂的MDC,包括对奇偶帧进行反复残差分析,确定失真最小的组合变量进行编码和传输。一般地,MDC编码器包含了多个描述的编码器和描述残差关系的编码器,编码器复杂度很高。

    MDC的设计理念,假设了网络状态一定不好。MDC的代价,是牺牲(同等码率)天花板质量。一般地,在理想信道下,需要额外消耗20-30%带宽完成MDC。因此,MDC并不会降低带宽的使用量;并且,MDC主要用于窄带部分,宽带部分还是结合了结合了嵌入式编码、频带扩展等技术,提升带宽利用率;否则,带宽使用量会增加。

    4)RED机制

    RED机制,即IETF RTP Payload for Redundant Audio Data[6]。这个机制提出,跟上文提到的音频码率偏低有关。比如说,每20ms语音帧进行打包操作,包头假设是10kbps、有效载荷是20kbps;这样一种分配,码率浪费严重。因此,RED的建议是,将相邻两个20ms的有效载荷合并成一个数据包。这样,一个数据包中有效载荷比例可达80%。OPUS就沿用了RED机制,甚至将相邻60ms数据合并成一个数据包,共享一个包头。然而,RED机制并没有任何包内抗性;如果没有其它抗性保障,一旦包丢失,影响连续40-60ms数据。

    5)带外FEC       

    图5. 带外FEC示意图

    带外FEC,即在包层进行数据冗余操作的技术[7]。举个例子:如果分组是4,那么在网络传输过程中任意丢掉一个,在接收端任意收到任何顺序的4个属于本分组的数据包,那就可以把丢失的包恢复。具体包括,发送端:将数据包按照参数下发,对数据包进行分组(block),对分组数据加冗余。接收端:收齐分组后即可恢复数据(丢失不超过冗余包数),因为要等分组到齐,存在FEC恢复算法上的延时, FecDelay = Block * 帧长。

    6)ARQ重传

    所谓ARQ重传,即包确定丢失且无法恢复时,通过请求重传,以增加延时的方式,提升网络抗性[8]。音频快速重传ARQ是“选择重传”算法作为基本的请求策略,算法的关键特色在于重传请求与Jitter Buffer的紧密配合上。几个基本准则包括:

    • 请求重传模块记录并缓存所有重传数据包的重传成功所消耗的时间,并将重传延时ArqDelay告知JitterBuffer模块,提高了数据的缓冲等待时长的高可控性。

    • 接收端通过ARQ请求,在数据缓冲队列的数据帧被播放之前,当还未重传成功的数据帧在已经达到播放时间时,接收端通过ACK通知取消请求重传,减少无用请求。

    3.联合信源信道编码架构

    1)方案的设计理念

    如前文所述,针对网络抗性问题,主流的RTC解决方案还是围绕信道侧方法进行;特别地,通过加网络冗余,维护一个高的抗性水平。然而,如果完全依赖信道侧方法,实际应用中又面临其它问题:

    • 如果网络抗性完全来自于带外,带宽成本激增。

    • 重传等操作,带来了包的组合、解析等迭代操作,增加时延。

    因此,腾讯天籁的解决方案优先从信源入手,优化带内FEC。所谓带内FEC,最直观的解释就是在第T个包中除了包头和第T帧以外,还包含第T-1帧的信息。事实上,OPUS已经支持上述带内FEC的功能。经过测算,OPUS带内FEC帧的有效载荷约为普通帧的70-80%;然而,只能提供20%丢包率的抗性;投入产出比偏低。

    综合上述考虑,腾讯天籁提出下列的联合信源信道编码策略:

    • 首先,提升信源侧方法的能力上界。相对于标准带内FEC,新的信源侧FEC,需要更强的单独抗性;比如,支持40%丢包率。

    • 其二,灵活调用带外和带内抗性。以期在抗性稳定性和带宽消耗上有一个更为灵活的折衷。相关的控制参数,依赖于测试平台提供的经验数据,进行迭代升级。

    • 第三,前向兼容性问题,要保证新旧两种协议无互通问题。

    2)方案框架         

    图6. 联合信源信道编码基本框架

    腾讯天籁联合信源信道编码的基本框架进行介绍:

    • 系统可以分解为发送端、网络侧、接收端。

    • 发送端将新方案的码流发往上行媒体代理。其中,cFEC提供了信源侧抗性,带外和流控,根据实际的网络状态,下发具体配置,确保最小带宽和延时成本下的QoE保障。

    • 上行媒体代理处,将新方案对应的协议,转换成标准协议。

    • 下行媒体代理处,将标准协议转换成新方案的协议,并发给接收端。

    • 接收端接收新方案的协议,具备了联合信源信道的能力;以更少的带宽和延时,获得稳定可靠的网络抗性能力。此外,接收端也集成cPLC丢包补偿模块处理突发丢包状态。实时策略,由带外和流控模块控制。在网络有损的情况下,带外FEC或者ARQ重传,最大程度保障数据包可以完整发送到接收端。如果仍然有丢包发生,首先基于cFEC的带内抗性进行质量保障;如果有更多连续数据包丢失,则启动cPLC进行丢包补偿。

    3)核心模块

    a.信源侧FEC(cFEC)

    腾讯天籁的cFEC方案,充分借鉴了语音信号的时间上相关性建模,提升带宽利用率。因此,在带宽有限情况下,大幅度提升抗性。

    图7是cFEC与OPUS原生FEC的效果比较。除了纯净网络外, cFEC相对OPUS原生FEC,可以提升0.1-1.1MOS。特别地,在40%这种比较大丢包率下,采用cFEC技术仍然将MOS分保持在3.0以上。信源侧单独抗性提升,为联合信源信道编码实施提供了足够保障。

    图7. cFEC技术与OPUS原生FEC的抗性能力对比

    我们以40%丢包率为例,展示自研cFEC技术,相对现有技术,在抗性提升方面的能力。每个文件的前一段为OPUS原生技术处理结果,后一段为cFEC处理结果。从主观体验看,cFEC处理后的语音质量和连续性非常显著。

    40%丢包率下,OPUS与cFEC原生技术效果对比(上为女生,下为男生)

    b.自适应带外控制策略

    首先一个概念就是“流控”。我们可以从三种不同维度去描述“流控”。第一,它是一个配置系统,无论双人或多人通话,系统所需要的基础配置参数,做到云端可控。第二,“流控”是把源端到目标端的传输行为,进行动态的能力交换。第三,基于网络拥塞控制(Congestion control),进行自适应控制;这样,就实现了丢包的时候怎样去抗丢包,抖动的时候怎么样去抗抖动,所有流程进行动态控制。拥塞控制,通过实时监控端到端延时的变化量(Jitter),从而判断当前这个网络是否趋于达到网络拥塞的情况,并给出当前一个合理的带宽预测值。基于带宽预测值,系统会动态配置带外FEC和ARQ策略,从而实现自适应带外控制策略。

    c.媒体代理与前向兼容问题的解决

    联合信源信道编码应用挑战,是与线上老版本的协议兼容问题、或者说,新旧客户端之间的互联互通问题。如果不进行全面考量,客户端接收到不兼容的码流,解码错误后会引起杂音等问题。如图6所示,我们通过媒体代理处部署相关的协议转录器,进行各种标准或者非标准协议之间的转换,对特定的客户端,接收或者发送对应的协议数据包。

    d.基于上下文的连续丢包补偿(cPLC)

    丢包补偿技术部署在解码端。它是在带外和带内FEC均失效情况下,根据已经恢复的语音帧,去预测丢失帧。这项技术无需额外带宽,兼容性好。主流PLC只能恢复约20ms的丢失内容,效果十分有限。随着深度学习的发展,工业界和学术界均在尝试引入深度学习,解决连续丢包补偿的问题[9]。这些方案,包括基于谱回归或者生成模型等方式,预测出相关的频谱或者信号。一般地,上述方案可以最多补偿120ms连续丢包数据。但模型大、复杂度高。

    腾讯天籁提出的cPLC方案,通过加大了信号处理在算法建模过程中的权重,提取上下文关系进行参数建模,并调用深度学习网络,重建丢失语音。cPLC方案不仅复杂度低,还有着零延时、部署难度低和兼容性好等优势。

    图8展示了离散丢包和突发丢包场景下,cPLC与OPUS原生PLC的补偿效果。实验结果表明,在所有测试条件下,cPLC在质量上均优于OPUS原生PLC技术。特别地,在突发丢包场景下,cPLC的优势更为明显。

      

    图8. cPLC技术与OPUS原生PLC的能力对比

    4.实验结果

    目前,腾讯天籁联合信源信道编码方案已经在腾讯会议上线。经过测试,可以降低带宽30%;同时,进一步降低延时40-60ms,进一步提升用户体验。

    5.结论

    RTC场景下,抗性提升是决定用户体验的重要因素。本文分析了几种典型的机制,并对每种机制的特点进行了描述。然而,疫情背景下,RTC产品的稳定性和通讯效果面临更多挑战,对新方案的需求更为强烈。腾讯天籁联合信源信道编码方案,通过有效地组合信源和信道侧的抗性策略,保证用户体验的同时,有效降低带宽和延时成本。从效果上看,结合了信源、信道的联合优化策略、结合经典信号处理和深度学习的新技术,将成为未来RTC解决方案中的关注点。

    参考资料

    [1] https://webrtc.org/

    [2] ITU-T G.729.1 : G.729-based embedded variable bit-rate coder: An 8-32 kbit/s scalable wideband coder bitstream interoperable with G.729

    [3] ITU-T G.718 : Frame error robust narrow-band and wideband embedded variable bit-rate coding of speech and audio from 8-32 kbit/s

    [4] https://opus-codec.org/

    [5] V. K. Goyal, "Multiple Description Coding: Compression Meets the Network," IEEE Signal Processing Magazine, vol. 18, no. 5, pp. 74–94, Sept. 2001.

    [6] IETF RFC6354: RTP Payload for Redundant Audio Data.

    [7] J. Bolot, etc. The Case for FEC-based Error Control for Packet Audio in the Internet. 1997.

    [8] H. Seferoglu, etc. Rate Distortion Optimized Joint ARQ-FEC Scheme for Real-Time Wireless Multimedia. In ICC 2005.

    [9] https://ai.googleblog.com/2020/04/improving-audio-quality-in-duo-with.html

    展开全文
    Tencent_TEG 2020-12-20 11:40:35
  • 794KB weixin_38502428 2021-05-25 22:52:27
  • Joint source-channel coding of imagesSimulation of transmission of SPIHT encoded images over unreliable channels. Requires the MATLAB Communications Toolbox. Scripts for measuring the channel error ra...

    Joint source-channel coding of images

    Simulation of transmission of SPIHT encoded images over unreliable channels. Requires the MATLAB Communications Toolbox. Scripts for measuring the channel error rate, RCPC code characteristics and Rate-Distortion (R-D) curve of the SPIHT compression for the input image and selected channel characteristics.

    Functions:

    awgn_EsN0 - Simulation of the Additive White Gaussian Noise (AWGN) channel

    BSC_BER - Simulation of the Binary Symemtric Channel (BSC)

    GE_awgn - Simulation of the Gilbert-Elliot (GE) channel, using two AWGN channels

    get_channel - Loads a predefined channel (saved in a txt file)

    get_RCPC_code - Loads a predefined RCPC code from a default code family ('Punct_codes.txt')

    RCPC_encode - Rate Compatible Punctured Convolutional (RCPC) coding of the binary stream

    RCPC_test_equal_data - Transmission of packets with constant data part, using RCPC

    RCPC_test_equal_packet - Transmission of packets with constant size, using RCPC

    optimal_RCPC_equal - Computes the Equal Error Protection (EEP) scheme for a given image and channel

    send_image_equal - Transmission of SPIHT encoded image using EEP

    send_image_equal_RS - Transmission of SPIHT encoded image using EEP and Reed-Solomon protection

    optimal_RCPC_unequal - Computes the Unequal Error Protection (UEP) scheme for a given image and channel

    send_image_unequal - Transmission of SPIHT encoded image using UEP

    script_channel_performance - Measures the BER and PER values for RCPC transmission on a given channel

    RDcurveBytePrec - Runs SPIHT over range of target bitrates and stores the R-D curve

    The source and some instructions are also on Github (under /JSCCImage):

    https://github.com/nsprljan/ImageCodingResearchTools

    Fork it, send me a pull request with your patches or add issues.

    展开全文
    weixin_33072399 2021-04-22 08:48:24
  • 868KB weixin_38570519 2020-10-16 04:34:10
  • 1、不经过信道编码与译码,图像经过BSC信道传输后的误码率,此处的编码方法为霍夫曼编码。MATLAB仿真程序如下: clear all clc I0=imread('Penguinshead3.jpg'); I1=rgb2gray(I0); subplot(1,3,1),imshow(I0),...

    以一幅灰度图像为例对通信系统的通信过程进行仿真,过程如下图所示:
    图1 通信过程
    1、不经过信道编码与译码,图像经过BSC信道传输后的误码率,此处的编码方法为霍夫曼编码。MATLAB仿真程序如下:

    clear all
    clc
    I0=imread('Penguinshead3.jpg');
    I1=rgb2gray(I0);
    subplot(1,3,1),imshow(I0),title('原图')
    subplot(1,3,2),imshow(I1),title('灰度图')
    [m,n]=size(I1);
    I=reshape(I1,m*n,1);
    P_value=zeros(1,256);
    %---------------------------------------概率;
     for i=0:255
         P_value(i+1)=length(find(I==i))/(m*n);  %各像素值概率
     end
    f=numel(I);                                      %频数
    P_symbol=zeros(m*n,1);
    for i=1:m
        for j=1:n
            P_symbol(i,j)=length(find(I==unique(i)))/f;%各信源符号概率矩阵
        end
    end 
    %--------------------------------霍夫曼编码
    k=0:255;
    dict=huffmandict(k,P_value);           %生成编码字典
    huffmancode=cell(length(I),2);         %元胞数组存放对应编码
    for i=1:m*n
        huffmancode{i,1}=I(i);
    end
    for i=1:length(I)
        for j=1:256
            if huffmancode{i,1}==dict{j,1}
                huffmancode{i,2}=dict{j,2};
            end
        end
    end
    %----------------------------通过BSC信道
    bsc_code=huffmancode;        %通过bsc信道后的编码
    for i=1:length(I)
        bsc_code{i,2}=bsc(huffmancode{i,2},0.001);
    end
    % --------------------------------译码
    bsccode=bsc_code{1,2};
    for i=2:length(I)
        bsccode0=bsc_code{i,2};
        L=length(bsccode0);
        bsccode(end+1:end+L)=bsccode0;       %转换为一串字符
    end
    deco=huffmandeco(bsccode',dict);         %译码
    %----------------------------------------译码后存在错误
    rdeco=zeros(length(I),1);                      %错误处理
    L=length(I)-length(deco);
    if L<=0
        rdeco=deco(1:end-abs(L));                  %截断
    else
        a=ones(abs(L),1);                          %补足   
        rdeco(1:length(deco))=deco;
        rdeco(length(deco)+1:end)=195*a;  
    end
    Ideco=reshape(rdeco,m,n);
    subplot(1,3,3),imshow(uint8(Ideco));title('经BSC信道传输后的图像');
    error=length(find(Ideco~=I1));
    fprintf('误码率:%.4f\n',error/length(I));
    

    传输结果如下图所示:
    图2 无信道译码与编码
    上图表示的是仅经信源编码与译码,新宿的得到的结果。可以看到图像存在失真,此时的误码率为:
    在这里插入图片描述
    2、经过信道译码,此处的信道编码采用汉明码。MATLAB仿真程序如下:

    clear all
    clc
    I0=imread('Penguinshead3.jpg');
    subplot(1,3,1),imshow(I0),title('原图')
    I1=rgb2gray(I0);
    subplot(1,3,2);imshow(I1);title('信源发出的消息');
    [m,n]=size(I1);
    I=I1(:);
    P=zeros(1,256);
    %---------------------------------------概率;
    for i=0:255
        P(i+1)=length(find(I==i))/(m*n);
    end
    %---------------------------------------编码译码
    k=0:255;
    dict=huffmandict(k,P);                    %生成霍夫曼码字典
    enco=huffmanenco(I,dict);                 %霍夫曼码信源编码
    code=encode(enco,15,11);                  %汉明码信道编码
    bsc_code=bsc(code,0.001);                 %通过BSC信道
    rcvcode=decode(bsc_code,15,11);           %汉明码信道译码
    deco=huffmandeco(enco,dict);              %霍夫曼码信源译码
    Ireco=reshape(deco,m,n);
    subplot(1,3,3);imshow(uint8(Ireco));title('信宿接收的消息');
    error=length(find(Ireco~=I1));            %误码数
    fprintf('误码率:%0.4f\n',error/length(I));
    

    经信道传输后的图像如下图所示:
    图3 经过信源信道编码与译码
    此时图像无失真,误码率为:
    在这里插入图片描述
    可以明显看到第二种方式的误码率远远小于第一种方式的误码率,由此可看出在通信过程中进行信道编码与译码的重要性。
    而方式1的误码率高的原因有以下三点:
    (1)传输图像较小,像素值少。图像越小,编码表的码字越少,经信道传输后,越容易出现非编码表码字。(2)对于编码表码字处理的译码译码方式简单,对于译码后的编码像素值采用舍弃译码后末尾的像素值与补足像素值(由于使用的图像右下角的像素值在195左右,因此对与译码后长度不足的像素值序列,补充像素值为195的像素)的方式存在较大的误差。(3)未经过信道编码与译码。
    必须说明的是由于上述第(2)点原因,在BSC信道的转移概率比较大的时候(p>0.1)时,方式1能够运行通过的概率很低,当信道的转移概率很小时,该方式的误码率也会比较小。

    展开全文
    X_s_yu 2019-12-27 23:46:38
  • 130KB weixin_38606811 2021-01-19 21:28:40
  • 920KB weixin_39841856 2019-07-22 22:29:10
  • 3星
    328KB huangfuchun 2011-04-06 16:10:24
  • 813KB weixin_38606169 2021-04-23 19:12:06
  • 715KB dbnjzy 2021-09-18 11:30:36
  • 1.08MB u013883025 2021-08-09 00:07:15
  • 248KB weixin_39841882 2019-08-16 14:03:42
  • 393KB dbnjzy 2021-09-18 11:30:42
  • 481KB m0_52957036 2020-08-20 00:34:19
  • 信源编码和信道编码的发展历程 信源编码:  最原始的信院编码就是莫尔斯电码,另外还有ASCII码和电报码都是信源编码。但现代通信应用中常见的信源编码方式有:Huffman编码、算术编码、L-Z编码,这三种都是无损...

    一.信源编码和信道编码的发展历程

    信源编码:

        最原始的信院编码就是莫尔斯电码,另外还有ASCII码和电报码都是信源编码。但现代通信应用中常见的信源编码方式有:Huffman编码、算术编码、L-Z编码,这三种都是无损编码,另外还有一些有损的编码方式。信源编码的目标就是使信源减少冗余,更加有效、经济地传输,最常见的应用形式就是压缩。

    相对地,信道编码是为了对抗信道中的噪音和衰减,通过增加冗余,如校验码等,来提高抗干扰能力以及纠错能力。

    信道编码:

    1948年Shannon极限理论

    →1950年Hamming码

    →1955年Elias卷积码

    →1960年 BCH码、RS码、PGZ译码算法

    →1962年Gallager LDPC(Low Density Parity Check,低密度奇偶校验)码

    →1965年B-M译码算法

    →1967年RRNS码、Viterbi算法

    →1972年Chase氏译码算法

    →1974年Bahl MAP算法

    →1977年IMaiBCM分组编码调制

    →1978年Wolf 格状分组码

    →1986年Padovani恒包络相位/频率编码调制

    →1987年Ungerboeck TCM格状编码调制、SiMonMTCM多重格状编码调制、WeiL.F.多维星座TCM

    →1989年Hagenauer SOVA算法

    →1990年Koch Max-Lg-MAP算法

    →1993年Berrou Turbo码

    →1994年Pyndiah 乘积码准最佳译码

    →1995年 Robertson Log-MAP算法

    →1996年 Hagenauer TurboBCH码

    →1996MACKay-Neal重新发掘出LDPC码

    →1997年 Nick Turbo Hamming码

    →1998年Tarokh 空-时卷格状码、AlaMouti空-时分组码

    →1999年删除型Turbo码

         虽然经过这些创新努力,已很接近Shannon极限,例如1997年Nickle的TurboHamming码对高斯信道传输时已与Shannon极限仅有0.27dB相差,但人们依然不会满意,因为时延、装备复杂性与可行性都是实际应用的严峻要求,而如果不考虑时延因素及复杂性本来就没有意义,因为50多年前的Shannon理论本身就已预示以接近无限的时延总容易找到一些方法逼近Shannon极限。因此,信道编码和/或编码调制理论与技术在向Shannon极限逼近的创新过程中,其难点是要同时兼顾考虑好编码及交织等处理时延、比特误码率门限要求、系统带宽、码率、编码增益、有效吞吐量、信道特征、抗衰落色散及不同类别干扰能力以及装备复杂性等要求。从而,尽管人们普遍公认Turbo码确是快速逼近Shannon极限的一种有跃变性改进的码类,但其时延、复杂性依然为其最严峻的挑战因素,看来,沿AlaMouti的STB方式是一种看好的折衷方向。同样,实际性能可比Turbo码性能更优良的LDPC码,从1962年Gallager提出, 当时并未为人们充分理解与重视,至1996年为MACKay—Neal重新发现后掀起的另一股推进其研究、应用热潮, 此又为另一明显示例。LDPC码是一类可由非常稀疏的奇偶校验矩阵或二分图(Bi-PartiteGrapg)定义的线性分组前向纠错码,它具有更简单的结构描述与硬件复杂度,可实现完全并行操作,有利高速、大吞吐能力译码,且译码复杂度亦比Turbo码低,并具更优良的基底(Floor)残余误码性能,研究表明,最好的非正则(Irregular)LDPC码,其长度为106时可获得BER=10-6时与Shannon极限仅相差0.13dB;当码长为107、码率为1/2,与Shannon极限仅差0.04dB;与Turbo码结构不同,这是由另一种途径向“Shannon极限条件”的更有效与更逼真的模拟,从而取得比Turbo码更好的性能。因此,“学习、思考、创新、发展”这一永恒主题中持续“创新”最为关键,MIMO-STC及Turbo/LDPC码的发展历程亦充分证实了这一发展哲理。

     

    二.信源编码和信道编码远离的简要介绍

    信源编码:

    一种以提高通信有效性为目的而对信源符号进行的变换;为了减少或消除信源剩余度而进行的信源符号变换。为了减少信源输出符号序列中的剩余度、提高符号的平均信息量,对信源输出的符号序列所施行的变换。具体说,就是针对信源输出符号序列的统计特性来寻找某种方法,把信源输出符号序列变换为最短的码字序列,使后者的各码元所载荷的平均信息量最大,同时又能保证无失真地恢复原来的符号序列。

      数字信号在传输中往往由于各种原因,使得在传送的数据流中产生误码,从而使接收端产生图象跳跃、不连续、出现马赛克等现象。所以通过信道编码这一环节,对数码流进行相应的处理,使系统具有一定的纠错能力和抗干扰能力,可极大地避免码流传送中误码的发生。误码的处理技术有纠错、交织、线性内插等。

      提高数据传输效率,降低误码率是信道编码的任务。信道编码的本质是增加通信的可靠性。但信道编码会使有用的信息数据传输减少,信道编码的过程是在源数据码流中加插一些码元,从而达到在接收端进行判错和纠错的目的,这就是我们常常说的开销。这就好象我们运送一批玻璃杯一样,为了保证运送途中不出现打烂玻璃杯的情况,我们通常都用一些泡沫或海棉等物将玻璃杯包装起来,这种包装使玻璃杯所占的容积变大,原来一部车能装5000各玻璃杯的,包装后就只能装4000个了,显然包装的代价使运送玻璃杯的有效个数减少了。同样,在带宽固定的信道中,总的传送码率也是固定的,由于信道编码增加了数据量,其结果只能是以降低传送有用信息码率为代价了。将有用比特数除以总比特数就等于编码效率了,不同的编码方式,其编码效率有所不同。

        基于层次树的集分割(SPIHT)信源编码方法是基于EZW而改进的算法,它是有效利用了图像小波分解后的多分辨率特性,根据重要性生成比特流的一个渐进式编码。这种编码方法,编码器能够在任意位置终止编码,因此能够精确实现一定目标速率或目标失真度。同样,对于给定的比特流,解码器可以在任意位置停止解码,而仍然能够恢复由截断的比特流编码的图像。而实现这一优越性能并不需要事先的训练和预存表或码本,也不需要任何关于图像源的先验知识。

      数字电视中常用的纠错编码,通常采用两次附加纠错码的前向纠错(FEC)编码。RS编码属于第一个FEC,188字节后附加16字节RS码,构成(204,188)RS码,这也可以称为外编码。第二个附加纠错码的FEC一般采用卷积编码,又称为内编码。外编码和内编码结合一起,称之为级联编码。级联编码后得到的数据流再按规定的调制方式对载频进行调制。  

      前向纠错码(FEC)的码字是具有一定纠错能力的码型,它在接收端解码后,不仅可以发现错误,而且能够判断错误码元所在的位置,并自动纠错。这种纠错码信息不需要储存,不需要反馈,实时性好。所以在广播系统(单向传输系统)都采用这种信道编码方式。以下是纠错码的各种类型:

     

        既然信源编码的基本目的是提高码字序列中码元的平均信息量,那么,一切旨在减少剩余度而对信源输出符号序列所施行的变换或处理,都可以在这种意义下归入信源编码的范畴,例如过滤、预测、域变换和数据压缩等。当然,这些都是广义的信源编码。  

    一般来说,减少信源输出符号序列中的剩余度、提高符号平均信息量的基本途径有两个:①使序列中的各个符号尽可能地互相独立;②使序列中各个符号的出现概率尽可能地相等。前者称为解除相关性,后者称为概率均匀化。

    第三代移动通信中的信源编码包括语音压缩编码、各类图像压缩编码及多媒体数据压缩编码。

     

    信道编码:

        数字信号在传输中往往由于各种原因,使得在传送的数据流中产生误码,从而使接收端产生图象跳跃、不连续、出现马赛克等现象。所以通过信道编码这一环节,对数码流进行相应的处理,使系统具有一定的纠错能力和抗干扰能力,可极大地避免码流传送中误码的发生。误码的处理技术有纠错、交织、线性内插等。

    提高数据传输效率,降低误码率是信道编码的任务。信道编码的本质是增加通信的可靠性。但信道编码会使有用的信息数据传输减少,信道编码的过程是在源数据码流中加插一些码元,从而达到在接收端进行判错和纠错的目的,这就是我们常常说的开销。

    码率兼容截短卷积(RCPC)信道编码,就是一类采用周期性删除比特的方法来获得高码率的卷积码,它具有以下几个特点:

    (1)截短卷积码也可以用生成矩阵表示,它是一种特殊的卷积码;

    (2)截短卷积码的限制长度与原码相同,具有与原码同等级别的纠错能力;                                            (3)截短卷积码具有原码的隐含结构,译码复杂度降低;

       (4)改变比特删除模式,可以实现变码率的编码和译码。

     

    三.信源编码和信道编码的区别

        信源编码信源编码的作用之一是设法减少码元数目和降低码元速率,即通常所说的数据压缩。码元速率将直接影响传输所占的带宽,而传输带宽又直接反映了通信的有效性。作用之二是,当信息源给出的是模拟语音信号时,信源编码器将其转换成数字信号,以实现模拟信号的数字化传输。模拟信号数字化传输的两种方式:脉冲编码调制(PCM)和增量调制(ΔM)。信源译码是信源编码的逆过程。1.脉冲编码调制(PCM)简称脉码调制:一种用一组二进制数字代码来代替连续信号的抽样值,从而实现通信的方式。由于这种通信方式抗干扰能力强,它在光纤通信、数字微波通信、卫星通信中均获得了极为广泛的应用。增量调制(ΔM):将差值编码传输,同样可传输模拟信号所含的信息。此差值又称“增量”,其值可正可负。这种用差值编码进行通信的方式,就称为“增量调制”,缩写为DM或ΔM,主要用于军方通信中。信源编码为了减少信源输出符号序列中的剩余度、提高符号的平均信息量,对信源输出的符号序列所施行的变换。具体说,就是针对信源输出符号序列的统计特性来寻找某种方法,把信源输出符号序列变换为最短的码字序列,使后者的各码元所载荷的平均信息量最大,同时又能保证无失真地恢复原来的符号序列.信道编码的目的:信道编码是为了保证信息传输的可靠性、提高传输质量而设计的一种编码。它是在信息码中增加一定数量的多余码元,使码字具有一定的抗干扰能力。信道编码的实质:信道编码的实质就是在信息码中增加一定数量的多余码元(称为监督码元),使它们满足一定的约束关系,这样由信息码元和监督码元共同组成一个由信道传输的码字。信源编码很好理解,比如你要发送一个图形,必须把这个图像转成0101的编码,这就是信源编码。

        信道编码数字信号在信道传输时,由于噪声、衰落以及人为干扰等,将会引起差错。为了减少差错,信道编码器对传输的信息码元按一定的规则加入保护成分(监督元),组成所谓“抗干扰编码”。接收端的信道译码器按一定规则进行解码,从解码过程中发现错误或纠正错误,从而提高通信系统抗干扰能力,实现可靠通信。信道编码是针对无线信道的干扰太多,把你要传送的数据加上些信息,来纠正信道的干扰。信道编码数字信号在信道传输时,由于噪声、衰落以及人为干扰等,将会引起差错。为了减少差错,信道编码器对传输的信息码元按一定的规则加入保护成分(监督元),组成所谓“抗干扰编码”。接收端的信道译码器按一定规则进行解码,从解码过程中发现错误或纠正错误,从而提高通信系统抗干扰能力,实现可靠通信。

    信源编码信号:例如语音信号(频率范围300-3400Hz)、图象信号(频率范围0-6MHz)……基带信号(基带:信号的频率从零频附近开始)。在发送端把连续消息变换成原始电信号,这种变换由信源来完成。

    信道编码信号:例如二进制信号、2PSK信号……已调信号(也叫带通信号、频带信号)。这种信号有两个基本特征:一是携带信息;二是适应在信道中传输,把基带信号变换成适合在信道中传输的信号完成这样的变换是调制器。

    信源编码是对输入信息进行编码,优化信息和压缩信息并且打成符合标准的数据包。信道编码是在数据中加入验证码,并且把加入验证码的数据进行调制。两者的作用完全不一样的。信源编码是指信号来源的编码,主要是指从那个接口进来的。信道编码是说的信号通道的编码,一般是指机内的电路。总的来说吧:信源编码是对视频, 音频, 数据进行的编码,即对信息进行编码以便处理,而信道编码是指在信息传输的过程中对信息进行的处理。

     

    四.信源编码和信道编码在现代社会的应用

    1.在现代无线通信中的应用:

        通信的任务是由一整套技术设备和传输媒介所构成的总体——通信系统来完成的。电子通信根据信道上传输信号的种类可分为模拟通信和数字通信。最简单的数字通信系统模型由信源、信道和信宿三个基本部分组成。实际的数字通信系统模型要比简单的数字通信系统模型复杂得多。数字通信系统设备多种多样,综合各种数字通信系统,其构成如图所示:

     

     

        信源编码是以提高通信有效性为目的的编码。通常通过压缩信源的冗余度来实现。采用的一般方法是压缩每个信源符号的平均比特数或信源的码率。

    信道,通俗地说是指以传输媒质为基础的信号通路。具体地说,信道是指由有线或无线电线路提供的信号通路。信道的作用是传输信号,它提供一段频带让信号通过,同时又给信号加以限制和损害。

    信道编码是以提高信息传输的可靠性为目的的编码。通常通过增加信源的冗余度来实现。采用的一般方法是增大码率或带宽。与信源编码正好相反。在计算机科学领域,信道编码(channel code)被广泛用作表示编码错误监测和纠正的术语,有时候也可以在通信和存储领域用作表示数字调制方式。信道编码用来在数据传输的时候保护数据,还可以在出现错误的时候来恢复数据。

    2.在超宽带信道中的应用

    超宽带(Ultra Wideband,以下简称UWB) [1][2]系统具有高传输速率、低功耗、低成本等独特优点,是下一代短距离无线通信系统的有力竞争者。它是指具有很高带宽比射频(带宽与中心频率之比)的无线电技术。近年来,超宽带无线通信在图像和视频传输中获得了越来越广泛的应用,它具有极高的传输速率以及很宽的传输频带,可以提供高达1Gbit/s的数据传输速率,可用在数字家庭网络或办公网络中,实现近距离、高速率数据传输。例如,利用UWB技术可以在家用电器设备之间提供高速的音频、视频业务传输,在数字办公环境中,应用UWB技术可以减少线缆布放的麻烦,提供无线高速互联。  

        联合信源信道编码(Joint Source Channel Coding,以下简称JSCC)[3][4]近几年来日益受到通信界的广泛重视,主要原因是多媒体无线通信变得更加重要。根据Shannon信息论原理,通信系统中信源编码和信道编码是分离的[5],然而,该定理假设信源编码是最优的,可以去掉所有冗余,并且假设当比特率低于信道容量时可纠正所有误码。在不限制码长的复杂性和时延的前提下,可以得到这样的系统。而在实际系统中又必须限制码长的复杂性和时延,这必然会导致性能下降,这和香农编码定理的假设是相矛盾的。因此,在许多情况下,采用独立编码技术并不能获得满意的效果,例如有严重噪声的衰落信道和(移动通信信道),采用独立编码技术不能满足要求。因此需要将信源编码和信道编码联合考虑,在实际的信道条件中获得比信源和信道单独进行编码更好的效果。其中不等差错保护是联合信源信道编码的一种, 是相对于同等差错保护而言的。在网络资源有限的情况下,同等差错保护方案使得重要信息得不到足够的保护而使解码质量严重下降。而不等差错保护根据码流的不同部分对图像重建质量的重要性不同, 而采用不同的信道保护机制, 是信源信道联合编码的一个重要应用。

    不等差错保护(Unequal Error Protection,以下简称UEP)的信源编码主要采用嵌入式信源编码,如SPIHT(Set Partitioning In Hierarchical Trees) [6],EZW,JPEG2000等,信源输出码流具有渐进特性,信道编码采用RCPC[7],RCPT等码率可变的信道编码。文章[8]中研究了在AWGN信道下的不等差错保护的性能; 文章[9]中研究了有反馈的移动信道下的多分辨率联合信源信道编码;文章[10]研究了无线信道下的图像传输,信源编码采用SPIHT,信道编码采用多码率Turbo coder的不等差错保护方案;文章[11]中研究了DS-CDMA多径衰落信道下信源编码为分层视频图像编码,信道编码采用RCPC,解决了在信源编码,信道编码以及各个层之间的码率最优分配; 文章[12]研究了3G网络下MPEG-4视频流的传输,信道编码采用 Turbo编码,提出了用TCP传输非常重要的MPEG-4流,而用UDP传输MPEG-4 audio/video ES (Elementary Streams),并且对UDP传输的码流进行UEP的方案;文章[13]研究在无线频率选择性衰落信道中将MIMO-OFDM和adaptive wavelet pretreatment(自适应小波预处理)结合在一起的联合信源信道编码图像传输。据我们的了解, 现在并无文章研究超宽带无线信道下不等差错保护方案,本文将不等差错保护联合信源信道编码应用于超宽带无线通信中, 信源部分采用基于小波SPIHT 的编码方法,而信道部分采用RCPC编码( Rate Compatible Punctured Convolutional codes) 对SPIHT输出码流按重要程度进行不等错误保护,并基于DS-UWB[14]方案提出双重不等差错保护方案, 研究了不等差错保护给图像在超宽带无线通信中的图像传输所带来性能增益。  

    采用标准LENA256×256图像进行仿真实验, 信源编码采用SPIHT算法,SPIHT 编码速率为0.5bpp, 信道编码采用码率自适应截短卷积码RCPC, 对实验图像进行同等差错保护信道编码( EEP) 和不等差错保护信道编码(UEP), 对于EEP编码采用1/ 2 码率;对于UEP 编码,其重要信息(包括头部语法及图像重要数据) 采用1/ 3码率,对图像次重要数据采用1/ 2码率进行编码,对图像非重要数据不进行编码。信道编码输出码流经过一个(Ns,1)重复编码器,对重要信息Ns取30,次重要数据Ns取20,非重要数据Ns取为10,再用一个周期为Np=Ns的伪随机DS码序列对重复编码器输出序列进行编码,最后对编码输出进行PAM调制和脉冲成形从而形成DS-UWB发送信号波形,其中脉冲参数设置为平均发射功率为-30,抽样频率为50e9,平均脉冲重复时间为2e-9,冲激响应持续时间为0.5e-9,脉冲波形形成因子为0.25e-9。DS-UWB信号经过IEEE802.15.3a CM1信道模型,接收端采用Rake接收机对接收信号进行解调,解调后的码流经过RCPC信道译码和SPIHT信源译码恢复出原始图像。

     

               CMI信道模型下Double-UEP与UEP,EEP的性能比较

    图中给出了IEEE802.15.3a CM1信道模型下双重不等差错保护(Double-UEP)与传统不等差错保护(UEP)与同等差错保护(EEP)的性能比较,其中横轴为超宽带信道中的信噪比Eb/N0,纵轴为重建图像的峰值信噪比PSNR(Peek Signal Noise Ratio)。

      由图可见,在UWB信道中,不等差错保护的性能普遍好于同等差错保护的性能,尤其是在低信噪比的时候,采用不等差错保护能够获得更大的性能增益。在高信噪比时,由于此时信道质量较好,误码率较低,图像中的重要码流基本不会产生误码,此时不等差错保护和同等差错保护性能趋于一致;而在低信噪比时,由于不等差错保护方案对图像的重要信息加入了更多的冗余,从而在不增加传输速率的情况下使图像得以更可靠的传输,提升重建图像的质量。

     

    五.信源编码与信道编码的发展前景

    信息论理论的建立,提出了信息、信息熵的概念,接着人们提出了编码定理。编码方法有较大发展,各种界限也不断有人提出,使多用户信息论的理论日趋完整,前向纠错码(FEC)的码字也在不断完善。但现有信息理论中信息对象的层次区分对产生和构成信息存在的基本要素、对象及关系区分不清,适用于复杂信息系统的理论比较少,缺乏核心的“实有信息”概念,不能很好地解释信息的创生和语义歧义问题。只有无记忆单用户信道和多用户信道中的特殊情况的编码定理已有严格的证明,其他信道也有一些结果,但尚不完善。但近几年来,第三代移动通信系统(3G)的热衷探索,促进了各种数字信号处理技术发展,而且Turbo码与其他技术的结合也不断完善信道编码方案。

    移动通信的发展日新月异,从1978年第一代模拟蜂窝通信系统诞生至今,不过20多年的时间,就已经过三代的演变,成为拥有10亿多用户的全球电信业最活跃、最具发展潜力的业务。尤其是近几年来,随着第三代移动通信系统(3G)的渐行渐近,以及各国政府、运营商和制造商等各方面为之而投入的大量人力物力,移动通信又一次地在电信业乃至全社会掀起了滚滚热潮。虽然目前由于全球电信业的低迷以及3G系统自身存在的一些问题尚未完全解决等因素,3G业务的全面推行并不象计划中的顺利,但新一代移动通信网的到来必是大势所趋。因此,人们对新的移动通信技术的研究的热情始终未减。

    移动通信的强大魅力之所在就是它能为人们提供了固话所不及的灵活、机动、高效的通信方式,非常适合信息社会发展的需要。但同时,这也使移动通信系统的研究、开发和实现比有线通信系统更复杂、更困难。实际上,移动无线信道是通信中最恶劣、最难预测的通信信道之一。由于无线电波传输不仅会随着传播距离的增加而造成能量损耗,并且会因为多径效应、多普勒频移和阴影效应等的影响而使信号快速衰落,码间干扰和信号失真严重,从而极大地影响了通信质量。为了解决这些问题,人们不断地研究和寻找多种先进的通信技术以提高移动通信的性能。特别是数字移动通信系统出现后,促进了各种数字信号处理技术如多址技术、调制技术、纠错编码、分集技术、智能天线、软件无线电等的发展。

     

    结论:

    从文中我们可以清楚的认识到信源编码和信道编码的发展布满艰辛,今天的成就来之不易。随着今天移动通信技术的不断发展和创新,信源编码与信道编码的应用也越来越广泛,其逐步的应用于各个领域,在通信系统中扮演着非常重要的角色,起到了至关重要的作用。但是,现有信息理论也存在一定的缺陷,具体表现在以下几个方面:

    1.现有信息理论体系中缺乏核心的 “实有信息”概念。

    2.适用于复杂信息系统的理论比较少。目前的狭义与广义信息论大多是起源和立足于简单系统的信息理论,即用简单通讯信息系统的方法来类比复杂系统的信息现象,将复杂性当成了简单性来处理。而涉及生命现象和人的认识论层次的信息是很复杂的对象,其中信宿主体内信息的语义歧义和信息创生问题是难点,用现有信息理论难以解释。

    3.对产生和构成信息存在的基本要素、对象及关系区分不清。如将对象的直接存在(对象的物质、能量、相互作用、功能等存在)当成信息存在;将信息的载体存在当成信息存在;将信息与载体的统一体当成信息存在;把信宿获得的“实得信息”当成唯一的信息存在,这是主观信息论。或者把信源和信道信息当成唯一的信息存在,称之为客观信息论。这二种极端的信息理论正是忽略了信息在关系中产生、在关系中存在的复杂本质。忽略了信息存在至少涉及三个以上对象及复杂关系。

    4.现有信息理论不能很好地解释信息的创生和语义歧义问题。

    5.现有信息理论对信宿实得信息的理解过于简单,没有将直接实得信息与间接实得信息区别开来。

    6.信息对象的层次区分没有得到重视。不少研究者将本体论层次的信息与认识论层次的信息混为一谈,将普适性信息范畴与具体科学,特别是技术层次(如通信、控制、计算等)的信息概念混为一谈。抓住信息的某一层次或某一方面当成信息对象的总体。

        因此,在科学技术飞速发展的今天,我们应该加强对信源编码与信道编码的了解和认识,这能让在以后的生活和学习过程中不断完善和改进现有信息论存在的缺陷,更好的应用和了解我们的专业知识,更好更快的做好自己的工作,让自己能从各方面得到满意的结果。

    展开全文
    qq_36136497 2018-12-06 15:14:59
  • wordwarwordwar 2018-03-18 23:03:20
  • 3KB beau_lily 2020-06-07 23:38:25
  • devcloud 2021-03-25 10:22:56
  • qq_41277628 2021-04-17 09:47:29
  • 5星
    110KB romankingtao 2009-05-12 22:05:22
  • xi_zhong 2018-11-07 10:25:37
  • 5星
    3.02MB mengyingyidai 2010-07-25 15:24:31
  • weixin_39734987 2020-12-22 07:42:31
  • weixin_39710251 2020-12-22 07:42:34

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,943
精华内容 1,977
关键字:

信源信道编码