Методы и алгоритмы адаптивного разбиения видеокадров на блоки кодирования в системе видеокодирования H.265/HEVC
|
1 Обзор кодирования видео в рамках H.265/HEVC 10
1.1 Описание процесса сжатия гибридного кодера H.265/HEVC . 10
1.2 Описание возможностей кодирования H.265/HEVC 13
1.2 Основные результаты и выводы по разделу 16
2 Процедура принятия решений в программной реализации
кодирующей системы 18
2.1 Критерий сравнения оптимальности вариантов кодирования 18
2.2 Выбор структуры разбиений блоков 19
2.3 Выбор режима предсказания 21
2.3.1 Выбор режима пространственного предсказания 21
2.3.2 Выбор режима межкадрового предсказания 23
2.4 Выбор размера блока преобразования TU 26
2.5 Оптимизация битовой скорости и искажений (RDO) 28
2.6 Основные результаты и выводы по разделу 29
3 Разработка алгоритма быстрого разбиения кадра на блоки
кодирования 32
3.1 Критерии сравнения эффективности алгоритмов сжатия 32
3.2 Обзор критериев выбора варианта разбиения блоков
пространственного предсказания 34
3.3 Модификация критерия выбора размера блока пространственного
предсказания 41
3.4 Регулирование соотношения степени сжатия и вычислительной
3.4.1 Исследование влияния пороговых значений критерия Мин на
эффективность кодирования 44
3.4.2 Исследование влияния пороговых значений критерия Ким на
эффективность кодирования 48
3.4.3 Обсуждение результатов изменения пороговых значений
используемых критериев 51
3.5 Основные результаты и выводы по разделу 52
4 Программная реализация быстрых алгоритмов видеосжатия 55
4.1 Описание разработанной библиотеки 55
4.2 Тестирование разработанной библиотеки 62
4.2.1 Отладка кодирующей системы 62
4.2.2 Оценка эффективности кодирования алгоритма Мин 63
4.2.3 Оценка эффективности модифицированного алгоритма 65
4.3 Основные результаты и выводы по разделу 68
5. Финансовый менеджмент, ресурсоэффективность и ресурсосбережение 70
5.1 Организация и планирование работ 70
5.1.1 Продолжительность этапов работ 71
5.1.2 Расчет накопления готовности проекта 74
5.2 Расчет сметы затрат на выполнение проекта 75
5.2.1 Расчет затрат на материалы 76
5.2.2 Расчет заработной платы 76
5.2.3 Расчет затрат на социальный налог 77
5.2.4 Расчет затрат на электроэнергию 78
5.2.5 Расчет амортизационных расходов 79
3
5.2.6 Расчет прочих расходов 80
5.2.7 Расчет общей себестоимости разработки 80
5.2.8 Расчет прибыли 81
5.2.9 Расчет НДС 81
5.2.10 Цена разработки НИР 81
5.3 Оценка экономической эффективности проекта 81
5.3.1 Оценка научно-технического уровня НИР 82
6 Социальная ответственность 85
6.1 Производственная безопасность 85
6.2 Охрана окружающей среды 90
6.3 Защита в чрезвычайных ситуациях 91
6.4 Правовые и организационные вопросы обеспечения безопасности 92
Заключение 94
Список литературы 97
Приложение A Английская часть 102
Приложение Б Программный код интерфейса и реализации библиотеки классов 117
Приложение В Акт о внедрении 130
1.1 Описание процесса сжатия гибридного кодера H.265/HEVC . 10
1.2 Описание возможностей кодирования H.265/HEVC 13
1.2 Основные результаты и выводы по разделу 16
2 Процедура принятия решений в программной реализации
кодирующей системы 18
2.1 Критерий сравнения оптимальности вариантов кодирования 18
2.2 Выбор структуры разбиений блоков 19
2.3 Выбор режима предсказания 21
2.3.1 Выбор режима пространственного предсказания 21
2.3.2 Выбор режима межкадрового предсказания 23
2.4 Выбор размера блока преобразования TU 26
2.5 Оптимизация битовой скорости и искажений (RDO) 28
2.6 Основные результаты и выводы по разделу 29
3 Разработка алгоритма быстрого разбиения кадра на блоки
кодирования 32
3.1 Критерии сравнения эффективности алгоритмов сжатия 32
3.2 Обзор критериев выбора варианта разбиения блоков
пространственного предсказания 34
3.3 Модификация критерия выбора размера блока пространственного
предсказания 41
3.4 Регулирование соотношения степени сжатия и вычислительной
3.4.1 Исследование влияния пороговых значений критерия Мин на
эффективность кодирования 44
3.4.2 Исследование влияния пороговых значений критерия Ким на
эффективность кодирования 48
3.4.3 Обсуждение результатов изменения пороговых значений
используемых критериев 51
3.5 Основные результаты и выводы по разделу 52
4 Программная реализация быстрых алгоритмов видеосжатия 55
4.1 Описание разработанной библиотеки 55
4.2 Тестирование разработанной библиотеки 62
4.2.1 Отладка кодирующей системы 62
4.2.2 Оценка эффективности кодирования алгоритма Мин 63
4.2.3 Оценка эффективности модифицированного алгоритма 65
4.3 Основные результаты и выводы по разделу 68
5. Финансовый менеджмент, ресурсоэффективность и ресурсосбережение 70
5.1 Организация и планирование работ 70
5.1.1 Продолжительность этапов работ 71
5.1.2 Расчет накопления готовности проекта 74
5.2 Расчет сметы затрат на выполнение проекта 75
5.2.1 Расчет затрат на материалы 76
5.2.2 Расчет заработной платы 76
5.2.3 Расчет затрат на социальный налог 77
5.2.4 Расчет затрат на электроэнергию 78
5.2.5 Расчет амортизационных расходов 79
3
5.2.6 Расчет прочих расходов 80
5.2.7 Расчет общей себестоимости разработки 80
5.2.8 Расчет прибыли 81
5.2.9 Расчет НДС 81
5.2.10 Цена разработки НИР 81
5.3 Оценка экономической эффективности проекта 81
5.3.1 Оценка научно-технического уровня НИР 82
6 Социальная ответственность 85
6.1 Производственная безопасность 85
6.2 Охрана окружающей среды 90
6.3 Защита в чрезвычайных ситуациях 91
6.4 Правовые и организационные вопросы обеспечения безопасности 92
Заключение 94
Список литературы 97
Приложение A Английская часть 102
Приложение Б Программный код интерфейса и реализации библиотеки классов 117
Приложение В Акт о внедрении 130
За последние 30 лет цифровое видео превратилось из нескольких небольших исследовательских проектов в гигантскую индустрию, охватывающую множество областей человеческой деятельности. Объемы данных цифрового видео, передаваемые по различным сетям связи в последние годы удваиваются каждый год [1]. Все это привело к резкой интенсификации исследований, направленных на разработку методов и алгоритмов сжатия цифровых видеоданных. Результатом исследований, проводимых с 2006 года группой JCT-VC, стало принятие в 2013 году нового стандарта видеокодирования H.265/HEVC. Алгоритмы видеосжатия, легшие в основу нового стандарта, потенциально обеспечивают почти двукратное повышение степени сжатия видеоданных по сравнению с теми, что использовались в стандарте предыдущего поколения H.264/AVC. С другой стороны, такое повышение степени сжатия достигается за счет многократного увеличения количества вариантов алгоритмов кодирования видеоизображения в системах нового поколения, что приводит к многократному увеличению вычислительной сложности процедуры видеокодирования. Как показал предварительный анализ вычислительных затрат на кодирование, особенно «узким» местом в системах кодирования H.265/HEVC является выбор варианта разбиения видеоизображения на блоки кодирования, обеспечивающий наибольшую степень сжатия. Все это и обусловило выбор темы магистерской диссертации, ее цели, объекта и предмета исследования.
Целью работы является разработка методов и алгоритмов, обеспечивающих существенное снижение вычислительных затрат при кодировании видеоданных в системах кодирования нового стандарта H.265/HEVC.
Объектом исследования являются методы и алгоритмы видеокодирования, используемые в системах кодирования последнего поколения и удовлетворяющих новому стандарту HEVC.
Предметом исследования является разработка быстрого метода выбора варианта разбиения видеоизображения на блоки кодирования и его алгоритмической реализации.
Актуальность исследования. Интенсивные работы по созданию нового стандарта видеокодирования начались с 2006 г. В 2013 г. по результатам этих исследований был принят новый стандарт - H.265/HEVC. Существенного повышения степени сжатия по сравнению со стандартом предыдущего поколения в HEVC удается добиться за счет адаптивного разбиения видеоизображения на блоки кодирования. Такое разбиение подстраивается в процессе кодирования под характер изображения, обеспечивая максимально высокую степень сжатия. С другой стороны, в новом стандарте не определены критерии выбора варианта разбиения изображения. Выбор такого критерия оставлен разработчикам конкретных кодирующих систем. В простейшем варианте, реализованном разработчиками нового стандарта и опубликованном на сайте JCT-VC, осуществляется перебор всех вариантов разбиения изображения. Для каждого варианта полностью выполняется процедура кодирования. Выбирается вариант, обеспечивающий наилучшую степень сжатия видеоданных при наименьшей степени искажений изображения, вносимых при кодировании. Очевидно, что такой подход оказывается крайне неэффективным с точки зрения объема необходимых для кодирования вычислений. В результате кодирующая система обеспечивает кодирование одного видеокадра высокого разрешения за 2-3 мин. даже на современных высокопроизводительных компьютерных платформах. Такое время кодирования одного видеоизображения ставит под вопрос саму возможность практического использования кодирующих систем, основанных на новом стандарте (на каждую секунду видео приходится 30 - 60 видеокадров). В области разработки быстрых методов и алгоритмов, обеспечивающих существенное сокращение вычислительных затрат на кодирование в последние три года (после принятия стандарта) ведутся активные исследования [2-7]. Большое внимание в этих исследованиях уделяется процедуре выбора варианта разбиения изображения на блоки кодирования [8-13]. Данная работа является развитием и продолжением этих исследований, что и определяет ее актуальность.
Практическая значимость результатов ВКР. Основные результаты магистерской работы были получены автором в рамках выполнения комплексного проекта «Предоставление услуг мультимедийного вещания в сетях общего пользования Интернет, основанных на технологиях пиринговых сетей и адаптивной передачи потоков данных» выполняемого в рамках Постановления Правительства России от 9 апреля 2010 г. №218 при финансовой поддержке Министертва образования и науки Российской Федерации. Разработанные методы доведены до алгоритмической и программной реализации в виде библиотеки классов на языке C++ и включены в коммерчески распространяемый группой компаний Элекард программный продукт «Elecard Codec SDK». По предварительным оценкам, использование разработанных автором программных модулей позволило более чем в два раза сократить вычислительную сложность процедуры кодирования и, как следствие, поднять скорость кодирования HEVC кодера системы «Elecard Codec SDK». К работе прилагается Акт о внедрении (Приложение В), подтверждающий использование результатов работы в продуктах компании Элекард Девайсез.
Реализация и апробация работы. Основные результаты, полученные при работе над магистерской диссертацией, опубликованы в статье [14] в журнале, входящем в РИНЦ и перечень ВАК. Кроме того, имеется публикация [15] в англоязычном журнале, входящем в базу цитирования
SCOPUS. Получен грант «УМНИК» по теме «Разработка алгоритмов и программного комплекса сжатия цифровых видеопоследовательностей в рамках новейшего стандарта H.265/HEVC», включающей исследования, проводимые в рамках данной магистерской диссертации.
Содержание работы. Диссертация состоит из введения, шести разделов, заключения, трёх приложений. Общий объём 130 страница. Во введении описывается актуальность исследования, ставится цель работы, выделяются объект и предмет исследования, показывается практическая значимость результатов ВКР, кратко описывается содержание работы. В первом разделе данной работы проводится обзор процесса кодирования видеопоследовательностей в соответствии со стандартом H.265/HEVC, вводятся понятия, используемые при обсуждении процесса кодирования, описываются возможности кодирования предоставляемые стандартом. Второй раздел посвящен рассмотрению различных этапов принятия решений, в процессе поиска наилучшего варианта кодирования видео, проводится их анализ, на основании которого принимается решение о необходимости разработки алгоритмов быстрого разбиения кадра на блоки кодирования в системах кодирования H.265/HEVC. В третьем разделе проводится обзор существующих подходов к ускорению процесса кодирования видео, путём сокращения числа перебираемых вариантов разбиений кадра. На основании проведенного анализа разработан новый алгоритм, позволяющий достичь большего ускорения сжатия видеоизображений. Предложены модификации, позволяющие регулировать степень сжатия видео последовательностей за счёт изменения вычислительной сложности процесса кодирования. В четвертом разделе описывается программная реализация разработанных алгоритмов в виде библиотеки классов на языке программирования C++ и проводится анализ эффективности полученного решения. Пятый раздел посвящен финансовому менеджменту процесса разработки алгоритмов быстрого разбиения кадра на блоки кодирования. В шестом разделе проводится анализ производственной безопасности, охраны окружающей среды, защите в чрезвычайных ситуациях и правовым и организационным вопросам обеспечения безопасности, связанным с разработкой и реализацией алгоритмов адаптивного разбиения кадра на блоки кодирования. В заключении подводятся итоги работы и делаются выводы по результатам выполненных работ.
Личный вклад автора. Разработка кодирующей системы стандарта HEVC компании Элекард велась группой исследователей и разработчиков. Автор работы в этой группе отвечал за решение задачи быстрого выбора варианта разбиения изображения на блоки кодирования. Таким образом, основные результаты магистерской диссертации получены лично автором.
Целью работы является разработка методов и алгоритмов, обеспечивающих существенное снижение вычислительных затрат при кодировании видеоданных в системах кодирования нового стандарта H.265/HEVC.
Объектом исследования являются методы и алгоритмы видеокодирования, используемые в системах кодирования последнего поколения и удовлетворяющих новому стандарту HEVC.
Предметом исследования является разработка быстрого метода выбора варианта разбиения видеоизображения на блоки кодирования и его алгоритмической реализации.
Актуальность исследования. Интенсивные работы по созданию нового стандарта видеокодирования начались с 2006 г. В 2013 г. по результатам этих исследований был принят новый стандарт - H.265/HEVC. Существенного повышения степени сжатия по сравнению со стандартом предыдущего поколения в HEVC удается добиться за счет адаптивного разбиения видеоизображения на блоки кодирования. Такое разбиение подстраивается в процессе кодирования под характер изображения, обеспечивая максимально высокую степень сжатия. С другой стороны, в новом стандарте не определены критерии выбора варианта разбиения изображения. Выбор такого критерия оставлен разработчикам конкретных кодирующих систем. В простейшем варианте, реализованном разработчиками нового стандарта и опубликованном на сайте JCT-VC, осуществляется перебор всех вариантов разбиения изображения. Для каждого варианта полностью выполняется процедура кодирования. Выбирается вариант, обеспечивающий наилучшую степень сжатия видеоданных при наименьшей степени искажений изображения, вносимых при кодировании. Очевидно, что такой подход оказывается крайне неэффективным с точки зрения объема необходимых для кодирования вычислений. В результате кодирующая система обеспечивает кодирование одного видеокадра высокого разрешения за 2-3 мин. даже на современных высокопроизводительных компьютерных платформах. Такое время кодирования одного видеоизображения ставит под вопрос саму возможность практического использования кодирующих систем, основанных на новом стандарте (на каждую секунду видео приходится 30 - 60 видеокадров). В области разработки быстрых методов и алгоритмов, обеспечивающих существенное сокращение вычислительных затрат на кодирование в последние три года (после принятия стандарта) ведутся активные исследования [2-7]. Большое внимание в этих исследованиях уделяется процедуре выбора варианта разбиения изображения на блоки кодирования [8-13]. Данная работа является развитием и продолжением этих исследований, что и определяет ее актуальность.
Практическая значимость результатов ВКР. Основные результаты магистерской работы были получены автором в рамках выполнения комплексного проекта «Предоставление услуг мультимедийного вещания в сетях общего пользования Интернет, основанных на технологиях пиринговых сетей и адаптивной передачи потоков данных» выполняемого в рамках Постановления Правительства России от 9 апреля 2010 г. №218 при финансовой поддержке Министертва образования и науки Российской Федерации. Разработанные методы доведены до алгоритмической и программной реализации в виде библиотеки классов на языке C++ и включены в коммерчески распространяемый группой компаний Элекард программный продукт «Elecard Codec SDK». По предварительным оценкам, использование разработанных автором программных модулей позволило более чем в два раза сократить вычислительную сложность процедуры кодирования и, как следствие, поднять скорость кодирования HEVC кодера системы «Elecard Codec SDK». К работе прилагается Акт о внедрении (Приложение В), подтверждающий использование результатов работы в продуктах компании Элекард Девайсез.
Реализация и апробация работы. Основные результаты, полученные при работе над магистерской диссертацией, опубликованы в статье [14] в журнале, входящем в РИНЦ и перечень ВАК. Кроме того, имеется публикация [15] в англоязычном журнале, входящем в базу цитирования
SCOPUS. Получен грант «УМНИК» по теме «Разработка алгоритмов и программного комплекса сжатия цифровых видеопоследовательностей в рамках новейшего стандарта H.265/HEVC», включающей исследования, проводимые в рамках данной магистерской диссертации.
Содержание работы. Диссертация состоит из введения, шести разделов, заключения, трёх приложений. Общий объём 130 страница. Во введении описывается актуальность исследования, ставится цель работы, выделяются объект и предмет исследования, показывается практическая значимость результатов ВКР, кратко описывается содержание работы. В первом разделе данной работы проводится обзор процесса кодирования видеопоследовательностей в соответствии со стандартом H.265/HEVC, вводятся понятия, используемые при обсуждении процесса кодирования, описываются возможности кодирования предоставляемые стандартом. Второй раздел посвящен рассмотрению различных этапов принятия решений, в процессе поиска наилучшего варианта кодирования видео, проводится их анализ, на основании которого принимается решение о необходимости разработки алгоритмов быстрого разбиения кадра на блоки кодирования в системах кодирования H.265/HEVC. В третьем разделе проводится обзор существующих подходов к ускорению процесса кодирования видео, путём сокращения числа перебираемых вариантов разбиений кадра. На основании проведенного анализа разработан новый алгоритм, позволяющий достичь большего ускорения сжатия видеоизображений. Предложены модификации, позволяющие регулировать степень сжатия видео последовательностей за счёт изменения вычислительной сложности процесса кодирования. В четвертом разделе описывается программная реализация разработанных алгоритмов в виде библиотеки классов на языке программирования C++ и проводится анализ эффективности полученного решения. Пятый раздел посвящен финансовому менеджменту процесса разработки алгоритмов быстрого разбиения кадра на блоки кодирования. В шестом разделе проводится анализ производственной безопасности, охраны окружающей среды, защите в чрезвычайных ситуациях и правовым и организационным вопросам обеспечения безопасности, связанным с разработкой и реализацией алгоритмов адаптивного разбиения кадра на блоки кодирования. В заключении подводятся итоги работы и делаются выводы по результатам выполненных работ.
Личный вклад автора. Разработка кодирующей системы стандарта HEVC компании Элекард велась группой исследователей и разработчиков. Автор работы в этой группе отвечал за решение задачи быстрого выбора варианта разбиения изображения на блоки кодирования. Таким образом, основные результаты магистерской диссертации получены лично автором.
Алгоритмы принятого в 2013 году стандарта видеокодирования H.265/HEVC позволяют добиться почти двукратного повышения степени сжатия видеоданных по сравнению со стандартом предыдущего поколения H.264/AVC. Ценой такого роста эффективности является повышенная вычислительная сложность поиска оптимального режима кодирования. Одним из ключевых моментов, которым обусловлен рост вычислительных затрат, является возможность адаптивного разбиения кадра на блоки кодирования. С целью снижений времени, затрачиваемого на кодирование видеоизображений, в рамках данной работы разработаны быстрые алгоритмы адаптивного разбиения видеокадров на блоки кодирования в системе видеокодирования H.265/HEVC.
При выполнении диссертационной работы получены следующие результаты.
1. Проведен анализ методов и алгоритмов сжатия цифровых видеоданных вошедших в стандарт H.265/HEVC. Показано, что основной причиной повышенной вычислительной сложности процесса кодирования видеоизображений является перебор большого количества возможных вариантов кодирования, с целью поиска наиболее оптимального из них. Сделан вывод о том, что наиболее трудоёмким является перебор всех возможных вариантов разбиения кадра на блоки кодирования.
2. Проведен обзор известных критериев выбора размера блока кодирования, на основании которого выбран наиболее эффективный из них. Использование этого критерия позволяет на 48.81% сократить общее время, затрачиваемое вычислительной системой на кодирование видеоданных. Степень сжатия данных при этом снижается на 2.10%.
3. Показано, что процесс выбора оптимального разбиения блока кодирования на подблоки при применении выбранного алгоритма можно дополнительно ускорить, применив дополнительный критерий. Такая модификация позволяет дополнительно ускорить процесс кодирования при незначительном снижении степени сжатия.
4. С целью повышения эффективности предложенного метода выбора разбиений кадра на блоки кодирования разработаны варианты модификации используемых для ускорения алгоритмов. Показано, что при применении модификаций появляется возможность регулировать соотношения снижения степени сжатия и сокращения затрачиваемого на кодирование времени.
5. Разработана универсальная библиотека классов на языке программирования C++, реализующая предложенные алгоритмы быстрого разбиения кадра на блоки кодирования.
6. Разработана система кодирования видеоизображений в соответствии со стандартом H.265/HEVC, основанная на справочной реализации кодера, представленной разработчиками стандарта, и использующая разработанную библиотеку классов для принятия решений о разбиении кадра на блоки кодирования.
7. На разработанной системе кодирования проведены замеры эффективности разработанных алгоритмов. Показано, что предложенные алгоритмы позволяют достичь 51.94% сокращения времени кодирования при снижении степени сжатия на 2.39%. Оценка возможностей регулирования соотношения снижения степени сжатия и сокращения затрачиваемого на кодирование времени показала возможность настройки кодера таким образом, чтобы уменьшить рост битовой скорости вплоть до 1.06% при сокращении сохраняемого времени кодирования до 43.96%.
8. Разработанная библиотека классов, реализующая предложенные алгоритмы, внедрена в состав коммерческого продукта компании Элекард «Elecard Codec SDK».
При выполнении диссертационной работы получены следующие результаты.
1. Проведен анализ методов и алгоритмов сжатия цифровых видеоданных вошедших в стандарт H.265/HEVC. Показано, что основной причиной повышенной вычислительной сложности процесса кодирования видеоизображений является перебор большого количества возможных вариантов кодирования, с целью поиска наиболее оптимального из них. Сделан вывод о том, что наиболее трудоёмким является перебор всех возможных вариантов разбиения кадра на блоки кодирования.
2. Проведен обзор известных критериев выбора размера блока кодирования, на основании которого выбран наиболее эффективный из них. Использование этого критерия позволяет на 48.81% сократить общее время, затрачиваемое вычислительной системой на кодирование видеоданных. Степень сжатия данных при этом снижается на 2.10%.
3. Показано, что процесс выбора оптимального разбиения блока кодирования на подблоки при применении выбранного алгоритма можно дополнительно ускорить, применив дополнительный критерий. Такая модификация позволяет дополнительно ускорить процесс кодирования при незначительном снижении степени сжатия.
4. С целью повышения эффективности предложенного метода выбора разбиений кадра на блоки кодирования разработаны варианты модификации используемых для ускорения алгоритмов. Показано, что при применении модификаций появляется возможность регулировать соотношения снижения степени сжатия и сокращения затрачиваемого на кодирование времени.
5. Разработана универсальная библиотека классов на языке программирования C++, реализующая предложенные алгоритмы быстрого разбиения кадра на блоки кодирования.
6. Разработана система кодирования видеоизображений в соответствии со стандартом H.265/HEVC, основанная на справочной реализации кодера, представленной разработчиками стандарта, и использующая разработанную библиотеку классов для принятия решений о разбиении кадра на блоки кодирования.
7. На разработанной системе кодирования проведены замеры эффективности разработанных алгоритмов. Показано, что предложенные алгоритмы позволяют достичь 51.94% сокращения времени кодирования при снижении степени сжатия на 2.39%. Оценка возможностей регулирования соотношения снижения степени сжатия и сокращения затрачиваемого на кодирование времени показала возможность настройки кодера таким образом, чтобы уменьшить рост битовой скорости вплоть до 1.06% при сокращении сохраняемого времени кодирования до 43.96%.
8. Разработанная библиотека классов, реализующая предложенные алгоритмы, внедрена в состав коммерческого продукта компании Элекард «Elecard Codec SDK».



