LINUX.ORG.RU
ФорумTalks

Видеохостинги: как экономить место с помощью ИИ.

 , , , ,


1

1

Подумалось мне часом… Нынче ИИ научились генерировать видео по текстовому описанию. И наоборот: генерировать текстовое описание по видео. А что если… что если малозначительные видео типа «медведь ловит рыбу» закодировать в виде текстового описания, оставив звуковую дорожку? Ну, типа, «бурый медведь на Камчатке ловит нерестящегося лосося в реке днём». Сколько места можно высвободить! И ведь всем будет по фигу, что медведь не совсем тот, река несуществующая и лосось не лососеватый. Или, возьмём видео от нашего @Croco. Через 50 лет только близких родственников будет волновать, что ИИ сгенерировала мужика похожего на Croco, а не точно его самого.

★★★★★
Ответ на: комментарий от CrX

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

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

Может быть, ИИ может делать generic-фотографии типа «я на фоне Колизея», но он не сможет обеспечить достаточную глубину достоверной информации.

P.S. а в тесте я всё угадал, кроме второй фотографии — разумеется, по артефактам. Но даже если ИИ научится делать картинки без артефактов — их ценность для авторов и зрителей (моделей) нулевая. Например, женщины готовы собственные фотографии рассматривать и изучать каждую морщинку — ну как тут нарисуешь достоверно.

knovich
()
Ответ на: комментарий от knovich

Но даже если ИИ научится делать картинки без артефактов — их ценность для авторов и зрителей (моделей) нулевая.

Не, это само собой. Основной смысл фотографий — сохранение памяти о событии — ИИ никак не замещает.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Ну вот поэтому я сомневаюсь в возможности такого варианта:

Можно сохранять, грубо говоря, видео в 320×200, с дополнительным текстовым (а можно и не текстовым, а хитровыдуманным) описанием деталей, и нейросетка уже по этой инфе достраивает что-то очень похожее (не отличимое, если не присматриваться — как и нынешние x265 и иже с ним) в нужном разрешении.

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

Получается парадокс — чем меньшему количеству людей нужна информация, тем сложнее её сгенерировать. А именно такая — малозначимая для большинства — информация и занимает львиную долю объёма хранилищ (наверное).

knovich
()
Ответ на: комментарий от knovich

Ну смотри, дополнительно «текстовое» (ему, кстати, не обязательно быть именно текстовым) описание может быть достаточно подробным. Цель здесь не сгенерировать «нечто», а сгенерировать нечто, визуально не отличимое на первый взгляд от оригинала. Как при любом lossy-кодировании. Часть инфы теряется, но зритель без специального сравнения «с микроскопом» этого не замечает. Там должна комбинация из нескольких сеток работать, одна генерирует это самое «дополнительное описание», вторая генерирует по нему фрагмент, третья изображает из себя зрителя и сравнивает результат с оригиналом видео. Естественно, не предполагается, что это самое текстовое описание будет в пару предложений. Просто килобайты вместо мегабайт, например.

Более того, идею можно развить и до lossless-кодирования. Так, чтобы в итоге восстанавливалось оригинальное видео пиксель в пиксель. Экономия места за счёт вычислительных мощностей. Но в таком виде, думаю, будет не такая впечатляющая эффективность. Хоть и выше, чем у классических lossless-кодеков.

Получается парадокс — чем меньшему количеству людей нужна информация, тем сложнее её сгенерировать. А именно такая — малозначимая для большинства — информация и занимает львиную долю объёма хранилищ (наверное).

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

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 5)
Ответ на: комментарий от CrX

изображает из себя зрителя и сравнивает результат с оригиналом видео

У меня вот в этом месте возникает возражение. Если вернуться к моей фотографии выше, то там видны вот такие лыжи. Это российская имитация австрийской модели, которая в пять раз дороже. Отличия, конечно, видны — можно научить нашу нейросеть читать надписи и объяснить, что это очень важно. Но что, если вместо первой (российской) была вот такая модель? Разница — только в дырке на носке и цвете логотипа, но из этого все, кто сведущ, сделают вывод, что первая пара коньковая, а вторая классическая. Причём только потому, что фирма Fischer в последние годы (определяем год по шрифту надписи) выпускает профессиональные коньковые модели (определяем по цвету) только с дыркой. Итого из такой детали можно извлечь, что гонка была тем или иным стилем.

Теперь вопрос: третья нейросеть-зритель должна эти тонкости знать или нет? Если да, то нужно держать множество нейросетей, одна сведуща в лыжах, другая по форме зада может определить пол и возраст человека (я вот не всегда могу, а кому-то это может быть важно), третья разбирается в шмотках, четвёртая по мешкам под глазами определяет, что данный человек в тот день не выспался, но не является алкоголиком (потому что — что?)

