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

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

  像素
  像素是图像的基本单元,一个个像素就组成了图像。你可以认为像素就是图像中的一个点。在下面这张图中,你可以看到一个个方块,这些方块就是像素。
  分辨率
  图像(或视频)的分辨率是指图像的大小或尺寸。我们一般用像素个数来表示图像的尺寸。比如说一张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
  如果你对音视频开发感兴趣,觉得文章对您有帮助,别忘了点赞、收藏哦!或者对本文的一些阐述有自己的看法,有任何问题,欢迎在下方评论区与我讨论!

易瑞沙二代叫什么名字?易瑞沙二代名称药品是会换代的,研究出效果更好的品种就会把旧的版本淘汰掉,易瑞沙好像出了新品种,下面5号网的小编为你们介绍易瑞沙二代叫什么名字?易瑞沙二代名称。易瑞沙二代叫什么名字报道提……山水纳凉畅游密云夏日研学基地炎热夏天,天气即将进入三伏时节。每次出门顶着艳阳总是让人汗水淋淋,找几处凉风习习的景区赏花、戏水来解解乏意,看着山川秀丽的风景,潺潺的流水,好似浮生一梦。天已绚烂,花已开……香砂养胃丸成分中药成分效果好香砂养胃丸是一款畅销多年的养胃药品,很多人胃部不舒服就吃这个,下面5号网的小编为你们介绍香砂养胃丸成分中药成分效果好。香砂养胃丸成分之所有可以养胃,肯定是香砂养胃丸含有的……虎斗难过,游戏直播行业路在何方?游戏直播平台也不好过了。本周内,两大游戏直播平台虎牙、斗鱼相继发布今年第二季度财报,两家公司不出意外地持续亏损,且在收入上均下滑两成左右,处境变得更加艰难。究其原因是盈利……娥罗纳英h软膏可以祛痘吗?娥罗纳英h软膏有激素吗?娥罗纳英h软膏可以治痘痘这是很多人说过的,但是没用过的人还是表示怀疑,下面5号网的小编为你们介绍娥罗纳英h软膏可以祛痘吗?娥罗纳英h软膏有激素吗?娥罗纳英h软膏可以祛痘吗……美国航天局着手研究不明飞行物由美国国家航空航天局(NASA)组建的不明空中现象独立研究团队24日启动工作,这一团队共有16名成员,集结了物理学、天体生物学等诸多领域的专家。不明空中现象俗称不明飞行物……swisse睡眠片哪些人不能吃?这些人别吃它很多药品都是有着适宜人群和不适宜人群的,下面5号网的小编为你们介swisse睡眠片哪些人不能吃?这些人别吃它。swisse睡眠片哪些人不能吃在每一天入睡之前的30分钟,服……mp格斗蛋白粉怎么样?mp格斗蛋白粉是一款适合健身人群食用的保健品,很多人知道这个牌子,却不知道究竟值不值得买,下面5号网的小编为你们介绍mp格斗蛋白粉怎么样?mp格斗蛋白粉怎么样MP全名Mu……荣耀30Pro对比华为Mate30如何?买二手选哪款更好?前一段时间笔者出于好奇,在网上淘了一款荣耀30Pro来体验了一下,入手的价格是3600左右,我看到网友在那篇体验文后面留言说这款手机还不如华为Mate30,所以本文就来跟大家讨……澳洲美白丸有效果吗?澳洲美白丸效果实测美白丸一般是pola和fancl的比较出名,保健品大国澳洲也有美白丸哦,下面5号网的小编为你们介绍澳洲美白丸有效果吗?澳洲美白丸效果实测。澳洲美白丸有效果吗澳洲Unich……dhc瘦腿丸什么时候吃?早饭后一小时吃两颗dhc瘦腿丸很多人不清楚怎么吃,其实这个药吃法是非常简单,下面5号网的小编为你们介绍dhc瘦腿丸什么时候吃?早饭后一小时吃两颗。dhc瘦腿丸什么时候吃每天早餐后1小时,配……网友买美版iPhone13ProMax翻车,验机发现是扩容机我们都知道美版iPhone比国行iPhone便宜,国行iPhone只有无锁机。但美版iPhone分有锁机和无锁机。有锁机比无锁机更便宜。还有些商家利用黑解,将有锁iPhone黑……
贵州习水夜色下的土城古镇土城古镇位于贵州遵义习水县,是一个因航运而兴的地方,因四渡赤水而驰名,已有2100多年历史,系古时川盐入黔的重要码头和集散地,也是享有盛誉的酿酒中心之一。历史上四方商贾云集,形……足球羽毛球卡丁车,2023宝山超霸杯强势回归,等你来赛!2022hr宝山超霸杯应运而生足球羽毛球卡丁车构成一个全新的品牌赛事2023hr超霸杯开启全新一年赛制升级服务升级品牌升级我在宝山等你来报名……超详细python基础语法(每个都有例子)以下是Python的一些基础语法:1。注释:单行注释:使用符号表示单行注释,注释内容写在后面,如下所示:这是一条单行注释多行注释:使用或表示多行注释,注……窦靖童死亡风纹身什么是死亡风纹身纹身图案各种酷炫,近日窦靖童纹死亡纹身引发热议,图片中的她,纹身由下巴到脖子,据说是叫死亡纹身。酷帅风格沾染死亡气息,风格变化,不过小编还是好奇什么是死亡纹身。一起看看吧!……天热腿抽筋什么原因?天热了抽筋怎么办天气一热什么问题都来,很多朋友向小编反映说天气热了腿容易抽筋,那么天热腿抽筋的话怎么办呢?下面来为大家详细介绍下吧!天热腿抽筋什么原因天热的时候会对人体代谢造成很大……一面激起千层浪,将为其立法?3月27日,一条甘肃将为兰州牛肉拉面立法的消息冲上了热搜,引发网友热议。本是好事一桩,没想到的是,评论区里,网友们却开起了吐槽大会,直指兰州牛肉拉面里牛肉量少且薄如蝉翼。……胆结石能喝牛奶吗?胆结石能吃柿子吗?胆结石患者在饮食上也是有着很多禁忌的,很多人不知道这些禁忌,下面5号网的小编为你们介绍胆结石能喝牛奶吗?胆结石能吃柿子吗?胆结石能喝牛奶吗胆结石患者可以喝牛奶,不影响病情……这几款BB霜好用还不贵!不仅是遮住发红的痘印啦还有了修复的效总有粉丝跟小编抱怨说气垫会用的快呀所以还是要一只BB比较抗造这样的话平常气垫补妆就OK了所以,今天的任务是给大家推荐几款底妆BB1:FAU再生BB……封闭性粉刺的发病机制是什么?角质层太厚闭合性粉刺也是青春痘的一种,也就是还在皮肤里还没有探出头的粉刺。它主要是由死掉的细菌和身体分泌物组成。下面5号网小编带大家来看一下封闭性粉刺的发病机制是什么?角质层太厚。封闭性……吉林游客可乘专列完成粤港澳闽贛一线多游乘客正在检票吉林客运段供图中新网吉林3月27日电(记者石洪宇)沈阳铁路局吉林车务段27日介绍,684名游客搭乘Y641次旅游专列,将完成为期半个月的粤港澳、闽、贛游之旅。……葡萄籽怎么吃?建议这样吃葡萄籽的功效自不必多说,很多人不清楚葡萄籽怎么吃好,下面5号网的小编为你们介绍葡萄籽怎么吃?建议这样吃。葡萄籽怎么吃比较省事的方法是把整个的葡萄榨成汁,这样葡萄皮和葡萄籽……骑马与砍杀2霸主1月13日BetaV1。1。0更新日志翻译:无情沙子、tl10、PileErico、我是来学习的、回火预言之屑、haximodor、linchong校对:皮w蛋、Notealot、云子lover北京时间……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网