美文网首页
Daily AVFoundation - 视频基础H264编码

Daily AVFoundation - 视频基础H264编码

作者: Tel_小超 | 来源:发表于2021-08-26 15:45 被阅读0次

前言

随着移动技术的成熟和即将到来的5G时代,直播已成为互联网行业的大热话题,直播答题、游戏直播、竞赛直播等层出不穷,直播早已成为人们耳熟能详的技术。互联网用户消费内容和交互方式的升级,支撑这些内容和交互方式的基础设施也正在悄悄发生变革。很多互联网创业者或者成熟企业进入该领域。

H264编码

H.264,同时也是MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。这个标准通常被称之为H.264/AVC(或者AVC/H.264或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC)而明确的说明它两方面的开发者...详见H264百度百科

编码的目的
编码是为了将数据进行压缩,这样在传输的过程中就不会使资源被浪费。

举个🌰:

比如: 
当你此刻显示器正在播放一个视频,分辨率1024×576,帧率是25,
那么一秒所产生正常的数据大小为:
1024×576(位像素)*25(张) / 8(1字节8位)(结果:B) / 1024(结果:KB) / 1024 (结果:MB) =  1.75MB 
显然一秒这么大的数据我们是无法接受的,如果不将数据进行压缩,那么最后视频资源数据将会超级大;

优势

  • 低码率(Low Bit Rate):和MPEG2和MPEG4 ASP等压缩技术相比,在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3。
  • 高质量的图像:H.264能提供连续、流畅的高质量图像(DVD质量)。
  • 容错能力强:H.264提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具。
  • 网络适应性强:H.264提供了网络抽象层(Network Abstraction Layer),使得H.264的文件能容易地在不同网络上传输(例如互联网,CDMA,GPRS,WCDMA,CDMA2000等)。

H.264最大的优势是具有很高的数据压缩比率,在同等图像质量的条件下,H.264的压缩比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。

举个🌰:

原始文件的大小如果为88GB,采用MPEG-2压缩标准压缩后变成3.5GB,压缩比为25∶1,而采用H.264压缩标准压缩后变为879MB,从88GB到879MB,H.264的压缩比达到惊人的102∶1。

低码率(Low Bit Rate)对H.264的高的压缩比起到了重要的作用,和MPEG-2和MPEG-4 ASP等压缩技术相比,H.264压缩技术将大大节省用户的下载时间和数据流量收费。尤其值得一提的是,H.264在具有高压缩比的同时还拥有高质量流畅的图像,正因为如此,经过H.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。

特点

  • 更高的编码效率: 同H.263等标准的特率效率相比,能够平均节省大于50%的码率。
  • 高质量的视频画面: H.264能够在低码率情况下提供高质量的视频图像,在较低带宽上提供高质量的图像传输是H.264的应用亮点。
  • 提高网络适应能力: H.264可以工作在实时通信应用(如视频会议)低延时模式下,也可以工作在没有延时的视频存储或视频流服务器中。
  • 采用混合编码结构:同H.263相同,H.264也使用采用DCT变换编码加DPCM的差分编码的混合编码结构,还增加了如多模式运动估计、帧内预测、多帧预测、基于内容的变长编码、4x4二维整数变换等新的编码方式,提高了编码效率。
  • H.264的编码选项较少:在H.263中编码时往往需要设置相当多选项,增加了编码的难度,而H.264做到了力求简洁的“回归基本”,降低了编码时复杂度。
  • H.264可以应用在不同场合:H.264可以根据不同的环境使用不同的传输和播放速率,并且提供了丰富的错误处理工具,可以很好的控制或消除丢包和误码。
  • 错误恢复功能:H.264提供了解决网络传输包丢失的问题的工具,适用于在高误码率传输的无线网络中传输视频数据。
  • 较高的复杂度:264性能的改进是以增加复杂性为代价而获得的。据估计,H.264编码的计算复杂度大约相当于H.263的3倍,解码复杂度大约相当于H.263的2倍。

