Skip to content

Commit

Permalink
Use more general translation for the profile and levels
Browse files Browse the repository at this point in the history
  • Loading branch information
lance-lmwang committed Jun 25, 2021
1 parent 7a436e1 commit 7f820dc
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions README-cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,7 @@ P 帧利用了一个事实:当前的画面几乎总能**使用之前的一帧
## 第六步 - 比特流格式
完成所有这些步之后,我们需要将**压缩过的帧和内容打包进去**。需要明确告知解码器**编码定义**,如颜色深度,颜色空间,分辨率,预测信息(运动向量,帧内预测方向),配置<sup>\*</sup>,层级<sup>\*</sup>,帧率,帧类型,帧号等等更多信息。
完成所有这些步之后,我们需要将**压缩过的帧和内容打包进去**。需要明确告知解码器**编码定义**,如颜色深度,颜色空间,分辨率,预测信息(运动向量,帧内预测方向),档次<sup>\*</sup>,级别<sup>\*</sup>,帧率,帧类型,帧号等等更多信息。
> <sup>*</sup> 译注:原文为 profile 和 level,没有通用的译名
我们将简单地学习 H.264 比特流。第一步是[生成一个小的 H.264<sup>\*</sup> 比特流](/encoding_pratical_examples.md#generate-a-single-frame-h264-bitstream),可以使用本 repo 和 [ffmpeg](http://ffmpeg.org/) 来做。
Expand Down Expand Up @@ -657,13 +657,13 @@ AVC (H.264) 标准规定信息将在宏帧(网络概念上的)内传输,
| 11 | End of stream |
| ... | ... |

通常,比特流的第一个 NAL 是 **SPS**,这个类型的 NAL 负责传达通用编码参数,如**配置,层级,分辨率**等。
通常,比特流的第一个 NAL 是 **SPS**,这个类型的 NAL 负责传达通用编码参数,如**档次,级别,分辨率**等。

如果我们跳过第一个同步标记,就可以通过解码**第一个字节**来了解第一个 **NAL 的类型**

例如同步标记之后的第一个字节是 `01100111`,第一位(`0`)是 **forbidden_zero_bit** 字段,接下来的两位(`11`)告诉我们是 **nal_ref_idc** 字段,其表示该 NAL 是否是参考字段,其余 5 位(`00111`)告诉我们是 **nal_unit_type** 字段,在这个例子里是 NAL 单元 **SPS** (7)。

SPS NAL 的第 2 位 (`binary=01100100, hex=0x64, dec=100`) 是 **profile_idc** 字段,显示编码器使用的配置,在这个例子里,我们使用[受限高配置](https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Profiles),一种没有 B(双向预测) 切片支持的高配置
SPS NAL 的第 2 位 (`binary=01100100, hex=0x64, dec=100`) 是 **profile_idc** 字段,显示编码器使用的配置,在这个例子里,我们使用[高阶档次](https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Profiles),一种没有 B(双向预测) 切片支持的高阶档次

![SPS 二进制视图](/i/minimal_yuv420_bin.png "SPS 二进制视图")

Expand Down

0 comments on commit 7f820dc

Please sign in to comment.