Pull to refresh
  • by relevance
  • by date
  • by rating

Видеоподкастерам на заметку: создавайте FLV самостоятельно

Data compression *
Tutorial
Я давно заметил (впрочем, вон там есть и свежий пример того), что некоторые видеоподкастеры предпочитают не заливать своё видео на некоторые популярные видеохостинги (такие, как YouTube или Google Video), заранее зная, что эти видеохостинги если и принимают видеозаписи любого формата, то у себя преобразуют их (со значительным сжатием) в формат FLV, после чего мелкие детали подкаста расплываются во Flash-видеопроигрывателе.

Напомню поэтому, что сайт RuTube отличается от вышеупомянутых видеохостингов в лучшую сторону тем, что на него также можно закачивать (для последующего воспроизведения) и заранее подготовленные видеоролики в формате FLV, которые тогда на этом сайте никак не подвергаются дальнейшему преобразованию и сжатию.

При помощи программы Any Video Converter Free Version (или других аналогичных простых бесплатных средств) можно заранее изготовить FLV-видеоролик необходимой длины и качества, чтобы затем закачать его на RuTube.

Читать дальше →
Total votes 22: ↑8 and ↓14 -6
Views 691
Comments 3

Полезные сведения о сжатии ZIP-архивов (и документов OpenOffice, которые по сути также ZIP-архивы)

Software
Johan пишет о том, что возможно улучшить ZIP-сжатие, просто поместив один ZIP внутри другого.

(Читая эту его запись, нетрудно подметить, что именно так при распространении расширений к Файерфоксу работает архив JAR внутри архива XPI.)

Johan пишет также, что можно улучшить сжатие документов OpenOffice (которые являются XML-файлами в ZIP-архивах), если переупаковать их при помощи архиватора 7-Zip, который создаёт ZIP-архивы более компактные, нежели создаваемые прочими ZIP-архиваторами.

(Лично же мне по этому поводу удивительно, почему в открытый OpenOffice до сих пор никто не добавил ещё открытый код 7-Zip. Остаётся лишь диву даваться.)
Total votes 16: ↑7 and ↓9 -2
Views 328
Comments 9

Пользователи и сжатие данных

Data compression *
Я не хочу разжигать очередную священную войну, но комментарии на мой последний пост о «сжатии» в RAR навеяли на некоторое количество мыслей и рассуждений, которые я хочу донести до сообщества. Но перед этим хочу отметить, что я работаю под Windows'ем, поэтому всё ниже изложенное будет касаться именно его. Плюс к прочему попрошу отнестись к топику, как к информации к размышлению, а не как к красной тряпке для быка. Итак, давайте поговорим о форматах сжатия данных с пользовательской точки зрения.
Читать дальше →
Total votes 64: ↑39 and ↓25 +14
Views 14K
Comments 110

Работа с zip архивами в .NET

Lumber room
Недавно мне в моем .NET/С# проекте подребовался функционал создания и распаковки zip архивов. Казалось бы, очень простые операции, учитывая что Windows Explorer уже давно умеет работать с zip файлами и я предположил, что API для работы с ними Microsoft предоставляет.

Отсутствие классов для работы с zip в .NET фреймворк большим сюрпризом для меня не стало, но и не сильно обрадовало. Отсутствие функционала для работы с zip в различных unmanaged API Windows (WinAPI, COM интерфейсы и т.д) меня раздосадовало. На данный момент весь исходный код проекта разработан мной и включать дополнительный third-party .dll файл в дистрибутив из за простейшего функционала мне не хотелось.

исследования и решение
Total votes 13: ↑6 and ↓7 -1
Views 2.4K
Comments 15

Считаем буквы в произведениях русской литературы

Lumber room
Вы когда-нибудь задавались вопросом, какая буква русского алфавита встречается в текстах чаще остальных? Именно поиском ответа на этот вопрос я и собираюсь заняться. A пока, вы не знаете результатов моего маленького исследования, я предлагаю вам угадать пять самых распространенных букв нашего алфавита. Готовы?
Читать дальше →
Total votes 47: ↑27 and ↓20 +7
Views 1.4K
Comments 43

