您好,欢迎访问三七文档
H.261读书笔记1.H.261简介H.261提供了一种视频编解码方案,这种方案的编码速率为p*64kbit/s,p的取值为1~30。2.H.261的图象输入格式H.261规定图象输入格式有两种:CIF和QCIF。编码器必须支持QCIF格式,而CIF格式可选。但讨论时常用CIF格式。CIF格式规定每帧图象亮度分量Y的横向像素为352个,纵向像素为288个。图象色度分量CB,CR的横向像素为176个,纵向像素为144个。QCIF格式规定每帧图象亮度分量Y的横向像素为176个,纵向像素为144个。图象色度分量CB,CR的横向像素为88个,纵向像素为72个。H.261规定的帧抽样速率为30000/1001≈29.97帧/秒。每两帧传送图象之间可以有最多3帧不传。3.H.261编解码总体框图T1502430-90/d01CodingcontrolSourcecoderSourcedecoderVideomultiplexcoderVideomultiplexdecoderTransmissionbufferReceivingbufferTransmissioncoderCodedbitstreamVideosignala)Videocoderb)VideodecoderExternalcontrolReceivingdecoderFIGURE1/H.261Outlineblockdiagramofthevideocodec4.信源编码器框图T1502441-90/d03CCTQQTFPptqzqvfTQPFCCptqzqvfVideoinTovideomultiplexcoderTransformQuantizerPicturememorywithmotioncompensatedvariabledelayLoopfilterCodingcontrolFlagforINTRA/INTERFlagfortransmittedornotQuantizerindicationQuantizingindexfortransformcoefficientsMotionvectorSwitchingon/offoftheloopfilter–1–1FIGURE3/H.261Sourcecoder信源编码器有两种编码模式:帧内模式(INTRA)和帧间模式(INTER)。帧内模式表示对一帧内的信息进行编码,帧间模式表示通过帧与帧之间的关系进行编码。帧内模式时,图中的单刀双掷开关拨在上方,此时输入宏块MB数据,MB经过开关输入DCT变换方框T,每次变换只能是一个8*8数据块,输出DCT系数,进入量化器Q,一个MB对应一个量化步长,此量化步长由后续的传输缓冲存储器根据存储余量决定后告知CC,再由CC传给量化器Q和反量化器Q-1,经量化后的数据,一路从信源编码器输出,进入后续的图像复用编码器。另一路进入反馈环路中的反量化器Q-1,经反量化后到反变换器T-1,经反DCT变换后,恢复原来的图像数据,进入方框P中的帧存储器,直到全帧图像存完。帧间模式时,单刀双掷开关拨在图示位置,此时方框P中帧存储器已经存有前帧图像数据,当后帧中的宏块MB到来时经过如下步骤:1)首先送到方框P中的模式判据,由模式判据公式决定应采取的模式,若判定结果是帧间模式,则进入第二步,否则按帧内模式进行。2)根据运动估计公式,在后帧MB所对应的前帧MB的±15个象素范围内搜索最匹配的亮度块,即4个8×8亮度数据块,找到最佳前帧匹配数据块后,即得到运动矢量的两个分量H和V,此时H和V可输出到后续的图像复用编码器中去供编码输出。3)由运动矢量所确定的前帧4个8×8亮度数据块,和2个8×8色度数据块,从方框P的帧存储器中逐块输出数据P(x+H,y+V),每块数据通过环路滤波器乘滤波系数后记为PF(x+H,y+V),之后分为两路,一种向上到减法器,与后帧数据块C(x,y)相减后得差值,这就是宏块预测误差。此误差经过上开关进入DCT变换和量化器,输出后分成两路,一路到图像复用编码器,另一路向下进入反馈回路,经过反量化,反DCT变换后,进入加法器。由环路滤波器输出的另一路数据PF(x+H,y+V)向右经过下开关后,与预测误差C(x,y)-PF(x+H,y+V)在加法器中相加后,得到后帧数据C(x,y)存在帧存储器中。由此下去直到后帧全帧数据存完,往后则开始下一帧操作。H.261中规定运动补偿中水平方向正值为预测像素在前帧像素的左边,垂直方向正值为预测像素在前帧像素的上边。运动补偿只用于帧间模式。5.图象复用编码器1)图像数据的层次为了有秩序地传输每帧图像数据,把一帧图像数据分成四个层次,即:帧(picture),块组(GOB),宏块(MB),和数据块(B)。(a)数据块B包含8×8个象素。亮度和色度信号均以此数据块作为基本编码单元。(b)宏块MB包含4个亮度数据块,色度CB,CR各有一个数据块,因此MB内共有6个数据块,顺序如下图所示。在宏块MB中,Y,CB,CR描述同一像区。123456YCBCR(c)块组GOB包含33个宏块MB,横向11块MB,纵向有三块MB,其先后次序如下图所示。123456789101112131415161718192021222324252627282930313233(d)按照CIF格式,一帧图像包含12个块组GOB,而按照QCIF格式,每帧只有3个块组GOB。如下图所示。12134356578QCIF9101112CIF2)图像复用编码器图像复用编码器把上述层次的数据按一定方式连接起来,构成一帧数据流。如下图所示。帧首GOB数据GOB数据GOB首MB数据MB数据MB首块数据块数据TCOEFFTCOEFFEOBa)帧首结构帧首结构如下图所示,图中方框表示固定长度,椭圆框表示可变长度。(1)PSC:20bit。固定值为00000000000000010000。(2)TR:5bit。它的取值为前面传送帧的TR值加上前面传送帧与本帧之间未传送的帧个数再加1。(3)PTYPE:6bit。Bit1:Splitscreenindicator,1为有,0为没有。Bit2:Documentcameraindicator,1为有,0为没有。Bit3:Freezepicturerelease,1为有,0为没有。Bit4:Sourceformat,0为QCIF,1为CIF。Bit5:OptionalstillimagemodeHI_RES,0为有,1为没有。Bit6:保留比特,设定为1。(4)PEI:1bit。当PEI为1时,表示后面有PSPARE字段,0表示没有。(5)PSPARE:0/8/16…bit。如果PEI设定为1,那么后面将增加9个bit。其中前8个bit表示PSPARE,最后一个bit表示新一段的PEI指示。CCITT没有对PSPARE进行定义,因此PSPARE全部设定为1。b)GOB首结构GOB首结构如下图所示,图中方框表示固定长度,椭圆框表示可变长度。(1)GBSC:16bit。固定值为0000000000000001。(2)GN:4bit。表示GOB块组的序号,GOB块组的序号已在前面的图中介绍。(3)GQUANT:5bit。指示块组量化步长,用于整个块组,直到有宏块变更量化步长。(4)GEI:1bit。当GEI为1时,表示后面有GSPARE字段,0表示没有。(5)GSPARE:0/8/16…bit。如果GEI设定为1,那么后面将增加9个bit。其中前8个bit表示GSPARE,最后一个bit表示新一段的GEI指示。CCITT没有对GSPARE进行定义,因此GSPARE全部设定为1。c)MB层结构MB层结构如下图所示,图中方框表示固定长度,椭圆框表示可变长度。(1)MBA:指示在一个GOB块组中本宏块的序号。宏块序号已在前面的图中给出。MBA为变长编码,编码表如下图所示。当本宏块没有信息时,宏块不传送。MBACodeMBACode1112131415161718191011121314151610110100011001000011000100000111000011000001011000010100000100100001000000001110000011000000101111718192021222324252627282930313233MBAstuffingStartcode00000101100000010101000001010000000100110000010010000001000110000010001000000100001000001000000000001111100000011110000000111010000001110000000011011000000110100000001100100000011000000000011110000000000000001(2)MTYPE:长度可变。MTYPE字段给出了本宏块的信息以及有哪些数据要素。MQUANT:5bit。MQUANT字段是否出现在MTYPE中有指示。MQUANT指示后续数据块的量化步长,直到被新的MQUANT覆盖。MVD:长度可变。MVD字段先传输水平方向的矢量,然后传输垂直方向的矢量。下图是MVD矢量的编码表。MVDCode–16&16–15&17–14&18–13&19–12&20–11&21–10&22o–9&23o–8&24o–7&25o–6&26o–5&27o–4&28o–3&29o–2&30o–1&23o–0&23o–1&23o–2&–30o–3&–29o–4&–28o–5&–27o–6&–26o–7&–25o–8&–24o–9&–23–10&–22–11&–21–12&–20–13&–19–14&–18–15&–17000000110010000001101100000011101000000111110000010000100000100011000001001110000010101100000101111000001111110000100111000001011110000011111100001111111000111111110011101001101000010011001000010010010111111100010111111000011011110000101011100001000110000001101100000010110000000101001000001001010000010001000000100000000000111100000001110000000011010CBP:CBP指示了本宏块中有哪些数据块要编码。宏块中数据块的编号已在前面的图中表示。CBP通过以下公式计算模式号:32P116P28P34P42P5P6。如果数据块n要编码,那么Pn为1,否则为0。得到模式号后,CBP进行变长编码,编码表如下:CBPCodeCBPCode60646816321248204028445256616162622436636365691733661018343711191110000011010000110000001011000010101000100110001001000010001000100000000111100001110000011010000110000001011000010100000100100001000000001111000011100000110100001100000010111000101100001010100010100000100110001001000010001000100000000111110001111000011101351349214114502242155123432537263829455357304654583147555927390001110000001101100001101000001100100001100000001011100001
本文标题:H.261读书笔记
链接地址:https://www.777doc.com/doc-4723474 .html