CONTENTS
目 录
序
前言
第1章 视频处理之理论基础 1
1.1 人眼视觉系统概述 1
1.2 RGB和YUV色彩空间模型 3
1.2.1 RGB色彩空间模型 5
1.2.2 YUV色彩空间模型 5
1.2.3 YUV色彩模型与RGB
色彩模型的转换 6
1.3 数字图像概述 7
1.3.1 数字化过程——采样 7
1.3.2 帧和场 8
1.3.3 视频图像属性 9
1.4 传统视频压缩技术理论和
算法概述 10
1.4.1 信息论概述 11
1.4.2 视频数据的冗余特性 14
1.4.3 变换技术 15
1.4.4 量化技术 18
1.4.5 预测技术 20
1.4.6 Z字形扫描 22
1.4.7 熵编码 23
1.4.8 可分层编码 23
1.4.9 多视点视频编码 25
1.5 常见视频图像处理算法 27
1.5.1 去隔行扫描 27
1.5.2 帧率转换 28
1.5.3 电视电影刷新率转换 28
1.5.4 缩放 29
1.6 视频行业主要标准 30
1.6.1 电视制式 31
1.6.2 视频图像标准 32
1.6.3 视频编解码行业标准 33
1.7 视频图像质量评价 36
1.7.1 主观质量评价 37
1.7.2 客观质量评价 37
1.8 本章小结 39
第2章 英特尔GPU概述 41
2.1 英特尔GPU处理器架构概述 42
2.2 视频引擎 46
2.3 英特尔GPU路线图和命名 49
2.4 本章小结 52
第3章 Media SDK总览 53
3.1 处理对象 54
3.2 功能模块 55
3.3 API设计 56
3.4 软件架构 57
3.4.1 会话 57
3.4.2 分配器 59
3.4.3 数据缓存 61
3.4.4 异步流水线 62
3.5 例程和教程概述 64
3.5.1 基本开发流程 64
3.5.2 解码过程 65
3.5.3 编码过程 66
3.5.4 转码过程 67
3.5.5 视频图像处理 68
3.5.6 例程的使用 70
3.6 新一代开发套件OneVPL 71
3.7 本章小结 75
第4章 Media SDK环境搭建 77
4.1 Linux环境搭建 77
4.1.1 选择内核版本 77
4.1.2 选择Media SDK版本 78
4.1.3 安装依赖库和例程 79
4.1.4 通过vainfo验证安装
结果 80
4.2 Windows环境搭建 85
4.2.1 开发环境部署 85
4.2.2 例程编译过程 87
4.2.3 基于GitHub的例程编译
过程 92
4.2.4 查看当前平台的视频处理
能力 92
4.2.5 自带Tracer工具 92
4.3 本章小结 94
第5章 Linux视频加速软件框架 95
5.1 直接渲染管理器 97
5.1.1 内存管理 98
5.1.2 命令提交 107
5.1.3 模式设置 115
5.1.4 权限管理 116
5.2 libdrm 117
5.3 VA-API 117
5.3.1 核心概念 119
5.3.2 编程流程 124
5.3.3 示例程序 125
5.3.4 调试 129
5.4 GmmLib 132
5.5 本章小结 133
第6章 开源框架的使用和环境
搭建134
6.1 FFmpeg 134
6.1.1 Linux编译指南 136
6.1.2 Windows编译指南 138
6.2 GStreamer 141
6.2.1 基于GStreamer官网的
编译指南 141
6.2.2 通过Intel OpenVINO
安装GStreamer 143
6.2.3 GStreamer与AI的协同
工作 146
6.3 OpenCV 151
6.3.1 Linux编译指南 152
6.3.2 Windows编译指南 154
6.4 本章小结 158
第7章 高并发视频分析业务
评估工具 159
7.1 综述 159
7.2 Linux 环境搭建 160
7.2.1 安装依赖软件包 160
7.2.2 升级Linux 内核 161
7.2.3 安装集成显卡固件 162
7.2.4 安装OpenVINO 162
7.2.5 安装OpenCL驱动 163
7.2.6 准备测试的视频 165
7.2.7 运行SVET程序 165
7.2.8 SVET参考程序参数
配置 167
7.3 Windows环境搭建 168
7.3.1 安装依赖软件包 168
7.3.2 编译SVET参考程序和
依赖库 170
7.3.3 下载推理所需模型和
测试视频 175
7.3.4 运行多路视频推理 176
7.4 核心视频业务 179
7.4.1 NVR业务 180
7.4.2 AI视频分析业务 181
7.4.3 MCU转码拼接业务 185
7.5 本章小结 187
第8章 编解码实现 188
8.1 低功耗快速编码 188
8.2 低延迟编解码 192
8.3 码率控制 194
8.3.1 恒定量化系数算法 195
8.3.2 恒定码率算法和可变
码率算法 196
8.3.3 前向预测算法 199
8.3.4 智能恒定质量算法 201
8.3.5 质量可定义的可变码
率算法 202
8.4 动态码率控制 202
8.5 精确控制每一帧图像编码的
量化系数 203
8.6 多个IDR帧视频流的解码过程 205
8.7 强制生成关键帧 206
8.8 参考帧的动态选择 206
8.9 参考帧添加重复信息 207
8.10 长期参考帧 208
8.11 可分层视频编码例程实现 209
8.12 本章小结 211
第9章 拼接显示实现 212
9