Кодування параметра квантування (qp) при кодуванні відео
Формула / Реферат
1. Спосіб декодування відеоданих, причому спосіб включає етапи, на яких:
приймають синтаксичний елемент кодування без втрат для поточного блока відеоданих, при цьому синтаксичний елемент кодування без втрат вказує, що поточний блок відеоданих кодується з використанням режиму кодування без втрат, причому синтаксичний елемент кодування без втрат відділений від значення параметра квантування (QP);
визначають, що поточний блок відеоданих є поточним квантованим блоком, основуючись на розмірі поточного блока відеоданих;
призначають дельта-параметру квантування (dQP) значення нуль для поточного квантованого блока, при цьому значення dQP є різницею між значенням QP і значенням предиктора QP;
визначають значення QP для поточного квантованого блока, основуючись на призначеному значенні dQP і значенні предиктора QP; і
декодують поточний квантований блок відповідно до режиму кодування без втрат і визначеного значення QP.
2. Спосіб за п. 1, в якому поточний блок відеоданих є одиницею кодування (CU) відеоданих, при цьому спосіб також включає етапи, на яких:
визначають розмір групи квантування (QG); і
визначають, що CU має розмір більший, ніж або дорівнює розміру QG.
3. Спосіб за п. 1, який включає також етап, на якому:
визначають значення QP шляхом додавання призначеного значення dQP до значення предиктора QP, при цьому предиктор QP є середнім для значення QP для квантованого блока зверху і квантованого блока зліва, при цьому квантований блок зверху розміщений над поточним квантованим блоком, і при цьому квантований блок зліва розміщений зліва від поточного квантованого блока.
4. Спосіб за п. 1, який включає також етап, на якому:
виконують прогнозування QP для іншого блока відеоданих, використовуючи визначене значення QP.
5. Спосіб кодування відеоданих, причому спосіб включає етапи, на яких:
визначають, що поточний блок відеоданих повинен бути закодований з використанням режиму кодування без втрат;
визначають, що поточний блок відеоданих є поточним квантованим блоком, основуючись на розмірі поточного блока відеоданих;
визначають значення параметра квантування (QP) для поточного блока відеоданих, основуючись на значенні нуль для дельта-параметра квантування (dQP) для поточного квантованого блока і значенні предиктора QP, при цьому значення dQP є різницею між значенням QP і значенням предиктора QP;
генерують синтаксичний елемент кодування без втрат для поточного блока відеоданих, при цьому синтаксичний елемент кодування без втрат вказує, що поточний блок відеоданих кодується з використанням режиму кодування без втрат, причому синтаксичний елемент кодування без втрат відділений від значення QP; і
кодують поточний квантований блок відповідно до режиму кодування без втрат і визначеного значення QP.
6. Спосіб за п. 5, в якому поточний блок відеоданих є одиницею кодування (CU) відеоданих, при цьому спосіб також включає етапи, на яких:
визначають розмір групи квантування (QG); і
визначають, що CU має розмір більший, ніж або дорівнює розміру QG.
7. Спосіб за п. 5, який включає також етап, на якому:
визначають значення QP шляхом додавання призначеного значення dQP дозначення предиктора QP, при цьому предиктор QP є середнім для значення QP для квантованого блока зверху і квантованого блока зліва, при цьому квантований блок зверху розміщений над поточним квантованим блоком, і при цьому квантований блок зліва розміщений зліва від поточного квантованого блока.
8. Спосіб за п. 5, який включає також етап, на якому:
виконують прогнозування QP для іншого блока відеоданих, використовуючи визначене значення QP.
9. Пристрій, сконфігурований з можливістю декодування відеоданих, причому пристрій містить:
пам'ять, сконфігуровану для зберігання відеоданих; і
відеодекодер, сконфігурований з можливістю:
приймати синтаксичний елемент кодування без втрат для поточного блока відеоданих, при цьому синтаксичний елемент кодування без втрат вказує, що поточний блок відеоданих кодується з використанням режиму кодування без втрат, причому синтаксичний елемент кодування без втрат відділений від значення параметра квантування (QP);
визначати, що поточний блок відеоданих є поточним квантованим блоком, основуючись на розмірі поточного блока відеоданих;
призначати дельта-параметр квантування (dQP) значення нуль для поточного квантованого блока, при цьому значення dQP є різницею між значенням QP і значенням предиктора QP;
визначати значення QP для поточного квантованого блока, основуючись на призначеному значенні dQP і значенні предиктора QP; і
декодувати поточний квантований блок відповідно до режиму кодування без втрат і визначеного значення QP.
10. Пристрій за п. 9, в якому поточний блок відеоданих є одиницею кодування (CU) відеоданих, і при цьому відеодекодер також сконфігурований з можливістю:
визначати розмір групи квантування (QG); і
визначати, що CU має розмір більший, ніж або дорівнює розміру QG.
11. Пристрій за п. 9, в якому відеодекодер також сконфігурований з можливістю:
визначати значення QP шляхом додавання призначеного значення dQP до значення предиктора QP, при цьому предиктор QP є середнім для значення QP для квантованого блока зверху і квантованого блока зліва, при цьому квантований блок зверху розміщений над поточним квантованим блоком, і при цьому квантований блок зліва розміщений зліва від поточного квантованого блока.
12. Пристрій за п. 9, в якому відеодекодер також сконфігурований з можливістю:
виконувати прогнозування QP для іншого блока відеоданих, використовуючи визначене значення QP.
13. Пристрій, сконфігурований з можливістю кодування відеоданих, причому пристрій містить:
пам'ять, сконфігуровану для зберігання відеоданих; і відеокодер, сконфігурований з можливістю:
визначати, що поточний блок відеоданих повинен бути закодований з використанням режиму кодування без втрат;
визначати, що поточний блок відеоданих є поточним квантованим блоком, основуючись на розмірі поточного блока відеоданих;
визначати значення параметра квантування (QP) для поточного блока відеоданих, основуючись на значенні нуль для дельта-параметра квантування (dQP) для поточного квантованого блока і значенні предиктора QP, при цьому значення dQP є різницею між значенням QP і значенням предиктора QP;
генерувати синтаксичний елемент кодування без втрат для поточного блока відеоданих, при цьому синтаксичний елемент кодування без втрат вказує, що поточний блок відеоданих кодується з використанням режиму кодування без втрат, причому синтаксичний елемент кодування без втрат відділений від значення QP; і
кодувати поточний квантований блок відповідно до режиму кодування без втрат і визначеного значення QP.
14. Пристрій за п. 13, в якому поточний блок відеоданих є одиницею кодування (CU) відеоданих, і при цьому відеокодер також сконфігурований з можливістю:
визначати розмір групи квантування (QG); і
визначати, що CU має розмір більший, ніж або дорівнює розміру QG.
15. Пристрій за п. 13, в якому відеокодер також сконфігурований з можливістю:
визначати значення QP шляхом додавання призначеного значення dQP до значення предиктора QP, при цьому предиктор QP є середнім для значення QP для квантованого блока зверху і квантованого блока зліва, при цьому квантований блок зверху розміщений над поточним квантованим блоком, і при цьому квантований блок зліва розміщений зліва від поточного квантованого блока.
16. Пристрій за п. 13, в якому відеокодер також сконфігурований з можливістю:
виконувати прогнозування QP для іншого блока відеоданих, використовуючи визначене значення QP.
17. Пристрій, сконфігурований з можливістю декодування відеоданих, причому пристрій містить:
засіб для прийому синтаксичного елемента кодування без втрат для поточного блока відеоданих, при цьому синтаксичний елемент кодування без втрат вказує, що поточний блок відеоданих кодується з використанням режиму кодування без втрат, причому синтаксичний елемент кодування без втрат відділений від значення параметра квантування (QP);
засіб для визначення, що поточний блок відеоданих є поточним квантованим блоком, основуючись на розмірі поточного блока відеоданих;
засіб для призначення дельта-параметру квантування (dQP) значення нуль для поточного квантованого блока, при цьому значення dQP є різницею між значенням QP і значенням предиктора QP;
засіб для визначення значення QP для поточного квантованого блока, основуючись на призначеному значенні dQP і значенні предиктора QP; і
засіб для декодування поточного квантованого блока відповідно до режиму кодування без втрат і визначеного значення QP.
18. Пристрій, сконфігурований з можливістю кодування відеоданих, причому пристрій містить:
засіб для визначення, що поточний блок відеоданих повинен бути закодований з використанням режиму кодування без втрат;
засіб для визначення, що поточний блок відеоданих є поточним квантованим блоком, основуючись на розмірі поточного блока відеоданих;
засіб для визначення значення параметра квантування (QP) для поточного блока відеоданих, основуючись на значенні нуль для дельта-параметра квантування (dQP) для поточного квантованого блока і значенні предиктора QP, при цьому значення dQP є різницею між значенням QP і значенням предиктора QP;
засіб для генерування синтаксичного елемента кодування без втрат для поточного блока відеоданих, при цьому синтаксичний елемент кодування без втрат вказує, що поточний блок відеоданих кодується з використанням режиму кодування без втрат, причому синтаксичний елемент кодування без втрат відділений від значення QP; і
засіб для кодування поточного квантованого блока відповідно до режиму кодування без втрат і визначеного значення QP.
19. Комп'ютерно-зчитуваний носій інформації, що зберігає інструкції, які, при виконанні, приписують одному або більше процесорам пристрою, сконфігурованого з можливістю декодування відеоданих:
приймати синтаксичний елемент кодування без втрат для поточного блока відеоданих, при цьому синтаксичний елемент кодування без втрат вказує, що поточний блок відеоданих кодується з використанням режиму кодування без втрат, причому синтаксичний елемент кодування без втрат відділений від значення параметра квантування (QP);
визначати, що поточний блок відеоданих є поточним квантованим блоком, основуючись на розмірі поточного блока відеоданих;
призначати дельта-параметру квантування (dQP) значення нуль для поточного квантованого блока, при цьому значення dQP є різницею між значенням QP і значенням предиктора QP;
визначати значення QP для поточного квантованого блока, основуючись на призначеному значенні dQP і значенні предиктора QP; і
декодувати поточний квантований блок відповідно до режиму кодування без втрат і визначеного значення QP.
20. Комп'ютерно-зчитуваний носій інформації, що зберігає інструкції, які, при виконанні, приписують одному або більше процесорам пристрою, сконфігурованого з можливістю кодування відеоданих:
визначати, що поточний блок відеоданих повинен бути закодований з використанням режиму кодування без втрат;
визначати, що поточний блок відеоданих є поточним квантованим блоком, основуючись на розмірі поточного блока відеоданих;
визначати значення параметра квантування (QP) для поточного блока відеоданих, основуючись на значенні нуль для дельта-параметра квантування (dQP) для поточного квантованого блока і значенні предиктора QP, при цьому значення dQP є різницею між значенням QP і значенням предиктора QP;
генерувати синтаксичний елемент кодування без втрат для поточного блока відеоданих, при цьому синтаксичний елемент кодування без втрат вказує, що поточний блок відеоданих кодується з використанням режиму кодування без втрат, причому синтаксичний елемент кодування без втрат відділений від значення QP; і
кодувати поточний квантований блок відповідно до режиму кодування без втрат і визначеного значення QP.
Текст
УКРАЇНА (19) UA (11) 114721 (13) C2 (51) МПК H04N 19/124 (2014.01) H04N 19/61 (2014.01) H04N 19/70 (2014.01) H04N 19/126 (2014.01) МІНІСТЕРСТВО ЕКОНОМІЧНОГО РОЗВИТКУ І ТОРГІВЛІ УКРАЇНИ ОПИС ДО ПАТЕНТУ НА ВИНАХІД (21) Номер заявки: a 2014 12681 Дата подання заявки: 26.04.2013 (22) (24) Дата, з якої є 25.07.2017 чинними права на винахід: (31) Номер попередньої заявки відповідно до Паризької конвенції: (32) Дата подання попередньої заявки відповідно до Паризької конвенції: (33) Код держави учасниці Паризької конвенції, до якої подано попередню заявку: 61/639,015, 61/643,821, 61/656,953, 13/870,149 26.04.2012, 07.05.2012, 07.06.2012, 25.04.2013 US, US, US, US (41) Публікація 25.09.2015, Бюл.№ 18 (46) Публікація 25.07.2017, Бюл.№ 14 (86) Номер та дата PCT/US2013/038383, відомостей про заявку: відомостей про видачу патенту: подання міжнародної 26.04.2013 заявки, поданої відповідно до Договору PCT (72) Винахідник(и): Сєрьогін Вадім (US), Ван Сянлінь (US) (73) Власник(и): КВЕЛКОММ ІНКОРПОРЕЙТЕД, Attn: International IP Administration, 5775 Morehouse Drive, San Diego, CA 92121-1714, United States of America (US) (74) Представник: Мошинська Ніна Миколаївна, реєстр. №115 (56) Перелік документів, взятих до уваги експертизою: BROSS B ET AL, "High Efficiency Video Coding (HEVC) text specification draft 6", 8. JCT-VC MEETING; 99. MPEG MEETING; 1-22012 - 10-2-2012; SAN JOSE; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVCSITE/,, (20120210), no. JCTVC-H1003, XP030111769 [X] 1,13,27,39,53-56 * paragraph [3.8.1] * * paragraph [7.3.9] * * paragraph [7.4.9] * * paragraph [7.4.2.2] * * paragraph [8.5.1] * [I] 2-12,14-26,28-38,40-52 HIROFUMI AOKI ET AL, "Prediction-based QP derivation", 20110310, (20110310), no. JCTVC-E215, ISSN 0000-0007, XP030008721 [I] 1-56 * paragraph [0001] - paragraph [0004] * SATO (SONY) K ET AL, "Description of Core Experiment 4 (CE4): Quantization", 96. MPEG MEETING; 21-3-2011 - 25-3-2011; GENEVA; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11),, (20110415), no. m20249, XP030048816 [I] 1-56 * paragraph [03.2] * BUDAGAVI M ET AL, "Delta QP signaling at sub-LCU level", 4. JCT-VC MEETING; 95. MPEG MEETING; 20-1-2011 - 28-1-2011; DAEGU;(JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11AND ITU-T SG.16 ); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVCSITE/,, (20110115), no. JCTVC-D038, ISSN 0000-0015, XP030008079 [I] 1-56 * paragraph [0002] - paragraph [0003] * (54) КОДУВАННЯ ПАРАМЕТРА КВАНТУВАННЯ (QP) ПРИ КОДУВАННІ ВІДЕО (57) Реферат: Описаний спосіб кодування значень дельта-параметра квантування. В одному прикладі відеодекодер може приймати значення дельта-параметра квантування для поточного UA 114721 C2 (12) UA 114721 C2 квантованого блока відеоданих, при цьому значення dQP приймається незалежно від того, чи є в поточному квантованому блоці ненульові коефіцієнти перетворення. В іншому прикладі, відеодекодер може приймати значення dQP для поточного квантованого блока відеоданих тільки у випадку, коли предиктор QP для поточного квантованого блока має значення нуль, і припущення, що значення dQP повинне бути рівне нулю у випадку, коли предиктор QP для поточного квантованого блока має ненульове значення, і в поточному квантованому блоці немає ненульових коефіцієнтів перетворення. UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 60 Ця заявка заявляє пріоритет за: патентною заявкою США № 61/639,015, поданою 26 квітня, 2012; патентною заявкою США № 61/643,821, поданою 7 травня, 2012; і патентною заявкою США № 61/656,953, поданою 7 червня, 2012, весь вміст кожної з яких включений в цей документ за допомогою посилання. ГАЛУЗЬ ТЕХНІКИ Це розкриття стосується кодування відео, і більш конкретно — способів кодування параметра квантування. РІВЕНЬ ТЕХНІКИ Можливості цифрового відео можуть бути вбудовані в широкий діапазон пристроїв, в тому числі цифрові телевізори, системи цифрового прямого широкомовлення, бездротові широкомовні системи, персональні цифрові помічники (PDA), портативні або настільні комп'ютери, цифрові камери, цифрові записуючі пристрої, програвачі цифрових медіаданих, відеоігрові пристрою, відеоігрові консолі, стільникові або супутникові радіотелефони, пристрої відеоконференції і тому подібні. Пристрої цифрового відео реалізовують способи стиснення відео, такі як описані в стандартах, заданих за допомогою MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Частина 10, Поліпшеного кодування відео (AVC), стандарту Високоефективного кодування відео (HEVC), що знаходиться в цей час в розробці, і розширеннях цих стандартів, для більш ефективної передачі, прийому і зберігання цифрової відеоінформації. Способи стиснення відео включають в себе просторове прогнозування і/або часове прогнозування для зниження або видалення надмірності, властивої відеопослідовностям. Для блокового кодування відео, відеокадр або слайс (вирізка) можуть бути розділені на блоки. Відеокодер, як альтернатива, може називатися зображенням. Кожний блок може бути додатково розділений. Блоки в кодованому за допомогою внутрішнього кодування (I) кадрі або слайсі кодуються з використанням просторового прогнозування по відношенню до опорних вибірок у сусідніх блоках в тому самому кадрі або слайсі. Блоки в кодованому за допомогою внутрішнього кодування (Р або В) кадрі або слайсі можуть використовувати просторове прогнозування по відношенню до опорних вибірок у сусідніх блоках в тому самому кадрі або слайсі, або часове прогнозування по відношенню до опорних вибірок в інших опорних кадрах. Просторове або часове прогнозування дають в результаті прогнозувальний блок для блока, який повинен бути кодований. Залишкові дані являють собою різниці пікселів між первинним блоком, який повинен бути кодований, тобто кодованим блоком, і прогнозувальним блоком. Кодований за допомогою зовнішнього кодування блок кодується згідно з вектором руху, який вказує на блок опорних вибірок, утворюючих прогнозувальний блок, і залишковими даними, які вказують різницю між кодованим блоком і прогнозувальним блоком. Кодований за допомогою внутрішнього кодування блок кодується згідно з режимом внутрішнього кодування і залишковими даними. Для подальшого стиснення, залишкові дані можуть бути перетворені з піксельної ділянки в ділянку перетворення, даючи в результаті залишкові коефіцієнти перетворення, які потім можуть бути квантовані. Квантовані коефіцієнти перетворення, спочатку розміщені у двовимірному масиві, можуть бути проскановані в конкретному порядку, щоб зробити одновимірний вектор коефіцієнтів перетворення для ентропійного кодування. СУТЬ ВИНАХОДУ Загалом, це розкриття описує способи кодування відеоданих. Зокрема, це розкриття описує способи кодування значень дельта-параметра квантування та ідентифікації режимів кодування без втрат, для того, щоб уникнути потенційних неузгоджень кодера/декодера. В одному прикладі, це розкриття описує спосіб декодування відео, що містить етапи, на яких приймають значення дельта-параметра квантування (dQP) для поточного квантованого блока відеоданих, при цьому значення dQP приймається незалежно від того, чи є ненульові коефіцієнти перетворення в поточному квантованому блоці чи ні, визначають значення параметра квантування (QP) для поточного квантованого блока на основі прийнятого значення dQP і предиктора QP, і декодують поточний квантований блок з використанням визначеного значення QP. В іншому прикладі, спосіб декодування відео містить етап, на якому приймають значення dQP для поточного квантованого блока відеоданих тільки у випадку, коли предиктор QP для поточного квантованого блока має значення нуль, і припускають, що значення dQP повинне бути рівне нулю у випадку, коли предиктор QP для поточного квантованого блока має ненульове значення, і в поточному квантованому блоці немає ненульових коефіцієнтів перетворення. В іншому прикладі, це розкриття описує спосіб кодування відео, що містить етапи, на яких визначають значення QP для поточного квантованого блока відеоданих, визначають значення dQP для поточного квантованого блока на основі QP і предиктора QP, генерують значення dQP, 1 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 60 при цьому значення dQP сигналізується незалежно від того, чи є ненульові коефіцієнти перетворення в поточному квантованому блоці чи ні, і кодують поточний квантований блок з використанням визначеного значення QP. В іншому прикладі, спосіб кодування відео містить етап, на якому генерують значення dQP для поточного квантованого блока відеоданих тільки у випадку, коли предиктор QP для поточного квантованого блока має значення нуль, і припускають, що значення dQP повинне бути рівне нулю у випадку, коли предиктор QP для поточного квантованого блока має ненульове значення, і в поточному квантованому блоці немає ненульових коефіцієнтів перетворення. Це розкриття також описує відеокодер, відеодекодер, апарати, пристрої і комп'ютернозчитувані носії, що зберігають інструкції, які можуть бути сконфігуровані з можливістю виконання способів сигналізування коефіцієнтів перетворення, описаних в цьому документі. Подробиці одного або більше прикладів викладені на прикладених кресленнях і в описі нижче. Інші ознаки, цілі та переваги будуть зрозумілі з опису і креслень, і з формули винаходу. КОРОТКИЙ ОПИС КРЕСЛЕНЬ Фіг. 1 є блок-схемою, що ілюструє приклад системи кодування і декодування відео. Фіг. 2 є концептуальною схемою, що ілюструє приклад групи квантування. Фіг. 3 є концептуальною схемою, що ілюструє приклад способу прогнозування параметра квантування. Фіг. 4 є концептуальною схемою, що ілюструє приклад сигналізації дельта-параметра квантування, коли предиктор параметра квантування рівний нулю. Фіг. 5 є концептуальною схемою, що ілюструє приклад сигналізації дельта-параметра квантування, коли предиктор параметра квантування кодується в режимі кодування без втрат. Фіг. 6 є блок-схемою, що ілюструє приклад відеокодера. Фіг. 7 є блок-схемою, що ілюструє приклад відеодекодера. Фіг. 8 є схемою послідовності операцій, що показує приклад способу кодування відео згідно зі способами цього розкриття. Фіг. 9 є схемою послідовності операцій, що показує приклад способу декодування відео згідно зі способами цього розкриття. ЗДІЙСНЕННЯ ВИНАХОДУ Загалом, це розкриття описує способи кодування відеоданих. Зокрема, це розкриття описує способи кодування параметра квантування (QP) в процесі кодування і/або декодування відео. Відповідно до деяких пропозицій для стандарту HEVC, відеоблок може містити найбільшу одиницю кодування (LCU), яка сама може бути поділена на менші одиниці кодування (CU) згідно зі схемою розділення дерева квадрантів і можливо додатково розділена на одиниці прогнозування (PU) з метою оцінки руху і компенсації руху. Це розкриття описує способи кодування змін (тобто, дельт) в параметрі квантування (тобто, дельта-QP або dQP) для LCU, CU або групи квантування (або деякого іншого блока або групи блоків з досить великим розміром, щоб підтримувалися зміни квантування). У цьому випадку, дельта-QP може задати зміну в QP для групи квантування відносно прогнозованого значення QP для LCU. Наприклад, прогнозованим значенням QP для LCU може просто бути QP попередньої групи квантування (тобто, раніше кодований в бітовому потоці). Як альтернатива, прогнозоване значення QP може бути визначене на основі правил. Наприклад, правила можуть ідентифікувати одне або більше інших значень QP інших груп квантування, або середнє значення QP, яке повинне бути використане. Поточні способи сигналізування dQP в стандарті HEVC представляють визначені проблеми, коли використовуються спільно із сигналізацією і здійсненням аналізу режимів кодування без втрат. Як буде розглянуто більш детально нижче, у визначених ситуаціях, може виникнути неузгодження кодера/декодера, особливо коли використовується кодування без втрат. У зв'язку з цим, це розкриття представляє способи кодування dQP і кодування в режимі кодування без втрат, щоб уникнути таких неузгоджень кодера/декодера. Фіг. 1 є блок-схемою, що ілюструє приклад системи 10 кодування і декодування відео, яка може бути сконфігурована з можливістю використання способів кодування QP відповідно до прикладів цього розкриття. Як показано на Фіг. 1, система 10 включає в себе пристрій-джерело 12, який передає кодоване відео на пристрій-адресат 14 через канал 16 зв'язку. Кодовані відеодані можуть також бути збережені на носій 34 інформації або файл-сервер 36, і якщо буде потрібно до них може бути здійснений доступ пристроєм-адресатом 14. При збереженні на носій 34 інформації або файл-сервер 36, відеокодер 20 може надати кодовані відеодані іншому пристрою, такому як мережний інтерфейс, компакт-диск (CD), пристрій для запису Blu-ray або цифрового відеодиска (DVD), або штампувальний пристрій, або іншим пристроям, для 2 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 60 збереження відеоданих на носій інформації. Аналогічно, пристрій, окремий від відеодекодера 30, такий як мережний інтерфейс, пристрій зчитування CD або DVD, або подібні, може витягнути кодовані відеодані з носія інформації і надати витягнуті дані відеодекодеру 30. Пристрій-джерело 12 і пристрій-адресат 14 можуть містити будь-який з широкого діапазону пристроїв, що включають в себе настільні комп'ютери, комп'ютери типу ноутбук (тобто, переносні комп'ютери), планшетні комп'ютери, телеприставки, телефонні трубки, такі як так звані "інтелектуальні" телефони, телевізори, камери, пристрої відображення, цифрові медіапрогравачі, ігрові відеоконсолі або подібні. У багатьох випадках, такі пристрої можуть бути обладнані для бездротового зв'язку. Тому, канал 16 зв'язку може містити бездротовий канал, дротовий канал, або комбінацію бездротового і дротового каналів, придатну для передачі кодованих відеоданих. Аналогічним чином, до файла-сервера 36 може бути здійснений доступ пристроєм-адресатом 14 за допомогою з'єднання передачі даних будь-якого стандарту, що включає в себе Інтернет-з'єднання. Воно може включати в себе бездротовий канал (наприклад, з'єднання по Wi-Fi), дротове з'єднання (наприклад, DSL, кабельний модем, тощо), або їх комбінацію, яка підходить для здійснення доступу до кодованих відеоданих, що зберігаються на файлі-сервері. Способи кодування QP, відповідно до прикладів цього розкриття, можуть бути застосовані до кодування відео при підтримці будь-якого з різноманітності застосувань мультимедійних засобів, таких як телевізійні трансляції по радіоінтерфейсу, кабельні телепередачі, супутникові телепередачі, потокові передачі відео, наприклад, через Інтернет, кодування цифрового відео для зберігання на носії даних, декодування цифрового відео, що зберігається на носії даних, або інших застосувань. У деяких прикладах, система 10 може бути сконфігурована з можливістю підтримки односторонньої або двосторонньої передачі відео для підтримки застосувань, таких як потокова передача відео, програвання відео, трансляція відео і/або відеотелефонія. У прикладі за Фіг. 1, пристрій-джерело 12 включає в себе відеоджерело 18, відеокодер 20, модулятор/демодулятор 22 і передавач 24. У пристрої-джерелі 12, відеоджерело 18 може включати в себе джерело, таке як пристрій захоплення відео, наприклад, відеокамеру, відеоархіви, що містять раніше захоплене відео, інтерфейс подачі відео для прийому відео від постачальника відеоконтенту, і/або комп'ютерну графічну систему для генерування даних комп'ютерної графіки як вихідне відео, або комбінацію таких джерел. Як один приклад, якщо відеоджерелом 18 є відеокамера, пристрій-джерело 12 і пристрій-адресат 14 можуть утворювати так звані камерафони або відеотелефони, які можуть бути забезпечені, наприклад, всередині інтелектуальних телефонів або планшетних комп'ютерів. Однак, способи, описані в цьому розкритті, можуть загалом бути застосовні до кодування відео, і можуть бути застосовані для бездротових і/або дротових застосувань, або застосування, при яких кодовані відеодані зберігаються на локальному диску. Захоплене, заздалегідь захоплене, або згенероване комп'ютером відео може бути кодоване відеокодером 20. Кодована відеоінформація може бути модульована за допомогою модему 22 згідно зі стандартом зв'язку, таким як протокол дротового або бездротового зв'язку, і передана на пристрій-адресат 14 за допомогою передавача 24. Модем 22 може включати в себе різні змішувачі, фільтри, підсилювачі або інші компоненти, спроектовані для модуляції сигналу. Передавач 24 може включати в себе схеми, спроектовані для передачі даних, що включають в себе підсилювачі, фільтри, і, у випадку бездротового зв'язку, одну або більше антен. Захоплене, заздалегідь захоплене, або згенероване комп'ютером відео, яке кодоване відеокодером 20, може також бути збережене на носій 34 інформації або файл-сервер 36 для подальшого використання. Носій 34 інформації може включати в себе диски Blu-ray, DVD, CDROM, флеш-пам'ять або будь-які інші придатні цифрові носії даних для зберігання кодованого відео. До кодованого відео, що зберігається на носії 34 інформації, може бути потім здійснений доступ за допомогою пристрою-адресата 14 для декодування і програвання. Хоча на Фіг. 1 не показано, в деяких прикладах, носій 34 інформації і/або файл-сервер 36 можуть зберігати вихід передавача 24. Файл-сервер 36 може бути будь-яким типом сервера, здатним зберігати кодоване відео і передавати це кодоване відео на пристрій-адресат 14. Зразкові файлові сервери включають в себе веб-сервери (наприклад, для веб-сайта), FTP-сервери, пристрої сховищ (NAS), що підключаються до мережі, локальні дискові накопичувачі або будь-який інший тип пристрою, здатного зберігати кодовані відеодані і передавати їх на пристрій-адресат. Передача кодованих відеоданих з файла-сервера 36 може бути потоковою передачею, передачею на завантаження або їх комбінацією. До файла-сервера 36 може бути здійснений доступ пристроєм-адресатом 14 за допомогою з'єднання передачі даних будь-якого стандарту, що включає в себе Інтернет 3 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 60 з'єднання. Воно може включати в себе бездротовий канал (наприклад, з'єднання через Wi-Fi), дротове з'єднання (наприклад, DSL, кабельний модем, Ethernet, USB тощо), або їх комбінацію, яка придатна для здійснення доступу до кодованих відеоданих, що зберігаються на файлісервері. Пристрій-адресат 14, в прикладі за Фіг. 1, включає в себе приймач 26, модем 28, відеодекодер 30 і пристрій 32 відображення. Приймач 26 пристрою-адресата 14 приймає інформацію по каналу 16, і модем 28 демодулює інформацію, щоб зробити демодульований бітовий потік для відеодекодера 30. Інформація, що пересилається по каналу 16, може включати в себе різноманітність синтаксичної інформації, згенерованої відеокодером 20 для використання відеодекодером 30 при декодуванні відеоданих. Такий синтаксис може також бути включений з кодованими відеоданими, що зберігаються на носії 34 інформації або файлісервері 36. Кожний з відеокодера 20 і відеодекодера 30 може утворити частину відповідного кодера-декодера (кодека), який здатний кодувати або декодувати відеодані. Пристрій32 відображення може бути інтегрований з пристроєм-адресатом 14 або може бути зовнішнім по відношенню до нього. У деяких прикладах, пристрій-адресат 14 може включати в себе інтегрований пристрій відображення і може також бути сконфігурований з можливістю взаємодії із зовнішнім пристроєм відображення. В інших прикладах, пристроєм-адресатом 14 може бути пристрій відображення. Загалом, пристрій 32 відображення відображає декодовані відеодані користувачу, і може містити будь-який з різноманітності пристроїв відображення, таких як рідкокристалічний дисплей (LCD), плазмовий дисплей, дисплей на органічних світлодіодах (OLED) або інший тип пристрою відображення. У прикладі за Фіг. 1, канал 16 зв'язку може містити будь-яке середовище бездротового або дротового зв'язку, таке як радіочастотний (РЧ) спектр або одна або більше фізичних ліній передачі, або будь-яку комбінацію бездротових або дротових середовищ. Канал 16 зв'язку може утворювати частину пакетної мережі, такої як локальна мережа, територіальна мережа або глобальна мережа, така як Інтернет. Канал 16 зв'язку загалом являє собою будь-яке придатне середовище зв'язку, або набір різних середовищ зв'язку, для передачі відеоданих від пристроюджерела 12 до пристрою-адресата 14, що включає в себе будь-яку придатну комбінацію дротових і бездротових засобів. Канал 16 зв'язку може включати в себе маршрутизатори, комутатори, базові станції або будь-яке інше обладнання, яке може бути корисним, щоб сприяти зв'язку від пристрою-джерела 12 до пристрою-адресата 14. Відеодекодер 20 і відеодекодер 30 можуть функціонувати згідно зі стандартом стиснення відео, таким як стандарт Високоефективного кодування відео (HEVC), в даний момент в розробці, за допомогою Об'єднаної команди з кодування відео (JCT-VC) Експертної групи з кодування відео (VCEG) ITU-T і Експертної групи з кінематографії (MPEG) ISO/IEC. Один чорновий проект стандарту HEVC, названий "HEVC Working Draft 7" або "WD7", описаний в документі JCTVC-I1003, Brass et al., "High efficiency video coding (HEVC) Text Specification Draft 7", Об'єднаної команди з кодування відео (JCT-VC) ITU-T SGI6 WP3 та ISO/IEC JTC1/SC29/WG11, 9а зустріч: Женева, Швейцарія, 27 квітня 2012 по 7 травня 2012, який, за станом на 25 квітня 2013, можна завантажити за адресою http://phenix.itsudparis.cu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v3.zip, весь вміст якого включений в цей документ за допомогою посилання. Найостанніший чорновий проект стандарту HEVC, названий "HEVC Working Draft 10" або "WD10", описаний в документі JCTVC-L1003v34, Brass et al., "High efficiency video coding (HEVC) text specification draft 10", Об'єднаної команди з кодування відео (JCT-VC) ITU-T SGI6 WP3 і ISO/IEC JTC1/SC29/WG11, 12а зустріч: Женева, CH, 14-23 січня 2013, який, за станом на 25 квітня 2013, можна завантажити за адресою http://phenix.intevry.fr/jct/doc_end_user/documents/12 Geneva/wg11/JCTVC-L1003-v34.zip. Увесь вміст HEVC WD10 даним включений в цей документ за допомогою посилання. Хоча не показано на Фіг. 1, в деяких аспектах, кожний з відеокодера 20 і відеодекодера 30 може бути інтегрований з аудіокодером або аудіодекодером, і може включати в себе відповідні блоки MUX-DEMUX, або інші апаратні засоби і програмне забезпечення, щоб обробляти кодування як аудіо, так і відео в загальному потоці даних або окремих потоках даних. Якщо застосовно, в деяких прикладах, блоки MUX-DEMUX можуть відповідати протоколу мультиплексора ITU H.223 або іншим протоколам, таким як протокол користувацьких дейтаграм (UDP). Кожний з відеокодера 20 і відеодекодера 30 може бути реалізований у вигляді будь-якого з різноманітності придатного компонування схем кодера, таких як один або більше мікропроцесорів, процесорів цифрової обробки сигналів (DSP), спеціалізованих інтегральних мікросхем (ASIC), програмованих користувачем вентильних матриць (FPGA), дискретної логіки, 4 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 60 програмного забезпечення, апаратних засобів, програмно-апаратних засобів, або будь-якої їх комбінації. Коли способи частково реалізовані в програмному забезпеченні, пристрій може зберігати інструкції для програмного забезпечення у придатному постійному комп'ютернозчитуваному носії і може виконувати інструкції в апаратних засобах з використанням одного або більше процесорів для виконання способів цього розкриття. Кожний з відеокодера 20 і відеодекодера 30 може бути включений в один або більше кодерів або декодерів, будь-який з яких може бути інтегрований як частина об'єднаного кодера/декодера (кодека) у відповідному пристрої. Відеокодер 20 може реалізувати будь-який або всі зі способів цього розкриття для кодування QP в процесі кодування відео. Аналогічно, відеодекодер 30 може реалізувати будьякий або всі з цих способів для кодування QP в процесі кодування відео. Відеокодер, який описаний в цьому розкритті, може належати до відеокодера або відеодекодера. Аналогічним чином, блок кодування відео може належати до відеокодера або відеодекодера. Аналогічно, кодування відео може належати до кодування відео або декодування відео. В одному прикладі даного розкриття, як буде роз'яснено більш детально нижче, відеокодер 20 може бути сконфігурований з можливістю визначення значення параметра квантування (QP) для поточного квантованого блока, визначення значення дельта-параметра квантування (dQP) для поточного квантованого блока відеоданих на основі QP і предиктора QP, сигналізування значення dQP, при цьому значення dQP сигналізується незалежно від того, чи є в поточному квантованому блоці ненульові коефіцієнти перетворення чи ні, і кодування поточного квантованого блока з використанням визначеного значення QP. В іншому прикладі, відеокодер 20 може бути сконфігурований з можливістю сигналізування значення dQP для поточного квантованого блока відеоданих тільки у випадку, коли предиктор QP для поточного квантованого блока має значення нуль, і припущення, що значення dQP повинне бути рівне нулю у випадку, коли предиктор QP для поточного квантованого блока має ненульове значення, і в поточному квантованому блоці немає ненульових коефіцієнтів перетворення. Аналогічно, відеодекодер 30 може бути сконфігурований з можливістю прийому значення dQP для поточного квантованого блока відеоданих, при цьому значення dQP приймається незалежно від того, чи є в поточному квантованому блоці ненульові коефіцієнти перетворення чи ні, визначення значення QP для поточного квантованого блока на основі прийнятого значення dQP і предиктора QP, і декодування поточного квантованого блока з використанням визначеного значення QP. В іншому прикладі, відеодекодер 30 може бути сконфігурований з можливістю прийому значення dQP для поточного квантованого блока відеоданих тільки у випадку, коли предиктор QP для поточного квантованого блока має значення нуль, і припущення, що значення dQP повинне бути рівне нулю у випадку, коли предиктор QP для поточного квантованого блока має ненульове значення, і в поточному квантованому блоці немає ненульових коефіцієнтів перетворення. Цифрові відеопристрої реалізовують способи стиснення відео для більш ефективного кодування і декодування цифрової відеоінформації. Стиснення відео може застосовувати способи просторового (внутрішньокадрового) прогнозування і/або часового (міжкадрового) прогнозування для зменшення або видалення надмірності, властивої відеопослідовностям. JCT-VC працює над розробкою стандарту HEVC, наприклад, який описаний в HEVC WD10, розглянутому вище. Зусилля стандартизації HEVC основані на моделі пристрою кодування відео, що розвивається, яка називається Тестовою моделлю HEVC (HM). HM передбачає декілька додаткових здатностей пристроїв кодування відео відносно існуючих пристроїв згідно з, наприклад, ITU-T H.264/AVC. Наприклад, тоді як H.264 надає дев'ять режимів кодування з внутрішнім прогнозуванням, HM може надати до тридцяти трьох режимів кодування з внутрішнім прогнозуванням. Нижченаведений розділ розгляне визначені аспекти HM більш детально. Для кодування відео згідно зі стандартом HEVC, в поточний момент в розробці, відеокадр може бути розділений на одиниці кодування. Одиниця кодування (CU) загалом належить до ділянки зображення, яка служить як базова одиниця, до якої різні інструменти кодування застосовуються для стиснення відео. CU звичайно має компонент яскравості, позначений як Y, і два компоненти кольоровості, позначених як U та V. Залежно від формату семплювання відео, розмір компонентів U та V, в тому, що стосується числа вибірок, може бути таким самим як розмір компонента Y або відмінним від нього. CU звичайно квадратна і, може вважатися, аналогічною так званому макроблоку, наприклад, що використовується в інших стандартах кодування відео, таких як H.264 ITU-T. Кодування 5 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 60 згідно з деякими із запропонованих в даний момент аспектами розробки стандарту HEVC буде описане в цій заявці з метою ілюстрації. Однак способи, описані в цьому розкритті, можуть бути корисні для інших процесів кодування відео, таких як процеси, задані згідно з H.264 або іншим стандартом, або пропрієтарні процеси кодування відео. Згідно з HM, CU може включати в себе одну або більше одиниць прогнозування (PU) і/або одну або більше одиниць перетворення (TU). Синтаксичні дані всередині бітового потоку можуть задавати найбільшу одиницю кодування (LCU), яка є найбільшою CU, в тому, що стосується числа пікселів. Загалом, CU має призначення, аналогічне макроблоку з H.264, крім того, що CU не має відмінності за розміром. Таким чином, CU може бути розбита на під-CU. Загалом, посилання в цьому розкритті на CU можуть посилатися на найбільшу одиницю кодування зображення або під-CU з LCU. LCU може бути розбита на під-CU, і кожна під-CU може бути додатково розбита на під-CU. Синтаксичні дані для бітового потоку можуть задавати максимальне число разів, яке може бути розбита LCU, що називається глибиною CU. Відповідно, бітовий потік може також задавати найменшу одиницю кодування (SCU). Це розкриття також використовує термін "блок" або "ділянка" для посилання на будь-яку з CU, PU або TU. Загалом, "ділянка" може належить до будь-якого піднабору відеокадру. LCU може бути асоційована зі структурою даних дерева квадрантів. Загалом, структура даних дерева квадрантів включає в себе один вузол на кожну CU, де кореневий вузол відповідає LCU. Якщо CU розбита на чотири під-CU, вузол, що відповідає CU, включає в себе чотири кінцевих вузли, кожний з яких відповідає одній з під-CU. Кожний вузол структури даних дерева квадрантів може надати синтаксичні дані для відповідної CU. Наприклад, вузол в дереві квадрантів може включати в себе прапор розбиття, який вказує, чи розбита CU, що відповідає вузлу, на під-CU. Синтаксичні елементи для CU можуть бути задані рекурсивно і можуть залежати від того, чи розбита CU на під-CU. Якщо CU додатково не розбита, вона називається кінцевою CU. CU може включати в себе одну або більше одиниць прогнозування (PU). Загалом, PU являє собою все або ділянку відповідної CU і може включати в себе дані для витягання опорної вибірки для PU. Наприклад, коли PU кодована у зовнішньому режимі, PU може включати в себе дані, що задають вектор руху для PU. Дані, що задають вектор руху, можуть описувати, наприклад, горизонтальну складову вектора руху, вертикальну складову вектора руху, розрізнення для вектора руху (наприклад, точність в одну четверту пікселя або точність в одну восьму пікселя), опорний кадр, на який вказує вектор руху, і/або опорний список (наприклад, список 0 або список 1) для вектора руху. Дані для CU, що задає PU, можуть також описувати, наприклад, розділення CU на одну або більше PU. Режими розділення можуть відрізнятися залежно від того, чи є CU некодованою, кодованою в режимі внутрішнього прогнозування або кодованою в режимі зовнішнього прогнозування. Для внутрішнього кодування, PU може бути оброблена також як кінцева одиниця перетворення, описана нижче. Стандарт HEVC, що з'явився, забезпечує можливість перетворень згідно з одиницями перетворення (TU), які можуть бути різними для різних CU. TU звичайно мають розмір, оснований на розмірі PU всередині заданої CU, заданої для розділеної LCU, хоча це може бути не завжди так. TU звичайно мають однаковий розмір або менший, ніж PU. У деяких прикладах, залишкові вибірки, що відповідають CU, можуть бути поділені на менші одиниці з використанням структури дерева квадрантів, відомої як "залишкове дерево квадрантів" (RQT). Кінцеві вузли RQT можуть називатися одиницями перетворення (TU). Значення різниці пікселів, асоційовані з TU, можуть бути перетворені, щоб виробити коефіцієнти перетворення, які можуть бути квантовані. TU включає в себе блок перетворення яскравості і два блоки перетворення кольоровості. У зв'язку з цим, будь-який процес кодування, розглянутий нижче, який застосовується до TU, може бути, насправді, застосований до блоків перетворення яскравості та кольоровості. Загалом, PU посилається на дані, що належать до процесу прогнозування. Наприклад, коли PU кодована у внутрішньому режимі, PU може включати в себе дані, що описують режим внутрішнього прогнозування для PU. Як інший приклад, коли PU кодована у зовнішньому режимі, PU може включати в себе дані, що задають вектор руху для PU. Загалом, TU використовується для процесів перетворення і квантування. Задана CU, що має одну або більше PU, може також включати в себе одну або більше одиниць перетворення TU. Услід за прогнозуванням, відеокодер 20 може обчислити залишкові значення з відеоблока, ідентифікованого вузлом кодування, відповідно до PU. Вузол кодування потім оновлюється для посилання на залишкові значення, а не первинний відеоблок. Залишкові значення містять значення різниць пікселів, які можуть бути перетворені в коефіцієнти перетворення, квантовані і проскановані з використанням перетворень та іншої інформації перетворення, точно визначеної 6 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 в TU, щоб виробити послідовні коефіцієнти перетворення для ентропійного кодування. Вузол кодування може бути ще раз оновлений для посилання на ці послідовні коефіцієнти перетворення. Це розкриття звичайно використовує термін "відеоблок" для посилання на вузол кодування CU. У деяких конкретних випадках, це розкриття може також використовувати термін "відеоблок" для посилання на деревоподібний блок, тобто, LCU, або CU, яка включає в себе вузол кодування PU та TU. Відеопослідовність звичайно включає в себе ряд відеокадрів або зображень. Група зображень (GOP) в основному містить ряд з одного або більше відеозображень. GOP може включати синтаксичні дані в заголовок GOP, заголовок одного або більше зображень, або будькуди ще, які описують число зображень, включених в GOP. Кожний слайс зображення може включати в себе синтаксичні дані слайса, які описують режим кодування для відповідного слайса. Відеокодер 20 звичайно здійснює функціонування у відношенні відеоблоків всередині окремих слайсів відео для того, щоб кодувати відеодані. Відеоблок може відповідати вузлу кодування всередині CU. Відеоблоки можуть мати фіксовані або змінні розміри, і можуть відрізнятися за розміром згідно з точно визначеним стандартом кодування. Щоб кодувати блок (наприклад, одиницю прогнозування відеоданих), спочатку одержують предиктор для блока. Прогнозувальник, який також називається прогнозувальним блоком, може бути одержаний або за допомогою внутрішнього (I) прогнозування (тобто, просторового прогнозування) або зовнішнього (Р або В) прогнозування (тобто часового прогнозування). Тому, деякі одиниці прогнозування можуть бути кодовані за допомогою внутрішнього кодування (I) з використанням просторового прогнозування по відношенню до опорних вибірок у сусідніх опорних блоках в одному і тому самому кадрі (або слайсі), і інші одиниці прогнозування можуть бути кодовані за допомогою зовнішнього кодування з однонаправленим прогнозуванням (Р) або кодовані за допомогою зовнішнього кодування з двонаправленим прогнозуванням (В) по відношенню до блоків опорних вибірок в інших раніше кодованих кадрах (або слайсах). У кожному випадку, опорні вибірки можуть бути використані для утворення прогнозувального блока для блока, який повинен бути кодований. Після ідентифікації прогнозувального блока, визначається різниця між пікселями в первинному блоці відеоданих і пікселями в його прогнозувальному блоці. Ця різниця може називатися залишковими даними прогнозування і вказує різниці пікселів між значеннями пікселів у блоці, який повинен бути кодований, і значеннями пікселів у прогнозувальному блоці, вибраному для представлення кодованого блока. Для досягнення кращого стиснення, залишкові дані прогнозування можуть бути перетворені, наприклад, з використанням дискретного косинусного перетворення (DCT), цілочисельного перетворення, перетворення Карунена-Лоєва (K-L) або іншого перетворення, щоб виробити коефіцієнти перетворення. Залишкові дані в блоці перетворення, такому як TU, можуть бути розміщені в двовимірному масиві (2D) масиві значень різниці пікселів, що знаходяться в просторовій, піксельній ділянці. Перетворення перетворює залишкові значення пікселів у двовимірний масив коефіцієнтів перетворення в ділянці перетворення, такій як частотна ділянка. Квантування може бути застосоване до коефіцієнтів перетворення, і загалом передбачає процес, який обмежує число бітів, асоційованих з будь-яким заданим коефіцієнтом перетворення. Більш конкретно, квантування може бути застосоване згідно з параметром квантування (QP). Замість передачі самого QP, зміна (тобто, дельта) в QP може бути сигналізована з LCU. Дельта-QP задає зміну в параметрі квантування для LCU відносно прогнозованого значення для QP для LCU, такого як QP раніше пересланої CU або QP, заданої попередніми QP і/або одним або більше правилами. Це розкриття стосується генерування і сигналізації дельта-QP всередині кодованого бітового потоку, способом, який може поліпшити якість (і можливе стиснення) в стандарті HEVC. Для додаткового стиснення, коефіцієнти перетворення можуть бути квантовані до ентропійного кодування. Ентропійний кодер потім застосовує ентропійне кодування, таке як контекстно-адаптоване кодування із змінною довжиною кодового слова (CAVLC), контекстнозалежне адаптивне двійкове арифметичне кодування (CABAC), ентропійне кодування з розбиттям за імовірнісним інтервалом (PIPE) або подібне, до квантованих коефіцієнтів перетворення. У деяких прикладах, відеокодер 20 може використовувати заздалегідь заданий порядок сканування для сканування квантованих коефіцієнтів перетворення, щоб зробити послідовний вектор, який може бути ентропійно кодований. В інших прикладах, відеокодер 20 може виконувати адаптивне сканування. Після сканування квантованих коефіцієнтів перетворення для утворення одновимірного вектора, відеокодер 20 може ентропійно кодувати одновимірний вектор, відеокодер 20 може також ентропійно кодувати синтаксичні елементи, 7 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 60 асоційовані з кодованими відеоданими, для використання відеодекодером 30 при декодуванні відеоданих. Як розглянуто вище, дельта-QP (також відмічена як dQP) може бути сигналізований в кодованому відеопотоці, щоб кодувати QP для блока відеоданих. Дельта-QP задає різницю між поточним QP (тобто, фактичним QP, що використовується для поточного блока) і предиктором поточного QP (предиктором QP). На основі сигналізованого dQP, відповідне поточне значення QP може бути реконструйоване за допомогою додавання dQP до значення предиктора QP. Тобто, на відеокодері 20, dQP обчислюється за допомогою віднімання предиктора QP з дійсного QP поточного блока: dQP=поточний QP - предиктор QP. На відеодекодері 30, фактичний QP поточного блока реконструюється за допомогою додавання прийнятого dQP до предиктора QP: поточний QP=dQP+предиктор QP. У деяких прикладах, предиктор QP заданий як середнє значень фактичного QP для блока зверху і блока зліва від поточного блока. Згідно з пропозиціями для HEVC та HM, для сигналізації dQP задається група квантування (QG). QG є мінімальним розміром блока, куди сигналізується dQP. QG може складатися з одиночної CU або численних CU. У багатьох випадках, QG може бути меншим, ніж один або більше можливих розмірів CU. Наприклад, QG може бути задана і/або сигналізована з розміром 16 × 16 пікселів. У цьому прикладі, буде можливо мати CU з розміром 32 × 32 або 64 × 64. У різних прикладах, розмір QG сигналізується в наборі параметрів зображення (PPS). Однак, розмір QG може бути сигналізований на інших рівнях бітового потоку, включаючи заголовок слайса, набір параметрів адаптації (APS), набір параметрів послідовності (SPS), і подібні. Якщо CU має розмір, рівний або більше, ніж розмір QG, dQP може бути сигналізований для такої CU. Однак, для CU, які менше, ніж розмір QG, сигналізується загальний dQP і розподіляється серед всіх CU всередині QG. У деяких прикладах, запропонованих для HEVC, сигналізація dQP для визначеного блока (CU або QG) також залежить від того, чи є в блоці ненульові коефіцієнти. dQP сигналізується в блоці після (і іноді тільки після) того, як відеокодер 20 визначить, що є ненульові коефіцієнти, кодовані в тому самому блоці. Фіг. 2 показує приклад QG 16 × 16, яка включає в себе 7 CU (CU0-CU6). CU0-CU2 є CU 8 × 8, тоді як CU3-CU6 є CU 4 × 4. У прикладі за Фіг. 2, затінена CU5 включає в себе щонайменше ненульовий коефіцієнт. У зв'язку з цим, відеокодер 20 сигналізує один dQP для всієї QG 102, і відеодекодер 30 буде застосовувати сигналізований dQP для використання при декодуванні кожної з CU0-CU6. Якщо жодна CU в QG 102 не включає в себе ненульовий коефіцієнт, dQP не буде сигналізований для цієї QG. У поточних пропозиціях для HEVC, чи сигналізується dQP для визначеного блока (наприклад, CU), залежить від розміру QG. Якщо розмір QG в прикладі за Фіг. 2 був 8 × 8, dQP не буде сигналізований для CU0-CU2, оскільки вони не включають в себе ненульові коефіцієнти. Однак, один dQP буде сигналізований для CU3-CU6 для спільного використання, оскільки кожна з цих CU знаходиться всередині QG, яка містить щонайменше один ненульовий коефіцієнт. Аналогічно, якщо розмір сигналізованої QG був 4 × 4, dQP не буде сигналізований для будь-якого блока, крім CU5 (тобто, блока, що має ненульові коефіцієнти). Іншими словами, коли в QG є численні CU, dQP для QG не сигналізується, доки CU з ненульовими коефіцієнтами не буде розміщуватися всередині даної QG. Наприклад, якщо є чотири CU QG і жодна з перших трьох CU не має ненульового коефіцієнта (які також називаються як ненульові CU в подальшому описі), крім четвертої CU, dQP сигналізується тільки в четвертій CU. Загалом, перша ненульова CU в QG може бути розміщена в будь-якому положенні всередині QG. Наприклад, перша ненульова CU може бути першою CU, останньою CU або будь-якою іншою CU в QG. У деяких випадках, ненульові CU можуть не бути присутніми в QG. У подальшому описі, загальний термін "квантований блок" використовується для посилання на CU, яка має розмір, більший, ніж сигналізована QG, або рівний їй, або для посилання на QG, що містить деяке число CU. Тобто, квантованим блоком є QG, що містить одну або більше CU, або CU, яка більше, ніж QG. Термін "нульовий блок" буде використаний для вказівки блока (наприклад, TU або блока перетворення, асоційованого з CU), який не має ненульових коефіцієнтів. Коли квантованим блоком є QG, що містить численні CU, QG вважається нульовим блоком, коли всі CU всередині QG є нульовими блоками. dQP сигналізується для кожного квантованого блока, коли квантований блок містить щонайменше один ненульовий коефіцієнт. Коли dQP не сигналізується для квантованого блока, значення dQP припускається рівним нулю. У зв'язку з цим, на відеодекодері 30, значення QP для поточного блока буде рівне значенню предиктора QP (тобто, поточний QP=dQP+предиктор QP, де dQP припускається рівним нулю). Згідно з поточними пропозиціями для HEVC та HM, предиктор QP заданий як 8 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 середнє значень QP для квантованого блока зліва і квантованого блока зверху, як показано на Фіг. 3 (тобто, показуючи прогнозування QP для поточного квантованого блока з використанням квантованих блоків зліва і зверху). Предиктор QP може бути заданий різними способами в інших прикладах. Наприклад, предиктор QP може також бути заданий як значення QP з квантованого блока зліва, заданий як значення QP раніше кодованого квантованого блока в потоці або заданий іншими способами. У поточних пропозиціях для HEVC, режим кодування без втрат задається для кодування блока (наприклад, однієї або більше CU). Згідно з цим режимом кодування без втрат, деякі операції кодування, такі як перетворення, квантування і фільтрація контурним фільтром, пропускаються. У поточних пропозиціях для HEVC, режим кодування без втрат може бути вказаний відеокодером 20 за допомогою використання значення QP, рівного нулю, для блока, кодованого за допомогою режиму кодування без втрат. Так, якщо конкретний квантований блок кодується в режимі кодування без втрат, значення QP для цього квантованого блока повинне бути задане в значення нуль і сигналізоване декодеру. У цьому випадку, сигналізація значення QP досягається за допомогою відправки dQP зі значенням, рівним негативному значенню предиктора QP, тобто, dQP=фактичний QP (нуль в цьому випадку) - предиктор QP. Визначені проблеми можуть виникнути при використанні сигналізації dQP для квантованого блока спільно з режимом кодування без втрат, вказаним значенням QP рівним нулю. Такі проблеми можуть призвести до неузгодження кодера/декодера, і потенційно, збою декодера. Щоб роз'яснити першу проблему, припустимо, що предиктор QP, одержаний для поточного квантованого блока, рівний нулю. Наприклад, як квантований блок зліва, так і квантований блок зверху кодуються в режимі кодування без втрат, і таким чином кожний з QP рівний нулю. Предиктор QP може також дорівнювати нулю у випадку, коли один з квантованих блоків зліва або зверху кодується в режимі кодування без втрат, і інший квантований блок має QP, рівний 1. Предиктор QP, в цьому випадку, є середнім двох блоків, тобто 0,5, і округлений із зменшенням до нуля. Також припустимо, що поточний квантований блок звичайно (тобто, не без втрат) кодується з використанням ненульового значення QP. У зв'язку з цим, для поточного квантованого блока застосовуються перетворення, квантування і всі процеси фільтрації контурним фільтром. У цьому випадку, якщо квантований блок є ненульовим блоком (тобто, не має ненульових коефіцієнтів), відеокодер 20 не буде сигналізувати dQP відеодекодеру 30 для цього квантованого блока. При такій ситуації виникає проблема. На відеокодері 20, цей зразковий квантований блок кодується з використанням ненульового QP з використанням внутрішнього або зовнішнього прогнозування. Однак, без сигналізації dQP, передбачуване значення QP на боці декодера має значення нуль. Це тому, що dQP не сигналізований, і таким чином dQP припускається рівним нулю. У зв'язку з цим, поточним QP для квантованого блока буде предиктор QP, як роз'яснене вище. Однак, оскільки в цьому прикладі, предиктор QP також дорівнює нулю, поточне значення QP для квантованого блока буде також реконструйоване, щоб дорівнювати нулю, що відеодекодер 30 буде інтерпретувати як вказівку, що поточний квантований блок повинен бути декодований в режимі кодування без втрат. У зв'язку з цим, відеодекодер 30 може спробувати реконструювати квантований блок з використанням режиму кодування без втрат, незважаючи на те, що він був кодований з використанням іншого режиму прогнозування (наприклад, зовнішнього або внутрішнього прогнозування). Така ситуація призводить до неузгодження кодера/декодера, що може викликати низьку візуальну якість, або навіть збій декодера. Друга проблема виникає, коли предиктор QP для поточного квантованого блока є ненульовим, але поточний квантований блок кодований за допомогою режиму кодування без втрат і не має залишку (тобто, в залишку немає ненульових значень), і таким чином, dQP не передається. У результаті, на відеодекодері 30, значення dQP буде припускатися рівним нулю, замість прийому значення dQP, рівного -предиктор QP. У зв'язку з цим, відеодекодер 30 буде реконструювати значення QP квантований блок як 0 (передбачуваний dQP)+предиктор QP=предиктор QP. У зв'язку з цим, відеодекодер 30 буде реконструювати ненульове фактичне значення QP, і таким чином буде нездатний ідентифікувати режим кодування без втрат для цього квантованого блока. Щоб вирішити першу проблему, згідно з першим прикладом цього розкриття, відеокодер 20 сконфігурований з можливістю завжди сигналізувати dQP для кожного квантованого блока незалежно від того, чи є квантований блок нульовим блоком чи ні. Наприклад, dQP може завжди сигналізуватися для блока (наприклад, CU), більшого, ніж QG, або в першу CU з QG. Таким чином, dQP не буде невірно припускатися рівним нулю, і уникнуть автоматичного 9 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 припущення режиму кодування без втрат для квантованого блока, коли dQP припускається рівним нулю, і предиктор QP також дорівнює нулю. Згідно з другим прикладом даного розкриття, для того, щоб обмежити число випадків, коли dQP сигналізується, відеокодер 20 сконфігурований з можливістю сигналізації dQP для квантованого блока у випадку, коли предиктор QP для квантованого блока рівний нулю. Приклад, коли предиктор QP для поточного квантованого блока рівний нулю, показаний на Фіг. 4. У прикладі за Фіг. 4, предиктор QP для блока 104 рівний нулю, оскільки QP як для блока зверху, так і для блока зліва, рівний нулю. Внаслідок цього, згідно з цим прикладом даного розкриття, dQP сигналізується для квантованого блока 104 незалежно від того, чи є він нульовим блоком чи ні. В іншому випадку, якщо предиктор QP є ненульовим для квантованого блока 104, dQP не сигналізується для квантованого блока 104, якщо він є нульовим блоком. В іншому прикладі, незалежно від того, чи є поточний квантований блок нульовим блоком чи ні, dQP сигналізується для квантованого блока, якщо один з QP (наприклад, QP квантованого блока зверху або знизу), що використовуються для прогнозування QP поточного квантованого блока, рівний нулю, або якщо різниця між QP, що використовуються для прогнозування QP, менше або більше, ніж деякий поріг, при цьому таким порогом може бути будь-яке ціле число. В іншому випадку, dQP не сигналізується, якщо квантований блок є нульовим блоком. Звичайно, dQP все одно сигналізується, якщо квантований блок містить ненульові коефіцієнти. Поріг може бути фіксованим або сигналізованим в заголовку, наприклад, в PPS, заголовку слайса або APS. В інших прикладах, поріг може бути сигналізований на рівнях LCU або CU. В іншому прикладі даного розкриття, замість вказівки режиму кодування без втрат для блока за допомогою використання нульового QP, відеокодер 20 може бути сконфігурований з можливістю кодування окремого прапора або синтаксичного елемента, щоб вказати, що блок кодований за допомогою режиму кодування без втрат. В одному прикладі, такий прапор може називатися "прапором кодування без втрат". При використанні прапорів кодування без втрат, всі приклади сигналізування dQP вище все одно застосовні. Наприклад, у випадку, коли поточний квантований блок є ненульовим блоком, dQP сигналізується для квантованого блока, якщо один (або всі, в іншому прикладі) з квантованих блоків, що використовуються для прогнозування QP (наприклад, квантовані блоки зліва і зверху у вищезгаданих прикладах), кодований в режимі кодування без втрат (тобто, прапор кодування без втрат включений для квантованого блока, що використовується для прогнозування QP). Однак, якщо прапор кодування без втрат використовується для ідентифікації кодування в режимі кодування без втрат для квантованого блока, завдання QP в значення нуль для цього кодованого в без втрат квантованого блока може не бути оптимальним варіантом, оскільки це значення QP буде використане надалі для прогнозування значень QP подальших квантованих блоків. Один приклад кодованих без втрат квантованих блоків зліва і зверху з ненульовим привласненим QP, показаний на Фіг. 5 (тобто, приклад для ненульового QP, привласненого кодованим без втрат квантованим блокам). Як показано на Фіг. 5, квантовані блоки зліва (QPleft) і зверху (QPabove) відносно поточного квантованого блока 106 мають ненульовий QP, але кожний кодується в режимі кодування без втрат (вказано прапором кодування без втрат =1). Згідно з іншим прикладом цього розкриття, якщо квантований блок кодується в режимі кодування без втрат, який вказується прапором кодування без втрат (наприклад, QPleft та QPabove, як показано на Фіг. 5), значення QP, рівне предиктору QP цього квантованого блока, може бути як поточне для поточного QP для цього блока. Наприклад, для QPabove на Фіг. 5, замість використання значення QP, рівного нулю, для блока, оскільки він кодований без втрат, як поточний QP може бути використаний предиктор QP для QPabove (наприклад, середні QP блоків зліва і QPabove зверху). Таким чином, ненульове значення QP може бути доступне для використання як предиктор QP для подальших квантованих блоків, таким чином уникаючи потенційного неузгодження кодера/декодера. В іншому прикладі, значення QP кодованого без втрат квантованого блока, вказаного з використанням прапора кодування без втрат, може також бути задане рівним QP слайса або будь-якому іншому заздалегідь заданому QP. В описі вище, прапор кодування без втрат був описаний, як такий, що передається на рівні квантованого блока. Як інший приклад даного розкриття, відеокодер 20 може бути сконфігурований з можливістю сигналізації прапора кодування без втрат для кожної CU всередині квантованого блока. У цьому випадку, всі способи, описані вище, все одно застосовні. Наприклад, у випадку, коли CU всередині квантованого блока кодується без втрат, сигналізація dQP може бути пропущена, і значення dQP припускається рівним нулю на відеодекодері 30. У зв'язку з цим, предиктор QP буде одержаний як QP для цієї кодованої без втрат CU і використаний для прогнозування значень QP послідовних блоків. У цьому випадку, сигналізація 10 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 60 dQP пропускається для кодованої без втрат CU незалежно від того, чи є в CU ненульовий залишок чи ні. В іншому прикладі цього розкриття, прапор кодування без втрат квантованого блока може бути сигналізований для квантованого блока. Коли заданий, наприклад, в значення 1, прапор кодування без втрат на рівні квантованого блока вказує, що щонайменше одна CU всередині квантованого блока кодована без втрат. Якщо прапор кодування без втрат на рівні квантованого блока має значення, наприклад, 1, то прапор кодування CU без втрат сигналізується для кожної CU всередині квантованого блока, вказуючи, чи кодована без втрат конкретна CU чи ні. В іншому випадку, якщо прапор кодування без втрат квантованого блока дорівнює 0 (тобто, в квантованому блоці немає CU, кодованих без втрат), прапор кодування CU без втрат не потрібен для кожної CU всередині квантованого блока. В іншому прикладі, ефективність сигналізації може бути додатково підвищена при використанні прапорів кодування без втрат на двох рівнях (на основі квантованого блока і на основі CU). Якщо прапор кодування без втрат на рівні блока квантування включений (наприклад, має значення 1), і досягнута остання CU, і немає прапорів кодування без втрат на рівні CU, кодованих до останньої CU для поточного квантованого блока, то сигналізація прапора кодування CU без втрат для останньої CU може бути пропущена. Це тому, що прапор кодування без втрат квантованого блока вказує, що є щонайменше одна CU, кодована без втрат, і внаслідок цього, можна припустити, що остання CU в цьому прикладі повинна бути кодована без втрат. Однак, якщо прапор кодування без втрат для групи квантування відключений (наприклад, має значення 0), означаючи, що всередині квантованого блока немає CU, кодованих без втрат, то сигналізація прапора кодування без втрат на основі CU може бути опущена для поточного квантованого блока. Ті самі способи для кодування прапора кодування без втрат і сигналізації видалення надмірності, у випадку коли прапор кодування без втрат може передбачатися як описано вище, можуть бути застосовані в кадрі, слайсі, LCU і/або іншій заданій одиниці або рівнях процесу кодування відео. Термін "прапор" може належати до однобітового синтаксичного елемента. Додатково, замість прапора, може також бути використаний багатобітовий синтаксичний елемент, синтаксичний елемент із змінною довжиною або інший тип структури даних, здатної передавати інформацію, описану вище для прапора. Щоб повторити другий недолік, що належить до запропонованих в цей час способів сигналізації dQP в HEVC, відеодекодер 30 може бути не здатний коректно ідентифікувати режим кодування без втрат для квантованого блока, коли предиктор QP для поточного квантованого блока є ненульовим, але поточний квантований блок може бути кодований за допомогою режиму кодування без втрат і не мати залишку (тобто, в залишку немає ненульових значень). У цій ситуації, dQP не передається, і припускається рівним нулю відеодекодером 30. У зв'язку з цим, відеодекодер 30 буде реконструювати ненульове фактичне значення QP з використанням нульового dQP, і таким чином буде не здатний ідентифікувати режим кодування без втрат для цього квантованого блока. Щоб вирішити цю проблему, згідно з іншим прикладом цього розкриття, відеокодер 20 може бути сконфігурований з можливістю усунення сценаріїв, де він буде в іншому випадку не здатний ідентифікувати режим кодування без втрат, так що відеокодеру 20 просто не забезпечується можливість вибору режиму кодування без втрат для конкретного квантованого блока, коли немає залишку прогнозування для поточного квантованого блока, і предиктор QP не рівний нулю, або квантовані блоки, що використовуються для прогнозування QP, кодуються без втрат (наприклад, прапор кодування без втрат включений). У зв'язку з цим, можна уникнути ситуації, коли відеодекодер 30 визначає ненульовий QP для квантованого блока, який був кодований без втрат. Інший недолік деяких пропозицій для сигналізації dQP в HEVC передбачає кодування з найпростішою бінаризацією, що використовується. За таких пропозицій для HEVC, dQP кодується з використанням зрізаної найпростішої бінаризації. Значення dQP може ранжуватися від -(26+QpBdOffsetY/2) до +(25+QpBdOffsetY/2), де QpBdOffsetY залежить від введення глибини в бітах, яке може бути від 0 до 18. Через асиметричний розподіл значень дельта-QP, cMax зрізаної найпростішої бінаризації залежить від знаку значення dQP. Наприклад припускаючи QpBdOffsetY рівним нулю, cMax дорівнює 26, якщо значення негативне, і cMax дорівнює 25 для позитивних значень. У результаті, це вимагає перевірки відеокодером 20 і відеодекодером 30 знаку при кодуванні та аналізі dQP. Залежно від значення знаку, при кодуванні та аналізі dQP використовуються різні значення cMax. Для зменшення цієї складності, це розкриття додатково пропонує видалити залежність від знаку при бінаризації dQP за допомогою зміни діапазону значення dQP так, щоб значення cMax 11 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 60 при зрізаній найпростішій бінаризації було однаковим незалежно від знаку. Наприклад, для позитивного значення dQP, діапазон може бути збільшений на один, і весь діапазон буде від (26+QpBdOffsetY/2) до +(26+QpBdOffsetY/2). У цьому випадку, одна і та сама бінаризація використовується для кодування та аналізу як позитивних, так і негативних значень dQP, і перевірка значення знаку не потрібна. Цей спосіб не обмежений тільки зрізаною найпростішою бінаризацією, але може бути застосований до будь-якої іншої схеми бінаризації, наприклад способів експонентного кодування Голомба. Фіг. 6 є блок-схемою, що ілюструє приклад відеокодера 20, який може використовувати способи кодування dQP, які описані в цьому розкритті. Відеокодер 20 буде описаний в контексті HEVC-кодування з метою ілюстрації, але без обмеження цього розкриття відносно інших стандартів кодування або способів, які можуть вимагати сканування коефіцієнтів перетворення. Відеокодер 20 може виконувати внутрішнє і зовнішнє кодування CU всередині відеокадрів. Внутрішнє кодування покладається на просторове прогнозування для зменшення або видалення просторової надмірності у відеоданих всередині заданого відеокадру. Зовнішнє кодування покладається на часове прогнозування для зменшення або видалення просторової надмірності між поточним кадром і раніше кодованими кадрами відеопослідовності. Внутрішній режим (I-режим) може належати до будь-яких з декількох просторових режимів стиснення відео. Зовнішні режими, такі як однонаправлене прогнозування (Р-режим) або двонаправлене прогнозування (В-режим), можуть належати до будь-яких з декількох часових режимів стиснення відео. Як показано на Фіг. 6, відеокодер 20 приймає поточний відеоблок всередині відеокадру, який повинен бути кодований. У прикладі за Фіг. 6, відеокодер 20 включає в себе блок 44 компенсації руху, блок 42 оцінки руху, блок 46 обробки внутрішнього прогнозування, буфер 64 опорних кадрів, суматор 50, блок 52 обробки перетворення, блок 54 квантування і блок 56 ентропійного кодування. Блок 52 обробки перетворення, проілюстрований на Фіг. 6, є блоком, який застосовує фактичне перетворення або комбінації перетворення до блока залишкових даних, і його не треба плутати з блоком коефіцієнтів перетворення, який також може називатися одиницею перетворення (TU) CU. Для реконструкції відеоблока, відеокодер 20 також включає в себе блок 58 оберненого квантування, блок 60 обробки оберненого перетворення і суматор 62. Фільтр видалення блочності (не показаний на Фіг. 6) може також бути включений для фільтрації меж блока, щоб видалити артефакти блочності з реконструйованого відео. Якщо потрібно, фільтр видалення блочності буде звичайно фільтрувати вихід суматора 62. Під час процесу кодування, відеокодер 20 приймає відеокадр або слайс, який повинен бути кодований. Кадр або слайс може бути розділений на численні відеоблоки, наприклад, найбільші одиниці кодування (LCU). Блок 42 оцінки руху і блок 44 компенсації руху виконують кодування із зовнішнім прогнозуванням прийнятого відеоблока, що належить до одного або більше блоків в одному або більше опорних зображеннях, для забезпечення часового стиснення. Блок 46 обробки внутрішнього прогнозування може виконувати кодування з внутрішнім прогнозуванням прийнятого відеоблока, що належить до одного або більше сусідніх блоків в одному кадрі або слайсі, як блока, який повинен бути кодований, для забезпечення просторового стиснення. Блок вибору режиму 40 може вибрати один з режимів кодування, внутрішній або зовнішній, наприклад, на основі результатів помилки (тобто, спотворення) для кожного режиму, і надає результуючий блок, прогнозований за допомогою внутрішнього або зовнішнього прогнозування (наприклад, одиницю прогнозування (PU)), суматору 50 для генерування даних залишкового блока і суматору 62 для реконструювання кодованого блока для використання в опорному кадрі. Суматор 62 об'єднує прогнозований блок з обернено квантованими, обернено перетвореними даними з блока 60 обробки оберненого перетворення для блока, щоб реконструювати кодований блок, як описано більш детально нижче. Деякі відеокадри можуть бути позначені як I-кадри, де всі блоки в I-кадрі кодовані в режимі внутрішнього прогнозування. У деяких випадках, блок 46 обробки внутрішнього прогнозування може виконувати кодування з внутрішнім прогнозуванням блока в Р- або В-кадрі, наприклад, коли пошук руху, виконаний блоком 42 оцінки руху, не дає в результаті достатнього прогнозування блока. Блок 42 оцінки руху і блок 44 компенсації руху можуть мати високий ступінь інтеграції, але проілюстровані роздільно із смислових міркувань. Оцінка руху (або пошук руху) є процесом генерування векторів руху, який оцінює рух для відеоблоків. Вектор руху, наприклад, може вказувати зсув одиниці прогнозування в поточному кадрі відносно опорної вибірки опорного кадру. Блок 42 оцінки руху обчислює вектор руху для одиниці прогнозування кодованого за допомогою зовнішнього кодування кадру за допомогою порівняння одиниці прогнозування з опорними вибірками опорного кадру, що зберігається в буфері 64 опорних кадрів. Опорною вибіркою може бути блок, який виявляється близько співпадаючим з ділянкою CU, що включає в 12 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 60 себе PU, яка кодується, в тому, що стосується різниці пікселів, яка може бути визначена за допомогою суми абсолютних різниць (SAD), суми квадратів різниць (SSD) або інших показників різниць. Опорна вибірка може виникнути скрізь всередині опорного кадру або опорного слайса, і необов'язкова на межі блока (наприклад, одиниці кодування) опорного кадру або слайса. У деяких прикладах, опорна вибірка може виникнути в положенні дробового пікселя. Блок 42 оцінки руху відправляє обчислений вектор руху на блок 56 ентропійного кодування і блок 44 компенсації руху. Ділянка опорного кадру, ідентифікована вектором руху, може називатися опорною вибіркою. Блок 44 компенсації руху може обчислити значення прогнозування для одиниці прогнозування поточної CU, наприклад, за допомогою витягання опорної вибірки, ідентифікованої вектором руху для PU. Блок 46 обробки внутрішнього прогнозування може здійснити внутрішнє прогнозування прийнятого блока, як альтернативи зовнішньому прогнозування, що виконується блоком 42 оцінки руху і блоком 44 компенсації руху. Блок 46 обробки внутрішнього прогнозування може прогнозувати прийнятий блок відносно сусідніх, раніше кодованих блоків, наприклад, блоків зверху, зверху і праворуч, зверху і зліва, або зліва від поточного блока, передбачаючи для блоків порядок кодування зліва направо, зверху вниз. Блок 46 обробки внутрішнього прогнозування може бути сконфігурований з різноманіттям різних режимів внутрішнього прогнозування. Наприклад, блок 46 обробки внутрішнього прогнозування може бути сконфігурований з визначеним числом режимів направленого прогнозування, наприклад, тридцять три режими направленого прогнозування, на основі розміру CU, яка кодується. Блок 46 обробки внутрішнього прогнозування може вибрати режим внутрішнього прогнозування, наприклад, за допомогою обчислення значень помилок для різних режимів внутрішнього прогнозування і здійснення вибору режиму, який дає найменше значення помилки. Режими направленого прогнозування можуть включати в себе функції для об'єднання значень просторово сусідніх пікселів і застосування об'єднаних значень до одного або більше положень пікселів у PU. Як тільки значення для всіх положень пікселів у PU були обчислені, блок 46 обробки внутрішнього прогнозування може обчислити значення помилки для режиму прогнозування на основі різниці пікселів між PU і прийнятим блоком, який повинен бути кодований. Блок 46 обробки внутрішнього прогнозування може продовжувати тестування режимів внутрішнього прогнозування, доки не буде виявлений режим внутрішнього прогнозування, який дає допустиме значення помилки. Блок 46 обробки внутрішнього прогнозування може потім відправити PU на суматор 50. Відеокодер 20 утворює залишковий блок за допомогою віднімання даних прогнозування, обчислених блоком 44 компенсації руху або блоком 46 обробки внутрішнього прогнозування, з первинного відеоблока, який кодується. Суматор 50 являє собою компонент або компоненти, які виконують цю операцію віднімання. Залишковий блок може відповідати двовимірній матриці значень різниць пікселів, де число значень в залишковому блоці є таким самим як число пікселів у PU, що відповідає залишковому блоку. Значення в залишковому блоці можуть відповідати різницям, тобто, помилці, між значеннями суміщених пікселів у PU і в первинному блоці, який повинен бути кодований. Різницями можуть бути різниці кольоровості або яскравості, залежно від типу блока, який кодується. У деяких випадках, наприклад, в режимі кодування без втрат, залишок може бути відправлений безпосередньо на блок 56 ентропійного кодування. У зв'язку з цим, процеси перетворення і квантування пропускаються. Додатково, будь-які процеси фільтрації контурним фільтром можуть також бути пропущені. Блок 52 обробки перетворення може утворити одну або більше одиниць перетворення (TU) із залишкового блока. Блок 52 обробки перетворення вибирає перетворення з числа множини перетворень. Перетворення може бути вибране на основі однієї або більше характеристик кодування, таких як розмір блока, режим кодування, або подібних. Блок 52 обробки перетворення потім застосовує вибране перетворення до TU, виробляючи відеоблок, що містить двовимірний масив коефіцієнтів перетворення. Блок 52 обробки перетворення може відправити результуючі коефіцієнти перетворення на блок 54 квантування. Блок 54 квантування може потім здійснити квантування коефіцієнтів перетворення. Блок 56 ентропійного кодування може потім виконати сканування квантованих коефіцієнтів перетворення в матриці згідно з режимом сканування. Це розкриття описує блок 56 ентропійного кодування як такий, що виконує сканування. Однак, потрібно розуміти, що в інших прикладах сканування можуть виконувати інші блоки обробки, такі як блок 54 квантування. Блок 56 квантування може бути сконфігурований з можливістю кодування значень dQP відповідно до способів, описаних вище. Додатковий опис функції блока 56 квантування в цьому відношенні буде розглянутий нижче з посиланням на Фіг. 8. 13 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 60 Як тільки коефіцієнти перетворення зіскановані в одновимірний масив, блок 56 ентропійного кодування може застосувати до коефіцієнтів ентропійне кодування, таке як CABAC, контекстнозалежне адаптивне двійкове арифметичне кодування (SBAC), ентропійне кодування з розбиттям за імовірнісним інтервалом (PIPE), або іншу методологію ентропійного кодування. Для виконання CABAC, блок 56 ентропійного кодування може вибрати модель контексту для застосування до визначеного контексту, щоб кодувати символи, які повинні бути передані. Контекст може стосуватися, наприклад, того, чи є сусідні значення ненульовими чи ні. Блок 56 ентропійного кодування може також ентропійно кодувати синтаксичні елементи, такі як сигнал, що представляє вибране перетворення. Відповідно до способів цього розкриття, блок 56 ентропійного кодування може вибрати модель контексту, що використовується для кодування цих синтаксичних елементів, на основі, наприклад, напрямку внутрішнього прогнозування для режимів внутрішнього прогнозування, положення сканування коефіцієнта, що відповідає синтаксичним елементам, типу блока і/або типу перетворення, з числа інших факторів, що використовуються для вибору моделі контексту. Услід за ентропійним кодуванням за допомогою блока 56 ентропійного кодування, результуюче кодоване відео може бути передане на інший пристрій, такий як відеодекодер 30, або заархівоване для подальшої передачі або витягання. У деяких випадках, блок 56 ентропійного кодування або інший блок відеокодера 20 може бути сконфігурований з можливістю виконання інших функцій кодування, додатково до ентропійного кодування. Наприклад, блок 56 ентропійного кодування може бути сконфігурований з можливістю визначення значень шаблона кодованого блока (СВР) для CU та PU. Також, в деяких випадках, блок 56 ентропійного кодування може виконати кодування довжини серій коефіцієнтів. Блок 58 оберненого квантування і блок 60 обробки оберненого перетворення застосовують обернене квантування та обернене перетворення, відповідно, щоб реконструювати залишковий блок у піксельній ділянці, наприклад, для подальшого використання як опорного блока. Блок 44 компенсації руху може обчислити опорний блок за допомогою додавання залишкового блока до прогнозувального блока одного з кадрів буфера 64 опорних кадрів. Блок 44 компенсації руху може також застосувати один або більше інтерполяційних фільтрів до реконструйованого залишкового блока, щоб обчислити значення дробових пікселів для використання при оцінці руху. Суматор 62 додає реконструйований залишковий блок до блока прогнозування з компенсацією руху, виробленого блоком 44 компенсації руху, щоб зробити реконструйований відеоблок для зберігання в буфері 64 опорних кадрів. Реконструйований відеоблок може бути використаний блоком 42 оцінки руху і блоком 44 компенсації руху як опорний блок для зовнішнього кодування блока в послідовному відеокадрі. Фіг. 7 є блок-схемою, що ілюструє приклад відеодекодера 30, який декодує кодовану відеопослідовність. У прикладі за Фіг. 7, відеодекодер 30 включає в себе блок 70 ентропійного декодування, блок 72 компенсації руху, блок 74 обробки внутрішнього прогнозування, блок 76 оберненого квантування, блок 78 оберненого перетворення, буфер 82 опорних кадрів і суматор 80. Відеодекодер 30 може, в деяких прикладах, виконувати прохід декодування, загалом обернений проходу кодування, описаному у відношенні відеокодера 20 (див. Фіг. 6). Блок 70 ентропійного декодування виконує процес ентропійного декодування відносно кодованого бітового потоку для витягання одновимірного масиву коефіцієнтів перетворення. Процес ентропійного декодування, що використовується, залежить від ентропійного кодування, використаного відеокодером 20 (наприклад, CABAC). Процес ентропійного кодування, використаний кодером, може бути сигналізований в кодованому бітовому потоці або може бути заздалегідь визначеним процесом. У деяких випадках, наприклад, в режимі кодування без втрат, вихід (тобто, залишок в цьому прикладі) може бути відправлений безпосередньо з блока 70 ентропійного декодування на суматор 80. У зв'язку з цим, процеси оберненого перетворення і квантування пропускаються. Додатково, будь-які процеси фільтрації контурним фільтром можуть також бути пропущені. У деяких прикладах, блок 70 ентропійного декодування (або блок 76 оберненого квантування) можуть сканувати прийняті значення з використанням сканування, що дублює режим сканування, який використовується блоком 56 ентропійного кодування (або блоком 54 квантування) відеокодера 20. Хоча сканування коефіцієнтів може бути виконане в блоці 76 оберненого квантування, сканування буде описане з метою ілюстрації, як таке, що виконується блоком 70 ентропійного декодування. Додатково, хоча для простоти ілюстрації показані як окремі функціональні блоки, структура і функціональність блока 70 ентропійного декодування, блока 76 оберненого квантування та інших блоків відеодекодера 30 можуть мати високий ступінь інтеграції один з одним. 14 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 60 Блок 76 оберненого квантування здійснює обернене квантування, тобто, деквантує, квантовані коефіцієнти перетворення надані в бітовому потоці і декодовані блоком 70 ентропійного декодування. Процес оберненого квантування може включати в себе стандартний процес, наприклад, аналогічний процесам, запропонованим для HEVC або заданим стандартом декодування H.264. Процес оберненого квантування може включати в себе використання параметра квантування QP, обчисленого відеокодером 20 для CU, щоб визначити ступінь квантування і, аналогічно, ступінь оберненого квантування, які повинні бути застосовані. Блок 76 оберненого квантування може здійснити обернене квантування коефіцієнтів перетворення або до, або після перетворення коефіцієнтів з одновимірного масиву в двовимірний масив. Блок 76 оберненого квантування може бути сконфігурований з можливістю декодування значень dQP відповідно до способів, описаних вище. Додатковий опис функції блока 76 оберненого квантування в цьому відношенні буде розглянутий нижче з посиланням на Фіг. 9. Блок 78 обробки оберненого перетворення застосовує обернене перетворення до обернено квантованих коефіцієнтів перетворення. У деяких прикладах, блок 78 обробки оберненого перетворення може визначити обернене перетворення на основі сигналізації з відеокодера 20, або за допомогою припущення перетворення виходячи з однієї або більше характеристик кодування, таких як розмір блока, режим кодування, або подібних. У деяких прикладах, блок 78 обробки оберненого перетворення може визначити перетворення для застосування до поточного блока на основі сигналізованого перетворення в кореневому вузлі дерева квадрантів для LCU, що включає в себе поточний блок. Як альтернатива, перетворення може бути сигналізоване в корені дерева квадрантів TU для CU кінцевого вузла в дереві квадрантів LCU. У деяких прикладах, блок 78 обробки оберненого перетворення може застосувати каскадне обернене перетворення, в якому блок 78 обробки оберненого перетворення застосовує два або більше обернених перетворення до коефіцієнтів перетворення поточного блока, який кодується. Блок 74 обробки внутрішнього прогнозування може згенерувати дані прогнозування для поточного блока поточного кадру на основі сигналізованого режиму внутрішнього прогнозування і даних з раніше декодованих блоків поточного кадру. Блок 72 компенсації руху може витягнути вектор руху, напрямок прогнозування руху та опорний індекс з кодованого бітового потоку. Опорний напрямок прогнозування вказує, чи є режим зовнішнього прогнозування однонаправленим (наприклад, Р кадр) або двонаправленим (В кадр). Опорний індекс вказує, на якому опорному кадрі оснований вектор-кандидат руху. На основі витягнутого напрямку прогнозування руху, індексу опорного кадру і вектора руху, блок компенсації руху виробляє блок з компенсацією руху для поточної ділянки. Ці блоки з компенсацією руху по суті відтворюють прогнозувальний блок, що використовується, щоб виробити залишкові дані. Блок 72 компенсації руху може виробити блоки з компенсацією руху, можливо виконуючи інтерполяцію на основі фільтрів інтерполяції. Ідентифікатори для інтерполяційних фільтрів, які повинні бути використані для оцінки руху з підпіксельною точністю, можуть бути включені в синтаксичні елементи. Блок 72 компенсації руху може використовувати інтерполяційні фільтри, які використовуються відеокодером 20 під час кодування відеоблока, для обчислення інтерпольованих значень для дробових пікселів опорного блока. Блок 72 компенсації руху може визначити інтерполяційні фільтри, що використовуються відеокодером 20, згідно з прийнятою синтаксичною інформацією і використовувати інтерполяційні фільтри, щоб виробити прогнозувальні блоки. Додатково, блок 72 компенсації руху і блок 74 обробки внутрішнього прогнозування, в прикладі HEVC, можуть використовувати деяку синтаксичну інформацію (наприклад, надану деревом квадрантів) для визначення розмірів LCU, що використовуються для кодування кадру(ів) кодованої відеопослідовності. Блок 72 компенсації руху і блок 74 обробки внутрішнього прогнозування може також використовувати синтаксичну інформацію для визначення інформації розбиття, яка описує як розбита кожна CU кадру кодованої відеопослідовності (і аналогічно, як розбиті під-CU). Синтаксична інформація може також включати в себе режими, які вказують, як кодується кожне розбиття (наприклад, внутрішнє або зовнішнє прогнозування, і для внутрішнього прогнозування режим кодування з внутрішнім прогнозуванням), один або більше опорних кадрів (і/або опорних списків, що містять ідентифікатори для опорних кадрів) для кожної кодованої за допомогою зовнішнього прогнозування PU, і іншу інформацію для декодування кодованої відеопослідовності. Суматор 80 об'єднує залишкові блоки з відповідними блоками прогнозування, згенерованими блоком 72 компенсації руху або блоком 74 обробки внутрішнього прогнозування, щоб утворити декодовані блоки. Якщо потрібно, фільтр видалення блочності може також бути застосований для фільтрації декодованих блоків для того, щоб видалити артефакти блочності. 15 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 Декодовані відеоблоки потім зберігаються в буфері 82 опорних кадрів (який також називається буфером декодованих зображень), який надає опорні блоки для послідовної компенсації руху і також виробляє декодоване відео для представлення на пристрої відображення (такому як пристрій 32 відображення за Фіг. 1). Фіг. 8 є схемою послідовності операцій, що показує приклад способу кодування відео згідно зі способами цього розкриття. Способи за Фіг. 8 можуть бути здійснені за допомогою одного або більше апаратних блоків відеокодера 20, що включає в себе блок 56 квантування. В одному прикладі даного розкриття, блок 56 квантування може бути сконфігурований з можливістю визначення значення параметра квантування (QP) для поточного квантованого блока (810), визначення значення дельта-параметра квантування (dQP) для поточного квантованого блока відеоданих на основі QP і предиктора QP (820), і генерування значення dQP, при цьому значення dQP сигналізується незалежно від того, чи є в поточному квантованому блоці ненульові коефіцієнти перетворення чи ні (830). У різних прикладах даного розкриття, предиктор QP є середнім для значення QP для квантованого блока зверху і квантованого блока зліва, при цьому квантований блок зверху розміщений над поточним квантованим блоком, і при цьому квантований блок зліва розміщений зліва від поточного квантованого блока. Відеокодер 20 може бути додатково сконфігурований з можливістю кодування поточного квантованого блока з використанням заздалегідь визначеного значення QP (840). В одному прикладі даного розкриття, відеокодер 20 може бути додатково сконфігурований з можливістю генерування розміру групи квантування (QG), при цьому поточний квантований блок містить одну або більше одиниць кодування (CU), що має розмір, рівний або менший, ніж розмір QG або CU, яка має розмір, більший, ніж розмір QG. В іншому прикладі даного розкриття, блок 56 квантування може бути сконфігурований з можливістю генерування значення dQP для поточного квантованого блока відеоданих тільки у випадку, коли предиктор QP для поточного квантованого блока має значення нуль, і припущення, що значення dQP повинне бути рівне нулю у випадку, коли предиктор QP для поточного квантованого блока має ненульове значення, і в поточному квантованому блоці немає ненульових коефіцієнтів перетворення. В іншому прикладі даного розкриття, блок 56 квантування може бути сконфігурований з можливістю генерування значення dQP для поточного квантованого блока відеоданих тільки у випадку, коли одне значення QP, що використовується для визначення предиктора QP для поточного квантованого блока, має значення нуль, і припущення, що значення dQP повинне бути рівне нулю у випадку, коли предиктор QP для поточного квантованого блока має ненульове значення, і в поточному квантованому блоці немає ненульових коефіцієнтів перетворення. В іншому прикладі даного розкриття, блок 56 квантування може бути сконфігурований з можливістю генерування значення dQP для поточного квантованого блока відеоданих тільки у випадку, коли різниця між двома значеннями QP, що використовуються для визначення предиктора QP, більше, ніж поріг, і припущення, що значення dQP повинне бути рівне нулю у випадку, коли предиктор QP для поточного квантованого блока має ненульове значення і в поточному квантованому блоці немає ненульових коефіцієнтів перетворення. В іншому прикладі даного розкриття, блок 56 квантування може бути сконфігурований з можливістю генерування значення dQP для поточного квантованого блока відеоданих тільки у випадку, коли різниця між двома значеннями QP, що використовуються для визначення предиктора QP, менше, ніж поріг, і припущення, що значення dQP повинне бути рівне нулю у випадку, коли предиктор QP для поточного квантованого блока має ненульове значення і в поточному квантованому блоці немає ненульових коефіцієнтів перетворення. В іншому прикладі даного розкриття, блок 56 квантування може бути сконфігурований з можливістю генерування будь-якого з порогів, описаних вище, в одному або більше з набору параметрів зображення (PPS), набору параметрів адаптації (APS), заголовка слайса, заголовка найбільшої одиниці кодування (LCU) і заголовка CU. В іншому прикладі даного розкриття, відеокодер 20 може бути сконфігурований з можливістю генерування прапора кодування без втрат, який вказує, що поточний квантований блок був кодований з використанням режиму кодування без втрат, і кодування поточного квантованого блока з використанням згідно з режимом кодування без втрат. В іншому прикладі даного розкриття, блок 56 квантування може бути сконфігурований з можливістю привласнення значення QP для поточного квантованого блока, щоб було рівне предиктору QP, у випадку, коли прапор кодування без втрат прийнятий для поточного 16 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 60 квантованого блока, при цьому значення QP використовується для послідовного прогнозування QP. В іншому прикладі даного розкриття, відеокодер 20 може бути сконфігурований з можливістю, у випадку, коли поточний квантований блок включає в себе дві або більше CU, генерування прапора кодування без втрат в кожній з двох або більше CU у випадку, коли прапор кодування без втрат, прийнятий на поточному квантованому блоці, вказує, що одна або більше CU в квантованих блоках були кодовані з використанням режиму кодування без втрат. В іншому прикладі даного розкриття, відеокодер 20 може бути сконфігурований з можливістю кодування значення dQP з використанням способу зрізаної найпростішої бінаризації без перевірки знаку значення dQP. В іншому прикладі даного розкриття, відеокодер 20 може бути сконфігурований з можливістю не вибирати режим кодування без втрат для поточного квантування у випадку, коли поточний квантований блок не має залишку прогнозування, і предиктор QP для поточного квантованого блока є ненульовим. В іншому прикладі даного розкриття, відеокодер 20 може бути сконфігурований з можливістю не вибирати режим кодування без втрат для поточного квантування у випадку, коли поточний квантований блок не має залишку прогнозування, і один або більше квантованих блоків, що використовуються для визначення предиктора QP для поточного квантованого блока, кодуються в режимі кодування без втрат. Фіг. 9 є схемою послідовності операцій, що показує приклад способу декодування відео згідно зі способами цього розкриття. Способи за Фіг. 9 можуть бути здійснені за допомогою одного або більше апаратних блоків відеодекодера 30, що включають в себе блок 76 оберненого квантування. В одному прикладі даного розкриття, блок 76 оберненого квантування може бути сконфігурований з можливістю прийому значення дельта-параметра квантування (dQP) для поточного квантованого блока відеоданих, при цьому значення dQP приймається незалежно від того, чи є в поточному квантованому блоці ненульові коефіцієнти перетворення чи ні (910), і визначення значення параметра квантування (QP) для поточного квантованого блока на основі прийнятого значення dQP і предиктора QP (920). У різних прикладах даного розкриття, предиктор QP є середнім для значення QP для квантованого блока зверху і квантованого блока зліва, при цьому квантований блок зверху розміщений над поточним квантованим блоком, і при цьому квантований блок зліва розміщений зліва від поточного квантованого блока. Відеодекодер 30 може бути додатково сконфігурований з можливістю декодування поточного квантованого блока з використанням заздалегідь визначеного значення QP (930). В іншому прикладі даного розкриття, блок 76 оберненого квантування може бути додатково сконфігурований з можливістю прийому розміру групи квантування (QG), при цьому поточний квантований блок містить одну або більше одиниць кодування (CU), що мають розмір, рівний або менший, ніж розмір QG або CU, яка має розмір, більший, ніж розмір QG. В іншому прикладі даного розкриття, блок 76 оберненого квантування може бути додатково сконфігурований з можливістю прийому значення dQP для поточного квантованого блока відеоданих тільки у випадку, коли предиктор QP для поточного квантованого блока має значення нуль, і припущення, що значення dQP повинне бути рівне нулю у випадку, коли предиктор QP для поточного квантованого блока має ненульове значення, і в поточному квантованому блоці немає ненульових коефіцієнтів перетворення. В іншому прикладі даного розкриття, блок 76 оберненого квантування може бути додатково сконфігурований з можливістю прийому значення dQP для поточного квантованого блока відеоданих тільки у випадку, коли одне значення QP, що використовується для визначення предиктора QP для поточного квантованого блока, має значення нуль, і припущення, що значення dQP повинне бути рівне нулю у випадку, коли предиктор QP для поточного квантованого блока має ненульове значення, і в поточному квантованому блоці немає ненульових коефіцієнтів перетворення. В іншому прикладі даного розкриття, блок 76 оберненого квантування може бути додатково сконфігурований з можливістю прийому значення dQP для поточного квантованого блока відеоданих тільки у випадку, коли різниця між двома значеннями QP, що використовуються для визначення предиктора QP, більше, ніж поріг, і припущення, що значення dQP повинне бути рівне нулю у випадку, коли предиктор QP для поточного квантованого блока має ненульове значення і в поточному квантованому блоці немає ненульових коефіцієнтів перетворення. В іншому прикладі даного розкриття, блок 76 оберненого квантування може бути додатково сконфігурований з можливістю прийому значення dQP для поточного квантованого блока відеоданих тільки у випадку, коли різниця між двома значеннями QP, що використовуються для 17 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 60 визначення предиктора QP, менше, ніж поріг, і припущення, що значення dQP повинне бути рівне нулю у випадку, коли предиктор QP для поточного квантованого блока має ненульове значення і в поточному квантованому блоці немає ненульових коефіцієнтів перетворення. В іншому прикладі даного розкриття, блок 76 оберненого квантування може бути додатково сконфігурований з можливістю прийому будь-якого з вищеописаних порогів в одному або більше з набору параметрів зображення (PPS), набору параметрів адаптації (APS), заголовка слайса, заголовка найбільшої одиниці кодування (LCU), і заголовка CU. В іншому прикладі даного розкриття, відеодекодер 30 може бути додатково сконфігурований з можливістю прийому прапора кодування без втрат, який вказує, що поточний квантований блок був кодований з використанням режиму кодування без втрат, і декодування поточного квантованого блока з використанням згідно з режимом кодування без втрат. В іншому прикладі даного розкриття, блок 76 оберненого квантування може бути додатково сконфігурований з можливістю привласнення значення QP для поточного квантованого блока, щоб було рівне предиктору QP, у випадку, коли прапор кодування без втрат прийнятий для поточного квантованого блока, при цьому значення QP використовується для послідовного прогнозування QP. В іншому прикладі даного розкриття, відеодекодер 30 може бути додатково сконфігурований з можливістю прийому прапора кодування без втрат в кожній з двох або більше CU у випадку, коли прапор кодування без втрат, прийнятий в поточному квантованому блоці, вказує, що одна або більше CU в квантованих блоках були кодовані з використанням режиму кодування без втрат. В іншому прикладі даного розкриття, відеодекодер 30 може бути додатково сконфігурований з можливістю декодування значення dQP з використанням способу зрізаної найпростішої бінаризації без перевірки знаку значення dQP. В одному або більше прикладах, описані функції можуть бути реалізовані в апаратних засобах, програмному забезпеченні, програмно-апаратних засобах або будь-якій їх комбінації. У випадку реалізації в програмному забезпеченні, функції можуть зберігатися як одна або більше інструкцій або код на комп'ютерно-зчитуваному носії або передаватися на нього і можуть бути виконані апаратним блоком обробки. Комп'ютерно-зчитувані носії можуть включати в себе комп'ютерно-зчитувані носії інформації, які відповідають матеріальному носію, такому як носії даних, або середовища зв'язку, що включають в себе будь-яке середовище, яке сприяє передачі комп'ютерної програми з одного місця в інше, наприклад, згідно з протоколом зв'язку. Таким чином, комп'ютерно-зчитувані носії загалом можуть відповідати (1) матеріальним комп'ютерно-зчитуваним носіям інформації, які є постійними, або середовищу зв'язку, такому як сигнал або несуча хвиля. Носіями даних можуть бути будь-які доступні носії, до яких може бути здійснений доступ за допомогою одного або більше комп'ютерів, або одного або більше процесорів для витягання інструкцій, коду і/або структур даних для реалізації способів, описаних в цьому розкритті. Комп'ютерний програмний продукт може включати в себе комп'ютерно-зчитуваний носій. Як приклад, і а не обмеження, такі комп'ютерно-зчитувані носії інформації можуть містити RAM, ROM, EEPROM, CD-ROM або інше сховище на оптичних дисках, сховище на магнітних дисках або інші магнітні пристрої зберігання, флеш-пам'ять, або будь-який інший носій, який може бути використаний для зберігання бажаного програмного коду в формі інструкцій або структур даних, і до якого може бути здійснений доступ за допомогою комп'ютера. Також, будьяке з'єднання правильно називати комп'ютерно-зчитуваним носієм. Наприклад, якщо інструкції передаються з Web-сайта, сервера або іншого віддаленого джерела з використанням коаксіального кабелю, оптоволоконного кабелю, витої пари, цифрової абонентської лінії зв'язку (DSL) або бездротових технологій, таких як інфрачервоний зв'язок, радіо і мікрохвильова, то коаксіальний кабель, оптоволоконний кабель, вита пара, DSL або бездротові технології, такі як інфрачервоний зв'язок, радіо і мікрохвильова, включаються у визначення носія. Однак потрібно розуміти, що комп'ютерно-зчитувані носії інформації і носії даних не включають в себе з'єднання, несучі хвилі, сигнали або інші проміжні носії, але замість цього направлені на непроміжні, матеріальні носії інформації. Термін "диск" в цьому документі використовується у відношенні і магнітних, і оптичних дисків, які включають в себе компакт-диск (CD), лазерний диск, оптичний диск, універсальний цифровий диск (DVD), флоппі-диск та blu-ray диск, причому магнітні диски звичайно відтворюють дані магнітним чином, в той час як оптичні диски відтворюють дані оптично за допомогою лазера. Комбінації вищезазначеного повинні також бути включені в обсяг комп'ютерно-зчитуваних носіїв. Інструкції можуть бути виконані одним або більше процесорами, такими як один або більше процесорів цифрової обробки сигналів (DSP), мікропроцесорів загального призначення, 18 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 спеціалізованих інтегральних мікросхем (ASIC), програмованих користувачем вентильних матриць (FPGA), або іншими еквівалентними схемами інтегрованої або дискретної логіки. Отже, термін "процесор", як використовується в цьому документі, може посилатися на будь-яку з вищезазначених структур або будь-яку іншу структуру, придатну для реалізації способів, описаних в цьому документі. Додатково, в деяких аспектах, описана в цьому документі функціональність може бути надана всередині виділених апаратних засобів і/або програмних модулів, сконфігурованих для кодування і декодування, або включена в об'єднаний кодек. Також, дані способи можуть бути повністю реалізовані в одній і більше схемах або логічних елементах. Способи цього розкриття можуть бути реалізовані в широкому спектрі пристроїв або апаратів, що включають в себе бездротову гарнітуру, інтегральну схему (IC) або набір IC (наприклад, набір мікросхем). Різні компоненти, модулі або блоки описані в цьому розкритті, щоб підкреслити функціональні аспекти пристроїв, сконфігурованих для виконання розкритих способів, але необов'язково вимагають реалізацію за допомогою різних апаратних блоків. Швидше, як описано вище, різні блоки можуть бути об'єднані в апаратному блоці кодека або надані групою взаємодіючих апаратних блоків, що включають в себе один або більше процесорів, як описано вище, спільно з придатним програмним забезпеченням і/або програмноапаратними засобами. Були описані різні приклади. Ці та інші приклади входять в обсяг нижченаведених пунктів формули винаходу. Посилальні позиції 10 система кодування і декодування відео 12 пристрій-джерело 14 пристрій-адресат 16 канал зв'язку 18 відеоджерело 20 відеокодер 22 модулятор/демодулятор 24 передавач 26 приймач 28 модем 30 відеодекодер 32 пристрій відображення 34 носій інформації 36 файл-сервер 40 блок вибору режиму 44 блок компенсації руху 42 блок оцінки руху 44 блок компенсації руху 46 блок обробки внутрішнього прогнозування 64 буфер опорних кадрів 50 суматор 52 блок обробки перетворення 54 блок квантування 56 блок ентропійного кодування 58 блок оберненого квантування 60 блок обробки оберненого перетворення 62 суматор 70 блок ентропійного декодування 72 блок компенсації руху 74 блок обробки внутрішнього прогнозування 76 блок оберненого квантування 78 блок оберненого перетворення 80 суматор 82 буфер опорних кадрів ФОРМУЛА ВИНАХОДУ 1. Спосіб декодування відеоданих, причому спосіб включає етапи, на яких: 19 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 60 приймають синтаксичний елемент кодування без втрат для поточного блока відеоданих, при цьому синтаксичний елемент кодування без втрат вказує, що поточний блок відеоданих кодується з використанням режиму кодування без втрат, причому синтаксичний елемент кодування без втрат відділений від значення параметра квантування (QP); визначають, що поточний блок відеоданих є поточним квантованим блоком, основуючись на розмірі поточного блока відеоданих; призначають дельта-параметру квантування (dQP) значення нуль для поточного квантованого блока, при цьому значення dQP є різницею між значенням QP і значенням предиктора QP; визначають значення QP для поточного квантованого блока, основуючись на призначеному значенні dQP і значенні предиктора QP; і декодують поточний квантований блок відповідно до режиму кодування без втрат і визначеного значення QP. 2. Спосіб за п. 1, в якому поточний блок відеоданих є одиницею кодування (CU) відеоданих, при цьому спосіб також включає етапи, на яких: визначають розмір групи квантування (QG); і визначають, що CU має розмір більший, ніж або дорівнює розміру QG. 3. Спосіб за п. 1, який включає також етап, на якому: визначають значення QP шляхом додавання призначеного значення dQP до значення предиктора QP, при цьому предиктор QP є середнім для значення QP для квантованого блока зверху і квантованого блока зліва, при цьому квантований блок зверху розміщений над поточним квантованим блоком, і при цьому квантований блок зліва розміщений зліва від поточного квантованого блока. 4. Спосіб за п. 1, який включає також етап, на якому: виконують прогнозування QP для іншого блока відеоданих, використовуючи визначене значення QP. 5. Спосіб кодування відеоданих, причому спосіб включає етапи, на яких: визначають, що поточний блок відеоданих повинен бути закодований з використанням режиму кодування без втрат; визначають, що поточний блок відеоданих є поточним квантованим блоком, основуючись на розмірі поточного блока відеоданих; визначають значення параметра квантування (QP) для поточного блока відеоданих, основуючись на значенні нуль для дельта-параметра квантування (dQP) для поточного квантованого блока і значенні предиктора QP, при цьому значення dQP є різницею між значенням QP і значенням предиктора QP; генерують синтаксичний елемент кодування без втрат для поточного блока відеоданих, при цьому синтаксичний елемент кодування без втрат вказує, що поточний блок відеоданих кодується з використанням режиму кодування без втрат, причому синтаксичний елемент кодування без втрат відділений від значення QP; і кодують поточний квантований блок відповідно до режиму кодування без втрат і визначеного значення QP. 6. Спосіб за п. 5, в якому поточний блок відеоданих є одиницею кодування (CU) відеоданих, при цьому спосіб також включає етапи, на яких: визначають розмір групи квантування (QG); і визначають, що CU має розмір більший, ніж або дорівнює розміру QG. 7. Спосіб за п. 5, який включає також етап, на якому: визначають значення QP шляхом додавання призначеного значення dQP до значення предиктора QP, при цьому предиктор QP є середнім для значення QP для квантованого блока зверху і квантованого блока зліва, при цьому квантований блок зверху розміщений над поточним квантованим блоком, і при цьому квантований блок зліва розміщений зліва від поточного квантованого блока. 8. Спосіб за п. 5, який включає також етап, на якому: виконують прогнозування QP для іншого блока відеоданих, використовуючи визначене значення QP. 9. Пристрій, сконфігурований з можливістю декодування відеоданих, причому пристрій містить: пам'ять, сконфігуровану для зберігання відеоданих; і відеодекодер, сконфігурований з можливістю: приймати синтаксичний елемент кодування без втрат для поточного блока відеоданих, при цьому синтаксичний елемент кодування без втрат вказує, що поточний блок відеоданих кодується з використанням режиму кодування без втрат, причому синтаксичний елемент кодування без втрат відділений від значення параметра квантування (QP); 20 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 55 визначати, що поточний блок відеоданих є поточним квантованим блоком, основуючись на розмірі поточного блока відеоданих; призначати дельта-параметр квантування (dQP) значення нуль для поточного квантованого блока, при цьому значення dQP є різницею між значенням QP і значенням предиктора QP; визначати значення QP для поточного квантованого блока, основуючись на призначеному значенні dQP і значенні предиктора QP; і декодувати поточний квантований блок відповідно до режиму кодування без втрат і визначеного значення QP. 10. Пристрій за п. 9, в якому поточний блок відеоданих є одиницею кодування (CU) відеоданих, і при цьому відеодекодер також сконфігурований з можливістю: визначати розмір групи квантування (QG); і визначати, що CU має розмір більший, ніж або дорівнює розміру QG. 11. Пристрій за п. 9, в якому відеодекодер також сконфігурований з можливістю: визначати значення QP шляхом додавання призначеного значення dQP до значення предиктора QP, при цьому предиктор QP є середнім для значення QP для квантованого блока зверху і квантованого блока зліва, при цьому квантований блок зверху розміщений над поточним квантованим блоком, і при цьому квантований блок зліва розміщений зліва від поточного квантованого блока. 12. Пристрій за п. 9, в якому відеодекодер також сконфігурований з можливістю: виконувати прогнозування QP для іншого блока відеоданих, використовуючи визначене значення QP. 13. Пристрій, сконфігурований з можливістю кодування відеоданих, причому пристрій містить: пам'ять, сконфігуровану для зберігання відеоданих; і відеокодер, сконфігурований з можливістю: визначати, що поточний блок відеоданих повинен бути закодований з використанням режиму кодування без втрат; визначати, що поточний блок відеоданих є поточним квантованим блоком, основуючись на розмірі поточного блока відеоданих; визначати значення параметра квантування (QP) для поточного блока відеоданих, основуючись на значенні нуль для дельта-параметра квантування (dQP) для поточного квантованого блока і значенні предиктора QP, при цьому значення dQP є різницею між значенням QP і значенням предиктора QP; генерувати синтаксичний елемент кодування без втрат для поточного блока відеоданих, при цьому синтаксичний елемент кодування без втрат вказує, що поточний блок відеоданих кодується з використанням режиму кодування без втрат, причому синтаксичний елемент кодування без втрат відділений від значення QP; і кодувати поточний квантований блок відповідно до режиму кодування без втрат і визначеного значення QP. 14. Пристрій за п. 13, в якому поточний блок відеоданих є одиницею кодування (CU) відеоданих, і при цьому відеокодер також сконфігурований з можливістю: визначати розмір групи квантування (QG); і визначати, що CU має розмір більший, ніж або дорівнює розміру QG. 15. Пристрій за п. 13, в якому відеокодер також сконфігурований з можливістю: визначати значення QP шляхом додавання призначеного значення dQP до значення предиктора QP, при цьому предиктор QP є середнім для значення QP для квантованого блока зверху і квантованого блока зліва, при цьому квантований блок зверху розміщений над поточним квантованим блоком, і при цьому квантований блок зліва розміщений зліва від поточного квантованого блока. 16. Пристрій за п. 13, в якому відеокодер також сконфігурований з можливістю: виконувати прогнозування QP для іншого блока відеоданих, використовуючи визначене значення QP. 17. Пристрій, сконфігурований з можливістю декодування відеоданих, причому пристрій містить: засіб для прийому синтаксичного елемента кодування без втрат для поточного блока відеоданих, при цьому синтаксичний елемент кодування без втрат вказує, що поточний блок відеоданих кодується з використанням режиму кодування без втрат, причому синтаксичний елемент кодування без втрат відділений від значення параметра квантування (QP); засіб для визначення, що поточний блок відеоданих є поточним квантованим блоком, основуючись на розмірі поточного блока відеоданих; 21 UA 114721 C2 5 10 15 20 25 30 35 40 45 50 засіб для призначення дельта-параметру квантування (dQP) значення нуль для поточного квантованого блока, при цьому значення dQP є різницею між значенням QP і значенням предиктора QP; засіб для визначення значення QP для поточного квантованого блока, основуючись на призначеному значенні dQP і значенні предиктора QP; і засіб для декодування поточного квантованого блока відповідно до режиму кодування без втрат і визначеного значення QP. 18. Пристрій, сконфігурований з можливістю кодування відеоданих, причому пристрій містить: засіб для визначення, що поточний блок відеоданих повинен бути закодований з використанням режиму кодування без втрат; засіб для визначення, що поточний блок відеоданих є поточним квантованим блоком, основуючись на розмірі поточного блока відеоданих; засіб для визначення значення параметра квантування (QP) для поточного блока відеоданих, основуючись на значенні нуль для дельта-параметра квантування (dQP) для поточного квантованого блока і значенні предиктора QP, при цьому значення dQP є різницею між значенням QP і значенням предиктора QP; засіб для генерування синтаксичного елемента кодування без втрат для поточного блока відеоданих, при цьому синтаксичний елемент кодування без втрат вказує, що поточний блок відеоданих кодується з використанням режиму кодування без втрат, причому синтаксичний елемент кодування без втрат відділений від значення QP; і засіб для кодування поточного квантованого блока відповідно до режиму кодування без втрат і визначеного значення QP. 19. Комп'ютерно-зчитуваний носій інформації, що зберігає інструкції, які, при виконанні, приписують одному або більше процесорам пристрою, сконфігурованого з можливістю декодування відеоданих: приймати синтаксичний елемент кодування без втрат для поточного блока відеоданих, при цьому синтаксичний елемент кодування без втрат вказує, що поточний блок відеоданих кодується з використанням режиму кодування без втрат, причому синтаксичний елемент кодування без втрат відділений від значення параметра квантування (QP); визначати, що поточний блок відеоданих є поточним квантованим блоком, основуючись на розмірі поточного блока відеоданих; призначати дельта-параметру квантування (dQP) значення нуль для поточного квантованого блока, при цьому значення dQP є різницею між значенням QP і значенням предиктора QP; визначати значення QP для поточного квантованого блока, основуючись на призначеному значенні dQP і значенні предиктора QP; і декодувати поточний квантований блок відповідно до режиму кодування без втрат і визначеного значення QP. 20. Комп'ютерно-зчитуваний носій інформації, що зберігає інструкції, які, при виконанні, приписують одному або більше процесорам пристрою, сконфігурованого з можливістю кодування відеоданих: визначати, що поточний блок відеоданих повинен бути закодований з використанням режиму кодування без втрат; визначати, що поточний блок відеоданих є поточним квантованим блоком, основуючись на розмірі поточного блока відеоданих; визначати значення параметра квантування (QP) для поточного блока відеоданих, основуючись на значенні нуль для дельта-параметра квантування (dQP) для поточного квантованого блока і значенні предиктора QP, при цьому значення dQP є різницею між значенням QP і значенням предиктора QP; генерувати синтаксичний елемент кодування без втрат для поточного блока відеоданих, при цьому синтаксичний елемент кодування без втрат вказує, що поточний блок відеоданих кодується з використанням режиму кодування без втрат, причому синтаксичний елемент кодування без втрат відділений від значення QP; і кодувати поточний квантований блок відповідно до режиму кодування без втрат і визначеного значення QP. 22 UA 114721 C2 23 UA 114721 C2 24 UA 114721 C2 25 UA 114721 C2 26 UA 114721 C2 27 UA 114721 C2 28
ДивитисяДодаткова інформація
Назва патенту англійськоюQuantization parameter (qp) coding in video coding
Автори англійськоюSeregin, Vadim, Wang, Xianglin
Автори російськоюСерёгин Вадим, Ван Сянлинь
МПК / Мітки
МПК: H04N 19/61, H04N 19/124, H04N 19/126, H04N 19/70
Мітки: квантування, відео, кодуванні, кодування, параметра
Код посилання
<a href="https://ua.patents.su/33-114721-koduvannya-parametra-kvantuvannya-qp-pri-koduvanni-video.html" target="_blank" rel="follow" title="База патентів України">Кодування параметра квантування (qp) при кодуванні відео</a>
Попередній патент: Спосіб керування потоком теплоносія через багаторядний радіатор і радіатор для здійснення цього способу
Наступний патент: Спосіб збагачення глютенових і крохмальних фракцій в пшеничному борошні
Випадковий патент: Спосіб відновлення поверхні залізобетонних конструкцій