# Difference between revisions of "H.264 Prediction"

This page documents the various prediction methods used in H.264 and related formats such as Sorenson Video 3 and RealVideo 4.

## 4x4 Prediction Modes

### Vertical

• H.264: mode 0
• SVQ3: mode 0
• RV40: mode 0
```  D | T0  T1  T2  T3
---------------------
L0 | T0  T1  T2  T3
L1 | T0  T1  T2  T3
L2 | T0  T1  T2  T3
L3 | T0  T1  T2  T3
```

### Horizontal

• H.264: mode 1
• SVQ3: mode 1
• RV40: mode 1
```  D | T0  T1  T2  T3
---------------------
L0 | L0  L0  L0  L0
L1 | L1  L1  L1  L1
L2 | L2  L2  L2  L2
L3 | L3  L3  L3  L3
```

### DC

• H.264: mode 2
• SVQ3: mode 2
• RV40: mode 2
```  D | T0  T1  T2  T3
---------------------
L0 |  Z   Z   Z   Z
L1 |  Z   Z   Z   Z
L2 |  Z   Z   Z   Z
L3 |  Z   Z   Z   Z
```

where Z is computed as:

```Z = (T0 + T1 + T2 + T3 + L0 + L1 + L2 + L3 + 4) / 8
```

### Diagonal Down/Left

• H.264: mode 3
• SVQ3: mode 3
• RV40: mode 3
```  D | T0  T1  T2  T3  T4  T5  T6  T7
-------------------------------------
L0 |  a   b   c   d
L1 |  b   c   d   e
L2 |  c   d   e   f
L3 |  d   e   f   g
```

where:

``` a = (T0 + 2*T1 + T2 + 2) / 4
b = (T1 + 2*T2 + T3 + 2) / 4
c = (T2 + 2*T3 + T4 + 2) / 4
d = (T3 + 2*T4 + T5 + 2) / 4
e = (T4 + 2*T5 + T6 + 2) / 4
f = (T5 + 2*T6 + T7 + 2) / 4
g = (T6 * 3*T7      + 2) / 4
```