DVB-S 码型研究及信道编码FPGA实现

更新时间:2023-12-17 16:12:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

DVB-S码型研究及信道编码的FPGA

DVB-S 码型研究及信道编码FPGA实现

摘 要

数字电视广播系统,与以往的模拟电业务相比,在节省频谱资源、提高节目质量方面带来了一场新的革命,

DVB(DigitalvidcoBroadcasting)标准的建立更是加速了数字电视广播系统的大规模应用。DVB标准选定MPEG一2标准作为音频及视频的编码压缩方式,随后对MPEG一2码流进行打包形成TS流(transPortstream),进行多路传输流复用,通过不同媒介进行传输。

本文主要工作:

1、 对DVB码型、TS流复用做了深入研究。

2、 对信道编码进行了基于VHDL的FPGA实现,并通过QUARTUSii编译实现。 3、 对电视视频系统相关编码知识进行扩展与展望。

关键词:DVB-S TS FPGA VHDL QUARTUSII

I

DVB-S码型研究及信道编码的FPGA

The Research Of DVB-S Code And The FPGA

Implementation of Channel Code

Abstract

Digital television broadcasting system, and compared to the previous analog business, saving spectrum resources, improve the quality of programs to bring about a new revolution,

DVB (Digital video Broadcasting) standard is to accelerate the establishment of more large-scale application of digital television broadcasting system. DVB standard MPEG-2 standard as the selected audio and video compression encoding, and then on the MPEG-2 TS stream to form a stream package (transPortstream), for multi-transport stream multiplexing, is transmitted through different media.

This paper work

Firstly:on the DVB pattern, TS stream multiplexing done in-depth study, Second: the channel coding based on the realization of VHDL, and compiled by QUARTUSii achieved.

Finally: to extend knowledge of the relevant codes and Prospects on the television video systems.

Key Words: DVB-S TS FPGA VHDL QUARTUSII

II

DVB-S码型研究及信道编码的FPGA

目 录

第一章:DVB简介 ………………………………………………… (1)

1.1、DVB定义 ………………………………………………… (1) 1.2、DVB核心技术 ……………………………………………… (1) 1.3、DVB-S卫星数字电视广播标准 …………………………… 第二章:信源编码简介 …………………………………………… 2.1、信源编码介绍 ………………………………………………… 2.2、图像:预测编码 …………………………………………… 2.3、Ipb帧:帧内编码 …………………………………………… 2.4、变换编码 …………………………………………………… 2.5、其他信源编码标准……………………………………………… 第三章:TS流 …………………………………………………第四章:信道编码 …………………………………………………… 4.1、扰码(M序列) ………………………………………………… 4.2、(204,188)RS码 ……………………………………………… 4.3、卷积交织 ……………………………………………………… 4.4、(2,1,7)卷积码 ………………………………………………… 第五章:拓展与展望…………………………………………………… 第六章:参考文献………………………………………………………… 第七章:谢辞 ……………………………………………………………

III

(2)

(3)

(3) (3) (5) (6) (6)

(8) (12)

(13)

(16) (20) (27)

(31)(33) (34)

DVB-S码型研究及信道编码的FPGA

正文:

第一章 DVB简介

1.1、DVB定义

DVB, 数字视频广播Digital Video Broadcasting的缩写, 是由DVB项目维护的一系列国际承认的数字电视公开标准。 1993年,欧洲成立了国际数字视频广播组织(DVB组织)。建立在MPEG-2压缩算法上的数字技术,必须是以市场为导向的数字技术。DVB的宗旨是要设计一个通用的数字电视系统 。DVB数字广播传输系统利用了包括卫星、有线、 地面、SMATV、MNDSD在内的所有通用电视广播传输媒体。它们分别对应的DVB标准:DVB-S、DVB-C、DVB-T、 DVB-SMATV、DVB-MS和DVB-MC。

(1)从清晰角度来说:数字高清晰度电视(HDTV)和数字标准清晰度电视(SDTV).前者清晰度是现行模拟电视图像的2倍,色域宽,图像宽高比从4:3变为16:9,更加符合人眼视觉特性,高保真多声道环绕立体声。后者图像分辨力为720*576(PAL制式)和720*480(NTSC制),是一种普及型数字电视,成本低。

(2)从输入数字电视信号的途径和方式分:卫星数字电视、有线数字电视、地面数字电视。

1.2、DVB核心技术:

(1)系统采用MPEG-2压缩的音频、视频及资料格式作为资源; (2)系统采用公共MPEG-2传输(TS)复用方式;

(3)系统采用公共的用于描述广播节目的系统服务信息(SI); (4)系统的第1级信道编码采用R-S前向纠错编 码保护;

(5)调制与其他附属的信道编码方式,由不同的传输媒介来确定;使用通用的加扰方法及条件接收接口。

- 1 -

DVB-S码型研究及信道编码的FPGA

1.3、DVB-S :卫星数字电视广播标准

QPSK 工作频率11/12GHZ 调制效率高 MPEG-2的MP@ML格式,用户端达到CCIR601演播室质量的码率为9Mbit/s 可多套节目复用。

DVB-S2:

使用纠错能力更强的低密度奇偶校验码(Low desity parity cheek,LDPC)和BCH码级联实现的纠错编码和速率更高的8PSK、16PSK、32APSK调制,她离理论上的香农极限只差0.7DB比DVB-S标准提高了近50/100。

- 2 -

DVB-S码型研究及信道编码的FPGA

第二章 信源编解码

2.1、信源编码介绍

无论HDTV还是SDTV未压缩的数字电视信号都具有很高的数据速率,不能在1个6MHZ或8MHZ的电视频道射频带宽内传输。

