Уменьшение размера видео за счет оттенков серого
Когда мы конвертируем видео в оттенки серого, всем его 3 цветам (RGB) в пикселе присваивается один и тот же номер (вместо 3 разных номеров). Так что теоретически у нас должно быть уменьшение в размере почти на 66%. Я знаю, что есть некоторые метаданные и звуковые данные, но самые большие данные относятся к пикселям.
Я конвертировал видео с помощью Handbrake с выходным размером 4,17 МБ, затем я сделал это с теми же настройками, за исключением проверки поля "Оттенки серого", после чего размер выходного файла стал 3,88 МБ. Почему только 7% уменьшение размера? Для другого видео: 3,08 МБ и 2,97 МБ (почти 6%).
Я также выполнил серое с использованием "монохромного" фильтра "Corel Video Studio" и получил аналогичный результат (8,70 МБ и 8,32 МБ -> 5%). Есть ли алгоритм или что-то, чтобы получить лучший результат?
1 ответ
Проблема в том, что основной формат, который вы сохраняете, не понимает ничего, кроме 24-битного цвета на пиксель. Если базовый контейнер или формат специально предназначены для 8-битной серой шкалы (или 8-битных форматов в целом), то вы увидите ожидаемое уменьшение размера.
В качестве примера, вы можете сохранить изображение в формате .BMP или PNG, обычно вы получаете возможность установить битовую глубину для вывода (вы делаете это, если вы используете Paint.NET по крайней мере), тогда преобразование в оттенки серого принесет пользу.
JPEG строго не поддерживает более низкую битовую глубину, если я правильно помню, я был бы удивлен, если бы большинство современных видеокодеров делали это, поскольку 99% их использования предназначено для источников цвета.