整体的看了一边理解很浅显希望你看完之后能够帮我指ppt课件_第1页
整体的看了一边理解很浅显希望你看完之后能够帮我指ppt课件_第2页
整体的看了一边理解很浅显希望你看完之后能够帮我指ppt课件_第3页
整体的看了一边理解很浅显希望你看完之后能够帮我指ppt课件_第4页
整体的看了一边理解很浅显希望你看完之后能够帮我指ppt课件_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、谢谢他: 我只对编码部分整体的看了一边,了解很粗浅,希望他看完之后可以帮我指正一下。 每一个流程前边列出了该流程的出处,我只针对本人以为比较复杂的函数画出了流程图。 问题: 我觉得虽然做的是框架的任务,但是对x264的整体把握的并不好,不知道问题出在哪里? 有什么可以加深了解的方法呢? 我得目的是针对详细的某一块的算法进展优化,我想先要把整个程序的一切细节实现都看的比较明白了 以后在开场进展优化,不知道能否可行。还有他建议从哪里切入开场看细节部分呢?我是不是对规范的了解 还不够深化,在看程序的时候前往去查看规范的时候应该看哪一个文档比较好呢?是H.264_Prepublish_0503.doc

2、么?谢谢目前就这些问题了,他有时间的话帮我看看 吧!x264_param_default设置默许参数读取命令行并分析Parse编码EncodeX264.c: mainX264.c:Encode得到总帧数p_get_frame_total初始化编码器x264_encoder_open为新图分配空间x264_picture_alloc对帧编码对帧编码Encode frame延迟的B帧更新,清理图片区,封锁解码器,封锁输入输出文件设置输出文件参数p_set_outfile_paramX264:Encode_Frames不强迫任何参数调用x264_encoder_encode进展编码编码NAL层x26

3、4_nal_encodep_write_nalu写入图片终了Encoder.c: x264_encoder_encode将图片copy到一帧中去并且挪动到一个缓冲器 选择帧类型挪动一些B 帧和一个非B帧到编码队列中去获得要被编码的帧编码Do encode更新编码器形状计算和打印统计值判别能否存放重建的帧设置输出图片属性 Encoder.c: do encode设置帧上下文初始化帧类型初始化参考列表,bit率控制创建切片头部写入bit流:初始化bit流上下文写入序列参数信号和图片参数信号写入切片数据x264_slice_writebit流终了,设置输出。 Encoder.c: x264_slic

4、e_write初始化形状参数NAL单元开场写切片头部假设是cabac编码初始化上下文以及编码器编码开场装载缓冲区分析宏块参数x264_macroblock_analyse宏块编码x264_macroblock_encode能否为跳过宏块是进展相关处置否能否为cabac编码是否写入cavlc编码x264_macroblock_write_cavlc写入终了保管缓冲区数据编码终了cabac或者cavlcNAL单元编码终了End写入cabac编码x264_macroblock _write_cabac设置QP并且防止QP变化太快对分析进展初始化判别切片类型B分析开场进展帧内方式分析比较16*16和4

5、*4子块方式IPP切片分析切片分析B切片分析切片分析从分析中更新宏块宏块分析终了Analysis.c : x264_macroblock_analyseP检查能否为跳过P宏块是否相关处置分析加载破费分析帧间16*16方式能否为16*16子块方式是否分析帧间P方式8*8子块选择最好的帧间方式检测到16*16子块信号并且帧内8*8破费小于16*16运动估计破费P切片分析分析帧间8*8子块是否分析帧间16*8/8*16子块进展1/4象素加工 最正确帧内宏块方式分析,并对色度和亮度成分分别附值P切片分析终了B切片分析判别能否为直接方式是否进展相关处置判别能否为skip方式否是分析加载破费,直接方式和帧

6、间16*16方式能否收到16*16子块信号分析帧内8*8,8*16,16*8子块否加工1/4象素精度最正确帧内宏块方式分析B切片分析终了Macroblock.c: x264_macroblock_encode判别能否为跳过P宏块是 x264_macroblock_encode_pskip( h )否判别能否为跳过B宏块是 x264_macroblock_encode_skip( h )否量化缩放判别宏块类型I 16*16x264_mb_encode_i16x16x264_mb_encode_i4x4Inter MBI 4*4运动补偿x264_mb_mc1616DCT变换分别对每一个44块量化和

7、z扫描以及对每一个88的块进展化简色度编码开场量化放缩判别能否为skip方式,并进展相关处置 x264_mb_encode_8x8计算亮度色度句型,以及非零计数存储cbp: coded_ block_ pattern检查P/B跳过情况,进展相应处置色度编码终了宏块编码终了Encoder.c: x264_mb_encode_i16x16读取 h-mb.pic.p_fenc0中的数据,对其进展16*16dct变换,系数存放在一个三维数组17*4*4里边,的dct1中进入循环16次对每一个4*4块进展编码将一切的4*4块的dc系数,按照一定顺序存放在Dct0 中量化Z扫描,结果存放于h-dct.bl

8、ocki.residual_ac反量化一切dct1中的系数idct.luma16x16_dc重建块idct,反量化,并将结果存放入h-mb.pic.p_fdec0宏块编码终了Encoder.c: x264_mb_encode_i44对4*4子块dct变换从p_src和p_dst取出数据变换以后放在dct4*4中对dct4*4量化4*4 Z字型全扫描结果存放于h-dct.blockidx.luma4x4对dct4*4 中的数据解量化 对dct4*4中的数据进展idct变换,结果放置于p_dst 中,用于重建编码终了commonmacroblock.c:x264_mb_mc判别宏块类型为运用列表0

9、预测的16*16预测方式分三种情况进展处置1616,168,816x264_mb_mc_0 xywh分为D_L0,D_L1,以及B预测三大种种情况进展讨论分别调用:x264_mb_mc_0 xywhx264_mb_mc_1xywhx264_mb_mc_01xywhx264_mb_mc_direct8x8进展处置假设宏块类型为P8*8或者B8*8能否为B跳过或者直接方式是 x264_mb_mc_direct8x8初始化参考列表否,即为其他B方式判别宏块部分类新D_16x16D_16x8D_8*16EndMacroblock.c: x264_mb_encode_8x8(编码色度成分编码色度成分)对

10、色度成分进展88子块dct变换对每一个44子块进展处置:存储dc系数,量化,z扫描,反量化对每一个子块的dc系数进展单独处置量化,z扫描对每一个子块的dc系数进展反变换和反量化用于重建块 判别假设为B帧间方式并且简化参数足够低那么: 该8*8块几乎没有色度数据因此把它置为空,这样作可以节省bit对整块进展反dct变换,用于重建终了Cavlc.c:x264_macroblock_write_cavlc判别切片类型I,P,B写入宏块类型,预测,和运动矢量能否为I_PCM类型是写入哥伦布函数bs_ write _ue补齐0分别写入Y, Cr, Cb值并且前往终了否能否为I_44类型是写入哥伦布函数bs_ write _ue为每一个4*4亮度子块进行预测前往预测方式写入每一个亮度44子块的预测方式写入色度的预测方式能否为I_1616类型写入亮度和色度的预测类型是否能否为P_L0类型跳出类型判别跳出类型判别是判别宏块部分的类型1616,168,816写入部分类型,针对每种不同类型写入参考帧号和预测矢量跳出类型判别否能否为P_88类型是否写入子宏块类型写入4个参考图像索引写入子宏块的mvd?x264_sub_m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论