第1章 视频压缩编码 1
1.1概述 1
1.2视频压缩编码面临的新挑战 5
1.3视频编码并行化潜力 7
1.4 H.264编码标准 9
1.4.1基本概况 9
1.4.2编码器结构 11
1.4.3特点和关键技术 13
1.4.4帧间预测 16
1.4.5帧内预测 20
1.4.6变换量化 22
1.4.7熵编码 29
1.4.8去块滤波 31
第2章 流计算原理 34
2.1流计算思想 34
2.2流体系结构模型 36
2.2.1解耦合计算和访存 36
2.2.2多级存储层次 38
2.2.3典型流处理器 42
2.3流程序设计模型 49
2.3.1流级程序 50
2.3.2核心级程序 52
2.3.3流计算模型与并行处理器的结合 53
2.4流应用 54
第3章 流化方法 57
3.1流化 57
3.1.1流化定义 57
3.1.2流化特征 60
3.1.3特征指标有效性验证 63
3.2基本流化方法 74
3.2.1循环划分法 75
3.2.2核心合并技术 76
3.2.3流分割技术 78
3.2.4常规流化步骤 80
3.3高级流化方法 82
3.3.1流重组 83
3.3.2短流加载 85
3.3.3核心分裂 87
3.3.4并行粒度调整 88
3.4面向流化的程序结构优化 90
3.4.1重负载循环 90
3.4.2计算窗口重叠 92
3.4.3循环内分支 94
3.4.4循环间数据相关 98
第4章H.264编码器的流化 100
4.1 x264编码器概述 100
4.2 x264编码器结构剖析 102
4.2.1 profile工具:PAPI 102
4.2.2函数层次的局限性 104
4.2.3变量和数据结构层次的局限性 108
4.2.4控制密集型组件层次的局限性 108
4.3 x264编码程序的流化 109
4.3.1函数到Kernel的转化 110
4.3.2结构变量到stream的转化 118
4.3.3控制密集型组件到计算密集型组件的转化 126
4.4 S264:流化的H.264框架 127
第5章S264/S:基于SIMD并行的H.264流化编码器 129
5.1 SIMD流处理器 129
5.2帧间预测的流式实现 132
5.2.1全搜索:流重用 132
5.2.2 UMHexagonS:非规则流 133
5.2.3多分辨率多窗口帧间预测 142
5.2.4分析与讨论 162
5.3帧内编码:多模式和强数据相关 165
5.3.1相关性分析 165
5.3.2相关性问题:可扩展块并行 167
5.3.3多模式问题:Kernel参数化 172
5.3.4分析与讨论 173
5.4 CAVLC的流式实现:可变长编码 175
5.4.1相关性分析 175
5.4.2解耦合分段并行 177
5.4.3分析与讨论 184
5.5去块滤波的流式实现:控制密集型 185
5.5.1相关性分析 185
5.5.2去块滤波的流式实现:分组并行 187
5.5.3分析与讨论 190
5.6基于STORM的SIMD H.264编码器 190
5.6.1 S264/S编码器 190
5.6.2评测与分析 200
第6章S264/G:基于GPU的并行H.264编码器 208
6.1 GPU和CUDA 208
6.1.1 GPU概述 208
6.1.2 CUDA硬件模型 210
6.1.3 CUDA编程模型 211
6.1.4 CUDA存储模型 212
6.2基于CUDA的H.264编码器框架 214
6.3帧间预测:平衡线程数与并行粒度 216
6.3.1 SAD计算 217
6.3.2最佳运动向量的选择 220
6.3.3小结 222
6.4帧内编码:开发多级并行 224
6.4.1开发多级并行 224
6.4.2存储模型 227
6.4.3优化 228
6.4.4小结 229
6.5分量优先的CAVLC 229
6.5.1分量优先的CAVLC体系结构 229
6.5.2基于CUDA的并行CAVLC实现 231
6.5.3小结 235
6.6方向优先的去块滤波 236
6.6.1方向优先去块滤波结构 236
6.6.2滤波顺序的调度 238
6.6.3小结 238
6.7实验结果与性能分析 241
6.7.1并行编码器的性能 241
6.7.2编码器特征分析 243
6.7.3小结 246
第7章 展望与未来的研究方向 247
7.1视频编码发展趋势 247
7.1.1基于内容的视频编码 248
7.1.2多视角视频编码 248
7.1.3分布式视频编码 249
7.2三维视频编码流化并行研究 250
7.3面向媒体的并行计算 252
参考文献 255