当前位置: 首页 > news >正文

ffmpeg编码器编码元数据的过程以及编码前后的差异

编码方式为avcodec_send_frame:将原始帧发送到编码器进行编码
编码过程完成于avcodec_receive_packet:从编码器接收编码后的压缩数据,也就是说已经编码压缩完成了,并存储到avpacket中,此时元数据被分割成多个NALU单元,并按照H.264规范封装成码流,码流可以用AVPacket *pkt的指针进行访问,如pkt->data

在H.264编码中,编码器会将一帧图像分割成若干宏块,符号每个宏块进行帧间/帧内预测、变换、量化等操作,最终生成编码数据。这些编码数据通常会被分割成多个NALU单元,并按照H.264规范封装成码流。因此,一个像素点数据不会单独编码成一个NALU,而是被整合到宏块中,并与其他宏块一起编码成多个NALU单元。

编码前数据;Y平面
0 1 2 3 1 2 3 4 2 3 4 5 3 4 5 6 分别对应1~16号像素点的Y数值U平面
128 129  
129 130
//128对应左上角四个像素点的U值,同理V平面
64 69
65 70编码后数据(H.264 NALU结构):
00 00 00 01 67 ... 00 00 00 01 68 ... 00 00 00 01 65 ...

由此可见,十六个像素点被划分成了三个NALU ,宏块怎么划分是不固定的有大有小,一帧图片被划分为多个宏块.

http://www.lryc.cn/news/365808.html

相关文章:

  • AB测试学习(附有相关代码)
  • 用idea将java文件打成jar包
  • Ansible——group模块
  • Sql注入-报错注入
  • pyqt 回车触发两次editingFinished的解决办法
  • 爬取股票数据python
  • 每日新闻掌握【2024年6月4日 星期二】
  • 智谱AI 发布最新开源模型GLM-4-9B,通用能力超Llama-3-8B,多模态版本比肩GPT-4V
  • 从写简历到谈薪资的最全教程
  • Vue3 响应式API:高级函数(二)
  • 『大模型笔记』什么是提示词注入(Prompt Injection)攻击?
  • SD-WAN与IPSec的对比
  • Ceph入门到精通-ceph经典盘符飘逸问题处理步骤
  • 【CV算法工程师必看】作为一个图像算法工程师,需要会什么,要学哪些技术栈?
  • 【造化弄人:计算机系大学生真的象当年的高速公路收费员一样吗?】
  • 民主测评要做些什么?
  • JimuReport 积木报表 v1.7.5 版本发布,免费的低代码报表
  • Ubuntu安装Protobuf
  • 揭秘Lazada API:掌握数据驱动的电商帝国,轻松实现销售飞跃
  • ThinkPHP发邮件配置教程?群发功能安全吗?
  • 编译和安装OpenMediaVault(OMV)NAS
  • Java【问题 07】SSH不同版本使用jsch问题处理(7.4升级9.7及欧拉原生8.8)
  • k8s和deepflow部署与测试
  • matlab使用教程(92)—流线图、流带图和流管图
  • 全网最全!场外个股期权的询价下单流程的详细解析
  • linux 如何解压 zip
  • 【ubuntu】增加samba服务和文件夹
  • vue3中作用域插槽
  • Vuforia AR篇(六)— Mid Air 半空识别
  • 统计信号处理-匹配滤波器实现与验证(matlab仿真)