Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Xiph.Org
aom-rav1e
Commits
5953a986
Commit
5953a986
authored
Apr 16, 2013
by
Dmitry Kovalev
Committed by
Gerrit Code Review
Apr 16, 2013
Browse files
Merge "Code cleanup inside vp9_reconintra4x4.c file." into experimental
parents
b30182c7
64de375e
Changes
1
Hide whitespace changes
Inline
Side-by-side
vp9/common/vp9_reconintra4x4.c
View file @
5953a986
...
...
@@ -195,12 +195,7 @@ void vp9_intra4x4_predict(MACROBLOCKD *xd,
if
(
have_top
)
{
uint8_t
*
above_ptr
=
*
(
x
->
base_dst
)
+
x
->
dst
-
x
->
dst_stride
;
if
(
have_left
)
{
top_left
=
above_ptr
[
-
1
];
}
else
{
top_left
=
127
;
}
top_left
=
have_left
?
above_ptr
[
-
1
]
:
127
;
above
[
0
]
=
above_ptr
[
0
];
above
[
1
]
=
above_ptr
[
1
];
...
...
@@ -270,13 +265,11 @@ void vp9_intra4x4_predict(MACROBLOCKD *xd,
expected_dc
+=
left
[
i
];
}
expected_dc
=
(
expected_dc
+
4
)
>>
3
;
expected_dc
=
ROUND_POWER_OF_TWO
(
expected_dc
,
3
)
;
for
(
r
=
0
;
r
<
4
;
r
++
)
{
for
(
c
=
0
;
c
<
4
;
c
++
)
{
for
(
c
=
0
;
c
<
4
;
c
++
)
predictor
[
c
]
=
expected_dc
;
}
predictor
+=
ps
;
}
}
...
...
@@ -284,210 +277,160 @@ void vp9_intra4x4_predict(MACROBLOCKD *xd,
case
B_TM_PRED
:
{
/* prediction similar to true_motion prediction */
for
(
r
=
0
;
r
<
4
;
r
++
)
{
for
(
c
=
0
;
c
<
4
;
c
++
)
{
for
(
c
=
0
;
c
<
4
;
c
++
)
predictor
[
c
]
=
clip_pixel
(
above
[
c
]
-
top_left
+
left
[
r
]);
}
predictor
+=
ps
;
}
}
break
;
case
B_V_PRED
:
{
unsigned
int
ap
[
4
];
ap
[
0
]
=
above
[
0
];
ap
[
1
]
=
above
[
1
];
ap
[
2
]
=
above
[
2
];
ap
[
3
]
=
above
[
3
];
case
B_V_PRED
:
for
(
r
=
0
;
r
<
4
;
r
++
)
{
for
(
c
=
0
;
c
<
4
;
c
++
)
{
predictor
[
c
]
=
ap
[
c
];
}
for
(
c
=
0
;
c
<
4
;
c
++
)
predictor
[
c
]
=
above
[
c
];
predictor
+=
ps
;
}
}
break
;
case
B_H_PRED
:
{
unsigned
int
lp
[
4
];
lp
[
0
]
=
left
[
0
];
lp
[
1
]
=
left
[
1
];
lp
[
2
]
=
left
[
2
];
lp
[
3
]
=
left
[
3
];
break
;
case
B_H_PRED
:
for
(
r
=
0
;
r
<
4
;
r
++
)
{
for
(
c
=
0
;
c
<
4
;
c
++
)
{
predictor
[
c
]
=
lp
[
r
];
}
for
(
c
=
0
;
c
<
4
;
c
++
)
predictor
[
c
]
=
left
[
r
];
predictor
+=
ps
;
}
}
break
;
break
;
case
B_D45_PRED
:
{
uint8_t
*
p
tr
=
above
;
uint8_t
*
p
=
above
;
predictor
[
0
*
ps
+
0
]
=
(
p
tr
[
0
]
+
p
tr
[
1
]
*
2
+
p
tr
[
2
]
+
2
)
>>
2
;
predictor
[
0
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
0
]
+
p
[
1
]
*
2
+
p
[
2
]
,
2
);
predictor
[
0
*
ps
+
1
]
=
predictor
[
1
*
ps
+
0
]
=
(
p
tr
[
1
]
+
p
tr
[
2
]
*
2
+
p
tr
[
3
]
+
2
)
>>
2
;
predictor
[
1
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
1
]
+
p
[
2
]
*
2
+
p
[
3
]
,
2
);
predictor
[
0
*
ps
+
2
]
=
predictor
[
1
*
ps
+
1
]
=
predictor
[
2
*
ps
+
0
]
=
(
p
tr
[
2
]
+
p
tr
[
3
]
*
2
+
p
tr
[
4
]
+
2
)
>>
2
;
predictor
[
2
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
2
]
+
p
[
3
]
*
2
+
p
[
4
]
,
2
);
predictor
[
0
*
ps
+
3
]
=
predictor
[
1
*
ps
+
2
]
=
predictor
[
2
*
ps
+
1
]
=
predictor
[
3
*
ps
+
0
]
=
(
ptr
[
3
]
+
ptr
[
4
]
*
2
+
ptr
[
5
]
+
2
)
>>
2
;
predictor
[
3
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
3
]
+
p
[
4
]
*
2
+
p
[
5
],
2
);
predictor
[
1
*
ps
+
3
]
=
predictor
[
2
*
ps
+
2
]
=
predictor
[
3
*
ps
+
1
]
=
(
p
tr
[
4
]
+
p
tr
[
5
]
*
2
+
p
tr
[
6
]
+
2
)
>>
2
;
predictor
[
3
*
ps
+
1
]
=
ROUND_POWER_OF_TWO
(
p
[
4
]
+
p
[
5
]
*
2
+
p
[
6
]
,
2
);
predictor
[
2
*
ps
+
3
]
=
predictor
[
3
*
ps
+
2
]
=
(
p
tr
[
5
]
+
p
tr
[
6
]
*
2
+
p
tr
[
7
]
+
2
)
>>
2
;
predictor
[
3
*
ps
+
3
]
=
(
p
tr
[
6
]
+
p
tr
[
7
]
*
2
+
p
tr
[
7
]
+
2
)
>>
2
;
predictor
[
3
*
ps
+
2
]
=
ROUND_POWER_OF_TWO
(
p
[
5
]
+
p
[
6
]
*
2
+
p
[
7
]
,
2
);
predictor
[
3
*
ps
+
3
]
=
ROUND_POWER_OF_TWO
(
p
[
6
]
+
p
[
7
]
*
2
+
p
[
7
]
,
2
);
}
break
;
case
B_D135_PRED
:
{
uint8_t
pp
[
9
];
pp
[
0
]
=
left
[
3
];
pp
[
1
]
=
left
[
2
];
pp
[
2
]
=
left
[
1
];
pp
[
3
]
=
left
[
0
];
pp
[
4
]
=
top_left
;
pp
[
5
]
=
above
[
0
];
pp
[
6
]
=
above
[
1
];
pp
[
7
]
=
above
[
2
];
pp
[
8
]
=
above
[
3
];
uint8_t
p
[
9
]
=
{
left
[
3
],
left
[
2
],
left
[
1
],
left
[
0
],
top_left
,
above
[
0
],
above
[
1
],
above
[
2
],
above
[
3
]
};
predictor
[
3
*
ps
+
0
]
=
(
p
p
[
0
]
+
p
p
[
1
]
*
2
+
p
p
[
2
]
+
2
)
>>
2
;
predictor
[
3
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
0
]
+
p
[
1
]
*
2
+
p
[
2
]
,
2
);
predictor
[
3
*
ps
+
1
]
=
predictor
[
2
*
ps
+
0
]
=
(
p
p
[
1
]
+
p
p
[
2
]
*
2
+
p
p
[
3
]
+
2
)
>>
2
;
predictor
[
2
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
1
]
+
p
[
2
]
*
2
+
p
[
3
]
,
2
);
predictor
[
3
*
ps
+
2
]
=
predictor
[
2
*
ps
+
1
]
=
predictor
[
1
*
ps
+
0
]
=
(
p
p
[
2
]
+
p
p
[
3
]
*
2
+
p
p
[
4
]
+
2
)
>>
2
;
predictor
[
1
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
2
]
+
p
[
3
]
*
2
+
p
[
4
]
,
2
);
predictor
[
3
*
ps
+
3
]
=
predictor
[
2
*
ps
+
2
]
=
predictor
[
1
*
ps
+
1
]
=
predictor
[
0
*
ps
+
0
]
=
(
pp
[
3
]
+
pp
[
4
]
*
2
+
pp
[
5
]
+
2
)
>>
2
;
predictor
[
0
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
3
]
+
p
[
4
]
*
2
+
p
[
5
],
2
);
predictor
[
2
*
ps
+
3
]
=
predictor
[
1
*
ps
+
2
]
=
predictor
[
0
*
ps
+
1
]
=
(
p
p
[
4
]
+
p
p
[
5
]
*
2
+
p
p
[
6
]
+
2
)
>>
2
;
predictor
[
0
*
ps
+
1
]
=
ROUND_POWER_OF_TWO
(
p
[
4
]
+
p
[
5
]
*
2
+
p
[
6
]
,
2
);
predictor
[
1
*
ps
+
3
]
=
predictor
[
0
*
ps
+
2
]
=
(
p
p
[
5
]
+
p
p
[
6
]
*
2
+
p
p
[
7
]
+
2
)
>>
2
;
predictor
[
0
*
ps
+
3
]
=
(
p
p
[
6
]
+
p
p
[
7
]
*
2
+
p
p
[
8
]
+
2
)
>>
2
;
predictor
[
0
*
ps
+
2
]
=
ROUND_POWER_OF_TWO
(
p
[
5
]
+
p
[
6
]
*
2
+
p
[
7
]
,
2
);
predictor
[
0
*
ps
+
3
]
=
ROUND_POWER_OF_TWO
(
p
[
6
]
+
p
[
7
]
*
2
+
p
[
8
]
,
2
);
}
break
;
case
B_D117_PRED
:
{
uint8_t
pp
[
9
];
uint8_t
p
[
9
]
=
{
left
[
3
],
left
[
2
],
left
[
1
],
left
[
0
],
top_left
,
above
[
0
],
above
[
1
],
above
[
2
],
above
[
3
]
};
pp
[
0
]
=
left
[
3
];
pp
[
1
]
=
left
[
2
];
pp
[
2
]
=
left
[
1
];
pp
[
3
]
=
left
[
0
];
pp
[
4
]
=
top_left
;
pp
[
5
]
=
above
[
0
];
pp
[
6
]
=
above
[
1
];
pp
[
7
]
=
above
[
2
];
pp
[
8
]
=
above
[
3
];
predictor
[
3
*
ps
+
0
]
=
(
pp
[
1
]
+
pp
[
2
]
*
2
+
pp
[
3
]
+
2
)
>>
2
;
predictor
[
2
*
ps
+
0
]
=
(
pp
[
2
]
+
pp
[
3
]
*
2
+
pp
[
4
]
+
2
)
>>
2
;
predictor
[
3
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
1
]
+
p
[
2
]
*
2
+
p
[
3
],
2
);
predictor
[
2
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
2
]
+
p
[
3
]
*
2
+
p
[
4
],
2
);
predictor
[
3
*
ps
+
1
]
=
predictor
[
1
*
ps
+
0
]
=
(
p
p
[
3
]
+
p
p
[
4
]
*
2
+
p
p
[
5
]
+
2
)
>>
2
;
predictor
[
1
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
3
]
+
p
[
4
]
*
2
+
p
[
5
]
,
2
);
predictor
[
2
*
ps
+
1
]
=
predictor
[
0
*
ps
+
0
]
=
(
p
p
[
4
]
+
p
p
[
5
]
+
1
)
>>
1
;
predictor
[
0
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
4
]
+
p
[
5
]
,
1
);
predictor
[
3
*
ps
+
2
]
=
predictor
[
1
*
ps
+
1
]
=
(
p
p
[
4
]
+
p
p
[
5
]
*
2
+
p
p
[
6
]
+
2
)
>>
2
;
predictor
[
1
*
ps
+
1
]
=
ROUND_POWER_OF_TWO
(
p
[
4
]
+
p
[
5
]
*
2
+
p
[
6
]
,
2
);
predictor
[
2
*
ps
+
2
]
=
predictor
[
0
*
ps
+
1
]
=
(
p
p
[
5
]
+
p
p
[
6
]
+
1
)
>>
1
;
predictor
[
0
*
ps
+
1
]
=
ROUND_POWER_OF_TWO
(
p
[
5
]
+
p
[
6
]
,
1
);
predictor
[
3
*
ps
+
3
]
=
predictor
[
1
*
ps
+
2
]
=
(
p
p
[
5
]
+
p
p
[
6
]
*
2
+
p
p
[
7
]
+
2
)
>>
2
;
predictor
[
1
*
ps
+
2
]
=
ROUND_POWER_OF_TWO
(
p
[
5
]
+
p
[
6
]
*
2
+
p
[
7
]
,
2
);
predictor
[
2
*
ps
+
3
]
=
predictor
[
0
*
ps
+
2
]
=
(
p
p
[
6
]
+
p
p
[
7
]
+
1
)
>>
1
;
predictor
[
1
*
ps
+
3
]
=
(
p
p
[
6
]
+
p
p
[
7
]
*
2
+
p
p
[
8
]
+
2
)
>>
2
;
predictor
[
0
*
ps
+
3
]
=
(
p
p
[
7
]
+
p
p
[
8
]
+
1
)
>>
1
;
predictor
[
0
*
ps
+
2
]
=
ROUND_POWER_OF_TWO
(
p
[
6
]
+
p
[
7
]
,
1
);
predictor
[
1
*
ps
+
3
]
=
ROUND_POWER_OF_TWO
(
p
[
6
]
+
p
[
7
]
*
2
+
p
[
8
]
,
2
);
predictor
[
0
*
ps
+
3
]
=
ROUND_POWER_OF_TWO
(
p
[
7
]
+
p
[
8
]
,
1
);
}
break
;
case
B_D63_PRED
:
{
uint8_t
*
p
p
=
above
;
uint8_t
*
p
=
above
;
predictor
[
0
*
ps
+
0
]
=
(
p
p
[
0
]
+
p
p
[
1
]
+
1
)
>>
1
;
predictor
[
1
*
ps
+
0
]
=
(
p
p
[
0
]
+
p
p
[
1
]
*
2
+
p
p
[
2
]
+
2
)
>>
2
;
predictor
[
0
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
0
]
+
p
[
1
]
,
1
);
predictor
[
1
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
0
]
+
p
[
1
]
*
2
+
p
[
2
]
,
2
);
predictor
[
2
*
ps
+
0
]
=
predictor
[
0
*
ps
+
1
]
=
(
p
p
[
1
]
+
p
p
[
2
]
+
1
)
>>
1
;
predictor
[
0
*
ps
+
1
]
=
ROUND_POWER_OF_TWO
(
p
[
1
]
+
p
[
2
]
,
1
);
predictor
[
1
*
ps
+
1
]
=
predictor
[
3
*
ps
+
0
]
=
(
p
p
[
1
]
+
p
p
[
2
]
*
2
+
p
p
[
3
]
+
2
)
>>
2
;
predictor
[
3
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
1
]
+
p
[
2
]
*
2
+
p
[
3
]
,
2
);
predictor
[
2
*
ps
+
1
]
=
predictor
[
0
*
ps
+
2
]
=
(
p
p
[
2
]
+
p
p
[
3
]
+
1
)
>>
1
;
predictor
[
0
*
ps
+
2
]
=
ROUND_POWER_OF_TWO
(
p
[
2
]
+
p
[
3
]
,
1
);
predictor
[
3
*
ps
+
1
]
=
predictor
[
1
*
ps
+
2
]
=
(
p
p
[
2
]
+
p
p
[
3
]
*
2
+
p
p
[
4
]
+
2
)
>>
2
;
predictor
[
1
*
ps
+
2
]
=
ROUND_POWER_OF_TWO
(
p
[
2
]
+
p
[
3
]
*
2
+
p
[
4
]
,
2
);
predictor
[
0
*
ps
+
3
]
=
predictor
[
2
*
ps
+
2
]
=
(
p
p
[
3
]
+
p
p
[
4
]
+
1
)
>>
1
;
predictor
[
2
*
ps
+
2
]
=
ROUND_POWER_OF_TWO
(
p
[
3
]
+
p
[
4
]
,
1
);
predictor
[
1
*
ps
+
3
]
=
predictor
[
3
*
ps
+
2
]
=
(
p
p
[
3
]
+
p
p
[
4
]
*
2
+
p
p
[
5
]
+
2
)
>>
2
;
predictor
[
2
*
ps
+
3
]
=
(
p
p
[
4
]
+
p
p
[
5
]
*
2
+
p
p
[
6
]
+
2
)
>>
2
;
predictor
[
3
*
ps
+
3
]
=
(
p
p
[
5
]
+
p
p
[
6
]
*
2
+
p
p
[
7
]
+
2
)
>>
2
;
predictor
[
3
*
ps
+
2
]
=
ROUND_POWER_OF_TWO
(
p
[
3
]
+
p
[
4
]
*
2
+
p
[
5
]
,
2
);
predictor
[
2
*
ps
+
3
]
=
ROUND_POWER_OF_TWO
(
p
[
4
]
+
p
[
5
]
*
2
+
p
[
6
]
,
2
);
predictor
[
3
*
ps
+
3
]
=
ROUND_POWER_OF_TWO
(
p
[
5
]
+
p
[
6
]
*
2
+
p
[
7
]
,
2
);
}
break
;
case
B_D153_PRED
:
{
uint8_t
pp
[
9
];
pp
[
0
]
=
left
[
3
];
pp
[
1
]
=
left
[
2
];
pp
[
2
]
=
left
[
1
];
pp
[
3
]
=
left
[
0
];
pp
[
4
]
=
top_left
;
pp
[
5
]
=
above
[
0
];
pp
[
6
]
=
above
[
1
];
pp
[
7
]
=
above
[
2
];
pp
[
8
]
=
above
[
3
];
uint8_t
p
[
9
]
=
{
left
[
3
],
left
[
2
],
left
[
1
],
left
[
0
],
top_left
,
above
[
0
],
above
[
1
],
above
[
2
],
above
[
3
]
};
predictor
[
3
*
ps
+
0
]
=
(
pp
[
0
]
+
pp
[
1
]
+
1
)
>>
1
;
predictor
[
3
*
ps
+
1
]
=
(
pp
[
0
]
+
pp
[
1
]
*
2
+
pp
[
2
]
+
2
)
>>
2
;
predictor
[
3
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
0
]
+
p
[
1
],
1
);
predictor
[
3
*
ps
+
1
]
=
ROUND_POWER_OF_TWO
(
p
[
0
]
+
p
[
1
]
*
2
+
p
[
2
],
2
);
predictor
[
2
*
ps
+
0
]
=
predictor
[
3
*
ps
+
2
]
=
(
p
p
[
1
]
+
p
p
[
2
]
+
1
)
>>
1
;
predictor
[
3
*
ps
+
2
]
=
ROUND_POWER_OF_TWO
(
p
[
1
]
+
p
[
2
]
,
1
);
predictor
[
2
*
ps
+
1
]
=
predictor
[
3
*
ps
+
3
]
=
(
p
p
[
1
]
+
p
p
[
2
]
*
2
+
p
p
[
3
]
+
2
)
>>
2
;
predictor
[
3
*
ps
+
3
]
=
ROUND_POWER_OF_TWO
(
p
[
1
]
+
p
[
2
]
*
2
+
p
[
3
]
,
2
);
predictor
[
2
*
ps
+
2
]
=
predictor
[
1
*
ps
+
0
]
=
(
p
p
[
2
]
+
p
p
[
3
]
+
1
)
>>
1
;
predictor
[
1
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
2
]
+
p
[
3
]
,
1
);
predictor
[
2
*
ps
+
3
]
=
predictor
[
1
*
ps
+
1
]
=
(
p
p
[
2
]
+
p
p
[
3
]
*
2
+
p
p
[
4
]
+
2
)
>>
2
;
predictor
[
1
*
ps
+
1
]
=
ROUND_POWER_OF_TWO
(
p
[
2
]
+
p
[
3
]
*
2
+
p
[
4
]
,
2
);
predictor
[
1
*
ps
+
2
]
=
predictor
[
0
*
ps
+
0
]
=
(
p
p
[
3
]
+
p
p
[
4
]
+
1
)
>>
1
;
predictor
[
0
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
3
]
+
p
[
4
]
,
1
);
predictor
[
1
*
ps
+
3
]
=
predictor
[
0
*
ps
+
1
]
=
(
p
p
[
3
]
+
p
p
[
4
]
*
2
+
p
p
[
5
]
+
2
)
>>
2
;
predictor
[
0
*
ps
+
2
]
=
(
p
p
[
4
]
+
p
p
[
5
]
*
2
+
p
p
[
6
]
+
2
)
>>
2
;
predictor
[
0
*
ps
+
3
]
=
(
p
p
[
5
]
+
p
p
[
6
]
*
2
+
p
p
[
7
]
+
2
)
>>
2
;
predictor
[
0
*
ps
+
1
]
=
ROUND_POWER_OF_TWO
(
p
[
3
]
+
p
[
4
]
*
2
+
p
[
5
]
,
2
);
predictor
[
0
*
ps
+
2
]
=
ROUND_POWER_OF_TWO
(
p
[
4
]
+
p
[
5
]
*
2
+
p
[
6
]
,
2
);
predictor
[
0
*
ps
+
3
]
=
ROUND_POWER_OF_TWO
(
p
[
5
]
+
p
[
6
]
*
2
+
p
[
7
]
,
2
);
}
break
;
case
B_D27_PRED
:
{
uint8_t
*
p
p
=
left
;
predictor
[
0
*
ps
+
0
]
=
(
p
p
[
0
]
+
p
p
[
1
]
+
1
)
>>
1
;
predictor
[
0
*
ps
+
1
]
=
(
p
p
[
0
]
+
p
p
[
1
]
*
2
+
p
p
[
2
]
+
2
)
>>
2
;
uint8_t
*
p
=
left
;
predictor
[
0
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
0
]
+
p
[
1
]
,
1
);
predictor
[
0
*
ps
+
1
]
=
ROUND_POWER_OF_TWO
(
p
[
0
]
+
p
[
1
]
*
2
+
p
[
2
]
,
2
);
predictor
[
0
*
ps
+
2
]
=
predictor
[
1
*
ps
+
0
]
=
(
p
p
[
1
]
+
p
p
[
2
]
+
1
)
>>
1
;
predictor
[
1
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
1
]
+
p
[
2
]
,
1
);
predictor
[
0
*
ps
+
3
]
=
predictor
[
1
*
ps
+
1
]
=
(
p
p
[
1
]
+
p
p
[
2
]
*
2
+
p
p
[
3
]
+
2
)
>>
2
;
predictor
[
1
*
ps
+
1
]
=
ROUND_POWER_OF_TWO
(
p
[
1
]
+
p
[
2
]
*
2
+
p
[
3
]
,
2
);
predictor
[
1
*
ps
+
2
]
=
predictor
[
2
*
ps
+
0
]
=
(
p
p
[
2
]
+
p
p
[
3
]
+
1
)
>>
1
;
predictor
[
2
*
ps
+
0
]
=
ROUND_POWER_OF_TWO
(
p
[
2
]
+
p
[
3
]
,
1
);
predictor
[
1
*
ps
+
3
]
=
predictor
[
2
*
ps
+
1
]
=
(
p
p
[
2
]
+
p
p
[
3
]
*
2
+
p
p
[
3
]
+
2
)
>>
2
;
predictor
[
2
*
ps
+
1
]
=
ROUND_POWER_OF_TWO
(
p
[
2
]
+
p
[
3
]
*
2
+
p
[
3
]
,
2
);
predictor
[
2
*
ps
+
2
]
=
predictor
[
2
*
ps
+
3
]
=
predictor
[
3
*
ps
+
0
]
=
predictor
[
3
*
ps
+
1
]
=
predictor
[
3
*
ps
+
2
]
=
predictor
[
3
*
ps
+
3
]
=
p
p
[
3
];
predictor
[
3
*
ps
+
3
]
=
p
[
3
];
}
break
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment