Skip to content

Commit efb1852

Browse files
authored
Merge pull request #5 from 5000user5000/remove-doc
doc 整理以及 README 優化
2 parents 83c9172 + c204810 commit efb1852

3 files changed

Lines changed: 8 additions & 224 deletions

File tree

README.md

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@
66

77
**視訊壓縮期末專案**
88

9+
組員: 周哲瑋 (Wayne),陳冠霖,許詠約
10+
911
高效能 JPEG 解碼器實現,核心使用 C++ 開發並透過 pybind11 提供 Python API。專案包含 C++ 和 NumPy 兩種實現,用於比較不同實現方式的性能差異。
1012

13+
1114
## 專案特點
1215

1316
- **⚡ 高效能**: C++ 核心實現,比 NumPy 版本快 **約 4.4 倍**
@@ -32,7 +35,7 @@
3235
- NumPy Decoder: **35.15 dB** ✅ (良好)
3336
- 兩者均達到視覺無失真標準(> 30 dB)
3437

35-
詳細的 benchmark 結果請參考 [BENCHMARK_RESULTS.md](BENCHMARK_RESULTS.md)
38+
詳細的 benchmark 結果請參考 [BENCHMARK_RESULTS.md](doc/BENCHMARK_RESULTS.md)
3639

3740
## 快速開始
3841

@@ -49,7 +52,7 @@
4952

5053
```bash
5154
# 1. Clone 專案
52-
git clone https://github.com/yourusername/Fast-Jpeg-Decoder.git
55+
git clone https://github.com/5000user5000/Fast-Jpeg-Decoder.git
5356
cd Fast-Jpeg-Decoder
5457

5558
# 2. 安裝 Python 依賴
@@ -163,10 +166,9 @@ Fast-Jpeg-Decoder/
163166
├── benchmarks/
164167
│ └── run_benchmark.py # 性能測試與品質驗證
165168
├── doc/
166-
│ └── report.md # 詳細技術報告
169+
│ └── BENCHMARK_RESULTS.md # Benchmark 結果文檔
167170
├── output/ # 解碼輸出結果(benchmark 生成)
168171
├── example.py # 使用範例
169-
├── BENCHMARK_RESULTS.md # Benchmark 結果文檔
170172
├── Makefile # 建構腳本
171173
├── setup.py # Python 安裝腳本
172174
└── README.md # 本文件
@@ -252,8 +254,6 @@ JPEG 檔案
252254
解碼完成的圖片
253255
```
254256

255-
詳細的技術實現請參考 [doc/report.md](doc/report.md)
256-
257257
## 技術亮點
258258

259259
### C++ 實現
@@ -302,8 +302,6 @@ JPEG 檔案
302302
- 多執行緒(OpenMP): 預期提升接近 CPU 核心數
303303
- 查表法(LUT): 預期提升 1.5-2×
304304

305-
詳細分析請參考 [BENCHMARK_RESULTS.md](BENCHMARK_RESULTS.md)
306-
307305
## 使用建議
308306

309307
### ✅ 推薦使用場景
@@ -317,13 +315,12 @@ JPEG 檔案
317315

318316
- **生產環境**: 請使用成熟的庫(libjpeg-turbo, PIL/Pillow)
319317
- **完整 JPEG 支援**: 本專案僅支援 Baseline DCT
320-
- **關鍵應用**: NumPy 實現存在已知的正確性問題
318+
- **關鍵應用**: NumPy 實現性能較低(比 C++ 慢 4.4 倍)
321319

322320
## 文檔
323321

324322
- **[README.md](README.md)**: 專案概述和快速開始(本文件)
325-
- **[BENCHMARK_RESULTS.md](BENCHMARK_RESULTS.md)**: 詳細的性能測試結果和正確性驗證
326-
- **[doc/report.md](doc/report.md)**: 完整的技術報告(包含原理、實現、分析)
323+
- **[BENCHMARK_RESULTS.md](doc/BENCHMARK_RESULTS.md)**: 詳細的性能測試結果和正確性驗證
327324

328325
### 開發指南
329326

@@ -341,7 +338,6 @@ JPEG 檔案
341338

342339
### 技術文章
343340

344-
- [JPEG Decoding Tutorial](https://www.impulseadventure.com/photo/jpeg-decoder.html)
345341
- [Fast DCT Algorithms](https://www.nayuki.io/page/fast-discrete-cosine-transform-algorithms)
346342
- [Understanding JPEG](https://parametric.press/issue-01/unraveling-the-jpeg/)
347343

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -211,49 +211,6 @@ YCbCr → RGB 轉換 12.3% 數學運算
211211
- 當前 C++ 實現:67.50ms (lena.jpg)
212212
- **還有約 13× 的優化空間**
213213

214-
## 結論與建議
215-
216-
### 使用建議
217-
218-
#### ✅ 推薦使用 C++ 實現
219-
- **場景**: 性能敏感應用、大規模圖片處理
220-
- **優勢**: 4.4× 性能提升 + 高品質還原(35+ dB)
221-
- **適用**: 視訊處理、嵌入式系統、即時應用
222-
223-
#### ✅ NumPy 實現適用場景
224-
- **場景**: 學習、原型開發、理解 JPEG 原理
225-
- **優勢**: 代碼清晰、易於修改、與 C++ 品質相當
226-
- **限制**: 性能較低,不適合生產環境
227-
228-
#### 🚫 生產環境請使用成熟的庫
229-
- **推薦**:
230-
- `libjpeg-turbo` (C/C++) - 工業標準
231-
- `PIL/Pillow` (Python) - 功能完整
232-
- `opencv-python` (Python) - 整合豐富
233-
- **原因**:
234-
- 完整的 JPEG 格式支援(Progressive, Lossless 等)
235-
- 經過大量測試和優化
236-
- 持續維護和更新
237-
238-
### 專案價值
239-
240-
本專案的主要價值在於:
241-
242-
1. **教學示範**
243-
- 完整實現 JPEG Baseline DCT 解碼流程
244-
- 修復了多個常見的實現錯誤
245-
- 提供詳細的技術文檔
246-
247-
2. **性能比較研究**
248-
- 實證 C++ vs Python 的性能差異(4.4×)
249-
- 分析瓶頸來源和優化方向
250-
- 展示 pybind11 的整合實踐
251-
252-
3. **品質驗證**
253-
- 使用 PSNR 量化評估解碼品質
254-
- 證明兩種實現的正確性(35+ dB)
255-
- 提供可靠的參考實現
256-
257214
## 已知限制
258215

259216
### 支援的 JPEG 格式

doc/report.md

Lines changed: 0 additions & 169 deletions
This file was deleted.

0 commit comments

Comments
 (0)