No Image

Что такое h 264

СОДЕРЖАНИЕ
0 просмотров
10 марта 2020

H.264, MPEG-4 Part 10 или AVC (Advanced Video Coding) — лицензируемый стандарт сжатия видео, предназначенный для достижения высокой степени сжатия видеопотока при сохранении высокого качества. Применяется для более рационального использования устройств хранения и передачи данных. Кодер H.264 без ущерба для качества изображения может снижать размер файла цифрового видео более чем на 80% по сравнению с форматом Motion JPEG и на 50% — по сравнению со стандартом MPEG-4 Part 2. Что означает гораздо меньшие требования к полосе пропускания для передачи и объему памяти для хранения видеофайла. Или же, с другой стороны, возможность получения гораздо лучшего качества видеоизображения при той же скорости передачи данных. На сегодняшний день формат H.264 является одним из самых прогрессивных и отвечающих современным требованиям алгоритмов компрессии.

Стандарт H.264 предназначен для технических решений в следующих областях:

  • Трансляции по сети, через спутник, через DSL соединения и т.д.
  • Интерактивный или постоянные хранения данных на оптических и магнитных носителях (DVD, HDD)
  • Потоковое мультимедиа по сети и т.д.

Благодаря своим преимуществам перед MPEG-4 и M-JPEG, H.264 может стать форматом номер один в системах видеонаблюдения. Сжатие видеоизображения заключается в удалении избыточных видеоданных или сокращении их объема, благодаря чему файлы с оцифрованным видео удается эффективно передавать по сети и хранить. При сжатии к исходному видеоизображению применяется определенный алгоритм. Применение обратного алгоритма позволяет практически без потерь восстановить оригинальное видеоизображение. В стандарте H.264 технология сжатия видеоизображения вышла на новый уровень: появилась более совершенная схема внутреннего предсказания, используемая для кодирования I-кадров. Благодаря этой схеме количество битов, необходимых для хранения I-кадра, значительно снижается, а качество изображения остается неизменным. Получить такой результат удается за счет использования моноблоков меньшего размера. Поиск совпадающих пикселов теперь осуществляется среди ранее закодированных пикселов, расположенных по краям нового макроблока. Значения этих пикселов используются повторно. В результате объем, который занимает изображение, значительно уменьшается.

В H.264, кроме того, усовершенствован механизм поблочной компенсации движения, который используется для кодирования P- и B-кадров. Кодировщик H.264 может по своему выбору осуществлять поиск совпадающих блоков (с точностью до субпиксела) в произвольном количестве областей одного или нескольких опорных кадров. Размер и форма блока также могут меняться, если при этом совпадение получается более точным. Для построения областей кадра, в которых нет совпадающих блоков, используются моноблоки с внутренним кодированием. Столь гибкий подход к компенсации движения оправдывает себя, например, при наблюдении за людными местами, когда требуется обеспечить также и качество изображения. Для компенсации движения выделяется большая часть ресурсов, отведенных видеокодеру. Поэтому от того, каким образом и насколько полно реализован этот алгоритм, зависит эффективность сжатия видеоизображения кодировщиком H.264.

При использовании H.264 удается также уменьшить количество артефактов блочности, характерных для Motion JPEG и других стандартов MPEG. Для этой цели в цикле кодирования используется внутренний фильтр деблокинга. В результате применения адаптивных алгоритмов удается сгладить края блоков и получить на выходе видеоизображение почти идеального качества.

В системах видеонаблюдения H.264, скорее всего, будет использоваться, в первую очередь, для решения задач, требующих больших скоростей передачи данных и высокого разрешения, например, в системах наблюдения за автомагистралями, в аэропортах и казино, где 30 к/с является нормой. В таких системах применение новой технологии позволит снизить требования к ширине каналов и объемам дискового пространства и приведет к значительной экономии.

«У меня имеется система видеонаблюдения, и я хочу просмотреть свои прошлые записи. Видеофайлы загружаются в формате .h264, я пробовал открывать их с помощью VLC Player, но проиграть файлы не удалось».

Эти и другие вопросы, связанные с файлами формата .h264, сегодня встречаются достаточно часто. Связано это с тем, что стандарт H.264 завоевал большую популярность, как в любительском, так и в профессиональном цифровом видео.

Что такое файл стандарта H.264?

Говоря простым языком, файл H.264 (MPEG-4 AVC) – это видеофайл, закодированный в лицензируемом стандарте сжатия видео H.264, обеспечивающем высокий уровень компрессии (низкий битрейт) при отличном качестве получаемого изображения.

Справка! Битрейт – количество бит (единиц информации), передающихся за единицу времени. Для фильмов стандарта Full HD (1080 p) битрейт видеофайла составляет около 10 Мбит/сек.

