前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >音视频之视频相关概念介绍

音视频之视频相关概念介绍

作者头像
一只小虾米
发布2022-10-25 16:33:48
3630
发布2022-10-25 16:33:48
举报
文章被收录于专栏:Android点滴分享Android点滴分享

概要

从事音视频开发中,视频涉及的东西比较多,尤其是编码这块,本篇介绍下视频的相关概念。

正文

视频与图像

我们看到的视频其实是图像在高速变化,由于视觉的暂留效应,所以看起来就是连续的了。

彩色空间

我们知道有RGB 3原色,用这三种颜色可以组合成各种其他颜色。还有一种表示方法,叫YUV,也就是把颜色分成亮度和色度,这样的好处是人对于亮度信号是比较敏感的,只要有亮度信号,色度信号缺少点也看不出差异,这样就可以大大优化编码的信号。 而YUV和RGB又可以相互转换,在传输的时候使用YUV,在显示的时候使用RGB。 而对于YUV,又有几种不同的比例。

  • 4:4:4 在每一个像素位置,都有Y,Cb,Cr分量,也就是每4个亮度像素,都有4个Cb和Cr色度像素。
  • 4:2:2 在竖直方向,亮度和色度分量一致,而水平方向,色度分量是亮度分量的一半,也就是每4个亮度像素具有2个Cb和2个Cr。
  • 4:2:0 在水平和垂直方向,色度分量都是亮度分量的一半。

编码

图像信息在传输的时候,如果没有编码,那么视频数据占用的带宽会非常大。举一个例子,采用4:2:0格式,亮度信号是13.5MHZ,色度是6.75MHZ,这个频率算是很低的了,这样码率就是:

image.png

如果是1080p场景,那码率就更大了。因此就需要编码。

在编码的时候,有帧内编码和帧间编码区分。帧内编码就是对一帧图像进行编码,去除冗余信息。而帧间编码就是利用运动补偿去除冗余信息,在视频场景中,连续图像帧的重复度还是很大的,这样可以把图像进行分块,然后预估块的运行信息,这样只需要把位移信息编码传输就可以了。

IPB帧

在视频编码中,会把图像分成不同类型的帧,主要有I,P,B帧。 I帧:这是帧内编码帧,I帧不需要参考其他帧,解码后就是一幅完整的图像。 P帧:前向预测编码帧,需要参考前面已经编码的帧来去除冗余信息完整自己的编码,也就是可以简单理解成,在解码的时候,自己是无法独立解码成一张图片的,需要参考前面已经解码的帧才可以。 B帧:双向预测内插编码帧,需要参考前面和后面的帧来完成自己的编码。也就是在解码的时候,不仅需要参考前面已经解码的帧,还需要参考后面解码的帧才可以解码成一张完整的图像。

IDR

IDR(Instantaneous Decoding Refresh)也是一种I帧,不过收到IDR帧,就表示之后的帧不会再参考IDR以前的帧了。而普通的I帧之后则有可能参考I帧之前的图像帧。

GOP

GOP(Group of Pictures)图像组,表示图像帧只会参考本组内的图像帧,而不会参考其他组的图像帧。

PTS和DTS

DTS(decodeing time stamp),用于视频的编码。PTS(presentation time stamp),用于视频解码阶段的输出。按照常理来看,这两个时间戳应该是一致的,可是由于有B帧,这样编码和显示就会出现不一致性的场景。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-12-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概要
  • 正文
    • 视频与图像
      • 彩色空间
        • 编码
          • IPB帧
            • IDR
              • GOP
                • PTS和DTS
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档