xz — сила сжатия LZMA уже в твоей консоли

Data compression *
Многие наверное уже знают про утилитку для компрессии/декомпрессии xz. Но еще больше не знают. Поэтому написал этот ознакомительный топик.

xz — формат сжатия данных, наряду с gzip, bzip2 вошедший в gnu-шные приложения.
Использует алгоритм LZMA, тот же что и в 7z, а это значит что можно сильнее сжать многие виды данных, типа текста, бинарные еще не сжатые данные по сравнению с стандартными, упомянутыми выше.
xz используется в новом rpm 4.7.2 для компрессии архивов .cpio в rpm-пакетах (используется с Fedora 12).
В ArchLinux вообще используется .tar.xz в качестве пакета.
В GNU tar появились опции -J --lzma, которые исполняют туже роль что и -z для gzip, -j для bzip2
Читать дальше →
Total votes 15: ↑11 and ↓4 +7
Views 10K
Comments 11

Компрессия данных в системах промышленной автоматизации. Алгоритм SwingingDoor

Algorithms *
Здравствуйте, уважаемые читатели. Хочу представить вашему вниманию описание алгоритма компрессии данных SwingingDoor и рассказать о том, как мы его применяем.



По роду деятельности я занимаюсь разработкой решений в области промышленной автоматизации, а более конкретно — разработкой информационных систем производства. Их назначение — предоставлять информацию для людей и других систем. Они предоставляют оперативные, самые последние данные, а также данные за прошлое. Данные поступают из многочисленных систем контроля (СК), количество параметров измеряется десятками тысяч.

Зачем использовать компрессию, почему бы не хранить все данные?
Читать дальше →
Total votes 70: ↑66 and ↓4 +62
Views 7.4K
Comments 43

Использование GPGPU для сжатия данных (Часть I)

High performance *
Sandbox
Здравствуй, уважаемое хабра-сообщество.

Многие, наверное, уже слышали о вычислениях на GPGPU(видеокартах), на текущий момент существует много реализаций этой техники программирования. Мы остановимся на двух из них — это небезызвестная CUDA от компании Nvidia, и я думаю чуть менее популярный, но также известный фреймворк OpenCL. На хабре уже есть достаточное количество статей, в которых описан основной принцип работы этих технологий, поэтому мы не будем заострять на этом внимание. В статье я хочу поделиться результатами, полученными при использовании GPGPU в сравнении с CPU для сжатия данных.
Читать дальше →
Total votes 28: ↑27 and ↓1 +26
Views 9.8K
Comments 25

Нейросетевое сжатие данных

.NET *
Sandbox
imageВ этой статье я хочу поведать о еще одном классе задач, решаемых нейронными сетями – сжатии данных. Алгоритм, описанный в статье, не претендует на использование в реальных боевых условиях по причине существования более эффективных алгоритмов. Сразу оговорюсь, что речь пойдет только о сжатии без потерь.
Большинство источников в Интернете утверждают, что есть 3 основных популярных архитектур нейронных сетей, решающих задачу сжатия данных.

1. Сеть Кохонена и ее вариации. Часто используется для сжатия изображений с потерей качества, не является алгоритмом сжатия без потерь.

2. Ассоциативная память (Сеть Хопфилда, Двунаправленная ассоциативная память и др.). «Сжатие данных» для этого класса сетей является «фичей», побочным явлением, так как главным их предназначением есть восстановление исходного сигнала/образа из зашумленных/поврежденных входных данных. Чаще всего, на вход этих сетей поступает зашумленный образ той же размерности, потому о сжатии данных речь не идет.

3. Метод «Бутылочного горлышка».

О последнем методе и пойдет речь в статье.
Читать дальше →
Total votes 41: ↑38 and ↓3 +35
Views 20K
Comments 25

FreeArc — современный архиватор

Data recovery *
Столько всего хочется хранить на жестком диске: фильмы, музыку, программы, документы… Но, к сожалению, винчестер – не резиновый. Заставить данные потесниться смогут программы-архиваторы. Сейчас довольно сильно распространены 7Zip и WinRAR, но в данный момент по эффективности все же лидирует FreeArc. По результатам одного из самых авторитетных тестов FreeArc занял три первых места, причём c большим отрывом от соперников:


Читать дальше →
Total votes 104: ↑93 and ↓11 +82
Views 28K
Comments 196

Структура Radix Tree для сжатия данных

C++ *Algorithms *
Этот топик повествует об использовании Radix Tree на практическом примере. Radix Tree или дерево остатков — это структура данных, формируемая по принципу хранение значений в листовом узле. Промежуточные узлы представляют собой элемент конечного значения. Это может быть бит для чисел, символ для строк или цифра для номера, как в примере ниже. Приведенный алгоритм сжатия с использованием Radix Tree используется в реальной embeded системе, для хранения параметров телефонного файрвола.
Читать дальше →
Total votes 22: ↑19 and ↓3 +16
Views 12K
Comments 5

Простейшие алгоритмы сжатия: RLE и LZ77

Algorithms *
Tutorial
Давным-давно, когда я был ещё наивным школьником, мне вдруг стало жутко любопытно: а каким же волшебным образом данные в архивах занимают меньше места? Оседлав свой верный диалап, я начал бороздить просторы Интернетов в поисках ответа, и нашёл множество статей с довольно подробным изложением интересующей меня информации. Но ни одна из них тогда не показалась мне простой для понимания — листинги кода казались китайской грамотой, а попытки понять необычную терминологию и разнообразные формулы не увенчивались успехом.

Поэтому целью данной статьи является дать представление о простейших алгоритмах сжатия тем, кому знания и опыт пока ещё не позволяют сходу понимать более профессиональную литературу, или же чей профиль и вовсе далёк от подобной тематики. Т.е. я «на пальцах» расскажу об одних из простейших алгоритмах и приведу примеры их реализации без километровых листингов кода.
Читать дальше →
Total votes 102: ↑95 and ↓7 +88
Views 102K
Comments 8

Сжатие информации без потерь. Часть первая

Algorithms *
Доброго времени суток.
Сегодня я хочу коснуться темы сжатия данных без потерь. Несмотря на то, что на хабре уже были статьи, посвященные некоторым алгоритмам, мне захотелось рассказать об этом чуть более подробно.
Я постараюсь давать как математическое описание, так и описание в обычном виде, для того, чтобы каждый мог найти для себя что-то интересное.

В этой статье я коснусь фундаментальных моментов сжатия и основных типов алгоритмов.
Читать дальше →
Total votes 40: ↑36 and ↓4 +32
Views 65K
Comments 18

Сжатие информации без потерь. Часть вторая

Algorithms *
Первая часть.

Во второй части будут рассмотрены арифметическое кодирование и преобразование Барроуза-Уилера (последнее часто незаслуженно забывают во многих статьях). Я не буду рассматривать семейство алгоритмов LZ, так как про них на хабре уже были неплохие статьи.

Итак, начнем с арифметического кодирования — на мой взгляд, одного из самых изящных (с точки зрения идеи) методов сжатия.
Читать дальше →
Total votes 30: ↑28 and ↓2 +26
Views 19K
Comments 7

Оптимизация длинных списков логических значений на JavaScript

Website development *JavaScript *Client optimization *
Sandbox
Очень часто в веб-разработке (и в программировании вообще) необходимо сохранить длинный список логических значений (yes/no, true/false, checked/unchecked и подобные) в виде строк. К примеру, вы захотите записать такие данные с помощью localStorage, в cookie, или отправить их в теле HTTP запроса. У меня возникала такая необходимость сотни раз.
Читать дальше →
Total votes 24: ↑23 and ↓1 +22
Views 3.4K
Comments 19

Вейвлет-сжатие «на пальцах»

Image processing *
Tutorial


Вейвлеты сейчас на слуху. Даже неискушённые в математике люди наверняка слышали, что с их помощью удаётся сжимать изображения и видео сохраняя приемлемое качество. Но что же такое вейвлет? Википедия отвечает на этот вопрос целым ворохом формул за которыми не так-то легко увидеть суть.

Попробуем на простых примерах разобраться, откуда же вообще берутся вейвлеты и как их можно использовать при сжатии. Предполагается, что читатель знаком с основами линейной алгебры, не боится слов вектор и матрица, а также умеет их перемножать. (А во второй части даже попробуем что-то запрограммировать.)

