Насолоджуйтесь мільярдами кольорів із 10-бітним HEVC

насолоджуйтесь

Глибина кольору

Глибина кольору, відома також як бітова глибина - це кількість бітів, що використовується для відображення кольору окремого пікселя. Одне і те ж зображення або кадр з різною глибиною кольору виглядають по-різному, оскільки кількість кольорів у пікселі залежить від глибини кольору.

Кількість бітів у зображенні включає набір бітів на канал для кожного типу кольору в пікселі. Кількість колірних каналів у пікселі залежить від кольору, що використовується. Наприклад, колірні канали в колірному просторі RGBA - червоний (R), зелений (G), синій (B) та альфа (A). Кожен додатковий біт подвоює кількість інформації, яку ми можемо зберігати кожного кольору. У 8-бітному зображенні загальна кількість доступних кольорів пікселя дорівнює 256. Таблиця 1 показує можливу кількість доступних кольорів для кожної відповідної глибини кольору.

Глибина каналу Відтінків на канал на піксель Загальна кількість можливих відтінків
8-біт25616.78 мільйонів
10-біт10241.07 мільярда
12-біт409668.68 мільярдів
Більшість моніторів і телевізорів здатні відображати лише 8-бітний контент, 10-бітні зображення в них перетворюються на 8-бітові. Однак переваги 10-бітної глибини мають місце вже зараз:

Ефект колірних смуг

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

Можливі варіанти вирішення проблеми кольорових смуг:

  • збільшити глибину кольору на канал
  • застосувати колірну дискретизацію (не розглядається у цій статті).
Невідкалібрований дисплей може також викликати ефект смуг. Щоб уникнути цього, скористайтеся утилітою Intel Graphics Control Panel.

насолоджуйтесь
Малюнок 1. Порівняння 8-бітного (ліворуч) та 10-бітового (праворуч) зображення. Зліва видно ефект смуг.

Малюнок 1 показує різницю між 8-бітним і 10-бітним зображеннями стосовно ефекту колірних смуг. На лівому зображенні необхідна колірна деталізація не була передана сенсором, що привело в меншій кількості, ніж треба, кількості кольорів і колірних смуг. На правому фото колірної інформації достатньо і перехід між кольорами вийшов плавним. Для забезпечення плавності колірних переходів необхідний ширший діапазон кольорів, описаний у стандарті BT2020.

Стандарт BT. 2020

Профіль HEVC Main 10

Підтримка декодування HEVC 10b з'явилася з 6 покоління процесорів Intel. Команда нижче показує, як тестова утилітаsample_decodeз набору прикладів коду Intel Media SDK може бути використана для отримання сирих кадрів із найпростішого потоку HEVC.

Вхідний потік (input.h265), що використовується вище, може бути взятий тут. Вихідний потік (raw_frames.yuv) повинен бути у форматі P010, який використовується як вихідний матеріал для утилітиsample_encode.

Апаратна підтримка кодування/декодування HEVC 10b впроваджена з 7 покоління процесорів Intel. Кодування 10-бітного HEVC реалізовано за допомогою додаткового кодуmodified_sample_encode, спеціально зміненого для цієї конкретної функціональності. Цей прикладпрацює з Intel Media SDK 2016 R2. Інструкцію зі збирання наведено в посібнику з прикладів медіа у зразках коду Intel Media SDK.

Нижче наведено приклад 10-бітного кодування з використаннямsample_encodeз доданоїmodified_sample_encode.

кольорів
Малюнок 3. Скріншот утиліти Video Quality Caliper, що показує, що показує, що кодований потік має 10 біт на піксель.

Профіль VP9 2

Високий динамічний діапазон (High Dynamic Range, HDR)

Відео контент HDR підтримується при використанні кодека HEVC Main 10 або VP9.2, апаратно прискорених, починаючи з 7 покоління процесорів Intel. Для передачі контенту HDR система повинна бути оснащена портом DisplayPort 1.4 або HDMI 2.0a. Ця функціональність поки що знаходиться на стадії тестування і не включена до загальнодоступних релізів.

Висновок