![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
x264
文章平均质量分 84
雷霄骅
这个作者很懒,什么都没留下…
展开
-
最简单的视频编码器:编译(libx264,libx265,libvpx)
最近研究了一下几种常见的视频编码器:x264,x265,vpx。本文简单记录一下它们的编译方法。x264,x265,vpx这三个开源的视频编码器可以说是当今“最火”的视频编码器。x264现在占据着H.264视频编码器的半壁江山;x265则是目前实现H.265标准最好的开源视频编码器,并且在未来可能接替x264;而vpx则是Google推出的开源视频编码器,它提出的VP9编码标准的性能也不错。原创 2014-12-22 00:35:27 · 50173 阅读 · 19 评论 -
x264源代码简单分析:编码器主干部分-2
本文继续记录x264编码器主干部分的源代码。上一篇文章记录x264_encoder_open(),x264_encoder_headers(),和x264_encoder_close()这三个函数,本文记录x264_encoder_encode()函数。原创 2015-05-14 14:14:43 · 20129 阅读 · 4 评论 -
x264源代码简单分析:x264命令行工具(x264.exe)
本文简单分析x264项目中的命令行工具(x264.exe)的源代码。该命令行工具可以调用libx264将YUV格式像素数据编码为H.264码流。原创 2015-05-08 18:30:23 · 25608 阅读 · 2 评论 -
x264源代码简单分析:编码器主干部分-1
本文分析x264编码器主干部分的源代码。“主干部分”指的就是libx264中最核心的接口函数——x264_encoder_encode(),以及相关的几个接口函数x264_encoder_open(),x264_encoder_headers(),和x264_encoder_close()。这一部分源代码比较复杂,现在看了半天依然感觉很多地方不太清晰,暂且把已经理解的地方整理出来,以后再慢慢补充还不太清晰的地方。原创 2015-05-11 17:10:51 · 30465 阅读 · 13 评论 -
FFmpeg与libx264接口源代码简单分析
本文简单记录一下FFmpeg的libavcodec中与libx264接口部分的源代码。该部分源代码位于“libavcodec/libx264.c”中。正是有了这部分代码,使得FFmpeg可以调用libx264编码H.264视频。原创 2015-05-25 01:48:07 · 28592 阅读 · 4 评论 -
x264源代码简单分析:熵编码(Entropy Encoding)部分
本文记录x264的 x264_slice_write()函数中调用的x264_macroblock_write_cavlc()的源代码。x264_macroblock_write_cavlc()对应着x264中的熵编码模块。熵编码模块主要完成了编码数据输出的功能。原创 2015-05-24 22:48:12 · 15235 阅读 · 6 评论 -
x264源代码简单分析:滤波(Filter)部分
本文记录x264的x264_slice_write()函数中调用的x264_fdec_filter_row()的源代码。x264_fdec_filter_row()对应着x264中的滤波模块。滤波模块主要完成了下面3个方面的功能:(1)环路滤波(去块效应滤波)(2)半像素内插(3)视频质量指标PSNR和SSIM的计算本文分别记录上述3个方面的源代码。原创 2015-05-20 22:55:15 · 14116 阅读 · 7 评论 -
x264源代码简单分析:x264_slice_write()
本文简单分析x264的x264_slice_write()的源代码。x264_slice_write()是x264项目的核心,它完成了编码了一个Slice的工作。根据功能的不同,该函数可以分为滤波(Filter),分析(Analysis),宏块编码(Encode)和熵编码(Entropy Encoding)几个子模块。本文首先对x264_slice_write()进行总体的概括,在后续文章中将会对上述几个子模块展开进行分析。原创 2015-05-17 18:36:39 · 16682 阅读 · 5 评论 -
x264源代码简单分析:概述
最近正在研究H.264和HEVC的编码方式,因此分析了一下最常见的H.264编码器——x264的源代码。本文简单梳理一下它的结构。X264的源代码量比较大而且涉及到很多的算法,目前还有很多不懂的地方,因此也不能保证分析的完全正确。目前打算先把已经理解的部分整理出来以作备忘。原创 2015-05-06 15:53:49 · 64924 阅读 · 26 评论 -
x264源代码简单分析:宏块分析(Analysis)部分-帧间宏块(Inter)
本文记录x264的 x264_slice_write()函数中调用的x264_macroblock_analyse()的源代码。x264_macroblock_analyse()对应着x264中的分析模块。分析模块主要完成了下面2个方面的功能:(1)对于帧内宏块,分析帧内预测模式(2)对于帧间宏块,进行运动估计,分析帧间预测模式上一篇文章记录了帧内宏块预测模式的分析,本文继续记录帧间宏块预测模式的分析。原创 2015-05-23 19:07:49 · 18463 阅读 · 3 评论 -
x264源代码简单分析:宏块分析(Analysis)部分-帧内宏块(Intra)
本文记录x264的 x264_slice_write()函数中调用的x264_macroblock_analyse()的源代码。x264_macroblock_analyse()对应着x264中的分析模块。分析模块主要完成了下面2个方面的功能:(1)对于帧内宏块,分析帧内预测模式(2)对于帧间宏块,进行运动估计,分析帧间预测模式原创 2015-05-22 16:08:02 · 22619 阅读 · 14 评论 -
HEVC,VP9,x264性能对比
Dan Grois等人在论文《Performance Comparison of H.265/MPEG-HEVC, VP9, andH.264/MPEG-AVC Encoders》中,比较了下一代编码标准HEVC,VP9的以及当前主流编码标准H.264之间的性能。在此记录一下。本文中选用的编码器如下:HEVC:HMVP9:libvpxH.264:x264下表显示了HM的原创 2014-02-09 20:35:53 · 55578 阅读 · 21 评论 -
x264 编码器选项分析 (x264 Codec Strong and Weak Points) 2
上篇文章简单翻译了MSU实验室做的X264的Option(即编码选项,后文称其英文名)分析报告《x264 Codec Strong and Weak Points》的前面部分。前面部分部分比较基础,而其后的内容相对来说要复杂许多。本文继续上篇文章的内容,简单记录接下来的内容。前文通过“彩云图”的方法分析了X264的Preset。“彩云图”这种方式的优点是一目了然,可以清晰地看出各种Option取不同的值对视频的质量和编码速度的影响。但“彩云图”这种分析是有局限性的。关键在于它对X264的Option只能定翻译 2014-09-03 11:13:43 · 6444 阅读 · 0 评论 -
x264 编码器选项分析 (x264 Codec Strong and Weak Points) 1
本文简单翻译了MSU实验室做的X264的Option(即编码选项,后文称其英文名)分析报告《x264 Codec Strong and Weak Points》。看了之后感觉分析得十分透彻,而且其采用的方法也很有参考价值,因此记录一下其中的要点以作备忘。众所周知,X264的Option非常繁多,如何搭配这些繁多的参数以让编码后的视频体积小,质量好,同时编码速度快,确实是一个很让人头疼的问题。本报告翻译 2014-09-02 12:55:38 · 7968 阅读 · 0 评论 -
最简单的视频编码器:基于libx264(编码YUV为H.264)
本文记录一个最简单的基于libx264的H.264视频编码器。此前记录的H.264编码器都是基于FFmpeg调用libx264完成编码的,例如: 《最简单的基于FFMPEG的视频编码器(YUV编码为H.264)》相比与上文中的编码器,本文记录的编码器属于“轻量级”的编码器。因为它不再包含FFmpeg的代码,直接调用libx264完成编码。因此项目的体积非常小巧。该编码器可以将输入的YUV数据编码为原创 2014-12-23 00:18:18 · 48499 阅读 · 57 评论 -
x264源代码简单分析:宏块编码(Encode)部分
本文记录x264的 x264_slice_write()函数中调用的x264_macroblock_encode()的源代码。x264_macroblock_encode()对应着x264中的宏块编码模块。宏块编码模块主要完成了DCT变换和量化两个步骤。函数调用关系图宏块编码(Encode)部分的源代码在整个x264中的位置如下图所示。单击查看更清晰的图片宏块编码(Encode)部分的函数调用关系原创 2015-05-24 13:47:40 · 16020 阅读 · 4 评论