HEVC/H.265编码标准HM平台码率控制流程

  1. 研究生期间了解过HM平台的码率控制过程,现在时隔2年多又回顾了一下HM平台的码控流程,发现相较之前多了CpbSaturationEnabled这么个机制,其开关由参数m_CpbSaturationEnabled控制。粗略了解了一下改工具类似于x265的VBV机制,目的应该是在保证码控精度的情况下防止码率波动过大,也就是buffer的上、下溢,对这个原理不太了解的小伙伴可以看看我的另外一篇博客x265码率控制-VBV更新过程

  2. 关于码率控制分类,回顾一下大致可以分为CBR, VBR, CVBR,HM平台的码率控制应该是属于CBR,目前我也对CBR比较熟悉,三者的区别不同码率控制类型:
    CBR(Constant Bit Rate)是以恒定比特率方式进行编码,有Motion发生时,由于码率恒定,只能通过增大QP来减少码字大小,图像质量变差,当场景静止时,图像质量又变好,因此图像质量不稳定。这种算法优先考虑码率(带宽)。
    VBR(Variable Bit Rate)动态比特率,其码率可以随着图像的复杂程度的不同而变化,因此其编码效率比较高,Motion发生时,马赛克很少。码率控制算法根据图像内容确定使用的比特率,图像内容比较简单则分配较少的码率(似乎码字更合适),图像内容复杂则分配较多的码字,这样既保证了质量,又兼顾带宽限制。这种算法优先考虑图像质量。
    CVBR(Constrained VariableBit Rate),这样翻译成中文就比较难听了,它是VBR的一种改进方法。但是Constrained又体现在什么地方呢?这种算法对应的Maximum bitRate恒定或者Average BitRate恒定。这种方法的兼顾了以上两种方法的优点:在图像内容静止时,节省带宽,有Motion发生时,利用前期节省的带宽来尽可能的提高图像质量,达到同时兼顾带宽和图像质量的目的。这种方法通常会让用户输入最大码率和最小码率,静止时,码率稳定在最小码率,运动时,码率大于最小码率,但是又不超过最大码率。

  3. 进入正题,HM平台的码率控制过程。HM平台的码控大致可以分为GOP层、Slice层以及CTU层。自上而下,首先为整个GOP分配总的目标码率,然后实际编码到每一帧的时候根据当前GOP剩余bit以及当前帧权重计算目标bit,在编码每个CTU时又根据slice剩余bit以及CTU权重计算目标bit。目标bit与编码参数lambda存在一下关系:

    其中参数alpha和bate可以根据实际编码bit进行更新,另外alpha和bate可以分为slice以及CTU,即不同类型的slice、同slice不同位置的CTU的alpha和bate参数都不同。
    HM平台关于码率控制的总流程以及主要调用函数如下关系图所示,想要仔细了解HM码控流程可以对着流程图去平台代码找关键函数并熟悉其计算过程:

其中,GOP目标码率的计算如下图:
SW为滑动窗口,主要用于平滑码率;

Slice目标码率计算如下图:

wpic表示当前帧在GOP中的权重,一般位置越重要(被参考)的帧权重越大;

CTU层的目标码率计算如下:

同样wbu表示当前CTU的权重,该CTU权重在slice层目标bit计算过程中根据CTU层的alpha和bate计算。

  1. 总结:HM平台的码率控制总的过程大致就是根据剩余bit以及目标bit之间的关系,调整当前Slice/CTU的目标bit,并根据参数alpha和bate计算编码参数lambda和QP;在实际编码完之后更新参数alpha和bate;另外为了防止码率波动过大还在Slice层限制了Slice目标bit的计算;

  2. 个人理解:HM增加的Cpb机制相比x265略显粗糙,只是粗暴的在CpbFullness即将上、下溢时强制增加、减小帧目标bit,且增加、减小的bit为CpbFullness超过Bound部分,个人感觉该方法太粗暴,并不一定能够有效的防止码率的波动情况。

