开发者社区 > 博文 > 京东云视频云全面支持AVS2标准
分享
  • 打开微信扫码分享

  • 点击前往QQ分享

  • 点击前往微博分享

  • 点击复制链接

京东云视频云全面支持AVS2标准

  • 京东科技开发者
  • 2022-01-05
  • IP归属:北京
  • 329080浏览

    一、概述

     

    数字音视频编解码技术标准(AVS)工作组由国家原信息产业部科学技术司于2002年6月批准成立,目标是制定我国自有的音视频编解码标准。至今已有两代AVS标准正式发布并成为国家标准,目前第三代标准AVS3正在制定中。AVS2属于第二代AVS标准,相关测试表明,AVS2的压缩效率比上一代标准AVS+和H.264/AVC提高了一倍,且超过国际同类型标准HEVC/H.265。AVS2还支持三维视频、多视角和虚拟现实视频的高效编码,立体声、多声道音频的高效有损及无损编码,监控视频的高效编码,面向三网融合的新型媒体服务等。

    凭借在视频编码领域的深耕和积累,目前京东云视频直播/点播产品均已支持AVS2标准,成为国内仅有的几家支持直播、点播AVS2标准的公有云厂商之一。

    二、技术实现

     
    AVS2采用了混合编码框架,整个编码过程包括帧内预测、帧间预测、变换量化、反量化反变换、环路滤波和熵编码等模块,AVS2和HEVC相对于源图像质量下降分别为2.9%和3.0%。对于超高清4K视频,在相同码率条件下,AVS2比HEVC的平均主观质量略优。
    avs1.jpg
    推拉流基本流程


    FLV  AVS2扩展说明:


    FLV规范不支持AVS2,FFmpeg对FLV的AVS2编解码算法CodecID没有定义支持。京东视频云通过增加ffmpeg支持封装/解封AVS2标准的补丁,并进行了一些列优化,新增AVS2的CodecID为0xE,以及AVS2 sequence header定义。


    sequence_header() {
        uint32_t        profile_id;         /* profile ID, davs2_profile_id_e */
        uint32_t        level_id;           /* level   ID */
        uint32_t        progressive;        /* progressive sequence (0: interlace, 1: progressive) */
        uint32_t        width;              /* image width */
        uint32_t        height;             /* image height */
        uint32_t        chroma_format;      /* chroma format(1: 4:2:0, 2: 4:2:2) */
        uint32_t        aspect_ratio;       /* 2: 4:3,  3: 16:9 */
        uint32_t        low_delay;          /* low delay */
        uint32_t        bitrate;            /* bitrate (bps) */
        uint32_t        internal_bit_depth; /* internal sample bit depth */
        uint32_t        output_bit_depth;   /* output sample bit depth */
        uint32_t        bytes_per_sample;   /* bytes per sample */
        float           frame_rate;         /* frame rate */
        uint32_t        frame_rate_id;      /* frame rate code, mpeg12 [1...8] */
    };


    avs2.jpg

    FLV AVS2扩展示例

    HLS  AVS2扩展说明:

    TS新增AVS2的stream_type=0xD2,stream_id=0xE0

    avs3.jpg

    avs4.jpg


    AVS2码流结构:图片

    AVS2的码流结构由包含起始码的视频序列组成,视频帧slice type包含I、P、B在内的六种类型,如下:


    slice type {
        AVS2_I_SLICE = 0,           /* slice type: I frame */
        AVS2_P_SLICE = 1,           /* slice type: P frame */
        AVS2_B_SLICE = 2,           /* slice type: B frame */
        AVS2_G_SLICE = 3,           /* AVS2 type:  G frame */
        AVS2_F_SLICE = 4,           /* slice type: F frame */
        AVS2_S_SLICE = 5,           /* AVS2 type:  S frame */
        AVS2_GB_SLICE = 6,          /* AVS2 type:  GB frame*/
    };
    start code {
        SC_SEQUENCE_HEADER = 0xB0,  /* sequence header start code */
        SC_SEQUENCE_END    = 0xB1,  /* sequence end    start code */
        SC_USER_DATA       = 0xB2,  /* user data       start code */
        SC_INTRA_PICTURE   = 0xB3,  /* intra picture   start code */
        SC_EXTENSION       = 0xB5,  /* extension       start code */
        SC_INTER_PICTURE   = 0xB6,  /* inter picture   start code */
        SC_VIDEO_EDIT_CODE = 0xB7,  /* video edit      start code */
        SC_SLICE_CODE_MIN  = 0x00,  /* min slice       start code */
        SC_SLICE_CODE_MAX  = 0x8F   /* max slice       start code */
    };


    avs5.jpg
    video_sequence() {
      do {
        sequence_header();
        extension_and_user_data(0);
        do {
          if (next_bits(32) == intra_picture_start_code )
              intra_picture_header()
          else
              inter_picture_header()
          extension_and_user_date(1)
          picture_data()
        } while(next_bits(32) == inter_picture_start_code() || next_bits(32) == intra_picture_start_code ))

        if (next_bits(32) == video_sequence_end_code)
            video_sequence_end_code
        if (net_bits(32) == video_edit_code)
            video_edit_code
        }
    }




    在视频点播方面,AVS2能高效提升编码效率,FFmpeg对AVS标准容器格式MKV/MP4等还不支持。目前在视频处理层面,京东云视频点播已支持AVS2相关的转码等媒体处理。


    主流编码速度对比


    avs6.jpg


    相同的编码速率,AVS2大概比x265的编码效率高10%~30%;同样在相同的编码效率下, AVS2比x265的编码速率快3~10倍。


    AVS2与HEVC平均主观质量对比


    avs7.jpg


    相同码率条件下,AVS2与HEVC的平均主观质量基本一致。



    三、AVS2编码效果


    avs8.jpg


    未来,京东云视频云将持续推进AVS系列等视频相关标准的深度优化以及商业化应用,为客户降本增效,同时提升用户体验,并努力打造围绕视频的场景化解决方案,以期能与客户及生态合作伙伴建立更深入的合作。