全景H.264
文章平均质量分 74
注重原理和代码的结合。每一段代码都有背后的原理或理论的支撑,每一个编码算法或理论都有它的代码落地实现。只有结合理论和代码,才能更深刻地理解h264、更熟练的使用h.264
永远的晚风
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
12. SPS/PPS写码流
这一步就开始正式产生码流了。h264码流最开头都是固定的sps/pps2个NALU结构。产生码流才是编码的最终目的。这里才是第一步。这里不会说明SPS/PPS的句法结构,因为官方spec已经有了明确的说明。原创 2025-11-20 22:53:22 · 343 阅读 · 0 评论 -
11. 参考帧列表刷新
参考帧列表刷新,是在每一帧编码前,构建可用于参考的L0和L1列表。这里要区别3个列表,第一个是h->frames.reference,这个是所有可用作参考帧的帧列表。h->fref[0]是用于当前帧L0搜索的帧列表,h->fref[1]是用于当前帧L1搜索的帧列表。原创 2025-11-18 19:21:39 · 421 阅读 · 0 评论 -
10. 计算帧代价
在x264中,帧代价具体来说就是使用一个固定的公式对当前帧计算出一个“数值”,这个数值就是帧代价。是 x264 编码器中一个非常核心的函数,用于计算帧代价。它的主要任务是快速估算编码一帧(或一组帧)所需的“代价”(Cost),这个代价是编码器进行智能决策的核心依据。特别是在码率控制和场景切换中依赖这个代价值。原创 2025-11-14 22:56:18 · 1043 阅读 · 0 评论 -
9.帧类型决策
x264的帧类型决策是一个复杂的过程,用于决定每一帧的最佳类型(IDR帧、I帧、P帧或B帧),以求在压缩效率、视频质量和编码速度之间达到最佳平衡。对h264编码来说,帧类型决策其实并不是必须的。只要第一帧是IDR帧即可,后续帧可以编码为任意帧类型。我们需要帧类型决策,只是出于压缩效率、视频质量的考虑。所以本节只讲述实时流时固定GOP情况下的帧类型决策,这种决策方式相对简单。原创 2025-10-15 10:57:50 · 333 阅读 · 0 评论 -
8.自适应量化初始化计算
介绍什么是自适应量化,以及x264中相关的初始化。原创 2025-09-29 11:22:57 · 555 阅读 · 0 评论 -
7.读入NV12图像
本节介绍x264读入NV12图像,以及在正式编码前对图像数据及其数据结构进行的必要处理。原创 2025-09-25 15:27:20 · 380 阅读 · 0 评论 -
6.PPS初始化
本节先讲述pps的概念,之后说明pps在x264中的实现。H.264(也称为 H.264/AVC)中的 PPS(Picture Parameter Set,图像参数集)是其码流中一种非常重要的参数集,它包含了解码一个或多个图像所需的信息。PPS 通常与 SPS(Sequence Parameter Set,序列参数集)协同工作。SPS 包含了作用于整个视频序列的全局参数,如分辨率、帧率、Profile 和 Level 等。而 PPS 包含的参数则更多地与单帧或一组帧图像的解码相关。原创 2025-09-25 09:22:48 · 872 阅读 · 0 评论 -
5.SPS初始化
本节先讲述sps的概念,之后说明sps在x264中的实现。H.264 的 SPS(Sequence Parameter Set,序列参数集) 是存放整个视频序列全局参数的核心元数据,它包含了解码视频流所必需的基本信息。H.264 的 SPS(序列参数集) 存在的核心目的是为解码器提供解读整个视频序列所必需的 全局参数和配置信息。它就像是整个视频的“说明书”或“解码钥匙”,确保了视频流能够被正确解析和重建。H.264 的 。原创 2025-09-23 17:37:58 · 404 阅读 · 0 评论 -
4. h.264编码最简化流程
本节说明h264的一个最小化的编码流程。什么是最小化的编码流程?h264的编码过程可以很复杂,也可以相对简单,这里把那些不必要的过程或者工具或者feature都去掉(例如b帧),同时如果某个编码步骤有多种方式选择,尽量选择最简单的那一种(例如选择CAVLC而不是CABAC、自适应量化选择最低档)。这样不仅不会影响对h264编码过程的理解,也可以排除不必要的干扰。原创 2025-09-17 18:03:04 · 718 阅读 · 0 评论 -
3.编码前处理:RGB转YUV
前面提到原始数字化视频一般用RGB格式来表示,但编码器一般只接受YUV格式(更具体一点是YUV420格式)作为输入,这就需要对原始数字视频进行一道格式转换。本节说明为什么编码器只接受YUV格式作为输入,以及如何进行RGB到YUV的格式转换。YUV格式也是数字图像的一种表示方法,它将亮度和色度信息分离开,常用于图像和视频处理领域。在YUV格式中,“Y”代表亮度,也就是我们通常所说的灰度值,它决定了图像的明暗程度。而“U”和“V”则代表色度,它们负责描述图像的色彩和饱和度,帮助我们区分不同的颜色。原创 2025-09-12 11:31:00 · 1026 阅读 · 0 评论 -
2.视频的数字化表示
上一节提到了,视频本质是一些连续的静态图像的按照特定的间隔去显示或呈现,人眼看到这一场景后,就会在大脑中认为这是连续动态的视频。这一节讲述视频的数字化表示,更准确地说是,原始视频的数字化表示,用来和压缩视频区分开。原创 2025-09-10 19:19:54 · 1458 阅读 · 0 评论 -
1.视频的本质
视频技术已经成为现代数字世界的核心组成部分,从流媒体服务到视频会议系统,无处不在。了解视频编码的基础知识不仅是音视频开发人员的必备技能,也是广大技术爱好者深入理解数字媒体工作原理的关键。本文将全面介绍视频的本质。原创 2025-09-10 10:57:05 · 1171 阅读 · 0 评论 -
0.专栏引言
本专栏目不会过多阐述算法或理论,也不会详解每一行代码,而是通过讲述编码流程中的所有关键且必须的操作以及这个操作关联的h.264spec或理论,让视频编码初学者对编码过程有一个清晰的、全景式的认知。目前关于h.264视频编码的优秀书籍、网络文章非常多:有侧重于理论算法的,有侧重于代码实现的,有侧重于性能优化的,也有一些文章把算法和理论结合起来讲解。x264-0.164.r3194中自带了win10编译工程,可以直接用vs2022打开编译。(3)每个步骤的原理、代码的对照讲解。(2)一个典型的编码流程。原创 2025-09-24 10:20:28 · 298 阅读 · 0 评论
分享