HEVC/H.265编码HM码率控制相关推荐

  1. HEVC/H.265编码原理

    一.HEVC简介 随着现代通信技术的发展,视频拍摄设备变得便携化.轻量化,各类剪辑软件的开发升级也使得视频的制作变得更加的容易,大量涌现的网络视频平台为视频发布和传播提供了必不可少的渠道,这使得互联网 ...

  2. 【miscellaneous】最新HEVC/H.265 4K视频,显卡解码测试

    转载自:http://bbs.zol.com.cn/diybbs/d34441_76103.html 4K这个概念也在最近几年开始流行了起来,无论是4K显示器.4K电视盒子,还是4K游戏对硬件的要求也 ...

  3. SONY索尼A7S3相机HEVC|H.265视频RSV损坏修复MP4

    继佳能和松下相机HEVC|H.265断电视频文件成功修复后,终于迎来索尼HEVC|H.265编码损坏视频修复.回想以往索尼微单的MP4视频文件,使用的都是H.264视频编码技术,从A7S3微单开始支持 ...

  4. HEVC/H.265硬件编码器实现杂谈

    国际视频编码标准HEVC已经发布两年有余,市场上关于支持HEVC的硬件也日益涌现,本文借鉴了各方面资源做了综合与概述,给出了HEVC硬件编码器实现的基本方法等重要网络资源. 一.系统设计要点 对于HE ...

  5. 高效视频编码 (HEVC) -H.265(结构解析)

    版本 HEVC (H.265) 规范的第一个版本于 2013 年 4 月发布.该标准的版本如下: ITU-T H.265 (V1) (04/2013) http://handle.itu.int/11 ...

  6. iPhone鼎力支持 H.265编码技术及画质PK

    ● H.265(HEVC)编码技术解析 具体的对比测试之前,我们需要明白什么是H.265视频编码技术.H.265编码技术由中国华为公司主导,华为拥有H.265编码最多的核心专利技术,2012年8月爱立 ...

  7. HEVC/H.265(1)——入门初步了解

    一.引子 说到H.265,个人的初始印象就是比H.264高端了那么一些的编码标准,再就是在学校的BT上下的那个好多播放器都播放不了,只有potplayer等一小部分未来播放器能播放的权利的游戏HEVC ...

  8. H.265编码和H.264编码的区别

    目前很多摄像机采用了H.265的编码标准,H.264编码的摄像机逐渐减少,为什么H.265会流行?H.264和H.265有何不同? 一.什么是H.265 H.265是ITU-TVCEG继H.264之后 ...

  9. 修改Chromium源码实现HEVC/H.265 4K视频播放

    本文作者:蔡斯杰,字节跳动互娱前端业务负责人 公司内容生产端最近(2019/10)在推广 HEVC/H.265 的使用,这种视频编码格式对比H.264更加先进且节省带宽,虽然先进但是因为专利费的问题, ...

最新文章

  1. 10-CSS基础-CSS选择器
  2. codeforces 700B Connecting Universities
  3. ad09机械层说明_悉数PCB上的各种层
  4. [Skill]-Markdown编辑器技巧
  5. vue+xterm.js 实现Linux command界面
  6. 20171221L09-10老男孩Linux运维实战培训-Nginx服务生产实战应用指南02
  7. 《Oracle高性能自动化运维》一一2.3 Library Cache
  8. 这位曾指责乔布斯的怪老头,推出的AppleScript比Windows还要快!
  9. Redis的I/O多路复用
  10. 12000 颗卫星为地球织网!马斯克昨夜踏上改变世界的第6个征程
  11. html中ul和li是什么单位,html中ul,ol和li的区别
  12. iNFTnews|Web3走进FIFA世界杯
  13. 异常:could not initialize proxy - the owning Session
  14. 面试最后一问:你有什么问题想问我吗?
  15. 用FineReport报表系统构建资金监管平台
  16. oracle会话占用pga异常,OLTP,单个session占pga大于2G,有见过的没?
  17. Pinta--一个画图软件
  18. accept4: too many open files; retrying in 1s
  19. Linux命令--tail
  20. git处理 Update failed cannot lock

热门文章

  1. Unity 微信小游戏转回WEBGL发布设置
  2. linux环境下单网卡配置多个IP地址(详细)
  3. strsplit()函数
  4. 可口可乐、百事可乐都使用的包装黑科技,你Get到了吗?
  5. 大家都是在哪些网站找数据?
  6. szshunjia储存不干胶标签的心得简述分享
  7. Zipf's law分析
  8. matlab测试网络,matlab测试网络
  9. bitset(位图)原理与用法
  10. 成为一名合格的java工程师