一、fbm buffer num 缓冲队列

参考帧个数:当前帧参考前向后项帧的个数,I帧指关键帧,不用参考别人就可以完成解码。
      参考帧根据解码器的不同,有一个最大范围。
      解码缓冲帧个数:指根据参考帧解码出来的帧放到款冲队列的个数,款冲出来给显示模块读取调用。
  显示模块占用的帧个数:指从解码款冲帧读取的帧放入显示模块款冲队列的,待显示的帧的个数。
  fbm buffer num >= 参考帧的个数+1(根据参考帧解码出来的帧)

二、H265解码器学习

codeing tree unit:编码树型结构。

三、图片逐行扫描隔行扫描

逐行扫描:每一帧图像均是由电子束顺序地一行接着一行连续扫描而成,要得到稳定的逐行扫描图像,每帧图像必须扫描整数行。一帧图像是连续扫描625行组成的,每秒钟共扫描50帧图像,即帧扫描频率为50帧/秒,或写成50Hz,行扫描频率为31.25kHz。

隔行扫描:把一幅625行图像分成两场来扫,第一场称奇数场,只扫描625行的奇数行(依次扫描1、3、5、&#8230行),而第二场(偶数场)只扫描625行的偶数行(依次扫描2、4、6、&#8230行),通过两场扫描完成原来一帧图像扫描的行数,这就是对于每帧图像为625行的隔行扫描,每帧图像分两场扫,每一场只扫描了312.5行,而每秒钟只要扫描25帧图像就可以了,故每秒钟共扫描50场(奇数场与偶数场各25场),即隔行扫描时帧频为25Hz、场频为50Hz,而行扫描频率为15.625kHz。隔行扫描的行扫描频率为逐行扫描时的一半,因而电视信号的频谱及传送该信号的信道带宽亦为逐行扫描的一半。这样采用了隔行扫描后,在图像质量下降不多的情况下,信道利用率提高了一倍。但隔行扫描也会带来许多缺点,如会产生行间闪烁效应、出现并行现象及出现垂直边沿锯齿化现象等不良效应。

四、视频播放器的原理

解协议的作用:就是将流媒体协议的数据,解析为标准的相应的封装格式数据。视音频在网络上传播的时候,常常采用各种流媒体协议,例如HTTP,RTMP,或是MMS等等。这些协议在传输视音频数据的同时,也会传输一些信令数据。这些信令数据包括对播放的控制(播放,暂停,停止),或者对网络状态的描述等。解协议的过程中会去除掉信令数据而只保留视音频数据。例如,采用RTMP协议传输的数据,经过解协议操作后,输出FLV格式的数据。

解封装的作用:就是将输入的封装格式的数据,分离成为音频流压缩编码数据和视频流压缩编码数据。封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。例如,FLV格式的数据,经过解封装操作后,输出H.264编码的视频码流和AAC编码的音频码流。

解码的作用:就是将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据。音频的压缩编码标准包含AAC,MP3,AC-3等等,视频的压缩编码标准则包含H.264,MPEG2,VC-1等等。解码是整个系统中最重要也是最复杂的一个环节。通过解码,压缩编码的视频数据输出成为非压缩的颜色数据,例如YUV420P,RGB等等;压缩编码的音频数据输出成为非压缩的音频抽样数据,例如PCM数据。

视音频同步的作用:就是根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据,并将视频音频数据送至系统的显卡和声卡播放出来。

五、视频流封装格式

封装格式的主要作用是把视频码流和音频码流按照一定的格式存储在一个文件。

六、视频播放原理

视频的帧内空间局部连续性和帧间运动连贯性以及人眼视觉暂留现象使编码压缩成为可能。简单地说,一个视频帧可以理解成一张图片,一张图片的内部空间局部是连续的,由于对于人眼来说对于亮度比灰度要敏感的多,所以对于某一张图片来说,我可以在适当将灰度空间去掉,也就是后面说的帧内编码(处理的对象时某一张/帧);对于连续多张图片来说,由于采集的速度很快,图片与图片之间的联系很大,就是差别不大。我们可以用一张较完整的图片作为参考,其余图片只保留与上一张图片之间的差别数据,解码的时候在还原,也就是后面的帧间编码。

七、编码的工作机制

MPEG-4/H.264等编解码算法的工作机制基本都是混合编码,主要处理模块包括:预测、变换、量化和熵编码等。工作原理大同小异,图像帧的编码模式主要有帧内和帧间两种方式。帧内包括预测、变换、量化和熵编码等,帧间编码包括运动估计、运动补偿、变换、量化和熵编码等。帧内的预测和帧间的运动估计统称预测编码。这里说的帧内帧间编码都只是属于编码压缩处理的第一部分预测。

视频编解码(二):编解码器基础知识相关推荐

  1. 音视频开发入门(3):视频编解码之编码基础

    前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的.有关实时 ...

  2. 即时通讯音视频开发(三):视频编解码之编码基础

    前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的. 系列文 ...

  3. 视频编解码的理论和实践1:基础知识介绍

    近几年,视频编解码技术在理论及应用方面都取得了重大的进展,越来越多的人想要了解编解码技术.因此,网易云信研发工程师为大家进行了归纳梳理,从理论及实践两个方面简单介绍视频编解码技术. 相关阅读推荐 &l ...

  4. 视频编码零基础入门(1):视频编解码之理论概述

    1.前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的.有关 ...

  5. 即时通讯音视频开发(二):视频编解码之数字视频介绍

    前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的. 系列文 ...

  6. 视频编解码之理论概述 和即时通信

    前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的.有关实时 ...

  7. 即时通讯音视频开发(一):视频编解码之理论概述

    前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的. 系列文 ...

  8. 实时通信RTC技术栈之:视频编解码

    1.前言 RTC(Real-time Communications),实时通信,是一个正在兴起的风口行业,经过短短一年的时间,已经有很多玩家进入了这个行业,最典型的应用就是直播连麦和实时音视频通信.但 ...

  9. Android 音视频编解码(一) -- MediaCodec 初探

    音视频 系列文章 Android 音视频开发(一) – 使用AudioRecord 录制PCM(录音):AudioTrack播放音频 Android 音视频开发(二) – Camera1 实现预览.拍 ...

  10. 音视频开发入门(4):视频编解码之预测技术介绍

    上一节的图中有一个表示显示的图像序列与编码序列是不同的,不知道大家注意到没有,这个图很重要,编码是有固定规则的,视屏播放时,并不是按照各帧达到顺序播放的,而是按照这个规则进行播放. 前言 即时通讯应用 ...

最新文章

  1. SpringMVC组件说明以及配置代码
  2. ssm三大框架工作原理_蒸发器最常见的三大工作原理
  3. 如何在SAP Spartacus自定义Component里消费数据
  4. PAT-Mars number
  5. 七年级上册计算机重点知识点,初一上册数学重点知识点
  6. 每人都有两大炸弹的扎金花2012
  7. 信息学奥赛一本通 1040:输出绝对值 | OpenJudge NOI 1.4 02
  8. vista系统服务器,Vista系统中怎么设置IIS服务器
  9. L1-034 点赞 (20 分)—团体程序设计天梯赛
  10. 加载gif图片html,JS实现的自定义显示加载等待图片插件(loading.gif)
  11. 测试:如何选择合适的正交表
  12. Postman中的Pre-request Scrip详解
  13. 证件照底色一般是什么颜色 证件照底色更换软件推荐
  14. 剪切蒙版与抠图的结合
  15. 一起学CC3200之菜鸟必看(网络知识)
  16. 计算机基础及Python简介
  17. win7去除快捷方式箭头
  18. 单阶段目标检测算法YOLOv3
  19. React 合成事件
  20. 3D着色器(OpenGL)

热门文章

  1. iscsi网络存储服务
  2. jQuery/CSS3炫酷动画效果插件 animate
  3. ViT (Vision Transformer) ---- Text Generation(文本生成器)
  4. halcon学习之图像增强、平滑和去噪
  5. python爬虫执行js代码_python爬虫执行js代码-execjs
  6. Maven分布式工程-分页查询(一)
  7. c语言中输入大数,如何使用C语言实现输入10个数按从大到小的顺序排序输出
  8. rtklib 天线相位中心_全球5G天线产业竞争格局、技术趋势分析
  9. 传说中Python最难理解的点|看这完篇就够了
  10. 使用ACCESS+OUTLOOK2007邮件方式批量收集数据