Як обчислити байти, необхідні для відео сірого масштабу


0

Що таке мінімальна пам'ять (в байтах) для збереження відеозйомки сірого кольору на п'ять секунд з частотою кадрів 14 кадрів в секунду, в якій розмір кожного кадру становить 480x320? Кожен піксель у цьому відео потребує збереження принаймні 6 різних статусів

Дивлячись на подібні питання на дошці, я припустив, що розрахунок буде щось на зразок цього:

480 * 320 * 8 біт * 14 fps * 5 секунд = 8601600

8601600/8 = 10752000 байт

Правильна відповідь: 4032000, але я не розумію, як це обчислювалося, а що означають 6 статусів?


1
Це домашнє завдання? 8 біт може зберігати 256 станів пікселя, але вам потрібно лише 6. Чи є у вас фіксований розмір байта? Ви можете зробити стиснення? ...
Máté Juhász

Які були ці "подібні питання"?
Máté Juhász

Більше як екзамен з минулого року я намагаюся зрозуміти. Ніякого стиснення немає. Подібні питання: superuser.com/questions/829056/… - stackoverflow.com/questions/27559103/video-size-calculation - Я знаю тільки те, що я процитував, але припускаю, що розмір байта не фіксований, ні.
Oliver Larsen

Є шість різних відтінків сірого. Таким чином, ви не можете використовувати 1 біт для кольору, і не має сенсу використовувати 32 біта. Використовуйте мінімальну кількість бітів, які дозволять вам мати індикатор для шести різних типів сірого кольору і виконувати розрахунок, як ви.
Seth

2
@Seth питання не ясно, 3 біти можуть мати 8 різних станів, так що це добре для зберігання 6 кольорів тут. Однак напр. 8 пікселів можуть мати загальне число 6 ^ 8 станів, які можуть зберігатися на 21 біті (2 ^ 21 & gt; 6 ^ 8) замість 24. І ще є ще місце для оптимізації ...
Máté Juhász

Відповіді:


0

Отже, давайте зробимо це крок за кроком. Ви вже визначили найважливішу інформацію:

  • Роздільна здатність 480x320
  • 14 кадрів в секунду
  • 5 секунд запису
  • 6 різних статусів

Все це просто просто множення цих чисел. Єдиний улов, це те, що ви не можете просто використовувати 6 для числа статуй, але ви повинні зробити щось з ним. Текст повідомляє вам, що це 6 відповідає на кожний окремий піксель в одному кадрі для цього запису. Як така, це (швидше за все) глибина кольору. Глибина кольору зображення зазвичай задається як кількість бітів, що використовується для "кодування" кольору. Було б досить обтяжливо записувати назви кольорів, які має кожен піксель (і займе набагато більше місця).

Так що вам потрібно зробити, це перетворити десяткове число 6 у його двійковий еквівалент. Існує різні підходи до того, як це зробити, але кінцевий результат повинен завжди бути двійковим поданням 110. З цією інформацією ви знаєте, що мінімальна кількість бітів, що представляють десяткове число 6 у двійковому файлі, становить 3.

Якщо це приклад IRL, вам доведеться враховувати структури даних і визначення. Так напр. для растрове зображення схоже, вам знадобиться принаймні 4 біти. Оскільки ваша вправа не вказує ніякої додаткової інформації, людина, яка придумала це питання, ймовірно, хоче використовувати 3 біти як глибину кольору.

Тепер, коли у нас є всі деталі, це просто:

color depth * resolution * frames per second * seconds
3 bit * (480 pixels * 320 pixels) * 14 * 5 = 32 256 000 bit
32 256 000 bit / 8 bit = 4 032 000 bytes

Те, що роблять вправи, перевіряє, коли ви розумієте технічні терміни і здатні перетворювати десяткові числа на двійкові.

Для задоволення можна припустити, що вам потрібно 105 різних видів сірого. У такому випадку ви отримаєте 9187 кілобайт.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.