(1)视频压缩编码:各国基本采用MPEG-2标准。

更先进的MPEG-4以及MPEG-4AVC/H.264标准能使一个HDTV带宽由15MBIT/S降低到6-7MBIT/S。

(2)音频压缩编码:美国:5.1声道环绕声压缩DOLBY AC-3;日本:MPEG-2 AAC;欧洲MPEG-1 LAYER1和LAYER2算法。

2.2、图像:预测编码

图像的近邻像素相似性很强,可以通过对应于一个或多个像素的观测,预测他们相邻像素的估计值。根据预测像素选取位置的不同,分为帧间预测和帧内预测。

(1)帧内预设编码

DPCM:Differential Pulse code Modulation,差分脉码调制。这一系统是对实际像素值与其估计值进行量化和编码。 编码器 量化器 预测器 解码器 预测器 (图2.1) - ○+ ○+ ○- 3 -

DVB-S码型研究及信道编码的FPGA

(2)帧间预测

由于视频相邻两帧时间间隔很短,通常变化很少,存在极强的相关性,利用帧间预测可获得更大的压缩比。

X+dX

Y+dX

(图2.2)

<1>、运动补偿预测:对于视频序列的图像,采用帧间预测编码可以减少时间域上的冗余度,提高压缩比。

1、对于静止不动的场景,当前帧的图像内容完全相同时。

2、对于运动物体,只要知道运动规律就可以从前一帧图像推算出他的当前位置 3、摄像头对场景的横向移动、焦距的变化会引起整个图像的平移、放大或缩小。只要摄像机的运动规律和镜头改变参数已知,图像产生的变化也是可以推算出来的。

<2>运动估值:就是对运动物体的位移作出估计。

1.像素递归法: 根据像素亮度的变化和梯度,通过递归修正来轨迹每个像素的运动矢量。

2.块匹配算法(BMA):目前最常用的运动估值算法,先将前帧图像分割成M*M的图像子块,并假设子块内所有的像素都作同样的运动。块大时,可能包括不同图像;块小时,估计精度容易受噪音干扰,不够可靠,且比特率过大。

- 4 -

DVB-S码型研究及信道编码的FPGA

(如MPEG-1 MPEG-2一般采用16*16的块作为匹配单元,这是实践证明较好的折中结果)

A、单向运动补偿预测 B、双向运动补偿预测

C、插值运动补偿预测:由前后参照预测值的平均值。

2.3、I/P/B帧:帧内编码帧

I帧特点:它是一个全帧压缩编码帧。它将全帧图像信息进行JPEG压缩编码及传输; P帧(前向预测编码帧)预测与重构:P帧是以I帧为参考帧,在I帧中找出P帧“某点”的预测值和运动矢量,取预测差值和运动矢量一起传送。在接收端根据运动矢量从I帧中找出P帧“某点”的预测值并与差值相加以得到P帧“某点”样值,从而可得到完整的P帧。

B帧(双向预测内插编码帧)预测与重构B帧以前面的I或P帧和后面的P帧为参考帧,“找出”B帧“某点”的预测值和两个运动矢量,并取预测差值和运动矢量传送。接收端根据运动矢量在两个参考帧 中“找出(算出)”预测值并与差值求和,得到B帧“某点”样值,从而可得到完整的B帧。 以下是他们的结构图

I P B B B P B B B P B B B...、

(图2.3)

I B B P B B P

- 5 -

DVB-S码型研究及信道编码的FPGA

2.4、变换编码

变换编码:不直接对空间域数据进行编码,而是首先将空间域图像数据映射变换到另一个正交空间(变换域)得到一组变换系数,然后量化和编码。

图像是缓慢变化的,相邻像素间存在很强的相关性,绝大多数图像子块中的相邻像素灰度级相等或很接近。

(图2.4)

2.5、其他信源编码标准

音频:MUSICAM AC-3 AVS音频立体声

视频:MPEG-1 MPEG-2 MPEG-4 H.261 H.262 H.263 H.263+ H.263++ H.264

中国数字音视频编解码技术标准工作组(AVS)

帧内预测、帧间预测、环路滤波、变换编码、量化、熵编码等技术模块。 性能高,编码效率师MPEG-2的2倍以上,复杂度低,算法比H.264明显低。

- 6 -

DVB-S码型研究及信道编码的FPGA

是我国具备自主知识产权的第二代信源编码标准。顾名思义,“信源”是信息的“源头”,信源编码技术解决的重点问题是数字音视频海量数据(即初始 数据、信源)的编码压缩问题,故也称数字音视频编解码技术。显而易见,它是其后数字信息传输、存储、播放等环节的前提,因此是数字音视频产业的共性基础标准。经过十年多演变,音视频编码技术本身和产业应用背景都发生了明显变化,后起之秀辈出。目前音视频产业可以选择的信源编码标准有四个:MPEG-2、 MPEG-4、MPEG-4 AVC(简称AVC,也称JVT、H.264)、AVS。从制订者分,前三个标准是由MPEG专家组完成的,第四个是我国自主制定的。从发展阶段分,MPEG-2是第一代信源标准,其余三个为第二代标准。从主要技术指标——编码效率比较:MPEG-4是MPEG-2的1.4倍,AVS和AVC相 当,都是MPEG-2两倍以上。

AVS具备三大特点:

1. 我国牵头制定的、技术先进的第二代信源编码标准——先进;

2. 领导国际潮流的专利池管理方案,完备的标准工作组法律文件——自主; 3. 制定过程开放、国际化——开放。

