⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 本群聊天记录200608.htm

📁 本源码是基于C语言的H.264标准的JM源代码模型
💻 HTM
📖 第 1 页 / 共 5 页
字号:
</table>firstime <br>
(500144) 21:25:30 <br>
SPS 我就讲到这里 <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:25:46 <br>
H.264 码流的第二个 NALU 是什么? <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>Aries*Kevin <br>
(18820403) 21:25:54 <br>
[自定义表情] <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>李鹏 <br>
(3776473) 21:26:00 <br>
idr <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>Maha MAN <br>
(47946245) 21:26:06 <br>
pps <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>最初的梦想 <br>
(124779275) 21:26:23 <br>
pps <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:26:46 <br>
是 PPS,所以解码器下一步必然会跳转到 read_new_slice 函数中的 case NALU_TYPE_PPS <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:27:02 <br>
并调用 ProcessPPS 函数,我们进这个函数看一下 <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:27:27 <br>
ProcessPPS 函数里最重要的函数仍然是 InterpretPPS <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:27:32 <br>
我们再进去 <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:27:57 <br>
请从第 145 行开始看,从 145 行以后的代码在做什么? <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:28:50 <br>
是的,在完全按照标准 7.3.2.2 小节规定的内容解码 PPS <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:29:25 <br>
没什么难度,我们的 PPS 也就不分析了 <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:30:43 <br>
H.264 码流的第三个 NALU 假设是 IDR(因为有可能是定界符,我记不清楚了,毕厚杰的书上有一个图) <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:31:29 <br>
那么解码器就要跳转到 read_new_slice 函数中的 case NALU_TYPE_IDR <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:32:05 <br>
我们直接看第 596 行 <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:32:17 <br>
进入 FirstPartOfSliceHeader 函数 <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>真天才 <br>
(15311062) 21:32:45 <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>
firstime <br>
(500144) 21:33:36 <br>
因为 H.264 中的图像都是按照片来组织的 <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:34:11 <br>
因此片作为最大的语法结构而存在 <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:34:19 <br>
不考虑片组 <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:34:28 <br>
正如我论文中讲的 <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:34:47 <br>
我们再回头来说一下 NALU <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>萝卜 <br>
(43696314) 21:34:55 <br>
论文? <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:35:29 <br>
刚才我们已经知道了 H.264 码流是一个个 NALU 拼在一起的,首尾相连 <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:35:50 <br>
每个 NALU 由头和体组成 <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:37:07 <br>
NALU 头就是刚才我们看的 7.3.1 
小节中的三个粗体字forbidden_zero_bit(1比特)、nal_ref_idc(2比特)、nal_unit_type(5比特) <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:37:34 <br>
NALU 体就是 RBSP 数据 <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>~枝 [路] <br>
(14517405) 21:37:51 <br>
EBSP <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>
(500144) 21:38:04 <br>
恩,可能我记错了 <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>yatany <br>
(5815326) 21:38:13 <br>
是RBSP:) <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>jimmy <br>
(20292042) 21:38:18 <br>
EBSP:在RBSP的基础上增加了防止伪起始码字节(仿校验字节)(0X03) <table border="0" width="1080" id="table1" cellspacing="0" cellpadding="0">
	<tr><br>
		<td><font color="#B3C9E8" size="2">
		----------------------------------------------------------------------------------------------------------------------------------------------------------</font></td>
	</tr>
</table>firstime <br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -