Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Кодирование блоками с усечением (BTC) — это тип метода сжатия изображений с потерями для изображений в оттенках серого. Он разделяет исходные изображения на блоки, а затем использует квантизатор для уменьшения количества уровней серого в каждом блоке, сохраняя при этом среднее значение и стандартное отклонение неизменными. Это ранний предшественник популярной аппаратной техники DXTC, хотя метод сжатия BTC был впервые адаптирован для цветных изображений задолго до DXTC с использованием очень похожего подхода, называемого сжатием цветовых ячеек. BTC также был адаптирован для сжатия видео. BTC был впервые предложен профессорами Митчеллом и Делпом в Университете Пердью. Другой вариант BTC — кодирование блоками с усечением абсолютных моментов (AMBTC), в котором вместо стандартного отклонения сохраняется первый абсолютный момент вместе со средним значением. AMBTC вычислительно проще, чем BTC, и обычно обеспечивает меньшую среднеквадратичную ошибку (MSE). AMBTC был предложен Максимо Лема и Робертом Митчеллом. Использование подблоков размером 4×4 пикселя обеспечивает степень сжатия 4:1, предполагая использование 8-битных целочисленных значений при передаче или хранении. Более крупные блоки позволяют достичь большей степени сжатия («a» и «b» значения распределяются по большему количеству пикселей), однако качество также снижается с увеличением размера блока из-за особенностей алгоритма. Алгоритм BTC использовался для сжатия изображений, полученных с марсохода Mars Pathfinder.
Block Truncation Coding (BTC) is a type of lossy image compression technique for greyscale images. It divides the original images into blocks and then uses a quantizer to reduce the number of grey levels in each block whilst maintaining the same mean and standard deviation. It is an early predecessor of the popular hardware DXTC technique, although BTC compression method was first adapted to color long before DXTC using a very similar approach called Color Cell Compression. BTC has also been adapted to video compression. BTC was first proposed by Professors Mitchell and Delp at Purdue University. Another variation of BTC is Absolute Moment Block Truncation Coding or AMBTC, in which instead of using the standard deviation the first absolute moment is preserved along with the mean. AMBTC is computationally simpler than BTC and also typically results in a lower Mean Squared Error (MSE). AMBTC was proposed by Maximo Lema and Robert Mitchell. Using sub blocks of 4×4 pixels gives a compression ratio of 4:1 assuming 8 bit integer values are used during transmission or storage. Larger blocks allow greater compression ("a" and "b" values spread over more pixels) however quality also reduces with the increase in block size due to the nature of the algorithm. The BTC algorithm was used for compressing Mars Pathfinder's rover images.
Декодер
Теперь на стороне декодера нам нужно только переназначить значения "a" и "b" пикселям 1 и 0. Это даст нам следующий блок:
Now at the decoder side all we need to do is reassign the "a" and "b" values to the 1 and 0 pixels. This will give us the following block:
Как видно, блок был реконструирован, используя два целочисленных значения "a" и "b" (поскольку изображения не предназначены для хранения чисел с плавающей точкой). При изучении теории это подходящий момент для вычисления среднего значения и стандартного отклонения реконструированного блока. Они должны совпадать с исходными средним значением и стандартным отклонением. Важно использовать целые числа, иначе возникнет значительная ошибка квантования, поскольку в кодировщике мы уже квантовали все значения в целые числа.
As can be seen, the block has been reconstructed with the two values of "a" and "b" as integers (because images aren't defined to store floating point numbers). When working through the theory, this is a good point to calculate the mean and standard deviation of the reconstructed block. They should equal the original mean and standard deviation. Remember to use integers, otherwise much quantization error will become involved, as we previously quantized everything to integers in the encoder.