Не слишком ли накладно содержать такое количество нейросетей (в т.ч. и с точки зрения вычислений)? Мне кажется, что традиционные алгоритмы сжатия будут и быстрее, и размер в итоге будет такой же.

Так, чтобы в итоге восстанавливалось оригинальное видео пиксель в пиксель.

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

Чёрт знает, конечно, может, я слишком скептически настроен. Мне просто кажется, что нейросети прочно заняли нишу генерации малоценной информации, и повысить её ценность без изменения самых фундаментальных принципов (т.е. это должна быть вовсе не нейросеть) не выйдет. По-моему, искусственные нейросети не умеют «делать выводы» (что бы это ни значило). А естественные это делают потому, что очень большие, и аналитическое мышление в каком-то смысле является следствием гигантского размера.

knovich
()
Последнее исправление: knovich (всего исправлений: 2)
Ответ на: комментарий от knovich

Теперь вопрос: третья нейросеть-зритель должна эти тонкости знать или нет?

Не должна. Она должна смотреть на две картинки и говорить «отличающиеся» или «одинаковые» точно так же, как сейчас говорит человек. Тренировать её надо именно так. Никаких знаний о предметах, полах людей и прочем ей знать не надо для этого.

Не слишком ли накладно содержать такое количество нейросетей (в т.ч. и с точки зрения вычислений)?

Слишком. Хотя для холодного хранения большого количества инфы может быть оправдано. Даже сейчас.

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

Быстрее-то они будут, причём быстрее на несколько порядков (именно для сжатия, а не разжатия). А вот размер как раз удастся сильно сократить.

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

даже

Человек тут очень плохое мерило. Человек в этом очень плох. Это делается алгоритмически. Был бы человек в этом хорош, вы бы не смогли не морщась смотреть кино на блюреях, в ютубах, и прочем — только оригинальный мастер на несколько терабайт лосслесс-видео. Но их нигде как раз нет, даже в продаже задорого для эстетов. Потому что человеку это не надо — он прекрасно переносит «незначительные» потери информации.

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

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

Это не так. Нейросети, например, гораздо лучше справляются с тем же апскейлом картинок из низкого разрешения в высокое. Значительно лучше обычных не-нейросеточных алгоритмов. Причём и очень значительно лучше по субъективному взгляду человека, и значительно лучше по объективному сравнению результата с оригиналом высокого разрешения.

Можно, кстати, реализовать тупую и упрощённую схему с использованием нейросетей, которая тоже даст некоторую экономию места за счёт вычислительных ресурсов. Не продвинутый вариант, который мы обсуждали выше, а тупой из существующих инструментов: даунскейлим оригинальное видео… Или давай для простоты картинку даже. Даунскейлим оригинальную лосслесс-картинку. Результат апскейлим нейросеткой. Затем вычитаем из оригинала апскеил. Получаем разницу. Разницу кодируем и жмём. В итоге у нас есть картинка маленького разрешения и малого размера + пожатая разница малого размера — из этой инфы в совокупности можно восстановить оригинал. В итоге мы экономим место на хранение картинки. Да, за счёт значительного увеличения необходимых вычислительных мощностей.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 3)
Ответ на: комментарий от knovich

всем героям эта фотография важна до мельчайших деталей

нет конечно

женщины готовы собственные фотографии рассматривать и изучать каждую морщинку

лечится надо

через пол часа они уже не вспомнят какие там морщинки где были

Bad_ptr ★★★★★
()

оставив звуковую дорожку

типа видео нейросеть сделает, а звук нет?

Я бы предложил просто показывать текстовые описания и субтитры. Заодно мож люди читать научатся…)

sergej ★★★★★
()
Ответ на: комментарий от sergej

Звук мало места занимает

tiinn ★★★★★
() автор топика
Ответ на: комментарий от Bad_ptr

нет конечно

Боюсь, что я лучше знаю, так как с ними общался.

лечится надо

Это тут ни при чём, люди сами решают, на что им обращать внимание.

knovich
()
Ответ на: комментарий от knovich

Но их при этом не смущает, что фотография в JPEG, а не в RAW или хотя бы PNG. Уже потеряны многие детали.

CrX ★★★★★
()
Ответ на: комментарий от knovich

я лучше знаю, так как с ними общался.
люди сами решают

они сами не знают чего хотят.. Это как с аудиофилами.

Bad_ptr ★★★★★
()
Ответ на: комментарий от CrX

Она должна смотреть на две картинки и говорить «отличающиеся» или «одинаковые» точно так же, как сейчас говорит человек.

