原文地址:HEVC的快速模式选择(一)作者:marcus
读研了,然后方向不是以前的图像处理了,本科的时候做的那些图像处理的相关基础知识就算了浪费了,也无所谓吧,有个新方向学习也行,不过发现视频编码这块貌似真心是不太好学,这已经看了一个月的视频编码了,虽然用在上面的时间不是太多,但是还是感觉没有入门,现在在这里整理一下这段时间看的东西吧,boss让我写个technical report,英文的,我自己看的都不爽,所以在这里重写个自己看爽的中文版本吧。
首先HEVC,又称H.265里面,可能最重要的概念就是CU,PU,TU这三种了,他们三种之间的关系用下图我觉得表述是最清楚不过了。

CU,PU,TU三种在编码中起的关系不一样,不过这种编码方式还是基于混合编码,但是采用了这三种unit之后,能够更好的分割一张图像,变成一个一个的block用来后续的预测和处理。其中CU(coding unit)是用作帧间和帧内编码的基础模块,他的特点是方块,LCU是64x64,可以使用递归分割的四分树的方法来得到,大的CU适用于图像中比较平滑部分,而小的部分则适用于边缘和纹理较丰富的区域。
PU是预测的最基本的单元,是从CU中分割出来了,有SKIP,INTRA,INTER三种模式可以分割,PU可以使方形也可以使矩形,但是其分割不是递归的,与CU的分割还是有区别的。不对称的PU仅适用于帧间预测。下图可以形象的展示PU的分割和其与CU的关系。

TU是编码和量化的最基本的单元,它可以大于PU,但是却不可以大于CU的大小。TU的大小可以从4x4到32x32,并且TU也是方形了,所以说PU中不对称或者矩形的都必须进行继续的分割来得到一个方形的TU。从PU至TU的过程下图可以清晰看出。

以上是前段时间看的基础知识,在这里马克一下吧,以防以后忘记了,而且这几个图个人觉得还是做得很不错的。上图均引用自 Video Compression Beyond H.264/AVC by O.Le Meur。
下面讲讲一个今天看的一篇论文的感觉吧,论文是

Fast Rate Optimization for the Emerging HEVC Standard by M. B. Cassa, M. Naccari, F. Pereira.

首先这个论文并太是个打酱油的论文,虽然没有什么复杂的数学计算,但是还是有点自己的东西,这方面的论文看的少,不知道它提出的东西是不是在其他的论文中已经提出来了,如果有,那么我还是很希望能够看下原版的。这个里面主要提出了top skip和early termination二种方面来减少计算量,意思就是因为RD的计算量太多,说依据我的观察,发现很多的时候RD计算不用计算的,那么具体为什么不用计算,这个是经验,在类似的论文里面好像都是这么做的,比如很多的论文都是使用Adaptive Threshold这种方法,这种方法被用烂了,以至于我看到用这种方法的论文基本上就直接跳过了。

这篇文章里说比较大的CU,前面可能是不用计算RD的,比如说这边连续几帧的四分树的深度都是3-4,那么我们就直接从3开始算起吧,那么这样不是会省很多的时间吧,所以在文中定义了一个
(居然不能复制公式进去,太弱了)

这里面的意思说我每次开始的深度是上次LCU中最小的一个深度,这样每次就不用从深度0开始了,最开始的几次就不用算RD了,剩下了一点点的时间吧,并且规定了一个来规避深度随着时间不断增大这样的bug,这个算法的设计还是具有一定的合理度的。这个用的就是每一帧之间的空间关联度,但是假如出现了场景切换这样的问题可能就很不适用了,最多只是适用了不变场景,但是对于发个paper来说不用考虑这些问题。

还有一个是Early Termination,这个是用了终止小的CU的RD的计算,意思是一般的情况下我分割到这个地方都不用分割了,为什么不用分割,因为前面几帧都是这么做的,所以我就根据前面几帧来判断我这一阵的CU分割到什么程度,这个计算和上面的计算都是经验所得,当然这个经验的正确性也值得商榷,但是思路我觉得还是不错的。这里面定义了

说当前的RD已经足够小了,这个足够意味着处于一个置信区间中,这个置信区间的数据是以前所有的相同深度的、相同模式的RD来确定,只是当前的RD足够小就不用去计算RD来判断当前的分割是不是已经最小了,在这里就直接默认了,当然肯定和上面的哪一个一样,也是具有各种不适用的情况的。

转载于:https://www.cnblogs.com/dreamsyeah/p/5878464.html