Из-за высокого уровня компрессии и других своих достоинств кодек H.264 заменил собой предыдущий кодек MPEG-4 ASP и широко применяется в видеокамерах AVCHD, на дисках Blu-ray и HD DVD, на ТВ HDTV и т.д.

Преимущества H.264 AVC:

  • аудио в кодеке может быть сжато отдельно и захвачено вместе с видео потоком H.264;
  • обратно совместим со старыми стандартами сжатия, к примеру H.263/H.261 и т.д.;
  • уменьшает размер цифрового видеофайла примерно на 50%;
  • открыт для лицензирования для всех поставщиков;
  • является стандартом взаимодействия между различными устройствами;
  • позволяет передавать видео с камер высокого разрешения (high definition) через Интернет.
Читайте также:  Чем заменить жидкость для промывки печатающей головки

Чем открыть файл формата .h264 в ОС Windows?

Существует множество медиаплееров в ОС Windows, проигрывающих файлы формата h.264.

Некоторые лучшие из них:

  • VLC Media Player;
  • KMPlayer;
  • BSPlayer;
  • Light Alloy;
  • GOM Player;
  • Media Player >Воспроизведение файлов H.264 с помощью медиаплеера VLC

Узнайте о проверенных способах конвертирования видео, из нашей новой статьи — «Как переформатировать видео».

К примеру, у пользователя имеется отснятый материал с камер видеонаблюдения или бытовой видеокамеры в формате .h264 и ему требуется воспроизвести отснятое видео в ОС Windows.

Шаг 1. Открыть интернет-браузер, перейти по ссылке: http://www.videolan.org/vlc/index.html и нажать «Download VLC» («Скачать») для загрузки последней версии VLC плеера.

Примечание! Скачанный файл можно найти в «Настройках» браузера, перейдя в его «Загрузки».

Шаг 2. Запустить скачанный файл.

Шаг 3. Выбрать язык и нажать «OK».

Шаг 4. Трижды нажать «Далее».

Шаг 5. Нажать «Установить».

Шаг 6. После установки программного обеспечения нажать «Готово».

Шаг 7. После запуска программы нажать «Инструменты» и щелкнуть «Настройки».

Шаг 8. Раскрыть слева щелчками мыши пункт «Ввод/кодеки» и выбрать «Демультиплексоры».

Шаг 9. Выбрать справа в выпадающем списке «Модуль демультиплексора» вариант «Демультиплексор H264» и нажать «Сохранить».

Теперь можно открывать и просматривать файлы H.264 в медиаплеере VLC. Для этого необходимо:

Шаг 1. Нажать «Медиа» и щелкнуть «Открыть файл…».

Шаг 2. Выбрать в раскрывающемся списке «все файлы», щелкнуть мышью в окне на нужном файле и нажать «Открыть».

Также можно просто перетащить нужный файл из папки Windows в окно медиаплеера для открытия файла.

Видео откроется в окне видеоплеера.

После просмотра видео можно вернуть автоматический выбор демультиплексора.

Совет! При проблемах воспроизведения видео с кодеками H.264 также можно попробовать переименовать расширение файла .h264 в файл .mpg и попробовать воспроизвести его.

Установка медиа декодера ffdshow

Если файл не проигрывается, в операционную систему можно установить универсальный медиа декодер ffdshow.

Шаг 1. Перейти по адресу: http://ffdshow-tryout.sourceforge.net/download.php и нажать на ссылку с 32- или 64-bit ОС, в зависимости от установленной у пользователя версии Windows.

Шаг 2. Запустить скачанный файл из папки «Загрузки» или из другой папки, в которую сохранили при скачивании.

Шаг 3. Нажать «OK».

Шаг 4. Шесть раз нажать «Далее».

Шаг 5. Нажать «Установить».

Шаг 6. Снять галочки с пунктов настройки декодера и нажать «Завершить».

После установки медиа декодера он сможет проигрывать видеопоток H.264 в любом DirectShow-совместимом медиаплеере автоматически.

Видео — Как открыть формат H.264?

Понравилась статья?
Сохраните, чтобы не потерять!

H.264 — стандарт сжатия видео. И он вездесущ, его используют для сжатия видео в интернете, на Blu-ray, телефонах, камерах наблюдения, дронах, везде. Все сейчас используют H.264.

Нельзя не отметить технологичность H.264. Он появился в результате 30-ти с лишним лет работы с одной единственной целью: уменьшение необходимой пропускной способности канала для передачи качественного видео.

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

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

1080p @ 60 Hz = 1920x1080x60x3 =>

Этим практически невозможно было бы пользоваться. Blu-ray диск на 50Гб мог бы вмещать всего около 2 мин. видео. С копированием так же будет не легко. Даже у SSD возникнут проблемы с записью из памяти на диск.

Поэтому да, сжатие необходимо.

