视频编解码(二):编解码器基础知识

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

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习Linux音视频编解码的路线可以参考以下步骤: 1. 了解AVS标准:AVS是中国的第代信源编码标准,用于数字音视频的编码压缩。你可以先了解AVS的基本原理和技术特点,以及它在数字音视频产业中的应用。 2. 学习音视频编解码基础知识:音视频编解码是将原始音视频数据进行压缩和解压缩的过程。你可以学习音视频编码的基本概念、常用的音视频编码算法和标准。 3. 掌握Linux操作系统:Linux是一个广泛使用的开源操作系统,它在音视频领域有很多应用。你可以学习Linux的基本操作和命令,熟悉Linux环境下的开发和编程工具。 4. 学习流媒体技术:流媒体是指通过网络传输音视频数据的技术。你可以学习流媒体的基本原理、协议和常用的流媒体服务器软件。 5. 掌握音视频编解码工具:Linux上有很多开源的音视频编解码工具,如FFmpeg、GStreamer等。你可以学习这些工具的使用方法和参数配置,了解它们在音视频编解码中的应用。 6. 实践项目:通过实践项目来巩固所学的知识。你可以选择一些开源的音视频项目,如视频播放器、音频编辑器等,进行学习和实践。 总之,学习Linux音视频编解码需要掌握AVS标准、音视频编解码基础知识、Linux操作系统、流媒体技术和音视频编解码工具,并通过实践项目来应用所学的知识。这样就能建立起一个相对完整的学习路线。<span class="em">1</span><span class="em">2</span><span class="em">3</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值