H.264 是一次概念的革新,它打破常规,完全没有 I 帧、P帧、B 帧的概念,也没有 IDR 帧的概念。对于 H.264 中出现的一些概念从大到小排序依次是:序列、图像、片组、片、NALU、宏块、亚宏块、块、像素。这里有几点值得说明:
(1)、在 H.264 协议中图像是个集合概念,顶场、低场、帧都可以称为图像(本文后面内容用到图像概念时都是集合概念,不再重复说明)。因此我们可以知道,对于 H.264 协议来说,我们平常所熟悉的那些称呼,例如:I 帧、P 帧、B 帧等等,实际上都是我们把图像这个概念具体化和细小化了,即我们提到的“帧”通常就是指不分场的图像;
(2)、如果不采用 FMO(灵活宏块排序) 机制,则一幅图像只有一个片组;
(3)、如果不使用多个片,则一个片组只有一个片;
(4)、如果不采用 DP(数据分割)机制,则一个片就是一个 NALU,一个 NALU 也就是一个片。否则,一个片由三个 NALU 组成(即标准“表7-1”中 nal_unit_type 值为 2、3、4 的三个 NALU 属于一个片);
(5)、以上所述的片和 NALU 的大小关系并不是抽象概念上的从属关系。从概念的从属关系上来看,NALU其实又是片的一个集合概念,例如:标准“表7-1”中 nal_unit_type 值为 5 的 NALU 包括 I 片或者 SI 片。
一幅图像根据组成它的片类型来分,可以分为标准“表7-5”中的 8 种类型。我们平常应用中所最常见到的其实是这些类型的特例。例如:我们平常所谓的“I 帧”和“IDR 帧”,其实是 primary_pic_type 值为 0 的图像,我们平常所谓的“P帧”其实是 primary_pic_type 值为 1 的图像的特例,我们平常所谓的“B帧”其实是 primary_pic_type 值为 2 的图像的特例。
一幅图像根据概念来分可以分为两种:IDR 图像和非 IDR 图像。一幅图像是否是 IDR 图像是由组成该图像的 NALU 决定的,如果组成该图像的 NALU 为标准“表7-1”中 nal_unit_type 值为 5 的 NALU,则该图像为 IDR 图像,否则为非 IDR 图像。这里也有几点值得说明:
(1)、nal_unit_type 值为 5 的 NALU 只会出现在 IDR 图像中,而 IDR 图像中的所有 NALU 都是nal_unit_type 值为 5 的 NALU;
(2)、我们以组成一幅图像的片的类型来区分该图像是否是 IDR 图像是错误的。例如:一幅图像中的所有片都是 I 片并不代表这幅图像就是 IDR 图像。因为 I 片也可以从属于 nal_unit_type 值为 1 的 NALU。只不过我们平常最常见到的形式是:所有片都是 I 片的图像就是 IDR 图像。其实这个时候 IDR 图像的概念也被我们具体化和细小化了。
一幅图像由 1~N 个片组组成,而每一个片组又由一个或若干个片组成。图像解码过程中总是按照片进行解码,然后按照片组将解码宏块重组成图像。从这种意义上讲,片实际是最大的解码单元。而一个片又包含哪些类型的宏块呢?标准“表7-10”做了最好的说明。一个 I 宏块又分为哪些类型呢?标准“表7-11”做了最好的说明。一个 P 宏块又分为哪些类型呢?标准“表7-13”做了最好的说明。一个 B 宏块又分为哪些类型呢?标准“表7-14”做了最好的说明。一个 P 宏块的亚宏块又分为哪些类型呢?标准“表7-17”做了最好的说明。一个 B 宏块的亚宏块又分为哪些类型呢?标准“表7-18”做了最好的说明。
——天之骄子·firstime——
2007年11月17日
admin 发表于 2007-11-17 02:56 PM
经典,:victory:
finak47 发表于 2007-11-17 06:52 PM
感谢老大分享,仔细学习一下
boleaon 发表于 2007-11-18 10:59 PM
看到firstime 的帖子总是很开心
藏马 发表于 2007-11-19 09:46 PM
:victory: 顶~~
sam_wheat 发表于 2007-11-26 09:46 AM
拨云见日
lily005 发表于 2007-12-3 11:03 AM
謝謝!又更了解264一些些了:)
dingguo815 发表于 2007-12-5 07:45 PM
谢谢!
luozhilan 发表于 2007-12-5 10:26 PM
谢谢!
莲米 发表于 2007-12-10 04:06 PM
感觉清楚了些~
可是论文里经常用到帧,在这里是什么概念?
firstime 发表于 2007-12-12 09:09 AM
楼上还是没看明白哈。例如一帧 CIF 图像尺寸为 352*288;不分场时可以叫图像,也可以叫帧,其大小为 352*288;分场后其中一半也可以叫图像,也可以叫顶场,其大小为 352*144,另一半也可以叫图像,也可以叫低场,其大小为 352*144。各个论文中提到的帧一般都是指不分场时候的图像。
——(1)、在 H.264 协议中图像是个集合概念,顶场、低场、帧都可以称为图像(本文后面内容用到图像概念时都是集合概念,不再重复说明)。因此我们可以知道,对于 H.264 协议来说,我们平常所熟悉的那些称呼,例如:I 帧、P 帧、B 帧等等,实际上都是我们把图像这个概念具体化和细小化了
莲米 发表于 2007-12-12 11:59 AM
现在真的明白了~呵呵,谢谢~
zhou2008_5 发表于 2007-12-18 08:37 PM
好
zhou2008_5 发表于 2007-12-18 08:44 PM
没资料吗,大虾
风在飘 发表于 2007-12-25 04:09 PM
不错。对概念的理解非常有用!我条理更清晰了!
flyindark 发表于 2008-1-5 01:22 PM
very good!
szapollo 发表于 2008-2-15 11:05 AM
谢谢!:victory:
wena_tt 发表于 2008-2-29 03:25 PM
没仔细看吧。I 帧、P 帧、B 帧实际上是我们把图像这个概念具体化和细小化
edward_fan 发表于 2008-3-10 09:50 AM
学习啊!
chaobo521 发表于 2008-3-13 09:09 PM
谢谢!
qiaofeng9876 发表于 2008-4-1 09:03 PM
谢谢:lol :lol
jiongdy 发表于 2008-4-4 09:45 PM
真的很好,很透彻,谢谢大班了
mondeo_2008 发表于 2008-6-2 03:02 PM
谢谢 老大
likeandhate 发表于 2008-7-2 11:59 AM
谢谢!!!
luweihg 发表于 2008-8-14 08:51 PM
谢谢斑竹,学习了:victory:
虑而后能得 发表于 2008-9-24 10:31 PM
多谢
anhoho 发表于 2008-10-3 10:15 PM
很不错 讲的很清楚!
lotus_9 发表于 2008-10-9 09:10 AM
谢谢分享心得
虑而后能得 发表于 2008-10-19 09:43 PM
学习:lol
cool_fiend 发表于 2008-11-13 05:31 PM
感覺有比較了解一點了!謝謝
hfutMan 发表于 2008-12-6 05:33 PM
再顶!
若非对全局吃透,否则怎么能写出这样的好文。几乎形成了自己的思路风格,很不简单。学习学习...
saint325 发表于 2008-12-10 09:27 PM
好文章,学习了。
yd_yxl 发表于 2009-3-25 06:14 PM
学习了!谢谢!
shingle 发表于 2009-3-25 09:14 PM
有点不清楚的地方,前面有说到:“我们平常所谓的“I 帧”和“IDR 帧”,其实是 primary_pic_type 值为 0 的图像,”而后面又有说到:“如果组成该图像的 NALU 为标准“表7-1”中 nal_unit_type 值为 5 的 NALU,则该图像为 IDR 图像,否则为非 IDR 图像。”一个“IDR图像”一个“IDR帧”,这有什么不一样吗?如果是一样的,那么primary_pic_type 与nal_unit_type 之间又有什么关系呢?
firstime 发表于 2009-3-25 09:44 PM
根据 200503 版标准表 7-5,primary_pic_type = 0 的图像中的所有片都是 I 片。而如果一个 NALU 的 nal_unit_type = 5,则它一定是 I 片。IDR 图像中所有NALU 的 nal_unit_type 都等于 5
shenbin 发表于 2009-3-26 05:20 PM
不错!
原文地址:http://bbs.chinavideo.org/archiver/?tid-3044.html