0%

Problem 287

Quadtree encoding (a simple compression algorithm)

The quadtree encoding allows us to describe a 2N×2N black and white image as a sequence of bits (0 and 1). Those sequences are to be read from left to right like this:

• the first bit deals with the complete 2N×2N region;
• “0” denotes a split:
the current 2n×2n region is divided into 4 sub-regions of dimension 2n-1×2n-1,
the next bits contains the description of the top left, top right, bottom left and bottom right sub-regions - in that order;
• “10” indicates that the current region contains only black pixels;
• “11” indicates that the current region contains only white pixels.

Consider the following 4×4 image (colored marks denote places where a split can occur):

This image can be described by several sequences, for example:
001010101001011111011010101010”, of length 30, or
0100101111101110”, of length 16, which is the minimal sequence for this image.

For a positive integer N, define DN as the 2N×2N image with the following coloring scheme:

• the pixel with coordinates x = 0, y = 0 corresponds to the bottom left pixel,
• if (x - 2N-1)2 + (y - 2N-1)2 ≤ 22N-2 then the pixel is black,
• otherwise the pixel is white.

What is the length of the minimal sequence describing D24 ?

• 第一个比特位描述完整的2N×2N区域；
• “0”表示对当前区域进行分割：
将当前的2n×2n区域分割为4个2n-1×2n-1区域，
接下来的比特位按照左上、右上、左下、右下的顺序分别描述这四个区域；
• “10”表示当前区域只包含黑色像素；
• “11”表示当前区域只包含白色像素。

001010101001011111011010101010”，长度为30，或者
0100101111101110”，长度为16，后者是描述这幅图象的最短比特串。

• 左下角的像素其坐标为x = 0，y = 0，
• 如果(x - 2N-1)2 + (y - 2N-1)2 ≤ 22N-2，那么该坐标的像素为黑色，
• 否则该坐标的像素为白色。