基本信息
作者: 於廣
出版社:電子工業出版社
ISBN:9787121126482
上架時間:2011-3-7
出版日期:2011 年4月
開本:16開
頁碼:1
版次:1-1
內容簡介
《精通網路視頻核心開發技術》由淺入深地講解了visual c++在音頻和視頻領域的開發技術,並通過具體的實例來講解其具體的實現流程。全書內容分為18章,詳細講解了使用各種軟體和平台進行音/視頻多媒體編程的技術,以案例為對象展示實現過程、分析技術難點。主要內容包括directsound開發音頻、directshow/vfw開發視頻、mmx/sse進行多媒體彙編編程、DM642 dsp進行音/視頻算法最佳化和主流視頻算法mpeg-4/h.264的編碼原理及工程實踐。
《精通網路視頻核心開發技術》系統地介紹了使用visual c++ 2005進行流媒體編程的基本思路和方法,採用案例為主的敘述方式,將大量的技術理論融入具體的案例剖析中。書中採用的案例均來源於作者的實際開發工作,具有很好的實用價值,方便廣大開發者在開發中進行參考或直接套用。
隨書所附光碟包含書中實例源檔案。
內容豐富、安排合理、工程實用性強,能夠為廣大數字媒體或音/視頻開發人員、高等院校相關專業的課程設計、畢業設計提供參考,同時也可以作為科研單位、企業進行流媒體開發的技術指導用書。
目錄
《精通網路視頻核心開發技術》
第1章 音頻/視頻技術基礎 1
1.1 數字音頻、視頻的基本概念 2
1.1.1 數字音頻技術的發展 2
1.1.2 常見數字音頻、視頻檔案格式 3
1.2 數字音/視頻的編/解碼技術介紹 8
1.2.1 音頻數據的編碼、解碼 8
1.2.2 視頻數據的編碼、解碼 10
1.2.3 音頻/視頻編碼方案 11
1.2.4 未來的音頻/視頻編碼技術標準 11
1.3 視頻信息網路傳輸基礎 13
1.4 常見的音頻/視頻處理平台 15
1.5 常用的音頻/視頻開發工具 15
1.5.1 directsound 16
1.5.2 directshow 16
1.5.3 ccs算法 16
第2章 visual c++ 2005開發環境介紹 18
2.1 Visual studio.net基礎 19
2.1.1 visual studio.net工具介紹 19
2.1.2 安裝visual studio 2005 19
.2.2 初識visual studio 2005環境 21
2.2.1 visual studio 2005設定 21
2.2.2 新建項目 22
2.2.3 解決方案和類視圖 24
2.2.4 文本編輯器 26
2.2.5 生成與查錯 28
2.3 使用嚮導完成開發 29
2.3.1 創建應用程式 29
2.3.2 生成套用庫lib/dll 39
2.4 安裝visual studio 2005的常見問題 40
第3章 mfc介紹 42
3.1 mfc概述 43
3.1.1 mfc編程的特點 43
3.1.2 mfc類的分層結構 44
3.1.3 mfc中的winmain()函式 44
3.2 windows訊息機制 44
3.2.1 訊息概述 45
3.2.2 windows句柄 46
3.2.3 訊息的傳送 46
3.2.4 訊息與事件 47
3.3 對話框編程 48
3.3.1 構建對話框應用程式 48
3.3.2 設定對話框屬性 51
3.3.3 常見對話框的種類 54
3.4 控制項基礎 59
3.4.1 windows公共控制項 60
3.4.2 activex控制項 61
3.5 msdn中的巨大資源 64
第4章 directx實現音頻開發 67
4.1 directx基礎 68
4.1.1 directx的歷史 68
4.1.2 版本與功能 68
4.1.3 結構 72
4.1.4 組成 72
4.2 搭建directx開發環境 75
4.2.1 獲取directx 76
4.2.2 安裝directx sdk 78
4.2.3 配置directx sdk 80
4.3 directsound開發基礎 82
4.3.1 directsound能做什麼 83
4.3.2 directsound和DirectMusic的區別 83
4.3.3 directsound sdk結構 84
4.3.4 directsound播放功能介紹 85
4.4 directsound使用方法詳解 85
4.4.1 directsound開發的基本步驟 85
4.4.2 directsound對象介紹 86
4.4.3 使用directsound設備對象 87
4.4.4 使用directsound緩衝區對象 92
4.4.5 使用wav數據 100
4.4.6 使用directx媒體對象控制音效 103
4.5 directsound環境配置 108
4.5.1 directsound開發環境配置 108
4.5.2 開發環境配置 110
4.6 調試程式 112
4.6.1 visual c++調試器 112
4.6.2 一些基本的調試技術 115
第5章 製作一個音頻播放器 116
5.1 先了解基礎知識——緩衝區 117
5.1.1 緩衝區的幾種類型 117
5.1.2 緩衝區通知 117
5.2 系統總體設計和分析 118
5.2.1 mci 119
5.2.2 PlaySound()函式 119
5.2.3 低級別wav音頻設備 120
5.3 播放檔案 122
5.3.1 創建directsound對象 122
5.3.2 創建播放緩衝區 122
5.3.3 創建directsoundbuffer對象 125
5.4 總結directsound音頻編程的步驟及方法 127
5.5 項目具體實現 128
5.5.1 創建項目程式框架 128
5.5.2 添加控制項和變數 129
5.5.3 封裝cdirectsound類實現directsound 129
5.5.4 對話框界面操作 139
5.5.5 編譯和調試 142
第6章 3d音效編程 143
6.1 先了解基礎知識 144
6.1.1 directsound 3d介紹 144
6.1.2 最大距離和最小距離 145
6.1.3 處理模式介紹 145
6.1.4 buffer的位置和速度 146
6.1.5 聲音的錐效應 146
6.2 directsound 3d緩衝區對象 147
6.3 directsound 3d虛擬聽眾 148
6.3.1 聽眾空間參數 148
6.3.2 獲取3d聽者 150
6.3.3 距離因子和都卜勒效應(doppler) 151
6.4 增加聲音特技using effects 151
6.5 項目具體實現 152
6.5.1 創建項目程式框架 152
6.5.2 添加控制項和變數 153
6.5.3 實現流程分析 155
6.5.4 編譯和調試 172
第7章 錄製音頻 174
7.1 先了解基礎知識 175
7.1.1 錄音的基本原理 175
7.1.2 實現流程分析 176
7.2 項目具體實現 184
7.2.1 封裝類 184
7.2.2 管理函式 188
7.2.3 編譯和調試 199
第8章 引入directshow 201
8.1 directshow基礎 202
8.1.1 directshow介紹 202
8.1.2 directshow構成 202
8.2 搭建directshow sdk開發環境 205
8.2.1 獲取directshow sdk 205
8.2.2 安裝directshow sdk 206
8.3 配置directshow sdk開發環境 208
8.3.1 生成directshow sdk庫 208
8.3.2 配置visual c++ 2005 213
8.3.3 最後看筆者機器的調試過程 215
8.4 directshow使用案例 219
8.4.1 濾鏡和圖像濾鏡介紹 219
8.4.2 編寫一個directshow程式 220
8.4.3 使用graphedt.exe播放avi檔案 220
8.4.4 編程實現播放avi檔案 221
第9章 directshow開發詳解 225
9.1 filter graph及其組成 226
9.1.1 directshow的filter 226
9.1.2 filter graph manager對象 227
9.1.3 媒體類型 228
9.1.4 媒體樣本samples和分配器allocators 231
9.2 構建filter graph 231
9.2.1 鍊表構建組件 231
9.2.2 智慧型連線初步介紹 232
9.2.3 grap構建概述 232
9.2.4 智慧型連線詳解 233
9.3 數據流在filter graph里的流動 235
9.3.1 傳輸 236
9.3.2 樣本samples和分配器allocators 236
9.3.3 filter狀態 238
9.3.4 拉模式 239
9.4 事件通知機制 239
9.4.1 概述 239
9.4.2 從佇列中取事件 240
9.4.3 當事件發生時 240
9.5 directshow中的時間和時鐘 242
9.5.1 參考時鐘 243
9.5.2 時鐘時間 243
9.5.3 時間戳 244
9.5.4 實時源 245
9.6 動態重建 246
9.6.1 動態重連 246
9.6.2 filter鏈 248
9.7 外掛程式發布者 249
9.8 directshow的重要接口 251
9.8.1 常用的directshow接口 251
9.8.2 用directshow來使用攝像頭 252
9.9 再次總結directshow程式開發過程 253
9.10 directshow sdk典型開發案例 254
9.10.1 開發一個媒體播放器 254
9.10.2 基於directshow的流媒體解碼和回放 255
9.10.3 嘗試用directshow實現視頻馬賽克處理 256
9.10.4 使用directshow驅動攝像頭 262
9.10.5 directshow視頻採集 264
9.10.6 錄製視頻 274
9.10.7 音頻採集 279
9.10.8 directshow在網路方面的套用 281
第10章 dv視頻採集編程 303
10.1 系統分析與設計 304
10.1.1 採集設備的枚舉 304
10.1.2 使用capturegraphbuilder 307
10.1.3 採集參數的設定 307
10.2 使用vmr實現視頻圖像捕獲 309
10.2.1 vmr技術基礎 309
10.2.2 GraphEdit模擬實現視頻捕獲預覽 310
10.2.3 實現視頻圖像捕獲類cvmr_capture 311
10.2.4 界面設計 319
10.2.5 運行演示 323
第11章 vfw視頻處理 325
11.1 系統分析與設計 326
11.1.1 vfw概述 326
11.1.2 vfw開發流程 326
11.1.3 vfw視頻捕獲流程 328
11.1.4 視頻編輯和播放 329
11.2 一個簡單的基於vfw的視頻預覽 330
11.3 vfw實現視頻捕獲和預覽 333
11.3.1 建立單文檔應用程式 333
11.3.2 創建視頻視窗 335
11.3.3 創建回調函式 336
11.3.4 設定視頻圖像 339
11.3.5 捕獲預覽視頻 341
11.3.6 設定視頻格式和圖像參數 342
11.3.7 其他相關操作 343
11.4 視頻壓縮管理器 347
11.4.1 視頻壓縮管理器初步(1) 347
11.4.2 視頻壓縮管理器初步(2) 348
11.4.3 壓縮、解壓縮及renderers的註冊表項目 353
11.4.4 能完成的任務 354
11.4.5 vfw中vcm的基本操作過程及相關函式 356
11.4.6 套用vcm案例 358
11.5 xvid codec算法實現編碼、解碼 363
11.5.1 xvid基礎 364
11.5.2 編譯xvid 372
11.5.3 xvid編碼、解碼實例 374
第12章 編碼和解碼基礎 382
12.1 數字音頻和數字視頻介紹 383
12.1.1 數字音頻 383
12.1.2 數字視頻 384
12.1.3 視頻壓縮 386
12.2 音頻編碼處理 388
12.2.1 音頻編碼方法 388
12.2.2 mpeg-1音頻 392
12.2.3 mpeg-2音頻 400
12.2.4 mpeg-4音頻 404
12.3 視頻編碼處理 411
12.3.1 H.261和h.263標準 412
12.3.2 mpeg標準 414
12.3.3 mpeg-1和mpeg-2視頻標準 418
12.3.4 mpeg-4編碼標準 424
12.3.5 mpeg-7編碼標準 425
第13章 mmx/sse編程 427
13.1 mmx/sse基礎 428
13.1.1 mmx多媒體擴展 428
13.1.2 SSE指令 428
13.1.3 3d now指令 429
13.1.4 其他幾種技術 430
13.2 mmx指令介紹 431
13.2.1 mmx指令基礎 431
13.2.2 cpu暫存器 436
13.2.3 mmx內聯彙編原則 437
13.2.4 mmx在visual c++中的使用 438
13.2.5 mmx編程實例 439
13.3 sse/sse 2指令 450
13.3.1 sse/sse 2基礎 450
13.3.2 sse/sse 2編程設計 451
13.3.3 sse編程實例 453
第14章 dm642視頻編碼/解碼編程 459
14.1 tms320dm642概述 460
14.2 ccs開發環境 460
14.2.1 ccs概述 461
14.2.2 CCS系統配置 462
14.2.3 代碼生成工具 463
14.2.4 ccs集成開發環境簡介 464
14.2.5 dsp/bios 外掛程式 465
14.2.6 硬體仿真和實時數據交換 467
14.2.7 第三方外掛程式 469
14.2.8 ccs檔案和變數 469
14.3 ccs開發一個簡單的應用程式 470
14.3.1 創建工程檔案 471
14.3.2 向工程添加檔案 471
14.3.3 查看原始碼 472
14.3.4 編譯和運行程式 473
14.3.5 修改程式選項和糾正語法錯誤 474
14.3.6 使用斷點和觀察視窗 475
14.3.7 測算原始碼執行時間 476
14.4 常見套用介紹 477
14.4.1 dm642在視頻套用的模組 478
14.4.2 dm642啟動過程分析 479
14.4.3 在dsp dm642上移植yaffs2 481
14.4.4 dm642 rf框架小結 483
14.4.5 基於tms320c64x/dm64x的視頻編碼最佳化 486
14.4.6 dm642視頻採集與回放 489
14.4.7 視頻會議系統的主流解決方案與技術趨勢 493
14.5 dsp視頻算法最佳化 498
14.5.1 基於dsp的視頻算法系統最佳化若干策略 498
14.5.2 mpeg音頻解碼算法的dsp設計和最佳化 501
14.5.3 基於dsp的信道解碼算法最佳化 504
14.6 基於dsp的jpeg圖像解碼算法的實現 508
14.6.1 jpeg圖像算法基礎 508
14.6.2 jpeg編碼算法的dsp最佳化實例 511
14.7 最後的迷津——哈夫曼編碼 519
第15章 實現mpeg-4編碼/解碼 528
15.1 mpeg-4編/解碼概述 529
15.1.1 基於對象的mpeg-4視頻編碼 529
15.1.2 xvid格式檔案播放 529
15.2 xvid codec編/解碼分析 529
15.2.1 mpeg-4編/解碼設計分析 530
15.2.2 mmx/sse2實現xvid codec 556
15.3 sse2彙編指令最佳化核心模組 559
15.4 dm642下的xvid codec最佳化 561
15.5 運行xvid codec系統 566
15.5.1 yuv原始視頻數據及其顯示 566
15.5.2 在visual c++平台下編譯/運行xvid codec 567
15.5.3 codec在dsp下軟仿真和硬仿真 569
15.6 系統運行效果 569
第16章 h.264/avc編碼技術詳解 571
16.1 h.264/avc的特點與結構 572
16.1.1 技術特點 572
16.1.2 編碼結構與格式 573
16.2 h.264/avc的預測編碼 577
16.2.1 幀內預測 577
16.2.2 幀間預測與運動補償 580
16.3 h.264/avc的塊編碼 582
16.3.1 4×4整數dct 583
16.3.2 量化 586
16.3.3 CAVLC 588
16.3.4 cabac 592
16.4 X.264視頻編碼設計和分析 596
16.4.1 x.264套用工程 596
16.4.2 libx264編碼庫 602
16.4.3 視頻幀的存放和獲取 604
16.4.4 視頻幀壓縮編碼vcl 607
16.4.5 碼流nal打包輸出 614
16.5 x.264核心模組的mmx/dsp彙編最佳化 615
16.5.1 mmx/dsp彙編最佳化 615
16.5.2 dm642線性彙編最佳化 616
第17章 製作一個媒體播放器 619
17.1 系統分析和設計 620
17.1.1 功能需求和效果展示 620
17.1.2 設計filtergraph結構 621
17.1.3 實現graphedit模擬 621
17.1.4 設計界面 623
17.2 實現媒體控制類 627
17.2.1 cdxgraph類初始化 627
17.2.2 創建graph濾波器鍊表 629
17.2.3 設計圖像視窗 631
17.2.4 媒體播放控制 632
17.2.5 視頻全螢幕顯示 635
17.2.6 抓圖保存 636
17.3 實現播放器主題 637
17.3.1 打開一個媒體檔案 637
17.3.2 渲染媒體檔案 637
17.3.3 播放媒體檔案 638
17.3.4 實現控制功能 639
17.3.5 實現拖放功能 643
17.3.6 實現音量調節功能 644
17.3.7 添加背景圖片 645
第18章 網路視頻監控系統 647
18.1 中國視頻監控市場現狀與發展趨勢 648
18.2 系統分析 648
18.3 系統設計 649
18.4 系統預覽 649
18.5 編碼規則介紹 650
18.6 設計資料庫 651
18.7 開發前的最後準備——選購監控卡 652
18.7.1 選購監控卡 652
18.7.2 軟體準備 653
18.7.3 安裝監控卡 653
18.8 具體編程實現 653
18.8.1 設計公共模組 653
18.8.2 設計主窗體 659
18.9 設計管理員登錄模組 675
18.10 設計監控管理模組 677
18.10.1 監控管理技術分析 678
18.10.2 編程監控管理 678
18.10.3 單元測試處理 682
18.11 設計廣角自動監控模組 682
18.11.1 可行性分析 683
18.11.2 編程實現 684
18.11.3 單元測試 687
18.12 設計視頻回放模組 688
18.12.1 技術分析 689
18.12.2 編程實現 689
18.13 分析絢麗界面的實現方法 690
18.13.1 絢麗的界面是客戶的需求 690
18.13.2 編程實現 690