h264相关

 

http://wenku.baidu.com/view/6f0bf60d844769eae009eddf.html: 解码流程

http://wenku.baidu.com/view/15b4c8a5b0717fd5360cdc4a.html: 帧format

 http://wenku.baidu.com/view/77ed4c1755270722192ef7ec.html: 码流结构

 http://wenku.baidu.com/view/00bb007b31b765ce050814a9.html: 格式

http://wenku.baidu.com/view/29636bc2aa00b52acfc7cab7.html: 格式解释

 

 

h264中文标准的翻译不敢恭维。

 

nal中包含rbsp, rbsp是字节对齐的。 rbsp以rbsp_stop_one_bit及其补0位对齐的。 rbsp里可能包含sodb, sodb最后一位后面是rbsp_stop_one_bit. 这个不是字节对齐的。

在rbsp后面可以(不是必定)有大于等于一个0x0000的16位的cabac_zero_word。 _rbsp是后缀吧。当有cabac_zero_word时, 后面应插入0x03. 这个0x03

的字节是在nal的层面来讲的。

 

字节对齐的0x000000, 0x000001, 0x000002不应在nal单元出现,字节对齐的0x000003除了0x00000300, 0x00000301, 0x00000302, 0x00000302, 0x00000303之外不应出现(因为03是补丁字节)。

 

为何nal序列里面不能有0x000002?

 

图像参数集rbsp的参数可以被一个或多个编码图像的编码条带NAL 单元或编码条带数
据分割块A 的NAL 单元使用

 

任意时刻, 只有一个图像参数集激活。 新的激活使旧的吊销。 激活是由于该图像参数的pic_parameter_set_id被编码图像的编码条带NAL 单元或编码条带数
据分割块A 的NAL 单元(a coded slice NAL unit or coded slice data partition A NAL unit)使用

 

vcl nal: type为1,5的nal。任何含pic_parameter_set_id的用于活动图像参数集rbsp的参数集nal单元应与该活动图像参数集rbsp具有相同的内容。,除非它是位于一个编码图像的最后一个VCL NAL 单元之后,另一个编码图像的第一个VCL NAL单元之前。

 

一个序列参数集RBSP 包括可能被一个或多个图像参数集RBSP 或者一个或多个包含一个缓冲周期SEI 消息的SEI NAL单元引用的参数。类型为7. 也是只有一个激活。由指定该seq_parameter_set_id的图像参数集RBSP 或者一个或多个包含一个缓冲周期SEI 消息的SEI NAL单元激活。

 

注 2 — 由于一个IDR访问单元开始了一个新的编码视频序列并且一个激活的序列参数集RBSP在整个编码视频序
列中必须保持活动状态,当缓冲周期SEI消息是IDR访问单元的一部分时,一个序列参数集RBSP可以仅由该缓冲
周期SEI消息激活(a sequence parameter set RBSP can only be activated by a buffering period SEI
message when the buffering period SEI message is part of an IDR access unit)。

 

 

 

序列参数集RBSP也可在vcl nal之后。它还可位于第一个包含一个缓冲周期SEI消息(当出现时)的SEI NAL单元之前。

 

序列参数集扩展RBSP 应当作前面的具有同样seq_parameter_set_id值的序列参数集RBSP的一部分。当一个序列参数集RBSP存在,并且
其后面没有跟随一个在序列参数集RBSP 激活之前且具有同样seq_parameter_set_id 值的序列参数集扩展RBSP,
对于活动序列参数集RBSP来说,该序列参数集扩展RBSP及其语法元素应被当作不存在(未跟一个同样seq_parameter_set_id 值的序列参数集扩展RBSP)

 

 

每个编码视频序列的第一个访问单元是IDR 访问单元。该编码视频序列中所有后续的访问单元都是非IDR
访问单元。

 

 

access unit: A set of NAL units always containing exactly one primary coded picture. In addition to the
primary coded picture, an access unit may also contain one or more redundant coded pictures or other NAL
units not containing slices or slice data partitions of a coded picture. The decoding of an access unit always
results in a decoded picture.:  一帧加其他信息

