偶然看到一篇论文,关于四叉树划分,感觉写的挺清楚的,随手记录下。

HEVC中,一帧图像被分割为多个互补重叠的LCU,LCU大小一般设为64*64。每个LCU又可按照四叉树的方式递归划分为多个子CU。编码器编码时,需要判断当前CU是否已经进行划分。当前CU的划分情况由语法元素split_flag的值给出,其值为1表示CU已经划分,否则表示为进行子CU划分。

默认情况下,编码器遍历搜索LCU所有的子CU划分,通过对比当前CU与子CU的率失真代价获得最终的CU划分。CU划分过程可分为自上而下的CU分割过程和自下而上的合并过程。

CU分割过程主要完成最优帧内预测模式的选择以及最优预测模式下的率失真代价的计算。CU合并过程自下而上的比较4个子CU率失真代价之和同当前深度CU率失真代价,判断当前CU是否划分为4个子CU。

CU划分结束后,编码器根据每层CU选定的划分方式,选定的最优预测模式,进行最终的熵编码。

CU自上而下进行划分,首先按照下列式子计算当前PU的35个帧内预测模式下的率失真代价Jmode,选择是Jmode 最小的帧内预测模式K作为最优预测模式,同时保存当前CU最优预测模式极其率失真代价RDCost_00。

J mode=(SSEluma +w*SSE chroma)+λ*Bmode

然后按照光栅扫描顺序分别计算当前CU四个子CU所对应的四个PU的最小率失真代价RDCost_10,RDCost_11,RDCost_12,RDCost_13以及最优预测模式K1,K2,K3,K4,并计算四个子CU的率失真代价之和得到Jsub。继续分割子CU直至CU的尺寸为标准所允许的最小尺寸。

CU自下而上合并时,对比当前CU同子CU的率失真代价之和,若

则当前CU划分为4个子CU,置split_flag为1,否则不进行划分。

(疑问:是将当前CU一直划分划分到最大深度,才进行代价比较吗?还是只要划分一层就比较一次?应该是前者)

HEVC中四叉树划分详解相关推荐

  1. ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route

    前几篇文章我们从dapm的数据结构入手,了解了代表音频控件的widget,代表连接路径的route以及用于连接两个widget的path.之前都是一些概念的讲解以及对数据结构中各个字段的说明,从本章开 ...

  2. 计算机网络c类网络划分子网介绍,IP地址的子网划分详解

    原标题:IP地址的子网划分详解 来源:今日头条北京炫亿时代 一.子网划分基础 1.子网划分的若干个好处: ①减少网络流量 ②提高网络性能 ③简化管理 ④可以更为灵活的形成大覆盖范围的网络 2.你最好遵 ...

  3. 子网掩码必须是相邻的是什么意思_零基础IP子网划分详解

    零基础IP子网划分详解 2016.8.22修正,感谢道友刘先生的提醒 在学习IP子网划分前,首先的明白以下几个基础概念: 1.IP地址组成 IP地址组成示意图 IP地址由32位二进制组成,32位二进制 ...

  4. C/C++内存区域划分详解

    C/C++内存区域划分详解 C/C++内存分布 C/C++中,内存主要分为.堆.栈.全局/静态存储区和常量存储区. 栈:栈又叫堆栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储 ...

  5. linux中LVM是什么类型,Linux_Linux中的LVM详解,什么是LVM?什么是LVM?LVM(Logi - phpStudy...

    Linux中的LVM详解 什么是LVM? 什么是LVM?LVM(Logical Volume Manager)逻辑卷管理,是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间 ...

  6. 【数据的存储】浮点数在内存中的存储详解【超详细的保姆级别教程,让面试官心服口服】手撕浮点数存储使用方式

    [数据的存储]浮点数在内存中的存储详解[超详细的保姆级别教程,让面试官对你心服口服]手撕浮点数存储使用方式 作者: @小小Programmer 这是我的主页:@小小Programmer 在食用这篇博客 ...

  7. c语言中%s的作用,C语言中%c与%s的区别与划分详解

    %c格式对应的是单个字符,%s格式对应的是字符串. 例: char a; char b[20]; scanf("%c",&a); //只能输入一个字符. scanf(&qu ...

  8. IP地址和子网划分学习笔记之《子网划分详解》

    一,子网划分概述 IP地址和子网划分学习笔记相关篇章: 1.IP地址和子网划分学习笔记之<预备知识:进制计数> 2.IP地址和子网划分学习笔记之<IP地址详解> 3.IP地址和 ...

  9. IPv4、IPv6地址、组播地址及子网子划分详解二子网划分

    IPv4.IPv6地址.组播地址及子网子划分详解二子网划分 5.子网划分 5.1.子网掩码 5.2.无类域间选择CIDR 5.3.根据子网掩码和CIDR值划分子网 5.4.二进制AND运算在划分子网中 ...

  10. IPv4、IPv6地址、组播地址及子网子划分详解三可变长子网掩码

    IPv4.IPv6地址.组播地址及子网子划分详解三可变长子网掩码 5.5.可变长子网掩码(VlSM) 5.5.可变长子网掩码(VlSM) 先看一下分类组网,路由选择协议RIPv1没有包含子网信息的字段 ...

最新文章

  1. Toward perfect reads: self-correction of short reads via mapping on de Bruijn graphs
  2. 开源ImageFilter库v0.2:新增7类滤镜,支持12种图片效果
  3. php页面之间传值_php如何在不同页面之间传值
  4. dijkstra+priority_queue+vector
  5. Postfix上的反垃圾邮件的四个方法
  6. Spring Boot_打造企业级微信点餐系统_汇总贴
  7. ios信息交互 协议的使用
  8. 内外网双网卡同时上网
  9. JS实现批量图片上传
  10. MTK76X8最新Openwrt固件下载
  11. Mysql 计算年龄函数
  12. 广告联盟,拿什么拯救博客?
  13. 我用python做了个测词汇量的小工具
  14. java 飞机 源码_Java 飞机游戏源码(带音乐)
  15. [redis]Redis ZSet排序问题(排名实现按时间顺序排布)
  16. BIM建模助手上线一周,有哪些BUG被用户找到?
  17. Apache运维中常用功能配置笔记梳理
  18. /proc/sysrq-trigger
  19. java gif 水印_simpleImageTool又一纯java的简单而功能强的专门图片水印、缩放库,给gif加水印也很简单...
  20. windows域问题总结--专家门诊四十七问

热门文章

  1. Scratch(四十六):万圣节来喽
  2. Scratch(十七):保卫萝卜
  3. Python——词频统计
  4. 西门子系列PLC教学视频资源4——S7-1200
  5. 分享活动报名收费的微信小程序制作功能介绍_瑜伽健身房培训报名小程序开发介绍
  6. IT基础知识(精华版一)
  7. html中设置圆角div,Javascript 圆角div的实现代码
  8. mysql 分隔字符串的函数_Mysql 字符串分隔函数
  9. 学习银行系统开发经验
  10. python 实现dcmtk关联pacs功能 推送下拉影像