游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

音视频开发浅析H。264编码格式

  在学习H。264编码之前,我们先了解一下在视频直播的过程中,如果Camera采集的YUV图像不做任何处理进行传输,那么每秒钟需要传输的数据量是多少?
  Camera采集的YUV图像通常为YUV420,根据YUV420的采样结构,YUV图像中的一个像素中Y、U、V分量所占比例为1:14:14,而一个Y分量占1个字节,也就是说对于YUV图像,它的一个像素的大小为(11414)Y32个字节。
  如果直播时的帧率设置为30fps,当分辨率为1280x720,那么每秒需要传输的数据量为1280720(像素)30(帧)32(字节)39。5MB;当分辨率为1920x720,那么每秒需要传输的数据量接近60MB,而在现实网络中,这么高的上行宽带一般是很难达到的,因此,我们就必须在传输之前对采集的视频数据进行压缩编码。1。H。264简介
  H。264是MPEG4的第十部分,是由VCEG和MPEG联合提出的高度压缩数字视频编码器标准,目前在多媒体开发应用中非常广泛。
  H。264具有低码率、高压缩、高质量的图像、容错能力强、网络适应性强等特点,它最大的优势拥有很高的数据压缩比率,在同等图像质量的条件下,H。264的压缩比是MPEG2的两倍以上。1。1H。264编码原理
  在H。264协议里定义了三种帧,完整编码的帧叫I帧(关键帧),参考之前的I帧生成的只包含差异部分编码的帧叫P帧,还有一种参考前后的帧编码的帧叫B帧。H。264编码采用的核心算法是帧内压缩和帧间压缩。
  其中,帧内压缩是生成I帧的算法,它的原理是当压缩一帧图像时,仅考虑本帧的数据而不用考虑相邻帧之间的冗余信息,由于帧内压缩是编码一个完整的图像,所以可以独立的解码显示;
  帧间压缩是生成P、B帧的算法,它的原理是通过对比相邻两帧之间的数据进行压缩,进一步提高压缩量,减少压缩比。
  通俗的来说,H。264编码的就是对于一段变化不大图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,这样B帧的大小就只有完整帧的110或更小。
  B帧之后的C帧如果变化不大,我们可以继续以参考B的方式编码C帧,这样循环下去。
  H。264编码框架分两层:VCL(VideoCodingLayer):负责高效的视频内容表示;NAL(NetworkAbstractionLayer):负责以网络所要求的恰当的方式对数据进行打包和传送;1。2IDR(I帧)
  IDR(InstantaneousDecodingRefresh):即时解码刷新。一个序列的第一个图像叫做IDR图像(立即刷新图像),IDR图像都是I帧图像(关键帧)。
  H。264引入IDR图像是为了解码的重同步,当解码器解码到IDR图像时,立即将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数集,开始一个新的序列。
  这样,如果前一个序列出现重大错误,在这里可以获得重新同步的机会。IDR图像之后的图像永远不会使用IDR之前的图像的数据来解码。SPS(SequenceParameterSets):序列参数集,作用于一系列连续的编码图像。PPS(PictureParameterSet):图像参数集,作用于编码视频序列中一个或多个独立的图像。SEI(SupplementalEnhancementInformation):附加增强信息,包含了视频画面定时等信息,一般放在主编码图像数据之前,在某些应用中,它可以被省略掉。P帧:前向预测编码帧。P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,它P帧是I帧后面相隔12帧的编码帧,其没有完整画面数据,只有与前一帧的、画面差别的数据。B帧:双向预测内插编码帧。B帧记录的是本帧与前后帧的差别,它是由前面的I或P帧和后面的P帧来进行预测的。1。3H。264与X。264区别
  H。264是需要付费的编码格式,而x264是符合H。264标准的一个开源项目,是免费的,也就是H264的一个简化版,不支持某些高级特性。
  但x264非常优秀,并不比H264的商业编码器差。H264采用的核心算法是帧内压缩和帧间压缩,帧内压缩是生成I帧的算法,帧间压缩是生成B帧和P帧的算法。2。H。264数据组织形式
  通常,数据的组织形式从大到小排序是:序列(sequence)、图像(framefieldpicture)、片组(slicegroup)、片(slice)、宏块(macroblock)、块(block)、子块(subblock)、像素(pixel)。
  在H。264码流中图像是以序列为单位进行组织的,一个序列是由多帧图像被编码后的数据流,以I帧开始,到下一个I帧结束;
  一帧图像可以分成一个或多个片(slice),片由宏块组成,宏块是编码处理的基本单位,当片编码之后会被打包进一个NALU,也就是一帧图像对应于一个NALU。
  NALU是H。264编码数据存储或传输的基本单位,它除了容纳片还可以容纳其他数据,如SPS、PPS、SEI等。
  根据H。264编码原理可知,一个序列是一段内容差异不太大的图像编码生成的一串数据流。
  当运动变化比较少时,一个序列可以很长,这是由于运动变化少就代表图像画面的内容变动就很小,所有就可以编一个I帧,然后后面一直P帧、B帧;当运动变化较大,可能这个序列就比较短,因为图像画面的内容变动大,所以P帧、B帧就相对减少。
  总之,一个序列总是以I帧为开始,到下一个I帧结束,序列包含的图像帧的数量与画面变化情况有关。
  相关视频推荐
  音视频开发必备基础知识及如何用好开源项目哔哩哔哩bilibili
  音视频学习最佳实践从FFmpeg到流媒体服务器开发哔哩哔哩bilibili
  学习地址:【免费】FFmpegWebRTCRTMPNDKAndroid音视频流媒体高级开发学习视频教程腾讯课堂
  需要更多ffmpegwebrtc。。音视频流媒体开发学习资料加群812855908领取
  3。H。264中的NAL技术
  从H。264的介绍可知,NAL是H。264AVC编码框架中的网络抽象层,即NetworkAbstractLayer,它主要负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的有效传输。
  由于实际中的信息传输系统可靠性、封装方式、服务质量等特征的多样化,NAL提供了一个视频编码器和传输系统的友好接口,使得编码后的视频数据能够有效地在各种不同的网络环境中传输。
  在NAL层中,NALU(NetworkAbstractLayerUnit,网络抽象层单元)是H。264编码存储或传输的基本单位,在H。264码流中每一帧数据就是一个NALU(注:SPS、PPS、SEI不属于帧)。
  每个NALU都包含一个头结构,这个头结构占1个字节(8位),它标明了该NAL单元的是否可丢弃、重要性指示和NALU类型,结构如下:
  其中:禁止位:当网络发现NALU存在错误时,该位将被设置为1以方便接收方丢弃该NALU;重要性指示:用于标志该NALU用于重建时的重要性,其值越大表示越重要;NALU类型:用于判断该NALU是否为PPS、SPS、I(关键)PB帧等,一般H。264码流
  最开始的两个NALU是SPS和PPS,第三个NALU是IDR(I帧)。NALU类型是判断帧类型重要工具,至于如何去利用它来实现SPS、PPS和IPB帧等信息的检测,我们接下来会举例详细介绍,以下是相关值与NALU类型的映射关系图:
  从上图可知,当NALU类型5时,说明该NALU是关键帧(I帧);当NALU类型6时,说明该NALU是附加增强信息;当NALU类型7时,说明该NALU是序列参数集(SPS);当NALU类型8时,说明该NALU是图像参数集(PPS),依次类推。4。H。264中SPS、PPS、IPB帧检测与解析4。1H。264码流分层结构
  在分析SPS、PPS、IPB帧之前,我们先了解下H。264码流分层的结构。从外往里看,H。264码流实际是由多个NALU组成的码流序列集合(如第一层所示),而一个序列是以I帧开始,以下一个I帧结束。
  NALU是H。264编码存储或传输的基本单元,NALU由NALU头部和NALU主体组成(如第二层所示),其中,NALU头部占1个字节,H。264中的SPS、PPS、IPB帧的检测正是通过NALU头部中的NALU类型来实现的。
  H。264码流分层结构如下图所示:
  4。2H。264文件解析
  一般来说,编码器编出的首帧数据为SPS与PPS,接着为I帧(关键帧),再后面就是P帧、B帧。
  而对于H。264码流而言,每帧图像的界定符为0x00000001、0x000001,也称起始码,它们分别占4个字节或3个字节,而起始码的后的一个字节便是NALU头,通过这个字节我们就可以很简单的找到所需的SPS、PPS、IPB帧。
  这里,我们通过分析一个H。264文件来进行讲解,使用H。264VideoESViewer工具打开一个test。264文件,至于h264文件的生成,我将再下一篇博文进行详细介绍,H264码流结构如下图:
  从上图可知,每一行表示一帧图像(除SPS、PPS除外),每一行包括四列,其中第一列为该帧图像存储的逻辑地址;第二列为该帧图像数据所占字节长度,由于H264的编码原理可以知道,H264码流中的每一帧图像并不是实际上的一帧图像,而是多帧图像的集合;
  第三列表示图像帧的起始码,均为0x00000001;第四列表示的是NAL类型,由图可知,H264编码器编出的首帧数据为SPS与PPS,接着为I帧(关键帧),再后面就是P帧或B帧(非I帧)4。3SPS、PPS、IPB帧检测
  有了前面的理论和分析基础,再来判断H。264码流中的(3)SPS、PPS、IPB帧,那就显得非常容易了。
  我们知道,H。264码流中的一帧数据总是以0x00000001或0x000001开始的,起始码的下一位就是NALU头,比如第一帧数据NALU头为0x67,我们截取码流中的前几帧数据进行分析:第一帧:000000016742801FDA02D02868。(占17个字节)第二帧:0000000168CE06E2(占8个字节)第三帧:0000000165B840F78FFCEB04。(占31872个字节)第四帧:0000000141E20110EA4E9F(占3408字节)第五帧:0000000141E40110EC7BDF13(占2096个字节)
  由于NALU类型由NALU头的后五位决定的,即字节下标的37位,我们只需要得到这五位的十进制值,再与NAL类型对照表进行比较就可以知道该帧图像是否为SPS、PPS或I帧(关键帧)等。
  在编码过程中,我们可以通过将每帧数据起始码的下一个字节与0x1F相与取得NAL头的后五位即可得到该帧的类型,比如:0x670x1F(01100111)(00011111)(00000111)7(十进制)SPS0x680x1F(01101000)(00011111)(00101000)8(十进制)PPS0x650x1F(01100101)(00011111)(00000101)5(十进制)关键帧(I帧)0x410x1F(01000001)(00011111)(00000001)1(十进制)非关键帧(I帧)