一个访问单元由一个基本编码图像、零或多个相应的冗余编码图像以及零或多个非VCL NAL 单元组成

    — 访问单元分隔NAL单元(存在时)
    — 序列参数集NAL单元(存在时)
    — 图像参数集NAL单元(存在时)
    — SEI NAL单元(存在时)
    — nal_unit_type值在14-18之间(包括)的NAL单元 (这个case在ffmpeg中未处理。 这些类型是保留的类型)
    — 基本编码图像的第一个VCL NAL单元(总是存在)---(在ffmpeg中, 这是通过foundend 函数的state <= 5分支中发现v = 1/2/5且字节等于0x80来处理的)

 

 

序列参数集NAL单元或图像参数集NAL单元可以在一个访问单元中出现,但不能在该访问单元的基本编
码图像的最后一个VCL NAL单元之后,因为这种情况将代表一个新的访问单元的开始

这个要求跟前面的

“vcl nal: type为1,5的nal。任何含pic_parameter_set_id的用于活动图像参数集rbsp的参数集nal单元应与该活动图像参数集rbsp具有相同的内容。,除非它是位于一个编码图像的最后一个VCL NAL 单元之后,另一个编码图像的第一个VCL NAL单元之前。

让人难以理解。是说码流中不能有这种情况, 还是说如果有这种情况, 就算是新帧的开始? 如果算新帧开始的话, 是不是说,在参数集nal和基本编码nal之间不能出现访问单元分隔符?

 

咨询了一下, 认为这个算新帧, 不算错。

 

视屏的质量由两方面判定: 一是主观感觉, 一是通过s/n信噪比来衡量。

 

当前的帧间, 帧内编码属于基于波形的编码方式。 而基于内容的编码方式则是考虑物体的形状, 纹理, 运动等(类似矢量方法)。对于立体编码, 还有位差估计。

光线在ccd/cmos摄像头中要经过如下预处理:

1. 经过滤镜阵列

2. 插值得到rgb

3. 色彩校正(color correction): 棱镜、滤镜, 光照条件影响

4. 伽马校正: 用于校正电压和输出强度之间的比例关系到线性。实际是显示器这边的衰减特性。 (在摄像头这边校正?)。

5. 图像增强: 平滑, 锐化,直方图均衡, 白平衡(消除环境光的差别造成的对同一颜色的不同偏差, 也即消除色温的影响。 色温以达尔文温度为单位, 色温大时, 偏兰, 色温低时, 偏红。 所以消除白平衡就是调整r/b通道的感应增益)

 

信噪比:

 

 

 

h264可以有最多16个参考帧。所谓多帧是需要先缓冲后向帧的。

帧内压缩取相邻像素的加权值均方差,得到预测帧, 传送其预测帧跟实际帧的差值给解码器恢复。

帧间压缩利用帧之间的相似性, 以块为单位, 估计块的运动矢量, 由此得到预测帧, 传送预测帧与实际帧的差值和运动矢量给解码器恢复。 为进一步利用相关性, 还可对运动矢量进行估计。由于帧间移动未必是整像素的,需要考虑亚像素的情况, h264中用1/4像素单位。另外还需要用obmc(重叠块运动补偿)来refine 运动矢量的误差的。 之所以需要这个补偿, 是因为运动矢量的计算假定运动是刚性的。

运动矢量的预测有四种方法: 分为空间的中值预测(取左, 上, 右上的运动矢量预测当前矢量),空间域的上层块模式运动矢量(根据当前块的像素大小来选择相应的其它像素大小的块的矢量来预测, h264有7中块大小模式: 16x16, 8x16, 16x8, 8x8, 8x4, 4x8, 4x4). 时间域的前帧对应块运动矢量预测(利用前后帧相同像素位置的运动矢量的相关性), 邻近参考帧运动矢量预测(利用前后帧相同块的相关性)。 空间上的矢量预测的质量要好些。

 

 

下面是一段关于avc和264区别的讨论, 东西是同一个东西, 只不过由不同的组织去表述:

 

 

