关于DVB同步字节反转及加扰原理及流程图

原创 2001年11月16日 18:30:00

                                                                                

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />       

同步反转及扰码:

1、原理:

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

软件编程时,首先用一矩阵radata来模拟PN码发生器的寄存器,并给予与PN码发生器的寄存器相同的初始值。然后对输入的数据进行判断,识别其是同步字节还是信息字节。当输入的数据是信息字节时,信息位与PN码发生器的寄存器矩阵的第14个元素radata(14)

和第15个元素redata(15)进行模2加码即进行扰码,其中结果存入输出矩阵randout。当输入的数据为同步字节时,同步字节不参与扰码,且当该同步字节为每一组数据中的第一个MPEG2数据帧的同步字节时,该同步字节反转。

 

注:1PN码发生器的寄存器初始值置为:100101010000000

2PN码发生器在传输每一个数据组(8个数据帧)时初始化一次

3、每一组数据中的第一个MPEG2数据帧的同步字节按比特反转

4MPEG2数据流中所有同步字节不参与扰码

5、解码部分和译码原理完全相同

以下为实现的源程序:

 

//初始化变量

//     int temp1[8],temp2[8];

       int enable,_redata,enabledata;

       int inputdata[8],outputdata[8];

       int redata[15];//寄存器

       BYTE output[8][204]={0};

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

       for(int m=0;m<=7;m++)

       {

           for( int n=0;n<=187;n++)

              {

 

               //m=0并且n=15表示初始化寄存器和进行同步字节反转的标志

                  if(m==0&&n==0)

                     {

                   //初始化寄存器redata

                 for(int i=0;i<=14;i++)

                             {

                          if(i==0||i==3||i==5||i==7)

                                   {

                                redata[i]=1;

                                   }

                         else

                                   {

                                 redata[i]=0;

                                   }

                             }

                       //同步字节按比特反转

                        output[m][16+n]=~Input[m][16+n];

                     }

 

                  //其余的同步字节不参于加扰,按照原始字节输出

                  else if(m!=0&&n==0)

                     {

                         output[m][16+n]=Input[m][16+n];

                     }

 

            //信息位(非同步字节)进行加扰

                  else

                     {

                      for(int j=0;j<=7;j++)

                            {

                             //读取字节Input里面的信息比特

                             inputdata[j]=Input[m][16+n]%2;

                          //字节Input右移一位

                             Input[m][16+n]>>=1;

                            }

       

 

               //加扰运算

               for (int  i=0;i<=7;i++)  

                        {

                          _redata=redata[13]^redata[14];

                           for(int j=14;j>=1;j--)

                                    {

                               redata[j]=redata[j-1];

                                    }

                       redata[0]=_redata;

                          enabledata=enable&_redata;

                          outputdata[i]=enabledata^inputdata[i];

                        }

 

                   //加扰后的比特赋给字节output

                      for ( i=0;i<=7;i++)

                            {

                             output[m][16+n]=output[m][16+n]|((BYTE)outputdata[i]<<1);

                            }

                     }

              }

       }

 

                                                                         

通用加扰算法 Common Scrambling Algorithm

通用加扰算法 Common Scrambling Algorithm 通用加扰算法(又称CSA)是DVB数字电视广播标准里的加密算法,用于解密视频流。 1994年5月,CSA由ETSI组织制定,由...
  • witxjp
  • witxjp
  • 2012年07月19日 09:17
  • 3201

DVB CAS系统加解扰加解密原理

一、简介     条件接收系统CAS(Conditional Access System)是付费数字电视广播的核心技术,其主要功能是阻止非法入侵数字广播网络,并允许被授权的用户收看特定的节目而使...
  • u013566722
  • u013566722
  • 2015年08月25日 13:29
  • 1262

DVB 之 CAS 条件接收系统

1:CAS定义 与 模型理解    条件接收(CA)系统(CAS)是数字电视广播(DVB)实行收费所必须采用的系统,是数字电视平台不可缺少的部分。    CAS负责完成用户的授权控制与管理...
  • kingvon_liwei
  • kingvon_liwei
  • 2014年10月23日 22:45
  • 414

DVB中CA模块的加解扰原理

http://www.cnblogs.com/tekson/archive/2010/07/31/1789618.html
  • melody157398
  • melody157398
  • 2013年10月31日 11:14
  • 638

struts2重新梳理---入门

MVC模式     MVC是Model-View-Controller的简称,即模型-视图-控制器。 MVC是一种设计模式,它把应用程序分成三个核心模块:模型、视图、控制器,它们各自处理自己的...
  • zxcvg
  • zxcvg
  • 2011年08月14日 11:32
  • 1009

SpringMVC原理流程图

通过一张图简单清晰的描述SpringMvc的处理流程
  • h249059945
  • h249059945
  • 2015年08月23日 00:52
  • 1107

SpringMVC - 运行流程图及原理分析

转自:http://blog.csdn.net/j080624/article/details/56273665 Spring MVC工作流程图 图一 图二  图...
  • xiaoxufox
  • xiaoxufox
  • 2017年08月15日 16:51
  • 547

Struts2工作原理和执行流程图

1、Struts2请求响应流程:   在struts2的应用中,从用户请求到服务器返回相应响应给用户端的过程中,包含了许多组件如:Controller、ActionProxy、ActionMapp...
  • snow_7
  • snow_7
  • 2016年05月27日 10:38
  • 9068

加扰与加密的区别

加扰就是改变标准电视信号的特性,在发送端按规定处理,而加密就是在加解扰系统的发送端将信息用密码方式处理后传送。 术语“加扰”与“加密”,都是对数据流进行密码处理,但这是两个不同的概念,应以区别。 ...
  • yuan892173701
  • yuan892173701
  • 2013年03月31日 17:35
  • 5965

DVB字幕

冯卓明 龚家华刘卫忠 郑立新       (华中科技大学电子科学与技术系,湖北 武汉 430074) 摘要:本文研究在机顶盒上实现对DVB字幕的解码和呈现,基于ST公司的机顶盒软硬件平台,设计实现图形...
  • gui_ya
  • gui_ya
  • 2011年06月28日 21:49
  • 1736
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于DVB同步字节反转及加扰原理及流程图
举报原因:
原因补充:

(最多只允许输入30个字)