[转载]HEVC的快速模式选择(一)相关推荐

  1. [转载] Java异常:选择Checked Exception还是Unchecked Exception?

    参考链接: Java中的已检查与未检查异常| checked或unchecked异常 Java包含两种异常:checked异常和unchecked异常.C#只有unchecked异常.checked和 ...

  2. HEVC帧内预测参考相邻帧代码解析

    作者:66 (转载请注明出处) 参考链接:http://blog.csdn.net/hevc_cjl/article/details/8200793 亮度分量的帧内预测涉及到的模块比较多,CU-> ...

  3. TCSVT2020:VVC中扩展TSM和快速MTS选择

    本文来自TCSVT2020文章<Extended Transform Skip Mode and Fast Multiple Transform Set Selection in VVC> ...

  4. 监控视频压缩4—Fast ROI-Based HEVC Coding for Surveillance Videos

    监控视频不同于网络视频等,其特殊性为背景区域一般不变(固定相机拍摄),或者变化很有规律(移动相机拍摄).本系列记录针对监控视频的视频压缩各类方法. 论文: <Fast ROI-Based HEV ...

  5. 9家专利拥有者退出MPEG LA HEVC 华为加入HEVC Advance

    9家韩国企业集体退出MPEG LA HEVC,转投HEVC Advance.此外,HEVC Advance还吸引到华为.LG.Technicolor这些重量级企业加入.两大HEVC专利池之间的角力,预 ...

  6. 客户端是选择Java Swing还是C# Winform

    登录 | 注册 mentat的专栏 目录视图 摘要视图 订阅 [专家问答]韦玮:Python基础编程实战专题     [知识库]Swift资源大集合     [公告]博客新皮肤上线啦     快来领福 ...

  7. Overview of HEVC之4 帧内预测

    帧内预测是根据传输块的尺寸进行操作的,并且空间上相邻传输块的先前解码的边界像素被用来形成预测信号,对4*4到32*32的传输块定义了33种不同的方向预测.图6显示了可能的预测方向.另外也用到了平面预测 ...

  8. ETC卡 PSAM卡消费流程(转载)

    ETC卡 PSAM卡消费流程(转载) 打开读卡器 0 选择psam卡槽1复位psam卡读取psam卡0015文件 psam card send: 00b095000E psam card recv: ...

  9. 手淘H265编解码算法与工程优化

    本文来自淘宝(中国)软件有限公司 高级算法专家 李晓波在LiveVideoStackCon 2018讲师热身分享,并由LiveVideoStack整理而成.在分享中李晓波详细解析了手淘在H.265高效 ...

最新文章

  1. rsync同步操作 、 发布rsync共享 、 inotify实时同步 、 Split分离解析
  2. 用什么DOS命令挂上*.mdf、*.ldf的数据库?
  3. Android的Style的使用
  4. USB-HDD-WinPE U盘版WINPE启动盘维护系统
  5. 调试的时候step into,step out,step over有什么区别?各有什么作用?分别在什么情况下使用?
  6. 语法制导的翻译是如何实现的_全球化企业应该如何选择机器翻译解决方案?
  7. oracle的视图表,oracle 常用视图和表
  8. MVC系列学习(十一)-客户端的验证
  9. mysql数据库中文乱码解决
  10. 【Oracle】并行等待之PX Deq Credit: need buffer
  11. PDMS二次开发(十)——螺栓材料统计功能重构开发介绍
  12. spring cloud SnakeYAML RCE 漏洞复现
  13. 在php中使用高德api,javascript - 高德地图定位如何调用api?
  14. 计算机毕业设计论文该怎么写?软件工程毕设选题推荐有哪些;计算机毕业设计不会做怎么办;怎么做什么简单;电子信息工程毕业设计要做到什么程度
  15. AI绘图:chatGpt,midjourney, discord
  16. 【原创】我所认识的银行业务之旅(账务篇)
  17. 如何打造一个抗住千万级流量短信服务(续)
  18. 管理经济分析02:完全竞争市场与非完全竞争市场
  19. $.extend()
  20. for in 和for of的区别解读

热门文章

  1. 云服务器安装数据库MySQL后,MySQL不能从外部连接的原因及解决
  2. 衡水学院计算机实习,衡水学院教育实习系列报道之三
  3. php中ts和nts版本,PHP中ts和nts版本 - vc6和vc9编译版本的区别
  4. 使用 Quagga 实现 Linux 动态路由
  5. 土谷贞雄将携中日知名建筑师在深圳展示都市社群规划成功案例
  6. nas服务器硬盘,明明白白了解NAS:网络存储服务器浅析(转载)
  7. En-Tan-Mo(ETM)项目周报(8.23-8.29)
  8. C51单片机温湿度传感器DTH11使用
  9. 利用Ubuntu的U盘安装盘安装build-essential
  10. 19美亚个人赛复盘2(手机取证)