广州网站建设优化公司,炎陵做网站,外贸网站平台都有哪些 免费的,微信网站登录最近在做摄像头视频的数据处理#xff0c;得到了网络相机的.h264格式的数据#xff0c;需要做解码处理#xff0c;由于对视频的编码解码原理不太了解#xff0c;因此查找资料总结一下
为什么要进行视频编码#xff1f;
视频编码又称为视频压缩#xff0c;伴随着用户对高…最近在做摄像头视频的数据处理得到了网络相机的.h264格式的数据需要做解码处理由于对视频的编码解码原理不太了解因此查找资料总结一下
为什么要进行视频编码
视频编码又称为视频压缩伴随着用户对高清视频的需求量的增加视频多媒体的视频数据量也在不断加大。如果未经压缩这些视频很难应用于实际的存储和传输。而视频中是有很多冗余信息的以记录数字视频的YUV分量格式为例YUV分别代表亮度与两个色差信号。例如对于现有的PAL制电视系统其亮度信号采样频率为13.5MHz色度信号的频带通常为亮度信号的一半或更少为6.75MHz或3.375MHz。以422的采样频率为例Y信号采用13.5MHz色度信号U和V采用6.75MHz采样采样信号以8bit量化则可以计算出数字视频的码率为13.5*8 6.75*8 6.75*8 216Mbit/s。如此大的数据量如果直接进行存储或传输将会遇到很大困难因此必须采用压缩技术以减少码率。数字化后的视频信号能进行压缩主要依据两个基本条件 数据冗余。例如如空间冗余、时间冗余、结构冗余、信息熵冗余等即图像的各像素之间存在着很强的相关性。消除这些冗余并不会导致信息损失属于无损压缩。视觉冗余。人眼的一些特性比如亮度辨别阈值视觉阈值对亮度和色度的敏感度不同使得在编码的时候引入适量的误差也不会被察觉出来。可以利用人眼的视觉特性以一定的客观失真换取数据压缩。这种压缩属于有损压缩。 数字视频信号的压缩正是基于上述两种条件有效地去除视频数据中冗余信息实现视频数据在互联网中快速传输和离线的存储。使得视频数据量得以极大的压缩有利于传输和存储。
主流的编解码标准的压缩对象都是YUV图像
常见的编码格式
在过去的几十年中一系列的视频编码标准被广泛的应用。目前已有的视频压缩标准有很多种包括国际标准化组织International Organization for Standardization, ISO/国际电工技术委员会International Electrotechnical Commission, IEC制定的MPEG-1、MPEG-2、MPEG-4标准国际电信联盟电信标准化部门International Telecommunication Union-Telecom, ITU-T制定的H.261、H.263。
2003年3月ITU-T和ISO/IEC 正式公布了H.264/MPEG-4 AVC视频压缩标准。H.264作为目前应用最为广泛的视频编码标准在提高编码效率和灵活性方面取得了巨大成功使得数字视频有效地应用在各种各样的网络类型和工程领域。为了在关键技术上不受国外牵制同时也不用交大量的专利费用中国也制定了AVS系列标准可以提供与H.264/AVC相当的编码效率。
近年来随着用户体验的不断升级高清1920x1080和超高清3840x2160视频的应用越来越广泛。相对于标清视频高清视频分辨率更大也更清晰但是相应的数据量也随之增加。在存储空间和网络带宽有限的情况下现有的视频压缩技术已经不能满足现实的应用需求。为了解决高清及超高清视频急剧增长的数据率给网络传输和数据存储带来的冲击ITU-T和ISO/IEC联合制定了具有更高压缩效率的新一代视频压缩标准HEVCHigh Efficiency Video Coding。
视频文件生成方式
一个完整的视频文件是由音频和视频2 部分组成的。常见的AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等文件其实只能算是一种封装标准。
H264、Xvid等就是视频编码格式MP3、AAC等就是音频编码格式。例如将一个Xvid视频编码文件和一个MP3视频编码文件按AVI封装标准封装以后就得到一个AVI后缀的视频文件这个就是我们常见的AVI视频文件了。由于很多种视频编码文件、音频编码文件都符合AVI封装要求则意味着即使是AVI后缀也可能里面的具体编码格式不同。因此出现在一些设备上同是AVI后缀文件一些能正常播放还有一些就无法播放。
同样的情况也存在于其他容器格式。即使RMVB、WMV等也不例外。部分技术先进的容器还可以同时封装多个视频、音频编码文件甚至同时封装进字幕如MKV封装格式。MKV文件可以做到一个文件包括多语种发音、多语种字幕适合不同人的需要。例如MKV文件只要制作的时候同时加入国语和粤语发音的音轨和对应的简体、繁体字幕播放的时候你可以独立选择国语或粤语发音并根据自己需要选择简体或繁体字幕也可以选择不显示字幕。相当方便。
因此视频转换需要设置的本质就是A设置需要的视频编码、B设置需要的音频编码、C选择需要的容器封装。一个完整的视频转换设置都至少包括了上面3个步骤。常见的组合方式如表所示 常见的组合方式 封装容器 视频流编码格式 音频流编码格式 AVI Xvid MP3 AVI Divx MP3 Matroska后缀就是MKV Xvid MP3 Matroska后缀就是MKV Xvid AAC Matroska后缀就是MKV H264 AAC MP4 Xvid MP3 MP4 H264 AAC 3GP H.263 AAC
视频编解码关键技术
MPEG-4/H.264等编解码算法的工作机制基本都是混合编码主要处理模块包括预测、变换、量化和熵编码等。工作原理大同小异图像帧的编码模式主要有帧内和帧间两种方式。帧内包括预测、变换、量化和熵编码等帧间编码包括运动估计、运动补偿、变换、量化和熵编码等。
预测通过帧内预测和帧间预测降低视频图像的空间冗余和时间冗余。变换通过从时域到频域的变换去除相邻数据之间的相关性即去除空间冗余。量化通过用更粗糙的数据表示精细的数据来降低编码的数据量或者通过去除人眼不敏感的信息来降低编码数据量。扫描将二维变换量化数据重新组织成一维的数据序列。熵编码根据待编码数据的概率特性减少编码冗余。 视频编码知识
在做视频开发时涉及到视频的编码输出本质上视频的码率就等于网络的带宽 视频码率是视频数据视频色彩量、亮度量、像素量每秒输出的位数 码率越高数据量越大视频质量越好码率越小数据量越小视频质量越差。但是码率大到一定阈值之后码率的提升带来的视频质量改善就会变得微不足道所以这个码率阈值就显得非常重要。
有篇文章测试了 H264 编码时不同分辨率的码率设置情况可以参考
文章链接Video Encoding Settings for H.264 Excellence