在这里和下一级别的分析中有必要先讲一下这个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详解相关推荐

  1. x264 代码重点详解 详细分析

    eg mplayer x264 代码重点详解 详细分析 分类: ffmpeg 2012-02-06 09:19 4229人阅读 评论(1) 收藏 举报 h.264codecflv优化initializ ...

  2. 高速缓存Cache详解(西电考研向)

    西电计组 考研笔记 内容较多 建议收藏 持续更新 欢迎关注 文章目录 高速缓存Cache详解 一.Cache概述及引入背景 二.地址映射与变换 1.全相联地址映射方式 2.直接地址映射方式 3.组相联 ...

  3. x264参数设置详解(x264 settings)

    ---------------------  作者:yue_huang  原文:https://blog.csdn.net/yue_huang/article/details/79309696 参数使 ...

  4. ffmpeg mplayer x264 代码重点详解 详细分析

    ffmpeg和mplayer中求平均值得方法 1 ordinary c language level #define avg2(a,b) ((a+b+1)>>1) #define avg4 ...

  5. http请求全流程和from memory cache与from disk cache详解

    一.http请求 当我们在web浏览器的地址栏中输入: www.baidu.com,然后回车,到底发生了什么? 过程概览 1.对www.baidu.com这个网址进行DNS域名解析,得到对应的IP地址 ...

  6. X264编码流程详解(转)

    http://blog.csdn.net/xingyu19871124/article/details/7671634 对H.264编码标准一直停留在理解原理的基础上,对于一个实际投入使用的编码器是如 ...

  7. java cache详解,Java内存缓存详解

    1.缓存为什么要存在 应用服务器资源是有限的,数据库每秒中接受请求的次数也是有限的.如果利用有限的资源来提供尽可能大的吞吐量呢,一个办法:减少计 算量,缩短请求流程(减少网络io或者硬盘io),这时候 ...

  8. (转)x264参数中文详解(X264 Settings)

    0 解释x264命令可选项的用途和使用方法.同执行 x264 --fullhelp 显示顺序.本文主要翻译:mewiki.project357.com/wiki/X264_Settings,同时参考d ...

  9. x264参数中文详解

    词汇翻译: macroblock:宏区块.是一种图像压缩的术语. 宏区块是运动预测的基本单位,一张完整的图像(frame)通常会被切割成几个宏区块.h.264 的宏区块大小是可变的,常用 16x16 ...

最新文章

  1. HTML5 模板推荐
  2. 涨知识!参加过将近三十届广交会的老鸟总结!
  3. 什么是SAP重复性生产
  4. moment 时间格式化
  5. 【渝粤题库】广东开放大学 文化市场营销 形成性考核 (2)
  6. arcgis怎么用python重新排序_python - 根据排序数据添加新的顺序ID号(ArcGIS) - 堆栈内存溢出...
  7. c 服务器二次验证码,V5验证官网 - 基础套餐免费 -滑块验证,行为验证,防刷验证 - 文档...
  8. iOS 切换首页-更改tabbar的容器控制器
  9. 【Elasticsearch】elasticsearch 查询 高亮
  10. WebLogic 控制台乱码
  11. unity 获取预制体_Unity打包插件AssetsBundleBrowser的使用
  12. switch怎么一个账号绑定各种服务器,NS怎么一个账号两台机器使用_Nintendo Switch 新旧机器同使用教程_尼萌手游网...
  13. 基于阿里云的基础架构设施保障(一)IAAS云计算
  14. 邱关源电路课后题第二章(第五版)
  15. RAW,RGB,YUV简单理解
  16. 请确认计算机上的无线网络已启用,电脑显示已连接无线网络却上不了网
  17. AWVS扫描web站点
  18. fcitx重启 linux_【Linux基础】Fcitx中文输入法安装
  19. Redis6客户端工具——Jedis
  20. 【Alpha】阶段第六次Scrum Meeting

热门文章

  1. 对分查找的最多次数_「剑指offer题解」数组中出现次数超过一半的数字
  2. c++清空输入缓冲区_干货 | C++的输入输出方法
  3. 【JS 逆向百例】网洛者反爬练习平台第四题:JSFuck 加密
  4. PHP中英文截取函数,php字符串截取函数,支持中英文混体
  5. 【PAT甲级 - 1013】Battle Over Cities (25分)(并查集)
  6. 【51Nod - 1215 】数组的宽度 (单调栈 或 分治 或 单调队列,算贡献,需去重)
  7. 重读经典(点云深度学习开山之作):《Deep learning on point clouds for 3D scene understanding》(持续更新中)
  8. raft算法mysql主从复制_Etcd raft算法实现原理分析
  9. python去除图像光照不均匀_低光照环境下图像增强相关
  10. 学分绩点计算编程java_方便我们计算学分绩点的JavaScript