Develop and Download Open Source Software

Browse Subversion Repository

Contents of /IntraPrediction.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4 - (show annotations) (download) (as text)
Sun Apr 5 12:08:23 2009 UTC (15 years, 1 month ago) by berupon
File MIME type: text/x-chdr
File size: 2027 byte(s)
既に他の場所で公開済みのImageCompressionのプロジェクトを取り込み。
1 #pragma once
2
3 namespace IntraPrediction {
4
5 enum Mode {
6 Mode_Vertical = 0,
7 Mode_Horizontal = 1,
8 Mode_DC = 2,
9 Mode_DiagonalDownLeft = 3,
10 Mode_DiagonalDownRight = 4,
11 Mode_VerticalRight = 5,
12 Mode_HorizontalDown = 6,
13 Mode_VerticalLeft = 7,
14 Mode_HorizontalUp = 8,
15 };
16
17 class Predictor8
18 {
19 public:
20 void predict(Mode mode, const int original[8][8], int processed[8][8])
21 {
22 switch (mode) {
23 case Mode_Vertical:
24 vertical(original, processed);
25 break;
26 case Mode_Horizontal:
27 horizontal(original, processed);
28 break;
29 case Mode_DC:
30 dc(original, processed);
31 break;
32 case Mode_DiagonalDownLeft:
33 diagonalDownLeft(original, processed);
34 break;
35 case Mode_DiagonalDownRight:
36 diagonalDownRight(original, processed);
37 break;
38 case Mode_VerticalRight:
39 verticalRight(original, processed);
40 break;
41 case Mode_HorizontalDown:
42 horizontalDown(original, processed);
43 break;
44 case Mode_VerticalLeft:
45 verticalLeft(original, processed);
46 break;
47 case Mode_HorizontalUp:
48 horizontalUp(original, processed);
49 break;
50 }
51 }
52
53 void vertical(const int original[8][8], int processed[8][8]);
54 void horizontal(const int original[8][8], int processed[8][8]);
55 void dc(const int original[8][8], int processed[8][8]);
56 void diagonalDownLeft(const int original[8][8], int processed[8][8]);
57 void diagonalDownRight(const int original[8][8], int processed[8][8]);
58
59 void verticalRight(const int original[8][8], int processed[8][8]);
60 void verticalRight_Sub(size_t offset, const int original[8][8], int processed[8][8]);
61
62 void horizontalDown(const int original[8][8], int processed[8][8]);
63
64 void verticalLeft(const int original[8][8], int processed[8][8]);
65 void verticalLeft_Sub(size_t offset, const int original[8][8], int processed[8][8]);
66
67 void horizontalUp(const int original[8][8], int processed[8][8]);
68
69 int cols[17]; // bottom row
70 int rows[17]; // right-most columns
71 int average;
72 };
73
74 } // namespace IntraPrediction
75

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26