第1章 程序优化 1
1.1 确定需要优化的重点——性能瓶颈 1
1.2 循环展开 2
1.3 分支程序 4
1.4 乘法和除法、定点和浮点 7
1.5 表格的使用 7
1.6 SIMD技术的使用 13
1.7 数据纠错 55
第2章 数字图像、数字视频基础 57
2.1 RGB位图和RGB格式 57
2.2 RGB 16、24、32的转换 60
2.3 YUV格式 71
2.4 YUV格式之间的转换 77
2.5 RGB到YUV的转换 80
2.6 YUV到RGB的转换 89
2.7 数字视频压缩和相关标准 91
第3章 get_bits函数 95
3.1 get_bits操作 95
3.2 常见的C语言实现 96
3.3 改进版本 98
3.4 MMX版本 100
3.5 性能测试 104
第4章 CABAC过程 108
4.1 CABAC介绍 108
4.2 CABAC的解码器程序 109
4.3 CABAC的解码器优化 112
4.4 C代码 113
4.5 MMX优化 115
第5章 IDCT反离散余弦变换 126
5.1 二维反余弦变换的基本算法:AAN和2D算法 126
5.2 快速算法和快速通道的结合 136
5.3 快速通道的MMX优化 157
第6章 空间预测 198
6.1 空间预测的基本方式 198
6.2 MMX技术在空间预测上的应用 199
第7章 矩阵置换 219
7.1 矩阵置换的C函数 219
7.2 MMX、SSE2优化 221
7.3 性能测试 226
7.4 使用矩阵转置进行位图的旋转 227
第8章 去隔行 235
8.1 隔行图像毛刺现象的成因 236
8.2 测试用例 239
8.3 去隔行API 242
第9章 图像处理 260
9.1 RGB色度、亮度的调整 260
9.2 YUV色度、亮度的调整 269
9.3 图像的锐化 275
9.4 图像的缩放 287
9.5 图像的旋转 310
第10章 MMX整数运算在音频解码中的使用 329
10.1 利用MMX PMADDWD指令实现高精度乘法的原理 329
10.2 程序实现 330
第11章 大整数运算 337
11.1 大整数的表示 337
11.2 大整数加法 337
11.3 大整数减法和大整数取反 342
11.4 大整数比较和移位 343
11.5 大整数乘法 346
11.6 大整数除法 357
11.7 大整数开平方 365
11.8 用十进制字符串表示二进制大整数 370
11.9 用C++封装大整数类型 372
11.10 大数割圆法 386
第12章 多线程开发 395
12.1 线程模型 395
12.2 设计原则 397
12.3 测试用例 399