我发现功夫熊猫有两个蓝光版本,一个是:KUNG.FU.PANDA.Blu-ray.1080P.H264.LPCM[功夫熊猫 日版 带国粤语],另一个是:Kung Fu Panda Blu-Ray 1080p AVC TrueHD 5.1[功夫熊猫],请教:其中的H264和AVC有什么区别和联系吗?从视频和音频两个角度来说哪个版本质量更好呢?
自强不息 厚德载物
 
  

suwill 当前离线
阅读权限
120
注册时间
2008-5-16
最后登录
2012-11-5
主题
115
好友
0
UID
5257
帖子
1647
精华
4
积分
13
经验
1257
奖励
72
在线时间
262 小时

115

主题

0

好友

13

积分

荣誉会员

茶凉了

Rank: 12Rank: 12Rank: 12

帖子
1647
精华
4
积分
13
经验
1257
奖励
72
在线时间
262 小时

双料会员 贡献卓越 功成身退

沙发
发表于 2009-2-16 09:28 | 只看该作者
1# nzhqk

HDTV格式

  从网络上我们可以下载到的HDTV影片主要TS、WMV、XVID、DIVX、MKV、H.264等编码,它们各有长处,也各有缺点,其中H.264由于得到了NVIDIA和Ati两家公司的支持所以最近比较火爆,相对于其他编码方式来说,H.264拥有了很多新特性,这些特性决定了H.264前途更为光明。


  H.264/MPEG-4 AVC(ISO MPEG-4 Part 10)


  H.264(ITU-T命名),或称之为MPEG-4 AVC(ISO/IEC命名),是一种由ITU-T与ISO/IEC正在联合进行开发的视频编解码方案,即将成为MPEG-4标准的第10部分(ISO MPEG-4 Part 10)。关于该技术的视频编码方案,现在正式命名为ITU-T H.264或“JVT/AVC草案”。H.264/MPEG-4 AVC作为MPEG-4标准的扩展(MPEG-4 Part 10),充分利用了现有MPEG-4标准中的各个环节。H.264/MPEG-4 AVC就在现有MPEG-4 Advanced Simple Profile的基础之上进行发展的。


  H.264/MPEG-4 AVC的编解码方案流程主要包括如下5个部分:精密运动估计与帧内估计(Estimation)、变换(Transform)及逆变换、量化(Quantization)及逆量化、环路滤波器(Loop Filter)、熵编码(Entropy Coding)。


  标准选择Advanced Video Coding(进阶视频编码)(AVC)作为“官方”名 - 因为对应视频的音频格式是Advanced Audio Coding(先进音频编码)(AAC)。


  尽管H.264/MPEG-4 AVC这项技术虽然还没有得到正式批准,但是其可以降低50%或更多带宽的能力,能以少于1Mbps的数据率传输基于互联网协议(IP)的广播质量级的视频内容,这是目前正式颁布的ISO MPEG-4及MPEG-2编解码方案根本所不能比拟的。因而,H.264/MPEG-4 AVC将对所有要求高压缩率、高质量的应用领域产生深远的影响。


吾非高人,善用搜索也..

 
  
nzhqk 当前离线
阅读权限
10
注册时间
2009-2-13
最后登录
2011-2-27
主题
6
好友
0
UID
8419
帖子
43
精华
0
积分
0
经验
9
奖励
0
在线时间
19 小时

6

主题

0

好友

0

积分

铜板

Rank: 1

铜板, 积分 0, 距离下一级还需 1 积分
帖子
43
精华
0
积分
0
经验
9
奖励
0
在线时间
19 小时

双料会员

板凳
发表于 2009-2-16 13:42 | 只看该作者
多谢解答,说的很详细也很专业。这么说avc和h264是一回事,只是命名不同而已,而Kung Fu Panda Blu-Ray 1080p AVC TrueHD 5.1[功夫熊猫]也是h264编码的,我可以这么理解吗?
自强不息 厚德载物
 
  
suwill 当前离线
阅读权限
120
注册时间
2008-5-16
最后登录
2012-11-5
主题
115
好友
0
UID
5257
帖子
1647
精华
4
积分
13
经验
1257
奖励
72
在线时间
262 小时

