Видеокодеки. Принцип работы простейшего кодека
Скачать 18.9 Kb.
|
Видеокодеки Видеокодек — программа/алгоритм сжатия (то есть уменьшения размера) видеоданных (видеофайла, видеопотока) и восстановления сжатых данных. Кодек — файл-формула, которая определяет, каким образом можно «упаковать» видеоконтент и, соответственно, воспроизвести видео. Также возможно кодирование кроме видео и аудиоинформации, добавления субтитров, векторных эффектов и т. п. Кодеки позволяют кодировать поток/сигнал для последующей передачи, хранения или шифрования, а также раскодируют его для просмотра (воспроизведения, расшифровки). Зачем нужна такая кодировка? Как известно, мультимедиа файлы имеют очень большие размеры (особенно видео файлы), что очень неудобно, например, при передаче таких файлов по сети. Использование кодеков позволяет уменьшать исходный размер мультимедиа файлов, сохраняя при этом максимально хорошее качество. Таким образом, если вы пытаетесь запустить какой-либо, а ваш компьютер выдаёт соответствующую ошибку или же воспроизводит его с погрешностями, то скорее всего это связано с тем, что ваша система не может найти программу для раскодировки данного файла, т.е. у вас нет необходимого кодека. Принцип работы простейшего кодека Сперва рассмотрим кодирование статического изображения (или, одиночного кадра). Каждый кодируемый кадр видеопотока состоит из точек (пикселей), образующих матрицу (растр). Кодек может отслеживать похожие массивы точек с одинаковыми атрибутами (например, синий цвет фона на изображении неба) и, вместо того, чтобы запоминать информацию о каждой точке (яркость и цвет) в следующих кадрах отдельно, записать лишь первую (ключевую) точку и счётчик с количеством повторений этой точки до момента изменения цвета данной точки. То есть вместо описания, например, 1000 точек, может оказаться достаточно описать всего 1 точку + счётчик повторения. Качеством здесь можно управлять, задавая величину, такую, что если отличие между точками меньше, то они считаются одинаковыми. Это самый простой из методов сжатия. В JPEG для кадра производится поблочное дискретное косинусное преобразование с последующим кодированием с использованием алгоритма Хаффмана или арифметического кодирования. Для построения динамического изображения (видеоряда) используются различные типы кадров — кроме I-кадров (которые также называются ключевыми (англ. keyframes) или «опорными») которые могут содержать только независимо сжатые макроблоки, добавленные P-кадры («разностные» кадры) могут содержать как независимо сжатые макроблоки, так и макроблоки со ссылкой на другой кадр. Более продвинутые форматы сжатия учитывают, кроме вышеупомянутой технологии, ещё и принципы движения массивов точек в изображении, сегментирование картинки на «квадратики» с различным качеством сжатия, применение последовательности кадров, кодированных по-разному и показанных в определённой последовательности. Самые новые кодеки учитывают психофизические свойства восприятия видео человеческим глазом и мозгом, что позволяет ещё сильнее уменьшать размер данных без «видимой потери качества». Также, алгоритмы используют похожесть соседних кадров в видеоряде. Примеры видеокодеков: DivX, AVI, Cinepak, H.261, H.263, H.264, Indeo, MPEG-1, MPEG-2, MPEG-4, RM, RV, WMV. Источники информации: www.chaynikam.net ru.wikipedia.org |