专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

音视频开发基础知识通俗易懂的视频编解码理论知识

  像素
  像素是图像的基本单元,一个个像素就组成了图像。你可以认为像素就是图像中的一个点。在下面这张图中,你可以看到一个个方块,这些方块就是像素。
  分辨率
  图像(或视频)的分辨率是指图像的大小或尺寸。我们一般用像素个数来表示图像的尺寸。比如说一张1920x1080的图像,前者1920指的是该图像的宽度方向上有1920个像素点,而后者1080指的是图像的高度方向上有1080个像素点。RGB
  一般来说,我们看到的彩色图像中,都有三个通道,这三个通道就是R、G、B通道,(有的时候还会有Alpha值,代表透明度)通常R、G、B各占8个位,我们称这种图像是8bit图像。YUV
  对于图像显示器来说,它是通过RGB模型来显示图像的。而在传输图像数据时是使用YUV模型的,因为YUV模型可以节省带宽。所以就需要采集图像时将RGB模型转换到YUV模型,显示时再将YUV模型转换为RGB模型。
  从视频采集与处理的角度来说,一般的视频采集芯片输出的码流一般都是YUV数据流的形式,而从视频处理(例如H。264、MPEG视频编解码)的角度来说,也是在原始YUV码流进行编码和解析;如果采集的资源时RGB的,也需要转换成YUV。
  使用YUV而非RGB的两个原因:1)yuv提取y亮度信号,可以直接给黑白电视使用,兼容黑白电视2)人对uv的敏感性小于亮度,这样我们适当减少uv的量,进行视频的压缩。所以才会有420422444等不同的yuv描述
  YUV颜色编码采用的是明亮度和色度来指定像素的颜色。其中,Y表示明亮度(Luminance、Luma),而U和V表示色度(Chrominance、Chroma)。YUV主要分为YUV4:4:4,YUV4:2:2,YUV4:2:0几种常用类型。
  YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交叉存储的。
  【相关学习资料推荐,点击下方链接免费报名,免费报名后即可领到学习资料】
  【免费】FFmpegWebRTCRTMPNDKAndroid音视频流媒体高级开发学习视频教程腾讯课堂
  1。YUV4:4:4,每一个Y对应一组UV。2。YUV4:2:2,每两个Y共用一组UV。3。YUV4:2:0,每四个Y共用一组UV。
  YUV4:4:4采样意味着Y、U、V三个分量的采样比例相同,所以在生成的图像里,每个像素的三个分量信息都是8bit。举个例子:假如图像像素为:〔Y0U0V0〕、〔Y1U1V1〕、〔Y2U2V2〕、〔Y3U3V3〕那么采样的码流为:Y0U0V0Y1U1V1Y2U2V2Y3U3V3最后映射出的像素点依旧为〔Y0U0V0〕、〔Y1U1V1〕、〔Y2U2V2〕、〔Y3U3V3〕
  这种采样方式的图像和RGB颜色模型的图像大小是一样,并没有达到节省带宽的目的
  YUV4:2:2采样UV分量是Y分量的一般,Y分量和UV分量按照2:1的比例采样,如果水平方向有10个像素点,那么采样了10个Y分量,就只采样了5个UV分量。举个例子:假如图像像素为:〔Y0U0V0〕、〔Y1U1V1〕、〔Y2U2V2〕、〔Y3U3V3〕那么采样的码流为:Y0U0Y1V1Y2U2Y3V3其中,每采样过一个像素点,都会采样其Y分量,而U、V分量就会间隔一个采集一个。最后映射出的像素点为〔Y0U0V1〕、〔Y1U0V1〕、〔Y2U2V3〕、〔Y3U2V3〕
  通过这个例子就可以发现第一个像素点和第二个像素点共用了〔U0、V1〕分量,第三个像素点和第四个像素点共用了〔U2、V3〕分量,这样就节省了图像空间。比如一张1280720大小的图片,如果按照RGB方式存储,会耗费:
  (128072081280720812807208)、8102410242。637其中1280720是表示有多少个像素点。但如果采用了YUV4:2:采样格式:
  (1280720812807200。582)8102410241。76节省了13的存储空间,适合进行图像传输。
  YUV4:2:0采样YUV4:2:0采样,并不是指只采样U分量而不采样V分量。而是指,在每一行扫描时,只扫描一种色度分量(U或者V),和Y分量按照2:1的方式采样。比如,第一行扫描时,YU按照2:1的方式采样,那么第二行扫描时,YV分量按照2:1的方式采样。对于每个色度分量来说,它的水平方向和竖直方向的采样和Y分量相比都是2:1。举个例子:假设图像像素为:〔Y0U0V0〕、〔Y1U1V1〕、〔Y2U2V2〕、〔Y3U3V3〕〔Y4U4V4〕、〔Y5U5V5〕、〔Y6U6V6〕、〔Y7U7V7〕那么采样的码流为:Y0U0Y1Y2U2Y3Y4V4Y5Y6V6Y7其中,每采样过一个像素点,都会采样其Y分量,而U、V分量就会间隔一行按照2:1进行采样。最后映射出的像素点为:〔Y0U0V5〕、〔Y1U0V5〕、〔Y2U2V7〕、〔Y3U2V7〕〔Y5U0V5〕、〔Y6U0V5〕、〔Y7U2V7〕、〔Y8U2V7〕
  通过YUV4:2:0采样后的图片大小为:(1280720812807200。2582)8102410241。32采样的图像比RGB模型图像节省了一半的存储空间,因此也是比较主流的采样方式。视频和图像和关系
  大量的图像连续起来,就是视频。
  衡量视频,又是用的什么指标参数呢?最主要的一个,就是帧率(FrameRate)。在视频中,一个帧(Frame)就是指一幅静止的画面。帧率,就是指视频每秒钟包括的画面数量(FPS,Framepersecond)。为什么视频数据需要编码?
  有了视频之后,就涉及到两个问题:一个是存储;二个是传输。
  未经编码的视频,它的体积是非常庞大的。以一个分辨率19201280,30FPS的视频为例:共:192012802,073,600(Pixels像素),每个像素点是24bit(前面算过的哦);也就是:每幅图片20736002449766400bit,8bit(位)1byte(字节);所以:49766400bit6220800byte6。22MB。这是一幅19201280图片的原始大小,再乘以帧率30。
  也就是说:每秒视频的大小是186。6MB,每分钟大约是11GB,一部90分钟的电影,约是1000GB
  显然如此大的体积需要压缩,于是编码就产生了。什么是编码?
  编码:就是按指定的方法,将信息从一种形式(格式),转换成另一种形式(格式)。视频编码:就是将一种视频格式,转换成另一种视频格式。
  编码的终极目的,就是为了压缩。各种视频编码方式,都是为了让视频变得体积更小,有利于存储和传输。要实现压缩,就要设计各种算法,将视频数据中的冗余信息去除。
  当你面对一张图片,或者一段视频的时候,如果是你,你会如何进行压缩呢?我觉得,首先你想到的,应该是找规律。是的,寻找像素之间的相关性,还有不同时间的图像帧之间,它们的相关性。
  举个例子:如果一幅图(19201080分辨率),全是红色的,我有没有必要说2073600次〔255,0,0〕?我只要说一次〔255,0,0〕,然后再说2073599次同上。
  如果一段1分钟的视频,有十几秒画面是不动的,或者,有80的图像面积,整个过程都是不变(不动)的。那么,是不是这块存储开销,就可以节约掉了?
  图像一般都是有数据冗余的,主要包括以下4种:空间冗余。比如说将一帧图像划分成一个个16x16的块之后,相邻的块很多时候都有比较明显的相似性,这种就叫空间冗余。时间冗余。一个帧率为25fps的视频中前后两帧图像相差只有40ms,两张图像的变化是比较小的,相似性很高,这种叫做时间冗余。视觉冗余。我们的眼睛是有视觉灵敏度这个东西的。人的眼睛对于图像中高频信息的敏感度是小于低频信息的。有的时候去除图像中的一些高频信息,人眼看起来跟不去除高频信息差别不大,这种叫做视觉冗余。信息炳冗余。我们一般会使用Zip等压缩工具去压缩文件,将文件大小减小,这个对于图像来说也是可以做的,这种冗余叫做信息嫡冗余。
  【相关学习资料推荐,点击下方链接免费报名,免费报名后即可领到学习资料】
  【免费】FFmpegWebRTCRTMPNDKAndroid音视频流媒体高级开发学习视频教程腾讯课堂
  各种视频压缩算法就是为了减少上面的这几种冗余。视频编码技术优先消除的目标,就是空间冗余和时间冗余。宏块
  每一帧图像,又是划分成一个个块来进行编码的,这一个个块在H264中叫做宏块,而在VP9、AV1中称之为超级块,其实概念是一样的。宏块大小一般是16x16(H264、VP8),32x32(H265、VP9),64x64(H265、VP9、AV1),128x128(AV1)这几种。这里提到的H264、H265、VP8、VP9和AV1都是市面上常见的编码标准。
  帧内预测帧间预测
  帧内预测基于同一帧内已编码块预测,构造预测块,计算与当前块的残差,对残差、预测模式等信息进行编码。其主要去除的是空间冗余。
  帧间预测基于一个或多个已编码帧预测,构造预测块,计算与当前块的残差,对残差、预测模式、运动矢量残差、参考图像索引等信息进行编码。其主要去除的是时间冗余。帧类型
  帧间预测需要参考已经编码的帧,帧间编码帧可以分为只参考前面帧的前向编码帧和前后都可以参考的双向编码帧
  I帧:是自带全部信息的独立帧,是最完整的画面(占用的空间最大),无需参考其它图像便可独立进行解码。视频序列中的第一个帧,始终都是I帧。
  P帧:帧间预测编码帧,需要参考前面的I帧和或P帧的不同部分,才能进行编码。P帧对前面的P和I参考帧有依赖性。但是,P帧压缩率比较高,占用的空间较小。
  B帧:双向预测编码帧,以前帧后帧作为参考帧。不仅参考前面,还参考后面的帧,所以,它的压缩率最高,可以达到200:1。
  如图,箭头是从参考帧指向编码帧
  GOP(序列)和IDR
  在H264中图像以序列为单位进行组织,一个序列是一段图像编码后的数据流。一个序列的第一个图像叫做IDR图像(立即刷新图像),IDR图像都是I帧图像。H。264引入IDR图像是为了解码的重同步,当解码器解码到IDR图像时,立即将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数集,开始一个新的序列。这样,如果前一个序列出现重大错误,在这里可以获得重新同步的机会。IDR图像之后的图像永远不会使用IDR之前的图像的数据来解码。
  一个序列就是一段内容差异不太大的图像编码后生成的一串数据流。当运动变化比较少时,一个序列可以很长,因为运动变化少就代表图像画面的内容变动很小,所以就可以编一个I帧,然后一直P帧、B帧了。当运动变化多时,可能一个序列就比较短了,比如就包含一个I帧和3、4个P帧。在视频编码序列中,GOP即Groupofpicture(图像组),指两个I帧之间的距离,Reference(参考周期)指两个P帧之间的距离。两个I帧之间形成一组图片,就是GOP(GroupOfPicture)。
  PTS和DTS
  为什么会有PTS和DTS的概念?
  P帧需要参考前面的I帧或P帧才可以生成一张完整的图片,而B帧则需要参考前面I帧或P帧及其后面的一个P帧才可以生成一张完整的图片。这样就带来了一个问题:在视频流中,先到来的B帧无法立即解码,需要等待它依赖的后面的I、P帧先解码完成,这样一来播放时间与解码时间不一致了,顺序打乱了,那这些帧该如何播放呢?这时就引入了另外两个概念:DTS和PTS。
  DTS(DecodingTimeStamp):即解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。PTS(PresentationTimeStamp):即显示时间戳,这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。
  在视频采集的时候是录制一帧就编码一帧发送一帧的,在编码的时候会生成PTS,这里需要特别注意的是frame(帧)的编码方式,在通常的场景中,编解码器编码一个I帧,然后向后跳过几个帧,用编码I帧作为基准帧对一个未来P帧进行编码,然后跳回到I帧之后的下一个帧。编码的I帧和P帧之间的帧被编码为B帧。之后,编码器会再次跳过几个帧,使用第一个P帧作为基准帧编码另外一个P帧,然后再次跳回,用B帧填充显示序列中的空隙。这个过程不断继续,每12到15个P帧和B帧内插入一个新的I帧。P帧由前一个I帧或P帧图像来预测,而B帧由前后的两个P帧或一个I帧和一个P帧来预测,因而编解码和帧的显示顺序有所不同,如下所示:
  假设编码器采集到的帧是这个样子的:IBBPBBP
  那么它的显示顺序,也就是PTS应该是这样:1234567
  编码器的编码顺序是:1423756
  推流顺序也是按照编码顺序去推的,即IPBBPBB
  那么接收断收到的视频流也就是:IPBBPBB
  这时候去解码,也是按照收到的视频流一帧一帧去解的了,接收一帧解码一帧,因为在编码的时候已经按照I、B、P的依赖关系编好了,接收到数据直接解码就好了。那么解码顺序是:IPBBPBBDTS:1234567PTS:1423756
  可以看到解码出来对应的PTS不是顺序的,为了正确显示视频流,这时候我们就必须按照PTS重新调整解码后的frame(帧),即IBBPBBPDTS:1342675PTS:1234567
  如果你对音视频开发感兴趣,觉得文章对您有帮助,别忘了点赞、收藏哦!或者对本文的一些阐述有自己的看法,有任何问题,欢迎在下方评论区与我讨论!

