Category: техника

Category was added automatically. Read all entries about "техника".

guilin

На велике по Лондону

Британцы так любят кататься на велике, что даже страну свою назвали Великобритания.


Нашел недавно на амазоне недорогую экшн камеру, купился на обещания того, что там гироскоп и всяческая стабилизация. Попробовал с ней на велосипеде поехать, но увы, трясется все совершенно ужасно. Что меня убедило таки взять новую GoPro. И вот на фоне обычного порошка обычной камеры становится видно, насколько это вообще черная магия. Как они добиваются такой гладкости, поразительно просто.

Сделал большой круг до центра города и обратно. Смонтировал, сжав по времени малоинтересные участки.

Путь от дома до более-менее центра:


Один очень симпатичный район там, и от него к Гайд-парку:


От Гайд-парка к Риджент стрит, Пикадилли, Трафальгарской площади, парламенту и далее:
Collapse )
А, еще с неожиданной проблемой столкнулся. На новых ноутах при подключении GoPro по USB компьютер ее не видит. Но если вместо поставляемого с камерой провода взять USB-C to USB 3.1 Gen 2 Cable, тогда все работает. Вот вам и USB.
office

Kids these days

Дочке еще нет двух лет. Планшет она уже давно освоила: сама его включает, запускает разные игры (продираясь в них через несколько экранов от заставки до экшна), включает мультики, меняет громкость. А недавно смотрим: подходит к ноутбуку (с линуксом и KDE, btw) и пальчиком так по тачпаду раз-раз, двигает указатель, перешла с текущего таба в браузере на таб с ютюбом, там выбирает себе мультики, находит значок Play, включает-останавливает, меняет громкость, опять же. А ведь это уже не сенсорный экран, где куда нажал, там и реагирует, это осознанное и ловкое управление курсором на экране через действия на тачпаде. Я впечатлен.
office

flif

Интернеты забурлили в связи с публикацией Free Lossless Image Format; там компрессор, декларирующий чудеса беспотерьного сжатия, да еще с хорошим свойством прогрессивной загрузки - если качать не всю картинку, а только начало файла, то все равно можно ей любоваться, просто в худшем качестве.

Сразу зачесались руки сравнить со своей поделкой. У меня ж есть видеокодек ScreenPressor, часть которого для intra-frame'ов может использоваться для отдельных картинок. Взял картинку из своего прошлогоднего примера, на которой гонял браузерные реализации (скриншот 960х540, 24 бита цвет, там текст, немного графики и мужик). Получилось:

BMP - 1555254 bytes (uncompressed)

PNG - 176469 bytes (compression ratio 8.8 to 1)

FLIF - 157515 bytes (9.9 to 1)

SPI - 149321 bytes (10.4 to 1) // ScreenPressor I-frame
Здеся оно разжимается в браузере.
По крайней мере эту картинку мой жмет сильнее. Уфф. :)

Upd: рано обрадовался, с опцией -n (non-interlaced) FLIF сжал до 134326.
office

времена

Открыл тут заметку.
Девайс с 1 GHz или около того процессором, 2д игрушка с 1 (одним, ОДНИМ!) маленьким движущимся объектом, и у людей возникают большие сложности с тем, чтобы получить хотя бы 25 кадров в секунду. Зато хаскель и FRP.Yampa, модно, молодежно.
office

IDFPC: behind the scenes

Готовить ICFPC-like контест оказалось в несколько раз интереснее, чем участвовать, ибо занятных задач пришлось решить намного больше. Задача была устроена в виде квеста из нескольких этапов, где более ранние рассказывают о более поздних, поэтому готовилось все в другом порядке. Сперва был сделан фрактальный компрессор, который сжал заветную картинку до 40 КБ (об этом в предыдущем посте). Затем готовился этап с векторным текстом. Для этого был сделан редактор шрифта. Каждая буква состояла из набора отрезков, точки которых лежат на фиксированной сетке:



Редактор проверял, чтобы в каждой точке встречалось не более двух отрезков. Это дает возможность нарисовать все, посетив каждую точку не более одного раза, что позволило использовать тот формат с хранением в точках изменений текущего вектора. Имея готовый шрифт, был сделан редактор текстов:
Collapse )
office

