我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 帧内编码 >

H264视频压缩编码标准

归档日期:08-04       文本归类:帧内编码      文章编辑:爱尚语录

  H264视频压缩编码标准._音频/视频技巧_PPT制作技巧_实用文档。H264

  H.264/AVC H.264/AVC编解码器 H.264/AVC的结构 帧内预测 帧间预测 变换与量化 SLIDE 1 H.264/AVC H.264/AVC编解码器 H.264/AVC的结构 帧内预测 帧间预测 变换与量化 SLIDE 2 H.264/AVC编解码器 H.264编解码器特点 H.264并不明确地规定一个编解码器如何实现, 而是规定了一个编码的视频比特流的句法, 和该比特流的解码方法,各个厂商的编码器 和解码器在此框架下应能够互通,在实现上 具有较大灵活性,而且有利于相互竞争。 SLIDE 3 H.264/AVC编解码器 H.264编码器 – 编码器采用的仍是变换和预测的混合编码法。输入的帧或场Fn以宏块为 单位被编码器处理。首先,按帧内或帧间预测编码的方法进行处理。 如果采用帧内预测编码,其预测值PRED(图中用P表示)是由当前片中 前面已编码的参考图像经运动补偿(MC)后得出,其中参考图像用F’n1表示。为了提高预测精度,从而提高压缩比,实际的参考图像可在过 去或未来(指显示次序上)已编码解码重建和滤波的帧中进行选择。 预测值PRED和当前块相减后,产生一个残差块Dn,经块变换、量化后产 生一组量化后的变换系数X,再经熵编码,与解码所需的一些边信息 (如预测模式量化参数、运动矢量等)一起组成一个压缩后的码流。 正如上述,为了提供进一步预测用的参考图像,编码器必须有重建图像 的功能。因此必须使残差图像经反量化、反变换后得到的Dn’与预测值P 相加,得到uFn’(未经滤波的帧)。为了去除编码解码环路中产生的噪 声,为了提高参考帧的图像质量,从而提高压缩图像性能,设置了一个 环路滤波器,滤波后的输出Fn’即重建图像可用作参考图像。 – – – SLIDE 4 H.264/AVC编解码器 H.264解码器 – 由 图 1 可 知 , 由 编 码 器 的 NAL 输 出 一 个 压 缩 后 的 H.264压缩比特流。由图2,经熵解码得到量化后的 一组变换系数 X,再经反量化、反变换,得到残差 Dn’。利用从该比特流中解码出的头信息,解码器 就产生一个预测块PRED,它和编码器中的原始PRED 是相同的。当该解码器产生的PRED与残差Dn’相加 后,就产生 uFu’ ,再经滤波后,最后就得到滤波 后的Fn’,这个Fn’就是最后的解码输出图像。 SLIDE 5 H.264/AVC编解码器 Dn Fn 当前 + ME 帧间 T Q X 重排序 熵编码 NAL Fn-1 参考 MC 帧内预 测选择 帧内 预测 P 帧内 F n 重建 滤 波 + uF n Dn T-1 Q-1 + 图1 H.264编码器 SLIDE 6 H.264/AVC编解码器 Fn-1 参考 帧间 MC 帧内 预测 P 帧内 F n 重建 滤 波 + uF n T-1 + Q-1 X 重排序 熵编码 NAL 图2 H.264解码器 SLIDE 7 H.264/AVC H.264/AVC编解码器 H.264/AVC的结构 帧内预测 帧间预测 变换与量化 SLIDE 8 H.264/AVC的结构 名词解释 – 场和帧 视频的一场或一帧可用来产生一个编码图像。在电 视中,为减少大面积闪烁现象,把一帧分成两个隔 行的场。 SLIDE 9 H.264/AVC的结构 名词解释 – 宏块、片: 一个编码图像通常划分成若干宏块组成,一个 宏块由一个16×16亮度像素和附加的一个8×8 Cb和一个 8×8 Cr彩色像素块组成。每个图象中,若干宏块被排列成 片的形式。 I片只包含I宏块,P片可包含P和I宏块,而B片可包含B和I宏 块。 I宏块利用从当前片中已解码的像素作为参考进行帧内预测。 P宏块利用前面已编码图象作为参考图象进行帧内预测, 一个帧内编码的宏块可进一步作宏块的分割:即16×16、 16×8、8×16或8×8亮度像素块(以及附带的彩色像素); 如果选了8×8的子宏块,则可再分成各种子宏块的分割,其 尺寸为8×8、8×4、4×8或4×4亮度像素块(以及附带的彩 色像素)。 B宏块则利用双向的参考图象(当前和未来的已编码图象帧) 进行帧内预测。。 SLIDE 10 – – – – – H.264/AVC的结构 档次和级 – – H.264规定了三种档次,每个档次支持一组特定的编码功能, 并支持一类特定的应用。 1)基本档次:利用I片和P片支持帧内和帧间编码,支持利 用基于上下文的自适应的变长编码进行的熵编码(CAVLC)。 主要用于可视电话、会议电视、无线通信等实时视频通信; 2)主要档次:支持隔行视频,采用B片的帧间编码和采用加 权预测的帧内编码;支持利用基于上下文的自适应的算术编 码(CABAC)。主要用于数字广播电视与数字视频存储; 3)扩展档次:支持码流之间有效的切换(SP和SI片)、改 进误码性能(数据分割),但不支持隔行视频和CABAC。主 要用于网络的视频流,如视频点播 图3为H.264各个档次具有的不同功能,可见扩展档次包括了 基本档次的所有功能,而不能包括主要档次的。每一档次设 置不同参数(如取样速率、图像尺寸、编码比特率等),得 到编解码器性能不同的级。 SLIDE 11 – – – H.264/AVC的结构 图3 H.264档次 SLIDE 12 H.264/AVC的结构 编码数据格式 – H.264支持4:2:0的逐行或隔行视频的编码和解码。 SLIDE 13 H.264/AVC的结构 参考图像 – 可从一组前面或后面已编码图像中选出一个或两个 与当前最匹配的图像作为帧间编码间的参数图像, – H.264中最多可从15个参考图像中进行选择,选出 最佳的匹配图像。 – 对于P片中帧间编码宏块可从表“0”中选择参数图 像;对于B片中的帧间编码宏块和宏块分割的预测, 可从表“0”和“1”中选择参考图像。 SLIDE 14 H.264/AVC的结构 片和片组 – 片 ? 一个视频图像可编码成一个或更多个片,每片包含 整数个宏块(MB),即每片至少一个MB,最多时每 片包含整个图像的宏块。 ? 设片的目的是为了限制误码的扩散和传输,使编码 片相互间是独立的。某片的预测不能以其它片中的 宏块为参考图像,这样某一片中的预测误差才不会 传播到其它片中去。 ? 编码片共有5种不同类型,I片、P片、B片外,还 有SP片和SI片。其中SP(切换P)是用于不同编码 流之间的切换。 SLIDE 15 H.264/AVC的结构 图4 片的句法结构 SLIDE 16 H.264/AVC的结构 片和片组 – 片组 片组是一个编码图象中若干MB的一个子集,它可包 含一个或若干个片。 – 在一个片组中,每片的MB按光栅扫描次序被编码, 如果每幅图象仅取一个片组,则该图象中所有的MB 均按光栅扫描次序被编码。 – 还有一种片组,叫灵活宏块次序(FMO),它可用灵 活的方法,把编码MB序列映射到解码图象中MB的分 配用MB到片组之间的映射来确定,它表示每一个MB 属于哪个片组。表1 为MB到片组的各种映射类型。 SLIDE 17 H.264/AVC的结构 表1 MB到片组的映射 名称 类型 0 1 2 3 交错 散乱 前景和背景 Box-out MB游程被依次分配给每一块组(图8) 每一片组中的MB被分散在整个图象中(图9) 例见图10 从帧的中心开始,产生一个箱子,其MB属于片组 0,其它MB属于片组(图11) 描述 4 5 6 光栅扫描 手绢 显式 片组0包含按光栅扫描次序从顶-左的所有MB, 其余MB属片组1(图11) 片组0包含从顶-左垂直扫描次序的MB,其余MB 属片组1(图11) 每一Mbslice_group_id,用于指明它的片组(即MB 映射完全是用户定义的) SLIDE 18 H.264/AVC的结构 图5 交错型片组 图6 散乱型片组 图7 前景和背景型片组 SLIDE 19 H.264/AVC的结构 图8 片组 SLIDE 20 H.264/AVC H.264/AVC编解码器 H.264/AVC的结构 帧内预测 帧间预测 变换与量化 SLIDE 21 帧内预测 – 在帧内预测模式中,预测块P是基于已编码重建块 和当前块形成的。对亮度像素而言,P块用于4×4 子块或者16×16宏块的相关操作。4×4亮度子块有 9种可选预测模式,独立预测每一个4×4亮度子块, 适用于带有大量细节的图像编码;16×16亮度块有 4种预测模式,预测整个16×16亮度块,适用于平 坦区域图像编码;色度块也有4种预测模式,类似 于16×16亮度块预测模式。编码器通常选择使P块 和编码块之间差异最小的预测模式。 SLIDE 22 帧内预测 4×4亮度预测模式 – 如图6.14所示,4×4亮度块的上方和左方像素A~M 为已编码和重构像素,用作编解码器中的预测参考 像素。a~p为待预测像素,利用A~M值和9种模式 实现。其中模式2(DC预测)根据A~M中已编码像素 预测,而其余模式只有在所需预测像素全部提供才 能使用。图6.15箭头表明了每种模式预测方向。对 模式3~8,预测像素由A~M加权平均而得。例如, 模式4中,d=round(B/4+C/2+D/4)。 SLIDE 23 帧内预测 图1 SLIDE 24 帧内预测 a) b) 图2 a)利用像素A-M对方块中a-p像素进行帧内4×4预测 b)帧内4×4 预测的8个预测方向 SLIDE 25 帧内预测 图3 4×4亮度块预测模式 SLIDE 26 帧内预测 Example: 4x4 块 ,9种预测模式 (0-8) 对于当前块的最佳模式是:模式 7 (vertical-right) SLIDE 27 帧内预测 图4 SLIDE 28 帧内预测 16×16亮度预测模式 – 宏块的全部16×16亮度成分可以整体预测,有4种 预测模式,如表2和图5所示。 图5 16×16预测模式 SLIDE 29 帧内预测 表2 16×16预测模式 描 模式 模式0(垂直) 模式1(水平) 模式2(DC) 模式3(平面) 述 由上边像素推出相应像素值 由左边像素推出相应像素值 由上边和左边像素平均值推出相应像素值 利用线形“plane”函数及左、上像素推出相应像素值,适用于亮 度变化平缓区域 SLIDE 30 帧内预测 图6 16×16 宏块 举例:图6给出了一个左上方像素 已编码的亮度宏块。图7 给出了4 种预测模式预测结果。其中模式 3最 匹配原始宏块。帧内16×16模式适用 于图像平坦区域预测。 图7 帧内 16×16 预测块 SLIDE 31 帧内预测 8×8色度块预测模式 – 每个帧内编码宏块的8×8色度成分由已编码左上方 色度像素预测而得,两种色度成分常用同一种预测 模式。 – 4种预测模式类似于帧内16×16预测的4种预测模式, 只是模式编号不同。其中DC(模式0)、水平(模式 1)、垂直(模式2)、平面(模式3)。 SLIDE 32 帧内预测 ? 帧内预测模式帧内预测模式编码 ? 例如 :如果A块和B块的最优预测模式均是预测 模式2,那么,最可能当前块C的最优预测模式 是模式2 图8 帧内预测模式编码 SLIDE 33 帧内预测 对于当前块C, 编解码器按照如下方法计算 probable prediction mode= min{prediction mode of A, prediction modes of B} 当A (或者 B)的预测模式不可用时, prediction mode of A= 2. 例如 A 和 B块的预测模式分别为 3 和1 most probable mode for block C =1 SLIDE 34 帧内预测 编码器为每个4x4 块发送一个标记 flag,解码器按照如下方式 解码 If flag==1, prediction mode=most_probable_mode If flag==0 If rem_intra4×4_pred_mode most_probable_mode prediction mode=rem_intra4×4_pred_mode else prediction mode=rem_intra4×4_pred_mode+1 ? 这样表示9中预测模式只需要8个值 (0 to 7) SLIDE 35 帧内预测 SLIDE 36 H.264/AVC H.264/AVC编解码器 H.264/AVC的结构 帧内预测 帧间预测 变换与量化 SLIDE 37 帧间预测 树状结构运动补偿 – 每个宏块(16×16像素)可以4种方式分割:一个 16×16,两个16×8,两个8×16,四个8×8。其运 动补偿也相应有四种。而8×8分割还可以有四种方 式的分割:一个8×8,两个4×8或两个8×4及4个 4×4。这种分割下的运动补偿则称为树状结构运动 补偿。 SLIDE 38 帧间预测 图1 宏块分割 SLIDE 39 帧间预测 树状结构运动补偿 – 每个分割或子宏块都有一个独立的运动补偿。每个 MV必须被编码、传输,分割的选择也需编码到压缩 比特流中。对大的分割尺寸而言,MV选择和分割类 型只需少量的比特,但运动补偿残差在多细节区域 能量将非常高。小尺寸分割运动补偿残差能量低, 但需要较多的比特表征MV和分割选择。分割尺寸的 选择影响了压缩性能。整体而言,大的分割尺寸适 合平坦区域,而小尺寸适合多细节区域。 SLIDE 40 帧间预测 – 宏块的色度成分(Cr和Cb)则为相应亮度的一半 (水平和垂直各一半)。色度块采用和亮度块同样 的分割模式,只是尺寸减半(水平和垂直方向都减 半)。例如,8×16的亮度块相应色度块尺寸为 4×8,8×4亮度块相应色度块尺寸为4×2等等。色 度块的MV也是通过相应亮度MV水平和垂直分量减半 而得。 – 举例:如图:一个残差帧(没有进行运动补偿)。 H.264编码器为帧的每个部分选择了最佳分割尺寸, 使传输信息量最小,并将选择的分割加到残差帧上。 在帧变化小的区域(残差显示灰色),选择16×16 分割;多运动区域(残差显示黑色或白色),选择 更有效的小的尺寸。 SLIDE 41 帧间预测 图2 残差帧 SLIDE 42 帧间预测 运动矢量 – 帧间编码宏块的每个分割或者子宏块都是从参考图 像某一相同尺寸区域预测而得。两者之间的差异 (MV)对亮度成分采用1/4像素精度,色度1/8像素 精度。亚像素位置的亮度和色度像素并不存在于参 考图像中,需利用邻近已编码点进行内插而得。图 中,当前帧的4×4块通过邻近参考图像相应区域预 测。如果MV的垂直和水平分量为整数,参考块相应 像素实际存在(灰色点)。如果其中一个或两个为 分数,预测像素(灰色点)通过参考帧中相应像素 (白色点)内插获得。 SLIDE 43 帧间预测 图3 亮度半像素位置内插 SLIDE 44 帧间预测 内插像素生成: – 生成参考图像亮度成分半像素像素。半像素点(如 b,h,m)通过对相应整像素点进行6抽头滤波得出,权重 为(1/32 ,-5/32 ,5/8, 5/8, -5/32, 1/32)。 (6.1) 类似的,h由A、C、G、M、R、T滤波得出。一旦邻近 (垂直或水平方向)半素点的所有像素都计算出,剩余 的半像素点便可以通过对6个垂直或水平方向的半像素 点滤波而得。例如,j由cc, dd, h,m,ee,ff滤波得出。 这里说明的是,6抽头滤器比较复杂,但可明显改善运 动补偿性能。 – SLIDE 45 帧间预测 图4 亮度1/4像素内插 半像素点计算出来以后,1/4像素点就可通过线像素点(如a, c, i, k, d, f, n, q)由邻近像素内插而得,如 剩余1/4像素点(p, r)由一对对角半像素点线性内插得出。如,e由b和h获得。 SLIDE 46 帧间预测 (6.3) 图5 色度1/8像素内插 相应地,色度像素需要1/8精度的MV, 也同样通过整像素地线 帧间预测 MV预测 – 每个分割MV的编码需要相当数目的比特,特别是使 用小分割尺寸时。为减少传输比特数,可利用邻近 分割的MV较强的相关性,MV可由邻近已编码分割的 MV预测而得。 SLIDE 48 帧间预测 B片预测 – B片中的帧间编码宏块的每个子块都是由一个或两 个参考图像预测而得。该参考图像在当前图像的前 面或者后面。参考图像存储于编解码器中,其选择 有多种方式。图6显示了三种方式:一个前向和一 个后向的;两个前向;两个后向。 SLIDE 49 帧间预测 图6 . 预测 SLIDE 50 帧间预测 参考图像 – B片用到了两个已编码图像列表:list0和list1, SLIDE 51 帧间预测 – 举例:一个H.264解码器存储了6幅短期参考图像。 其POC分别为:123,125,126,128,129和130。 当前图像为127。所有6幅短期参考图像在list0和 list1中都标为“作用参考”,如表所示。 表1 SLIDE 52 帧间预测 预测模式选择 – B片的预测方式包括:宏块分割方式、双向选择方 式、参考列表选择方式等等。具体说,B片中宏块 分割可由多种预测方式中的一种实现,如直接模式、 利用list0的运动补偿模式、利用list1的运动补偿 模式或者利用list0和list1的双向运动补偿模式。 每个分割可选择各自的不同的预测模式(如表2所 示)。如果8×8分割被使用,每个8×8分割所选则 的模式适用于分割中的所有亚分割。图7给出了例 子,左边的两个16×8分割分别使用List0和双向预 测模式,而右边的4个8×8分割分别采用直接、 list0、list1和双向预测四种模式。 SLIDE 53 帧间预测 表2 B片宏块预测选则 分割 16×16 16×8/8×16 8×8 选 择 直接、list0、list1、双向 list0、list1、双向(每个分割独立选择) 直接、list0、list1、双向(每个分割独立选择) 图7 B片中分割预测模式举例 SLIDE 54 帧间预测 双向预测 – 从list0和list1分别得出两个运动补偿参考区域 (需要两个MV),而预测块的像素取list0和list1 相应像素的平均值。当不用加权预测时,用下列等 式: SLIDE 55 帧间预测 举例: 一宏块用B_Bi_16×16模式预测。图和图6.30分别给出 了基于list0和list1参考图像的运动补偿参考区域。 图6.31给出了根据者两个参考区域的双向预测。 图8 参考区域(list0) 图9 参考区域(list1) 图10 双向预测(无加权) 图6.31 双向预测(无加权) SLIDE 56 帧间预测 直接预测 – 直接预测模式编码的B片宏块或宏块分割不传送MV。 SLIDE 57 帧间预测 加权预测 – 加权预测是一种用来修正P或B片中运动补偿预测像素方法。 H.264中有3种加权预测 – 类型: P片宏块“explicit”加权预测; B片宏块“explicit”加权预测; B片宏块“implicit”加权预测; – 每个预测像素pred0(i,j)和pred1(i,j)在运动补偿之前通过加 权系数ω0和ω1修正。在“explicit”类型中,加权系数由编 码器决定并在片头中传输。在“implicit”类型中,系数ω0和 ω1由相应list0和list1参考图像的时间位置推出。大的系数用 于时间上接近当前图像的情况,小的则用于时间上远离当前图像 的情况。 SLIDE 58 H.264/AVC H.264/AVC编解码器 H.264/AVC的结构 帧内预测 帧间预测 变换与量化 SLIDE 59 变换与量化 输入4?4的图像或残差块X 对X块进行4?4整数离散余弦变换,得到W块 对W块进行比例缩放及量化 是色度块或帧内16?16预测模式的亮 度块? 否 是 对W中的直流分量进行Hadamard变换,得到YD块 对YD块进行比例缩放及量化 输出 图1 编码器中变换编码及量化过程 SLIDE 60 变换与量化 图2 Scanning order of residual blocks within a macroblock SLIDE 61 变换与量化 ? H.264对图像或预测残差采用了4?4整数离散余 弦变换DCT技术 ? H.264编码器中DCT变换及量化过程如图所示。 其中,如果输入块是色度块或帧内16?16预测模 式的亮度块,则将宏块中各4?4块的整数余弦变 换的直流分量组合起来再进行Hadamard变换, 进一步压缩码率 SLIDE 62 变换与量化 ? 对实数的DCT,由于在解码端的浮点运算精度问题,会 造成解码后的数据的失配,进而引起漂移。H.264较其 它图像编码使用了更多的预测过程,甚至内部编码模式 也依赖于空间预测。因此,H.264对预测漂移是十分敏 感的。为此,H.264对4?4DCT 中的A进行了改造,采用 整数DCT技术,有效地减少计算量,同时不损失图像准 确度 SLIDE 63 变换与量化 ? H.264对4?4的图像块(亮度块或Cr、Cb色度块)进行操作,则相应的4×4 DCT为(变换矩阵A): ? 其等价形式为: 其中,d=c/b(?0.414)。 符号“?”表示(CXCT)结果中的每个元素乘以矩阵E中 对应位置上的系数值的运算。为了简化计算,取d为 0.5。 为了保持变换的正交性,对b进行修正,取 2 b? 5 SLIDE 64 变换与量化 变换矩阵整数化处理 H.264将DCT融合到后面的量化过程中 实际的DCT输出为: W = CXCT SLIDE 65 变换与量化 ? 逆变换 SLIDE 66 变换与量化 表 QP 0 1 2 3 4 5 H.264中编解码器的量化步长 Qstep 2.5 2.75 3.25 3.5 4 4.5 QP 24 25 26 27 28 29 Qstep 10 11 13 14 16 18 QP 36 37 38 39 40 41 Qstep 40 44 52 56 64 72 QP 48 49 50 51 Qstep 160 176 208 224 Qstep 0.625 0.6875 0.8125 0.875 1 1.125 QP 12 13 14 15 16 17 6 7 8 9 10 11 1.25 1.375 1.625 1.75 18 19 20 21 5 5.5 6.5 7 30 31 32 33 20 22 26 28 42 43 44 45 80 88 104 112 1)QP是量化参数, 是量化步长Qstep的 序号; 2) 当 QP 取最小值 0 时 , 代表最精细的量化, 当 QP 取最大值 51 时 , 代表最粗糙 的量化。 3)QP 每 增 加 6 , Qstep 增加一倍。 2 2.25 22 23 8 9 34 35 32 36 46 47 128 144 SLIDE 67 变换与量化 ? Wij是矩阵W中的转换系数, PF 是矩阵 E f 中的元素, ? PF ? Zij ? round ?Wij ? Qstep ? ? ? 利用量化步长随量化参数每增加6而增加一倍的性质,可以 进一步简化计算。设 qbits = 15 + floor(QP/6) MF ? PF qbits 2 Qstep MF ? ? Z ij ? round?Wij qbits ? 2 ? ? SLIDE 68 变换与量化 ? MF可以取整数,量化表只列出对应QP值为0到5的MF值。 ? 对于QP值大于5的情况,只是qbits值随QP值每增加6而 增加1,而对应的MF值不变。 ? 量化过程则为整数运算,并且可以避免使用除法,并且 确保用16位算法来处理数据,在基本保持PSNR性能的情 况下,实现最小的运算复杂度。 SLIDE 69 变换与量化 SLIDE 70 变换与量化 DCT直流系数的变换量化 16?16的图像宏块中有4?4个4?4图像亮度块, 所以亮度块的WD为4?4矩阵,其组成元素为 各图像块DCT的直流系数W00,这些W00在WD 中的排列顺序为对应图像块在宏块的位置。 对亮度块WD的Hadamard变换为: ? ?1 1 1 1 ? ?1 1 1 1 ? ? ?? ? ? ? ? 1 1 ? 1 ? 1? ? ? 1 1 ? 1 ? 1? YD ? ? ? WD ? /2 ?1 ? 1 ? 1 1 ? ?1 ? 1 ? 1 1 ? ? ?? ? ?? ? 1 ? 1 1 ? 1? ? ? ?1 ? 1 1 ? 1? ? ?? 00 01 02 03 0 10 11 1 12 4 13 5 7 23 2 20 21 3 22 6 12 32 33 8 30 31 9 11 13 15 10 14 SLIDE 71 变换与量化 16?16的图像宏块中包含图像色度Cr 及Cb块各2?2个,所以色度Cr或Cb块 的WD为2?2矩阵,其组成元素为各对 应图像块色度信号DCT的直流系数W00, 这些W00在WD中的排列顺序为对应图 像块在宏块的位置 对各色度块WD的Hadamard变换为 00 01 0 1 10 11 2 3 : ?1 1 ? ?1 1 ? YD ? ? WD ? ? ? 1 ? 1 1 ? 1 ? ? ? ? SLIDE 72

本文链接:http://theferrari348.com/zhengnabianma/495.html