Читать дальше →
Total votes 169: ↑168 and ↓1 +167
Views 163K
Comments 58

Сжатие данных при передаче от браузера к серверу

Ajax *JavaScript *
Tutorial
Обрабатываете много данных в браузере?
Хотите отправлять их обратно на сервер?
Да так, чтобы отправлялось побыстрее и помещалось в один http запрос?

В статье я покажу как мы решили эту задачу в новом проекте, используя сжатие и современные возможности javascript.

Читать дальше →
Total votes 68: ↑64 and ↓4 +60
Views 35K
Comments 37

Shortest Common Superstring Problem

Java *Algorithms *
Sandbox
Проблема кратчайшей общей надстроки формулируется следующим образом: найти кратчайшую строку, такую, что каждая строка из заданного набора являлась бы её подстрокой. Эта проблема имеет место как в биоинформатике (задача сборки генома в общем случае) так и в сжатии данных (вместо данных хранить их надстроку и последовательность пар, вида (индекс вхождения, длина)).

Когда я искал в сети информацию по этой проблеме и её решению на русском языке — находилась лишь пара постов про биоинформатике, где вскользь упоминаются эти слова. Кода (кроме жадного алгоритма), конечно же, тоже не было. Разобравшись в проблеме, этот факт сподвиг на статью здесь.

Осторожно, 4 мегабайта!
Читать дальше →
Total votes 32: ↑30 and ↓2 +28
Views 9.6K
Comments 5

Cognitive PDF/A – технология оцифровки текстовых документов для публикации в интернете и долговременного архивного хранения

Cognitive Technologies corporate blog Algorithms *

Привет Хабр!


Мы продолжаем публикации о технологиях оптического распознавания (OCR, ICR) и понимания документов, разработанных специалистами компании Cognitive Technologies. Сегодня наш рассказ о технологиях оцифровки текстовых документов Cognitive PDF/A.

В бизнес-сфере достаточно часто приходится сканировать бумажные документы с целью последующей пересылки по электронной почте или архивного хранения. При качественном сканировании получившиеся изображения-образы зачастую оказываются достаточно большого размера. Например, документ формата А4, отсканированный в цветном режиме при разрешении 300 DPI, имеет размер порядка 25 Мб. Использование файлов таких больших размеров неэффективно в электронных архивах, поэтому все больший интерес обретают технологии сжатия получившихся электронных образов. Классические технологии сжатия изображений (JPEG, RLE, Deflate и т.п.) не применимы, так как в общем случае документы могут содержать как монохромный текст, так и полноцветные графические области. Алгоритмы сжатия изображений без потерь, результативные для монохромных текстов, неэффективны для полноцветной графики, в то время как сжатие с потерями демонстрирует высокие показатели для цветных изображений, однако сильно искажает текстовую информацию (Рис. 1). Поэтому обычно для сжатия изображений такого типа используют комбинированный подход.

image
Читать дальше →
Total votes 26: ↑17 and ↓9 +8
Views 11K
Comments 9

Распознавание гильоширных элементов на примере паспорта РФ

Cognitive Technologies corporate blog Algorithms *
Recovery mode
Гильош – это специальная технология защиты банкнот, документов, ценных бумаг и других видов полиграфической продукции (билетов, акцизных марок, сертификатов и многих других документов государственного масштаба).

Защита документов обеспечивается путем нанесения на бланки сложных композиций различных гильоширных элементов. Гильоширный элемент представляет собой замысловатый рисунок из множества многократно пересекающихся тончайших кружевных линий (рисунок 1). Обычно такие элементы представлены разного рода защитными сетками, розеттами, бордюрами, виньетками и уголками. Гильош может быть как симметричным, так и асимметричным по своему дизайну.

Согласно существующим нормативам, гильоширные элементы должны занимать не менее 70% площади ценных бумаг.
Причем из этой площади большая часть должна содержать многоцветные гильоширные композиции.

Читать дальше →
Total votes 61: ↑57 and ↓4 +53
Views 30K
Comments 7