H.264编解码 - NALU详解

devtools/2024/10/20 21:33:57/

一、概述

        NALU(Network Abstraction Layer Unit)是H.264编解码中的一个重要概念。H.264是一种视频压缩标准,将视频数据分割成一系列的NALU。每个NALU都是一个独立的数据单元,包含视频压缩后的一个片段。每个NALU都有自己的起始码和长度前缀,用于标识NALU的起始位置和长度。NALU可以包含视频的关键帧、非关键帧、补充增强信息等。在编码过程中,视频帧经过压缩后被分割成多个NALU;在解码过程中,NALU被解码为原始视频帧。NALU的存在使得视频数据的传输和存储更加灵活和高效。

它的数据数据格式如下:

  1. NALU Header(NALU 头部):NALU 头部用于描述 NALU 单元的类型和重要性。它包含以下几个字段:

    • Forbidden_zero_bit(1 位):固定为 0,保留字段。
    • NRI(2 位):重要性指示码,用于指示该 NALU 单元的重要性。
    • Type(5 位):NALU 单元的类型,用于指示该 NALU 单元的内容。
  2. NALU Payload(NALU 载荷):NALU 载荷是实际的视频编码数据。它包含了一帧图像的压缩数据,可以是 I 帧、P 帧或 B 帧。具体格式和作用取决于视频编码标准,如 H.264/AVC 或 H.265/HEVC。

  3. Start Code(起始码):NALU 单元之间通过起始码进行分隔。起始码是一组固定的字节,用于标识一个新的 NALU 单元的开始。

<


http://www.ppmy.cn/devtools/120205.html

相关文章

【YashanDB知识库】YashanDB-OCI-快速上手

本文内容来自YashanDB官网&#xff0c;具体内容请见https://www.yashandb.com/newsinfo/7488285.html?templateId1718516 背景 OCI 是Oracle调用接口&#xff08;Oracle Call Interface 简称OCI) 提供了一组对Oracle数据库进行存取的接口子例程&#xff08;函数&#xff09;…

TinyVue:一款轻量级且功能强大的Vue UI组件库

在前端开发的广阔领域中&#xff0c;Vue.js以其易用性、灵活性和高效性赢得了广泛的认可。而TinyVue&#xff0c;作为Vue生态中的一个新兴力量&#xff0c;以其独特的优势吸引了众多开发者的目光。本文将深入解析TinyVue&#xff0c;从基本概念、特性、应用场景到使用方式&…

将图片资源保存到服务器的盘符中

服务类 系统盘符&#xff1a;file-path.disk&#xff08;可能会变&#xff0c;配置配置文件dev中&#xff09;文件根路径&#xff1a;file-path.root-path&#xff08;可能会变&#xff0c;配置配置文件dev中&#xff09;http协议的Nginx的映射前缀&#xff1a;PrefixConstant.…

leetcode:字符串相加

题目链接 给定两个字符串形式的非负整数 num1 和num2 &#xff0c;计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库&#xff08;比如 BigInteger&#xff09;&#xff0c; 也不能直接将输入的字符串转换为整数形式。 示例 1&#xff1a; 输入&…

12.C++程序中的自定义函数

11.C程序中的常用函数-CSDN博客https://blog.csdn.net/fly_binbin/article/details/142643406上面说的是C程序中内置的一些函数&#xff0c;这些函数是由编译器提供的&#xff0c;可以方便大家的使用&#xff0c;但是很多时候&#xff0c;单纯的内置函数无法满足人们的需求&…

报错 libgomp.so.1, needed by vendor/llama.cpp/ggml/src/libggml.so, not found

在安装 xinference时报错 安装命令 pip install "xinference[all]" 报错内容 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 3.7 MB/s eta 0:00:00 INFO: pip is looking at multiple versions of multiprocess t…

golang学习笔记26-管道(Channel)【重要】

本节也是GO核心部分&#xff0c;很重要。 注意&#xff1a;Channel更准确的翻译应该是通道&#xff0c;管道实际上叫Pipeline。当然&#xff0c;在GO中&#xff0c;管道专指Channel。 管道本质上是一个队列&#xff0c;队列是数据结构的内容&#xff0c;这里不做赘述。管道对协…

OpenGL ES简述(1)

OpenGL ES简述(1) 简述 这个章节我们会来介绍一下OpenGL ES&#xff0c;学习OpenGL ES主要是为了了解GPU为我们提供了怎样的能力&#xff0c;Android系统中使用的是OpenGL ES&#xff0c;但是核心是一样的&#xff0c;了解OpenGL ES后我们可以对Android渲染有更深的理解。 An…