Так ведь одному человеку две картинки кажутся одинаковыми, а другой (специалист) видит отличия. Меня вот это беспокоит. Две картинки будут гарантированно одинаковыми с точки зрения человека, если различия в принципе не видно глазом с какого-то расстояния. Сюда же можно отнести то, что мы не отличим два узора из повторяющихся элементов, если они на половину длины элемента сдвинуты. Но с такими случаями современные кодеки вроде и так справляются. Или я не прав?

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

Так ведь при этом не появляется дополнительной информации, просто контуры становятся чётче. Если на маленьком разрешении было тёмное пятно, то никто, наверное, не сможет повысить разрешение так, чтобы стало понятно — это ёжик или шляпа. EDIT: имеется в виду — без контекста, спрятанного за пределами изображения.

Даунскейлим оригинальную лосслесс-картинку. Результат апскейлим нейросеткой. Затем вычитаем из оригинала апскеил. Получаем разницу. Разницу кодируем и жмём. В итоге у нас есть картинка маленького разрешения и малого размера + пожатая разница малого размера — из этой инфы в совокупности можно восстановить оригинал. В итоге мы экономим место на хранение картинки. Да, за счёт значительного увеличения необходимых вычислительных мощностей.

Так ведь разница будет такого же разрешения, как оригинал, почему, будучи сжатой, она займёт меньше места? Или я не понял идею?

knovich
()
Последнее исправление: knovich (всего исправлений: 1)
Ответ на: комментарий от CrX

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

Зависит от критерия качества, который не всегда просто формализуем. Математически максимальное сжатие без потерь гарантирует разложение по собственным функциям изображения, причём матрицу надо пересчитывать заново для каждого кадра.
Практически используют методы типа «Compressing images with singular value decomposition» (SVD) ©.
Там внизу можно сравнить фото с различными параметрами такого сжатия.

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

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

quickquest ★★★★★
()
Ответ на: комментарий от CrX

Уже потеряны многие детали.

Это всё правда, но мне кажется, что нейросеть из словесного (или какого угодно абстрактного) описания не сможет восстановить детали, значимые для определённого круга лиц, если её заранее не обучили узкоспециальным вещам.

knovich
()
Последнее исправление: knovich (всего исправлений: 1)
Ответ на: комментарий от CrX

Можно, кстати, реализовать тупую и упрощённую схему с использованием нейросетей, которая тоже даст некоторую экономию места за счёт вычислительных ресурсов. Не продвинутый вариант, который мы обсуждали выше, а тупой из существующих инструментов: даунскейлим оригинальное видео… Или давай для простоты картинку даже. Даунскейлим оригинальную лосслесс-картинку. Результат апскейлим нейросеткой. Затем вычитаем из оригинала апскеил. Получаем разницу. Разницу кодируем и жмём. В итоге у нас есть картинка маленького разрешения и малого размера + пожатая разница малого размера — из этой инфы в совокупности можно восстановить оригинал. В итоге мы экономим место на хранение картинки. Да, за счёт значительного увеличения необходимых вычислительных мощностей.

А, ну я понял вроде. Получается как с китайским языком — текст компактный по длине, но нужно помнить десятки тысяч символов (для «высокого качества») или хотя бы тысячи (для «стандартного качества»). Применительно к задаче декодирования получается, что мы заставляем пользователя выполнять сложный алгоритм с большим количеством (порядка гигабайт) параметров на собственной машине. Да, тут вроде нормально, противоречий нет.

knovich
()
Последнее исправление: knovich (всего исправлений: 1)
Ответ на: комментарий от knovich

Так ведь одному человеку две картинки кажутся одинаковыми, а другой (специалист) видит отличия. Меня вот это беспокоит. Две картинки будут гарантированно одинаковыми с точки зрения человека, если различия в принципе не видно глазом с какого-то расстояния.

Ну так давно надо было беспокоиться начинать, значит. У тебя JPEG точно так же детали теряет.

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

Часть новой информации там таки додумывается. Я приведу очень упрощённый пример для лучшего понимания, потому что иначе очень тяжко объяснять, и надо лезть далеко в дебри (и да, я знаю, что есть безнейросетевые алгоритмы, делающие вот эту простую вещьб, но как пример она годится). Например, где контур скруглёный, а не лесенкой. На картинке низкого разрешения он может быть вообще три пикселя. Если ты будешь просто «в тупую» зумить изображение, у тебя будет мыло или 3 красивых квадрата, возможно какая-то лесеночка. А нейросетка «поймёт», что граница объекта в этом месте скруглена и нарисует красиво скруглённый контур. Это уже добавление/додумывание информации, которое в подавляющем большинстве случаев близко к тому, что было в оригинале. Ну или как минимум ближе, чем тупой апскейл в лоб.

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

Естественно, если там пятно в 2 пикселя, по которому нихрена не понятно, то ни ёжика ни шляпы дорисовать не получится — слишком мало информации. Прям магии-то ждать не нужно.