- 7 -

DVB-S码型研究及信道编码的FPGA

第三章 TS 流

我们在网络上通信都是通过发送或接受数据包来实现的。

I P数据包有首部和数据两部分组成的,首部的前一部分是固定长度20字节,是所有IP数据报必须具有的。首部包括:总长度、标识、MF、DF、片偏移。 “TS流”和“PS流”是经过MPEG-2系统压缩处理后的两种复合信息流。据传输媒体的质量不同,MPEG-2中定义了两种复合信息流:传送流(TS)和节目流(PS)。 在MPEG-2系统中,信息复合/分离的过程称为系统复接/分接,由视频,音频的ES流和辅助数据复接生成的用于实时传输的标准信息流(比如实时广播的电视节目)称为“MPEG-2传送流”(MPEG2-TS)(TS的全称:Transport Stream)。 而“MPEG-2节目流”(MPEG2-PS)主要应用于存储的具有固定时长的节目,如DVD电影(PS的全称:Program Stream)。

TS流与PS流的主要区别在于TS流的包结构是固定长度的,而PS流的包结构是可变长度的。PS包与TS包在结构上的这种差异,导致了它们对传输误码具有不同的抵抗能力,因而应用的环境也有所不同。

TS码流由于采用了固定长度的包结构,当传输误码破坏了某一TS包的同步信息时,接收机可在固定的位置检测它后面包中的同步信息,从而恢复同步,避免了信息丢失。所以,MPEG2-TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。

而PS包由于长度是变化的,一旦某一PS包的同步信息丢失,接收机无法确定下一包的同步位置,就会造成失步,导致严重的信息丢失。因此,在信道环境较为恶劣,传输误码较高时,一般采用TS码流;而在信道环境较好,传输误码较低时,一般采用PS码流。

由于TS码流具有较强的抵抗传输误码的能力,因此目前在传输媒体(如有线电视)中进行传输的MPEG-2码流基本上都采用了TS码流的格式。

- 8 -

DVB-S码型研究及信道编码的FPGA

数据包介绍

在MPEG-2的标准中,定义了一下4种类型的码流:基本流(Elementary Stream, Es)、打包的基本流(Packetized Elementary Stream, PES)、节目流(Program Stream, PS)和传送流(Program Stream,TS)。 ES:包含压缩的音、视频数据及辅助数据。 PES:视频ES和音频ES分别按一定的格式打包。

PS:是由具有公共事件基准的一个或多个视频、音频PES服用而成的单一码流。 TS:是由一个或多个独立事件基准的一路货多路节目的多个视频、音频PES复用而成的单一码流。TS不是由多个PS复用而成,而是由多个PES复用而成,但这些PES可以有一个公共的时间标准,也可以是几个独立的时间基准TS是为易发生无码的传输信道环境和有损存储媒介设计的。 TS包的组成及功能

传送流是由一个或几个不同的PES经传送流打包后组成的复合流。通常将视频和音频的PES包放在传送流(TS包)的净荷上承载。TS包的长度是固定的,总是188B。

TS利用节目特定信息表(Program Spcific Information,PSI)来管理码流中各个PES的关系及其他的一些复用信息。TS的数据结构为固定长度(188B)的包,所以更适合在相对有干扰或无码的环境中传输,比如有线网络、卫星电视或地面广播。

TS包数据包括包头(Header)和净荷(Payload)两部分。

原始的视频和音频经过压缩编码后,首先形成基本流(ES),然后基本流被拆分为许多长度可变的包,形成PES包。每个PES包都包含包头信息和有效净荷数据,其中净荷数据含有视频或音频信息,最后,属于一套或多套节目的视频、音频、附加数据的PES被拆分成固定长度的TS包并按时分的方式复用成传送流进行传送。 为了使解码器能够找到所有的节目,MPEG-2标准的系统部分(即ISO/IEC 13818-1)定义了一组成为节目特定信息(Program Specific Information, PSI)的表,来说明传送流的内容,其作用是自动设置和引导接收机进行解码。

- 9 -

DVB-S码型研究及信道编码的FPGA

视频 音频 视频编码器1 视频ES 打包器 视频PES 节目时钟基准 节目流ES 至无误码媒介 系统时钟1 PS复用器 音频ES 音频PES 数据 音频编码器1 打包器 视频 视频编码器n 视频ES 打包器 视频PES 系统时钟n 节目时间基准 TS复用器 传送流TS 至有误码媒介 音频 音频ES 音频编码器n 打包器 音频PES (图3.1) (图3.1)

PSI生成器 - 10 -

DVB-S码型研究及信道编码的FPGA

扩展:

用 VC++开发环境设计实现了 TS流分析与复用软件系统 TSAM,测试结果表明软件复用速率达到并远远超过了一路传输码流的处理速度,该软件复 用方案是有效可行性的。用软件实现传输流的复用,可以节约硬件成本,降低系统的开发费 用;且算法全部软件实现,可移植性高,具有良好的扩展性,可以方便灵活的加入数字电视 节目指南等辅助信息。

- 11 -

DVB-S码型研究及信道编码的FPGA

第四章 信道编码

(图4.1)

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

信道编解码的主要作用在于对信道的差错控制。其理论基础源自香农第二定理。该定理指出,任何信道都有一定的信道容量C,对任意R