气愤!网球巨星吴易昺手下败将夺冠,还将纳达尔挤出世界前五2月20日,德尔雷海滩250赛落下帷幕,弗里茨在决赛上以605762力克凯茨曼诺维奇,拿到职业生涯单打第五冠,由于下周纳达尔与卢布列夫都扣除去年同期的500分,弗里茨即将首次跻身世惊心动魄!象甲上演多场弃子大战,厦门携手浙江晋级半决赛2月20日,腾讯棋牌天天象棋2022全国象棋男子甲级联赛万载古城杯第二阶段比赛在江西省宜春市万载县战罢季后赛第三轮。赛事进入到最后疯狂阶段,多场弃子大战惊心动魄。经过激烈的角逐,最尤文有意挖角米兰高层担任体育主管,基耶萨不满自己在阵中的位置都灵体育报报道,尤文图斯正在寻找新的体育主管,AC米兰高层马萨拉目前处于杆位。随着安德烈阿涅利领衔的董事会集体辞职,以及最近俱乐部受到的制裁和禁令,斑马军团仍然处于混乱之中。因此,维尔纳我在切尔西前六个月过的非常好,然后一切都被主教练忘记直播吧2月21日讯在接受太阳报采访时,莱比锡前锋维尔纳回顾了自己的切尔西生涯,并谈到了重回老东家的原因。维尔纳这样谈道我在切尔西的前六个月过得非常好,那是球迷和俱乐部对我的期望,我中超最新消息海港有意贝尼特斯!林良铭将转会!梅州签两大将!李铁和陈戌源被查,中超联赛新赛季将采取主客场制,2023年的国内赛场是极为热闹!让我们一起关注休赛期的几条中超最新消息第一条是关于上海海港的,受到陈戌源被查事件的影响,上海海港的选CBA三消息韩德君再缺席三阶段,CBA恶汉遭禁赛!北控官宣换帅北京时间2月21日,距CBA第三阶段仅剩一周时间。联盟各队的集训早已如火如荼,然而对于卫冕冠军辽宁男篮来说,集训的开展一直不太顺利。由于恰逢国家队比赛,本身辽宁队的集训就比较吃亏,春天多喝汤,营养又健康,推荐八款适合春天喝的汤,清爽低卡好喝大家好这里是香姐说美食,每天分享好吃的家常菜。春养肝夏养心秋养肺冬养肾一年四季养脾胃,春天到了,气温在不断的上升,我们人体的各项机能也会跟着四季变化着。春天是适合养肝的季节,不建议用热水袋捂小腹好不好?httpsmp。weixin。qq。comscKqy9MKo7VpSk957ZV5B5w原创二哥二哥2014a201704300749收录于合集养生家话养生114个在寂静中音乐纯音湖南外语职院发起爱心捐赠,28箱600公斤物资发往叙利亚日前,湖南外国语职业学院在图书馆门口举行了为叙利亚地震爱心捐赠物资发车仪式。2月6日,叙利亚北部遭受了以土耳其为中心的强烈地震的重创。地震发生以后,该校国际交流合作处和东方语言学院大美家乡广东省江门市江门,位于中国广东省西部海岸,是一个具有悠久历史的老城,也是珠三角的重要枢纽。江门地处南海之滨,全市水域面积达2700平方公里,连接南澳湾江门湾和小榄湾,是一个拥有美丽海景的美丽城19年抄底中石油,20年10月割肉离场,十年韭菜的痛心反省!(二)时隔3年回忆往事仍然历历在目,痛心疾首,投资的道路仍然很漫长,希望大家要引以为鉴,买股票不要三心二意,不然定会后悔莫及!一将功成万骨枯本以为2019年11月18日的5。52元会是中
黑袍纠察队玄色挂了,第四季他会以什么样的方式回归呢千呼万唤始出来,黑袍纠察队第三季最后一集终于播出了,但是随之也宣告着黑袍纠察队第三季的圆满收官。对于这一集的看点自然也是不必多说,黑袍纠察队保持了一贯以来的快节奏和让人意想不到的情绘团徽,庆百年重庆师范大学物电学院大学生开展暑期三下乡社会实践活动为响应建团百年,重庆师范大学暑期社会小分队在重庆丰文社区组织了建团百年的三下乡活动,通过活动让小朋友们理解团的概念,了解团史,明国民党军及地主武装还乡团罪行录1945年8月,傅家镇黄家村村民侯维林在村东坡干活,被南定伪军抓去,无辜杀害。1945年12月某夜,南定伪军潜入黄家村将该村村民王维滋以勾通八路的罪名,当场残杀。1946年5月8日幸福到万家庆志为何不帮庆来?答案藏在人世间秉义一句话里何幸福和万善堂的关系因为何幸福生孩子大出血,万善堂举全村之力献血救了她一命,终于破冰缓和,万善堂还包了大红包到何幸福家吃酒。这样的画面让人看着就舒心,毕竟两人本没有太大的矛盾,何幸本次G20史无前例中国最出彩,俄罗斯最孤单,美西最小气在俄乌冲突的背景下召开的G20峰会,东道主印尼非常无奈,非常尴尬。这就好比一次家宴,主人热情地请来了客人来家里作客,没想到,客人之间不对付,分成了几个帮派,相互不搭理。你在,我就走筷子兄弟一夜爆火,为何肖央一路高歌越来越火,王太利却销声匿迹筷子兄弟一夜爆红,曾经两人形影不离,可为何现在肖央事业一路高歌,王太利却销声匿迹。两人究竟发生了什么。肖央1980年出生在一个中规中矩的工薪家庭,从小就喜欢画画。16岁考中央美院落林志玲,人美音娇身材好,她现在怎么就不红了呢?文七七众所周知,台湾盛产美女。从六十年代影视兴起开始,每隔十年,台湾就会有一个第一美女诞生,而且这些美人各个都美的风华绝代,各具特色。六十年代的张美瑶。七十年代的胡因梦。八十年代的脸和脖子色差大?花50块,复制少女变美心机,打造氛围感美女不难咱们美少女们化妆有一个人人都懂的大bug就是妆后脸和身子的色差,差若两人!!!脸上精致迷人的全妆,扭过头一看,露出的却是又黑又糙的原生态脖子这种色差看起来整个人就土low土low的打破历史记录的深圳楼市,为什么不救市?如果以近半年计算,今年上半年二手房成交量仅9965套,同比与环比都没有意义了,直接对比2008年上半年下降52。对比2021年下半年减少2292套,下降18,深圳二手房成交量迎来史第二炉香性丑闻悲剧的背后,隐藏的是人性的丑恶1943年张爱玲凭第一炉香在上海文坛一炮而红,随后她又推出了中篇小说第二炉香。故事背景同样是在香港,故事中同样有清纯少女,而结局也同样以悲剧收场。这一次,清纯少女不是自甘堕落走向深基于动态数据源的SAAS系统(SpringBootMybaitsPlusDurid)一。什么是SAAS系统SAAS全称SoftwareasaService,软件即服务SAAS不是特指某种系统,它是提供某类产品的系统服务平台,让第三方公司可以直接在平台上租用一个相对
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网