Так ведь разница будет такого же разрешения, как оригинал, почему, будучи сжатой, она займёт меньше места? Или я не понял идею?

Там значительно меньше информации — много нулей. Ну и жать её желательно не прям в лоб как картинку надо, а как просто набор данных.

CrX ★★★★★
()
Ответ на: комментарий от quickquest

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

CrX ★★★★★
()
Ответ на: комментарий от knovich

Это всё правда, но мне кажется, что нейросеть из словесного (или какого угодно абстрактного) описания не сможет восстановить детали, значимые для определённого круга лиц, если её заранее не обучили узкоспециальным вещам.

Точно так же, как и JPEG…

Ну и при достаточно подробном «словесном описании» (я ещё раз напомню, ему вовсе не нужно быть действительно словесным, это могут быть специальные токены, сгенерированные точно так же нейросеткой для понимания нейросетки) можно восстановить детали с любой степенью детализации. Вплоть до «пиксель в пиксель». Просто для последнего придётся генерировать это «описание» достаточно большим, и достаточно долго — пока проверка не покажет, что да — вот оно идентичное изображение. Но пиксель в пиксель людям не всегда надо. Даже «определённому кругу лиц» — по крайней мере в твоём примере. Потому что этот круг лиц вполне удовлетворился JPEG’ом с потерянными деталями.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Ну наверное да, можно подобрать какую-то золотую середину между полностью словесным описанием и полностью растровым, какой-то язык описания деталей изображений (примитивов), чтобы почти всегда можно было восстановить исходное изображение. В итоге, наверное, станет ещё чуть больше недовольных, но всем остальным будет всё равно.

У тебя JPEG точно так же детали теряет.

Ну в случае с JPEG это всё-таки проще контролировать, чем с нейросетями. В том смысле, что нейросети более непредсказуемы в смысле выдачи неверных результатов.

knovich
()
Ответ на: комментарий от knovich

Ну в случае с JPEG это всё-таки проще контролировать, чем с нейросетями. В том смысле, что нейросети более непредсказуемы в смысле выдачи неверных результатов.

Именно для этого нам третья сетка нужна, которая оценивает результат.

CrX ★★★★★
()

может только текст оставить, и в видео не генерировать, мне читать больше нравится чем ютюб смотреть.

s-warus ★★★
()
Ответ на: комментарий от CrX

Даунскейлим оригинальную лосслесс-картинку. Результат апскейлим нейросеткой. Затем вычитаем из оригинала апскеил. Получаем разницу. Разницу кодируем и жмём. В итоге у нас есть картинка маленького разрешения и малого размера + пожатая разница малого размера — из этой инфы в совокупности можно восстановить оригинал.

Разница двух битмапов это битмап такого же размера. У тебя сжатая таким образом картинка будет занимать больше места.

Gary ★★★★★
()
Ответ на: комментарий от Gary

Зависит от качества апскейла. Тут надо пробовать. Ну и не обязательно прям нули, это я уж так, с преувеличением. Там могут быть другие комбинации легко сжимаемых данных. Хотя и прям именно нули тоже, несомненно, будут в достаточном количестве. Особенно если картинка у нас — не фото, а что-нибудь из мультка.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Особенно если картинка у нас — не фото, а что-нибудь из мультка.

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

Gary ★★★★★
()
Ответ на: комментарий от Gary

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

CrX ★★★★★
()
Ответ на: комментарий от knovich

Это всё правда, но мне кажется, что нейросеть из словесного (или какого угодно абстрактного) описания не сможет восстановить детали, значимые для определённого круга лиц, если её заранее не обучили узкоспециальным вещам.

Видеохостинг знает - значимые это вещи, или нет. Если это видео типа «медведь ловит рыбу», и к нему обращаются полтора человека раз в два года - всем насрать на детали.

tiinn ★★★★★
() автор топика
Ответ на: комментарий от tiinn

Я там выше писал, что как раз наоборот, чем больше обращений, тем менее важны детали. Мне так кажется.

knovich
()

Ход мысли понятен. Векторное изображение занимает меньше места чем растровое. Но у векторного изображения проблема с деталями.

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

Можно даже представить себе что для разовых работ такое возможно, потому что эффективно выполнить векторный вариант изображения сейчас сможет только человек. Для полноценного преобразования растра в описание (чем является векторное изображение) необходимо понимание содержания. Понимание пространства, объектов, взаимосвязей объектов.

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

sin_a ★★★★★
()
Ответ на: комментарий от tiinn

Обучаться-то эти нейронки на чём будут? Если все видео поудалять, оставив только текстовые описания.

dimgel ★★★★★
()
Ответ на: комментарий от dimgel

На других же видеохостингах, не таких продвинутых.

tiinn ★★★★★
() автор топика
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)