Vertical Differencing and Averaging

Since images are 2-dimensional, we have to do this averaging and
differencing in two dimensions as well. We can first do it within
every row, transforming our 256x256 image into two arrays (one of
averages, one of differences) of 256x128 entries each; for each of these we
can then do the same vertically, so that in the end we have four
arrays of 128x128. Here is a simple example:

45

47

101

101

46

46

103

103

47

47

103

101

48

48

55

55

After averaging and differencing within every row:

averages

differences

46

101

-2

0

46

103

0

0

47

102

0

2

48

55

0

0

After averaging and differencing in two directions:

horizontal averages

horizontal differences

vertical averages

46

102

-1

0

47.5

78.5

0

1

vertical differences

0

-2

-2

0

-1

47

0

2

In these four little arrays, the top left one corresponds to averaging in both
directions; this array typically has sizeable entries for all
pixels. The other three arrays typically have most of their entries
very small, and can thus be highly compressed.

Practice
Averaging and Differencing

Try to perform averaging and differencing for the following example:

54

56

22

22

108

108

25

27

99

101

0

2

100

102

10

2

Input the answer and press tab or click in another window. After averaging and differencing within every row: