精华内容
下载资源
问答
  • 什么是I,P,B

    千次阅读 2015-04-10 18:39:45
    在针对连续动态图像编码时,将连续若干幅图像分成P,B,I三种类型,P由在它前面的P或者I预测来,它比较与它前面的P或者I之间的相同信息或数据,也即考虑运动的特性进行间压缩。P法是根据本与相邻的前...

    视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。
      
    简单地说,I帧是关键帧,属于帧内压缩。就是和AVI的压缩是一样的。 P是向前搜索的意思。B是双向搜索。他们都是基于I帧来压缩数据。
     
     


    I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面)


    P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据)


    B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别(具体比较复杂,有4种情况),换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是解码时CPU会比较累~。


    从上面的解释看,我们知道I和P的解码算法比较简单,资源占用也比较少,I只要自己完成就行了,P呢,也只需要解码器把前一个画面缓存一下,遇到P时就使用之前缓存的画面就好了,如果视频流只有I和P,解码器可以不管后面的数据,边读边解码,线性前进,大家很舒服。
    但网络上的电影很多都采用了B帧,因为B帧记录的是前后帧的差别,比P帧能节约更多的空间,但这样一来,文件小了,解码器就麻烦了,因为在解码时,不仅要用之前缓存的画面,还要知道下一个I或者P的画面(也就是说要预读预解码),而且,B帧不能简单地丢掉,因为B帧其实也包含了画面信息,如果简单丢掉,并用之前的画面简单重复,就会造成画面卡(其实就是丢帧了),并且由于网络上的电影为了节约空间,往往使用相当多的B帧,B帧用的多,对不支持B帧的播放器就造成更大的困扰,画面也就越卡。
     
    一般平均来说,I的压缩率是7(跟JPG差不多),P是20,B可以达到50,可见使用B帧能节省大量空间,节省出来的空间可以用来保存多一些I帧,这样在相同码率下,可以提供更好的画质。


    下面举例说明:



    在如上图中,GOP (Group of Pictures)长度为13,S0~S7 表示 8个视点,T0~T12 为 GOP的 13个时刻。每个 GOP包含帧数为视点数 GOP 长度的乘积。在该图中一个 GOP 中,包含94 个 B帧。B 帧占一个 GOP 总帧数的 90.38%。GOP 越长,B 帧所占比例更高,编码的率失真性能越高。下图测试序列 Race1 在不同 GOP 下的率失真性能对比。



    P帧(预测帧)

    概述:
    在针对连续动态图像编码时,将连续若干幅图像分成P,B,I三种类型,P帧由在它前面的P帧或者 I帧预测来,它比较与它前面的P帧或者I帧之间的相同信息或数据,也即考虑运动的特性进行 帧间压缩。P帧法是根据本帧与相邻的前一帧(I帧或P帧)的不同点来压缩本帧数据。采取P帧和I帧联合压缩的方法可达到更高的压缩且无明显的压缩痕迹。
    P帧特点:
    ①P帧是I帧后面相隔1~2帧的编码帧。
    ②P帧采用运动补偿的方法传送它与前面的I或P帧的差值及运动矢量(预测误差)。
    ③解码时必须将I帧中的预测值与预测误差求和后才能重构完整的P帧图像。
    ④P帧属于前向预测的帧间编码。它只参考前面最靠近它的I帧或P帧。
    ⑤P帧可以是其后面P帧的 参考帧,也可以是其前后的B帧的参考帧。
    ⑥由于P帧是 参考帧,它可能造成解码错误的扩散。
    ⑦由于是差值传送,P帧的压缩比较高。
    注:
    I、B、P各帧是根据压缩算法的需要,是人为定义的,它们都是实实在在的物理帧,至于
    图像中的哪一帧是I帧,是随机的,一但确定了I帧,以后的各帧就严格按规定顺序排列。
    P帧丢失,视屏画面会出现花屏或者马赛克的现象。

    I帧(关键帧)

    I帧(I frame) 又称为内部画面 (intra picture),I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。在MPEG编码的过程中,部分视频帧序列压缩成为I帧;部分压缩成P帧;还有部分压缩成B帧。I帧法是 帧内压缩法,也称为“ 关键帧”压缩法。I帧法是基于离散余弦变换DCT(Discrete Cosine Transform)的 压缩技术,这种算法与JPEG压缩算法类似。采用I帧压缩可达到1/6的压缩比而无明显的压缩痕迹。
    帧是组成视频图像的基本单位。 关键帧也叫I帧,它是 帧间压缩编码里的重要帧;它是一个全帧压缩的编码帧;解码时仅用I帧的数据就可重构完整图像;I帧不需要参考其他画面而生成。视频文件是由多个连续的图片组成。
    视频会议系统中,终端发送给MCU(或者MCU发送给终端)的图像,并不是每次都把完整的一幅幅图片发送到远端,而只是发送后一幅画面在前一幅画面基础上发生变化的部分。如果在网络状况不好的情况下,终端的接收远端或者发送给远程的画面就会有丢包而出现图像花屏、图像卡顿的现象,在这种情况下如果没有I帧机制来让远端重新发一幅新的完整的图像到本地(或者本地重新发一幅新的完整的图像给远端),终端的输出图像的花屏、 卡顿现象会越来越严重,从而造成会议无法正常进行。
    在视频画面播放过程中,若I帧丢失了,则后面的P帧也就随着解不出来,就会出现视频画面黑屏的现象;若P帧丢失了,则视频画面会出现花屏、马赛克等现象。
    视频会议系统中I帧只会在会议限定的带宽内发生,不会超越会议带宽而生效。I帧机制不仅存在于MCU中, 电视墙服务器录播服务器中也存在。就是为了解决在网络状况不好的情况下,出现的丢包而造成的如图像花屏、卡顿,而影响会议会正常进行。

    B帧(双向预测帧)

    B帧法是双向预测的帧间压缩算法。当把一帧压缩成B帧时,它根据相邻的前一帧、本帧以及后一帧数据的不同点来压缩本帧,也即仅记录本帧与前后帧的差值。只有采用B帧压缩才能达到200:1的高压缩。一般地,I帧压缩效率最低,P帧较高,B帧最高。
    展开全文
  • 前言  H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在...所以对于一段变化不大图像画面,我们可以先编码出一个完整的图像A,随后的B就不编码全部图像,只写入与A的差别,这样B

    前言       
    H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称。

    在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于一段变化不大图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,这样B帧的大小就只有完整帧的1/10或更小!B帧之后的C帧如果变化不大,我们可以继续以参考B的方式编码C帧,这样循环下去。这段图像我们称为一个序列(序列就是有相同特点的一段数据),当某个图像与之前的图像变化很大,无法参考前面的帧来生成,那我们就结束上一个序列,开始下一段序列,也就是对这个图像生成一个完整帧A1,随后的图像就参考A1生成,只写入与A1的差别内容。
    在H264协议里定义了三种帧,完整编码的帧叫I帧,参考之前的I帧生成的只包含差异部分编码的帧叫P帧,还有一种参考前后的帧编码的帧叫B帧。
    H264采用的核心算法是帧内压缩和帧间压缩,帧内压缩是生成I帧的算法,帧间压缩是生成B帧和P帧的算法。


    序列的说明
    在H264中图像以序列为单位进行组织,一个序列是一段图像编码后的数据流,以I帧开始,到下一个I帧结束。
    一个序列的第一个图像叫做 IDR 图像(立即刷新图像),IDR 图像都是 I 帧图像。H.264 引入 IDR 图像是为了解码的重同步,当解码器解码到 IDR 图像时,立即将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数集,开始一个新的序列。这样,如果前一个序列出现重大错误,在这里可以获得重新同步的机会。IDR图像之后的图像永远不会使用IDR之前的图像的数据来解码。
    一个序列就是一段内容差异不太大的图像编码后生成的一串数据流。当运动变化比较少时,一个序列可以很长,因为运动变化少就代表图像画面的内容变动很小,所以就可以编一个I帧,然后一直P帧、B帧了。当运动变化多时,可能一个序列就比较短了,比如就包含一个I帧和3、4个P帧。


     

    三种帧的说明

    1、I帧
    I帧:帧内编码帧 ,I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面)

    I帧特点:
    1)它是一个全帧压缩编码帧。它将全帧图像信息进行JPEG压缩编码及传输;
    2)解码时仅用I帧的数据就可重构完整图像;
    3)I帧描述了图像背景和运动主体的详情;
    4)I帧不需要参考其他画面而生成;
    5)I帧是P帧和B帧的参考帧(其质量直接影响到同组中以后各帧的质量);
    6)I帧是帧组GOP的基础帧(第一帧),在一组中只有一个I帧;
    7)I帧不需要考虑运动矢量;
    8)I帧所占数据的信息量比较大。


    2、P帧 

    P帧:前向预测编码帧。P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据)
    P帧的预测与重构:P帧是以I帧为参考帧,在I帧中找出P帧“某点”的预测值和运动矢量,取预测差值和运动矢量一起传送。在接收端根据运动矢量从I帧中找出P帧“某点”的预测值并与差值相加以得到P帧“某点”样值,从而可得到完整的P帧。

    P帧特点:
    1)P帧是I帧后面相隔1~2帧的编码帧;
    2)P帧采用运动补偿的方法传送它与前面的I或P帧的差值及运动矢量(预测误差);
    3)解码时必须将I帧中的预测值与预测误差求和后才能重构完整的P帧图像;
    4)P帧属于前向预测的帧间编码。它只参考前面最靠近它的I帧或P帧;
    5)P帧可以是其后面P帧的参考帧,也可以是其前后的B帧的参考帧;
    6)由于P帧是参考帧,它可能造成解码错误的扩散;
    7)由于是差值传送,P帧的压缩比较高。


    3、B帧

    B帧:双向预测内插编码帧。B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别(具体比较复杂,有4种情况,但我这样说简单些),换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是解码时CPU会比较累。


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


    B帧特点
    1)B帧是由前面的I或P帧和后面的P帧来进行预测的;
    2)B帧传送的是它与前面的I或P帧和后面的P帧之间的预测误差及运动矢量;
    3)B帧是双向预测编码帧;
    4)B帧压缩比最高,因为它只反映丙参考帧间运动主体的变化情况,预测比较准确;
    5)B帧不是参考帧,不会造成解码错误的扩散。


    PS:I、B、P各帧是根据压缩算法的需要,是人为定义的,它们都是实实在在的物理帧。一般来说,I帧的压缩率是7(跟JPG差不多),P帧是20,B帧可以达到50。可见使用B帧能节省大量空间,节省出来的空间可以用来保存多一些I帧,这样在相同码率下,可以提供更好的画质。

     

    压缩算法的说明
    h264的压缩方法:
    1.分组:把几帧图像分为一组(GOP,也就是一个序列),为防止运动变化,帧数不宜取多。
    2.定义帧:将每组内各帧图像定义为三种类型,即I帧、B帧和P帧;
    3.预测帧:以I帧做为基础帧,以I帧预测P帧,再由I帧和P帧预测B帧;
    4.数据传输:最后将I帧数据与预测的差值信息进行存储和传输。


    帧内(Intraframe)压缩也称为空间压缩(Spatial compression)。当压缩一帧图像时,仅考虑本帧的数据而不考虑相邻帧之间的冗余信息,这实际上与静态图像压缩类似。帧内一般采用有损压缩算法,由于帧内压缩是编码一个完整的图像,所以可以独立的解码、显示。帧内压缩一般达不到很高的压缩,跟编码jpeg差不多。 

     
    帧间(Interframe)压缩的原理是:相邻几帧的数据有很大的相关性,或者说前后两帧信息变化很小的特点。也即连续的视频其相邻帧之间具有冗余信息,根据这一特性,压缩相邻帧之间的冗余量就可以进一步提高压缩量,减小压缩比。帧间压缩也称为时间压缩(Temporal compression),它通过比较时间轴上不同帧之间的数据进行压缩。帧间压缩一般是无损的。帧差值(Frame differencing)算法是一种典型的时间压缩法,它通过比较本帧与相邻帧之间的差异,仅记录本帧与其相邻帧的差值,这样可以大大减少数据量。


    顺便说下有损(Lossy )压缩和无损(Lossy less)压缩。无损压缩也即压缩前和解压缩后的数据完全一致。多数的无损压缩都采用RLE行程编码算法。有损压缩意味着解压缩后的数据与压缩前的数据不一致。在压缩的过程中要丢失一些人眼和人耳所不敏感的图像或音频信息,而且丢失的信息不可恢复。几乎所有高压缩的算法都采用有损压缩,这样才能达到低数据率的目标。丢失的数据率与压缩比有关,压缩比越小,丢失的数据越多,解压缩后的效果一般越差。此外,某些有损压缩算法采用多次重复压缩的方式,这样还会引起额外的数据丢失。

    展开全文
  • 定界的基本方法

    千次阅读 2012-03-15 19:03:11
    定界就是标识的开始与结束。有4 种常见的定界方法,即字符计数法、带字符 填充的首尾界符法、带位填充的首尾标志法和物理层编码违例法。 (1)字符计数法   这种同步方法是一种面向字节的同步规程,...

    帧定界就是标识帧的开始与结束。有4 种常见的定界方法,即字符计数法、带字符
    填充的首尾界符法、带位填充的首尾标志法和物理层编码违例法。
    (1)字符计数法

     

    这种帧同步方法是一种面向字节的同步规程,是利用帧头部中的一个域来指定该帧中的字符数,以一个特殊字符表征一帧的起始,并以一个专门字段来标明帧内的字符数。
    1.同步原理
    接收方可以通过对该特殊字符的识别从比特流中区分出帧的起始,并从专门字段中获知该帧中随后跟随的数据字符数,从而可确定出帧的终止位置。如图7-1所示的就是标识了4个数据帧的帧格式,它们的大小依次为5、5、8、8个字符。

    这种方法最大的问题在于如果标识帧大小的字段出错,即失去了帧边界划分的依据,将造成灾难性的后果。如第二帧中的计数字符由“5”变为“7”,则接收方就会失去帧同步的可能,从而不可能再找到下一帧正确的起始位置。由于第二帧的校验和出现了错误,所以接收方虽然知道该帧已经被损坏,但仍然无法知道下一帧正确的起始位置。在这种情况下,给发送方请示重传都无济于事,因为接收方根本不知道应该跳过多少个字符才能到达重传的开始处。由于这种原因,这种字符计数法目前已很少用。
    (2)带字符填充的首尾界符法

     

    该同步方法是用一些特定的字符来定界一帧的起始与终止,充分解决了错误发生之后重新同步的问题。
    1.同步原理
    在这种帧同步方式中,为了不使数据信息位中与特定字符相同的字符被误判为帧的首尾定界符,可以在这种数据帧的帧头填充一个转义控制字符(DLE STX,Data Link Escape – Start of Text),在帧的结尾则以DLE ETX(Data Link Escape-End of Text)结束,以示区别,从而达到数据的透明性。若帧的数据中出现DLE字符,发送方则插入一个“DLE”字符,接收方会删除这个DLE字符。如现在要发送一个如图7-3(a)所示的字符帧,在帧中间有一个“DLE”字符数据,所以发送时会在其前面插入一个“DLE”字符,如图7-3(b)所示。在接收方接收到数据后会自己删除这个插入的“DLE”字符,结果仍得到原来的数据,但帧头和帧尾仍在,予以区别,如图7-3(c)所示。

    在以前这种同步方式中,起始和结束字符是不同的(如起始字符为DLE,而结束字符是DLE ETX),但是近几年,绝大多数协议倾向于使用相同的字符来标识起始和结束位置。按这样的做法,在接收方丢失了同步,则只需搜索一下标志符就能找到当前帧的结束位置。两个连接的标志符代表了当前帧的结束和下一帧的开始。
    但这种同步方式也不是完美的,也会发生严重的问题。当标志符的位模式出现在数据中时,这时不同步问题就可能发生了,这种位模式往往会干扰正常的帧分界。解决这一问题的办法是在发送方的数据链路层传输的数据中,在与分界标志符位模式一样的字符中插入一个转义字符(如ESC)。接收方的数据链路层在将数据送给网络层前删除这种转义字符。因此,成帧用的标志字符与数据中出现的相同位模式字符就可以分开了,只要看它前面有没有转义字符即可。
    如果转义字符出现在数据中间,同样需要用转义字符来填充。因此任何单个转义字符一定是转义序列的一部分,而两个转义字节则代表数据中的自然出现的一个转义字符,具体参见图7-3。
    2.示例介绍
    这种帧同步方法只能用于较为少用的面向字符型协议,典型代表是IBM公司的二进制同步通信协议(BSC)和PPP协议。它的特点是一次传送由若干个字符组成的数据块,而不是只传送一个字符,并规定了10个字符作为这个数据块的开头与结束标志,以及整个传输过程的控制信息。由于被传送的数据块是由字符组成的,所以也被称之为“面向字符的协议”。
    BSC协议用ASCII和EBCDIC字符集定义的传输控制字符来实现相应的功能。这些传输控制字符的标记、名字及ASCII码值和EBCDIC码值见表7-1。


    SOH(Start of Head):报头开始标志,用于表示报文的标题信息或报头的开始。
    STX(Start of test):文本开始标志,标识标题信息的结束和报文文本的开始。
    ETX(End of Text):文本终止标志,标识报文文本的结束。
    EOT(End of Transmission):发送完毕标志,用以表示一个或多个文本的结束,并拆除链路。
    ENQ(Enquire):询问标志,用以请求远程站给出响应,响应可能包括站的身份或状态。
    ACK(Acknowledge):确认标志,由接收方发出的作为对正确接收到报文的响应。
    DLE(Data Link Escape):转义标志,用以修改紧跟其后的有限个字符的意义。在BSC协议中,实现透明方式的数据传输,或者当10个传输控制字符不够用时,提供新的转义传输控制字符。
    NAK(Negative Acknowledge):否认标志,由接收方发出的作为对未正确接收的报文响应。
    SYN(Synchronous):字符同步标志,在同步协议中,用以实现节点之间的字符同步,或用于在无数据传输时保持同步。
    ETB(End of transmission Block):块终止或组终止标志,用以表示当报文分成多个数据块的结束。
    BSC协议将在链路上传输的信息分为数据和监控报文两类。监控报文又可分为正向监控和反向监控两种。每一种报文中至少包括一个传输控制字符,用以确定报文中信息的性质或实现某种控制作用。数据报文一般由报头和文本组成。文本是要传送的有效数据信息,而报头是与文本传送和处理有关的辅助信息,报头有时也可不用。对于不超过长度限制的报文可只用一个数据块发送,对较长的报文则分作多块发送,每一个数据块作为一个传输单位。接收方对于每一个收到的数据块都要给以确认,发送方收到返回的确认后,才能发送下一个数据块。
    BSC协议的数据块有如下四种格式。
    不带报头的单块报文或分块传输中的最后一块报文
    这种报文格式为:SYN | SYN  | STX | 报文 |  ETX |  BCC
    带报头的单块报文
    这种报文的格式为:SYN | SYN | SOH | 报头 | STX | 报文 | ETX | BCC
    分块传输中的第一块报文
    这种报文格式为:SYN | SYN | SOH | 报头 | STX | 报文 | ETB | BCC
    分块传输中的中间报文
    这种报文格式为:SYN | SYN | STX | 报文 | ETB | BCC
    从以上数据报文格式可以看出,BSC协议中所有发送的数据均跟在至少两个SYN字符之后,以使接收方能实现字符同步。所有数据块在块终限定符(ETX或ETB)之后还有块校验字符BCC(Block Check Character),BCC可以是垂直奇偶校验或者说16位CRC,校验范围从STX开始到ETX或ETB为止。
    当发送的报文是二进制数据库,而不是字符串时,二进制数据中形同传输控制字符的比特串将会引起传输混乱。为使二进制数据中允许出现与传输控制字符相同的数据(即数据的透明性),可在各帧中真正的传输控制字符(SYN除外)前加上DLE转义字符;在发送时,若文本中也出现与DLE字符相同的二进制比特串,则可插入一个标记。在接收端则进行同样的检测,若发现单个的DLE字符,则可知其后为传输控制字符;若发现连续两个DLE字符,则知其后的DLE为数据,在进一步处理前将其中一个删去。

    (3)带位填充的首尾标志法
    7.2.3  比特填充的首尾定界符法
    在前面介绍的字符分界法中存在一个大的不足,那就是它仅依靠8位模式。而事实上,并不是所有的字符编码都使用8位模式,如UNICODE编码就使用了16位编码方式。而且随着网络技术的发展,在成帧机制中内含字符码长度的缺点越来越明显,所以有必要开发一种新的同步技术,以便允许任意长度的字符编码方式。本节所介绍的"比特填充的首尾界定符法"就是这样一种新型的同步方式。
    "比特填充的首尾界定符法"是以一组特定的比特模式(如01111110)来标志一帧的起始与终止,它允许任意长度的位码,也允许任意每个字符有任意长度的位。它的工作原理是在每一帧的开始和结束位置都加上一个特殊的位模式,如01111110。当发送方的数据链路层传到数据中5个"1" (因为特定模式中是有5个连续"1")时,自动在输出位流中填充一个"0"。在接收方,当收到连续5个"1",并且后面位是"0"时,自动删除该"0"位。就好像字节填充过程对于双方计算机中的网络层是完全透明的一样。如要传输的数据帧为"0110111111011111001",采用比特填充后,在网络中传送时表示为"0111111001101111101011111000101111110"。
    上述结果是在原信息("0110111111011111001")的基础上两端各加一个特定模式来标示数据帧的起始与终止,另外,因为在原信息中,有一段比特流与特定模式类似,为了与用于标识帧头和帧尾的特定模式字符区别,在有5个连续"1"的比特位后面加插入一个"0"(斜体"0")。而接收方在收到上述最终数据后进行发送方的逆操作,首先去掉两端的特定模式字符,然后在每收到连续5个"1"的比特位后自动删去其后所跟的"0",以此恢复原始信息,实现数据传输的透明性。
    比特填充帧同步方式很容易由硬件来实现,性能优于字符填充方式。所有面向比特的同步控制协议采用统一的帧格式,不论是数据,还是单独的控制信息均以帧为单位传送,其典型代表是ISO的HDLC协议。在此仅说明在HDLC的帧格式中也采用比特填充的帧同步方式,在它的首尾均有标志字段(Flag,8位,即01111110),如图7-4所示。


    (4)物理层编码违例法

     

    该法在物理层采用特定的比特编码方法时采用。例如,曼彻斯特编码方法,是将数据比特“1”编码成“高—低”电平对,将数据比特“0”编码成“低—高”电平对。而“高—高”电平对和“低—低”电平对在数据比特中是违法的。可以借用这些违法编码序列来界定帧的起始与终止。局域网IEEE 802标准中就采用了这种方法。违法编码法不需要任何填充技术,便能实现数据的透明性,但它只适于采用冗余编码的特殊编码环境。因为“曼彻斯特编码方法”已在第3章进行了详细介绍,所以在此不再赘述。
    由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充法和违法编码法。


    展开全文
  • 文章目录1 使用点对点信道的数据链路层1.1 数据链路和1.2 三个基本问题1. 封装成2 点对点协议 PPP3 使用广播信道的数据链路层4 扩展的以太网5 高速以太网 数据链路层使用的信道主要有以下两种类型: 点对点信道...


    数据链路层使用的信道主要有以下两种类型:
    点对点信道:这种信道使用一对一 的点对点通信方式。
    广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。 在这里插入图片描述
    在这里插入图片描述

    使用点对点信道的数据链路层

    1.1 数据链路和帧

    链路 (link) 是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
    一条链路只是一条通路的一个组成部分。
    数据链路 (data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
    现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。
    一般的适配器都包括了数据链路层和物理层这两层的功能。
    也有人采用另外的术语把链路分为物理链路和逻辑链路。
    物理链路就是上面所说的链路。
    逻辑链路就是上面的数据链路,是物理链路加上必要的通信协议。
    早期的数据通信协议曾叫做通信规程 (procedure)。因此在数据链路层,规程和协议是同义语。在这里插入图片描述
    常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。
    在这里插入图片描述

    数据链路层不必考虑物理层如何实现比特传输的细节,甚至还可以更简单地设想好像是沿着两个数据链路层之间的水平方向把帧直接发送到对方。

    1.2 三个基本问题

    数据链路层协议有许多种,但有三个基本问题则是共同的。这三个基本问题是:

    1. 封装成帧

    封装成帧 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧,确定帧的界限。
    首部和尾部的一个重要作用就是进行帧定界。在这里插入图片描述
    当数据是由可打印的 ASCII 码组成的文本文件时,帧定界可以使用特殊的帧定界符。
    控制字符 SOH (Start Of Header) 放在一帧的最前面,表示帧的首部开始。另一个控制字符 EOT (End Of Transmission) 表示帧的结束。在这里插入图片描述

    2. 透明传输

    如果数据中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”。在这里插入图片描述
    这个时候就比较可怕了,我们的完整数据极有可能会丢失,那么有什么办法可以解决呢?
    解决方法字节填充 (byte stuffing) 或字符填充 (character stuffing)。
    发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC” (其十六进制编码是 1B)。
    接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
    如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
    在这里插入图片描述

    3. 差错检测

    在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。
    在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。
    误码率与信噪比有很大的关系。
    为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。

    循环冗余检验CRC

    在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。
    在发送端,先把数据划分为组。假定每组 k 个比特。
    假设待传送的一组数据 M = 101001(现在 k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送。 用二进制的模 2 运算进行 2^n 乘 M 的运算,这相当于在 M 后面添加 n 个 0。
    得到的 (k + n) 位的数除以事先选定好的长度为 (n + 1) 位的除数 P,得出商是 Q 而余数是 R,余数 R 比除数 P 少 1 位,即 R 是 n 位。
    将余数 R 作为冗余码拼接在数据 M 后面发送出去。

    文字叙述比较抽象,举个冗余码的例子:
    现在 k = 6, M = 101001。
    设 n = 3, 除数 P = 1101,
    被除数是 2^nM = 101001000。
    模 2 运算的结果是:商 Q = 110101,
    余数 R = 001。
    把余数 R 作为冗余码添加在数据 M 的后面发送出去。发送的数据是:2^nM + R
    即:101001001,共 (k + n) 位。

    在这里插入图片描述

    注意余数的位数和被除数后面添加的0的个数一样,都是除数位数减一位。

    帧检验序列 FCS

    下面来介绍一下帧检验序列 FCS,在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。
    循环冗余检验 CRC和帧检验序列 FCS 并不等同。
    CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。
    FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。

    接收端对收到的每一帧进行 CRC 检验

    (1) 若得出的余数 R = 0,则判定这个帧没有差错,就接受 (accept)。
    (2) 若余数 R 不等于 0,则判定这个帧有差错,就丢弃。
    但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。
    只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错的概率就很小很小。

    所以应当注意:仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受
    “无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。
    也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。
    要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。
    应当明确,“无比特差错”与“无传输差错”是不同的概念。
    在数据链路层使用 CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输。

    展开全文
  • 作用:有助于数据进出介质。  封装成(framing)就是在一段数据的前后分别添加首部和尾部,这样就构成了一个。LM2591HVSX-ADJ接收端...所有在因特网上传送的数据都是以分组(即lP数据报)为传送单位的。 网络
  • 和关键,空白

    千次阅读 2014-07-04 17:56:19
    ——是进行flash动画制作的最基本单位,每一个精彩的flash动画都是由很多个精心雕琢的构成的,在时间轴上的每一都可以包含需要显示的所有内容,包括图形、声音、各种素材和其他多种对象。 关键——...
  • 5G NR 结构

    2021-01-06 04:31:07
    符号: 调制的基本单位。 关系:1无线=10子;  1时隙=12(或14)符号;  符号=1/子载波间隔(SCS)。 2、结构  如图,与LTE相同,无线和子的长度固定,从而允许更好的保持LTE与NR间共存。不同的是,5G...
  • 4G、5G中的基本时间单位Ts和Tc

    万次阅读 多人点赞 2019-08-03 16:44:38
    不论是在4G协议36211的一开始,还是5G协议38211的一开始,都会介绍物理层的一个基本的时间单位。在LTE中,这个时间单元通过下式计算: 其中 : 如何理解呢?LTE支持6种不同的传输带宽1.4 MHz、3 MHz、5 MHz、...
  • 内编码类似,间编码同样以一个宏块(Macroblock, MB)作为最小单位进行。 在H.264的整体流程中,间编码可分为几个步骤执行: 预测编码(包括运动估计/运动补偿过程); 变换/量化编码; 熵编码; ...
  • 无限 时隙

    千次阅读 2019-02-18 13:05:00
    2.无限是LTE时间结构的最大单位,时长10ms 3.无限编号:0~1023(1024制式) 子 1.一个无限由10个子组成,每个子为1ms,编号为0~9 2.一个子的时长就等于1个TTI(Transport Time Internal 传输...
  • 1. 特点 ——是进行flash动画制作的最基本单位,每一个精彩的flash动画都是由很多个精心雕琢的构成的,在时间轴上的每一都可以包含需要显示的所有内容,包括图形、声音、各种素材和其他多种对象。...
  • OSI模型中各层传输的基本单位

    万次阅读 2019-07-20 18:29:50
    OSI模型中各层传输的基本单位 协议数据单元(PDU) 每一次层得协议数据单元如下: 应用层的PDU 称为数据 传输层的PDU 称为数据段 网络层的PDU 称为数据包 数据链路层的PDU 称为 物理层的PDU 称为比特(位)...
  • 一.beacon主要结构 二.MAC header 1.Version:版本号,目前为止802.11只有一个版本,所以协议编号为0 2.Type:定义802.11类型,802.11分为管理(00),控制(01),数据(10) 3.Subtype:...
  • 位同步(比特同步)和同步的区别是什么?2009-03-09 07:30在数据通信中最基本的同步方式就是“位同步”(bit synchronization)或比特同步。比特是数据传输的最小单位。位同步(比特同步)是指接收端时钟已经调整到...
  • 、关键和空白关键的作用

    千次阅读 2013-06-30 12:15:40
    ——是进行flash动画制作的最基本单位,每一个精彩的flash动画都是由很多个精心雕琢的构成的,在时间轴上的每一都可以包含需要显示的所有内容,包括图形、声音、各种素材和其他多种对象。  关键——...
  • 用来标志上一层使用的是什么协议,以便把收到的MAC的数据上交给上一层的这个协议。数据字段 (46-1500): 正式名称是MAC客户数据字段最小长度64 字节-18字节的首部和尾部 = 数据字段的最小长度。 FCS字段 (4 ...
  • Flash逐动画 内容 一逐动画的基本概念 二逐动画的基本操作方法 动画中最基本的时间单位就是 是时间轴上记录动作的小格 制作动画时没有的存在也就没有动画的存在 关键是Flash动画中的主导 一逐动画的...
  • 视频基本术语介绍 码流 码流Data Rate是指视频文件在单位时间内使用的数据流量,也叫码率或码流率,是视频编码中画面质量控制中最重要的部分,一般我们用的单位是Kb/s或者Mb/s。一般来说同样分辨率下,视频文件的码...
  • 一. 封装成 透明传输 差错检测
  • 透明传输中的“透明”是一个很重要的术语,它表示某一个实际存在的事物看起来却好像不存在一样,在数据链路层透明传送数据表示无论什么样的比特组合的数据,都能够按照原样没有差错地通过这个数据链路层。...
  • I、P、B,以及PTS、DTS的关系

    千次阅读 2017-05-22 18:08:59
    I法是基本离散余弦变换 DCT( Discrete Cosine Transform )的压缩技术,这种算法与JPEG压缩算法类似。JPEG压缩是一种针对静止的连续色调的图像压缩方法,它属于帖内压缩。采用I压缩可达到1/6的压缩比而无明显的...
  • GSM中的

    千次阅读 2013-12-06 15:10:30
    :将时间分割城周期性的一小段。 在GSM系统中,可以分为:超高,超,复帧,TDMA...(一)时隙是基本的通信单位,其中1个时隙的时间约等于0.577ms,一个时隙分配给一个用户。一个时隙的时间很短,这是因为为了减
  • 音视频基本概念:分辨率、速率、码流、采样位深、采样率、比特率   一、分辨率  分辨率可以从显示分辨率与图像分辨率两个方向来分类。  显示分辨率(屏幕分辨率)是屏幕图像的精密度,是指显示器所能显示的...
  • 是在数据链路层数据进行传输与交换的基本单位。构造对于理解网络协议的概念、协议执行过程以及网络问题处理的一般方法具有重要的意义。本次设计的目的是应用数据链路层与介质访问控制层的知识,根据数据链路层的...
  • 摘要:本文介绍了集中式插入法同步系统的原理,... 在数字通信系统中,发送端一般以一定数目的码元组成一个个“字”或“句”,即组成一个个数据进行传输,因此是数据传输的基本单位。不同的通信系统具有不同的
  • LTE,NR中的基本时间单位

    千次阅读 2019-12-15 19:53:02
    38.211中定义了LTE/NR的基本时间单位: Ts_{s}s​ 、Tc_{c}c​ LTE - Ts_{s}s​ Ts_{s}s​ = 1 /(Δ\DeltaΔf\boldsymbol{f}fref_{ref}ref​ . Nf,ref_{f,ref}f,ref​) 取值 意义 Ts_{s}s​ Ts_{s}s​ = 1 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,741
精华内容 25,896
关键字:

帧是什么的基本单位