视频编码python包框架

简介

本文主要构思视频编码python包框架,主要功能及API。

对于类的描述:

  • 功能
  • 成员
  • 方法

    功能

    读取输出的txt结果

几种基本的类

视频源信息

source()

  • 功能:
    • 储存视频源相关信息
  • 成员:
    • 帧的宽度self.width
    • 帧的高度self.width
  • 方法:
    • 视频源信息-序列
      source_info_seq
  • 功能
    • 储存序列的基本信息
  • 成员
    • 序列名称self.name
    • 序列中帧的宽度self.width
    • 序列中帧的高度self.height
    • 序列的帧率self.frame_rate
    • 序列的总帧数self.total_frame
  • 方法
    • 视频源信息-帧
      source_info_pic
  • 功能

    • 储存视频的每帧基础信息
  • 成员

    • 帧的显示顺序POCself.poc
    • 帧的宽度self.width
    • 帧的高度self.height
    • 帧的SATDself.satd
  • 方法

    • 编码参数类

      序列编码参数类
  • 功能

    • 储存整个序列的通用编码参数
  • 成员
    • 编码结构self.mode
    • 编码QP
    • ctu的大小
    • 每帧ctu的个数
  • 方法
    • 帧编码参数类
  • 功能
    • 储存每帧的编码参数
  • 成员
    • 帧的类型
    • 帧的tid
    • QP
    • lambda
    • ctu的大小
    • 每帧ctu的个数
  • 方法

失真D

  • 功能
    • 作为一个模板,生成各种失真类
  • 成员
    • Y分量失真
    • U分量失真
    • V分量失真
    • YUV总失真
  • 方法
    • psnr
  • 功能
    • 储存每帧或每个序列的psnr值
  • 成员
    • Y分量psnr
    • U分量psnr
    • V分量psnr
    • YUV总psnr
  • 方法
    ssim
  • 功能
  • 成员
    • Y分量ssim
    • U分量ssim
    • V分量ssim
    • YUV总ssim
  • 方法
    mse
  • 功能
  • 成员
    • Y分量mse
    • U分量mse
    • V分量mse
    • YUV总mse
  • 方法

资源R

  • 功能
    • 作为一个模板,生成多种资源类
  • 成员
    • 目标资源
    • 实际分得的资源
  • 方法
    • bit
  • 功能
    • 储存每个编码单位的bit信息
  • 成员
    • 目标bit
    • 实际bit
  • 方法
    • bpp
  • 功能
    • 储存每个单位的bpp信息
  • 成员
    • 目标bpp
    • 实际bpp
  • 方法

编码结果类

序列的编码结果
  • 功能
    • 储存序列的编码结果
  • 成员
    • 实际的输出码率
    • 序列的psnr
    • 序列的ssim
    • 编码时间
  • 方法
帧的编码结果
  • 功能
    • 储存每帧的编码结果
  • 成员
    • 当前帧的失真
      • psnr
      • ssim
      • mse
    • 当前帧的编码时间
    • 当前帧的资源
      • bit
      • bpp
    • 当前帧的参考列表
      • 列表0
      • 列表1
  • 方法

图片类

  • 功能
    • 储存每个图片的相关信息
  • 成员
    • 基本视频源信息
    • 编码参数信息
    • 编码结果信息
  • 方法
    • 读取当前帧数据并存到类的对应成员里面
    • 读取当前帧的数据并存到ctu成员中

序列类

  • 功能
    • 储存整个序列的相关信息
  • 成员
    • 基本视频源信息
    • 编码参数信息
    • 编码结果信息
    • 序列中每帧的信息
  • 方法
    • 读取整个txt文件
    • 读取每帧信息
    • 读取有padding的每帧信息
    • 读取最后的总结信息
    • 读取编码所需时间

分析原始yuv图像