纠错编码的具体做法是:在发送端,信道编码器按照一定的约束关系给被传输的信息序列附加上一些监督码元,这些多余的码元与信息码元构成编码序列一同被发送到信道。在接收端信道译码器按照即定的规则对所接收到的码序列中的监督码元和信息码元间的关系进行检验,一旦传输过程中发生差错,则两者间的关系就会受到破坏,从而可以发现错误,乃至纠正错误。其实质在于利用编码冗余度和对噪声进行均化,为了传输冗余比特就得动用时间、频带、功率以及设备复杂度等冗余资源,而噪声均化的方法主要是加大码长、卷积和交织三种。但同时也增加了设备的复杂度,编码学家一直在寻求一种信道编码结构,它的性能接近香农限,同时它的编译码复杂度又能够被人们接受。数字电视中常用的纠错编码,通常采用两次附加纠错码的前向纠错(FEC)编码。RS编码属于第一个FEC,188字节后附加16字节

- 12 -

DVB-S码型研究及信道编码的FPGA

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

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

4.1、扰码(M序列)

进行基带信号传输的缺点是其频谱会因数据出现连“1”和连“0”而包含大低频成分,不适应信道的传输特性,也不利于从中提取出时钟信息。解决办法之一是采用扰码技术,使信号受到随机化处理,变为伪随机序列,又称为“数据随机化”和“能量扩散”处理。扰码不但能改善位定时的恢复质量,还可以使信号频谱平滑,使帧同步和自适应同步和自适应时域均衡等系统的性能得到改善。

扰码虽然“扰乱”了原有数据的本来规律,但因为是人为的“扰乱”,在接收端很容易去加扰,恢复成原数据流。实现加扰和解码,需要产生伪随机二进制序列(PRBS)再与输入数据逐个比特作运算。PRBS也称为m序列,这种m序列与TS的数据码流进行模2加运算后,数据流中的“1”和“0”的连续游程都很短,且出现的概率基本相同。

原理:在经信道编码(按MPEG一2标准)和传输流复用之后,传输流将以固定数据长度组织成数据帧结构。DVB标准的传输流复用帧的总长度为188字节,其中包括同步字节47H(01000111)。发送端的处理总是从同步字节(47H)的最高位(MSB)开始。每8个数据帧为一帧群的起始点,第一个数据帧的同步字节每个比特翻转,即由47H变为BSH,而第2至第8个数据帧的同步字节不变。这样,在接收端只要检测到翻转的同步字节,就说明一个新帧群开始。扰码发生器将第一个数据帧的同步字节翻转,之后的字节进行加扰处理。

- 13 -

DVB-S码型研究及信道编码的FPGA

(图4.2) 上图中,PN码发生器的寄存器初始值为:100101010000000。MPEG2数据流中,每8 个数据帧组成一个数据组。PN码发生器的寄存器在传输每一个数据组的开始时初始化一次,为了提供该初始化信号,每一组数据中的第一个MPEG2数据帧的同步字节按比特反转,即47H反转为B8H。而MPEG2数据流中所有同步字节不参与扰码。

数据

扰码编码示意图 15bit寄存器

位运算 寄存器右移

扰码码型 字节异或

(图4.3)

数据输出 注:1、PN码发生器的寄存器初始值置为:100101010000000。

2、PN码发生器在传输每一个数据组(8个数据帧)时初始化一次。 3、每一组数据中的第一个MPEG2数据帧的同步字节按比特反转。 4、MPEG2数据流中所有同步字节不参与扰码。

- 14 -

DVB-S码型研究及信道编码的FPGA

VHDL程序及 quartus ii 编译图

*(本文以下程序未设计比特反转)。

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity interl is port (

a : in std_logic_vector(7 downto 0); b : out std_logic_vector(7 downto 0); clk : in std_logic); end entity;

architecture one of interl is

signal seq : bit_vector(14 downto 0):=\signal sel : bit_vector(14 downto 0):=\signal me : bit_vector(7 downto 0):=\signal te : bit_vector(7 downto 0):=\

begin

process (clk) begin

IF(clk'event and clk='1') then for i in 7 downto 0 loop

te(i)<= seq(14) xor seq(13); sel<=seq srl 1; sel(0)<=te(i);

end loop; me<=te; seq<=sel;

b<=to_stdlogicvector(me) xor a; end if;

END PROCESS; END ONE;

- 15 -

DVB-S码型研究及信道编码的FPGA

(图4.4)

4.2、(204,188)RS码

数字信号在传输过程中可能受到各种干扰及信道传输特性不理想的影响使信号发生错误,从而接收到错误的信息。为了实现数字系统在传输过程可靠性,几乎所有的现代通信系统都把纠错编码作为一个基本组成部分。

(RS)码是目前最有效、应用最广的差错控制编码之一,是一类有很强纠错能力的多进制BCH码,它既可以纠正突发错误,也可以纠正随机误。RS码是性能很优越的分组码,尤其是具有很强的抗突发误码的能力,此被广泛应用于实时性较高的移动通信系统、深空通信、数字卫星电视、磁录系统等方面。在RS(n,k)码中,输入的信息分成kxm比特一组,每组包括k个符号,每个号由m比特组成。RS(n,k)码的纠错能力为怜(n一k)/2,最小码距为d=2t+l。在所的(n,k)线性分组码中,Rs码的最小码矩是最大的,所以Rs码的纠错能力是强的。在接收端收到码流后,如果在一个包内发生的误码不大于t个字节,则可以在接收端重建原始的信息内容在一个字节中,有一位或多位比特发生错误都算一个字节错误。因此RS编码特别

- 16 -

DVB-S码型研究及信道编码的FPGA

适用于存在突发错误的信道。DVB系统信道编码中RS码为(204,188,t=8),其中t是可抗长度字节数,对应的188符号,监督段为16字节(开销字节段)。实际中实施(255,239,t=8)的RS编码,即在204字节(包括同步字节)前添加51个全“0’’字节,产生RS码后丢弃

前面51个空字节,形成截短的(204,188)RS码。RS的编码效率是:188/204 包含有限个元素的“域”被称为“有限域”或叫作伽罗华域,记为GF(q)。若在有限域GF(q)中,某一元素a的n次幂为q一1,则称a为本原元素。本原元素的各次幂构成有限域GF(q)的所有元素,每个有限域都有其本原元素,系数取自GF(q)上的,以GF(q)中的本原元素为根的最小多项式p(x)称为本原多项式。(n,k)分组码中,任何两个码字之间距离的最小值,称为该分组码的最小汉明距离。是衡量码抗干扰能力的重要参数,最小汉明距离越大,码的抗干扰能力越强。(n,k)线性分组码能够纠正t个错误的充要条件是码最小距离Dmin。RS(Reed一Solomon)码在伽罗华域(GF,GaloisField)中运算,其表示形式为RS(n,k)。当编码器接收到一个数据信息序列,该数据信息序列被分割k的信息块,并通过运算将每个数据信息块编码成长度为n的编。在RS码中的码元符号不是二进制而是多进制符号,其中2的m次幂加进制使用更为广泛。

(图4.5)

- 17 -

DVB-S码型研究及信道编码的FPGA

g0,g1,,?,gl5,是生成多项式g(X)的16个系数,则有系数

g0=59=00111011,利用线性反馈移位寄存器来实现有限域多项式的除法运算。 RS(204,188)编码器的逻辑电路。

RS编码和BCH码的相同点与不同点:

Bch码是一种纠随机错误较好的码型且目前成果很多,而RS码和BCH码基本相似,只是由以前BIT位的运算变成加洛华域的字节运算,这样大大增强了纠突发错误能力。 数据输入

控制CP为1 RS码

前180字节数据输16个字节寄存

伽罗华域运算 后16字节输出

(图4.6)

数据输出 - 18 -

DVB-S码型研究及信道编码的FPGA

VHDL程序及 quartus ii 编译图

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;

PACKAGE JIAO_PKG IS

TYPE SHUZU IS ARRAY(16 DOWNTO 1) OF STD_LOGIC_VECTOR(7 DOWNTO 0); END JIAO_PKG;

USE WORK.JIAO_PKG.ALL;

ENTITY RS IS PORT

( A: IN STD_LOGIC_VECTOR(7 DOWNTO 0); B: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); CLK: IN STD_LOGIC; CP: IN STD_LOGIC );

END ENTITY;

ARCHITECTURE FOur OF RS IS

SIGNAL PI: STD_LOGIC_VECTOR(8 DOWNTO 0):=\signal r :shuzu; signal x :integer;

signal y: std_logic_vector(8 downto 0);

SIGNAL P: STD_LOGIC_VECTOR(7 DOWNTO 0):=\signal g:shuzu;

signal g(16):=\signal g(15):=\signal g(14):=\signal g(13):=\signal g(12):=\signal g(11):=\signal g(10):=\signal g(9):=\signal g(8):=\signal g(7):=\signal g(6):=\signal g(5):=\signal g(4):=\signal g(3):=\signal g(2):=\signal g(1):=\

signal g0: STD_LOGIC_VECTOR(7 DOWNTO 0) :=\BEGIN

process (cp) BEGIN

if (cp='0') then

for i in 1 to 188 loop

