Способ и устройство сжатия видеоинформации для передачи по каналам связи с меняющейся пропускной способностью и запоминания в системах хранения данных с использованием машинного обучения и нейросетей
METHOD AND DEVICE FOR COMPRESSING VIDEO INFORMATION FOR TRANSMISSION OVER COMMUNICATION CHANNELS WITH VARYING THROUGHPUT CAPACITY AND STORAGE IN DATA STORAGE SYSTEMS USING MACHINE LEARNING AND NEURAL NETWORKS

Область техники, к которой относится изобретение
Изобретение относится к области сжатия/кодирования, передачи и хранения в компактном виде видеоинформации (ВИ), циркулирующей в системах передачи/записи мультимедийных данных (прежде всего видео и изображений, занимающих львиную долю трафика данных в IP-сетях), включая системы потокового видео, видеоконференсинга, видеонаблюдений, видеоаналитики, ТВ и радиовещания, системы хранения данных, центры обработки данных, а также поисковые системы. При этом визуальное качество видео при заданной скорости/объеме ВИ и характеристиках среды передачи или хранения данных должно сохраняться на достаточном уровне для получателя информации (зрителя), использующего ВИ в рамках его прикладной задачи в условиях передачи видео по нестационарным каналам связи с относительно низкой и/или меняющейся пропускной способностью, что накладывает дополнительные требования к гибкости обработки и кодирования видеопотока для передачи данных в разнообразной сетевой среде и/или среде обработки и хранения данных в цифровом виде.
Уровень техники
В настоящее время превалирующим трафиком в сетях передачи данных всех типов является мультимедийный трафик, в котором самое большое место занимает видеоинформация. По прогнозу ряда IT-центров и крупных компаний оценка объема видеотрафика в интернете составляет 73-75% (данные 2016 г.) и он ежегодно значительно растет. Так по прогнозам компании Cisco к 2021 году его доля будет составлять 82% в составе общего IP-трафика (а это - экзабайтные объемы) [1]. Именно поэтому в настоящее время и на дальнюю перспективу очень актуальны методы обработки и кодирования видеопотоков и изображений для сжатия данных, которые позволяет значительно уменьшить эти все возрастающие объемы видеоинформации и тем самым хотя бы частично разгрузить системы связи для ее передачи и запоминающие устройства в системах ее записи и хранения.
Как известно, в науке и технике широко используются методы кодирования источника для сжатия данных с потерями и без потерь, которые позволяют сократить их естественную избыточность и экономить ресурсы систем передачи информации (СПИ), систем обработки данных (СОД) и систем хранения данных (СХД), а также систем поиска информации за счет уменьшения первоначального объема данных, порождаемых их источником. Теоретико-информационный аспект сжатия данных, представленных в цифровой форме, был развит в работах К. Шеннона и других исследователей и определялся функцией «скорость-искажения» (Rate-distortion function - RDF) или R=f(e), где R - скорость потока данных в бит/с на выходе кодера источника, а е - ошибка (погрешность) или искажения при воспроизведении данных на выходе декодера источника (при сжатии без потерь можно обеспечить е=0 для некоторых типов данных), применительно к передаче информации по каналу связи с пропускной способностью С бит/с. Для обеспечения нормальной связи должно выполняться соотношение R<C. Здесь R и e выступают в роли основных (неотрицательных и зависимых друг от друга) критериев качества кодирования источника, причем увеличение скорости R приводит к снижению искажений (потерь) е, а уменьшение скорости приводит к большей деградации передаваемых данных. Применительно к передаче/хранению видео речь здесь идет о так называемом сжатии данных с потерями (при е>0), т.е. кодировании потока данных на выходе источника при отсутствии ошибок в канале и выполнении условия передачи R<C, контролирующего уровень информационных потерь е>0, которые можно оценить на выходе декодера источника [2, 3, 6]. При заданном значении потерь е* значение R*=f(e*) определяет нижнюю границу скорости передачи данных. Спецификой подхода к сжатию данных на теоретико-информационной основе RDF является постулат: потери невозможно восполнить. Для некоторого класса источников (текстовые данные, графика, черно-белые изображения и др.) значение е, как отмечено выше, можно сделать равным нулю при кодировании, т.е. имеется в виду сжатие данных без потерь (при е=0). В реализационном плане задержка кодирования и сложность кодирования, используемые как дополнительные критерии (факторы), должны быть ограниченными для реальных приложений.
Характеристикой эффективности сжатия данных в цифровой форме служит коэффициент сжатия Ксж=Iвх/Iвых, где Iвx - объем информации в битах (или байтах) на выходе источника (порождаемой за некоторый интервал времени Т, если анализу подвергается поток данных на выходе источника, т.е. на входе кодера источника; или же предварительно записанное видео в ограниченное по объему ЗУ), а Iвых - объем информации на выходе кодера источника (за указанный выше интервал времени Т, если анализируется результат кодирования потока данных на выходе кодера источника; или же обработанная кодером запись ВИ в ЗУ). Потери е при этом определении эффективности сжатия фиксируются. Эффективность сжатия данных зависит от уровня их избыточности, особенностей и интенсивности шума и помех в исходных данных, но также метода кодирования и его способности сократить или даже устранить эту избыточность [29].
Такая мультимедийная информация как видео/изображения или речь/аудио являются примерами выходных данных на выходе источника (например, фото и видеокамеры или микрофона) или запоминающего устройства. При необходимости их приведения к цифровому виду и кодировании обязательно вносится погрешность е, определяющая качество оцифровки и кодирования. При оценке качества кодирования видеоданных широко используются как объективные критерии качества (такие как среднеквадратическая ошибка (СКО) и ее разновидности, максимальная погрешность Δ и отношение сигнал/шум (SNR) или пиковое SNR (PSNR)), Video Multimethod Assessment Fusion, предложенное компанией Netflix, так и объективно-субъективные (типа критерия MOS (Mean Opinion Score)), представляющего собой усредненные оценки качества восстановленной информации на выходе декодера по отношению к исходной ВИ, полученных ограниченным коллективом подготовленных зрителей/ слушателей или даже субъективного визуального/слухового представления группы или отдельного зрителя/слушателя [3].
Для кодирования изображений широко используются стандартные кодеки JPEG, JPEG-2000, MJPEG и другие кодеки этого класса функционально близкие к ним, включая опции сжатия без потерь цифровой копии изображения, а для кодирования видео используются кодеки MPEG-1, MPEG-2, MPEG-4 или их версии в виде стандартов (Рекомендаций) ITU-T Н.26х (Н.261, Н.262, Н.263, Н.264, Н.265), а также проприетарные кодеки VP8, VP9, AV1 и др.[4, 5, 7, 32].
Коэффициент сжатия видео с потерями Ксж варьируется от 10 до 100 раз при «телевизионном» качестве SD (Standard Definition) и даже повышенном качестве HD (High Definition) в зависимости от специфики и статистической и психофизической избыточности изображений/видео, типа кодека и значений его параметров (задержка, сложность и др.), требований зрителя к качеству восстановленного видео, допустимой скорости видеопотока или выделенного объема памяти для хранения в ЗУ изображений/видео и других факторов. Широко используемый в таких кодеках принцип сжатия изображений и видео с потерями (в предположении, что они цветные (в частном случае монохромные, полутоновые) и представлены в известном формате RGB или YUV) таков: устранение пространственной избыточности в основном статистического типа на базе перехода из пространственной области в частотную путем трансформации матрицы изображения как в JPEG или опорного кадра, как в MPEG 2 и 4, и использования системы ортогональных функций (преобразование Фурье, Уолша, дискретного косинусного преобразования (DCT), вейвлетов и др.) и тонкого или грубого квантования компонент, что вносит погрешность е, и последующее кодирование квантованных компонент на принципах энтропийного кодирования без потерь (в частности, арифметического кодирования); устранение временнОй избыточности в основном статистического типа в соседних кадрах видеопоследовательности, в которых, как правило, есть небольшие изменения за счет движения объектов в пределах сцены и/или видеокамеры, выявляемые оценивателем движения (motion estimator) и определением векторов движения для кодирования только измененных фрагментов нового кадра по отношению к опорному (что детально описано в стандартах MPEG 2 и 4, Н.26х).
Уровень потерь (ошибок) е можно опустить до нуля, что имеет место в кодеках, обеспечивающих сжатие без потерь [6, 7]. Примером могут служить архиваторы zip и rar, широко используемые для кодирования символьной и графической информации, методы RLE, LZW и Хаффмана, а также энтропийные (прежде всего арифметические) кодеки в отмеченных выше стандартных методах сжатия изображений и видеоданных [7, 19], но они представляют относительно малый самостоятельный интерес для кодирования видеоинформации из-за весьма низкой эффективности сжатия (коэффициент сжатия данных, равный двум-десяти, считается для кодирования текстов/графики вполне нормальным). Обычно эти методы используются как составная часть общего метода сжатия видео и графических (в основном, двухуровневых) данных. Применительно к обработке последних (bi-level изображений) разработаны стандарты JBIG и JBIG2 [19]. Если JBIG, в основе которого лежит арифметическое кодирование, ориентирован на сжатие без потерь, то его развитие JBIG2 способен проводить эффективную обработку графики также в режиме сжатия с потерями.
Одна из особенностей этого классического теоретико-информационного подхода состоит в том, что при декодировании информации, переданной по каналам СПИ или хранящейся в сжатом виде в СХД, требуется максимально качественно ее воспроизвести и, возможно, с небольшой контролируемой погрешностью (ошибкой) е, которая является некой платой за относительно высокий коэффициент сжатия Ксж первоначального объема данных Iвx. Считаем что очень качественное (HD) оригинальное цветное видео при частоте кадров в секунду (fps) 30 требует скорости не менее R=50 Мбит/с, а относительно низкое по качеству оригинального видеопотока требует R=128 Кбит/с при частоте кадров в секунду 16…25 (fps), хотя могут рассматриваться и более низкие значения кадровой скорости, как это имеет место в видеонаблюдении. Отличие высокоскоростного видеопотока от низкоскоростного по параметру R почти в 400 раз! Очевидно, что визуальное представление получателя видеоинформации таких классов будет отличаться. Но, как можно предположить, для решения определенного типа прикладной задачи, а не эстетической задачи художественного плана, характерной, например, для хранения кинофильмов в цифровой форме с высоким качеством, это допустимо.
Сжатие HD-видео с потерями (указанными выше продвинутыми видеокодеками) в 50… 100 раз (!) снижает, конечно, качество, но оставляет его еще на приемлемом уровне для разных реальных приложений. Но вот сжатие всего в 5…10 раз низкоскоростного видеопотока приводит часто к существенному снижению (если не к деградации) качества даже для грубого решения прикладных задач.
Однако такой подход «на сигнальном уровне» (его можно назвать традиционным), широко освещенный в технической литературе и представленный прежде всего указанными «стандартами», формирует фундаментальную границу эффективности кодирования источника видеоинформации, определяемой шенноновской функцией «скорость-искажения», из-за требования «воспроизвести полный сигнал (изображения или видео) практически в его первоначальном виде, но с относительно небольшими контролируемыми потерями», чтобы наше зрение или прибор почти не заметили при просматривании видео этих потерь. Этот подход предполагает, что почти все важно при воспроизведении и восприятии, т.е. человек или распознающая машина должны получить все в деталях при декодировании изображения/видео даже в ситуациях, когда полное цветное видео (или его фрагменты) в целом не несет информации, важной для зрителя при решении прикладных задач и вынесении им решений о сущностных объектах, ситуациях или событиях, которые представляются в видеопотоке (здесь частично исключается из рассмотрения художественная, эстетическая составляющие видеопотока при его восприятии зрителем как искусства). На семантическом и прагматическом уровнях потеря «несущественной» для приложения информации (например, изменение цвета одежды или снижения числа градаций серого, передвижение в сцене малоинтересных для зрителя объектов и др.) не уменьшает для зрителя ценности видеоданных с прикладных позиций, но преобразование (и даже исключение) этой информации позволяет значительно повысить эффективность кодирования по показателю Ксж. Оценка ценности объектов на изображении (существенные и несущественные фрагменты сцены) зависит от прикладной задачи и зрителя, но общий подход в этом случае таков: ценные фрагменты изображений/видео (например, лица людей или некоторые важные предметы) передавать/воспроизводить с большей точностью, а малоценные (например, фон, несущественные объекты в кадре) передавать/воспроизводить с меньшей точностью, что нашло отражения в ряде публикаций и патентов [32]. При этом подход на базе функции «скорость-искажения» для описанной ситуации остается практически неизменным (пусть только для частных ситуаций), просто некоторые специально выделенные фрагменты изображения или кадры видеопотока кодируются с меньшей ошибкой, а другие - с большей (вплоть до изменения их визуального представления для зрителя)..
В связи с новым этапом в области развития и применения искусственных нейронных сетей (ИНС) появились публикации, в которых энкодер и декодер для изображений/видео стоятся на базе ИНС и в некоторых приложениях обеспечивают сжатие данных, не уступающее по эффективности традиционной обработке видеопотока. Так в статье [16] утверждается, что нейросеть для сжатия изображений Google, которая реализована на базе свободной библиотеки машинного обучения TensorFlow, обеспечивает даже на 5%…57% бОльшую эффективность (по Ксж), чем JPEG на некоторых типах изображений размером 1280×720 пикселов при сильном сжатии (0.25 бит/пиксел). В статье [30] описывается концепция сжатия изображений на основе реализации кодирования и декодирования с использованием параллельной структуры ИНС и концепции DWT. В ряде статей ИНС используются для оптимизации параметров квантования и кодирования, которые могут влиять на характеристики видеокодека, но в процентном отношении незначительно [31]. Однако подходы на базе ИНС применительно к сжатию изображений пока изучаются в научном плане, а не практическом.
Одно из решений проблемы передачи в реальном времени видеопотока по каналу с очень низкой пропускной способностью для видеоконференций на базе технологии морфинга и редактирования кадров для снижения кадровой скорости с целью сохранения только их существенной (для зрителя) части изложено в патенте компании Microsoft, США [18]. На стороне энкодера предлагаемая система способна делать автоматический отбор только небольшого числа кадров с относительно качественно представленными в них лицами, затем кодировать эти кадры для сжатия данных и передавать. А на стороне декодера используется технология морфинга (т.е. плавной трансформации одного объекта в другой), чтобы восстановить видеопоток с нормальной кадровой скоростью. Как утверждают авторы патента, результаты показывают, что такая система превосходит качество традиционного видеокодирования для передачи с низкой скоростью.
В более раннем патенте компании Microsoft, США [17], касающемся передачи видеопотока по низкоскоростному каналу связи (речь в патенте идет о скоростях 9,6 кбит/с…40 кбит/с; видео в формате QCIF (размер изображения в пикселях 176×144)), для исключения деградации цветного или полутонового видео предлагается перейти к скетчевой форме представления каждого кадра видеопоследовательности путем сравнения яркости каждого пикселя с адаптивным порогом. Фактически предлагается перевод изображения в каждом кадре в графическую двухуровневую (bi-level) форму, кодирование полученного скетча в арифметическом кодеке без потерь, передача кодированного скетч-видео по каналу связи и декодирования полученного скетч-видео, которое воспроизводится на мониторе/экране пользователя. Авторы патента утверждают, что скетч-видео плавно передает изменение черт и выражений на лице и обеспечивает корректную и гладкую передачу движения объектов, что важно при видео-коммуникации, но это не имеет места при использовании видеокодирования на базе кодека Н.263, ориентированного на грубую передачу цвета при низкоскоростном кодировании.
Итак, традиционные методы кодирования ориентированы на исключение естественной (прежде всего статистической и психофизической) избыточности и ее можно восстановить (дополнить) с контролируемыми потерями в той или иной форме при декодировании видеопотока или его отдельного кадра или группы кадров. Однако ею не исчерпываются все ответы на вопрос «что является ценным и что является лишним для решения конкретной прикладной задачи?» при сохранении базовой основы видеопотока и его динамики. Например, такой «избыточной» частью видео может быть слишком большая палитра цветов, которая обычно предоставляется в рамках качества SD или HD-видео как его важная составляющая, и даже сам цвет каждого объекта в показываемой сцене; или излишнее количество градаций яркости (или уровней серого) для цифрового растрового полутонового изображения и можно ограничиться двумя и даже одним битом для его представления, т.е. фактически перевести тоновое изображение (или отдельный кадр видеопотока) в бинарное (графическое) черно-белое изображение по яркости, которое является объектом кодирования в стандартах JBIG и JBIG 2 [19]; или же отдельные объекты в наблюдаемой на видео сцене (прежде всего фона) не представляют явного интереса и передачу/хранение их изображения можно описать более грубо, представить их в урезанном виде и даже исключить из сцены для более эффективного кодирования 2D-изображения этой сцены. А интересные для зрителя объекты или их части (например, лица людей или отдельных важных для зрителя объектов) воспроизводить при декодировании с более высоким качеством. Наконец, можно ограничить тонкие моменты динамики интересных для зрителя объектов сцены или их ценных для зрителя фрагментов и передавать изображение динамичной сцены в видеопотоке с более низкой частотой кадров, а при воспроизведении сцены на выходе декодера можно «восстанавливать» эту динамику «математически» (например, экстраполяцией динамики объекта (и даже сцены) на базе уже отобранных для передачи/хранения кадров или интерполяции «пропущенных» кадров на основе использования отобранных переданных/ хранимых кадров.
Очевидно, что исключение этой избыточности (назовем ее «прикладной») требует учета предпочтений зрителя, специфики прикладной задачи и, возможно, конечной цели (может, множественной) ее решения, а, значит, знания набора критериев для интеллектуальной обработки изображений/видеопотока с позиций ответа на поставленный выше вопрос «что является ценным и что является лишним?». Будем называть обработанные изображения и видео с минимизированной (и даже совсем исключенной) избыточностью того и/или иного типа эскизами. При этом восстановление видеопотока в декодере путем внесения исключенной кодером «прикладной избыточности» в такие эскизы на выходе декодера должно при восприятии восстановленного видео соответствовать в целом визуальному представлению зрителя, а само такое внесение должно проводиться с применением интеллектуальных средств восстановления изображений/видеопотока, в которых заложена информация о приложении и специфике сцен во время их обучения.
Здесь не имеются в виду «эстетические факторы и эстетические критерии» восстановленного видео с позиций визуального искусства, но и они могут быть приняты (пусть частично) во внимание, если зрителю интересны преобразования изображений/видео в соответствии с определенными художественными установками, включая бьютификацию лиц и фантазийные (в том числе, цветовые) оформления при неизменности «графического» каркаса (эскиз-версии) визуализируемой сцены и ее динамики в восстановленном видеопотоке, субъективные визуальные предпочтения и представления и т.п.
Интеллектуальная обработка видео в энкодере и, главным образом, в декодере требует подготовки соответствующего обучающего материала (для (глубокого) машинного обучения) и использования искусственного интеллекта (ИИ) под поставленную задачу (в частности, на базе натренированных (обученных) искусственных нейронных сетей - ИНС). И если в кодере ИИ решает задачу выделить/подчеркнуть то, что более важно зрителю по заданному им набору критериев, а на самого кодера возлагается задача по покадровому преобразованию полноценной цветной (или полутоновой) сцены в графический вид, в эскиз для сокращения как «прикладной», так и статистической избыточности с целью повышения значения Ксж и дополнительно сформировать обучающий материал и, возможно, «кадры-подсказки» для ИНС в декодере для более адекватного отображения текущей сцены, то ИИ в декодере решает более сложную задачу. Она состоит в том, что из значительного выхолощенного оригинального видео (цветного, или полутонового) до уровня графики, эскиза (скетча), «карандашного наброска» применительно к каждому кадру этого видео надо восстановить полноценное цветное (или полутоновое) изображение, максимально соответствующее визуальному представлению пользователя (зрителя) о передаваемых сценах в их динамике или максимально похожему в целом на оригинальное видео. Назовем эту задачу «восстановлением и колоризацией изображения/кадра» [20] или «восстановлением тональности в ч/б изображении». При необходимости можно организовать передачу «кадров-подсказок» для ИНС, отвечающей за трансформацию графических (эскизных) изображений сцен в цветные или полутоновые сцены путем передачи таких кадров на приемную сторону (и не обязательно реальном времени) с целью «дообучения» ИНС в реальном времени во время ее работы для решения указанной задачи для данной сцены.
Таким образом, повышение эффективности сжатия видео предлагается осуществить по следующей схеме: преобразовать исходный цветной или тональный видеоряд с постоянной кадровой скоростью в последовательность кадров-эскизов (как правило, ч/б, но допускается и цветных) с переменной кадровой скоростью, адаптирующейся к динамике объектов в сцене, в которых (кадрах) значительно сокращена естественная и прикладная избыточность. Это последовательность кадров-эскизов кодируется и передается в виде данных в канал связи или записывается в ЗУ. При восстановлении в декодере поток данных декодируется с целью получения последовательности кадров-эскизов, в которые вносится сокращенная (исключенная) избыточность средствами обученного ИИ (тональность, цвет и др.), чтобы представить зрителю (пользователю) восстановленный видеопоток, визуальное впечатление от которого полностью удовлетворяет зрителя. В идеале восстановленный видеопоток должен быть копией оригинального видео или незначительно, по мнению зрителя, отличаться от него.
Рассмотрим пример из области видеоконференсинга (ВКС), когда видеопоток от одного из участников ВКС-сеанса передается в реальном времени по каналу связи (физическому или виртуальному) другим участникам такого сеанса и при этом пропускная способность указанного канала изменяется во времени и может опускаться до предельно низких значений, не обеспечивающих полноценную передачу видеопотока в сжатом традиционным видеокодеком виде. Например, оригинальный видеопоток со скоростью R=12 Мбит/с сжат до значения скорости R=300 Кбит/с, т.е. в 40 раз, а текущая пропускная способность C(t) канала упала до значения 200 Кбит/с, т.е. R>C(t), что не позволяет без значительных потерь восстановить видео на стороне получателя. Если в этих условиях отказаться от передачи цвета, требующего 24 бит/пиксел в режиме RGB, и полутонов, т.е. преобразовать каждый кадр ВИ в эскизный, т.е. графический, вид (штриховой, карандашный) с тратой 1 бит/пиксел, а также дополнительно к этому можно каждый такой черно/белый кадр сжать в среднем в 5-10 раз (методами, представленными в стандарте JBIG2), если ли не более при сжатии с потерями такой графики, то выигрыш в сжатии увеличится. Переход на более низкую в 3-5 раз кадровую скорость (вместо 25 или 30 кадр/с перейти на 5…10 кадр/с) при восстановлении нормальной кадровой скорости в декодере дополнительно даст снижение скорости видеопотока в 3-5 раз. Таким образом, отказ от цвета и тональности, кодирование графического изображения и снижение кадровой скорости обеспечивает Ксж=24×5×3=360 раз, т.е R=12М/360=33333 бит/с<200 Кбит/с. Это означает беспроблемную передачу такого видеопотока по указанному каналу за счет почти на порядок (в 9 раз) более эффективного кодирования при соответствующем снижении качества на выходе декодера. При этом остаются значительные информационные ресурсы, которые могут быть использованы для передачи «кадров-подсказок» и другого типа трафика (например, аудио/речи или служебной информации). Предполагается при этом, что качество видео может быть восстановлено с использованием обученной для подобного приложения ИНС до уровня, близкого к стандартной передаче сжатого традиционным кодеком видеопотока, имея в виду визуальное впечатление зрителя - участника ВКС, а не критерий типа PSNR.
Второй пример касается видеонаблюдения, а именно записи видеосигнала за время Т- 24 часа от видеокамеры в ЗУ ограниченного объема. Пусть этот видеосигнал без обработки также характеризуется параметрами: скорость оригинального потока с видео-камеры 12 Мбит/с, частота кадров/с 30. Желательно сжать этот видеопоток не менее чем в 300 раз; Это можно обеспечить только за счет нивелирования «прикладной избыточности» прежде всего. Действуя, как и в предыдущем примере, мы обеспечим сжатие в 360 раз, т.е. скорость видеопотока будет равна 33333 бит/с, что даст за время Т информационный объем I=24×3600×33333=2879971200 бит~2900 Мбит=362.5 MB. Использование традиционного кодирования видеопотока увеличило бы этот объем и стоимость хранения сжатого видео на порядок. Но при этом остался бы вопрос качества отображения ситуации по видеонаблюдению на основе декодирования записанного в сверхсжатой форме видео. Качество восстановления оригинального видео в этом случае зависит от обучающего материала, от самого обучения ИНС, особенностей ее структуры применительно к данному приложению и ее работы. Специфика сохранности долгое время фона и самой сцены облегчает задачу качественного восстановления записанного в ЗУ видеопотока в цвете.
Раскрытие изобретения
Основная цель данного изобретения - разработка способа и реализующего его устройства для высокоэффективного сжатия видеоинформации большого объема в видеокодере, предназначенной для надежной передачи по каналам связи с ограниченной и меняющейся во времени пропускной способностью и/или запись в ЗУ ограниченного объема, причем при восстановлении в видеодекодере с поддержкой от обученной нейросети качество этой ВИ должно отвечать визуальному представлению зрителя (потребителя/пользователя) о демонстрируемых сценах и объектах интереса в них и, возможно, его дополнительным требованиям (например, ограничиться только приемом эскиз-версии видео с указанием ОИ). Ведущей идеей является минимизация скорости (объема) кодированного видеопотока, передаваемого через СПИ, или же минимизация объема ЗУ в СХД для записи этого потока в максимально компактной форме путем покадрового преобразования оригинального видеопотока в последовательность эскиз-кадров, дающих информационно ограниченное, но достаточное с позиций разных приложений представление о соответствующих кадрах оригинального потока, на основе которых (т.е. полученных таким образом эскиз-кадров с возможно пониженной кадровой скоростью) с использованием обученной на адекватном видеоматериале нейросети восстанавливается покадрово же с достаточной степенью похожести исходный видеопоток с его первоначальной кадровой скоростью.
Для достижения поставленной цели предлагается принять во внимание следующие факторы и учитывающие их действия применительно к машинному обучению (ML) нейросетей:
- включить в обучающий материал оригинальное цветное видео для разных приложений, полученного от источника видеопотока после предобработки этого потока (см. ниже),
- включить в указанный материал при необходимости черно-белый тональный видеопоток после преобразования в него исходного (оригинального) цветного потока (см. ниже),
- включить графический видеопоток (эскиз-версия видео), сформированный из исходного цветного или черно-белого видеопотока с использованием подходящего фильтра (см. ниже);
- включить в обучающий материал изображения объектов интереса (ОИ) в различных ракурсах;
- обучить искусственные нейросети (ИНС) на базе полученного и внешнего обучающего материала по разным приложениям, в рамках которых предполагается использование видео-кодека.
Применительно к кодеру:
- определить со стороны зрителей с учетом решаемой прикладной задачи какие объекты интереса (ОИ), изображения которых хранятся в Базе Данных (БД) ОИ, в предполагаемых сценах в их динамическом развитии представляются наиболее важными (например, отдельные типы предметов и/или лица людей) и необходимость их детектирования и, возможно, определения их примерного местоположения и размера в кадре;
- определить наличие объектов интереса (детектировать их с поддержкой обученной нейросети или готового решения из библиотеки OpenCV) в оригинальном видеопотоке и при необходимости определить их примерный размер по отношению к размеру кадра в текущей сцене, отображаемой в видеопотоке последовательностью несжатых кадров;
- определить смену сцены в оригинальном видеопотоке (если такая опция включена зрителем); при этом можно использовать метод вычисления взаимной корреляции rij смежных кадров в цифровой форме (метод DIC [12]) и сравнения rij с порогом μ (если rij<μ, то смены сцены нет, а иначе сцена изменена); возможно применение и других методов сравнения смежных кадров, в частности, сопоставление изображений на основе "характерных черт" [27] (например, контуров или характерных точек контура),
- кодировать каждый первый кадр первой сцены (и каждой новой сцены после первой сцены, если соответствующая опция включена) с использованием метода JPEG или аналогичного в качестве так называемого «кадра-подсказки» для нейросети, входящей в состав ИНС-движка, восстанавливающей и колоризующей в декодере полученные эскиз-кадры в порядке их последовательности и взаимосвязи смежных кадров одной сцены (на базе, например, вычисления их rij); представить закодированные кадры-подсказки в виде набора пакетов для передачи с контролируемыми скоростью и задержкой на приемную сторону (но не обязательно в реальном масштабе времени), для формирования цветовой палитры соответствующей сцены с использованием нейросети для восстановления и колоризации видео, восстановленного из кодированного эскиз-видеопотока, переданного на приемную сторону СПИ или записанного в ЗУ в эскиз-форме;
- преобразовать после предобработки оригинального видеопотока полноценное цветное изображение в текущем кадре в черно-белое полутоновое (grayscale) представление при необходимости;
- преобразовать оригинальное цветное и/или полутоновое изображение в текущем кадре в двух или четырех уровневое черно-белое изображение в виде эскиза (в графической, штриховой, «карандашной» форме); если же необходимость преобразования в полутоновые изображения последовательности кадров отсутствует, что определяет пользователь, то обеспечить преобразование каждого цветного кадра последовательности в эскиз-форму, минуя его преобразование в полутоновое изображение;
- записать отдельно в качестве обучающего материала три видеопотока для тренировки ИНС, а именно: оригинальный цветной видеопоток, преобразованный в ч/б полутоновую форму видеопоток (если он формируется), преобразованный в графическую эскиз-форму видеопоток;
- при необходимости ввести функцию бьютификации (активизируемую пользователем) для лиц в качестве детектируемых ОИ, представленных в текущем видеопотоке, определить местоположения этих лиц в текущей сцене, распознать черты лица (face features: морщины, губные складки, глубокие шрамы, цветные пятна и др.) и исключить некоторые из них в графическом варианте восстановленного в декодере эскиз-видеопотока;
- кодировать эскиз-видепоток в графической форме; при этом указанные области ОИ можно кодировать с учетом их бОльшего числа градаций яркости (например, представленных двумя битами), а основной поток с учетом меньшего числа градаций яркости (например, когда на каждый пиксел выделяется только один бит);
- задержать кодирование и передачу каждого эскиз-кадра графического потока на приемлемое для зрителя время (например, 90…150 мс), использовать текущий кадр и задержанный для интерполяции по ним промежуточных между ними кадров и если восстановленные путем интерполяции промежуточные кадры отличаются от реальных графических эскиз-кадров на величину меньше выбранного порога, то исключить из кодирования и передачи все такие реальные промежуточные кадры в виду их восстановления на приемной стороне с требуемой точностью;
- регулировать кадровую скорость графического потока, определяя необходимость кодирования нового эскиз-кадра и последующей его передачи по каналу связи путем определения уровня отличия этого кадра с последним переданным в канал кадром и сравнения уровня отличия восстановленного интерполяцией кадра и реального кадра с указанным выше порогом; если порог не превышен, то очередной эскиз-кадр не кодируется и не передается, а если превышен, то эскиз-кадр кодируется и передается в канал связи;
- пакетизировать данные на выходе эскиз-кодера (работающего, например, в соответствии с методами JBIG/JBIG2 с учетом информации о разных точностях представления фрагментов кадра) и мультиплексировать их совместно с пакетами «кадров-подсказок», данными о смене сцены, информацией о местоположении и примерных размерах ОИ и номерах отобранных для передачи графических кадров, а также при необходимости с речевыми/аудио-пакетами (в описании далее они не рассматриваются), а выходные данные мультиплексора передать в канал связи.
И применительно к декодеру:
-демультиплексировать поток пакетов из канала связи (кодированный эскиз-поток 1 с кадрами в графической форме; отдельный поток 2 управляющей служебной информации: данные о смене сцены, информация о детектировании ОИ в исходном видеопотоке и данные об их примерном местоположении в кадре, данные о разных точностях представления фрагментов эскиз-кадров с детектированными ОИ, номерах отобранных для передачи графических кадров, сигнале управления бьютификацией; отдельный поток 3 с кадрами-подсказками;
- депакетизировать каждый из трех указанных потоков, направив каждый из них в соответствующие блоки; (при этом речевой/аудио-поток обрабатывается, декодируется и воспроизводится и в данной заявке он не является объектом формирования, передачи и воспроизведения в режиме синхронизации в восстановленном на выходе декодера видеопотоком и упомянут здесь только из-за его традиционного включения в общий мультимедийный поток);
- декодировать переданные в канал графические эскиз-кадры, формирующие эскиз-поток в графической форме с пропущенными промежуточными кадрами;
- восстановить в интерполяторе, аналогичном интерполятору в кодере, на входы которого поступают переданные графические кадры из ЗУ (с записью в него при активизации функции бьютификации данных о кадрах с бьютификацией лиц или без активизации этой функции) и информация об их номерах, пропущенные промежуточные кадры с целью последующего включения их в восстановленный графический видеопоток и тем самым сделать восстановленный эскиз-поток в графической форме равномерно-непрерывным с исходной кадровой скоростью;
- активировать функцию бьютификации лиц (по решению пользователя), для чего бьютифицированный эскиз-поток одновременно подать на вход ЗУ и на вход блока включения в поток пропущенных и восстановленных в интерполяторе эскиз-кадров с целью формирования потока с постоянной кадровой скоростью; при деактивировании функции бьютификации поток эскиз-кадров может непосредственно подаваться на выход декодера и воспроизводится в графической эскиз-форме на мониторе;
- декодировать кадры-подсказки в JPEG-декодере (или аналогичном декодере), считая каждый из них первым кадром новой сцены и направив их в блок обученных ИНС, входящих в состав ИНС-движка, для их «дообучения/коррекции» под конкретную сцену с целью восстановления и колоризации видеопотока с качеством воспроизведения, удовлетворяющим зрителя; роль кадра подсказки для смежного неколоризованного еще эскиз-кадра может дополнительно играть и уже колоризованный (предыдущий в рамках данного видеоряда) эскиз-кадр,
- колоризовать восстановленный эскиз-поток в графической форме с использованием обученного ИНС-движка, включающего нейросеть для восстановления и колоризации эскиз-потока в графической форме (например, сеть сверточного типа) и нейросеть для учета цветового представления для каждого новой сцены в восстановленном видеопотоке на базе кадров-подсказок (например, используя конкурирующие нейросети генеративно-состязательного типа [21, 22]);
- при необходимости ввести эстетико-художественную окраску требуемого стиля в цветной видеопоток, или полутоновый поток, или графический эскиз-поток провести обработку соответствующего потока покадрово, но с учетом колоризации смежных эскиз-кадров с использованием отдельной специально натренированной под такую окраску ИНС для соответствующего потока; при отсутствии такой необходимости провести постобработку эскиз-потока с постоянной кадровой скоростью.
Остановимся теперь на наиболее важных позициях, составляющих суть предлагаемого способа высокоэффективного сжатия ВИ. К ним относится прежде всего преобразование изображений (кадров оцифрованного видеопотока или цифровых изображений/фотографий) в форму эскизов или скетчей (имитаций карандашных рисунков). Такие методы довольно хорошо отработаны. Широко известные пакеты Adobe Photoshop Elements, Corel PaintShop Pro, Zoner Photo Studio и другие включают наборы инструментов (фильтров и эффектов), реализующих такие преобразования на базе известных методов обработки изображений [15, 17].
В качестве примера на фиг. 1а,б приводится фотография-портрет человека на однородном фоне (изначально цветная, но при печати на ч/б принтере полутоновая) с сайта http://www.tekrardinle.net/watch?v=0S6-tJ4HIZY, преобразованная в эскиз (фиг. 1б).
Очевидно, что эскиз карандашного типа исключает помимо цвета и другие детали, но оставляет (что требуется в обязательном порядке) возможности по опознаванию представленного лица или другого объекта. При этом определенного (однозначного) типа эскиза без указания его особенностей нет, что иллюстрирует фиг. 2 (http://ru.photofacefun.com/photofilters/§ion id=2). Отметим только одно: даже непосвященному в вопросы обработки и кодирования изображений ясно, что информационный объем цветного/полутонового изображения и его эскиз-копии силь-но отличаются. Отметим, что исходное цветное или ч/б полутоновое изображение и его эскиз-копия служат в качестве обучающего материала для ИНС, входящей в состав ИНС-движка, соответственно для выхода нейросети и ее входа.
Для повышения степени потенциального сжатия графических данных в эскиз-форме желательно обойтись минимальным числом линий, оставляя все-таки хорошие возможности по опознаванию объекта (в данном случае - наиболее сложного для опознавания - лица человека) и, возможно, игнорировать общий фон, но не важные объекты в сцене.
Кодирование изображений (в частности, на базе стандартов JPEG/JPEG-2000 или подобных кодеков) широко представлено в разных источниках, включая и стандарты в этой области.
Опускаем также хорошо известные методы кодирования и декодирования графики (в частности, архивации при lossless и lossy режимах, описанные, например, в литературе [14, 19] и стандартах JBIG и JBIG 2), но отметим одну важную позицию: колоризацию ч/б графики в формате эскиз (или скетч).
Колоризация широко используется для преобразования полутоновых изображений (старых фотографий и ч/б фильмов) в цветные изображения. Свою позитивную роль в этом играют и «цветовые подсказки» для отдельных фрагментов изображения. Но более интересен с позиций данной заявки случай преобразования эскиза в цветное изображение с использованием нейросетей. Обзоры на эту тему можно посмотреть в [15, 20]. Пример колоризации эскиза, изображенного на фиг. 1б, дан на сайте http://www.tekrardinle.net/watch?v=0S6-tJ4HIZY (в конце видеоряда), где расцвеченное изображение девушки отличается в цветовом отношении в одежде, очках и волосах от ее изображения на фиг. 1а, но впечатление о личности для зрителя остается достаточно полное. При наличии «цветовой подсказки» для нейросети восстановленное и колоризованное изображение могло бы несущественно отличаться от оригинала, т.е. приемлемо для зрителя.
Вопрос о детектировании ОИ (в частности, лиц) и определения их границ решен достаточно надежно на базе CV-метода Виолы-Джонса, входящего в пакет OpenCV [13]. Но в связи с более широким использованием нейросетей этот пакет поддерживает такие фреймворки для глубокого обучения как TensorFlow, Torch/PyTorch и Caffe. В него входит и продвинутый метод детектирования ОИ (включая и лиц) на базе обученных ИНС, что, однако, требует больше вычислительных ресурсов.
Математические методы экстраполяции и интерполяции изображений используются широко [26]. В патенте США [18] этот подход используется как основной. В нашем случае интерполяция промежуточных эскиз-кадров на базе текущего /-го и задержанного i-n -го в ЗУ на п кадровых интервалов используется для того, чтобы проредить кадры, для которых характерна малая динамика в сцене, т.е. понизить кадровую скорость, если они восстанавливаются с контролируемой ошибкой и согласуются с динамикой объектов в сцене. Если при интерполяции выясняется, что ошибка интерполяции превосходит порог, то проводится интерполяция i-го и i-n+1 -го кадра и контролируется ошибка интерполяции. Остановка этого процесса будет на i-n+j - м кадре, если указанная ошибка меньше порога, т.е. эскиз-кадры с номерами i-1, …, i-n+j могут быть восстановлены с контролируемой точностью и их можно не передавать на приемную сторону, но служебную информацию о номерах пропущенных эскиз-кадров (или номерах оставшихся кадров) надо передавать на приемную сторону. Интерполятор должен работать как на стороне кодера, в котором решается вопрос какие эскиз-кадры можно пропустить и тем самым снизить кадровую скорость без потери динамики объектов в динамической сцене, так и на стороне декодера, в котором интерполяция позволяет восстановить пропущенные в кодере эскиз-кадры с контролируемой погрешностью и тем самым восстановить исходную кадровую скорость.
Так как основную интеллектуальную обработку видео проводит ИНС, восстанавливающей и колоризующей видеопоток, то помимо независимого от данного ИНС-комплекса (или ИНС-движка) внешнего обучающего материала для машинного обучения (MML) нейросети предполагается подготовка собственного обучающего материала, получаемого из цветного видеопотока, его преобразования в ч/б полутоновый видеопоток и затем преобразования оригинального видеопотока в эскиз-форму, где каждый кадр рассматривается как автономного изображение, характеризуемое своим текущим i-м номером). Эскиз-кадры, а также соответствующие цветные или ч/б полутоновые кадры указанных видеопоследовательностей служат обучающим материалом для ИНС: эскиз-кадры - как входы, цветные или ч/б - как выходы ИНС.(Отметим, что ч/б тональное видео целесообразно использовать, если описываемый способ сжатия ВИ применяется и для кодирования ч/б тонального видео также).
В процессе работы декодера и блока ИНС-движка, который может включать многослойную сверточную сеть, и/или рекуррентную сеть, и/или их смесь и дополнительно генеративно-состязательную сеть, если поддерживается режим доооучения нейросетей в процессе их работы. Дообучение фактически связано с передачей с некоторой, возможно, задержкой первого цветного кадра-подсказки первой сцены после его кодирования на передающей стороне (например, кодером JPEG) и декодирования на приемной стороне (например, декодером JPEG), если сцена практически не меняется (небольшую динамику присутствующих в ее рамках объектов не учитываем), или же первого кадра каждой новой сцены в рамках одного видеопотока. При дообучении указанным кадрам-подсказкам придается высокий приоритет, что может изменять веса нейронов во всех слоях. В этом случае фактически прерывается нормальная работа ИНС и он переходит в режим дообучения, в котором обучающим материалом является только кадр-подсказка для обрабатываемого видеопотока. Если же видеопоток содержит несколько сцен, то используется набор кадров-подсказок для каждой новой сцены, причем процесс дообучения в этом случае обеспечивается при детектировании смены сцены.
Дообученные ИНС используются в качестве основных механизмов, реализующих процесс восстановления и колоризации эскиз-кадров видеопотока. При этом процесс обучения ИНС происходит практически автономно от процесса передачи/записи видеопотока. Обучающий материал должен соответствовать специфике видео-приложения (например, специфике видеонаблюдения) «в режиме предварительной настройки», а собранный и записанный в БД обучающий материал может «дообучать» ИНС уже «в режиме точной ее настройки», но опять -во время автономного режима «обучения ИНС». А вот одиночные кадры-подсказки обеспечивают «дообучение» под конкретную текущую сцену в процессе работы и прерывания этой работы ИНС.Такую же роль играют и уже колоризованные эскиз-кадры для своих смежных еще неколоризованных эскиз-кадров для обеспечения согласованности их раскраски.
На основе выше написанного укажем следующие факторы и механизмы, которые способствуют повышению качества воспроизведения видео на выходе декодера за счет адаптации кодера и декодера к специфике приложения, но главным образом к специфике сцены и ее динамики, что выражается в следующем:
- учет особенностей каждой новой сцены на основе посылки на приемную сторону кадров -подсказок для дообучения ИНС (предлагается посылать первый кадр каждой новой сцены, но возможен выбор любого подходящего кадра из сцены, если не обеспечивается реальный масштаб времени для видеопотока, что имеет место при записи в ЗУ),
- анализ видео в кодере на предмет смены сцены,
- дообучение ИНС под каждую сцену, т.е. восстановление и колоризация кадра на базе ИНС должны быть согласованы с текущей сценой,
- учет восстановления и расцветки (или докрашивания) еще неколоризованных эскиз-кадров на основе уже колоризованных смежных эскиз-кадров для их согласования в предположении их сильной корреляции, которая предполагает использование расцветки колоризованного кадра как основы для расцветки смежного, но еще неколоризованного кадра,
- учет динамики в сцене: если динамика мала по отношению к кадровой скорости, т.е. кадровая скорость избыточна для ее отображения, что определяется в кодере точностью интерполяции промежуточных эскиз-кадров, то исключаем эти кадры при передачи и восстанавливаем их в декодере интерполяцией, т.е. переменная кадровая скорость передаваемого эскиз-видео зависит от динамики в сцене. Этот механизм фактически заменяет в традиционных видео-кодеках оценку движения.
Краткое описание чертежей
На Фиг. 1а представлено полноценное цветное (на бумаге - полутоновое) изображение (цифровое фото) человека, которое можно рассматривать как отдельный кадр видеопотока.
На Фиг. 1б показана экскиз-версия полноценного цветного изображения.
На фиг. 2а, б, в, г показаны различные версии эскизов с одного оригинального цветного изображения.
На фиг. 3 дана блок-схема кодера источника видеоинформации.
На фиг. 4 представлена блок-схема декодера.
Осуществление изобретения
Кодер и декодер устройства сжатия видеоинформации для последующей передачи по каналам связи с относительно низкой и/или изменяющейся пропускной способностью или для запоминания в системах хранения данных показаны на фиг. 3 и фиг. 4.
На вход кодера видеосигнал поступает от источника видео (блок 301) в форме видеопоследовательности, представленной набором кадров, следующих с равномерной кадровой скоростью FR кадр/с. Видеосигнал далее подвергается предобработке в блоке 302 (например, для подавления шума) и с его выхода поступает на переключатель П1 (блок 326), который может направить по сигналу управления блоком 326 предобработанный видеопоток на блок 303, реализующий преобразование цветного видео в ч/б полутоновое видео, используемое в основном в качестве обучающего материала для нейросети, или же прямо на блок 304 (как показано на фиг. 3), выполняющий функцию преобразования кадров цветного (или полутонового ч/б) потока в эскиз-форму. Блок 304 является основным в кодере, определяет специфику эскиз-видео и характеристики кодера и реализует соответствующий эскиз-фильтр. Выходной поток блока 304 поступает в блок 305 задержки кадров, во время которой проводится анализ соответствия динамики в сцене и кадровой скорости.
Адаптация текущей кадровой скорости эскиз-потока к динамике объектов в сцене производится в блоке 306, задача которого исключить из процесса кодирования и передачи на приемный конец тех эскиз-кадров, которые могут быть достаточно точно восстановлены в декодере путем интерполяции пропущенных эскиз-кадров по смежным переданным эскиз-кадрам. Последние поступают из блока 306 на кодирование в блок 307 эскиз-кодера, который может с учетом управляющего сигнала на его вход управления использовать lossless кодирование бинарного потока (например, на базе энтропийного кодера JBIG/JBIG2) или lossy кодирования эскиз-кадров потока в соответствии с кодером JBIG2). Кодированный эскиз-поток поступает в блок 308 для пакетизациии и затем в блок 309 для мультиплексивания (уплотнения) с кадрами - подсказками в пакетной форме и служебными данными в пакетной форме.
Кадры-подсказки для дообучения нейросети в декодере под текущую сцену представляют собой первый кадр каждой новой сцены в видеопотоке. Эти кадры перед передачей на приемный конец поступают с выхода блока 302 через переключатель П2 (блок 310) при наличии разрешающего сигнала управления на его управляемый вход на вход lossy-кодера JPEG или его аналога (блок 311), где кодируются с контролируемыми потерями в качестве изображения. Кодированный кадр-подсказка пакетизируется в блоке 312 и потоки пакетов от блоков 308 и 312 уплотняются в мультипексоре (блок 309).
Исходный цветной видеопоток, ч/б полутоновый видеопоток, если он формируется, и эскиз-поток поступают на запись в ЗУ (блок 313) для последующего возможного использования в качестве обучающего материала в конкретной прикладной области для нейросети, которая будет использоваться для подобных задач кодирования видео при его передаче и применяться непосредственно для обучения нейросети, входящей в состав ИНС-движка в декодере, если предполагается этот видеопоток в сжатой форме хранить в СХД, а затем по запросу его воспроизводить.
Оригинальный поток с выхода блока предобработки 302 одновременно поступает на детектор объекта интереса (ОИ) - блок 314, функционирование которого основано на использовании специально обученной ИНС (блок 315) и двустороннего взаимодействия с ней, а ее обучение базируется на обучающем материале, предварительно записанном в БД, хранящей записи ОИ разного типа (блок 316). Управляющая информация о выборе конкретных ОИ из списка Объектов Интереса и их описания (обычно в виде изображений) подается от блока установок параметров кодека 317, в которым установки даются пользователем. В работу блок 314 также включается по сигналу от пользователя через блок установок 317
Помимо указаний об ОИ пользователь может с помощью блока 317 управлять переключателем П1 (блок 326), задавать старт блока 318, который при указании, что ОИ является лицо человека и его надо бьютифицировать (например, исключить морщины и шрамы на этом лице в кадре), а от детектора ОИ (блок 314) поступает соответствующая информация о лице, от блока 317 поступает сигнал управления «распознавать черты этого лица» (face features: нос, рот, глаза, губные складки, морщины, шрамы и др.). Работа блока 318 базируется на методах компьютерного зрения (CV), которые представлены в открытой и большой библиотеке CV-функций в пакете OpenCV.
Таким образом, через блок 317 пользователь может дать установку «детектировать ОИ» (в частности, лицо), определить его границы, т.е. определить местоположение лица и его примерный размер, задать бьютификацию некоторых черт лица в блоке 318, дать сигнал на преобразование цветного видеопотока в ч/б полутоновый и сигнал на запуск в работу детектора смены сцены (блок 319), определить тип кодера в блоке 307, собирать все эти служебные данные, включая информацию от детектора смены сцены, который формирует номер первого кадра в новой сцене, и от детектора ОИ (обнаружение ОИ, его примерные местоположение и размер), в блоке сборки данных 320, информация о которых подается на блок пакетизации служебных данных 321 и в пакетной форме передается для уплотнения в блок 309.
Для решения задачи регулировки кадровой скорости в блоке 306 служат блок ЗУ 322, осуществляющий запись нескольких подряд идущих эскиз-кадров, на который поступает эскиз-поток с выхода блока 305, одновременно эскиз-кадры с выхода блока 305 подаются на интерполятор (блок 323), блок сравнения текущего кадра с интерполированным изображением смежных кадров (блок 324) и детектор смены сцены 319. Выход ЗУ 322 поступает на второй вход интерполятора и второй вход блока сравнения 324, выход которого подключен ко входу селектора кадров (блок 325). Сигнал последнего подается на блок 306, реализующий функцию прореживания эскиз-потока.
Рассмотрим структуру декодера и преобразование кодированного эскиз-видеосигнала в восстановленный и колоризованный видеопоток. На вход декодера из канала связи или из ЗУ в блок демультиплексирования (разуплотнения) 401 поступает поток пакетов. Демультиплексор направляет первый (основной) поток эскиз-пакетов в собственно депакетизатор (блок 402) этого декодера, но одновременно второй поток через переключатель П3 (блок 410) направляет в блок депакетизации пакетов кадров-подсказок (блок 411), а третий поток пакетов служебной информации направляет в соответствующий депакетизатор (блок 413).
Основной поток после депакетизации поступает в JBIG/JBIG2 - декодер закодированных эскиз-кадров (блок 403). Декодированный в блоке 403 поток эскиз-кадров с неравномерной кадровой скоростью через переключатель П1 (блок 404) поступает (при отсутствии со стороны пользователя сигнала активизации функции бьютификации) в блок добавления пропущенных кадров 405, которые восстанавливаются интерполяцией в декодере по схеме, которая реализована в кодере, блоками ЗУ1 416, блоком интерполяции 417, блоком контроля точности интерполяции и управления скоростью эскиз-потока 418, который получает от интерполятора восстановленные кадры и подает их на блок 405. При активизации функции бьютификации, реализуемой блоком 415, управляющим сигналом и передачей ему от блока установок параметров декодера 414 этого управляющего сигнала и информации о выделенных чертах лица и их местоположении на лицах в кадре, выполняется бьютификация ОИ (лиц) и поток эскиз-кадров после бьютификации поступает на второй вход блока 405. При этом переключатель П1 устанавливается сигналом от блока 414 в «нижнее положение» (разрешение бьютификации).
Таким образом блок 405 формирует на своем выходе или небьютифицированный, или бьютифицированный поток эскиз-кадров с постоянной скоростью, которые далее подаются через переключатель П2 (блок 406) на блок восстановления и колоризации этого видеопотока 407 с использованием обученной комплексной ИНС (ИНС-движка), представленной блоком 409. Дообучение под конкретную сцену указанной ИНС производится декодированным в декодере JPEG (блок 412) кадром-подсказкой, на который этот кадр подается из блока 411.
Комплексная ИНС (или ИНС-движок) может включать в свой состав, к примеру, сверточную нейросеть (СНС) и генеративно-состязательную нейросеть (ГСНС), которые работают совместно для реализации процесса восстановления и колоризации последовательности эскиз-кадров. Обучается эта комплексная ИНС во время, когда декодер не функционирует, на базе материала для глубокого машинного обучения (MML), а дообучение ее под конкретную сцену происходит во время работы декодера путем приема и обработки кадров-подсказок от блока 412 и/или во время колоризации смежных эскиз-кадров, когда уже колоризованный в блоке 407 эскиз-кадр записывается в ЗУ2 (блок 419) и эта запись уже поступает на ИНС-движок для «дообучения» ИНС, которая восстанавливает и колоризует (точнее: доколоризовывает (докрашивает) смежный эскиз-кадр, если основу его колоризации составляет предыдущий колоризованный кадр, что предполагает их «похожесть»).
Как отмечалось выше, восстановление первоначальной кадровой структуры видеопотока с постоянной кадровой скоростью происходит в блоке 405, на третий вход которого поступают восстановленные интерполятором кадры. Для этого от переключателя П1 поступает на ЗУ1 (блок 416) поток эскиз-кадров прямо (на первый вход блока 416) или после их бьютификации (на второй вход блока 416), блоки кадров считываются интерполятором (блок 417), причем первый кадр в этом блоке и последний служат для интерполяции пропущенных эскиз-кадров, а служебные данные об их номерах поступают из блока установок 414 на блоки 416, 417 и 418. Из интерполятора восстановленные кадры после проверки (сравнение с порогом) в блоке контроля 418 поступают на блок 405. Кадр, полученный интерполяцией, но не прошедший сравнение может помечаться как «дефектный».
Состояние всех переключателей устанавливается на основе служебных данных из блока 414. При этом переключатель П3 пропускает первый кадр сцены, что определяется служебными данными, обрабатываемыми в блоке 414, переключатель П1 задает последующее восстановление небьютифицированного или бьютифицированного потока эскиз-кадров, переключатель П2 задает вывод на устройство отображения (экран, монитор) для зрителя восстановленного и колоризованного потока в блоке 407 или же постобработку и вывод эскиз-потока в блоке 408. Блок 408 может осуществлять и специальную стилевую и художественную обработку эскиз-потока при условии, что комплексная ИНС обучена специально на этот режим обработки эскиз-потока и стилевую колоризацию. При этом режим дообучения ИНС в блоке 409, а также восстановление, стилевая обработка и колоризация смежных кадров в блоке 408 проходят способом, подобным восстановлению и раскраске смежных кадров в блоке 407 с поддержкой ИНС из блока 409.
Аббревиатуры в тексте заявки:
ВИ - видеоинформация
IP - интернет-протокол
СПИ - система передачи информации
СХД - система хранения данных
СОД - система обработки данных
БД - база данных
ТВ - телевидение
ВП - видеопоток
ЗУ - запоминающее устройство
СКО - среднеквадратическая ошибка
SNR - отношение сигнал/шум (ОСШ)
PSNR - пиковое ОСШ
MOS - mean opinion score
SD - Standard Definition
HD - High Definition
RGB - Red-Green-Blue (аддитивная цветовая модель)
ОИ - объект интереса
ИНС - искусственная нейронная сеть
ИИ - искусственный интеллект
ВКС - видеоконференцсвязь
ML - Machine Learning
MML - материал для машинного обучения
CV - computer vision
Источники информации:
1. The Zettabvte Era: Trends and Analysis (June 2017). https://www.cisco.com/ c/en/us/solutions/ collateral/service-provider/visual-networking-index-vni/vni-hvperconnectivity-wp.html
2. Information theory. Wikipedia. https://en.wikipedia.org/wiki/Information_theory
3. Video quality. Wikipedia. https://en.wikipedia.org/wiki/Video_quality
4. MPEG2 и MPEG4 - описание форматов (http://www.truehd.ru/03.htm)
5. AV1 beats x264 and libvpx-vp9 in practical use case, https://code.fb.com/video-engineering/avl-beats-x264-and-libvpx-vp9-in-practical-use-case/ April, 10,2018.
6. Rate-distortion theory. Wikipedia. https://en.wikipedia.org/wiki/Rate-distortion_theory
7. Д. Ватолин, А. Ратушняк, M. Смирнов, В. Юкин. Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео. М., Диалог-МИФИ, 2002 г.
8. US 9236882 В2. Data compression systems and methods - Patent USA, priority 1.06.2015, author James J. Fallon.
9. РФ. 2654126. Способ и устройство высокоэффективного сжатия мультимедийной информации большого объема по критериям ее ценности для запоминания в системах хранения данных. Приоритет от 9.09.2016, автор В.А. Свириденко.
10. Поиск похожего изображения: https://yandex.ru/support/images/similar.xml
11. Поиск по картинке: https://support.google.com/websearch/answer/1325808?hl=ru
12. Корреляция цифровых изображений: https://en.wikipedia.org/wiki/Digital_image_correlation
13. Алгоритм Виолы-Джонса:
https://en.wikipedia.org/wiki/Viola%E2%80%93Jones_object_detection_framework)
14. Методы и алгоритмы сжатия графической информации. https://cyberleninka.ru/article/v/metody-i-algoritmy-szhatiya-graficheskoy-informatsii
15. Нейросеть Pix2pix реалистично расцвечивает карандашные наброски и черно-белые фотографии, https://habr.com/post/399469/
16. Нейросеть Google сжимает фотографии лучше JPEG, https://habr.com/post/372607/
17. Патент США, №20050135480 Ф1, Microsoft. System and process for broadcast and communication with low bit-rate bi-level or sketch video. Jiang Li et al. Filled Feb 4,2005.
18. US 20060215014, Microsoft. System and method for very low frame rate teleconferencing employing image morphing and cropping. Cohen; Michael et al., 2006
19. JBIG 2. Википедия. https://ru.wikipedia.org/wiki/JBIG2
20. Колоризация. Википедия, https://ru.wikipedia.org/wiki/
21. И. Гитман. Применение конкурирующих сетей для задач машинного обучения. М., МГУ, 30 стр. , 2016
22. Генеративно-состязательная сеть. Википедия. https://ru.wikipedia.org/wiki/
23. Face feature recognition. https^||www/youtube/com|watch&v=R3IwQldUu3c
24. Deep Learning based Object Detection using YOLOv3 with OpenCV. https:// www, learnopencv.com/
25. С. Шляхтина. Картина из фотографии своими руками. https://compress.ru/article.aspx?id=23553
26. Дешевый метод интерполяции работает не хуже нейросетей. https://habr.com/post/399119/
27. Сопоставление изображений на основе "характерных черт". http://wiki.technicalvision.ru/index.php/
28. OpenCV. Wikipedia. https://en.wikipedia.org/wiki/OpenCV
29. Data Compression/Evaluating Compression Effectivenes. Wikipedia. https://en.wikibooks.org/wiki/Data_Compression/Evaluating_Compression_Effectiveness
30. Video Compression using Recurrent Convolutional NNs. Chedric Yue Sik Kin, B.Coker. 2016.
31. A Machine Learning Approach to reducing Image Coding Artifacts. Ichiro Matsuda et al. 25 European Signal Processing Conference. 2017.
32. Иванов В.Г. и др. JPEG и вейвлет-копрессия объекта и фона изображения с различной степенью качества Вестник Национального технического университета Харьковский политехнический институт. Серия: Информатика и моделирование. 2007 г.