H264学习(一)之前几种编码介绍

来源:互联网 发布:ubuntu terminal替换 编辑:程序博客网 时间:2024/05/29 11:48

视频编码

  1. 时间冗余 :相邻视频帧之间的内容相似,存在运动关系
  2. 空间冗余:视频中某一帧内部的相邻像素存在相似性
  3. 编码冗余:视频中不同数据出现的概率不同(熵编码)
  4. 视觉冗余:人眼对视频系统中不同方面的敏感度不同


机构

ITU-T 下属 VCEG 视频编码专家组 H.264

ISO MPEG MPEG4

JVC 前两家联合


编码方式

  • 基于波形的编码 MPEG-2 H.264
  • 基于内容的编码:MPEG-4

编码技术

    • 预测编码:传输预测像素值与实际像素值之差,利用时间或空间相邻像素之间较强的相关性
    • 帧内预测:预测值与实际值位于同一帧内,用于消除图像的空间冗余。压缩效率较低,独立帧编码
    • 帧间预测:实际值位于当前帧,预测值位于参考帧,用于消除图像的时间冗余,压缩效率较高,P B有可能采用帧间编码,也可以是帧内编码
  • 变换编码:将像素由空间域变化成频域,,针对变换系数进行编码
    • 正交变换:DCT变换、KL变换
  • 熵编码:利用信源的统计特性进行压缩编码
    • 常用方法:变长编码、算数编码

编码发展


其他还有google:VP8/Vp9

微软 VC-1

国产自主标准 AVS/AVS+/AVS2


H.261信源编码器

  1. 帧内编码/帧间编码判定:根据帧间相关性判定,相关性高使用帧间编码,相关性低使用帧内编码
    1. The prediction error (INTER mode) or the input picture (INTRA mode) is subdivided into 8 pel by 8 line blocks which
      are segmented as transmitted or non-transmitted.不论是帧间还是帧内,注意帧间编码输入的是预测残差,分为8*8的块, Further, four luminance blocks and the two spatially corresponding colour difference blocks are combined to form a macroblock 四个亮度块和两个色度块组成一个宏块(4:1:1)
  1. 帧间编码/运动估计
    1. 每一个宏块接受一个运动矢量,每个运动矢量的垂直和水平分量有一个不超过+-15的整数值
    2. 这个矢量用于宏块中的四个亮度块,对矢量的两个分量区1/2,后,也用于宏块中的两个色度块
    3. 运动矢量的分量取正值,表示预测的形成取自从前一帧图像的像素
  2. 帧内编码
  3. 环路滤波器:数字低通滤波器,滤除不必要的高频信息,消除方块效应
    1. 二维空间滤波器FIL 使用于8*8的块
    2. 滤波器可以分为一维垂直和水平函数,

H.261复合编码器

  1. picture->group of blocks (GOB)->macroblock(MB)->block
  2. picture layer :picture header 后面跟着GOBS数据,picture start code (PSC 20 bits),Temporal reference (TR) (5 bits),Type information (PTYPE) (6 bits),Extra insertion information (PEI) (1 bit),Spare information (PSPARE) (0/8/16 . . . bits)
  3. 详见H261编码规范


H263标准

  • H263对于H261的改进
    • 运动矢量:相对于H261对每一个MB分配一个运动矢量,H263支持每一个8*8块各自使用的一个运动矢量
    • MV精度:相对于H261只支持整数像素运动搜索,H263精度为1/2像素
    • 双向预测模式:H263支持B帧,使用前后双向预测
    • 熵编码采用算术编码,运算复杂度高,降低码率
  • H263支持的图像格式
    • sub-QCIF QCIF CIF 4CIF 16CIF(1480*1152)CIF是一种中间格式 H261支持QCIF CIF
  • H263和H264编码性能比较
    • 在输出码率大致相等的情况下,分析H263和H264编码的信噪比SNR
    • 在具有相同编码信噪比SNR的情况下,分析H263和H264的输出码率

MPEG2标准

  • MPEG-2码流层次,共分为三层:
    • 基本流:ES
    • 打包基本流:PES 对视音频ES分别打包
    • 传输流 节目流:TS/PS
  • profile和llevel
    • 按照使用的编码工具不同,定义了5个profile
    • 按照视频分辨率定义了4个级别
  • 支持逐行或隔行扫描视频,使用基于帧或场的编码
  • MPEG-2的ES流结构类似于MPEG-1 分为图像序列层(若干GOP)、图像组(GOP)、图像层(若干slice)、片(slice)、宏块(macroblock由亮度块和色度块组成)和块层(亮度块和色度块)

0 0
原创粉丝点击