如何编码
按照指定的特定的格式记录采样和量化后的数据Data.
编解码协议H264(视频)和AAC(音频)有软编解码和硬编解码。
软编码和硬编码如何区分

  • 软编码:使用CPU进行编码
  • 硬编码:使用非CPU进行编码,如显卡GPU、专用的DSP、FPGA、ASIC芯片等

软编码和硬编码比较

  • 软编码:实现直接、简单,参数调整方便,升级易,但CPU负载重,性能较硬编码低,低码率下质量通常比硬编码要好一点。
  • 硬编码:性能高,低码率下通常质量低于硬编码器,但部分产品在GPU硬件平台移植了优秀的软编码算法(如X264)的,质量基本等同于软编码。

举个不太恰当的🌰:来说明软编硬编的区别

软编码和硬编码背后其实是一种设计思想,软编码更加灵活,对应扩展修改比较容易,而硬编码则是比较死板,不便于扩展和修改。
例如 int i = 2,j = 3
if ( i == 2 ) {
//硬编码
}

if( i == j ) {
//软编码,可以任意修改i,j的值,从而达到一些要求,更加容易修改和扩展。
}

目前的主流GPU加速平台

  • Intel
  • AMD
  • NVIDIA

目前主流的GPU平台开发框架

  • CUDA:NVIDIA的封闭编程框架,通过框架可以调用GPU计算资源
  • AMD APP:AMD为自己的GPU提出的一套通用并行编程框架,标准开放,通过在CPU、GPU同时支持OpenCL框架,进行计算力融合。
  • OpenCL:开放计算语言,为异构平台编写程序的该框架,异构平台可包含CPU、GPU以及其他计算处理器,目标是使相同的运算能支持不同平台硬件加速。
  • Inel QuickSync:集成于Intel显卡中的专用视频编解码模块。

总结

本文讲解了视频H264编码目的与优势,以及软硬编解码的知识概要。想要了解更多关注下一篇文章!

相关文章

  • Daily AVFoundation - 视频基础H264编码

    前言 随着移动技术的成熟和即将到来的5G时代,直播已成为互联网行业的大热话题,直播答题、游戏直播、竞赛直播等层出不...

  • Daily AVFoundation - 视频基础

    视频 什么是视频?视频其实就是由很多张图片,时间间隔很小的连续展示出来,人们就觉得画面中的人物在动,这就是视频。 ...

  • 音视频处理学习资料

    雷霄骅 qqchenjian318 知心猛男 基础知识 音视频基础概念 H264视频编码介绍 技术方案 微信 An...

  • ffmpeg视频的编码Encode---YUV编码为h264

    视频编码的过程就是将YUV的像素格式编码成H264的压缩格式 YUV:视频像素格式H264:视频压缩数据格式 流程...

  • FFmpeg的入门

    引言H264编码使用 VideoToolbox硬编码录制H264视频 从iOS8开始,苹果将VideoToolbo...

  • VideoToolbox视频硬编码

    视频编码相关知识概念 码率计算公式 H264视频编码压缩方法: VideoToolbox编码流程 VideoToo...

  • iOS视频开发(三):视频H264硬解码

    前言 上一篇《iOS视频开发(二):视频H264硬编码》我们已经学会了如何对视频数据进行H264编码并且了解了H2...

  • 视频格式

    视频:视频编码数据+音频编码数据 视频格式:视频封装格式(flv、mov、MP4) 视频编码格式:h264、h26...

  • 多媒体-封装格式和编码格式简单理解

    1. 封装格式和编码格式 什么是视频? 对原始视频流进行编码然后再封装的产物。 视频编码:h264音频编码:aac...

  • Daily AVFoundation - 音频基础

    一.音频基础学习 1.1 声音是怎么产生的? 认识声音 振动的物体能使邻近的空气分子振动,这些分子又引起它们邻近的...

网友评论

      本文标题:Daily AVFoundation - 视频基础H264编码

      本文链接:https://www.haomeiwen.com/subject/czquiltx.html