GOP、IDR、CAR、BLA、RASL、RADL

注册csdn3年,工作2年,第1篇博客。如有错误,请不吝赐教。

GOP

Group of Pictures, 图片被分成序列编码。在H264中GOP以IDR帧为间隔;H265中有开放GOP(open GOP)和闭合GOP(closed GOP)之分。

Open GOP

H265中引入的概念,在H264中所有的GOP都是相互独立的,GOP之间相对封闭,称为Close GOP,但是在H265中,后一个GOP中的帧可参考前一个GOP中的帧,这种结构称为Open GOP,GOP的起始帧是CAR。

IDR

Instantaneous Decoding Refresh,IDR是一种特殊的I帧,当解码器收到IDR帧时,会刷新参考图像缓冲区,也就是说IDR帧之后的帧不会参考IDR之前的帧(对比CAR)。

CRA

Clean Random Access,开放GOP中可作为第一帧被解码的帧,用于分割GOP。同时需要注意一个序列即使是开放GOP它的第一帧也必定是IDR

BLA

Broken Link Access,一种特殊的CRA,当一个码流需要切换时,可以将后一个码流的CRA接到当前码流之后,此时,后一个码流的CRA叫BLA,由CRA的特性和场景分析:BLA的处理肯定不同于CRA,CRA后面的帧可以参考其前面的帧,BLA后续的帧不能参考前面的帧。

IRAP

Intra Random Access Point Picture,那些可以作为某个序列第一帧被解码的帧叫做IRAP。IDR、CRA、BLA都是IRAP。

RADL/RASL

Random Access Decodable Leading pictures / Random Access Skipped Leading pictures
在说明这两个概念之前我们需要知道另外一个词 Leading Pictrue。所谓Leading Pictrue就是输出顺序先于RAP,但是编码顺序后于RAP的图片,RADL/RASL都是 Leading Pictrue。
RADL:不依赖 编码顺序在RAP前的图像 的Leading Pictrue。
RASL:有可能会用到 编码顺序在RAP前的图像 的Leading Pictrue。

在GOP中图片的类型

在gop结构中图像的分类:IDR、CRA、BLA、RADL、RASL、Leading Pictrue、Trailing pictures
Trailing pictures:输出和编码都在IDR和Leading Pictrue之后的图片。

为方便描述用pic0代表编码顺序为0的图片;编码顺序=解码顺序;图中箭头起始端代表被参考的图片(譬如pic1到pic2的图片代表pic2会参考pic1).
可以看到整个序列最开始被编码出来的是IDR pic0,pic1输出顺序先于RAP(pic0),编码顺序后于pic0,所以它是一个Leading Pictrue(领导RAP的图片#手动狗头),同时它不依赖编码顺序在RAP前的图像,所以它是RADL,而pic6会参考编码顺序在RAP前的图像(pic0),所以它是RASL。图出处

在这里插入图片描述

让我们来看一个random access的例子

这是在工作的时候遇到的一个问题,播放过程中做seek操作(画面跳转),seek操作后出现了马赛克帧
seek的切入点的GOP结构如下图。(注意此图是以解码顺序排布,上图是以显示顺序排布)

观察:解码器从POC141切入,观察log发现解码解出的帧POC为 141 145 12 10…(以及后面的帧)
推测:不难发现POC0(IDR)未解,且该处画面发生了跳变,因此有理由怀疑马赛克是由于IDR没有解造成的。
结论:后来发现的确如此,解码器在seek操作后会丢掉POC比IRAP POC小的帧(POC142 141 143都是正常的丢弃),但是未排除IDR,故导致错误丢掉了IDR帧。IP厂商更新固件之后解决了该问题
反思:
为什么random aceess发生之后需要丢掉POC比IRAP POC小的帧呢?
“random aceess发生之后需要丢掉POC比RAP POC小的帧” 这个描述(IP厂商提供)的帧实际上就是上文所述的Leading Pictrue。但我们只需丢掉RASL(虽然此触的确是RASL),RADL并不依赖编码顺序在RAP前的图像,因此没有理由丢掉,除非是解码器固件只知道它的POC,这样就无法判断它是哪种Leading Pictrue了。此处存疑,望大佬解惑
按照解码器的逻辑,为什么poc12比141小,也显示输出了呢?
猜测他们的丢帧的条件还有别的约束。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值