视频分析原理

本文详细介绍了DSP芯片在视频解码中的作用,解释了PTS的时间戳概念以及视频帧的播放顺序。MediaCodec作为Android系统的硬解码工具,其工作原理是在DSP芯片上进行解码生成YUV数据,然后由GPU渲染到屏幕。同时,文章探讨了H264、H265的解码流程,并提到了硬解码可能面临的兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DSP芯片原理讲解

在这里插入图片描述
在这里插入图片描述
帧在码流中的传输顺序和真正的播放顺序是不同的。
视频中的每一帧都有一个pts值,越靠后播放的帧pts值就越大,越先播放的帧,pts越小。也是根据这个pts的值的大小来确定到底要先播放哪一帧后播放哪一帧的。
在这里插入图片描述
码流中,首先传输的是I帧,然后传输的是P帧,但是渲染并不一定就是按这个顺序了,因为还存在B帧,如果不存在B帧的视频,就会按照这个顺序先渲染I帧再渲染P帧。
如果有B帧存在,I帧渲染之后,P帧解码之后会存储进DSP芯片中,然后去判断P帧之后的帧的pts,判断后面这一帧的pts与进入DSP的P帧的pts进行比较,如果P帧的pts大于后面这一帧的pts,那么说明后面这一帧要在P帧之前渲染播放,这也就确定了后面这一帧必然是B帧。
假设后面帧的pts都大于DSP中的P帧中的pts,那说明后面这一帧就是P帧或者是I帧了。

pts是什么?
pts是编码时候追随每一帧放入的时间戳参数。

MediaCodec编码机制

解码分为硬解和软解。
硬解主要特点是解码速度快,不发热,但是兼容性比较差,因为要依赖具体硬件设备。硬解码主要使用的是MediaCodec。
MediaCodec访问底层的编解码器,也就是访问native层,Android SDK层,framework层。

在这里插入图片描述
移动端MediaCodec解码的时候都是交给DSP芯片进行解码的,解码以后再交给GPU或者CPU,
DSP芯片处理的就是压缩数据,也就是码流,DSP芯片进行解码生成对应的YUV数据,然后把YUV数据交给GPU,GPU把原始数据渲染出来显示在屏幕上。
也就是说.h265的数据通过MediaCodec解码,生成原始YUV数据,渲染在srufaceView中就可以展示出来了。

软解码,解码速度比较慢,发热,但是兼容性较好。

MediaCodec解码H264、H265原理,深度解析视频解码流程

一个视频文件,每一个I帧之前都是sps和pps的数据。一个视频文件,它的sps是相同的pps也是相同的。不同的视频文件肯定就是不同的。

H265硬解码兼容问题

参考

关于H264、H265中的帧内压缩和帧间压缩
https://blog.youkuaiyun.com/yu540135101/article/details/108053133

【H2645】H.264的宏块和H.265的编码树单元总结
https://blog.youkuaiyun.com/u010168781/article/details/107587133

h264和h265的区别
https://blog.youkuaiyun.com/knowledgebao/article/details/84647323

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值