История изменений
Исправление SZT, (текущая версия) :
Кстати, зря ты считаешь что такой подход с упаковкой чисел не нужен. Я нашел ему очень хорошее применение. Речь идет о сжатии изображений и видео. Тут только надо как следует подумать над алгоритмом. Взять например какое-нибудь примитивное greyscale изображение 8 бит на один пиксель. Плавное изменение так легко закодировать в меньше чем 8 бит, если считать разность значений пикселей с соседними по определенным правилам. Например простенький градиентик:
char arr[5][5] =
{
{0x00, 0x02, 0x04, 0x06, 0x07},
{0x01, 0x03, 0x05, 0x07, 0x08},
{0x02, 0x04, 0x06, 0x08, 0x09},
{0x03, 0x05, 0x07, 0x09, 0x0A},
{0x04, 0x06, 0x08, 0x0A, 0x0C},
}
В том примере используется такое правило
0<<<<<...
^^^^^^...
^^^^^^...
.........
хотя можно сделать нечто вроде
.......
.vvvv<.
.>vv<<.
.>>0<<.
.>>^^<.
.>^^^^.
.......
Исправление SZT, :
Кстати, зря ты считаешь что такой подход с упаковкой чисел не нужен. Я нашел ему очень хорошее применение. Речь идет о сжатии изображений и видео. Тут только надо как следует подумать над алгоритмом. Взять например какое-нибудь примитивное greyscale изображение 8 бит на один пиксель. Плавное изменение так легко закодировать в меньше чем 8 бит, если считать разность значений пикселей с соседними по определенным правилам. Например простенький градиентик:
char arr[5][5] =
{
{0x00, 0x02, 0x04, 0x06, 0x07},
{0x01, 0x03, 0x05, 0x07, 0x08},
{0x02, 0x04, 0x06, 0x08, 0x09},
{0x03, 0x05, 0x07, 0x09, 0x0A},
{0x04, 0x06, 0x08, 0x0A, 0x0C},
}
В том примере используется такое правило
0<<<<<...
^^^^^^...
^^^^^^...
.........
хотя можно сделать нечто вроде
..vvv..
.>vv<<.
.>>0<<.
.>>^^<.
..^^^..
Исходная версия SZT, :
Кстати, зря ты считаешь что такой подход с упаковкой чисел не нужен. Я нашел ему очень хорошее применение. Речь идет о сжатии изображений и видео. Тут только надо как следует подумать над алгоритмом. Взять например какое-нибудь примитивное greyscale изображение 8 бит на один пиксель. Плавное изменение так легко закодировать в меньше чем 8 бит, если считать разность значений пикселей с соседними по определенным правилам. Например простенький градиентик:
char arr[5][5] =
{
{0x00, 0x02, 0x04, 0x06, 0x07},
{0x01, 0x03, 0x05, 0x07, 0x08},
{0x02, 0x04, 0x06, 0x08, 0x09},
{0x03, 0x05, 0x07, 0x09, 0x0A},
{0x04, 0x06, 0x08, 0x0A, 0x0C},
}
В том примере используется такое правило
0<<<<<...
^^^^^^...
^^^^^^...
.........
хотя можно сделать нечто вроде
......
......
......