运用垂坠技术的丝绸连衣吊带裙,突显TuongSan的曲线美TuongSan是个喜欢穿白色礼服的模特,她穿着不同的白色连衣裙都有不一样的美感。TuongSan利用2022年夏季推销的裙子来展示她自己。由于衣服材料的质地以及设计带来……虹吸管莫莉想去加尔维斯顿过生日。当她告诉我时,我犹豫了,一想到要在一个游客出没的小镇上庆祝她甜蜜的十六岁,我就感到困惑年轻的家庭和老夫妇戴着配套的遮阳板在码头上转来转去,在口袋里塞满……上赛季效力湖人的10位失业球员绝大多数离开NBAESPN薪资专家BobbyMarks报分析了10位上赛季效力湖人的球员的市场。卡梅隆安东尼仍然可以帮助湖人,但很明显今年湖人更强调替补席的年轻化。尼克斯有两个名额空着,安……孩子总喊腿疼怎么办?有可能是这些问题小儿推拿马新医生孩子总喊腿疼怎么办?有可能是这些问题。总有家长咨询说,孩子时不时的就说腿疼,白天什么都不影响,一到了晚上就哭闹说腿疼,脚疼还说不出具体哪里疼。最常见的原因就是生长痛。生长痛的孩……五个能帮助你了解海冰的事实据外媒报道,科学家监测气候变化的一种方式是通过测量海冰范围。海冰范围是指在特定时间内覆盖北冰洋的冰的面积。海冰在将阳光反射回太空、调节海洋和空气温度、循环海水和维持动物栖息地方……张康阳重返国米带着四大任务五大联赛中资球队最后四家多方证实,南安普顿老板高继胜将出售球队80的股份给塞尔维亚大亨索拉克。交易一旦定案,欧洲五大联赛将只剩下四支中资球队,除了国际米兰之外,其他三支球队是格拉纳达(双刃剑体育……造车界风清扬集度!打造新势力造车第四极!叹少年被特斯拉带入坑百度是自动驾驶的元老,就像是武林界的风清扬,无门无派,而所有派别又都不是他的对手。但风清扬出山之后就创立了自己的门派,天下第四派。就像集度一……阳转阴后身体虚?建议多喝这碗汤,每天做一锅,滋补不上火导语:阳转阴后身体虚?建议:多喝这碗汤,营养滋补不上火,恢复快、强免疫人间烟火气,最抚凡人心,柴米油盐最是平凡,简简单单却能温暖疲惫的身体,一日三餐四季,承载着烟火气的美……家有自闭症幼儿,爸爸妈妈如何调整心态帮ta进步?封面新闻记者周家夷自闭症,也被称为孤独症,是一种先天性的发展障碍。患者在社交沟通以及认知、情绪、行为方面,都有不同程度的困难和发展差异。美国疾病控制及预防中心(CDC)于……乾隆让刘墉跳河自尽,刘墉接旨却只回家洗了个澡古话说道伴君如伴虎,无论是哪个王朝,皇帝都是那个最令人生畏的存在。不仅仅是他拥有着执掌生死的权力,更是因为他可以随着自己的心情来决定行动,并且臣子们不得不听命于此。如何与皇上进……赵本山几位徒弟现状,住桥洞,回乡务农,街头卖菜,彻底成网红前言提起他可以说无人不知无人不晓。她的徒弟也是众多,给大家带来了很多欢乐。但随着师傅的退隐,徒弟们的露面也越来越少了渐渐地消失在我们视野中。现在还有几个……坎塞洛18岁时母亲车祸去世令我变得乖僻每次回国都去坟前倾诉直播吧4月11日讯此前由于和瓜帅不和而被外租到拜仁的坎塞洛,在不久前接受采访,被问及有关自己性格的相关话题。你有着堪称当世最精确的传中制导能力,是如何做到的?我实际……
俄罗斯及北欧四国游记(四)风韵圣彼得堡上篇莫斯科距圣彼得堡700公里左右,火车行驶了9个多小时,8月25日凌晨4点半到达圣彼得堡的莫斯科火车站。莫斯科火车站位于涅瓦大街与利戈夫大街交叉点,是圣彼得堡最主要的火车站……明年来小海陀山滑雪!22万平方米大众雪场将建成在冬奥会延庆赛区所在的小海陀山,高手们可以在雪飞燕雪游龙过招,普通滑雪爱好者也可以在大众雪场尽情飞驰。明年,小海陀山将建设22万平方米的大众雪场,升级万科石京龙、八达岭滑雪场等……一个张仲景清上热温下寒的方子,只需两味药,让你远离上热下寒大家好,我是李医生,平常总是爱上火,尤其是吃点热气的东西,就会长口腔溃疡,或者是脸上长痘痘,而这时候有些人就会去用一些降火的凉茶,但是你会发现这火反反复复的发作,而且还出现了拉……贵州都匀热播影视剧带火一座城阳春三月,细雨纷飞。贵州省黔南布依族苗族自治州都匀秦汉影视城内,仍有游客陆续入园。韦春丽一行6人从30多公里外的地方过来,冒着小雨在秦汉风格的仿古建筑间拍照打卡。这里拍了好多电……你穿成这样不怕被人强奸?女子被羞辱后我看到了最恶心的一幕我们的人生,是为自己而活。1hr1hr豆瓣上一篇你不怕被人强奸的女生控诉帖子,突然引爆了网络舆论。事情的经过其实非常简单。这个女生在去公司上班之前,给自己精心……四川广元,有4个气田产气,4座天然气净化厂,天然气发展前景广提起广元,首先想到的可能是剑门关。四川省广元市,自古以来都是重要的入川要塞,其剑门关更是享有天下第一天然隘口的称号。广元也是中国历史上唯一女皇帝武则天的出生地,更是重点的革命老……币圈跌幅,链游开发新时代到来比特币今日走势图币圈的跌幅时刻牵动着人们的心,区块链游戏也迎来了新的时代,现在更注重游戏体验感,百花齐放,只有最专业的才能一鸣惊人。链游帮助了很多发达国家的游戏玩家……GitHub开源项目推荐一个纯粹的Windows右键菜单管理ContextMenuManager是一个GitHub上优秀的开源项目,目前项目点赞数已达:7k,一个纯粹的Windows右键菜单管理程序。功能:启用或禁用文件、文……AIGC挑战广告狂人!Meta推出AI生成广告服务,已填补公智东西编译吴菲凝编辑李水青智东西3月2日报道,据《金融时报》报道,Meta推出了一项名为Advantage的自动生成广告系统,利用AI来根据营销人员的具体目的……用ScienceWord快速给文字注音带拼音的文字,可以帮助小朋友快速阅读。然而一般情况下,给汉字注音有点困难。比如,给下面一段文字注音:海王星的大气层主要由甲烷组成,因此用传统的哈勃望远镜拍摄时它呈现蓝色。……官宣中超3小时2大内部重罚出炉,2大名将后悔已晚,50万元5聚焦中超CBA,独一无二球迷媒体点击右上角关注,不会后悔的。。。亚泰对阵津门虎原本是中超第13轮的一场普通比赛,却因为最后5分钟的3张红牌引起了外界的热议,尤其是津……搭建一个超算中心,需要哪些芯片?2022国际超算大会发布最新TOP500榜单,美国田纳西州橡树岭国家实验室(ORNL)的前沿(Frontier)以1。102exaflops的成绩屠榜,成为第一个真正突破Exa……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网