博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5_2 实现过程中
阅读量:6985 次
发布时间:2019-06-27

本文共 1142 字,大约阅读时间需要 3 分钟。

1.别人的mbcmp函数讲解

2.hardamard变换

文档

一个老版本注释

4.scan8  ffmpeg 代码

 

x264_macroblock_thread_init 初始化函数的位置

搜寻h->mb.pic.p_fenc过程

#define FENC_STRIDE 16

#define FDEC_STRIDE 32

            ALIGNED_16( pixel fenc_buf[48*FENC_STRIDE] );

            ALIGNED_16( pixel fdec_buf[52*FDEC_STRIDE] );

 h->mb.pic.p_fenc[0] = h->mb.pic.fenc_buf;

    h->mb.pic.p_fdec[0] = h->mb.pic.fdec_buf + 2*FDEC_STRIDE;

    h->mb.pic.p_fenc[1] = h->mb.pic.fenc_buf + 16*FENC_STRIDE;

h->mb.pic.p_fdec[1] = h->mb.pic.fdec_buf + 19*FDEC_STRIDE;

再结合h->mb.pic.fdec_buf和 h->mb.pic.p_fenc_buf的定义

 

 

 

x264_macroblock_thread_init

 

 

1.Slice_write中将宏块分割

While1) 循环中开始处理每个宏块

最开始通过mb_xy来控制编码的宏块个数

然后进阶这通过 x264_macroblock_cache_load_interlace()或者x264_macroblock_cache_load_progressive( h, i_mb_x, i_mb_y );  来载入宏块标示

跟中进入x264_macroblock_cache_load_progressive( h, i_mb_x, i_mb_y );   由于没有使用interlaced  可以看到调用了x264_macroblock_cache_load( h, mb_x, mb_y, 0 ); 这个函数,宏块最开始的指针初始化等行为都是在这个函数里面进行操作的。

2.x264_macroblock_cache_load( h, mb_x, mb_y, 0 ); 首先调用了x264_macroblock_cache_load_neighbours( h, mb_x, mb_y, b_mbaff );就是分析当前宏块周围的情况,邻居h->mb.xy等赋值操作。这些进行完了之后才在后面进行真正指针的一些赋值操作。

转载于:https://www.cnblogs.com/hatreds/archive/2012/05/02/2479369.html

你可能感兴趣的文章
[转]UML类图、关系及其JAVA代码
查看>>
销售管理系统设计与实现源码
查看>>
PhotoShop算法原理解析系列 - 像素化---》碎片。
查看>>
oracle卸载清除注册表(彻底卸载)
查看>>
PHP event 事件机制
查看>>
【ARDUINO】HC-05蓝牙不配对问题
查看>>
CentOS ping: unknown host 解决方法
查看>>
设计模式之责任链模式
查看>>
在 Windows 下安装 Oracle 11g XE (Express Edition)
查看>>
php多态设计
查看>>
oracel SQL多表查询优化
查看>>
Spring-Context的注解实现依赖注入功能
查看>>
CSS格式化 CSS代码压缩工具
查看>>
Android的TextView使用Html来处理图片显示、字体样式、超链接等
查看>>
mvc伪静态<三> IIS配置
查看>>
.NET设计模式(12):外观模式(Façade Pattern)(转)
查看>>
【leetcode】Maximum Gap(hard)★
查看>>
Visual Studio中的lib的链接顺序
查看>>
Cacti安装详细步骤
查看>>
android自定义radiobutton样式文字颜色随选中状态而改变
查看>>