跳转至

视频编码

总概述

视频编码器是一个支持SVAC3.0/H.265/H.264/JPEG/MJPEG的多协议编码器,包括VEDU和JPGE两部分,其中,VEDU实现SVAC3.0、H.265和H.264协议的编码,JPGE实现JPEG/MJPEG协议的编码。

NOTE:

Hi3516CV610-00S/20S/10B/00G/20G支持SVAC3.0/H.265/H.264,其中Hi3516CV610-10B SVAC3.0不支持SmartCRR。

VEDU

概述

VEDU(Video Encode Unit)是一个硬件实现的支持SVAC3.0/H.265/H.264视频标准的编码器。VEDU具有CPU占用率低、总线带宽占用小、低延时、低功耗等优点。

特点

VEDU编码器具有以下特点:

  • 支持标准SVAC3.0主要档次,level 8.0.30编码

    • 支持1/2、1/4像素精度运动补偿
    • 支持I、P帧
    • 支持最多两个参考帧,支持长期参考帧
    • 帧间预测支持32x32、16x16、8x8三种PU类型
    • 帧内预测支持32x32、16x16、8x8、4x4四种PU类型
    • 支持最多候选数目为2的Merge/SKIP模式
    • 支持32x32、16x16、8x8、4x4四种TU类型
    • 支持CABAC熵编码
    • 支持De-blocking滤波
    • 支持PATCH
    • 支持PRDO
    • 支持SAO
    • 支持QPMap/SkipMap
  • 支持ITU-T H.265 Main Profile@Level 5 Main Tier编码

    • 支持1/2、1/4像素精度运动补偿
    • 支持I、P帧
    • 支持最多两个参考帧,支持长期参考帧
    • 帧间预测支持32x32、16x16、8x8三种PU类型
    • 帧内预测支持32x32、16x16、8x8、4x4四种PU类型
    • 支持最多候选数目为2的Merge/SKIP模式
    • 支持32x32、16x16、8x8、4x4四种TU类型
    • 支持CABAC熵编码
    • 支持De-blocking滤波
    • 支持SAO
    • 支持QPMap/SkipMap
  • 支持ITU-T H.264 High Profile/Main Profile/Baseline Profile@Level 5.1编码

    • 支持1/2、1/4像素精度运动补偿
    • 支持I、P帧
    • 支持最多两个参考帧,支持长期参考帧
    • 支持帧间预测16x16、8x8两种子块类型
    • 支持所有Intra4x4、Intra8x8、Intra16x16预测模式
    • 支持Trans4x4、Trans8x8
    • 支持CABAC、CAVLC熵编码
    • 支持De-blocking滤波
  • 支持H.264 SVC时域分层(SVC-T)

  • 支持输入图像格式:Semi-Planar YUV420
  • SVAC3.0/H.265/H.264多码流编码性能:

    • 3200×1800@30fps+1280×720@30fps编码
    • 3840×2160@20fps+1280×720@20fps编码
  • 支持图像分辨率可配置

    • 最小图像分辨率:114x114
    • 最大图像分辨率:3840x2160
    • 图像宽度/高度的配置步长为2
  • 支持感兴趣区域编码

    • 支持最多8个区域的感兴趣区域编码
    • 每个感兴趣区域编码功能可独立使能/禁止
  • 支持OSD区域编码保护

    OSD区域编码保护功能可使能/禁止

  • 支持视频前端OSD叠加处理

    • 支持最多8个区域的编码前OSD叠加
    • 支持任意大小,任意位置(不超出图像大小和位置)OSD叠加
    • 支持256级的alpha叠加
    • OSD叠加功能可使能/禁止
    • 支持OSD ARGB1555、ARGB4444、CLUT2、CLUT4格式
  • 支持彩转灰编码功能

  • 支持输入低延时功能
  • 支持输入低延时卷绕功能
  • 支持输入CROP
  • 支持视频前端叠加mosaic处理
  • 支持智能编码2.0
  • 支持CBR/VBR/ABR/AVBR/CVBR/QVBR/FIXQP/QPMAP等多种码率控制模式
  • 输出码率SVAC3.0/H.265/H.264最高均为80Mbps。

须知:

VEDU的区域编码保护功能只对VEDU叠加的OSD起作用。

功能描述

VEDU功能框图如Figure 1所示。

VEDU编码实现了运动估计/帧间预测、帧内预测、运动矢量预测、变换/量化、反量化/反变换、熵编码及码流生成、de-blocking滤波、SAO等协议/算法处理(SVAC3.0/H.265),ARM软件则完成码率控制和中断处理等编码控制处理。

在启动VEDU进行视频编码前,软件需要为其在外部存储器(DDR SDRAM)中分配以下三种类型的缓冲区。

  • 输入图像缓冲区

    VEDU在编码过程中会从该缓冲区读取待编码的原始图像。该缓冲区通常由视频输入单元写入。

  • 重构图像/参考图像缓冲区

    VEDU在编码过程中会向该缓冲区中写入重构图像、以作为后续图像的参考图像,在进行P帧编码时会从该缓冲区读取参考图像。

  • 码流缓冲区

    该缓冲区用于存放编码输出的码流。VEDU在编码过程中会将码流写入该缓冲区。该缓冲区通常由软件读取。

图 1 VEDU编码功能框图

JPGE

概述

JPGE是一个硬件实现的高性能Jpeg编码器,可实现图片抓拍、高清图像MJPEG编码功能。

特点

JPGE具有以下特点:

  • 支持ISO/IEC 10918-1(CCITT T.81) Baseline Process(DCT Sequential)编码

    • 支持Semi-Planar YUV420/Semi-Planar YUV422两种色度采样格式的图像编码
    • 量化表可配置:Y、U、V三个分量各提供一张量化表
    • 支持彩转灰功能
    • 支持输入低延时功能
    • 支持输入低延时卷绕功能
    • 支持输入CROP
    • 支持输入图像格式:Semi-Planar YUV420/Semi-Planar YUV422
    • 编码性能:3200x1800@30fps编码
    • 支持的图像分辨率

      最小图像分辨率:32x32

      最大图像分辨率:4096x4096

      图像宽度/高度的配置步长为2

    • 支持视频前端OSD叠加处理

      支持最多8个区域的编码前OSD叠加

      支持任意大小,任意位置(不超出图像大小和位置)OSD叠加

      支持256级的alpha叠加

      OSD叠加功能可使能/禁止

      支持OSD ARGB1555、ARGB4444、CLUT2、CLUT4格式

    • MJPEG输出码率范围:2kbps~60Mbps

功能描述

JPGE功能如Figure 1所示,由图可见,JPGE硬件实现了OSD、level shift、DCT、量化、扫描、VLC编码及码流生成等运算量较大的协议处理,而ARM软件则完成量化表配置和中断处理等编码控制处理。

在启动JPGE进行视频编码前,软件需要为其在外部存储器(DDR SDRAM)中分配以下两种类型的缓冲区。

  • 输入图像缓冲区

    JPGE在编码过程中会从该缓冲区读取待编码的原始图像。该缓冲区通常由视频输入单元写入。

  • 码流缓冲区

    该缓冲区用于存放编码输出的码流。JPGE在编码过程中会将码流写入该缓冲区。该缓冲区通常由软件读取。

图 1 JPGE功能框图