Рубрика «декодирование»

Чаты на вебсокетах в iOS, если у вас WAMP - 1

Разработка заняла примерно 9 месяцев, а я занимался реализацией клиент-серверного общения по сокету для iOS. Особенности нашей ситуации:

  1. Поддержка старых версий iOS, где нативных методов для общения по сокетам ещё не было — пришлось искать рабочую библиотеку и фиксить баги.
  2. Протокол WAMP на бэкенде — предстояло научить клиент декодировать any, декодировать протоколы и создать объект, который отвечает за отправку и приём сообщений.

Примечание: описанные ниже способы декодирования, можно применить и в других задачах.
Читать полностью »

В настоящее время существует не так уж много стандартов связи, которые с одной стороны, любопытны и интересны, с другой стороны, их описание не занимает 500 страниц в формате PDF. Одним из таких, несложных для декодирования, является сигнал VHF Omni-directional Radio Beacon (VOR), используемый в аэронавигации.

Определяем направление на аэропорт с помощью RTL-SDR и GNU Radio - 1
VOR Beacon (с) wikimedia.org

Для начала вопрос читателям — как сформировать сигнал так, чтобы с помощью ненаправленной приемной антенны можно было определять направление? Ответ под катом.
Читать полностью »

Сегодня мы продолжим тему SDR-приема и обработки сигналов. Приемом аналогового ТВ я заинтересовался совершенно случайно, после вопроса одного из читателей. Однако это оказалось не так просто, из-за банального отсутствия образцов сигнала — во многих местах аналоговое ТВ уже отключено. Читатель даже прислал запись с RTL-SDR, однако ширина записи у RTL порядка 2МГц, в то время как полоса ТВ-сигнала занимает около 8МГц, и на записи было ничего не понятно. В итоге, тема была надолго заброшена, и наконец, только сейчас, в очередную поездку к родственникам я взял с собой SDRPlay, и настроившись на частоты ТВ-каналов, увидел на экране искомый сигнал.

Небольшая программа на Python, и все работает:

Принимаем и декодируем аналоговое ТВ с помощью SDR и Python - 1

Для тех, кому интересны подробности, продолжение под катом.Читать полностью »

Привет.

Данная статья является продолжением цикла про радиосвязь «Что слышно в эфире», начало можно найти здесь. Там рассматривались метеофаксы и другие достаточно любопытные сигналы, принять которые может любой желающий. Сегодня мы обратим наш взор к небу, причем в прямом смысле этого слова — будем принимать сигналы спутников Inmarsat.

Inmarsat: принимаем и декодируем сигнал со спутника у себя дома - 1
Изображение: spacenews.com

Для тех кому интересно, как это работает, продолжение под катом.Читать полностью »

GIF изнутри - 1
Вам когда-нибудь было интересно, как устроены gif-ки? В данной статье попробуем разобраться с внутренним строением GIF-формата и методом сжатия LZW.

Структура GIF

Файл в формате GIF состоит из фиксированной области в начале файла, за которой располагается переменное число блоков, и заканчивается файл завершителем изображения.

GIF изнутри - 2

Основные характеристики формата GIF:

  • Изображение в формате GIF хранится построчно, поддерживается только формат с индексированной палитрой цветов;
  • Поддерживается 256-цветовая палитра;
  • Этот формат позволяет хранить несколько изображений в одном файле;
  • GIF поддерживает анимационные изображения;

    Такие изображения представляют собой последовательность из нескольких статичных кадров, а также информацию о том, сколько времени каждый кадр должен быть показан на экране. Анимацию можно сделать цикличной, тогда вслед за последним кадром начнётся воспроизведение первого кадра и т. д.

  • Поддерживает «прозрачность»;

    Один из цветов в палитре может быть объявлен «прозрачным». В этом случае в программах, которые поддерживают прозрачность GIF (например, большинство современных браузеров) сквозь пиксели, окрашенные «прозрачным» цветом, будет виден фон. GIF анимация может использовать прозрачность для того чтобы не сохранять очередной кадр целиком, а только изменения относительно предыдущего.

  • Используется универсальный алгоритм сжатия без потерь LZW.

Читать полностью »

Я занимаюсь восстановлением исходников PHP из закодированного вида.
В этой статье я расскажу о том, как обстоят дела с кодированием и декодированием PHP в настоящее время.

Очень краткий ликбез по внутреннему устройству интерпретатора PHP

При выполнении PHP-скрипта, он парсится и компилируется в опкоды внутренней виртуальной машины PHP.
Из каждого файла PHP получаются:
— массив классов: в каждом классе — информация о классе, свойства класса и массив методов класса
— массив функций
— «тело скрипта» — код вне классов и функций
Читать полностью »

Июньский конкурс по ФП: поиск закодированной фразы мудрецаЗапоздало спешу представить на суд внимательного читателя отчёт о проведении конкурса по функциональному программированию под эгидой Фонда Поддержки Функционального Программирования ФП(ФП) в июне месяце сего года. Всем желающим была предложена задача, которую предложил на конкурс один наш добрый коллега, участвовавший в своё время в разработке решения задачи про полубезумного Доктора Х (см. отчёт на Хаброхабре «Поиск скрывающегося Доктора X среди пациентов — решение более сложных логических задач»). Условие задачи было таково…

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

Один восточный мудрец проникся духом Олимпийского движения и послал барону Пьеру де Кубертену ребус-шараду, в котором закодировал послание всем добрым людям мира:

Июньский конкурс по ФП: поиск закодированной фразы мудреца

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

Не совсем понятно почему, но задача оказалась не совсем уж и интересной. В конкурсе приняло участие всего только два человека, а ещё несколько вполне успешно «навангавали» правильный ответ, что, впрочем, за участие и тем более решение не засчитывалось. Ну а я сам, как обычно, предлагаю ознакомиться с кратким отчётом, описывающим решение поставленной задачи на прекрасном языке Haskell.

Читать полностью »

Декодирование изображений из мозга человека

Сегодня в журнале Science публикована научная работа (pdf) с описанием нового метода автоматической реконструкции изображений из мозга человека. Авторы научной работы считают, что их метод более точный, чем предыдущие работы в этой области: хорошо распознаются символы алфавита и простые контрастные фигуры.

Пока что декодер распознаёт только картинки, которые реально видит человек в данный момент, но в будущем он должен работать и на воображаемых изображениях. В этом случае станет возможным, например, набирать текст с закрытыми глазами.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js