CCTV. Библия видеонаблюдения. Цифровые и сетевые технологии
Шрифт:
Н.264
Н.264 — это один из самых многообещающих стандартов в череде новых разработок. Он разрабатывался совместно группой Video Coding Experts Group (VCEG) из ITU-T и группой MPEG из ISO. Это историческое объединение известно как JVT (Joint Video Team). Сам стандарт идентичен ISO MPEG-4 part 10, который также известен как стандарт AVC для улучшенного кодирования видео (Advanced Video Coding). В черновом варианте стандарт Н.264 был готов к маю 2003 года, и в нем были реализованы технологии и особенности, взятые из Н.263 и MPEG-4.
Рис. 9.43. Н.264 использует сложные алгоритмы предсказания в макроблоках
Н.264 — это название относится к серии Н.26х видеостандартов ITU-T, тогда как AVC относится к серии MPEG-стандартов ISO. Поэтому новый стандарт иногда называют H.264/AVC или AVC/H.264, чтобы подчеркнуть общность его корней. Название Н.261_тоже взято из истории ITU-T, но оно встречается нечасто, хотя изредка и используется.
Основной целью проекта Н.264 была разработка стандарта, который можно было бы быстро внедрить, используя низкие скорости передачи данных, что, в свою очередь, снизило бы требования, предъявляемые к декодирующему оборудованию и линиям связи. Н.264 содержит несколько новых технологий, которые позволяют сжимать видео более эффективно, чем это делали используемые ранее стандарты. Например, в Н.264 для компрессии без потерь синтаксических элементов видеопотока используется схема статистического кодирования потока САВАС (Context-Adaptive Binary Arithmetic Coding). Также в стандарте Н.264 используется адаптивный фильтр для уменьшения артефактов блочности (Adaptive Deblocking Filter), который применяется на стадии кодирования и декодирования видео, то есть фильтрация производится для каждого кадра еще до того, как он будет использован для кодирования или декодирования последующих кадров. Этот фильтр позволяет уменьшить присутствие блочных артефактов, характерных для алгоритмов сжатия, использующих дискретное косинусное преобразование. В предыдущих стандартах при оценке компенсации движения использовался только предшествовавший кадр, но Н.264 позволяет для этой цели использовать кадры, находящиеся сколь угодно далеко от обрабатываемого кадра. Для большинства сцен это дает достаточно скромное улучшение в качестве и небольшое уменьшение видеопотока, но в некоторых случаях, например, при быстрых периодических вспышках и мерцании это позволяет значительно уменьшить размер видеопотока. Эти идеи, а также и многие другие привели к тому, что Н.264 значительно более эффективен, чем MPEG-4 ASP. Н.264 обычно работает более эффективно, чем MPEG-2, при меньшем размере видеопотока. Различные тесты и сравнения показали, что стандарт Н.264, по крайней мере, в 2–3 раза более эффективен, по сравнению с MPEG-2 при том же качестве изображения.
Рис. 9.44. Уже начали появляться диски HD DVD емкостью 30 Гбайт
Кроме того, совместная группа JVT заканчивает работы над дополнениями к стандарту, которые получили название FRExt (Fidelity Range Extensions). Эти дополнения позволят стандарту увеличить точность кодирования за счет поддержки 10- и 12-битного кодирования и увеличения цветового разрешения с использованием форматов оцифровки, известных как YUV 4:2:2 и YUV 4:4:4.
Н.264 уже широко используется в сфере видеоконференций, он был предварительно принят как обязательный стандарт для будущих спецификаций DVD, которые также известны как HD-DVD и разрабатываются DVD Forum.
Как и для многих видеостандартов ISO, для Н.264 есть пример реализации, который находится в свободном доступе. Этот пример должен только показать возможности нового стандарта, но не предназначен для практического применения.
Один из лидеров в сфере компьютерной обработки изображений и мультимедийных приложений компания Apple Computer уже включила стандарт Н.264 в новую версию своей операционной системы Mac OS X. Другие разработчики вскоре последуют этому примеру.
Motion Wavelet
Существует немалое количество и других алгоритмов сжатия видеоизображения, которые являются собственными разработками компаний-производителей систем видеонаблюдения. По этой причине эти алгоритмы никак не стандартизированы, и такой работы даже не ведется. Кроме того, подробности реализации разработчики предпочитают не сообщать, так как это является коммерческой информацией. От детального рассмотрения таких алгоритмов на страницах книги мы воздержимся и в качестве примера приведем только один алгоритм сжатия видеоизображения Motion Wavelet, разработанный одной из российских компаний.
Motion Wavelet — алгоритм сжатия видеоизображения, то есть сжатие кадров основано на том, что они образуют видеопоследовательность. Motion Wavelet обрабатывает изменения, которые возникают в очередном кадре по сравнению с предыдущим либо с опорным кадром. Этим он отличается от алгоритмов сжатия изображения (JPEG и Wavelet), в которых применяется покадровое сжатие. Поэтому размер кадра в Motion Wavelet при сопоставимом качестве получается меньше в 5-10 раз. Разница в среднем размере кадра будет зависеть от фона, наличия перемещающихся объектов и от других факторов.
В отличие от многих алгоритмов сжатия видеоизображения (например, алгоритмы MPEG) Motion Wavelet работает не по принципу вычитания кадров и сжатия полученной разницы. Motion Wavelet при анализе последовательности кадров использует детектор движения, который определяет на следующем кадре, какие элементы изображения изменятся, и сжимает только их. Если начинается движение во всем кадре, то будут обрабатываться и сжиматься все кадры полностью, что будет аналогично покадровому сжатию Wavelet. Впрочем, для видеонаблюдения именно сжатие, связанное с движением отдельных фрагментов, играет основную роль.
Обычно в тех алгоритмах, у которых сжатие основано на обработке разности кадров, не допускается изъятие хотя бы одного кадра из видеопотока, иначе он «распадается».
Эта проблема есть в наиболее распространенных реализациях алгоритма MPEG — они не могут адаптироваться к пропускной способности канала (например, при передаче видеоизображения по сети или по модему) и требуют канал фиксированной ширины. При использовании покадровых алгоритмов JPEG и Wavelet сжимается каждый кадр, поэтому здесь такая проблема отсутствует. Motion Wavelet может адаптироваться к каналу, поскольку если из потока, сжатого с его помощью, выкидывать блоки, то кадр потом можно будет восстановить, потому что сжатие очередного кадра по Motion Wavelet не имеет жесткой привязки к предыдущему кадру.
В наиболее распространенных реализациях алгоритма MPEG фиксируется величина сжимаемого потока. Это означает, что чем больше изменений происходит от кадра к кадру, тем хуже качество сжатого видеоизображения. Если в кадре ничего не изменяется, то качество сжатого изображения — отличное, но если объект начал двигаться, качество сжатого видеоизображения падает. Для видеонаблюдения такую ситуацию нельзя считать удовлетворительной, потому что здесь очень важно наблюдение с хорошим качеством именно движущихся объектов. В Motion Wavelet при наличии в кадре какого-либо действия фиксируется качество: если в кадре начинается движение, то увеличивается величина сжатого потока, а качество остается стабильным.
Еще одна проблема, которая возникает при передаче видеоизображения по сети в форматах MPEG, заключается в том, что видеопоток, сжатый с одной скоростью (например, 25 к/с), без дополнительного перекодирования нельзя передавать меньшей скоростью из-за жесткой привязки в последовательности кадров друг к другу. В алгоритмах Wavelet и JPEG нет этой проблемы. Она была решена и в алгоритме Motion Wavelet, который также позволяет при передаче пропускать кадры.
Так как Motion Wavelet для сжатия кадров использует вейвлет-преобразование, то все преимущества этого сжатия сохранились. Благодаря масштабируемости вейвлет-сжатия Motion Wavelet также позволяет из одного видеопотока быстро получать видеопотоки разного разрешения, когда видеопоток с высоким разрешением используется, например, для записи, а для удаленного просмотра используется видеопоток меньшего разрешения. Кроме того, в алгоритмах, использующих дискретное косинусное преобразование, как, например, JPEG и MPEG, возникает эффект блочности, но для Motion Wavelet, как и для любого вейвлет-сжатия, этот эффект нехарактерен.