115

主题

0

好友

13

积分

荣誉会员

茶凉了

Rank: 12Rank: 12Rank: 12

帖子
1647
精华
4
积分
13
经验
1257
奖励
72
在线时间
262 小时

双料会员 贡献卓越 功成身退

4
发表于 2009-2-16 13:56 | 只看该作者
本帖最后由 suwill 于 2009-2-16 13:57 编辑

3# nzhqk

H264和AVC的关系应该是这样的,但是好像LZ所说的两个文件中还有音频不太一样

英文名称:Dolby TrueHD
概述
  杜比TrueHD是专为高清光盘媒体所开发的下一代无损压缩技术。 该技术所提供的绝佳音频与清晰度最高的录音棚母带毫无二致,让下一代光盘给你带来真正的高清娱乐体验。配合高清晰度的影像,杜比TrueHD技术能够提供前所未有的家庭影院体验,让您能够享受与高清晰度图像一样令人惊叹的声音。
[编辑本段]特点
  100%无损的编码技术。
  码率高达18 Mbps。
  支持多达八个分离式24比特/96 kHz全频带声道。
  得到高清媒体接口(HDMI) 的支持,它是音视频合一的新型单线数字接口。
  支持各种元数据功能,包括对白归一与动态范围控制。
  杜比TrueHD技术可以支持八个以上的声道。 HD DVD和Blu-ray光盘当前将其最大的声道数目限制在八个。
优点
  通过下一代光盘媒体提供令人惊叹的录音棚母带级的音质,为您带来真正的高清娱乐体验。
  提供比以往更多的分离声道和无瑕疵的环绕声。
  兼容当前和未来的A/V接收机与套装家庭影院(HTIBs)。
  当你切换到另一个杜比数字和杜比TrueHD节目时,对白归一可以保持相同的音量水平。
   动态范围控制(夜间模式)让你能够进行应需而变的音频播放,降低峰值音量(不会突然产生很响的声音),同时能够体会音轨中的所有细节,让你可以在深夜欣赏强劲的环绕声而不会打扰他人。
  获选为HD DVD的强制性音频标准,以及Blu-ray光盘的可选音频标准。
  下一代的高清光盘播放机会兼容当前的A/V接收机。
  不管你拥有的是采用杜比数字技术的传统的A/V接收机,还是具备HDMI接口或外置多声道线性输入的新式A/V接收机,杜比TrueHD技术都能确保高品质的兼容播放方式。
应用
  杜比TrueHD技术应用于高清光盘播放机、A/V接收机、套装家庭影院(HTIB)等;杜比TrueHD技术目前已经在Blu-ray和HD DVD软件中得到应用。

LPCM
  LPCM(PCM)(线性脉冲编码调制)是一种非压缩音频数字化技术,是一种未压缩的原音重现,在普通CD、DVD及其他各种要求最高音频质量的场合中已经得到广泛的应用。
  各种应用场合中的LPCM(PCM)原理是一样的,区别在于采样频率和量化精度不同。普通CD规格为16bit/44.1kHz,DVD的规格则有多种,量化精度可分为16bit、20bit、24bit,采样频率分为48kHz、96kHz。此外,LPCM信号中可录入杜比环绕声信息,供现有的杜比定向逻辑环绕声系统使用。
  VOB文件有视频、声音、字幕数据流组成。视频数据流是MPEG2格式,音频数据流是AC-3或者者LPCM、MPEG2、MP2、DTS等等,AC3基本上是事实的标准,MPEG2多声道只在极少数2区碟上可以看到(比如In the line of fire,2区).PCM主要用于音乐DVD,而MP2只在廉价DVD上才有.PCM是高质量无压缩数字音频,因此需要太多的空间,并不适合用于DVD电影光碟。AC3的数据率介于192~448KBPS之间,192KBPS用于双声道,384~448KBPS用于5.1声道。
  音频数字化主要有压缩与非压缩两种方式。较早出现的数字音频播放机,如CD唱机和DAT录音机,均采用线性PCM编码来存储音乐信号,为非压缩方式。在高质量要求的音频工作站和数字录像机(如DVCPRO)上,现在也采用非压缩的格式。
  我们目前常见的MPEG、Dolby Digital、DTS等则为压缩方式。压缩分为有损压缩和无损压缩。有损压缩的目的是提高压缩率,降低占用系统资源。可以根据实际需要选用不同的采样速率、样本分辨力(精度)和数据率。
  如今杜比数字作为由FCC为美国选定的ATSC数字电视标准的一部分,为高清晰度电视(HDTV)和标准清晰度电视(SDTV)广播的标准。MPEG为欧洲数字视频广播(DVB)、数字音频广播(DAB)和日本广播电视业的音频标准。DVD则支持3种主要标准:Dolby digital(杜比数字)
  、MPEG-2和线性PCM(LPCM)。其他格式,如DTS(Digital Theatre Sound)、SDDS(Sony Dynamic Digital Sound)等为任选格式。
  声音重放技术的发展路程,是沿着单声(Monophonic)、双声道立体声(Stereophonic)到4通道立体声,再到环绕立体声(Stereo surround),现在一般为51模式。其根本目的,就是更逼真地再现原声场。我国电视目前大量采用的单声道已远远跟不上人们生活的需要。如何以量低的数据率,最有效地传送多声道、高质量的声音,是数字化的发展方向。所谓51模式,即录制、解码和放声中采用5个声道:左(L)、中(C)、右(R)、左环绕(LS)、右环绕RS),再加上一个低频效果通道(LFE),就可以达到真正的立体环绕声效果——宽阔的场景深度感和总体真实感。51模式为ATSC和DVB的标准声道。
  非压缩编码(PCM)
  声音之所以能够数字化,是因为人耳所能听到的声音频率不是无限宽的,主要在20kHz以下。按照抽样定理,只有抽样频率大于40kHz,才能无失真地重建原始声音。如CD采用441kHz的抽样频率,其他则主要采用48kHz或96kHz。
  PCM(脉冲编码调制)是一种将模拟语音信号变换为数字信号的编码方式。主要经过3个过程:抽样、量化和编码。抽样过程将连续时间模拟信号变为离散时间、连续幅度的抽样信号,量化过程将抽样信号变为离散时间、离散幅度的数字信号,编码过程将量化后的信号编码成为一个二进制码组输出。
  量化分为线性量化和非线性量化。线性量化在整个量化范围内,量化间隔均相等。非线性量化采用不等的量化间隔。量化间隔数由编码的二进制位数决定。例如,CD采用16bit线性量化,则量化间隔数L=65536。位数(n)越多,精度越高,信噪比SNR=602n+176(dB)也越高。但编码的二进制位数不是无限制的,需要根据所需的数据率确定。比如:CD可以达到的数据率为2×441×16=14112Kbit/s。
  常用的编码码组有3种:自然二进制码组(NBC)、折叠二进制码组(FBC)、格雷二进制码组(RBC)。国际PCM标准主要使用FBC。
  压缩编码
  PCM虽然为无损压缩,但由典型的音频信号表示的信号特性没有达到最佳,也没有很好的适应人耳听觉系统的特定要求。PCM的数据量过高,从而造成存储和传输方面的障碍,因此必须使用相应的技术降低数字信号源的数据率,又尽可能不对节目造成损伤,这就是压缩技术。
  人耳的听觉心理有两个特性:频率掩蔽和时间掩蔽特性。人耳在安静的环境中有一个静听阈(门限),即对应于人耳能听到的频率范围能被感觉到的最低声音强度。频率掩蔽,即当一个单音单元出现时,产生一个新的听阈曲线(同听阈),在此频率附近的频段内,门限均有不同程度的提高,以中心频率为最高。时间掩蔽,即当一个强信号出现时,其前后一段时间内,业已存在的弱音可以被掩蔽不被听见。在听阈以下的音频信号不需要编码。

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值