我是靠谱客的博主 无情御姐,最近开发中收集的这篇文章主要介绍(一)Android音视频-视频编解码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

图像在内存中存储方式

图像在内存中存储就是一排排数字矩阵,矩阵中每个数字代表不同的像素点,常见的颜色空间有灰度空间,RGB空间,YUV空间。

YUV

YUV是欧洲电视所使用的一种格式,研究表明人眼对亮度敏感度高于色度,所以色度减少人眼也不会察觉什么,这也是YUV的数据小于RGB的原因。其中Y代表亮度,UV代表色差,U和V是构成颜色的两个分量。

RGB

通过名字就可以知道是由R(red),G(green),B(blue)三原色所叠加,组成不同的颜色

编码的作用

如一个1280*720的RGB视频每秒产生的数据是巨大的
1280 ∗ 720 ∗ 33 ∗ 3 / 1024 / 1024 = 87 M B 1280*720*33*3/1024/1024=87MB 1280720333/1024/1024=87MB
为了进行网络传输,使用编码来压缩体积

视频帧

I帧

帧的完整数据,只需要这一帧就可以解析完整画面。

P帧

用于存储与上一帧的差别数据,解码时候通过上一帧的缓存与存储的差别数据而得到下一帧

B帧

用于记录前后帧的不同点来压缩数据,属于双向预测,压缩率最高。

基本概念

帧率(FPS)

每秒显示的帧数,现在一般游戏都有高帧率模式。增大每秒显示的帧数从而得到更流畅的游戏体验,人眼一般只能察觉到75fps左右。

视频分辨率

视频所成像的图像大小尺寸。

刷新率

屏幕每秒刷新的次数。刷新率越高图像越稳定,越低图像闪烁抖动越厉害。

码率(比特率)

单位播放连续的媒体,越高带宽消耗越多。
文 件 大 小 ( b ) = 码 率 ( b / s ) × 时 长 ( s ) 文件大小(b)=码率(b/s)×时长(s) b=b/s×s

DTS

即Decode Time Stamp,主要用于标示读入内存中的比特流在什么时候开始送入解码 器中进行解码。

PTS

即Presentation Time Stamp,主要用于度量解码后的视频帧什么时候被显示出来。

最后

以上就是无情御姐为你收集整理的(一)Android音视频-视频编解码的全部内容,希望文章能够帮你解决(一)Android音视频-视频编解码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部