x264 的 cache详解
在这里和下一级别的分析中有必要先讲一下这个h->mb.cache(没法讲,就是cache!)。
x264_macroblock_cache_load将参考帧中某位置的(重建后)数据保存进cache,供参考和反复使用。
x264_macroblock_cache_save在分析和编码后将当前块写进cache。
在这些操作里面会有一个很让人看不懂得地方,这时候需要知道它保存时按照什么保存的。x264设计了一个相当nice的一块内存来存放,并且为其编配了一个索引,这样又能直观的理解,又能节省空间增加效率。索引如下:
static const int x264_scan8[16+2*4+3] =
{
/* Luma */
4+1*8, 5+1*8, 4+2*8, 5+2*8,
6+1*8, 7+1*8, 6+2*8, 7+2*8,
4+3*8, 5+3*8, 4+4*8, 5+4*8,
6+3*8, 7+3*8, 6+4*8, 7+4*8,
/* Cb */
1+1*8, 2+1*8,
1+2*8, 2+2*8,
/* Cr */
1+4*8, 2+4*8,
1+5*8, 2+5*8,
/* Luma DC */
4+5*8,
/* Chroma DC */
5+5*8, 6+5*8
};
cache中所有数据的存放都是按照上图中位置存放的,黄色和绿色是当前编码的Luma(Y) 和chroma(UV),而白色部分是从list0/1中取出参考帧,并且在x264_macroblock_cache_load时将对应块存放到这个空间里面去。cache里面包含一切有用的信息,这个设计真的很赞的!!
x264 的 cache详解相关推荐
- x264 代码重点详解 详细分析
eg mplayer x264 代码重点详解 详细分析 分类: ffmpeg 2012-02-06 09:19 4229人阅读 评论(1) 收藏 举报 h.264codecflv优化initializ ...
- 高速缓存Cache详解(西电考研向)
西电计组 考研笔记 内容较多 建议收藏 持续更新 欢迎关注 文章目录 高速缓存Cache详解 一.Cache概述及引入背景 二.地址映射与变换 1.全相联地址映射方式 2.直接地址映射方式 3.组相联 ...
- x264参数设置详解(x264 settings)
--------------------- 作者:yue_huang 原文:https://blog.csdn.net/yue_huang/article/details/79309696 参数使 ...
- ffmpeg mplayer x264 代码重点详解 详细分析
ffmpeg和mplayer中求平均值得方法 1 ordinary c language level #define avg2(a,b) ((a+b+1)>>1) #define avg4 ...
- http请求全流程和from memory cache与from disk cache详解
一.http请求 当我们在web浏览器的地址栏中输入: www.baidu.com,然后回车,到底发生了什么? 过程概览 1.对www.baidu.com这个网址进行DNS域名解析,得到对应的IP地址 ...
- X264编码流程详解(转)
http://blog.csdn.net/xingyu19871124/article/details/7671634 对H.264编码标准一直停留在理解原理的基础上,对于一个实际投入使用的编码器是如 ...
- java cache详解,Java内存缓存详解
1.缓存为什么要存在 应用服务器资源是有限的,数据库每秒中接受请求的次数也是有限的.如果利用有限的资源来提供尽可能大的吞吐量呢,一个办法:减少计 算量,缩短请求流程(减少网络io或者硬盘io),这时候 ...
- (转)x264参数中文详解(X264 Settings)
0 解释x264命令可选项的用途和使用方法.同执行 x264 --fullhelp 显示顺序.本文主要翻译:mewiki.project357.com/wiki/X264_Settings,同时参考d ...
- x264参数中文详解
词汇翻译: macroblock:宏区块.是一种图像压缩的术语. 宏区块是运动预测的基本单位,一张完整的图像(frame)通常会被切割成几个宏区块.h.264 的宏区块大小是可变的,常用 16x16 ...
最新文章
- HTML5 模板推荐
- 涨知识!参加过将近三十届广交会的老鸟总结!
- 什么是SAP重复性生产
- moment 时间格式化
- 【渝粤题库】广东开放大学 文化市场营销 形成性考核 (2)
- arcgis怎么用python重新排序_python - 根据排序数据添加新的顺序ID号(ArcGIS) - 堆栈内存溢出...
- c 服务器二次验证码,V5验证官网 - 基础套餐免费 -滑块验证,行为验证,防刷验证 - 文档...
- iOS 切换首页-更改tabbar的容器控制器
- 【Elasticsearch】elasticsearch 查询 高亮
- WebLogic 控制台乱码
- unity 获取预制体_Unity打包插件AssetsBundleBrowser的使用
- switch怎么一个账号绑定各种服务器,NS怎么一个账号两台机器使用_Nintendo Switch 新旧机器同使用教程_尼萌手游网...
- 基于阿里云的基础架构设施保障(一)IAAS云计算
- 邱关源电路课后题第二章(第五版)
- RAW,RGB,YUV简单理解
- 请确认计算机上的无线网络已启用,电脑显示已连接无线网络却上不了网
- AWVS扫描web站点
- fcitx重启 linux_【Linux基础】Fcitx中文输入法安装
- Redis6客户端工具——Jedis
- 【Alpha】阶段第六次Scrum Meeting
热门文章
- 对分查找的最多次数_「剑指offer题解」数组中出现次数超过一半的数字
- c++清空输入缓冲区_干货 | C++的输入输出方法
- 【JS 逆向百例】网洛者反爬练习平台第四题:JSFuck 加密
- PHP中英文截取函数,php字符串截取函数,支持中英文混体
- 【PAT甲级 - 1013】Battle Over Cities (25分)(并查集)
- 【51Nod - 1215 】数组的宽度 (单调栈 或 分治 或 单调队列,算贡献,需去重)
- 重读经典(点云深度学习开山之作):《Deep learning on point clouds for 3D scene understanding》(持续更新中)
- raft算法mysql主从复制_Etcd raft算法实现原理分析
- python去除图像光照不均匀_低光照环境下图像增强相关
- 学分绩点计算编程java_方便我们计算学分绩点的JavaScript