Размеры растровых изображений: пиксели, DPI, PPI, сантиметры — вы ничего не путаете?
Приветствую уважаемое сообщество Хабра! Пишу эту небольшую заметку как важный ликбез для всех, кто работает с растровыми картинками. Обычно, вопрос в чём измерять изображения встаёт у новичков, но путают термины и опытные специалисты.

Начнём с главного: растровые изображения состоят из пикселей. На этом можно было закончить данную статью, но не всем этого достаточно, поэтому поговорим о заблуждениях и мифах, которые я встречал на практике.
DPI, PPI и изменение размеров
Самое частое заблуждение — использование единиц DPI (dots per inch — точек на дюйм) и PPI (pixels per inch — пикселей на дюйм). На самом деле эти единицы относятся к принтерам и сканерам соответственно. Также их можно применять в характеристиках экранов. По сути это коэффициенты для перевода между физическими размерами в аналоге (в сантиметрах или дюймах) и размерами в пикселях для цифрового изображения.
Например, изображение в 100 пикселей, распечатанное с разрешением 100 DPI будет иметь размер 1 дюйм. Всё просто и понятно.
Однако, при изменении размеров в графических редакторах нам предлагают указать размеры в удобных нам измерениях, в том числе в DPI. Здесь и начинается путаница.
На самом деле физические размеры изображения (в сантиметрах, дюймах и т.д.) и значение DPI это всего лишь мета-информация в свойствах файла. Но редактор может использовать эти значения как средство указания требуемых размеров в пикселях.
Допустим, у нас изображение размером 3000 пикселей (квадратное), у которого стоит значение 300 DPI. Получаем: 3000 пикселей / 300 DPI = 10 дюймов. А теперь заходим в редактор (Photoshop) и изменяем значение DPI на 600. Что мы получим? А это зависит от галки «Resample». Если она стоит, мы получим upsampling (увеличение) изображения до 6000 пикселей. Если не стоит, то размер в дюймах станет 5 вместо 10.
Таким образом, для веб-разработки все значения физических размеров (DPI, сантиметры, дюймы и т.д.) можно смело игнорировать и смотреть исключительно на размеры в пикселях.
DPI/PPI экранов
Здесь мы подошли к вопросу разрешения и плотности пикселей экранов. Корректно эта плотность обозначается как PPI (pixels per inch) и показывает, сколько пикселей может быть отображено на одном дюйме экрана.
Здесь часто возникают мифические 72 и 96 PPI, которые должны показывать «стандартную» плотность пикселей для экранов. Для задач отображения графики в вебе они бесполезны. При этом реальная плотность пикселей экрана может быть совсем другой: типично что-то около 120 PPI (можете измерить и посчитать для своего экрана).
Но мы помним, что растровые картинки измеряются только в пикселях и никак иначе. Зачем мы вообще говорим о PPI экранов? Потому что есть «Retina» или «HiDPI» экраны.
Retina и HiDPI экраны
Такие дисплеи широко распространены в мобильных устройствах и дорогих ноутбуках. По сути это количественное увеличение пикселей при сохранении физических размеров экрана (например, 5 дюймов по диагонали и 330 PPI).
Для нас, как веб-разработчиков это значит появление разных пикселей в браузере: CSS-пикселей (которые мы обычно указываем в размерах элементов) и физических пикселей (реальных пикселей на экране). Формула такая: Физические пиксели = CSS-пиксели * DPR.
DPR это device pixel ratio — коэффициент перевода CSS-пикселей в физические.
При размещении картинки мы можем написать тег img с размерами 20px, а картинка будет 40 пикселей. При этом на экране с DPR=2,0 мы увидим все пиксели картинки. Но в этой ситуации нас абсолютно не волнуют реальные значения PPI экрана.
При этом мы можем использовать картинки с высокой плотностью пикселей и для обычных экранов, браузер сам отмасштабирует изображение. И опять, DPI и PPI здесь ни при чем, а картинки измеряются в пикселях. Как их показать будет решать браузер, у которого уже есть два вида пикселей.
Вот и вся история, хотя я конечно ничего не говорил об адаптивных картинках, способах оптимизации их отдачи и client hints. Но это другая история.
Что такое dpi? 300 dpi – это много?
Почти все понимают DPI неправильно. Попробуем разобраться?
DPI (dots per inch) используется для физических объектов – экранов, печатных машин, сканеров. Аналогичный ему PPI (pixels per inch) используют для файлов. Правильно говорить PPI (электронная точка – pixel, а физическая – dot), но почти все говорят DPI – сделаю так же.
Что означает фраза «Эта фотография большая – 300 dpi»? Ничего. У фотографии нет дюймов – нет и DPI.
DPI – dots per inch – точки на дюйм
Это пропорция. Она помогает определить третье число, когда известны другие два. Чтобы появился смысл – нужны два числа.
Как ей пользоваться?
dpi = px * 25.4 / mm
px = dpi * mm / 25.4
mm = px * 25.4 / dpi
(25.4 – это перевод дюймов в миллиметры)
Примеры:
1. Сколько точек должно быть в изображении, если его нужно напечатать размером 150х200 мм с разрешением 300 dpi?
Ответ:
px = 300 dpi * 150 mm / 25,4 = 1772 px
px = 300 dpi * 200 mm / 25,4 = 2362 px
Понадобится изображение размером 1772х2362 px
2. Какого максимального размера можно напечатать фотографию в идеальном качестве, если мы снимаем на iPhone 5 (3264х2448 точек)?
Ответ:
mm = 3264 px * 25.4 / 300 dpi = 276 мм
mm = 2448 px * 25.4 / 300 dpi = 207 мм
Фотку с айфона можно напечатать в идеале размером 276х207 мм, что почти А4
3. Какое разрешение у монитора в точках на дюйм, если мы знаем, что по ширине он 1440 точек, а линейка показала 28,5 см?
Ответ:
dpi = 1440 px * 25.4 / 285 mm = разрешение экрана 128 dpi
В файле для интернета не может быть разрешения в точках на дюйм, так как в интернете нет дюймов. Может быть только размер в точках.
Откуда берётся DPI? Всё просто. Растровые изображения хранятся в файлах. Форматы файлов кроме изображения хранят служебную информацию. В том числе дату и время съемки, модель камеры, диафрагму и т.п. Есть и ячейка под dpi. Она не может быть пустой. Поэтому даже фотоаппарату приходится что-то туда ставить. Например, 96. Но это не значит, что фотоаппарат что-то этим имеет в виду.
Рассмотрим растровые форматы файлов: где место под dpi есть, где нет.
DPI нет в png, gif – это растровые форматы только для интернета. В интернете дюймов нет, dpi нет.
DPI есть в растровых форматах, которые могут быть напечатаны:
Краткий обзор технологии DPI — Deep Packet Inspection
Основы
Система DPI, как видно из названия, выполняет глубокий анализ всех проходящих через неё пакетов. Термин «глубокий» подразумевает анализ пакета на верхних уровнях модели OSI, а не только по стандартным номерам портов. Помимо изучения пакетов по неким стандартным паттернам, по которым можно однозначно определить принадлежность пакета определённому приложению, скажем, по формату заголовков, номерам портов и т.п., система DPI осуществляет и так называемый поведенческий анализ трафика, который позволяет распознать приложения, не использующие для обмена данными заранее известные заголовки и структуры данных. Яркий пример тому – Bittorrent. Для их идентификации осуществляется анализ последовательности пакетов, обладающими одинаковыми признаками, таким как Source_IP:port – Destination_IP:port, размер пакета, частота открытия новых сессий в единицу времени и т.д., по поведенческим (эвристическим) моделям, соответствующим таким приложениям. Естественно, сколько производителей такого железа – столько и интерпретаций поведенческих моделей соответствующих протоколов, а значит и точность детектирования также разнится. Раз речь зашла о производителях, стоит отметить, что наиболее крупными игроками и их продуктами на рынке standalone DPI являются Allot Communications, Procera Networks, Cisco, Sandvine. Всё более и более популярными становятся интегрированные в маршрутизаторы решения DPI. Так поступают многие — Cisco, Juniper, Ericsson и т.д. по списку. Такие решения, как правило, достаточно компромиссные, и не могут предоставить весь спектр сервисов, доступных standalone решениям. Однако, для большинства задач этого вполне достаточно. Софтварные продукты, крутящиеся на серверах (такие как OpenDPI) я умышленно не указываю, их рынок весьма узок и, как правило, ограничивается корпоративными/кампусными сетями, а это немного не мой профиль. Важной отличительной особенностью настоящего DPI является возможность аналитики трафика за счёт сбора различного рода статистики с разбивкой по приложениям, по тарифным планам, по регионам, по типам абонентских устройств и т.д. По этой причине замечательный NBAR имени Cisco хоть и позволяет детектировать и осуществлять контроль трафика по приложениям, полноценным решением DPI не является, т.к. в нём отсутствует ряд важных компонентов.
Система DPI, как правило, устанавливается на границе сети оператора в разрыв существующих аплинков, уходящих от пограничных маршрутизаторов. Тем самым, весь трафик, который покидает или входит в сеть оператора, проходит через DPI, что даёт возможность его мониторинга и контроля. Для решения специфических задач можно устанавливать эту систему не на границе сети, а спускать её ниже, ближе к конечным пользователям, на уровень BRAS/CMTS/GGSN/… Это может быть полезно тем операторам, которые по ряду причин помимо утилизации внешних каналов также хотят решать задачу контроля внутренних. Естественно, здесь речь идёт о достаточно крупных сервис-провайдерах с большой распределённой сетью масштабов страны и с достаточно дорогими канальными ёмкостями.
На рынке DPI есть модели на самый разный кошелёк. Производительность представленных на рынке устройств плавает в пределах от сотен Мбит/с до 160 Гбит/с FDX в рамках одной отдельно взятой коробки, которые, как правило, можно объединять в кластеры. Соответственно, и стоимость плавает весьма серьёзно — от нескольких тысяч до миллионов долларов США. В случае с корпоративным сегментам решения предполагают низкоскоростные подключения по медным интерфейсам типов 10/100/1000. Операторские решения рассчитаны на подключение множества линков 1GE и 10GE. Что касается совсем взрослых решений, то пока что рынок 100GE интерфейсов на сетевом оборудовании достаточно скуден и дорог, но как только появится первый реальный бизнес-кейс, вендоры DPI предложат соответствующие решения, ибо у некоторых из них заготовки уже имеются.
Что дальше?
Теперь возникает логичный вопрос – ну и что теперь со всем этим делать? У оператора появляется достаточно мощный инструмент, при умелом использовании которого можно решать различные задачи по эксплуатации сети и её развитию.
Реализация QoS
С точки зрения эксплуатации, оператор может контролировать утилизацию подключенных через DPI каналов на уровне приложений. Раньше он решать задачи реализации QoS (Quality of Service) исключительно средствами построения очередей на основании маркировки трафика служебными битами в заголовках IP, 802.1q и MPLS, выделяя наиболее приоритетный трафик (разного рода VPN’ы, IPTV, SIP и т.д.), и гарантируя ему определённую пропускную способность в любой момент времени. Трафик типа Best Effort, к которому относится весь интернет трафик домашних абонентов (HSI — High Speed Internet), оставался фактически без контроля, что давало возможность тому же Bittorrent забрать себе всю свободную полосу, что, в свою очередь, вело к деградации любых других веб-приложений. С использованием DPI у оператора появляется возможность распределить канал между различными приложениями. К примеру, в ночные часы разрешить трафику Bittorrent забирать себе больше полосы, чем днём, в часы-пик, когда в сети ходит большое количество другого веб-трафика. Другая популярная мера у многих мобильных операторов – блокировка Skype-трафика, а также любых видов SIP-телефонии. Вместо полной блокировки оператор может разрешать работу данных протоколов, но на очень низкой скорости с соответствующей деградацией качества предоставления сервиса у конкретного приложения, чтобы вынудить пользователя платить за услуги традиционной телефонии, либо за специальный пакет услуг, разрешающий доступ к VoIP-сервисам.
Subscriber Management
Важным моментом является то, что правила, на основании которых выполняется шейпинг/блокировка, могут быть заданы посредством двух основных базисов – per-service или per-subscriber. В первом случае простейшим образом оговаривается, что конкретному приложению позволяется утилизировать определённую полосу. Во втором привязка приложения к полосе осуществляется для каждого подписчика или группы подписчиков независимо от других, что производится через интеграцию DPI с существующими OSS/BSS системами оператора. Т.е. можно настроить систему таким образом, что подписчик Вася, который за неделю накачал торрентов на 100 гигабайт, до конца месяца будет ограничен по скорости скачивания этих же торрентов на уровне 70% от купленного им тарифа. А у подписчика Пети, который купил дополнительную услугу под названием «Skype без проблем», трафик приложения Skype не будет блокироваться ни при каких условиях, но любой другой – легко. Можно сделать привязку к User-Agent и разрешить браузинг только при помощи рекомендуемых браузеров, можно делать хитрые редиректы в зависимости от типа браузера или ОС. Иными словами, гибкость тарифных планов и опций ограничена лишь здравым смыслом. Если же речь идёт о трафике мобильных операторов, то DPI позволяет контролировать загрузку каждой базовой станции в отдельности, справедливо распределяя ресурсы БС таким образом, чтобы все пользователи остались довольны качеством сервиса. Разумеется, данную задачу можно решать силами мобильного ядра, но это не всегда бюджетно. Раз уж я упомянул мобильных операторов, то хотелось бы отметить, что каждый уважающий себя производитель пакетного ядра EPC (Evolved Packet Core) для LTE интегрирует в свой PDN-GW функционал DPI, заточенный под решение задач мобильных операторов.
Зачем это всё надо?
Новая модель услуг
Мы плавно перешли к задаче развития сети и её услуг. Глядя на то, как подписчики пользуются купленной ими полосой, какие приложения используют, оператор может изучать потребности каждой категории подписчиков и предлагать им более гибкие и совершенные тарифные планы. К примеру, основываясь на том, что подписчики тарифа Silver активно пользуются услугами сторонней SIP-телефонии, можно предложить им дополнительный пакет, позволяющий использовать аналогичный сервис, предоставляемый оператором, но со скидкой. Остальные подписчики при желании воспользоваться более дешёвой телефонией будут мотивированы переходить на более дорогой тариф, приобретая дополнительные бонусы в виде повышения скорости. Можно придумать много кейсов, это лишь один из них. Своё видение персонализированных сервисов представила компания Allot в своей презентации, выдержки из которой упоминаются в материале, когда-то опубликованном на хабре. Подход очень интересный, и выгодный как для пользователя, так и для оператора. Тенденции развития телекоммуникационного рынка таковы, что для операторов продавать трубу, как они делают сейчас, скоро будет просто невыгодно, есть масса исследований, подтверждающих это. ARPU не увеличивается, конкуренция высока, оборудование необходимо апгрейдить всё чаще и чаще, расходы операторов растут, а желание получать прибыль никуда не девается. Задача DPI в данном разрезе — реализовать новые модели предоставления услуг конечному пользователю. Некоторые мировые операторы маленькими шагами уже двигаются к данной идее. В России, очевидно, процесс этот будет долгим и мучительным, т.к. для достижения задачи необходимо перестраивать мозги абонентов на другую частоту, что очень непросто, т.к. отучить человека не качать торренты, а покупать легальный контент — непросто. Я бы не хотел сейчас запускать дискуссию на тему «А где мне брать легальный контент?», это отдельная песня, и я очень рад, что это сдвинулось с мёртвой точки (на примере ivi, omlet, zabava и т.п. совместно с возрастающими продажами Smart TV). Надеюсь, данные проекты не заглохнут. О Netflix я пока не мечтаю, но было бы здорово.
DPI отлично умеет работать в связке с различными VAS (Value Added Services) системами, такими как антиспам, антивирус, видеооптимизаторы и т.п. Суть функционала заключается в отводе части трафика по заданным администратором критериям, на сторонние устройства, для осуществления более глубокого анализа и обработки.
Довольно легко можно организовать предоставление пользователям услуг по родительскому контролю, которые становятся всё более и более актуальными.
Спецслужбы
В конце хотелось бы сказать пару слов о том, для чего также закупается DPI, кроме как для издевательств над абонентами. Оборудование DPI, в связи со своим умением видеть всё и вся, что происходит на сети, является весьма интересным устройством для товарищей в погонах, без которых сейчас никуда. При помощи DPI спецслужбы могут вести наблюдение за сетевой активностью того или иного пользователя. Можно перекрыть ему VPN, HTTPS и прочие прелести, делающие невозможным анализ контента. Разумеется, можно закрывать доступ пользователей к неугодным властям сайтам, что очень актуально в связи с последними событиями в законотворческой деятельности в России.
Сетевой нейтралитет
Введение в DPI: Состав системы и схемы подключения
Привет, Хабр! Мы в VAS Experts специализируемся на создании и внедрении сервисов в области контроля и анализа интернет трафика. В нашем блоге мы будем делиться собственным опытом работы и рассказывать о том, как устроены те или иные технологии, имеющие отношение к нашей сфере деятельности.
Глобальный рынок систем глубокого анализа трафика (DPI) в 2013 году оценивался практически в 742 млн долларов США. По прогнозу аналитиков, к 2020 он вырастет более чем в 6 раз и будет оцениваться в 4,7 млрд. DPI-системы в основном применяют интернет-провайдеры и операторы связи, которые стремятся защитить своих абонентов и оптимизировать полосу пропускания до клиента за счет фильтров, приоритетов и кешей.
DPI выполняет анализ всех проходящих через неё пакетов вплоть до 7 уровня модели OSI и распознает приложения, не использующие для обмена данными заранее известные заголовки и структуры. Однако система DPI сама по себе не решает проблемы и задачи, описанные выше. Она взаимодействует с другими устройствами и сервисами сети передачи данных оператора. Об этом сегодня и поговорим.
Взаимодействие с другими системами
Стандарты и спецификации для мобильных сетей не разрабатываются каждым оператором отдельно, этим занимается созданный в 1998 году 3GPP (3rd Generation Partnership Project).
Центральным понятием сетей, построенных по стандартам 3GPP, является PCC (Policy and Charging Control). Решения этого класса позволяют персонифицировать услуги, активно управлять трафиком и качеством обслуживания, используя PCC-правила для принятия PCC-решений. Осуществляет применение этих PCC-правил к трафику функция PCEF (Policy and Charging Enforcement Function). Системы DPI являются частью PCEF, сканируя весь проходящий трафик и применяя к нему требуемые политики.
Однако в схеме имеются и другие элементы, например PCRF (Policy Control and Charging Rules Function) – это решение по применению политик обслуживания абонентов для установления параметров QoS и правил тарификации в зависимости от различных условий. Еще есть OCS (Online Charging System), осуществляющая тарификацию услуг и контролирующая баланс абонента.
Следует отметить систему биллинга, которая хранит базу данных баланса абонентов и предоставляет ее серверу OCS, и репозиторий UDR (User Data Repository), осуществляющий хранение данных пользователей (сервисы, доступные абоненту, параметры QoS и другие). Полный список задействованных компонентов вы можете найти в нашем блоге.
Схемы подключения DPI
Основных схем подключения устройства глубокого анализа трафика к оборудованию оператора здесь две – это так называемая установка «в разрыв» (активная схема) и зеркалирование трафика (пассивная схема).
Схема установки «в разрыв»
Этот вид подключения используется для реализации функционала любой системы DPI. В этом случае система анализа трафика подключается после граничного маршрутизатора в разрыв uplink.
Преимуществом такой схемы является то, что через DPI проходит абсолютно весь трафик. Это позволяет осуществлять приоритизацию, а также настраивать уведомления, кеширование и другие функции. Однако такой тип подключения обладает существенным недостатком: устройство DPI становится точкой отказа – если оно выходит из строя, связь полностью обрывается.
Но есть способы решения этой проблемы:
Зеркалирование трафика осуществляется через SPAN-порты или оптические сплиттеры. При такой схеме возможен анализ истории посещений в реальном времени, переадресация запросов блокировки, кеширование и работа с бонусными программами.
Плюсами этого варианта подключения являются минимальные изменения в структуре действующей сети и отсутствие необходимости использовать bypass-карту. В этом случае есть возможность снимать аналитику с трафика, подключить кеш-сервер и «зеркалить» трафик на оборудование СОРМ, но весь функционал системы DPI реализовать не получится.
Отметим, что оба варианта подключения поддерживает наше решение СКАТ DPI, позволяющее ограничить размер занимаемой полосы по группам протоколов, управлять приоритетом проходящих через него пакетов, блокировать рекламный контент и др. Более подробную информацию о системе вы можете найти по ссылке.
Вместо заключения
DPI-системы, которые появились в результате объединения нескольких более молодых систем фильтрации пакетов (если вам интересно, историю зарождения DPI и информацию о предшественниках решения вы можете найти здесь и здесь), позволили упростить процессы поддержки и администрирования сетей и сайтов, повысили защищенность последних от разного рода атак и расширили область применимости технологий анализа трафика.
Подробно о том, как применяются DPI, мы поговорим в нашем следующем материале. Будем рады вашим предложениям по темам для дальнейшего рассмотрения в блоге.
Что такое DPI и для чего он используется?
Чтобы понять, как работает DPI и для чего он используется, сначала нужно понять, как передаются и фильтруются пакеты данных. Любая информация, которую вы отправляете или получаете онлайн, разделена на пакеты. Эти пакеты состоят из заголовков и информационной нагрузки, которые сообщают устройствам, откуда и куда они перемещаются.
Ваш роутер, например, защищает ваши устройства, выполняя базовую фильтрацию пакетов, также известную как статическая/безопасная фильтрация. Он проверяет заголовки входящих пакетов на соответствие набору правил (Access Control List), таких как определенные IP-адреса/номера портов источника/назначения, и отсеивает те, которые не соответствуют.
Это хороший способ защиты, но одной фильтрации пакетов теперь уже недостаточно. Хакеры нашли способы обходить их. К тому же, чем больше правил у вашего роутера, тем медленнее он работает, а у некоторых просто не хватает вычислительной мощности, чтобы защитить вас от всех угроз. Вот почему была создана фильтрация DPI.
Что такое DPI?
Это тип фильтрации сетевых пакетов, также известная как полная проверка пакетов. Если статическая фильтрация проверяет исключительно заголовки, то DPI проверяет и заголовок, и то, что внутри пакета. Затем пользователь может отсеять все, что не соответствует его набору правил, например несоблюдение протокола, спам, вирусы или вторжения. Эти правила обычно устанавливаются вами, вашим интернет-провайдером (ISP) или соответствующим сетевым или системным администратором.
Инструменты DPI
Существуют различные методы и инструменты, которые DPI может использовать для поиска и удаления пакетов, которые не соответствуют его правилам фильтрации.
Для чего используется DPI?
Сетевая безопасность. DPI можно применять как систему обнаружения вторжений (IDS) или комбинацию предотвращения вторжений (IPS). Он может определять конкретные атаки, а также другой вредоносный трафик, вызванный вирусами, червями или программами-вымогателями, которые другие инструменты безопасности, возможно, не смогут отследить.
DPI работает подобно антивирусу, но обнаруживает угрозы на сетевом уровне еще до того, как они попадают к конечному пользователю. Например, в больших компаниях DPI может помочь предотвратить распространение вирусов и червей по всей корпоративной сети. Он также может помочь обнаружить использование запрещенных приложений.
Предотвращение потери данных. DPI может не допустить утечку данных. Например, при отправке анонимной информации по почте, DPI может предложить получить разрешение и допуск для ее отправки.
Формирование интернет-трафика или управление сетью. Вы можете использовать DPI для фильтрации трафика и разгрузки сетевого потока. Например, его можно настроить так, чтобы сначала получать приоритетные сообщения. К сожалению, провайдеры часто используют DPI для дросселирования трафика пользователей.
На видео:Простая демонстрация DPI
Цензура в интернете.
Правительство Китая использует DPI для мониторинга и контроля сетевого трафика страны. Это помогает им блокировать нежелательные сайты, социальные сети, чтобы подавлять религиозную или политическую оппозицию.
Целевая реклама. DPI вызывает некоторые проблемы конфиденциальности, потому что знает все про отправителя, получателя и содержимое пакета данных. Эту информацию могут собирать интернет-провайдеры, которые следят за нашим трафиком, а затем продавать компаниям, специализирующимся на целевой рекламе.
Проблемы DPI
DPI — это не безупречный инструмент безопасности. Он представляет множество проблем, и вы должны подумать дважды, прежде чем доверять ему.