if (clk'event and clk='1') then

- 19 -

DVB-S码型研究及信道编码的FPGA

p<=a;

for j in 15 downto 1 loop

x<=conv_integer(a) * conv_integer(g(j)) mod conv_integer(pi); y<=conv_std_logic_vector(x); r(j)<=y xor r(j-1); end loop;

x<=conv_integer(a) * conv_integer(g0) mod conv_integer(pi); r(0)<=conv_std_logic_vector(x);

end if; b<=p;

end loop;

elsif (co='1') then

for k in 15 downto 0 loop b<=r(k); end loop;

end if;

end process; end four;

注:由于论文时间紧迫,没有时间完成伽罗华域乘法运算器件,仅转换成实数域进行计算。

4、3、卷积交织

纠错编码在实际应用中往往要结合数据交织技术。因为许多信道差错是突发的,即发生错误时,往往是有很强的相关性,甚至是连续一片数据都出了错。这是由于错误集中在一起,常常超出了纠错码的纠错能力。加入交织是为了加强编码的随机错误纠错能力,它在存在突发错误的环境下是非常有效的。所以在发送端加上数据交织器,在接收端加上解交织器,使得信道的突发差错分散开来,把突发差错信道变成独立随即差错信道,这样可以充分发挥纠错码的作用。

交织过程可算作一个编码过程,他把经过纠错编码的数据进行一定的排列组合,提高原有纠错编码的纠突发错误的能力。数字通信中一般采取的同步交织有2种:(1)块交织 也叫矩阵行列转置法。可以表述为一个二维存储器阵列(N×B)。交织过程是数据先按行写入,再按列读出;解交织过程是数据先按列写入,再按行读出。块交织结构简单但数据延时时间长而且所需的存储器比较大。这种方法将能纠

- 20 -

DVB-S码型研究及信道编码的FPGA

正T个随机错误的码作为行码,I行组成一个矩阵,这样可以纠正T个突发长度为I的错误。(2)卷积交织 是基于Forney的方法。交织器的输入端的输入符号数据按顺序分别进入B条支路延时器,每一路延时不同的符号周期。第一路无延时,第二路延时M个符号周期,第三路延时2M个符号周期,?,第B路延时(B-1)M个符号周期。交织器的输出端按输入端的工作节拍分别同步输出对应支路经延时的数据。卷积交织每条支路符号数据的延时节拍为di= (i- 1)MB,i= 1,2,?,B。解交织器的延时数与交织器相反。

本文采用DVB-S B= 12,M= 17的卷积交织器。输入是RS(204,188,T= 8)误码保护包。交织器有12条支路,也即交织深度为12。

(图4.7)

(注:卷积交织的实现方法很多,有单口RAM,双口RAM等等,但均需很多控制端口,性能较好但相对编程复杂,一下方法为个人以原理图编译的程序,控制端口较少,RAM共用1134个字单元存储器相对理想的1122个仅差12个,但由于控制端口少,实际中易出现问题,但用于学习是不错选择)

本文方法:由上图可以看出:本程序需要12路,第一个支路需1个字节存储器,第二个支路需17+1个,以此类推,第i路共需i*17+1个存储器。存储器向右依次一个字节循环,而后导出,经一个12选一多路器送给输出端口。

- 21 -

DVB-S码型研究及信道编码的FPGA

1字节寄存器(功能延迟) 17+1字节寄存器(功能延 17*2+1字节寄存器(功能延 . 17*3+1字节寄存器(功能延 . 12. 17*4+1字节寄存器(功能延 选. 一. 17*5+1字节寄存器(功能延数据输多. 出 路数据输. 器 17*6+1字节寄存器(功能延. . . 17*7+1字节寄存器(功能延 . . 17*8+1字节寄存器(功能延 17)9+1字节寄存器(功能延 17*10+1字节寄存器(功能 17*11+1字节寄存器(功能 (图4.8)

VHDL程序及 quartus ii 编译图

library ieee;

use ieee.std_logic_arith.all; use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity jiao is port

( datain :in bit_vector(7 downto 0); dout1:out bit_vector(7 downto 0); dout2:out bit_vector(7 downto 0); dout3:out bit_vector(7 downto 0); dout4:out bit_vector(7 downto 0); dout5:out bit_vector(7 downto 0);

- 22 -

DVB-S码型研究及信道编码的FPGA

dout6:out bit_vector(7 downto 0); dout7:out bit_vector(7 downto 0); dout8:out bit_vector(7 downto 0); dout9:out bit_vector(7 downto 0); dout10:out bit_vector(7 downto 0); dout11:out bit_vector(7 downto 0); dout12:out bit_vector(7 downto 0); clk: in std_logic );

END ENTITY;

architecture two of jiao is signal a: integer;

signal count :integer range 1 to 12 :=1; signal mem1 :bit_vector(7 downto 0); signal mem2 :bit_vector(143 downto 0); signal mem3 :bit_vector(279 downto 0); signal mem4 :bit_vector(415 downto 0); signal mem5 :bit_vector(551 downto 0); signal mem6 :bit_vector(687 downto 0); signal mem7 :bit_vector(823 downto 0); signal mem8 :bit_vector(959 downto 0); signal mem9 :bit_vector(1095 downto 0); signal mem10 :bit_vector(1231 downto 0); signal mem11 :bit_vector(1367 downto 0); signal mem12 :bit_vector(1503 downto 0); begin

process(clk) begin

if(clk'event and clk='1') then if(count=1) then mem1<=datain;

elsif(count=2) then

mem2(7 downto 0)<=datain; elsif(count=3) then

mem3(7 downto 0)<=datain; elsif(count=4) then

mem4(7 downto 0)<=datain; elsif(count=5) then

mem5(7 downto 0)<=datain; elsif(count=6) then

mem6(7 downto 0)<=datain; elsif(count=7) then

mem7(7 downto 0)<=datain; elsif(count=8) then

mem8(7 downto 0)<=datain; elsif(count=9) then

mem9(7 downto 0)<=datain; elsif(count=10) then

mem10(7 downto 0)<=datain; elsif(count=11) then

mem11(7 downto 0)<=datain; elsif(count=12) then

- 23 -

DVB-S码型研究及信道编码的FPGA

mem12(7 downto 0)<=datain; end if; a<=count+1 ;

count<=a mod 12; mem2<=mem2 sll 8; mem3<=mem3 sll 8; mem4<=mem4 sll 8; mem5<=mem5 sll 8; mem6<=mem6 sll 8; mem7<=mem7 sll 8; mem8<=mem8 sll 8; mem9<=mem9 sll 8; mem10<=mem10 sll 8; mem11<=mem11 sll 8; mem12<=mem12 sll 8; dout1<=mem1;

dout2<=mem2(143 downto 136); dout3<=mem3(279 downto 272); dout4<=mem4(415 downto 408); dout5<=mem5(551 downto 544); dout6<=mem6(687 downto 680); dout7<=mem7(823 downto 816); dout8<=mem8(959 downto 952); dout9<=mem9(1095 downto 1088); dout10<=mem10(1231 downto 1224); dout11<=mem11(1367 downto 1360); dout12<=mem12(1503 downto 1496); END IF; End process;

End two;

12选一多路器程序如下: LIBRARY IEEE;

- 24 -

4.9) (图

DVB-S码型研究及信道编码的FPGA

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY MUX12_1 IS

PORT(

COUNT1:IN INTEGER;

D11 , D10 ,D9 , D8 , D7 , D6 , D5 , D4 ,D3 , D2 , D1 , D0 : IN BIT_VECTOR(7 DOWNTO 0);

Y : OUT BIT_VECTOR(7 DOWNTO 0);

CLK: IN STD_LOGIC ); END ENTITY;

ARCHITECTURE ONE OF MUX12_1 IS

BEGIN

PROCESS(CLK) BEGIN

IF (CLK'EVENT AND CLK='1') THEN IF (COUNT1=1) THEN Y<=D0;

ELSIF(COUNT1=2) THEN Y<=D1;

ELSIF(COUNT1=3) THEN Y<=D2;

ELSIF(COUNT1=4) THEN Y<=D3;

ELSIF(COUNT1=5) THEN Y<=D4;

ELSIF(COUNT1=6) THEN Y<=D5;

ELSIF(COUNT1=7) THEN Y<=D6;

ELSIF(COUNT1=8) THEN Y<=D7;

ELSIF(COUNT1=9) THEN Y<=D8;

ELSIF(COUNT1=10) THEN Y<=D9;

ELSIF(COUNT1=11) THEN Y<=D10;

ELSIF(COUNT1=12) THEN Y<=D11; END IF;

END IF;

END PROCESS; End one;

- 25 -

DVB-S码型研究及信道编码的FPGA

合并一起的电路图:

(图4.10)

- 26 -

DVB-S码型研究及信道编码的FPGA

结语: 本文针对RS(204,188)码流进行了卷积交织器和解交织器的VHDL语言设计和FPGA实现。理论上最简存储单元的占用量为B×M×(B- 1)/2 = 1 122,地址总线位数为11 b。而本文的方法使用的存储单元量为1 134,地总线位数为11 b,接近于最简存储单元占用量。本文的计和实现方法可以推广用在对别的码流的卷积交织上,需根据实际需要适当选择参数B和M。参数的选择与交器前面级连的纠错码的码字长有关。若纠错码采用(N,K)码,一般取N=B×M。

4.4、(2,1,7)卷积码

卷积码也称连环码,是伊莱亚斯(EliaS)于1955年提出的一种非分组码。与分组码不同,它的编码是连续的,监督码元分散插入信息序列之中,整个编码过程是一环扣一环。连锁地进行下去的,故称为连环码。又因为其编码器的输出可以看成是输入信息数字序列与编码器的响应函数卷积,所以称为卷积码。在解码过程中,不但从该时刻收到的码组中提取信息,还利用以后若干时刻内所收到的码字来提取信息。卷积码也具有检错和纠错能力,但更适用于前向纠错。卷积码己广泛用于通信,特别是卫星通信中,尤其是功率受限而带宽不受限可近似为高斯白噪声信道中。 卷积编码原理在数字电视信道编码中,卷积码通常是与线性分组码级联使用,如RS码。卷积码在形式上也是分组处理的:每k个输入信息码元为一组,经编码处理后加入r个校验码元,生成n=k+r个码元的码字。但与分组码不同的是,卷积码字内的r个校验码元不仅与本码字内的k个信息码元有关,还与前面的(N一l)个码字内的信息码元有关,是由本码字和前面的(N一l)个码字内的信息码元按照规定的编码算法共同生成的。

卷积码非常适用于纠正随机错误,但是,解码算法本身的特性却是:如果在解码过程中发生错误,解码器可能会导致突发性错误。为此在卷积码的上部采用RS码块, RS码适用于检测和校正那些由解码器产生的突发性错误。所以卷积码和RS码结合在一起可以起到相互补偿的作用。卷积码分为两种: (1) 基本卷积码:

基本卷积码编码效率为,η=1/2, 编码效率较低,优点是纠错能力强。 (2)收缩卷积码:

- 27 -

DVB-S码型研究及信道编码的FPGA

如果传输信道质量较好,为提高编码效率,可以采样收缩截短卷积码。有编码效率为:η=1/2、2/3、3/4、5/6、7/8这几种编码效率的收缩卷积码。

编码效率高,一定带宽内可传输的有效比特率增大,但纠错能力越减弱。

(2,1,7)卷积码的电路设计

DVB系统中,经过MPEG一2复用后,每包数据总长度为188字节。对其进行外编码,使用RS(204,188)方式,从而得到一帧共204个数据,经过卷积交织处理后,进行卷积编码。内码允许使用一系列约束长度K=7,编码效率分别为1/2、2/3、3/4、5/6、7/8的卷积码。对于给定的业务速率,通过选择合适的编码效率就可以达到最佳的误码保护水平。在接收端,可以通过相应的解删余将数据都恢复成1/2主码率的形式,再经过维特比译码的过程恢复出原来的数据信号。

X路输出的生成多项式为:

Y路输出的生成多项式为:

(2,1,7) 卷积码

- 28 -

DVB-S码型研究及信道编码的FPGA

bit位输出

6位寄存器运算② 6位寄存器运算①

(图4.11) 2位bit输出

VHDL程序及 quartus ii 编译图

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; use ieee.std_logic_unsigned.all; ENTITY JUANJI IS PORT

(

A : IN STD_LOGIC; CLK : IN STD_LOGIC;

DOUT : OUT STD_LOGIC_VECTOR(1 DOWNTO 0) ); END ENTITY;

ARCHITECTURE THREE OF JUANJI IS

signal seq :STD_LOGIC_vector(6 downto 0):=\ signal sel :bit_vector(6 downto 0):=\BEGIN

PROCESS(CLK) begin

if (clk'event and clk='1') then

sel<= TO_BITVECTOR(seq) sll 1; sel(0)<=to_bit(a);

seq<=to_stdlogicvector(sel); DOUT(0)<=seq(0) xor seq(1) xor seq(2) xor seq(3) xor seq(6) ;

DOUT(1)<=seq(0) xor seq(2) xor seq(3) xor seq(5) xor seq(6);

end if; END PROCESS; end three;

- 29 -

DVB-S码型研究及信道编码的FPGA

(图4.12)

(图4.13)

- 30 -

DVB-S码型研究及信道编码的FPGA

第五章 拓展与展望

拓展:

多视角视频编码:感觉这个方向现在还没有被研究。主要原因是应该不是很明了,缺乏需求牵引。可以未来在监控,三维立体视频存储,体育,3DTV广播,数字电影,医 学,视频会议等方面会有发展,但现在还没看出关键的应用领域。也许在图形应用,如游戏方面将有发展。

无线传感器网络:未来的应用和网络的出现有了新的挑战,而且图像和视频的编码和传输也受到了限制。 展望:

目前使用最为广泛且发展前景最好的多媒体业务主要是会议电视、远程教学、远程医疗、可视电话等业务,而实现这一系列业务的核心就是多媒体会议体系标准。 ITU-T的H系列标准是为多媒体会议而制订的,其中包含了视频编解码,语音编解码,复接/解复接等内容。不同的标准组采用了相同的系统框架,其对应的各 部分内容也基本相同,主要区别在于为了适应不同网络而设计的包优化和的定义。目前主要的几个协议组包括H.320、H.324和H.323。H.320 是基于ISDN的系统,是目前会议电视和可视电话主要采用的协议,也是应用得比较广泛和成功的协议组。H.320规定了视频和语音编解码的标准、复接、解 复接和控制一整套协议。其中有语音的编解码的标准G.711、G.722、G.728、G.729,编码速率8kbit/s~64kbit/s,不同的标 准所提供的语音质量不一样。视频编解码标准有H.261、H.263、H.263+,其中复接采用定义到比特的H.221标准,控制部分采用H.242进 行终端之间的能力交互。由于ISDN协议是基于电路交换的,其优点是能够保证传输带宽,从而充分保证视频服务的实时性,使传输带宽在目前实际应用中具有更 高的商业可操作性。

H.324是基于PSTN的视频会议系统,同样也规定了视频和语音编解码的标准、复接、解复接和控制一整套协议。其中语音编解 码的标准有G.723.1、G.729等,视频编解码标准有H.261、H.263、H.263+,其中复接采用H.223,控制部分采用H.245。自 从1996年就有了符合标准的系统,但是因为传输速率很低,视频质量比较差,因而没有很大的发展。但第三代可能采用H.324系统,这样H.324系统将

- 31 -

DVB-S码型研究及信道编码的FPGA

会有很大的发展。

H.323是基于IP分组网的视频会议系统,用于分组网络,通常包头是40字节,包大小是1500字节。能够达到一个合理的开销 和净荷比。H.323中语音的编解码的标准G.723.1、G.722、G.728、G.729传输速率达8kbit/s~64kbit/s。视频编解码 标准有H.261、H.263、H.263+,其中复接采用H.225.0,控制采用H.245,其协议结构如图1所示。由于IP协议不仅已经统治了桌面 和通信网络的接入层,而且通信网络的骨干层和汇聚层也越来越多使用IP协议,这使得H.323协议组有了非常旺盛的生命力。实际上,早期的IP电话系统就 已经使用了H.323协议组框架,由于IP协议是面向无连接的数据报通信,网络的时延、时延抖动在理论上都没有保证,这增加了H.323在应用中的复杂 性,需要网络提供商、视频服务提供商密切地配合并采用更加合理的分配方案。

随着DVB、视频压缩、音频压缩、芯片技术的发展,目前流行以FPGA或ARM芯片主控和节目信息的提取,以DSP芯片主算。且视频清晰度越来越高,音频5.1声道的效果越来越好,网络电视的传输可靠性能大大提高,器件向集成度、小型话、低功率低损耗发展。

同时卫星技术、无线技术日新月异,手机3G技术的发展、使得手机视频,网络会议成为现实。

本文中的基于VHDL的FPGA实现存在一定不足:如 1、 程序语言不够简练。

2、 内存使用较理想有少量多余。 3、时间延时过大。

4、控制端口较少,工程实际应用还需改进。

以上不足将随着进一步的学习和对新技术的掌握而不断完善,我们深信并有信心,并最终实现FPGA+DSP或ARM+DSP的电视视频高压缩低误码传输。

- 32 -

DVB-S码型研究及信道编码的FPGA

第六章 参考文献

[1]张丕状、李兆光. 基于VHDL的CPLD/FPGA开发与应用. 国防工业出版社2008

[2]卢官明、宗昉 编著. 数字电视原理(第二版). 机械工业出版社 2006

[3]王新梅, 肖国镇. 纠错码—原理与方法.编号20011 西安电子科技大学出版社

[4]褚振勇, 翁木云. FPGA 设计及应用 编号 20021 西安电子科技大学出版社

[5] Bernard Sklar.数字通信— 基础与应用(第二版),北京:电子工业出 2005

[6]徐宇白.卷积交织器和解交织器的VHDL设计和FPGA实现:[硕士学位论文],2008

[7][美] RiggsR.j2ME 无线设备编程[M ].李迅, 孙毅等译 北京机械工业出版社

2005

- 33 -

DVB-S码型研究及信道编码的FPGA

第七章 谢辞

衷心感谢解放军信息工程大学四年的教育

衷心感谢解放军信息工程大学二系

衷心感谢解放军信息工程大学二系

感谢解放军信息工程大学九系学员讨论

田忠骏教员的辅导 朱义军教员的辅导 窦彬彬同学共同关于DVB论文相关内容的- 34 -

本文来源:https://www.bwwdw.com/article/zi25.html

Top