Часть 5. Context Mixing

В предыдущих частях мы без особенных усилий построили компрессор, который жмет сильнее, чем zip, rar, bz2 и 7z в их режимах по-умолчанию. Однако примененным технологиям хоть и не 30 лет, как LZ, но не меньше 15. Куда продвинулся прогресс за это время?
Collapse )
office

Часть 4. Вероятность ухода

(начало цикла здесь)

В предыдущей части мы довольно простыми наблюдениями и соображениями пришли к алгоритму PPM. Большая часть данных в нем сжимается в длинных контекстах, в большинстве из которых встречается не так много различных символов. При этом очень важную роль играет псевдо-символ ухода, обозначающий все еще невстреченные в данном контексте символы. Если переоценить его вероятность, то часто встречающиеся в данном контексте символы будут иметь меньшую вероятность и будут сжаты хуже. Если же недооценить вероятность ухода, то при появлении новых символов в контексте на кодирование символа ухода уйдет слишком много бит. Нужно найти наиболее адекватную оценку вероятности ухода, но фактически это значит, что нам нужно оценить вероятность события, которое еще ни разу не наступало (вероятность встречи символа, который еще ни разу не встречался). Классический тервер тут бессилен. Можно поиграть в баесианца и применить правило Лапласа или другую оценку, основанную на произвольно выбранном априорном распределении вероятностей. Collapse )
office

Часть 3. Контекстное моделирование

(начало серии постов здесь)

В предыдущей части мы увидели, что вычисленная в лоб по вероятностям символов информационная энтропия файла дает оценку снизу по сжатию для оперирующего этими вероятностями арифметического кодера, однако простой zip умудряется сжать текст в полтора раза лучше. Все дело в том, что до этого момента мы рассматривали лишь индивидуальные символы, не обращая внимания на то, что их порядок не совсем случаен: текст состоит не из произвольной последовательности символов, а из слов языка и знаков пунктуации. Если мы прочитали последовательность букв "функц", то можем быть почти уверены, что следующая буква будет "и". Когда в английском тексте встречается буква "q", то если этот текст не про Аль-Каиду, следующая буква почти наверняка будет "u". Как это можно формализовать? Рассматривая текущий символ как случайную величину Х, можно предыдущий символ считать другой наблюдаемой одновременно с Х случайной величиной Y. Понятно, что мат.ожидание и дисперсия у них будут одинаковые, но раз они как-то связаны, можно предположить, что между ними будет корреляция. Попробуем посчитать коэффициенты корреляции для символов i и i-k:Collapse )
office

Часть 2. Информационная энтропия

В предыдущей части мы на ровном месте переизобрели арифметическое сжатие и получили формулу среднего количества бит на символ при оптимальном сжатии для случая статического разбиения на интервалы. Внезапно она внешне совпала с Шенноновской формулой информационной энтропии.

Сам Шеннон получил свою знаменитую формулу совсем иначе. Он рассматривал источники, выдающие сообщения с вероятностями Pi, и искал такую функцию H, которая бы выражала объем информации в сообщении, была бы мерой неопределенности.

К искомой функции он предъявлял следующие требования:
1. H должна быть непрерывной функцией от Pi.
2. Если все сообщения равновероятны, т.е. Pi = 1/N, то H(N) должна монотонно возрастать c ростом N: чем больше вариантов разных равновероятных сообщений, тем больше информации несет одно сообщение.
3. Если сообщение разбивается на несколько последовательно идущих, то мера Н информации в нем должна быть взвешенной суммой значений Н для частей. Например, если нам нужно передать сегодняшнее число, то не важно, пошлем мы месяц и день в одном сообщении или сначала месяц, а потом день, количество переданной информации должно быть одинаковым в обоих вариантах. Если вероятности и сообщения представить в виде дерева, где в узлах стоят сообщения, а дугам приписаны вероятности посылки следующих сообщений (например, из корня идут дуги к вариантам первого бита сообщения, из них - к вариантам второго бита и т.д., примерно как при построении дерева для кодов Хаффмана),

то
H(узла) = сумма по исходящим веткам от: P(ветки)*H(ветки).

Оказывается, этих требований достаточно, чтобы искомую функцию вывести.Collapse )