Обязательно отвечу на этот вопрос. Но сперва я покажу кое-что. Взгляните на главную страницу Apple:

Я сохранил изображение и приведу в пример 2 файла:

Эмм… что? Размеры файлов кажется перепутали.

Нет, с размерами всё в порядке. Видео H.264 с 300 кадрами весит 175 Кб. Один единственный кадр из видео в PNG — 1015 Кб.

Кажется, мы храним в 300 раз больше данных в видео, но получаем файл весом в 5 раз меньше. Получается H.264 эффективнее PNG в 1500 раз.

Как такое возможно, в чём заключается приём?

А приёмов очень много! H.264 использует все приёмы о которых вы догадываетесь (и уйму о которых нет). Давайте пройдёмся по основным.

Представьте, что вы готовите машину к гонкам и вам нужно её ускорить. Что вы сделаете в первую очередь? Вы избавитесь от лишнего веса. Допустим, машина весит одну тонну. Вы начинаете выбрасывать ненужные детали… Заднее кресло? Пфф… выбрасываем. Сабвуфер? Обойдёмся и без музыки. Кондиционер? Не нужен. Коробка передач? В мусо… стойте, она еще пригодится.

Читайте также:  Как настроить раздел моя семья на майкрософт

Таким образом вы избавитесь от всего, кроме необходимого.

Этот метод отбрасывания ненужных участков называется сжатием данных с потерями. H.264 кодирует с потерями, отбрасывая менее значимые части и сохраняя при этом важные.

PNG кодирует без потерь. Это означает, что вся информация сохраняется, пиксель в пиксель, и поэтому оригинал изображения можно воссоздать из файла, закодированного в PNG.

Важные части? Как алгоритм может определять их важность в кадре?

Существует несколько очевидных способов урезания изображения. Возможно, верхняя правая четверть картинки бесполезна, тогда можно удалить этот угол и мы уместимся в ¾ исходного веса. Теперь машина весит 750 кг. Либо можно вырезать кромку определенной ширины по всему периметру, важная информацию всегда ведь по середине. Да, возможно, но H.264 всего этого не делает.

Что же на самом деле делает H.264?

H.264, как и все алгоритмы сжатия с потерями, уменьшает детализацию. Ниже, сравнение изображений до и после избавления от деталей.

Видите как на сжатом изображении исчезли отверстия в решётке динамика у MacBook Pro? Если не приближать, то можно и не заметить. Изображение справа весит всего 7% от исходного и это при том, что сжатия в традиционном смысле не было. Представьте машину весом всего лишь 70 кг!

7%, ого! Как возможно так избавиться от детализации?

Для начала немного математики.

Мы подходим к самому интересному! Если вы посещали теорию информатики, то возможно вспомните про понятие информационной энтропии. Информационная энтропия это количество единиц для представления некоторых данных. Заметьте, что это вовсе не размер самих данных. Это минимальное количество единиц, которое нужно использовать, чтобы представить все элементы данных.

Например, если в виде данных взять один бросок монеты, то энтропия получится 1 единица. Если же бросков монетки 2, то понадобятся 2 единицы.

Предположим, что монета весьма странная — её подбросили 10 раз и каждый раз выпадал орёл. Как бы вы кому нибудь рассказали об этом? Вряд ли как-то вроде ОООООООООО, вы бы сказали «10 бросков, все орлы» — бум! Вы только что сжали информацию! Легко. Я вас спас от многочасовой утомительной лекции. Это, конечно же, огромное упрощение, но вы преобразовали данные в некое короткое представление с той же информативностью. То есть уменьшили избыточность. Информационная энтропия данных не пострадала — вы только преобразовали представление. Такой способ называется энтропийным кодированием, который подходит для кодирования любого вида данных.

Теперь, когда мы разобрались с информационной энтропией, перейдем к преобразованию самих данных. Можно представить данные в фундаментальных системах. Например, если использовать двоичный код, будут 0 и 1. Если же использовать шестнадцатеричную систему, то алфавит будет состоять из 16 символов. Между вышеупомянутыми системами существует взаимно однозначная связь, поэтому можно легко преобразовывать одно в другое. Пока всё понятно? Идём дальше.

А представьте, что можно представить данные, которые изменяются в пространстве или времени, в совершенно иной системе координат. Например, яркость изображения, а вместо системы координат с x и y, возьмём частотную систему. Таким образом, на осях будут частоты freqX и freqY, такое представление называется частотным пространством[Frequency domain representation]. И существует теорема, что любые данные можно без потерь представить в такой системе при достаточно высоких freqX и freqY.

Хорошо, но что такое freqX и freqY?

freqX и freqY всего лишь другой базис в системе координат. Так же как можно перейти из двоичной системы в шестнадцатеричную, можно перейти из X-Y в freqX и freqY. Ниже изображён переход из одной системы в другую.

