精华内容
下载资源
问答
  • 同步,同步是什么意思

    千次阅读 2019-04-08 12:57:45
    同步,同步是什么意思 在数字通信时,一般总是以一定数目的码元组成个个的“字”或“句”,即组成个个的“群”进行传输的。因此,群同步信号的频率很容易由位同步信号经分频而得出。但是,每个群的开头和末尾...

    帧同步,帧同步是什么意思
    在数字通信时,一般总是以一定数目的码元组成一个个的“字”或“句”,即组成一个个的“群”进行传输的。因此,群同步信号的频率很容易由位同步信号经分频而得出。但是,每个群的开头和末尾时刻却无法由分频器的输出决定。群同步的任务就是在位同步信息的基础上,识别出数字信息群(“字”或“句”)的起止时刻,或者说给出每个群的“开头”和“末尾”时刻。
    群同步有时也称为帧同步。为了实现群同步,可以在数字信息流中插入一些特殊码字作为每个群的头尾标记,这些特殊的码字应该在信息码元序列中不会出现,或者是偶然可能出现,但不会重复出现,此时只要将这个特殊码字连发几次,收端就能识别出来,接收端根据这些特殊码字的位置就可以实现群同步。本节将主要讲述插入特殊码字实现群同步的方法。
    插入特殊码字实现群同步的方法有两种,即连贯式插入法和间隔式插入法。在介绍这两种方法以前,先简单介绍一种在电传机中广泛使用的起止式群同步法。
    起止同步法
    目前在电传机中广泛使用的同步方法,就是起止式群同步法,下面就以电传机为例,简要地介绍一下这种群同步方法的工作原理。
    电传报文的一个字由7.5个码元组成,假设电传报文传送的数字序列为10010,则其码元结构如图1所示。从图中可以看到,在每个字开头,先发一个码元的起脉冲(负值),中间5个码元是信息,字的末尾是1.5码元宽度的止脉冲(正值),收端根据正电平第一次转到负电平这一特殊规律,确定一个字的起始位置,因而就实现了群同步。由于这种同步方式中的止脉冲宽度与码元宽度不一致,就会给同步数字传输带来不便。另外,在这种同步方式中,7.5个码元中只有5个码元用于传递信息,因此编码效率较低。但起止同步的优点是结构简单,易于实现,它特别适合于异步低速数字传输方式。

    连贯式插入法
    连贯式插入法就是在每群的开头集中插入群同步码字的同步方法。作群同步码字用的特殊码字首先应该具有尖锐单峰特性的局部自相关特性,其次这个特殊码字在信息码元序列中不易出现以便识别,最后群同步识别器需要尽量简单。目前已经找到的最常用的群同步码字,就是“巴克”码。
    1.巴克码
    巴克码是一种具有特殊规律的二进制码字。它的特殊规律是:若一个n位的巴克码{X1,X2,X3,…Xn},每个码元 只可能取值+1或-1,则它必然满足条件
    式(1)中,R(j)称为局部自相关函数。从巴克码计算的局部自相关函数可以看到,它满足作为群同步码字的第一条特性,也就是说巴克码的局部自相关函数具有尖锐单峰特性,从后面的分析同样可以看出,它的识别器结构非常简单。目前人们已找到了多个巴克码字,具体情况如表1所示。表中+表示+1,–表示–1。
    以n = 7的巴克码为例,它的局部自相关函数计算结果如下

    同样可以求出j = 3、4、5、6、7,以及j = -1、-2、-3、-4、-5、-6、-7时R(j)的值为

    根据式(2)计算出来的这些值,可以作出7位巴克码关于R(j)与j的关系曲线,如图2。由图2可以看出,自相关函数在j=0时具有尖锐的单峰特性。局部自相关函数具有尖锐的单峰特性正是连贯式插入群同步码字的主要要求之一。

    2.巴克码识别器
    巴克码识别器是比较容易实现的,这里以七位巴克码为例,用7级移位寄存器、相加器和判决器就可以组成一识别器,具体结构如图7-16所示。7级移位寄存器的1、0端输出按照1110010的顺序连接到相加器输入,接法与巴克码的规律一致。当输入数据的“1”存入移位寄存器时,“1”端的输出电平为+1,而“0”端的输出电平为-1;反之,存入数据“0”时,“0”端的输出电平为+1,“1”端的电平为-1。
    当发送端送来的码元自右向左进入时,首先考虑一个简单的情况:假设只计算巴克码(1110010)进入的几个移位寄存器的输出,此时将有巴克码进入一位,二位……七位全部进入,第一位移出尚留六位……前六位移出只留一位等13种情况。经过计算可得相加器的输出就是自相关函数,设码元进入移位寄存器数目为a,码元尚留在移位寄存器的数目是b,这是就可以得到a、b和j之间的关系式

    根据上述关系可以得到表2,它反映了相加器输出与a、b之间的关系。

    实际上述群同步码的前后都是有信息码的,具体情况如图4(a)所示,在这种情况下巴克码识别器的输出波形如图4(b)所示。

    当七位巴克码在图4中的t1时刻,正好已全部进入了7级移位寄存器,这时7个移位寄存器输出端都输出+1,相加后得最大输出+7,如图4(b)所示,而判决器输出的两个脉冲之间的数据,称为一群数据或称为一帧数据。
    当然,对于信息而言,由于其具有的随机特性,可以考察一种最不利的情况:即当巴克码只有部分码在移位寄存器时,信息码占有的其它移位寄存器的输出全部是+1,在这样一种对于群同步最不利的情况下,相加器的输出将如表3所示。由此可得到相加器的输出波形如图5所示。图中横坐标用a表示,由a、b和j之间的关系可知,a=14-b。

    由图5可以看出,如果判决电平选择为6,就可以根据a=7时相加器输出的7,大于判决电平6而判定巴克码全部进入移位寄存器的位置。此时识别器输出一个群同步脉冲,表示群的开头。一般情况下,信息码不会正好都使移位寄存器的输出均为+1,因此实际上更容易判定巴克码全部进入移位寄存器的位置。后面还要讲到如果巴克码中有误码时,只要错一个码,当a=7时相加器输出将由7变为5,低于判决器的判决电平。因此,为了提高群同步的抗干扰性能,防止漏同步,判决电平可以改为4。但改为4以后容易发生假同步,这些问题在性能分析时要进一步讨论。
    间歇式插入法
    在某些情况下,群同步码字不再是集中插入在信息码流中,而是将它分散地插入,即每隔一定数量的信息码元,插入一个群同步码字。这种群同步码字的插入方式被称为间歇式插入法。
    当然集中式插入法和间歇式插入法在实际系统当中都有应用,例如在32路数字电话PCM系统中,实际上只有30路通电话,另外两路中的一路专门作为群同步码传输,而另一路作为其它标志信号用,这就是连贯式插入法的一个应用实例。而在24路PCM系统中,群同步则采用间歇式插入法。在这个系统中,一个抽样值用8位码表示,此时24路电话都抽样一次共有24个抽样值,192(24×8=192)个信息码元。192个信息码元作为一帧,在这一帧插入一个群同步码元,这样一帧共193个码元。24路PCM系统如图7-19所示:
    由于间歇式插入法,是将群同步码元分散的插入倒信息流中,因此,群同步码码型选择有一定的要求,其主要原则是:首先要便于收端识别,即要求群同步码具有特定的规律性,这种码型可以是全“1”码、“1”“0”交替码等;其次,要使群同步码的码型尽量和信息码相区别。例如在某些PCM多路数字电话系统中,用全“0”码代表“振铃”,用全“1”码代表“不振铃”,这时,为了使群同步码字与振铃相区别,群同步码就不能使用全“1”或全“0”。
    收端要确定群同步码的位置,就必须对接收的码进行搜索检测。一种常用检测方法为逐码移位法,它是一种串行的检测方法;另一种方法是RAM帧码检测法,它是利用RAM构成帧码提取电路的一种并行检测方法。这里将介绍逐码移位法的基本原理和实现同步的过程。

    逐码移位法的基本原理就是,由位同步脉冲(位同步码)经过n次分频以后的本地群码(频率是正确的,但相位不确定)与接收到码元中间歇式插入的群同步码进行远码移位比较,使本地群码与发送来的群同步码同步。其原理结构框图如图7:

    图7中异或门、延迟一位电路和禁门是专门用来扣除位同步码元以调整本地群码相位的,具体过程可以通过图8看到。
    设接收信码(波形c)中的群同步码位于画斜线码元的位置,后面依次安排各路信息码1、2、3(为简单起见,只包含三路信息码)。如果系统已经实现了群同步,则位同步码(波形a)经四次分频后,就可以使得本地群码的相位与收信码中的群同步码的相位一致。现在假设开始时如波形d图所示,本地群码的位置与波形c收信码中的群码位置相差两个码元位。为了易于看出逐码移位法的工作过程,假设群码为全“1”码,其余的信息码均与群码不同,为“0”。在第一码元时间,波形c与d不一致,原理图中的异或门有输出(波形e),经延迟一码元后,得波形f加于禁门,扣掉位同步码的第2个码元(波形b的第2个码元位置用加一叉号表示),这样分频器的状态在第2码元期间没有变化,因而分频器本地群码的输出仍保持和第1码元时相同。这时,它的位置只与收信码中的群码位置相差一位了(见波形d1)。

    类似地在第2码元时间,c又和d1进行比较,产生码形e1和f1,又在第3码元位置上扣掉一个位同步码,使本地群码的位置又往后移一位(波形d2)。至此以后,收信码中的群码与本地群码的位置就完全一致了,因而就实现了群同步。同时,也就提供了各路的定时信号。
    从图8表示的群同步建立原理来看,如果信息码中所有的码都与群码不同,那么最多只要连续经过N次调整,经过NTb的时间就可以建立同步了。但实际上信息码中“l”、“0”码均会出现,当出现“1”码时,在上面群同步过程的例子中,第1个位同步码对应的时间内信息码为“1”,图7-21中异或门输出 e=0,f=0禁门不起作用,不扣除第2位同步码,因此本地群码不会向右移展宽,这一帧调整不起作用,一直要到下一帧才有可能调整。假如下一帧本地群码d还是与信码中“1”码相对应,则调整又不起作用。当信息码中1、0码等概出现时,即P(1)=P(0)=0.5时,经过计算,群同步平均建立的时间近似为 (5)
    群同步系统的性能指标
    对于群同步系统而言,希望其建立的时间要短、建立同步以后应该具有较强的抗干扰能力。因此,在通常情况下,用以下三个性能指标来表示群同步性能的好坏,它们是:(1)漏同步概率P1;(2)假同步概率P2;(3)群同步平均建立时间ts。
    不同形式的同步系统,性能自然也不同。在此将主要分析集中插入方式的群同步系统的性能。
    1.漏同步概率P1
    由于噪声和干扰的影响,会引起群同步码字中一些码元发生错误,从而使识别器漏识别已发出的群同步码字,出现这种情况的概率称为漏识概率,用符号 来表示。以7位巴克码识别器为例,设判决门限为6,此时7位巴克码中只要有一位码发生错误,当7位巴克码全部进入识别器时,相加器输出就由7变5,小于判决门限6,这时就出现了漏同步情况,因此,只有一位码也不错才不会发生漏同步。若在这种情况下,将判决门限电平降为4,识别器就不会漏识别,这时判决器容许7位同步码字中有一个错误码元。
    在信息码中也可能出现与所要识别的群同步码字相同的码字,这时识别器会把它误认为群同步码字而出现假同步。出现这种情况的概率就被称为假同步概率,用符号P2表示。
    因此,计算假同步概率P2计算信息码元中能被判为同步码字的组合数与所有可能的码字数之比。设二进制信息码中1和0码等概出现,也就是P(1)=P(0)=0.5,则由该二进制码元组成n位码字的所有可能的码字数为2n个,而其中能被判为同步码字的组合数也与m有关,这里m表示判决器容许群同步码字中最大错码数,若m=0时,只有 个码字能识别;若M=1,则有 个码字能识别。以此类推,就可求出信息码元中可以被判为同步码字的组合数,这个数可以表示为 ,由此可得假同步概率的表达式为

    从式(6)和式(7)可以看到,随着m的增大,也就是随着判决门限电平降低,P1减小,但P2将增大,所以这两项指标是相互矛盾的。所以,判决门限的选取要兼顾漏同步概率和假同步概率。
    3.群同步平均建立时间ts
    对于连贯式插入的群同步而言,设漏同步和假同步都不发生,也就是P1 = 0和P2 = 0。在最不利的情况下,实现群同步最多需要一群的时间。设每群的码元数为N(其中m位为群同步码),每码元时间为Tb,则一群码的时间为NTb。考虑到出现一次漏同步或一次假同步大致要多花费 的时间才能建立起群同步,故群同步的平均建立时间大致为:

    群同步的保护
    1.连贯式插入法中的群同步保护
    连贯式插入法中的群同步保护电路如图9。在群同步尚末建立时,系统处于捕捉态,状态触发器C的Q端为低电平,群同步码字识别器的判决门限电平较高,因而就减小了假同步概率P2。这时在保护电路中,由于把判决门限电平调高,假同步的概率已很小,故保护电路中的n分频器被置零,禁止位同步n分频后输出。这里的n表示一帧数据的长度,因此,在置零信号无效时,位同步n分频后可以输出一个与群同步同频的信号,但脉冲位置不能保证与群同步脉冲位置相同,而这个脉冲位置也正是需要捕捉态确定的。

    从图9可以看到,为了减小假同步的概率,必须连续 次接收的码元与本地群码相一致,才被认为是建立了同步,采用这种方法可使假同步的概率大大减小。
    状态触发器C在同步末建立时处于“捕捉态”(此时Q端为低电平)。本地群码和收码只有连续n1次一致时,n1计数电路才输出一个脉冲使状态触发器的Q端由低电平变为高电平,群同步系统就由捕捉态转为维持态,表示同步已经建立。这样收码就可通过与门1加至解调器。偶然的一致是不会使状态触发器改变状态的,因为 次中只要有一次不一致,就会使计数电路置“0”。
    同步建立以后,可以利用状态触发器C和n2计数电路,来防止漏同步以提高同步系统的抗干扰能力。一旦转为维持状态以后,触发器C的Q反端变为低电乎,将与门2封闭。这时即使由于某些干扰使e有输出,也不会调整本地群码的相位。如果是真正的失步,e就会不断地将输出加到n2计数电路,同时e的反也不断将 计数电路置“0”。这时n1计数电路也不会再有输出加到n2计数电路的置“0”端上,而当n2计数电路输入脉冲的累计数达到n2时,就输出一个脉冲使状态触发器由维持态转为捕捉态,C触发器的Q反端转为高电平。这样,一方面与门2打开,群同步系统又重新进行逐码移位,另一方面封闭与门1,使解调器暂停工作。由此可以看出,将逐码移位法群同步系统划分为捕捉态和维持态后,既提高了同步系统的可靠性,又增加了系统的抗干扰能力。

    展开全文
  • 次BeginScene/EndScene,还是Present?
  • 什么是I,P,B

    万次阅读 多人点赞 2011-06-30 18:53:00
    简单地说,I帧是关键帧,属于帧内压缩。就是和AVI的压缩是一样的。 P是向前搜索的意思。B是双向搜索。他们都是基于I帧来压缩数据。   I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧...

    视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中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 下的率失真性能对比。






    展开全文
  • matlab中基于输出是什么意思

    千次阅读 2010-10-16 10:41:00
    21.MATLAB支持的几种图像文件格式: <br />⑴JPEG(Joint Photogyaphic Expeyts Group):种称为联合图像专家组的图像压缩格式。 <br />⑵BMP(Windows Bitmap):有1位、4位、8位、24位非压缩图像,8...
    21.MATLAB支持的几种图像文件格式:

    ⑴JPEG(Joint Photogyaphic Expeyts Group):一种称为联合图像专家组的图像压缩格式。

    ⑵BMP(Windows Bitmap):有1位、4位、8位、24位非压缩图像,8位RLE(Run length Encoded)的图像。文件内容包括文件头(一个BITMAP FILEHEADER数据结构)、位图信息数据块(位图信息头BITMAP INFOHEADER和一个颜色表)和图像数据。

    ⑶PCX(Windows Paintbrush):可处理1位、4位、8位、16位、24位等图像数据。文件内容包括文件头、图像数据和扩展色图数据。

    ⑷TIFF(Tagged Iamge File Format):处理1位、4位、8位、24位非压缩图像,1位、4位、8位、24位packbit压缩图像,1位CCITT压缩图像等。文件内容包括文件头、参数指针表与参数域、参数数据表和图像数据四部分。

    ⑸PNG(Portable Network Graphics):包括1位、2位、4位、8位和16位灰度图像,8位和16位索引图像,24位和48位真彩色图像。

    ⑹GIF(Graphics Interchange Format):任何1位到8位的可交换的图像。

    ⑺HDF(Hierarchial Data Format):有8位、24位光栅图像数据集。

    ⑻ICO(Windows Icon resource):有1位、4位、8位非压缩图像。

    ⑼CUR(Windows Cursor resource):有1位、4位、8位非压缩图像。

    ⑽XWD(X Windows Dump):包括1位、8位Zpixmaps,XYBitmaps,XYPixmmmaps。

    ⑾RAS(Sun Raster image):有1位bitmap、8位索引、24位真彩色和带有透明度的32位真彩色。

    ⑿PBM(Portable Bitmap)。

    ⒀PGM(Portable Graymap)。

    ⒁PPM(Portable Pixmap)。

    2.MATLAB支持五种图像类型,即二值图像、索引图像、灰度图像、RGB图像和多帧图像阵列。

    图像类型


    Double数据


    uint8和uint16数据



    二值图像


    图像为m×n的整数矩阵,元素值范围[0,1]


    图像为m×n的整数矩阵,元素值范围[0,1]



    索引图像


    图像为m×n的整数矩阵,元素值范围[0,p]


    图像为m×n的整数矩阵,元素值范围[0,p-1]



    灰度图像


    图像为m×n的浮点数矩阵,元素值范围[0,1]


    图像为m×n的整数矩阵,元素值范围[0,255]或[0,65535]



    RGB图像


    图像为m×n×3的浮点数矩阵,元素值范围[0,1]


    图像为m×n×3的整数矩阵,元素值范围[0,255]或[0,65535]








    其中,多帧图像阵列是由多帧图像组成的,每一帧图像可以为前四种图像中的一种,但组成一个多帧图像阵列的图像必须为同一种。cat函数可以将具有相同尺寸的几个独立图像存成多帧文件。对于多帧图像也可以从中提取单帧。




    2.2.2 图像类型判断及转换






    1.在MATLAB中如果要判断一个图像文件的类型,可使用如下指令:

    l         isbw:若图像为二值图像,则返回真。

    l         isgray:若图像为灰度图像,则返回真。

    l         isind:若图像为索引图像,则返回真。

    l         isrgb:若图像为RGB图像,则返回真。

    2.在MATLAB系统中,要将一个类型的图像文件转换成另一个类型的图像文件,只需将前一个文件的图像数据用imread读出,再用imwrite以适当的格式写到后一个图像文件中去即可。另外,要将灰度图像I转换成RGB图像,可运用cat指令。cat函数可以把一些单一的图像合并成图像序列。在图像序列中每个图像需有相同的大小,如果是索引图像,色图也要一致。

    此外,MATLAB还提供了若干函数,用于图像类型的转换。这些函数有:

    l         dither:用抖动法(dithering)转换图像。该函数通过颜色抖动(颜色抖动即改变边沿像素的颜色,使像素周围的颜色近似于原始图像的颜色,从而以空间分辨率来换取颜色分辨率)来增强输出图像的颜色分辨率。该函数可以把RGB图像转换成索引图像或把灰度图像转换成二值图像。

    l         gray2ind:灰度图像或二值图像向索引图像转换。

    l         grayslice:设定阈值将灰度图像转换为索引图像。

    l         im2bw:设定阈值将灰度、索引、RGB图像转换为二值图像。

    l         im2double:将图像数组转换为double型。

    l         im2uint8:将图像数组转换为uint8型。

    l         im2uint16:将图像数组转换为uint16型。该函数不支持二值图像序列的转换。

    l         ind2gray:索引图像向灰度图像转换。

    l         ind2rgb:索引图像向RGB图像转换。

    l         mat2gray:将一个数据矩阵转换为灰度图像。

    l         rgb2gray:RGB图像向灰度图像转换或将彩色色图转换成灰度色图。

    l         rgb2ind:RGB图像向索引图像转换。包含三种不同方法:均衡量化、最小值量化、色图映射。

    l         im2java:一般图像向Java图像转换。

    l         label2rgb:标志图像向RGB图像转换。




    2.2.3 图像的查询及读写






    在MATLAB中要查询一个图像文件的信息,只要用imfinfo指令加上文件及其完整路径名即可。函数调用格式为:

    info = imfinfo(filename,fmt)

    info = imfinfo(filename)

    参数fmt对应于所有图像处理工具箱中所有支持的图像文件格式。




    MATLAB提供了两个重要的用于图像文件的读写的指令,分别是从图像文件中读取数据的imread,以及将数据写入到图像文件中的imwrite。

    1.imread的常见调用格式为:

    A = imread(filename,fmt)

    其作用是将文件名用字符串filename表示的,扩展名用fmt表示的图像文件中的数据读到矩阵A中。如果filename所指的为灰度级图像,则A为一个二维矩阵;如果filename所指的为RGB图像,则A为一个m×n×3的三维矩阵。Filename表示的文件名必须在MATLAB的搜索路径范围内,否则需指出其完整路径。

     imread的其他几种重要的调用格式为:

    [X,map] = imread(filename.fmt)

    […] = imread(filename)

    […] = imread(URL,…)

    […] = imread(…,idx)           (CUR,ICO and TIFF only)

    […] = imread(…,’frames’,idx)    (GIF only)

    […] = imread(…,ref)           (HDF only)

    […] = imread(…,’BackgroundColor’,BG)    (PNG only)

    [A,map,alpha] = imread(…)      (ICO,CUR and PNG only)

    上面一些参数的含义如下:idx是指读取图标(cur、ico、tiff)文件中第idx个图像,默认值为1。’frame’,idx是指读取gif文件中的图像帧,idx值可以是数量、向量或’all’。ref是指整数值。alpha是指透明度。

    2.imwrite的常用调用格式为:

    imwrite(A,filename,fmt)

    imwrite(X,map,filename,fmt)

    imwrite(…,filename)

    imwrite(…,Param1,Val1,Param2,Val2…)

    其中imwrite(…,Param1,Val1,Param2,Val2…)可以让用户控制HDF、JPEG、TIFF等一些图像文件格式的输出特性。

     在MATLAB中,默认的保存类型是uint8。由于PNG和TIFF格式支持16位的图像,所以保存这类图像时,保存类型就是uint16。

    2.2.4 图像的显示






    显示图像的最基本的手段是使用image函数。该函数还产生了图像对象的句柄,并允许对对象的属性进行设置。此外,imagesc函数也具有image的功能,所不同的是imagesc函数还自动将输入数据比例化,以全色图的方式显示。

    imshow函数比image和imagesc更常用,它能自动设置句柄图像的各种属性。imshow可用于显示各类图像。对于每类图像,调用方法如下:

    l         imshow filename:显示图像文件。

    l         imshow(BW):显示二值图像,BW为黑白二值图像矩阵。

    l         imshow(X,map):显示索引图像,X为索引图像矩阵,map为色彩图示。

    l         imshow(I):显示灰度图像,I为二值图像矩阵。

    l         imshow(RGB):显示RGB图像,RGB为RGB图像矩阵。

    l         imshow(I,[low high]):将非图像数据显示为图像,这需要考虑数据是否超出了所显示类型的最大允许范围,其中[low high]用于定义待显示数据的范围。

    有关图像显示的函数或其辅助函数,除了上述的以外,MATLAB还提供了一些用于进行图像的特殊显示的函数。

    l         colorbar:为图像的显示增加一个颜色条,这一用法对于了解被显示图像的灰度级别特别有用。

    l         getimage:获取图像数据。

    l         immovie:将多帧索引图像制作成连续图像格式。其调用格式为:

    mov = immovie(D,map)

    不过这种功能只对索引图像有效,其中D为多帧索引图像阵列,map为索引图像的对应色阶。对于其他类型图像,则需要首先将其转换为索引图像。

    l         montage:多帧图像的一次显示。它能将每一帧分别显示在一幅图像的不同区域,所有子区的图像都用同一个色彩条。

    l         movie:播放多帧连续图像。

    l         subimage:在一个图形区域内显示多个图像。

    l         truesize:调整图像显示的尺寸。

    l         warp:显示图像的纹理表面图。前面提到的图像显示手段都只能在二维平面上显示,MATLAB6.5的一个强大功能是能将平面图像显示在空间三维曲面上。这是由warp函数的纹理成图功能来实现的,该功能能通过双线性插值将平面图像投影到三维曲面上。

    l         zoom:将图像或二维图形进行放大或缩小显示。zoom本身是是一个开关键,zoom on用于打开缩放模式,zoom off用于关闭该模式,zoom in用于放大局部图像,zoom out用于缩小图像。

    至于多个图像的显示,则可分为两个方面:在不同的图形窗口显示不同的图像,可以用figure指令来实现;在同一个图形窗口显示多图,可以用subplot来实现。

    第三章 图像运算






    3.1 图像的点运算






    点运算将输入图像映射为输出图像,输出图像每个像素点的灰度值仅由对应的输入像素点的值决定。它常用于改变图像的灰度范围及分布,是图像数字化及图像显示的重要工具。点运算因其作用性质,也被称为对比度增强、对比度拉伸或灰度变换。在真正进行图像处理之前,有时可以用点运算来克服图像数字化设备的局限性。



    点运算实际上是灰度到灰度的映射过程。点运算不会改变图像内像素点之间的空间关系。设输入图像为A(x, y),输出图像为B(x, y),则点运算可表示为:



    B(x, y) = f [A(x, y)]                (3-1)

    点运算可完全由灰度变换(gray-scale transformation)函数s=f (r)决定,后者描述了输入灰度级与输出灰度级之间的映射关系。图像的点运算分为线性点运算和非线性点运算两种。




    3.1.1 线性点运算






    线性点运算是指灰度变换函数f为线性函数时的运算。

    如图3.1,当a>1时,输出图像对比度增大;当a<1时,输出图像对比度降低;当a=1,b=0时,输出图像就是输入图像的简单复制;当a=1,b≠0时,仅使输出图像的灰度值上移或下移,其效果是使整个图像更亮或更暗。如果a为负值,暗区域将变亮,亮区域将变暗,点运算完成了图像求补。

    除了调节对比度以外,还有一种典型的线性点运算的应用就是灰度标准化。设灰度图像为I[W][H],其中W表示图像宽度,H表示图像的高度,那么灰度图像的平均灰度和方           图3.1 线性函数

    差由如下计算公式得到:

    平均灰度:                        

                                   (3-2)

    方差:

                                (3-3)

    可以将其变换为具有相同均值和方差的变换函数(线性映射),其形式如下:

                    (3-4)

    其中σ0和u 0为给定的变换参数。灰度标准化可以用来生成一些常用的平均模型。




    3.1.2 非线性点运算






    非线性点运算对应于非线性映射函数,典型的映射包括平方函数、对数函数、截取函数(窗口函数)、域值函数、多值量化函数等。

    阈值化处理是最常用的一种非线性点运算,它的功能是选择一阈值,将图像二值化,然后使用生成的二进制图像进行图像分割及边缘跟踪等处理。

    直方图均衡化也是一种非常常用的非线性点运算。它是指将一个已知灰度分布的图像使用某种非线性灰度变换函数进行计算,使运算结果变成一幅具有均匀灰度分布的新图像。经过直方图均衡化的点运算处理后,实际的直方图将呈现参差不齐的外形,这是由于灰度级的可能个数是限造成的。在一些灰度级处可能没有像素,在另外一些灰度级处则像素很拥挤。




    点运算的MATLAB实现:

    I=imread('rice.png');

    rice=double(I);

    rice2=rice*0.5+50;

    J=uint8(rice2);

    subplot(1,2,1),imshow(I);

    subplot(1,2,2),imshow(J);

    转载的地址忘啦。呵呵
    展开全文
  • 简单地说,I帧是关键帧,属于帧内压缩。就是和AVI的压缩是一样的。P是向前搜索的意思。B是双向搜索。他们都是基于I帧来压缩数据。 I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以...

    视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中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 下的率失真性能对比。


    转载于:https://www.cnblogs.com/timmy6688/archive/2013/05/07/3064406.html

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 214
精华内容 85
关键字:

一帧帧是什么意思