Алгоритмы RLE - это сокращенная запись повторяющихся символов Такие алгоритмы применяются, к примеру, в форматах BMP, PCX Кое-как они подходят для изображений, но для текста и видео - нет. == Запись RLE - потока == [1] Выбрать любой байт-код в качестве признака повторения [2] Взять следующий байт с входного потока [3] Взятый байт = признаку повторения? [4] ДА: Вывести в выходной поток два одинаковых байта [5] НЕТ: Взятый байт есть в буфере? [6] ДА: Поместить байт в буфер, перейти к [2] [7] НЕТ: В буфере 1 байт? [8] ДА: Вывести буфер на выход. В буфер поместить новый байт [9] НЕТ: Вывети признак повторения. Вывести [10] Вывести 1 байт из буфера [11] Вывести кол-во повторений [12] В буфер поместить новый 1 байт [13] Если есть еще байты на входе, перейти к [2] [14] Если байтов нет - сбросить буфер на выход по аналогии с [7]-[11] == Чтение RLE - потока == [1] Взять байт со входа, есть есть байт на входе [2] Байт не равен признаку повторения? [3] ДА: Вывести байт на выход [4] Перейти к [1] [5] НЕТ: Следующий байт равен признаку повторения? [6] ДА: Вывести на выход 1 признак повторения [7] Перейти к [1] [8] НЕТ: Взять следующий байт - "что повторять" - А [9] Взять следующий байт - "сколько раз повторять" - Б [10] Вывести на выход байт А в количестве раз Б [11] Перейти к [1]ывести байт на выход [4] Перейти к [1] [5] НЕТ: Следующий байт равен признаку повторения? [6] ДА: Вывести на выход 1 признак повторения [7] Перейти к [1] [8] НЕТ: Взять следующий байт - "что повторять" - А [9] Взять следующий байт - "сколько раз повторять" - Б [10] Вывести на выход байт А в количестве раз Б [11] Перейти к [1]
Справочник алгоритмов v0.05 © 2007-2025 Igor Salnikov aka SunDoctor