Мелкая решётка MacBook Pro содержит высокочастотную информацию и находится в области с высокими частотами. Таким образом мелкие детали имеют высокую частоту, а плавные изменения, такие как цвет и яркость низкую. Всё, что между, остаётся между.

В таком представлении, низкочастотные детали находятся ближе к центру изображения, а высокочастотные в углах.

Пока всё понятно, но зачем это нужно?

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

Ниже знакомый нам ноутбук, но теперь уже с, применёнными к ней, круговыми масками.

В процентах указана информационная энтропия относительно исходного изображения. Если не приближать, то разница не заметна и при 2%! — машина теперь весит 20 кг!

Именно таким образом нужно избавляться от веса. Такой процесс сжатия с потерями называется Квантованием.

Это впечатляет, какие еще приёмы существуют?

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

Читайте также:  Что значит значок lte на самсунг

В телевизорах, цвета RGB преобразуются в YCbCr, где Y это компонента яркости (по сути яркость черно-белого изображения), а Cb и Cr компоненты цвета. RGB и YCbCr эквиваленты в плане информационной энтропии.

Зачем же тогда усложнять? RGB разве не достаточно?

Во времена чёрно-белых телевизоров, была только компонента Y. А с началом появления цветных телевизоров у инженеров встала задача о передаче цветного RGB изображения вместе с чёрно-белым. Поэтому вместо двух каналов для передачи, было решено кодировать цвет в компоненты Cb и Cr и передавать их вместе с Y, а цветные телевизоры уже сами будут преобразовывать компоненты цвета и яркости в привычный им RGB.

Но вот в чём хитрость: компонента яркости кодируется в полном разрешении, а компоненты цвета лишь в четверть. И этим можно пренебречь, т.к. глаз/мозг плохо различает оттенки. Таким образом можно уменьшить размер изображения в половину и с минимальными отличиями. В 2 раза! Машина будет весить 10 кг!

Данная технология кодирования изображения со снижением цветового разрешения называется цветовой субдискретизацией. Она используется повсеместно уже давно и относится не только к H.264.

Это самые значительные технологии в уменьшении размера при сжатии с потерями. Нам удалось избавиться от большинства детализации и сократить информацию о цвете в 2 раза.

Да. Обрезание картинки это лишь первый шаг. До этого момента мы разбирали отдельно взятый кадр. Пришло время взглянуть на сжатии во времени, где нам предстоит работать с группой кадров.

H.264 стандарт, который позволяет компенсировать движения.

Представьте, что вы смотрите теннисный матч. Камера зафиксирована и снимает с определенного угла и единственное что движется это мячик. Как бы вы закодировали это? Вы бы сделали что и обычно, да? Трёхмерный массив пикселей, две координаты в пространстве и один кадр за раз, так?

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

И это именно то, что H.264 делает. H.264 разбивает изображение на макроблоки, обычно 16х16, которые используются для расчёта движения. Один кадр остаётся статичным, обычно его называют I-кадр [Intra frame], и содержит всё. Последующие кадры могут быть либо P-кадры [predicted], либо B-кадры [bi-directionally predicted]. В P-кадрах вектор движения кодируется для каждого макроблока на основе предыдущих кадров, таким образом декодер должен использовать предыдущие кадры, взяв последний из I-кадров видео и постепенно добавляя изменения последующих кадров пока не дойдёт до текущего.

Ещё интереснее обстоят дела с B-кадрами, в которых расчёт производится в обоих направлениях, на основании кадров идущих до и после них. Теперь вы понимаете почему видео в начале статьи весит так мало, это всего лишь 3 I-кадра, в которых мечутся макроблоки.

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

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

Выглядит впечатляюще. Теперь что?

Теперь мы подведём черту, используя традиционное энтропийное кодирование без потерь. Почему нет?

После этапов сжатия с потерями, I-кадры содержат избыточные данные. В векторах движения каждого из макроблоков в P-кадрах и B-кадрах много одинаковой информации, так как зачастую они двигаются идентично, как это можно наблюдать в начальном видео.

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

Вот теперь всё! В основе H.264 лежат вышеупомянутые технологии. В этом и заключаются приёмы стандарта.

Отлично! Но меня разбирает любопытство узнать, сколько же весит теперь наша машина.

Исходное видео было снято в нестандартном разрешении 1232×1154. Если посчитать, то получится:

5 сек. @ 60 fps = 1232x1154x60x3x5 => 1.2 Гб
Сжатое видео => 175 Кб

Если соотнести результат с оговорённой массой машины в одну тонну, то получится вес равный 0.14 кг. 140 граммов!

Конечно же я в очень упрощённом виде изложил результат десятилетних исследований в этой сфере. Если захотите узнать больше, то страница в википедии вполне познавательна.

Комментировать
0 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector