Генерування додаткових кандидатів для злиття

Номер патенту: 114802

Опубліковано: 10.08.2017

Автори: Чжен Юньфей, Ван Сянлінь, Карчєвіч Марта

Є ще 32 сторінки.

Дивитися все сторінки або завантажити PDF файл.

Формула / Реферат

1. Спосіб кодування відеоданих, причому спосіб включає етапи, на яких:

визначають набір просторових кандидатів, асоційованих з поточною ділянкою поточного відеокадру, при цьому набір просторових кандидатів відповідає сусіднім ділянкам поточного відеокадру, суміжним з поточною ділянкою, і при цьому кожний з просторових кандидатів має асоційовану інформацію руху;

визначають часового кандидата, асоційованого з поточною ділянкою поточного відеокадру, при цьому часовий кандидат відповідає ділянці опорного відеокадру, і при цьому часовий кандидат має асоційовану інформацію руху;

генерують список кандидатів, який містить піднабір з набору просторових кандидатів і часового кандидата, за допомогою виконання однієї або більше операцій відсікання щодо набору просторових кандидатів і часового кандидата таким чином, що список кандидатів не включає в себе щонайменше одного кандидата з набору просторових кандидатів або часового кандидата, який має дубльовану інформацію руху відносно інформації руху іншого кандидата з набору просторових кандидатів або часового кандидата; і

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

2. Спосіб за п. 1, при цьому набір просторових кандидатів містить два або більше просторових кандидатів, які мають однакову інформацію руху, і при цьому піднабір  з набору просторових кандидатів і часового кандидата включає в себе тільки один з двох або більше просторових кандидатів та часового кандидата.

3. Спосіб за п. 1, який додатково включає етап, на якому:

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

4. Спосіб за п. 1, який додатково включає етап, на якому:

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

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

6. Спосіб за п. 1, при цьому спосіб виконується відео декодером, і при цьому спосіб додатково включає етапи, на яких приймають синтаксичний елемент, що ідентифікує кандидата зі списку кандидатів, і декодують поточну ділянку поточного відеокадру з використанням інформації руху ідентифікованого кандидата.

7. Пристрій для кодування відеоданих, причому пристрій містить:

пам'ять, виконану з можливістю зберігання відеоданих; і

відеокодер, виконаний з можливістю:

визначення набору просторових кандидатів, асоційованих з поточною ділянкою поточного відеокадру, при цьому набір просторових кандидатів відповідає сусіднім ділянкам поточного відеокадру, суміжним з поточною ділянкою, і при цьому кожний з просторових кандидатів має асоційовану інформацію руху;

 визначення часового кандидата, асоційованого з поточною ділянкою поточного відеокадру, при цьому часовий кандидат відповідає ділянці опорного відеокадру, і при цьому часовий кандидат має асоційовану інформацію руху;

генерування списку кандидатів, який містить піднабір з набору просторових кандидатів і часового кандидата, за допомогою виконання однієї або більше операцій відсікання щодо набору просторових кандидатів і часового кандидата таким чином, що список кандидатів не включає в себе щонайменше одного кандидата з набору просторових кандидатів або часового кандидата, який має дубльовану інформацію руху відносно інформації руху іншого кандидата з набору просторових кандидатів або часового кандидата; і

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

8. Пристрій за п. 7, при цьому набір просторових кандидатів містить два або більше просторових кандидатів, які мають однакову інформацію руху, і при цьому піднабір просторових кандидатів та часового кандидата включає в себе тільки один з двох або більше просторових кандидатів та часового кандидата.

9. Пристрій за п. 7, при цьому відеокодер додатково виконаний з можливістю генерування другого штучно згенерованого кандидата, при цьому штучно згенерований кандидат і другий штучно згенерований кандидат генеруються паралельно.

10. Пристрій за п. 7, при цьому відеокодер додатково виконаний з можливістю кодування поточної ділянки поточного відеокадру з використанням режиму злиття, при цьому інформація руху для режиму злиття визначається на основі списку кандидатів.

11. Пристрій за п. 7, при цьому відеокодер є відеокодером, і при цьому відеокодер виконаний з можливістю здійснення вибору кандидата зі списку кандидатів і генерування синтаксичного елемента, що вказує індекс вибраного кандидата.

12. Пристрій за п. 7, при цьому відеокодер є відео декодером, і при цьому відеодекодер виконаний з можливістю прийому синтаксичного елемента, що ідентифікує кандидата зі списку кандидатів, і декодування поточної ділянки поточного відеокадру з використанням інформації руху ідентифікованого кандидата.

13. Пристрій за п. 7, при цьому пристрій містить щонайменше одне з:

інтегральної схеми;

мікропроцесора; і

пристрою бездротового зв'язку, який включає в себе відеокодер.

14. Пристрій для кодування відеоданих, причому пристрій містить:

засіб для визначення набору просторових кандидатів, асоційованих з поточною ділянкою поточного відеокадру, при цьому набір просторових кандидатів відповідає сусіднім ділянкам поточного відеокадру, суміжним з поточною ділянкою, і при цьому кожний з просторових кандидатів має асоційовану інформацію руху;

засіб для визначення часового кандидата, асоційованого з поточною ділянкою поточного відеокадру, при цьому часовий кандидат відповідає ділянці опорного відеокадру, і при цьому часовий кандидат має асоційовану інформацію руху;

засіб для генерування списку кандидатів, який містить піднабір з набору просторових кандидатів і часового кандидата, за допомогою виконання однієї або більше операцій відсікання щодо набору просторових кандидатів і часового кандидата таким чином, що список кандидатів не включає в себе щонайменше одного кандидата з набору просторових кандидатів або часового кандидата,який має дубльовану інформацію руху відносно інформації руху іншого кандидата з набору просторових кандидатів або часового кандидата; і

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

15. Пристрій за п. 14, при цьому набір просторових кандидатів містить два або більше просторових кандидатів, які мають однакову інформацію руху, і при цьому піднабір із набору просторових кандидатів та часового кандидата включає в себе тільки один з двох або більше просторових кандидатів та часового кандидата.

16. Пристрій за п. 14, який додатково містить:

засіб для генерування другого штучно згенерованого кандидата, при цьому штучно згенерований кандидат і другий штучно згенерований кандидат генеруються паралельно.

17. Пристрій за п. 14, який додатково містить:

засіб для кодування поточної ділянки поточного відеокадру з використанням режиму злиття, при цьому інформація руху для режиму злиття визначається на основі списку кандидатів.

18. Пристрій за п. 14, при цьому пристрій містить відеокодер, і при цьому пристрій додатково містить засіб для здійснення вибору кандидата зі списку кандидатів і засіб для генерування синтаксичного елемента, що вказує індекс вибраного кандидата.

19. Пристрій за п. 14, при цьому пристрій містить відео декодер, і при цьому пристрій додатково містить засіб для прийому синтаксичного елемента, що ідентифікує кандидата зі списку кандидатів, і засіб для декодування поточної ділянки поточного відеокадру з використанням інформації руху ідентифікованого кандидата.

20. Комп'ютерочитаний носій даних, що зберігає інструкції, які, при виконанні, призначають одному або більше процесорам:

визначити набір просторових кандидатів, асоційованих з поточною ділянкою поточного відеокадру, при цьому набір просторових кандидатів відповідає сусіднім ділянкам поточного відеокадру, суміжним з поточною ділянкою, і при цьому кожний з просторових кандидатів має асоційовану інформацію руху;

визначити часового кандидата, асоційованого з поточною ділянкою поточного відеокадру, при цьому часовий кандидат відповідає ділянці опорного відеокадру, і при цьому часовий кандидат має асоційовану інформацію руху;

згенерувати список кандидатів, який містить піднабір з набору просторових кандидатів і часового кандидата, за допомогою виконання однієї або більше операцій відсікання щодо набору просторових кандидатів і часового кандидата таким чином, що список кандидатів не включає в себе щонайменше одного кандидата з набору просторових кандидатів або часового кандидата, який має дубльовану інформацію руху відносно інформації руху іншого кандидата з набору просторових кандидатів або часового кандидата; і

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

21. Комп'ютерочитаний носій даних за п. 20, при цьому набір просторових кандидатів містить два або більше просторових кандидатів, які мають однакову інформацію руху, і при цьому піднабір із набору просторових кандидатів та часового кандидата включає в себе тільки один з двох або більше просторових кандидатів та часового кандидата.

22. Комп'ютерочитаний носій даних за п. 20, що зберігає додаткові інструкції які, при виконанні, призначають одному або більше процесорам згенерувати другого штучно згенерованого кандидата, при цьому штучно згенерований кандидат і другий штучно згенерований кандидат генеруються паралельно.

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

24. Комп'ютерочитаний носій даних за п. 20, при цьому один або більше процесорів містять відеокодер, при цьому комп'ютерочитаний носій даних зберігає додаткові інструкції, які, при виконанні, призначають одному або більше процесорам здійснити вибір кандидата зі списку кандидатів і згенерувати синтаксичний елемент, що вказує індекс вибраного кандидата.

25. Комп'ютерочитаний носій даних за п. 20, при цьому один або більше процесорів містять відеодекодер, при цьому комп'ютерочитаний носій даних зберігає додаткові інструкції, які, при виконанні, призначають одному або більше процесорам прийняти синтаксичний елемент, що ідентифікує кандидата зі списку кандидатів, і декодувати поточну ділянку поточного відеокадру з використанням інформації руху ідентифікованого кандидата.

Текст

УКРАЇНА (19) UA (11) 114802 (13) C2 (51) МПК H04N 19/517 (2014.01) H04N 19/139 (2014.01) H04N 19/107 (2014.01) МІНІСТЕРСТВО ЕКОНОМІЧНОГО РОЗВИТКУ І ТОРГІВЛІ УКРАЇНИ ОПИС ДО ПАТЕНТУ НА ВИНАХІД (21) Номер заявки: a 2014 06324 (22) Дата подання заявки: 07.11.2012 (24) Дата, з якої є чинними 10.08.2017 61/556,746, заявки відповідно до 61/562,284, Паризької конвенції: 61/562,940, 13/669,992 (32) Дата подання 07.11.2011, попередньої заявки 21.11.2011, відповідно до 22.11.2011, Паризької конвенції: 06.11.2012 (33) Код держави-учасниці US, Паризької конвенції, US, до якої подано US, попередню заявку: US (41) Публікація відомостей 10.09.2014, Бюл.№ 17 про заявку: (46) Публікація відомостей 10.08.2017, Бюл.№ 15 про видачу патенту: (86) Номер та дата подання міжнародної заявки, поданої відповідно до Договору PCT PCT/US2012/063932, 07.11.2012 Винахідник(и): Чжен Юньфей (US), Ван Сянлінь (US), Карчєвіч Марта (US) (73) права на винахід: (31) Номер попередньої (72) Власник(и): КВЕЛКОММ ІНКОРПОРЕЙТЕД, Attn: International IP Administration, 5775 Morehouse Drive, San Diego, California 92121-1714, United States of America (US) (74) Представник: Мошинська Ніна Миколаївна, реєстр. №115 (56) Перелік документів, взятих до уваги експертизою: SUGIO T ET AL, "Parsing Robustness for Merge/AMVP", 6. JCT-VC MEETING; 97. MPEG MEETING; 14-7-2011 - 22-7-2011; TORINO; (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/,, (20110722), no. JCTVC-F470, XP030009493 [X] 1-3,5,6,9-14,16,17,20-22,24-26,28,29,3237,39,40,43-45 * section 2.2;; figure 3 * [Y] 4,8,15,19,27,31,38,42 [I] 7,18,23,30,41 FUJIBAYASHI (NTT DOCOMO) A ET AL, "CE9: 3.2d Simplified motion vector prediction", 95. MPEG MEETING; 24-1-2011 - 28-1-2011; DAEGU; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11),, (20110115), no. m18991, XP030047560 [Y] 4,8,15,19,27,31,38,42 * section 2.2 * [A] 1-3,5-7,9-14,16-18,20-26,28-30,32-37,39-41,4345 CHEN J ET AL, "MVP index parsing with fixed number of candidates", 6. JCT-VC MEETING; 97. MPEG MEETING; 14-7-2011 - 22-7-2011; TORINO; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ); URL: HTTP://WFTP3.ITU.INT/AVARCH/JCTVC-SITE/,, (20110712), no. JCTVC-F402, XP030009425 [A] 1-45 * section 2.2 * JUNG J ET AL, "Description of Core Experiment CE13: Motion data parsing robustness and throughput", 97. MPEG MEETING; 18-7-2011 - 22-72011; TORINO; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11),, (20110722), no. m21437, XP030050000 [A] 1-45 * the whole document * (54) ГЕНЕРУВАННЯ ДОДАТКОВИХ КАНДИДАТІВ ДЛЯ ЗЛИТТЯ (57) Реферат: При генеруванні списку кандидатів для кодування відео з інтерпрогнозуванням, відеокодер може виконувати операції відсікання при додаванні просторових кандидатів і тимчасових кандидатів в список кандидатів, в той же час не виконуючи операції відсікання при додаванні UA 114802 C2 (12) UA 114802 C2 штучно згенерованого кандидата в список кандидатів. Штучно згенерований кандидат може мати інформацію руху, яка є такою ж, як інформація руху просторового кандидата або тимчасового кандидата, що вже знаходяться в списку кандидатів. UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 60 ГЕНЕРУВАННЯ ДОДАТКОВИХ КАНДИДАТІВ ДЛЯ ЗЛИТТЯ Ця заявка вимагає пріоритет по: попередній заявці США № 61/556,746, поданій 07 листопада 2011 р.; попередній заявці США № 61/562,284, поданій 21 листопада 2011р.; і попередній заявці США № 61/562,940, поданій 22 листопада 2011 р., весь зміст кожної з яких включений в цей документ за допомогою посилання. ГАЛУЗЬ ТЕХНІКИ Це розкриття стосується кодування відео і, більш конкретно, прогнозування відеоданих в режимі злиття. РІВЕНЬ ТЕХНІКИ Можливості цифрового відео можуть бути вбудовані в широкий діапазон пристроїв, в тому числі в цифрові телевізори, системи цифрового прямого широкомовлення, бездротові широкомовні системи, персональні цифрові помічники (PDA), портативні або настільні комп'ютери, цифрові камери, цифрові пристрої запису, програвачі цифрових медіаданих, відеоігрові пристрої, відеоігрові консолі, стільникові або супутникові радіотелефони, пристрої відеоконференції і тому подібні. Пристрої цифрового відео реалізовують способи стиснення відео, такі, як описані в стандартах, заданих за допомогою MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Частина 10, Поліпшеного кодування відео (AVC), стандарту Високоефективного кодування відео (HEVC), що знаходиться на даний час в розробці, і розширеннях цих стандартів, для передачі, прийому і зберігання цифрової відеоінформації більш ефективно. Способи стиснення відео виконують просторове (всередині зображення) прогнозування і/або часове (між зображеннями) прогнозування для зниження або видалення надмірності, властивої відеопослідовностям. Для блокового кодування відео, слайс (вирізка) відео може бути розбитий на відеоблоки, які можуть бути також названі деревовидними блоками, одиницями кодування (CU) і/або вузлами кодування. Відеоблоки в кодованому за допомогою інтракодування (I) слайсі зображення кодуються з використанням просторового прогнозування відносно опорних вибірок в сусідніх блоках в тому ж зображенні. Відеоблоки в кодованому за допомогою інтеркодування (Р або В) слайсі зображення можуть використовувати просторове прогнозування відносно опорних вибірок в сусідніх відеоблоках в тому ж зображенні або часове прогнозування відносно опорних вибірок в інших опорних зображеннях. Зображення можуть бути названі кадрами, і опорні зображення можуть бути названі опорними кадрами. СУТЬ ВИНАХОДУ Це розкриття описує способи генерування списків кандидатів, для використання в кодуванні з інтерпрогнозуванням (зовнішнім прогнозуванням), на відеокодері і для генерування тих же списків кандидатів на відеодекодері. Відеокодер і відеодекодер можуть генерувати однакові списки кандидатів за допомогою реалізації однакових способів для формування списку кандидатів. Наприклад, як відеокодер, так і відеодекодер можуть формувати списки з однаковим числом кандидатів. Відеокодер і відеодекодер можуть спочатку розглядати просторових кандидатів (наприклад, сусідні блоки в одному і тому ж зображенні), потім розглядати часових кандидатів (наприклад, кандидатів в різних зображеннях), і, нарешті, можуть розглядати штучно згенерованих кандидатів, поки в список не буде додане бажане число кандидатів. Згідно зі способами даного розкриття, під час формування списку кандидатів для певних типів кандидатів можуть бути використані операції відсікання, для того, щоб видалити дублікати зі списку кандидатів, тоді як для інших типів кандидатів відсікання може не використовуватися, для того, щоб зменшити складність кодера. У одному прикладі, спосіб кодування відеоданих включає в себе етапи, на яких визначають набір просторових кандидатів, асоційованих з поточною ділянкою поточного відеокадру, при цьому набір просторових кандидатів відповідає сусіднім ділянкам поточного відеокадру, суміжним з поточною ділянкою, і при цьому кожний з просторових кандидатів має асоційовану інформацію руху; визначають часового кандидата, асоційованого з поточною ділянкою поточного відеокадру, при цьому часовий кандидат відповідає ділянці опорного відеокадру і при цьому часовий кандидат має асоційовану інформацію руху; генерують список кандидатів на основі піднабору з набору просторових кандидатів і часового кандидата; і, у відповідь на список кандидатів, що містить менше, ніж точно визначене число кандидатів, додають штучно згенерованого кандидата в список кандидатів, при цьому штучно згенерований кандидат має інформацію руху, яка є такою ж, як інформація руху просторового кандидата з піднабору або інформація руху часового кандидата. У іншому прикладі, пристрій для кодування відеоданих включає в себе відеокодер, виконаний з можливістю визначення набору просторових кандидатів, асоційованих з поточною ділянкою поточного відеокадру, при цьому набір просторових кандидатів відповідає сусіднім ділянкам поточного відеокадру, суміжним з поточною ділянкою, і при цьому кожний з 1 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 60 просторових кандидатів має асоційовану інформацію руху; визначення часового кандидата, асоційованого з поточною ділянкою поточного відеокадру, при цьому часовий кандидат відповідає ділянці опорного відеокадру і при цьому часовий кандидат має асоційовану інформацію руху; генерування списку кандидатів на основі піднабору з набору просторових кандидатів і часового кандидата; і, у відповідь на список кандидатів, що містить менше, ніж точно визначене число кандидатів, додавання штучно згенерованого кандидата до списку кандидатів, при цьому штучно згенерований кандидат має інформацію руху, яка є такою ж, як інформація руху просторового кандидата з піднабору або інформація руху часового кандидата. У іншому прикладі, пристрій для кодування відеоданих включає в себе засіб для визначення набору просторових кандидатів, асоційованих з поточною ділянкою поточного відеокадру, при цьому набір просторових кандидатів відповідає сусіднім ділянкам поточного відеокадру, суміжним з поточною ділянкою, і при цьому кожний з просторових кандидатів має асоційовану інформацію руху; засіб для визначення часового кандидата, асоційованого з поточною ділянкою поточного відеокадру, при цьому часовий кандидат відповідає ділянці опорного відеокадру і при цьому часовий кандидат має асоційовану інформацію руху; засіб для генерування списку кандидатів на основі піднабору з набору просторових кандидатів і часового кандидата; і засіб для додавання штучно згенерованого кандидата до списку кандидатів, у відповідь на список кандидатів, що містить менше, ніж точно визначене число кандидатів, при цьому штучно згенерований кандидат має інформацію руху, яка є такою ж, як інформація руху просторового кандидата з піднабору або інформація рухучасового кандидата. У іншому прикладі, комп'ютерочитаний носій даних зберігає інструкції, які при виконанні призначають одному або більше процесорам визначити набір просторових кандидатів, асоційованих з поточною ділянкою поточного відеокадру, при цьому набір просторових кандидатів відповідає сусіднім ділянкам поточного відеокадру, суміжним з поточною ділянкою, і при цьому кожний з просторових кандидатів має асоційовану інформацію руху; визначити часового кандидата, асоційованого з поточною ділянкою поточного відеокадру, при цьому часовий кандидат відповідає ділянці опорного відеокадру і при цьому часовий кандидат має асоційовану інформацію руху; згенерувати список кандидатів на основі піднабору з набору просторових кандидатів і часового кандидата; і додати штучно згенерованого кандидата до списку кандидатів, у відповідь на список кандидатів, що містить менше, ніж точно визначене число кандидатів, при цьому штучно згенерований кандидат має інформацію руху, яка є такою ж, як інформація руху просторового кандидата з піднабору або інформація руху часового кандидата. Деталі одного або більше прикладів викладені на кресленнях, що додаються, і в описі нижче. Інші ознаки, задачі і переваги будуть очевидні з опису і креслень і з пунктів формули винаходу. КОРОТКИЙ ОПИС КРЕСЛЕНЬ Фіг. 1 є блок-схемою, що ілюструє зразкову систему кодування відео, яка може використовувати способи цього розкриття. Фіг. 2 є блок-схемою, що ілюструє зразковий відеокодер, який виконаний з можливістю реалізації способів цього розкриття. Фіг. 3 є блок-схемою, що ілюструє зразковий відеодекодер, який виконаний з можливістю реалізації способів цього розкриття. Фіг. 4 є блок-схемою, яка ілюструє зразкову конфігурацію модуля інтерпрогнозування. Фіг. 5 є схемою послідовності операцій, яка ілюструє зразкову операцію злиття. Фіг. 6 є схемою послідовності операцій, яка ілюструє зразкову операцію вдосконаленого прогнозування вектора руху (AMVP). Фіг. 7 є схемою послідовності операцій, яка ілюструє зразкову операцію компенсації руху, виконувану відеодекодером. Фіг. 8 є принциповою схемою, яка ілюструє одиницю кодування (CU) і зразкові вихідні розміщення, асоційовані з CU. Фіг. 9 є схемою послідовності операцій, яка ілюструє зразкову операцію формування списку кандидатів. Фіг. 10 показує графічний приклад додавання об'єднаних кандидатів до списку кандидатів для злиття. Фіг. 11 показує графічний приклад додавання масштабованих кандидатів до списку кандидатів для злиття. Фіг. 12 показує графічний приклад додавання нульових кандидатів до списку кандидатів для злиття. Фіг. 13A і 13B показують графічний приклад генерування mv_offset-кандидатів. 2 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 60 Фіг. 14 є схемою послідовності операцій, яка ілюструє приклади способів, описаних в цьому розкритті. ДОКЛАДНИЙ ОПИС Відеокодер може виконувати інтерпрогнозування для зменшення часової надмірності між зображеннями. Як описано нижче, одиниця кодування (CU) може мати множину одиниць прогнозування (PU). Іншими словами, множина PU може належати CU. Коли відеокодер виконує інтерпрогнозування, відеокодер може сигналізувати інформацію руху для PU. Інформація руху PU може включати в себе, наприклад, індекс опорного зображення, вектор руху і покажчик напряму прогнозування. Вектор руху може вказувати зміщення між відеоблоком PU і опорним блоком PU. Опорний блок PU може бути ділянкою опорного зображення, яка аналогічна відеоблоку PU. Опорний блок може бути розміщений в опорному зображенні, вказаному індексом опорного зображення і покажчиком напряму прогнозування. Щоб зменшити число бітів, необхідних для представлення інформації руху PU, відеокодер може генерувати списки кандидатів для кожної з PU згідно з режимом злиття або процесом вдосконаленого прогнозування вектора руху (AMVP). Кожний кандидат в списку кандидатів для PU може вказувати інформацію руху. Інформація руху, вказана деякими з кандидатів в списку кандидатів, може бути основана на інформації руху інших PU. У цьому розкритті кандидат може називатися "початковим" кандидатом, якщо кандидат вказує інформацію руху одного з точно визначених розміщень просторових або часових кандидатів. Наприклад, для режиму злиття, може бути п'ять розміщень початкових просторових кандидатів і одне розміщення початкового часового кандидата. У деяких прикладах, відеокодер може генерувати додаткових кандидатів за допомогою об'єднання просторових векторів руху з різних початкових кандидатів, модифікуючи початкових кандидатів, або просто вставляти нульові вектори руху як кандидати. Ці додаткові кандидати не розглядаються як початкові кандидати і в цьому розкритті можуть бути названі штучно згенерованими кандидатами. Способи цього розкриття в основному належать до способів генерування списків кандидатів на відеокодері і способів для генерування таких же списків кандидатів на відеодекодері. Відеокодер і відеодекодер можуть генерувати однакові списки кандидатів за допомогою реалізації однакових способів для формування списку кандидатів. Наприклад, як відеокодер, так і відеодекодер можуть формувати списки з однаковим числом кандидатів (наприклад, п'ять кандидатів). Відеокодер і відеодекодер можуть спочатку розглядати просторових кандидатів (наприклад, сусідні блоки в одному і тому ж зображенні), потім розглядати часових кандидатів (наприклад, кандидатів в різних зображеннях) і, нарешті, можуть розглядати штучно згенерованих кандидатів, поки в список не буде додане бажане число кандидатів. Згідно зі способами даного розкриття, під час формування списку кандидатів для певних типів кандидатів можуть бути використані операції відсікання, для того, щоб видалити дублікати зі списку кандидатів, тоді як для інших типів кандидатів відсікання може не використовуватися, для того, щоб зменшити складність кодера. Наприклад, для набору просторових кандидатів і для часового кандидата, може бути виконана операція відсікання для виключення кандидата з дубльованою інформацією руху. Однак, при додаванні штучно згенерованого кандидата в список кандидатів, штучно згенерований кандидат може бути доданий без виконання операції відсікання відносно штучно згенерованого кандидата. Після генерування списку кандидатів для PU з CU, відеокодер може вибрати кандидата зі списку кандидатів і вивести індекс кандидата в бітовому потоці. Вибраний кандидат може бути кандидатом, який має вектор руху, що дає в результаті предиктор, який більше усього співпадає з цільовою PU, яка кодується. Індекс кандидата може вказувати положення вибраного кандидата в списку кандидатів. Відеокодер може також генерувати прогнозувальний відеоблок для PU на основі опорного блока, вказаного за допомогою інформації руху PU. Інформація руху PU може визначуваною на основі інформації руху, вказаної вибраним кандидатом. Наприклад, в режимі злиття, інформація руху PU може бути такою ж, як інформація руху, вказана вибраним кандидатом. У режимі AMVP, інформація руху PU може бути визначена на основі різниці векторів руху PU і інформації руху, вказаної вибраним кандидатом. Відеокодер може генерувати один або більше залишкових відеоблоків для CU на основі прогнозувальних відеоблоків PU з CU і початкового відеоблока для CU. Відеокодер може потім кодувати і виводити один або більше залишкових відеоблоків в бітовому потоці. Бітовий потік може включати в себе дані, які ідентифікують вибраних кандидатів в списках кандидатів PU. Відеодекодер може визначити інформацію руху PU на основі інформації руху, вказаної вибраними кандидатами в списках кандидатів PU. Відеодекодер може ідентифікувати один або більше опорних блоків для PU на основі інформації руху PU. Після ідентифікації одного або більше опорних блоків PU, відеодекодер може генерувати прогнозувальний 3 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 60 відеоблок для PU на основі одного або більше опорних блоків PU. Відеодекодер може реконструювати відеоблок для CU на основі прогнозувальних відеоблоків для PU з CU і одного або більше залишкових відеоблоків для CU. Для простоти роз'яснення, це розкриття може описувати розміщення або відеоблоки як такі, що мають різні просторові взаємозв'язки з CU або PU. Такий опис може бути інтерпретований, щоб означати, що розміщення або відеоблоки мають різні просторові взаємозв'язки з відеоблоками, асоційованими з CU або PU. Крім того, в цьому розкритті PU, яку відеокодер кодує на даний момент, може називатися поточною PU. У цьому розкритті CU, яку відеокодер кодує на даний момент, може називатися поточною CU. У цьому розкритті зображення, яке відеокодер кодує на даний момент, може називатися поточним зображенням. Прикладені креслення ілюструють приклади. Елементи, вказані посилальними номерами на прикладених кресленнях, відповідають елементам, вказаним подібними посилальними номерами в нижченаведеному описі. У цьому розкритті, елементи, що мають назви, які починаються з порядкових слів (наприклад, "перший", "другий", "третій" і т. д.), необов'язково мають на увазі, що елементи мають конкретний порядок. Швидше, такі порядкові слова використовуються лише для посилання на різні елементи одного або аналогічного типу. Фіг. 1 є блок-схемою, яка ілюструє зразкову систему 10 кодування відео, яка може використовувати способи цього розкриття. Як використовується в цьому документі, термін "відеокодер" посилається загалом як на відеокодери, так і на відеодекодери. У цьому розкритті, термін "кодування відео" або "кодування" може посилатися в основному на кодування відео і декодування відео. Як показано на фіг. 1, система 10 кодування відео включає в себе вихідний пристрій 12 і пристрій 14 призначення. Вихідний пристрій 12 генерує кодовані відеодані. Відповідно, вихідний пристрій 12 може бути названий пристроєм кодування відео. Пристрій 14 призначення може декодувати кодовані відеодані, згенеровані вихідним пристроєм 12. Відповідно, пристрій 14 призначення може бути названий пристроєм декодування відео. Вихідний пристрій 12 і пристрій 14 призначення можуть бути прикладами пристроїв кодування відео. Вихідний пристрій 12 і пристрій 14 призначення можуть містити широкий діапазон пристроїв, що включають в себе настільні комп'ютери, мобільні обчислювальні пристрої, комп'ютери типу ноутбук (наприклад, переносні комп'ютери), планшетні комп'ютери, телеприставки, телефонні трубки, такі як так звані "інтелектуальні" телефони, телевізори, камери, пристрої відображення, цифрові медіапрогравачі, ігрові відеоконсолі, автомобільні комп'ютери або подібні. У деяких прикладах, вихідний пристрій 12 і пристрій 14 призначення можуть бути обладнані для бездротового зв'язку. Пристрій 14 призначення може приймати кодовані відеодані від вихідного пристрою 12 по каналу 16. Канал 16 може містити тип середовища або пристрій, здатний переміщувати кодовані відеодані з вихідного пристрою 12 в пристрій 14 призначення. У одному прикладі, канал 16 може містити середовище зв'язку, яке забезпечує вихідному пристрою 12 можливість передачі кодованих відеоданих прямо на пристрій 14 призначення в реальному часі. У цьому прикладі, вихідний пристрій 12 може модулювати кодовані відеодані згідно зі стандартом зв'язку, таким як протокол бездротового зв'язку, і може передавати модульовані відеодані на пристрій 14 призначення. Середовище зв'язку може містити середовище бездротового або дротового зв'язку, таке як радіочастотний (РЧ) спектр або одна або більше фізичних ліній передачі. Середовище зв'язку може утворювати частину пакетної мережі, такої як локальна мережа, територіальна мережа або глобальна мережа, така як Інтернет. Середовище зв'язку може включати в себе маршрутизатори, комутатори, базові станції або інше обладнання, яке сприяє зв'язку від вихідного пристрою 12 до пристрою 14 призначення. У іншому прикладі, канал 16 може відповідати носію даних, який зберігає кодовані відеодані, згенеровані вихідним пристроєм 12. У цьому прикладі, пристрій 14 призначення може здійснити доступ до носія даних за допомогою здійснення доступу до диска або здійснення доступу до карти. Носій даних може включати в себе різноманітність носіїв даних з локальним доступом, таких як диски Blu-ray, DVD, CD-ROM, флеш-пам'ять або інші придатні цифрові середовища зберігання, для зберігання кодованих відеоданих. У додатковому прикладі, канал 16 може включати в себе файловий сервер або інший проміжний пристрій зберігання, який зберігає кодоване відео, згенероване вихідним пристроєм 12. У цьому прикладі, пристрій 14 призначення може здійснювати доступ до кодованих відеоданих, що зберігається на файловому сервері або іншому проміжному сховищі, за допомогою потокової передачі або завантаження. Файловим сервером може бути тип сервера, здатний зберігати кодовані відеодані і передавати кодовані відеодані на пристрій 14 призначення. Зразкові файлові сервери включають в себе веб-сервери (наприклад, для веб-сайта), сервери протоколу передачі файлів (FTP), пристрій 4 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 сховища, що підключається до мережі (NAS), і локальні дискові накопичувачі. Пристрій 14 призначення може здійснювати доступ до кодованих відеоданих за допомогою стандартного інформаційного з'єднання, що включає в себе Інтернет-з'єднання. Зразкові типи інформаційних з'єднань можуть включати в себе бездротові канали (наприклад, Wi-Fi-з'єднання), дротові з'єднання (наприклад, DSL, кабельний модем і т. д.) або їх комбінації, які придатні для здійснення доступу до кодованих відеоданих, що зберігаються на файловому сервері. Передача кодованих відеоданих з файлового сервера може бути потоковою передачею, передачею на завантаження або їх комбінацією. Способи цього розкриття не обмежені застосуваннями або установками бездротового зв'язку. Способи можуть бути застосовані до кодування відео при підтриманні будь-якого з різноманітності застосувань мультимедійних засобів, таких як телевізійні трансляції по радіоінтерфейсу, кабельні телепередачі, супутникові телепередачі, потокові передачі відео, наприклад через Інтернет, кодування цифрового відео для зберігання на носії даних, декодування цифрового відео, що зберігається на носії даних, або інших застосувань. У деяких прикладах, система 10 кодування відео може бути виконана з можливістю підтримання односторонньої або двосторонньої передачі відео для підтримання застосувань, таких як потокова передача відео, програвання відео, трансляція відео і/або відеотелефонія. У прикладі за фіг. 1, вихідний пристрій 12 включає в себе відеоджерело 18, відеокодер 20 і вихідний інтерфейс 22. У деяких випадках, вихідний інтерфейс 22 може включати в себе модулятор/демодулятор (модем) і/або передавач. У вихідному пристрої 12, відеоджерело 18 може включати в себе джерело, таке як пристрій захоплення відео, наприклад відеокамеру, відеоархіви, що містять раніше захоплені відеодані, інтерфейс подачі відео для прийому відеоданих від постачальника відеоконтенту, і/або комп'ютерну графічну систему для генерування відеоданих або комбінацію таких джерел. Відеокодер 20 може кодувати захоплені, попередньо захоплені або згенеровані комп'ютером відеодані. Кодовані відеодані можуть бути передані прямо на пристрій 14 призначення через вихідний інтерфейс 22 вихідного пристрою 12. Кодовані відеодані можуть також бути збережені в середовищі зберігання або файловому сервері для подальшого доступу пристроєм 14 призначення для декодування і/або програвання. У прикладі за фіг. 1, пристрій 14 призначення включає в себе вхідний інтерфейс 28, відеодекодер 30 і пристрій 32 відображення. У деяких випадках, вхідний інтерфейс 28 може включати в себе приймач і/або модем. Вхідний інтерфейс 28 пристрою 14 призначення приймає кодовані відеодані по каналу 16. Кодовані відеодані можуть включати в себе різноманітність синтаксичних елементів, згенерованих відеокодером 20, які представляють відеодані. У такі синтаксичні елементи можуть бути включені кодовані відеодані, що передаються по середовищу зв'язку, які зберігаються на носії даних або зберігаються на файловому сервері. Пристрій 32 відображення може бути інтегрований з пристроєм 14 призначення або може бути зовнішнім для нього. У деяких прикладах, пристрій 14 призначення може включати в себе інтегрований пристрій відображення і може також бути виконаний з можливістю взаємодії із зовнішнім пристроєм відображення. У інших прикладах, пристроєм 14 призначення може бути пристрій відображення. Загалом, пристрій 32 відображення відображає декодовані відеодані користувачу. Пристрій 32 відображення може містити будь-який з різноманітності пристроїв відображення, таких як рідкокристалічний дисплей (LCD), плазмовий дисплей, дисплей на органічних світлодіодах (OLED) або інші типи пристроїв відображення. Відеодекодер 20 і відеодекодер 30 можуть функціонувати згідно зі стандартом стиснення відео, таким як стандарт Високоефективного кодування відео (HEVC), на даний момент в розробці, і можуть відповідати Тестовій моделі HEVC (HM). Нещодавній проект майбутнього стандарту HEVC, званий "Робочим проектом HEVC 6" або "WD6", описаний в документі JCTVCH1003, Bross і ін. "High efficiency video coding (HEVC) text specification draft 6", Об'єднана команда по кодуванню відео (JCT-VC) ITU-T SG16 WP3 і ISO/IEC JTC1/SC29/WG11, 8-ма зустріч: Сан-Хосе, Каліфорнія, США, лютий 2012, який, за даними на 1 травня 2012, може бути завантажений по: http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San%20Jose/wgl 1/JCTVCH1003-v22.zip, весь вміст якого включений в цей документ за допомогою посилання. Інший нещодавній проект стандарту HEVC, званий "Робочим проектом HEVC 7" або "WD7", описаний в документі HCTVC-I1003, Bross і ін. "High Efficiency Video Coding (HEVC) Text Specification Draft 7", Об'єднана команда по кодуванню відео (JCT-VC) ITU-T SG16 WP3 і ISO/IEC JTC1/SC29/WG11, 9-та зустріч: Женева, Швейцарія, з 27 квітня 2012 по 7 травня 2012, який, за даними на 5 червня 2012, може бути завантажений по: http://phenix.itsudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v3.zip. 5 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 60 Як альтернатива, відеокодер 20 і відеодекодер 30 можуть функціонувати згідно з іншими пропрієтарними або галузевими стандартами, такими як стандарт ITU-T H.264, альтернативно званий MPEG-4, Частина 10, Вдосконалене кодування відео (AVC), або розширеннями таких стандартів. Однак, способи цього розкриття не обмежені яким-небудь конкретним стандартом або способом кодування. Інші приклади стандартів і способів стиснення відео включають в себе MPEG-2, ITU-T H.263 і пропрієтарні формати стиснення з відкритим вихідним кодом, такі як VP8 і споріднені формати. Хоч не показано в прикладі за фіг. 1, кожний з відеокодера 20 і відеодекодера 30 може бути інтегрований з аудіокодером або аудіодекодером і може включати в себе відповідні блоки MUXDEMUX або інші апаратні засоби і програмне забезпечення, щоб обробляти кодовані як аудіо, так і відео в загальному потоці даних або окремих потоках даних. Якщо застосовно, в деяких прикладах, блоки MUX-DEMUX можуть відповідати протоколу мультиплексора ITU H.223 або іншим протоколам, таким як протокол користувацьких дейтаграм (UDP). Знов, фіг. 1 є лише прикладом і способи цього розкриття можуть застосовуватися до настройок кодування відео (наприклад, кодування відео і декодування відео), які необов'язково включають в себе який-небудь обмін даними між пристроями кодування і декодування. У інших прикладах, дані можуть бути витягнуті з локальної пам'яті, передані потоком по мережі або подібним чином. Пристрій кодування може кодувати і зберігати дані в пам'ять, і/або пристрій декодування може витягувати і декодувати дані з пам'яті. У багатьох прикладах, кодування і декодування виконуються пристроями, які не здійснюють зв'язок один з одним, а просто кодують дані в пам'ять і/або витягують і декодують дані з пам'яті. Кожний з відеокодера 20 і відеодекодера 30 може бути реалізований у вигляді будь-якої з різноманітності придатних компонувань схем, таких як один або більше мікропроцесорів, процесори цифрової обробки сигналів (DSP), спеціалізовані інтегральні мікросхеми (ASIC), програмовані користувачем вентильні матриці (FPGA), дискретна логіка, апаратні засоби, або будь-якої їх комбінації. Коли способи частково реалізовані в програмному забезпеченні, пристрій може зберігати інструкції для програмного забезпечення у придатному постійному комп'ютерочитаному носії даних і може виконувати інструкції в апаратних засобах з використанням одного або більше процесорів для виконання способів цього розкриття. Кожний з відеокодера 20 і відеодекодера 30 може бути включений в один або більше кодерів або декодерів, будь-який з яких може бути інтегрований як частина об'єднаного кодера/декодера (кодека) у відповідному пристрої. Як стисло згадано вище, відеокодер 20 кодує відеодані. Відеодані можуть містити одне або більше зображень. Кожне із зображень є нерухомим зображенням, що утворює частину відео. У деяких випадках, зображення може бути назване "відеокадром". Коли відеокодер 20 кодує відеодані, відеокодер 20 може генерувати бітовий потік. Бітовий потік може включати в себе послідовність бітів, які утворюють представлення відеоданих. Бітовий потік може включати в себе кодовані зображення і асоційовані дані. Кодоване зображення є кодованим представленням зображення. Щоб згенерувати бітовий потік, відеокодер 20 може виконати операції кодування відносно кожного зображення у відеоданих. Коли відеокодер 20 виконує операції кодування відносно зображень, відеокодер 20 може генерувати ряд кодованих зображень і асоційованих даних. Асоційовані дані можуть включати в себе набори параметрів послідовності, набори параметрів зображення і інші синтаксичні структури. Набір параметрів послідовності (SPS) може містити параметри, застосовні до нуля або більше послідовностей зображень. Набір параметрів зображення (PPS) може містити параметри, застосовні до нуля або більше зображень. Набір параметрів адаптації (APS) може містити параметри, застосовні до нуля або більше зображень. Параметри в APS можуть бути параметрами, які змінюються з більшою імовірністю, ніж параметри в PPS. Щоб згенерувати кодоване зображення, відеокодер 20 може розбити зображення на відеоблоки. Відеоблоком може бути двовимірний масив вибірок. Кожний з відеоблоків асоційований з деревовидним блоком. У деяких випадках, деревовидний блок може бути названий найбільшою одиницею кодування (LCU). Деревовидні блоки HEVC можуть бути в широкому значенні аналогічними макроблокам по попередніх стандартах, таких як H.264/AVC. Однак, деревовидний блок необов'язково обмежений конкретним розміром і може включати в себе одну або більше одиниць кодування (CU). Відеокодер 20 може використовувати розбиття дерева квадрантів для розбиття відеоблоків деревовидних блоків на відеоблоки, асоційовані з CU, звідси і назва "деревовидні блоки". У деяких прикладах, відеокодер 20 може розбивати зображення на множину слайсів. Кожний зі слайсів може включати в себе ціле число CU. У деяких випадках, слайс містить ціле число 6 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 деревовидних блоків. У інших випадках, границя слайсу може бути всередині деревовидного блока. Як частину виконання операції кодування відносно зображення, відеокодер 20 може виконувати операції кодування відносно кожного слайсу зображення. Коли відеокодер 20 виконує операцію кодування відносно слайсу, відеокодер 20 може генерувати кодовані дані, асоційовані зі слайсом. Кодовані дані, асоційовані зі слайсом, можуть бути названі "кодованим слайсом". Щоб згенерувати кодований слайс, відеокодер 20 може виконати операції кодування відносно кожного деревовидного блока в слайсі. Коли відеокодер 20 виконує операцію кодування відносно деревовидного блока, відеокодер 20 може згенерувати кодований деревовидний блок. Кодований деревовидний блок може містити дані, що являють собою кодовану версію деревовидного блока. Коли відеокодер 20 генерує кодований слайс, відеокодер 20 може виконати операції кодування (тобто кодувати) відносно деревовидних блоків в слайсі згідно з порядком растрового сканування. Іншими словами, відеокодер 20 може кодувати деревовидні блоки слайсу в порядку, який проходить зліва направо через самий верхній ряд деревовидних блоків в слайсі, потім проходить зліва направо по наступному ряду деревовидних блоків нижче і так далі, поки відеокодер 20 не здійснить кодування кожного з деревовидних блоків в слайсі. В результаті кодування деревовидних блоків згідно з порядком растрового сканування, можуть бути кодовані деревовидні блоки вище і зліва від заданого деревовидного блока, але деревовидні блоки нижче і справа від заданого деревовидного блока ще не були кодовані. Отже, відеокодер 20 може мати можливість здійснення доступу до інформації, згенерованої за допомогою кодування деревовидних блоків вище і зліва від заданого деревовидного блока, при кодуванні заданого деревовидного блока. Однак, відеокодер 20 може не мати можливості здійснення доступу до інформації, згенерованої за допомогою кодування деревовидних блоків нижче і справа від заданого деревовидного блока, при кодуванні заданого деревовидного блока. Щоб згенерувати кодований деревовидний блок, відеокодер 20 може рекурсивно виконати розбиття дерева квадрантів відносно відеоблока деревовидного блока, щоб розділяти відеоблок на все менші і менші відеоблоки. Кожний з менших відеоблоків може бути асоційований з інший CU. Наприклад, відеокодер 20 може розбити відеоблок деревовидного блока на чотири підблоки рівного розміру, розбити один або більше підблоків на чотири підпідблоки рівного розміру і т. д. Розбитою CU може бути CU, відеоблок якої розбитий на відеоблоки, асоційовані з іншими CU. Нерозбитою CU може бути CU, відеоблок якої не розбитий на відеоблоки, асоційовані з іншими CU. Один або більше синтаксичних елементів в бітовому потоці можуть вказувати максимальне число разів, яке відеокодер 20 може розбивати відеоблок деревовидного блока. Відеоблок CU може бути квадратної форми. Розмір відеоблока CU (тобто розмір CU) може ранжуватися від 8×8 пікселів до розміру відеоблока деревовидного блока (тобто розміру деревовидного блока) з максимумом 64×64 пікселів або більше. Відеокодер 20 може виконати операції кодування (тобто кодувати) відносно кожної CU деревовидного блока згідно з порядком z-сканування. Іншими словами, відеокодер 20 може кодувати верхню ліву CU, верхню праву CU, нижню ліву CU і потім нижню праву CU, в цьому порядку. Коли відеокодер 20 виконує операцію кодування відносно розбитої CU, відеокодер 20 може кодувати CU, асоційовані з підблоками відеоблока розбитої CU, згідно з порядком zсканування. Іншими словами, відеокодер 20 може кодувати CU, асоційовану з верхнім лівим підблоком, CU, асоційовану з верхнім правим підблоком, CU, асоційовану з нижнім лівим підблоком, і потім CU, асоційовану з нижнім правим підблоком, в цьому порядку. В результаті кодування CU деревовидного блока згідно з порядком z-сканування, можуть бути кодовані CU зверху, зверху і зліва, зверху і справа, зліва, і знизу і зліва від заданої CU. CU знизу і справа від заданої CU ще не були кодовані. Отже, відеокодер 20 може мати можливість здійснення доступу до інформації, згенерованої за допомогою кодування деяких CU, які є сусідніми із заданою CU, при кодуванні заданої CU. Однак, відеокодер 20 може не мати можливості здійснення доступу до інформації, згенерованої за допомогою кодування інших CU, які є сусідніми із заданою CU, при кодуванні заданої CU. Коли відеокодер 20 кодує нерозбиту CU, відеокодер 20 може генерувати одну або більше одиниць прогнозування (PU) для CU. Кожна з PU з CU може бути асоційована з іншим відеоблоком всередині відеоблока CU. Відеокодер 20 може генерувати прогнозувальний відеоблок для кожної PU з CU. Прогнозувальним відеоблоком PU може бути блок вибірок. 7 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 Відеокодер 20 може використовувати інтрапрогнозування або інтерпрогнозування, щоб згенерувати прогнозувальний відеоблок для PU. Коли відеокодер 20 використовує інтрапрогнозування, щоб згенерувати прогнозувальний відеоблок PU, відеокодер 20 може згенерувати прогнозувальний відеоблок PU на основі декодованих вибірок зображення, асоційованого з PU. Якщо відеокодер 20 використовує інтрапрогнозування, щоб згенерувати прогнозувальні відеоблоки PU з CU, CU є CU, прогнозованою за допомогою інтрапрогнозування. Коли відеокодер 20 використовує інтерпрогнозування, щоб згенерувати прогнозувальний відеоблок PU, відеокодер 20 може згенерувати прогнозувальний відеоблок PU на основі декодованих вибірок одного або більше зображень, відмінних від зображення, асоційованого з даною PU. Якщо відеокодер 20 використовує інтерпрогнозування, щоб згенерувати прогнозувальні відеоблоки PU з CU, CU є CU, прогнозованою за допомогою інтерпрогнозування. Крім того, коли відеокодер 20 використовує інтерпрогнозування, щоб згенерувати прогнозувальний відеоблок для PU, відеокодер 20 може згенерувати інформацію руху для PU. Інформація руху для PU може вказувати один або більше опорних блоків PU. Кожний опорний блок PU може бути відеоблоком всередині опорного зображення. Опорне зображення може бути зображенням, відмінним від зображення, асоційованого з PU. У деяких випадках, опорний блок PU може також бути названий "опорною вибіркою" PU. Відеокодер 20 може генерувати прогнозувальний відеоблок для PU на основі опорних блоків PU. Після того, як відеокодер 20 згенерує прогнозувальні відеоблоки для однієї або більше PU з CU, відеокодер 20 може згенерувати залишкові дані для CU на основі прогнозувальних відеоблоків для PU з CU. Залишкові дані для CU можуть вказувати різниці між вибірками в прогнозувальних відеоблоках для PU з CU і початковому відеоблоці CU. Крім того, як частину виконання операції кодування відносно нерозбитої CU, відеокодер 20 може виконати рекурсивне розбиття дерева квадрантів відносно залишкових даних CU, щоб розбити залишкові дані CU на один або більше блоків залишкових даних (тобто залишкових відеоблоків), асоційованих з одиницями перетворення (TU) з CU. Кожна з TU з CU може бути асоційована з іншим залишковим відеоблоком. Відеокодер 20 може застосувати одне або більше перетворень до залишкових відеоблоків, асоційованих з TU, щоб згенерувати блоки коефіцієнтів перетворення (тобто блоки коефіцієнтів перетворення, асоційовані з TU). У принципі, блок коефіцієнтів перетворення може містити двовимірну (2D) матрицю коефіцієнтів перетворення, які представляють величини в частотній області перетворення. Після генерування блока коефіцієнтів перетворення, відеокодер 20 може виконати процес квантування відносно блока коефіцієнтів перетворення. Квантування звичайно належить до процесу, в якому коефіцієнти перетворення квантуються, щоб по можливості зменшити величину даних, використовуваних для представлення коефіцієнтів перетворення, забезпечуючи додаткове стиснення. Процес квантування може зменшити глибину в бітах, асоційовану з деякими або всіма коефіцієнтами перетворення. Наприклад, n-бітовий коефіцієнт перетворення може бути округлений в меншу сторону до m-бітового коефіцієнта перетворення під час квантування, де n більше, ніж m. Відеокодер 20 може асоціювати кожну CU зі значенням параметра квантування (QP). Значення QP, асоційоване з CU, може визначити як відеокодер 20 квантує блоки коефіцієнтів перетворення, асоційовані з CU. Відеокодер 20 може регулювати міру квантування, застосовувану до блоків коефіцієнтів перетворення, асоційованих з CU, за допомогою регулювання значення QP, асоційованого з CU. Після того, як відеокодер 20 здійснить квантування блока коефіцієнтів перетворення, відеокодер 20 може згенерувати набори синтаксичних елементів, які являють собою коефіцієнти перетворення в квантованому блоці коефіцієнтів перетворення. Відеокодер 20 може застосовувати операції ентропійного кодування, такі як операції контекстно-залежного адаптивного двійкового арифметичного кодування (CABAC), до деяких з цих синтаксичних елементів. Бітовий потік, згенерований відеокодером 20, може включати в себе ряд блоків рівня мережевої абстракції (NAL). Кожний з блоків NAL може бути синтаксичною структурою, що містить указання типу даних в блоці NAL і байти, що містять дані. Наприклад, блок NAL може містити дані, що являють собою набір параметрів послідовності, набір параметрів зображення, кодований слайс, додаткову інформацію по удосконаленню (SEI), розмежовувач блока доступу, заповнюючі дані або інший тип даних. Дані в блоці NAL можуть включати в себе різні синтаксичні структури. 8 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 Відеодекодер 30 може приймати бітовий потік, згенерований відеокодером 20. Бітовий потік може включати в себе кодоване представлення відеоданих, кодованих відеокодером 20. Коли відеодекодер 30 приймає бітовий потік, відеодекодер 30 може виконати операцію синтаксичного аналізу відносно бітового потоку. Коли відеодекодер 30 виконує операцію синтаксичного аналізу, відеодекодер 30 може витягнути синтаксичні елементи з бітового потоку. Відеодекодер 30 може реконструювати зображення відеоданих на основі синтаксичних елементів, витягнутих з бітового потоку. Процес для реконструкції відеоданих на основі синтаксичних елементів може бути загалом протилежним процесу, виконуваному відеокодером 20 для генерування синтаксичних елементів. Після того, як відеодекодер 30 витягне синтаксичні елементи, асоційовані з CU, відеодекодер 30 може згенерувати прогнозувальні відеоблоки для PU з CU на основі синтаксичних елементів. На доповнення, відеодекодер 30 може здійснити зворотне квантування блоків коефіцієнтів перетворення, асоційованих з TU з CU. Відеодекодер 30 може виконати зворотні перетворення відносно блоків коефіцієнтів перетворення, щоб реконструювати залишкові відеоблоки, асоційовані з TU з CU. Після генерування прогнозувальних відеоблоків і реконструкції залишкових відеоблоків, відеодекодер 30 може реконструювати відеоблок CU на основі прогнозувальних відеоблоків і залишкових відеоблоків. Таким чином, відеодекодер 30 може реконструювати відеоблоки CU на основі синтаксичних елементів в бітовому потоці. Як стисло описано вище, відеокодер 20 може використовувати інтерпрогнозування, щоб згенерувати прогнозувальні відеоблоки і інформацію руху для PU з CU. У багатьох випадках, інформація руху заданої PU ймовірно повинна бути такою ж або аналогічною інформації руху однієї або більше ближніх PU (тобто PU, відеоблоки яких в просторовому і часовому відношенні знаходяться поблизу відеоблока заданої PU). Оскільки ближні PU часто мають аналогічну інформацію руху, відеокодер 20 може кодувати інформацію руху заданої PU з посиланням на інформацію руху ближньої PU. Кодування інформації руху заданої PU з посиланням на інформацію руху ближньої PU може зменшити число бітів, необхідних в бітовому потоці для указання інформації руху заданої PU. Відеокодер 20 може кодувати інформацію руху заданої PU з посиланням на інформацію руху ближньої PU різним чином. Наприклад, відеокодер 20 може вказувати, що інформація руху заданої PU є такою ж, як інформація руху ближньої PU. У цьому розкритті може використовуватися фраза "режим злиття", щоб вказувати, що інформація руху заданої PU є такою ж, як інформація руху ближньої PU, або може бути одержана з інформації руху ближніх PU. У іншому прикладі, відеокодер 20 може обчислити різницю векторів руху (MVD) для заданої PU. MVD вказує різницю між вектором руху заданої PU і вектором руху ближньої PU. Наприклад, відеокодер 20 може включати в себе MVD в інформації руху заданої PU, замість вектора руху заданої PU. Може бути потрібно менше бітів в бітовому потоці для представлення MVD, ніж вектора руху заданої PU. У цьому розкритті може використовуватися фраза "режим вдосконаленого прогнозування вектора руху" (AMVP) для посилання на сигналізацію інформації руху заданої PU за допомогою використання MVD і значення індексу, який ідентифікує вектор руху кандидата. Для сигналізації інформації руху заданої PU з використанням режиму злиття або режиму AMVP, відеокодер 20 може генерувати список кандидатів для заданої PU. Список кандидатів може включати в себе одного або більше кандидатів. Кожний з кандидатів в списку кандидатів для заданої PU може точно визначати інформацію руху. Інформація руху, вказана кожним кандидатом, може включати в себе вектор руху, індекс опорного зображення і покажчик напряму прогнозування. Кандидати в списку кандидатів можуть включати в себе "початкових" кандидатів, кожний з яких вказує інформацію руху одного з точно визначених розміщень кандидатів всередині PU, відмінної від заданої PU. Після генерування списку кандидатів для PU, відеокодер 20 може вибрати одного з кандидатів зі списку кандидатів для PU. Наприклад, відеокодер може порівняти кожного кандидата з PU, яка кодується, і може вибрати кандидата, який має бажані показники залежності спотворень від швидкості передачі. Відеокодер 20 може виводити індекс кандидата для PU. Індекс кандидата може ідентифікувати положення в списку кандидатів для вибраного кандидата. Крім того, відеокодер 20 може генерувати прогнозувальний відеоблок для PU на основі опорних блоків, вказаних за допомогою інформації руху PU. Інформація руху PU може бути визначною на основі інформації руху, вказаної вибраним кандидатом в списку кандидатів для PU. Наприклад, в режимі злиття, інформація руху PU може бути такою ж, як інформація руху, вказана вибраним кандидатом. У режимі AMVP, інформація руху PU може бути визначною на 9 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 основі різниці векторів руху (MVD) для PU і інформації руху, вказаної вибраним кандидатом. Відеокодер 20 може обробляти прогнозувальний відеоблок для кожної PU, як описано вище. Коли відеодекодер 30 приймає бітовий потік, відеодекодер 30 може згенерувати списки кандидатів для кожної PU з CU. Списки кандидатів, згенеровані для PU відеодекодером 30, можуть бути такими ж, як списки кандидатів, згенеровані для PU відеодекодером 20. Синтаксичний елемент, синтаксично виділений з бітового потоку, може вказувати положення вибраних кандидатів в списках кандидатів PU. Після генерування списку кандидатів для PU, відеокодер 30 може згенерувати прогнозувальний відеоблок для PU на основі одного або більше опорних блоків, вказаних за допомогою інформації руху PU. Відеодекодер 30 може визначити інформацію руху PU на основі інформації руху, вказаної вибраним кандидатом в списку кандидатів для PU. Відеодекодер 30 може реконструювати відеоблок для CU на основі прогнозувальних відеоблоків для PU і залишкових відеоблоків для CU. Фіг. 2 є блок-схемою, що ілюструє зразковий відеокодер 20, який виконаний з можливістю реалізації способів цього розкриття. Фіг. 2 надається з метою роз'яснення і не повинна розглядатися як така, що обмежує способи, які наведені як приклад в широкому значенні і описані в цьому розкритті. З метою роз'яснення, це розкриття описує відеокодер 20 в контексті HEVC-кодування. Однак, способи цього розкриття можуть бути застосовні до інших стандартів або способів кодування. У прикладі за фіг. 2, відеокодер 20 включає в себе множину функціональних компонентів. Функціональні компоненти відеокодера 20 включають в себе модуль 100 прогнозування, модуль 102 генерування залишку, модуль 104 перетворення, модуль 106 квантування, модуль 108 зворотного квантування, модуль 110 зворотного перетворення, модуль 112 реконструкції, модуль 113 фільтра, буфер 114 декодованих зображень і модуль 116 ентропійного кодування. Модуль 100 прогнозування включає в себе модуль 121 інтерпрогнозування, модуль 122 оцінки руху, модуль 124 компенсації руху і модуль 126 інтрапрогнозування. У інших прикладах, відеокодер 20 може включати в себе більше, менше або інші функціональні компоненти. Крім того, модуль 122 оцінки руху і модуль 124 компенсації руху можуть бути сильно інтегровані, але представлені в прикладі за фіг. 2 окремо з метою роз'яснення. Відеокодер 20 може приймати відеодані. Відеокодер 20 може приймати відеодані з різних джерел. Наприклад, відеокодер 20 може приймати відеодані від відеоджерела 18 (фіг. 1) або іншого джерела. Відеодані можуть являти собою ряд зображень. Щоб кодувати відеодані, відеокодер 20 може виконати операцію кодування відносно кожного із зображень. Як частину виконання операції кодування відносно зображення, відеокодер 20 може виконати операції кодування відносно кожного слайсу зображення. Як частину виконання операції кодування відносно слайсу, відеокодер 20 може виконати операції кодування відносно деревовидних блоків в слайсі. Як частину виконання операції кодування відносно деревовидного блока, модуль 100 прогнозування може виконати розбиття дерева квадрантів відносно відеоблока деревовидного блока, щоб розділяти відеоблок на все менші і менші відеоблоки. Кожний з менших відеоблоків може бути асоційований з іншою CU. Наприклад, модуль 100 прогнозування може розбити відеоблок деревовидного блока на чотири підблоки рівного розміру, розбити один або більше підблоків на чотири підпідблоки рівного розміру і т. д. Розміри відеоблоків, асоційованих з CU, можуть ранжуватися від 8×8 пікселів до розміру деревовидного блока з максимумом 64×64 вибірок або більше. У цьому розкритті, "N×N" і "N на N" можуть бути використані взаємозамінно для посилання на розміри вибірки відеоблока в тому, що стосується вертикальних і горизонтальних розмірів, наприклад 16×16 вибірок або 16 на 16 вибірок. Загалом, відеоблок 16×16 має шістнадцять вибірок у вертикальному напрямку (у=16) і шістнадцять вибірок в горизонтальному напрямку (х=16). Аналогічно, блок N×N, загалом, має N вибірок у вертикальному напрямку і N вибірок в горизонтальному напрямку, де N являє собою ненегативне ціле значення. Крім того, як частину виконання операції кодування відносно деревовидного блока, модуль 100 прогнозування може згенерувати ієрархічну структуру даних дерева квадрантів для деревовидного блока. Наприклад, деревовидний блок може відповідати кореневому вузлу структури даних дерева квадрантів. Якщо модуль прогнозування 100 розбиває відеоблок деревовидного блока на чотири підблоки, кореневий вузол має чотири дочірніх вузли в структурі даних дерева квадрантів. Кожний з дочірніх вузлів відповідає CU, асоційованій з одним з підблоків. Якщо модуль 100 прогнозування розбиває один з підблоків на чотири підпідблоки, вузол, відповідний CU, асоційованій з підблоком, може мати чотири дочірніх вузли, кожний з яких відповідає CU, асоційованій з одним з підпідблоків. 10 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 60 Кожний вузол структури даних дерева квадрантів може містити синтаксичні дані (наприклад, синтаксичні елементи) для відповідного деревовидного блока або CU. Наприклад, вузол в дереві квадрантів може включати в себе прапор розділення, який вказує, чи розбитий (розділений) відеоблок CU, відповідний вузлу, на чотири підблоки. Синтаксичні елементи для CU можуть бути задані рекурсивно і можуть залежати від того, чи розділений відеоблок CU на підблоки. CU, відеоблок якої не розбитий, може відповідати кінцевому вузлу в структурі даних дерева квадрантів. Кодований деревовидний блок може включати в себе дані, основані на структурі даних дерева квадрантів для відповідного деревовидного блока. Відеокодер 20 може виконати операції кодування віжносно кожної нерозбитої CU деревовидного блока. Коли відеокодер 20 виконує операцію кодування відносно нерозбитої CU, відеокодер 20 генерує дані, що являють собою кодоване представлення нерозбитої CU. Як частину виконання операції кодування відносно CU, модуль 100 прогнозування може розбити відеоблок CU між однією або більше PU з CU. Відеокодер 20 і відеодекодер 30 можуть підтримувати різні розміри PU. Передбачаючи, що розмір конкретної CU становить 2N×2N, відеокодер 20 і відеодекодер 30 можуть підтримувати розміри PU 2N×2N або N×N для інтрапрогнозування, і симетричні розміри PU 2N×2N, 2N×N, N×2N, N×N або аналогічні для інтерпрогнозування. Відеокодер 20 і відеодекодер 30 можуть також підтримувати асиметричне розбиття для розмірів PU 2N×nU, 2N×nD, nL×2N і nR×2N для інтерпрогнозування. У деяких прикладах, модуль 100 прогнозування може виконати геометричне розбиття для розбиття відеоблока CU між PU з CU вздовж границі, яка не співпадає зі сторонами відеоблока CU при правильних кутах. Модуль 121 інтерпрогнозування може виконати інтерпрогнозування відносно кожної PU з CU. Інтерпрогнозування може надати часове стиснення. Для виконання інтерпрогнозування відносно PU, модуль 122 оцінки руху може згенерувати інформацію руху для PU. Модуль 124 компенсації руху може генерувати прогнозувальний відеоблок для PU на основі інформації руху і декодованих вибірок зображень, відмінних від зображення, асоційованого з CU (тобто опорних зображень). У цьому розкритті, відеоблок, прогнозований за допомогою прогнозованого відеоблока, згенерованого модулем 124 компенсації руху, може бути названий відеоблоком, прогнозованим за допомогою інтерпрогнозування. Слайси можуть бути I-слайсами, Р-слайсами або В-слайсами. Модуль 122 оцінки руху і модуль 124 компенсації руху можуть виконувати різні операції для PU з CU залежно від того, чи знаходиться PU в I-слайсі, Р-слайсі або В-слайсі. У I-слайсі всі PU прогнозовані за допомогою інтрапрогнозування. Тому, якщо PU знаходиться в I-слайсі, модуль 122 оцінки руху і модуль 124 компенсації руху не виконують інтерпрогнозування відносно PU. Якщо PU знаходиться в Р-слайсі, зображення, що містить PU, асоційоване зі списком опорних зображень, званим як "список 0". Кожне з опорних зображень в списку 0 містить вибірки, які можуть бути використані для інтерпрогнозування інших зображень. Коли модуль 122 оцінки руху виконує операцію оцінки руху відносно PU в Р-слайсі, модуль 122 оцінки руху може здійснити пошук опорних зображень в списку 0 для опорного блока для PU. Опорним блоком PU може бути набір вибірок, наприклад блок вибірок, який найбільш точно відповідає вибіркам у відеоблоці PU. Модуль 122 оцінки руху може використовувати різноманітність показників для визначення, наскільки точно набір вибірок в опорному зображенні відповідає вибіркам у відеоблоці PU. Наприклад, модуль 122 оцінки руху може визначати, наскільки точно набір вибірок в опорному зображенні відповідає вибіркам у відеоблоці PU, за допомогою суми абсолютних різниць (SAD), суми квадратів різниць (SSD) або інших різницевих показників. Після ідентифікації опорного блока PU в Р-слайсі, модуль 122 оцінки руху може згенерувати опорний індекс, який вказує опорне зображення в списку 0, що містить опорний блок, і вектор руху, який вказує просторове зміщення між PU і опорним блоком. У різних прикладах, модуль 122 оцінки руху може генерувати вектори руху із змінними мірами точності. Наприклад, модуль 122 оцінки руху може генерувати вектори руху з точністю до однієї четвертої вибірки, точністю в одну восьму вибірки або іншою дробовою точністю вибірки. У випадку дробової точності вибірки, значення опорного блока можуть бути інтерпольовані із значень вибірки з цілочисловим положенням в опорному зображенні. Модуль 122 оцінки руху може виводити опорний індекс і вектор руху як інформацію руху PU. Модуль 124 компенсації руху може генерувати прогнозувальний відеоблок PU на основі опорного блока, ідентифікованого за допомогою інформації руху PU. Якщо PU розміщується в В-слайсі, зображення, що містить PU, асоційоване з двома списками опорних зображень, званими як "список 0" і "список 1". У деяких прикладах, зображення, що містить В-слайс, може бути асоційоване з комбінацією списків, яка є комбінацією списку 0 і списку 1. 11 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 Крім того, якщо PU розміщується в В-слайсі, модуль 122 оцінки руху може виконати однонаправлене прогнозування або двонаправлене прогнозування для PU. Коли модуль 122 оцінки руху виконує однонаправлене прогнозування для PU, модуль 122 оцінки руху може здійснити пошук опорних зображень зі списку 0 і списку 1 для опорного блока для PU. Модуль 122 оцінки руху може потім згенерувати опорний індекс, який вказує опорне зображення в списку 0 або списку 1, яке містить опорний блок, і вектор руху, який вказує просторове зміщення між PU і опорним блоком. Модуль 122 оцінки руху може виводити опорний індекс, покажчик напряму прогнозування і вектор руху як інформацію руху PU. Покажчик напрямку прогнозування може вказувати, чи вказує опорний індекс опорне зображення в списку 0 або списку 1. Модуль 124 компенсації руху може генерувати прогнозувальний відеоблок PU на основі опорного блока, вказаного за допомогою інформації руху PU. Коли модуль 122 оцінки руху виконує двонаправлене прогнозування для PU, модуль 122 оцінки руху може здійснити пошук опорних зображень в списку 0 для опорного блока для PU і може також здійснити пошук опорних зображень в списку 1 для іншого опорного блока для PU. Модуль 122 оцінки руху може потім згенерувати опорні індекси, які вказують опорні зображення в списку 0 або списку 1, що містять опорні блоки, і вектори руху, які вказують просторові зміщення між опорними блоками і PU. Модуль 122 оцінки руху може виводити опорні індекси і вектори руху PU як інформацію руху PU. Модуль 124 компенсації руху може генерувати прогнозувальний відеоблок PU на основі опорних блоків, вказаних за допомогою інформації руху PU. У деяких випадках, модуль 122 оцінки руху не виводить повний набір інформації руху для PU в модуль 116 ентропійного кодування. Вірніше, модуль 122 оцінки руху може сигналізувати інформацію руху PU з посиланням на інформацію руху іншої PU. Наприклад, модуль 122 оцінки руху може визначити, що інформація руху PU в достатній мірі аналогічна інформації руху сусідньої PU. У цьому прикладі, модуль 122 оцінки руху може вказувати, в синтаксичній структурі, асоційованій з PU, значення, яке вказує відеодекодеру 30, що PU має таку ж інформацію руху як і сусідня PU, або має інформацію руху, яка може бути одержана з сусідніх PU. У іншому прикладі, модуль 122 оцінки руху може ідентифікувати, в синтаксичній структурі, асоційованій з PU, кандидата руху, асоційованого з сусідніми PU і різницею векторів руху (MVD). MVD вказує різницю між вектором руху PU і вектором руху вказаного кандидата руху, асоційованого з сусідньою PU. Відеодекодер 30 може використовувати вектор руху вказаного кандидата руху і MVD для визначення вектора руху PU. За допомогою посилання на інформацію руху кандидата, асоційованого з першою PU, при сигналізації інформації руху другої PU, відеокодер 20 може мати можливість сигналізації інформації руху другої PU з використанням меншої кількості бітів, ніж могло б бути потрібно в іншому випадку, щоб повідомити вектор руху. Як описано нижче, модуль 121 інтерпрогнозування може згенерувати список кандидатів для кожної PU з CU. Один або більше списків кандидатів можуть включати в себе один або більше початкових кандидатів і один або більше додаткових кандидатів, які одержані з початкових кандидатів. Як частину виконання операції кодування відносно CU, модуль 126 інтрапрогнозування може виконати інтрапрогнозування відносно PU з CU. Інтрапрогнозування може надати просторове стиснення. Коли модуль 126 інтрапрогнозування виконує інтрапрогнозування відносно PU, модуль 126 інтрапрогнозування може згенерувати дані прогнозування для PU на основі декодованих вибірок інших PU в тому ж зображенні. Дані прогнозування для PU можуть включати в себе прогнозувальний відеоблок і різні синтаксичні елементи. Модуль 126 інтрапрогнозування може виконувати інтрапрогнозування відносно PU в I-слайсах, Р-слайсах і В-слайсах. Щоб виконати інтрапрогнозування відносно PU, модуль 126 інтрапрогнозування може використовувати численні режими інтрапрогнозування, щоб згенерувати численні набори даних прогнозування для PU. Коли модуль 126 інтрапрогнозування використовує режим інтрапрогнозування, щоб згенерувати набір даних прогнозування для PU, модуль 126 інтрапрогнозування може продовжити вибірки від відеоблоків сусідніх PU через відеоблок PU в напрямку і/або з нахилом, асоційованим з режимом інтрапрогнозування. Сусідні PU можуть бути зверху, зверху і справа, зверху і зліва або зліва від PU, передбачаючи порядок кодування зліва направо, зверху вниз для PU, CU і деревовидних блоків. Модуль 126 інтрапрогнозування може використовувати різне число режимів інтрапрогнозування, наприклад 33 режими направленого інтрапрогнозування. У деяких прикладах, число режимів інтрапрогнозування може залежати від розміру PU. 12 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 60 Модуль 100 прогнозування може вибрати дані прогнозування для PU з числа даних прогнозування для PU, згенерованих модулем 124 компенсації руху, або даних прогнозування для PU, згенерованих модулем 126 інтрапрогнозування. У деяких прикладах, модуль 100 прогнозування вибирає дані прогнозування для PU на основі показників залежності спотворень від швидкості передачі з наборів даних прогнозування. Якщо модуль 100 прогнозування вибирає дані прогнозування, згенеровані модулем 126 інтрапрогнозування, модуль 100 прогнозування може сигналізувати режим інтрапрогнозування, який був використаний, щоб згенерувати дані прогнозування для PU, тобто вибраний режим інтрапрогнозування. Модуль 100 прогнозування може сигналізувати вибраний режим інтрапрогнозування різним чином. Наприклад, ймовірно, що вибраний режим інтрапрогнозування є таким же, як режим інтрапрогнозування сусідньої PU. Іншими словами, режим інтрапрогнозування сусідньої PU може бути найбільш імовірним режимом для поточної PU. Таким чином, модуль 100 прогнозування може згенерувати синтаксичний елемент для указання, що вибраний режим інтрапрогнозування є таким же, як режим інтрапрогнозування сусідньої PU. Після того, як модуль 100 прогнозування вибере дані прогнозуванняи для PU з CU, модуль 102 генерування залишку може згенерувати залишкові дані для CU за допомогою віднімання прогнозувальних відеоблоків PU з CU з відеоблока CU. Залишкові дані CU можуть включати в себе залишкові відеоблоки, які відповідають різним компонентам вибірки для вибірок у відеоблоці CU. Наприклад, залишкові дані можуть включати в себе відеоблок, який відповідає різницям між компонентами яскравості вибірок в прогнозувальних відеоблоках PU з CU і компонентами яскравості вибірок в початковому відеоблоці CU. На доповнення, залишкові дані CU можуть включати в себе залишкові відеоблоки, які відповідають різницям між компонентами кольоровості вибірок в прогнозувальних відеоблоках PU з CU і компонентами кольоровості вибірок в початковому відеоблоці CU. Модуль 100 прогнозування може виконати розбиття дерева квадрантів для того, щоб розбити залишкові відеоблоки CU на підблоки. Кожний нерозділений залишковий відеоблок може бути асоційований з іншою TU з CU. Розміри і положення залишкових відеоблоків, асоційованих з TU з CU, можуть або не можуть бути основані на розмірах і положеннях відеоблоків, асоційованих з PU з CU. Структура дерева квадрантів, відома як "залишкове дерево квадрантів" (RQT), може включати в себе вузли, асоційовані з кожним із залишкових відеоблоків. TU з CU можуть відповідати кінцевим вузлам RQT. Модуль 104 перетворення може згенерувати один або більше блоків коефіцієнтів перетворення для кожної TU з CU за допомогою застосування одного або більше перетворень до залишкового блока, асоційованого з TU. Кожний з блоків коефіцієнтів перетворення може бути 2D-матрицею коефіцієнтів перетворення. Модуль 104 перетворення може застосовувати різні перетворення до залишкових відеоблоків, асоційованих з TU. Наприклад, модуль 104 перетворення може застосовувати дискретне косинусне перетворення (DCT), направлене перетворення або принципово аналогічне перетворення до залишкового відеоблока, асоційованого з TU. Після того, як модуль 104 перетворення згенерує блок коефіцієнтів перетворення, асоційований з TU, модуль 106 квантування може квантувати коефіцієнти перетворення в блоці коефіцієнтів перетворення. Модуль 106 квантування може квантувати блок коефіцієнтів перетворення, асоційований з TU з CU, на основі значення QP, асоційованого з CU. Відеокодер 20 може асоціювати значення QP з CU різним чином. Наприклад, відеокодер 20 може виконати аналіз залежності спотворень від швидкості передачі відносно деревовидного блока, асоційованого з CU. При аналізі залежності спотворень від швидкості передачі, відеокодер 20 може генерувати численні кодовані представлення деревовидного блока за допомогою виконання операції кодування численну кількість разів відносно деревовидного блока. Відеодекодер 20 може асоціювати різні значення QP з CU, коли відеокодер 20 генерує різні кодовані представлення деревовидного блока. Відеодекодер 20 може сигналізувати, що задане значення QP асоційоване з CU, коли задане значення QP асоційоване з CU в кодованому представленні деревовидного блока, який має найменший показник залежності спотворень від швидкості передачі бітів. Модуль зворотного квантування 108 і модуль 110 зворотного перетворення можуть застосовувати зворотне квантування і зворотні перетворення до блока коефіцієнтів перетворення, відповідно, щоб реконструювати залишковий відеоблок з блока коефіцієнтів перетворення. Модуль 112 реконструкції може додати реконструйований залишковий відеоблок до відповідних вибірок з одного або більше прогнозувальних відеоблоків, згенерованих модулем 13 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 60 100 прогнозування, щоб виробити реконструйований відеоблок, асоційований з TU. За допомогою реконструювання відеоблоків для кожної TU з CU таким чином, відеокодер 20 може реконструювати відеоблок CU. Після того, як модуль 112 реконструкції реконструює відеоблок CU, модуль 113 фільтра може виконати операцію видалення блоковості для зменшення артефактів блоковості у відеоблоці, асоційованому з CU. Після виконання однієї або більше операцій видалення блоковості, модуль 113 фільтра може зберегти реконструйований відеоблок CU в буфері 114 декодованих зображень. Модуль 122 оцінки руху і модуль 124 компенсації руху можуть використовувати опорне зображення, яке містить реконструйований відеоблок, щоб виконати інтерпрогнозування відносно PU послідовних зображень. На доповнення, модуль 126 інтрапрогнозування може використовувати реконструйовані відеоблоки в буфері 114 декодованих зображень для виконання інтрапрогнозування відносно інших PU в тому ж зображенні, як і CU. Модуль 116 ентропійного кодування може приймати дані від інших функціональних компонентів відеокодера 20. Наприклад, модуль 116 ентропійного кодування може приймати блоки коефіцієнтів перетворення від модуля 106 квантування і може приймати синтаксичні елементи від модуля 100 прогнозування. Коли модуль 116 ентропійного кодування приймає дані, модуль 116 ентропійного кодування може виконати одну або більше операцій кодування, щоб згенерувати ентропійно кодовані дані. Наприклад, відеокодер 20 може виконати операцію контекстно-адаптованого кодування із змінною довжиною кодового слова (CAVLC), операцію CABAC, операцію перекодування із змінною (V2V) довжиною кодового слова, операцію залежного від синтаксису контекстно-адаптивного двійкового арифметичного кодування (SBAC), операцію кодування з ентропією розбиття по імовірнісному інтервалу (PIPE) або будь-яку іншу операцію ентропійного кодування відносно даних. Модуль 116 ентропійного кодування може виводити бітовий потік, який включає в себе ентропійно кодовані дані. Як частину виконання операції ентропійного кодування відносно даних, модуль 116 ентропійного кодування може вибрати контекстну модель. Якщо модуль 116 ентропійного кодування виконує операцію CABAC, контекстна модель може вказувати оцінки імовірностей конкретних двійкових елементів, що мають конкретні значення. У контексті CABAC, термін "двійковий елемент" використовується для посилання на біт бінаризованої версії синтаксичного елемента. Фіг. 3 є блок-схемою, яка ілюструє зразковий відеодекодер 30, який виконаний з можливістю реалізації способів цього розкриття. Фіг. 3 надається з метою роз'яснення і не є обмежувальною відносно способів, які наведені як приклад в широкому значенні і описані в цьому розкритті. З метою роз'яснення, це розкриття описує відеодекодер 30 в контексті HEVC-кодування. Однак, способи цього розкриття можуть бути застосовні до інших стандартів або способів кодування. У прикладі за фіг. 3, відеодекодер 30 включає в себе множину функціональних компонентів. Функціональні компоненти відеодекодера 30 включають в себе модуль 150 ентропійного декодування, модуль 152 прогнозування, модуль 154 зворотного квантування, модуль 156 зворотного перетворення, модуль 158 реконструкції, модуль 159 фільтра і буфер 160 декодованих зображень. Модуль 152 прогнозування включає в себе модуль 162 компенсації руху і модуль 164 інтрапрогнозування. У деяких прикладах, відеодекодер 30 може виконати прохід декодування, загалом протилежний проходу кодування, описаному відносно відеокодера 20 за фіг. 2. У інших прикладах, відеодекодер 30 може включати в себе більше, менше або інші функціональні компоненти. Відеодекодер 30 може приймати бітовий потік, який містить кодовані відеодані. Бітовий потік може включати в себе множину синтаксичних елементів. Коли відеодекодер 30 приймає бітовий потік, модуль 150 ентропійного декодування може виконати операцію синтаксичного аналізу відносно бітового потоку. В результаті виконання операції синтаксичного аналізу відносно бітового потоку, модуль 150 ентропійного декодування може витягнути синтаксичні елементи з бітового потоку. Як частину виконання операції синтаксичного аналізу, модуль 150 ентропійного декодування може ентропійно декодувати ентропійно кодовані синтаксичні елементи в бітовому потоці. Модуль 152 прогнозування, модуль 154 зворотного квантування, модуль 156 зворотного перетворення, модуль 158 реконструкції і і модуль 159 фільтра можуть виконати операцію реконструкції, яка генерує декодовані відеодані на основі синтаксичних елементів, витягнутих з бітового потоку. Як розглянуто вище, бітовий потік може містити ряд блоків NAL. Блоки NAL бітового потоку можуть включати в себе блоки NAL набору параметрів послідовності, блоки NAL набору параметрів зображення, блоки NAL SEI і т. д. Як частину виконання операції синтаксичного аналізу відносно бітового потоку, модуль 150 ентропійного декодування може виконати операції 14 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 синтаксичного аналізу, які здійснюють витягання і ентропійне декодування наборів параметрів послідовності з блоків NAL наборів параметрів послідовності, наборів параметрів зображення з блоків NAL наборів параметрів зображення, даних SEI з блоків NAL SEI і т. д. На доповнення, блоки NAL бітового потоку можуть включати в себе блоки NAL кодованого слайсу. Як частину виконання операції синтаксичного аналізу відносно бітового потоку, модуль 150 ентропійного декодування може виконати операції синтаксичного аналізу, які здійснюють витягання і ентропійне декодування кодованих слайсів з блоків NAL кодованих слайсів. Кожний з кодованих слайсів може включати в себе заголовок слайсу і дані слайсу. Заголовок слайсу може містити синтаксичні елементи, що стосуються слайсу. Синтаксичні елементи в заголовку слайсу можуть включати в себе синтаксичний елемент, який ідентифікує набір параметрів зображення, асоційований із зображенням, яке містить слайс. Модуль 150 ентропійного декодування може виконати операції ентропійного декодування, такі як операції декодування CABAC, відносно синтаксичних елементів в заголовку кодованого слайсу для відновлення заголовка слайсу. Як частину витягання даних слайсу з блоків NAL кодованого слайсу, модуль 150 ентропійного декодування може виконати операції синтаксичного аналізу, які здійснюють витягання синтаксичних елементів з кодованих CU в даних слайсу. Витягнуті синтаксичні елементи можуть включати в себе синтаксичні елементи, асоційовані з блоками коефіцієнтів перетворення. Модуль 150 ентропійного декодування може потім виконати операції декодування CABAC відносно синтаксичних елементів. Після того, як модуль 150 ентропійного декодування виконає операцію синтаксичного аналізу відносно нерозбитої CU, відеодекодер 30 може виконати операцію реконструкції відносно нерозбитої CU. Щоб виконати операцію реконструкції відносно нерозбитої CU, відеодекодер 30 може виконати операцію реконструкції відносно кожної з TU з CU. За допомогою виконання операції реконструкції для кожної TU з CU, відеодекодер 30 може реконструювати залишковий відеоблок, асоційований з CU. Як частину виконання операції реконструкції відносно TU, модуль 154 зворотного квантування може здійснити зворотне квантування, тобто деквантування, блока коефіцієнтів перетворення, асоційованого з TU. Модуль 154 зворотного квантування може здійснити зворотне квантування блока коефіцієнтів перетворення аналогічним чином для процесів зворотного перетворення, запропонованих для HEVC або заданих стандартом кодування H.264 ITU-T. Модуль 154 зворотного квантування може використовувати параметр квантування QP, обчислений відеокодером 20 для CU блока коефіцієнтів перетворення, для визначення міри квантування і, аналогічно, міри зворотного квантування для модуля 154 зворотного квантування, яку потрібно застосовувати. Після того, як модуль 154 зворотного квантування здійснить зворотне квантування блока коефіцієнтів перетворення, модуль 156 зворотного перетворення може згенерувати блок коефіцієнтів перетворення для TU, асоційованої з блоком коефіцієнтів перетворення. Модуль 156 зворотного перетворення може застосовувати зворотне перетворення для перетворення блока коефіцієнтів перетворення для того, щоб згенерувати залишковий відеоблок для TU. Наприклад, модуль 156 зворотного перетворення може застосувати зворотне DCT, зворотне цілочислове перетворення, зворотне перетворення Карунена-Лоева (KLT), зворотне обертальне перетворення, зворотне направлене перетворення або інше зворотне перетворення до блока коефіцієнтів перетворення. У деяких прикладах, модуль 156 зворотного перетворення може визначити зворотне перетворення для застосування до блока коефіцієнтів перетворення на основі сигналізації з відеокодера 20. У таких прикладах, модуль 156 зворотного перетворення може визначити зворотне перетворення на основі сигналізованого перетворення в кореневому вузлі дерева квадрантів для деревовидного блока, асоційованого з блоком коефіцієнтів перетворення. У інших прикладах, модуль 156 зворотного перетворення може вивести зворотне перетворення з однієї або більше характеристик кодування, таких як розмір блока, режим кодування або подібні. У деяких прикладах, модуль 156 зворотного перетворення може застосовувати каскадне зворотне перетворення. Якщо PU з CU була кодована з використанням інтерпрогнозування, модуль 162 компенсації руху може згенерувати список кандидатів для PU. Бітовий потік може включати в себе дані, які ідентифікують положення вибраного кандидата в списку кандидатів PU. Після генерування списку кандидатів для PU, модуль 162 компенсації руху може згенерувати прогнозувальний відеоблок для PU на основі одного або більше опорних блоків, вказаних за допомогою інформації руху PU. Опорні блоки PU можуть бути в інших часових зображеннях, ніж PU. 15 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 60 Модуль 162 компенсації руху може визначити інформацію руху PU на основі інформації руху, вказаної вибраним кандидатом в списку кандидатів PU. У деяких прикладах, модуль 162 компенсації руху може скоректувати прогнозувальний відеоблок PU за допомогою виконання інтерполяції на основі інтерполяційних фільтрів. Ідентифікатори для інтерполяційних фільтрів, які повинні бути використані для компенсації руху з точністю підвибірки, можуть бути включені в синтаксичні елементи. Модуль 162 компенсації руху може використовувати ті ж інтерполяційні фільтри, що використовуються відеокодером 20 під час генерування прогнозувального відеоблока PU, щоб обчислити інтерпольовані значення для субцілочислових вибірок опорного блока. Модуль 162 компенсації руху може визначити інтерполяційні фільтри, використані відеокодером 20, згідно з прийнятою синтаксичної інформації і використовувати інтерполяційні фільтри, щоб виробити прогнозований відеоблок. Якщо PU кодована з використанням інтрапрогнозування, модуль 164 інтрапрогнозування може виконати інтрапрогнозування, щоб згенерувати прогнозувальний відеоблок для PU. Наприклад, модуль 164 інтрапрогнозування може визначити режим інтрапрогнозування для PU на основі синтаксичних елементів в бітовому потоці. Бітовий потік може включати в себе синтаксичні елементи, які модуль 164 інтрапрогнозування може використовувати для визначення режиму інтрапрогнозування PU. У деяких випадках, синтаксичні елементи можуть вказувати, що модуль 164 інтрапрогнозування повинен використовувати режим іншої PU для визначення режиму інтрапрогнозування поточної PU. Наприклад, може бути ймовірно, що режим інтрапрогнозування поточної PU є таким же, як режим інтрапрогнозування сусідньої PU. Іншими словами, режим інтрапрогнозування сусідньої PU може бути найбільш імовірним режимом для поточної PU. Тому, в цьому прикладі, бітовий потік може включати в себе невеликий синтаксичний елемент, який вказує, що режим інтрапрогнозування PU є таким же, як режим інтрапрогнозування сусідньої PU. Модуль 164 інтрапрогнозування може потім використовувати режим інтрапрогнозування, щоб згенерувати дані прогнозування (наприклад, прогнозувальні вибірки) для PU на основі відеоблоків просторово сусідніх PU. Модуль 158 реконструкції може використовувати залишкові відеоблоки, асоційовані з TU з CU, і прогнозувальні відеоблоки PU з CU, тобто або дані інтрапрогнозування, або дані інтерпрогнозування, у міру необхідності, щоб реконструювати відеоблок CU. Таким чином, відеодекодер 30 може згенерувати прогнозувальний відеоблок і залишковий відеоблок на основі синтаксичних елементів в бітовому потоці і може згенерувати відеоблок на основі прогнозувального відеоблока і залишкового відеоблока. Після того, як модуль 158 реконструкції реконструює відеоблок CU, модуль 159 фільтра може виконати одну або більше операцій фільтрації для поліпшення загальної якості кодування. Приклади операцій фільтрації, виконуваних модулем 159 фільтра, можуть включати в себе одну або більше операцій фільтрації для видалення блоковості, операцій адаптивної фільтрації зсуву вибірок і операцій адаптивної контурної фільтрації. Після того, як модуль 159 фільтра виконає операції фільтрації, відеодекодер 30 може зберегти відеоблок CU в буфері 160 декодованих зображень. Буфер 160 декодованих зображень може надати опорні зображення для подальшої компенсації руху, інтрапрогнозування і представлення на пристрої відображення, такому як пристрій 32 відображення за фіг. 1. Наприклад, відеодекодер 30 може виконати, на основі відеоблоків в буфері 160 декодованих зображень, операції інтрапрогнозування або інтерпрогнозування відносно PU інших CU. Фіг. 4 є принциповою схемою, яка ілюструє зразкову конфігурацію модуля 121 інтерпрогнозування. Модуль 121 інтерпрогнозування може розбити поточну CU на PU згідно з численними режимами розбиття. Наприклад, модуль 121 інтерпрогнозування може розбити поточну CU на PU згідно з режимами розбиття 2N×2N, 2N×N, N×2N і N×N. Модуль 121 інтерпрогнозування може виконати цілочислову оцінку руху (IME) і потім виконати дробову оцінку руху (FME) відносно кожної з PU. Коли модуль 121 інтерпрогнозування виконує IME відносно PU, модуль 121 інтерпрогнозування може здійснити пошук одного або більше опорних зображень для опорного блока для PU. Після виявлення опорного блока для PU, модуль 121 інтерпрогнозування може згенерувати вектор руху, який вказує, з цілочисловою точністю, просторове зміщення між PU і опорним блоком для PU. Коли модуль 121 інтерпрогнозування виконує FME аідносно PU, модуль 121 інтерпрогнозування може скоректувати вектор руху, згенерований за допомогою виконання IME відносно PU. Вектор руху, згенерований за допомогою виконання FME відносно PU, може мати дробову точність (наприклад, точність в 1/2 піксела, точність в 1/4 піксела і т. д.). Після генерування вектора руху для PU, модуль 121 інтерпрогнозування може використовувати вектор руху для PU, щоб згенерувати прогнозувальний відеоблок для PU. 16 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 60 У деяких прикладах, де модуль 121 інтерпрогнозування сигналізує інформацію руху PU з використанням режиму AMVP, модуль 121 інтерпрогнозування може згенерувати список кандидатів для PU. Список кандидатів може включати в себе один або більше початкових кандидатів і один або більше додаткових кандидатів, які одержані з початкових кандидатів. Після генерування списку кандидатів для PU, модуль 121 інтерпрогнозування може вибрати кандидата зі списку кандидатів і згенерувати різницю векторів руху (MVD) для PU. MVD для PU може вказувати різницю між вектором руху, вказаним вибраним кандидатом, і вектором руху, згенерованим для PU з використанням IME і FME. У таких прикладах, модуль 121 інтерпрогнозування може виводити індекс кандидатів, який ідентифікує розміщення в списку кандидатів вибраного кандидата. Модуль 121 інтерпрогнозування може також виводити MVD для PU. Фіг. 6, описана детально нижче, ілюструє зразкову операцію AMVP. На доповнення до генерування інформації руху для PU за допомогою виконання IME або FME відносно PU, модуль 121 інтерпрогнозування може виконати операції злиття відносно кожної з PU. Коли модуль 121 інтерпрогнозування виконує операцію злиття відносно PU, модуль 121 інтерпрогнозування може згенерувати список кандидатів для PU. Список кандидатів для PU може включати в себе один або більш початкових кандидатів і один або більше додаткових кандидатів, які одержані з початкових кандидатів. Початкові кандидати в списку кандидатів можуть включати в себе одного або більше просторових кандидатів і часового кандидата. Просторові кандидати можуть вказувати інформацію руху інших PU в поточному зображенні. Часовий кандидат може бути оснований на інформації руху ідентично розташованої PU зображення, відмінного від поточного зображення. Часовий кандидат може також бути названий як часовий предиктор вектора руху (TMVP). Після генерування списку кандидатів, модуль 121 інтерпрогнозування може вибрати одного з кандидатів зі списку кандидатів. Модуль 121 інтерпрогнозування може, наприклад, вибрати кандидата зі списку кандидатів для досягнення бажаної якості реконструйованого відео і/або стиснення. Модуль 121 інтерпрогнозування може потім згенерувати прогнозувальний відеоблок для PU на основі опорних блоків, вказаних за допомогою інформації руху PU. У режимі злиття, інформація руху PU може бути такою ж, як інформація руху, вказана вибраним кандидатом. Фіг. 5, описана нижче, є схемою послідовності операцій, яка ілюструє зразкову операцію злиття. Після генерування прогнозувального відеоблока для PU на основі IME і FME і після генерування прогнозувального відеоблока для PU на основі операції злиття, модуль 121 інтерпрогнозування може вибрати прогнозувальний відеоблок, згенерований за допомогою операції FME, або прогнозувальний відеоблок, згенерований за допомогою операції злиття. У деяких прикладах, модуль 121 інтерпрогнозування може вибрати прогнозувальний відеоблок для PU на основі аналізу залежності спотворень від швидкості передачі прогнозувального відеоблока, згенерованого за допомогою операції FME, і прогнозувального відеоблока, згенерованого за допомогою операції злиття. Після того, як модуль 121 інтерпрогнозування вибрав прогнозувальні відеоблоки для PU, згенерованих за допомогою розбиття поточної CU згідно з кожним з режимів розбиття, модуль 121 інтерпрогнозування може вибрати режим розбиття для поточної CU. У деяких прикладах, модуль 121 інтерпрогнозування може вибрати режим розбиття для поточної PU на основі аналізу залежності спотворень від швидкості передачі вибраних прогнозувальних відеоблоків для PU, згенерованих за допомогою розбиття поточної CU згідно з кожним з режимів розбиття. Модуль 121 інтерпрогнозування може виводити прогнозувальні відеоблоки, асоційовані з PU, які належать вибраному режиму розбиття, в модуль 102 генерування залишку. Модуль 121 інтерпрогнозування може виводити синтаксичні елементи, що вказують інформацію руху PU, які належать вибраному режиму розбиття, в модуль 116 ентропійного кодування. У прикладі за фіг. 4, модуль 121 інтерпрогнозування включає в себе модулі 180A-180N IME (разом "модулі 180 IME"), модулі FME 182A-182N (разом "модулі 182 FME"), модулі 184A-184N злиття (разом "модулі 184 злиття"), модулі 186A-186N вибору режиму PU (разом "модулі 186 вибору режиму PU") і модуль 188 вибору режиму CU. Модулі 180 IME, модулі 182 FME і модулі 184 злиття можуть виконувати операції IME, операції FME і операції злиття відносно PU поточної CU. Приклад за фіг. 4 ілюструє модуль 121 інтерпрогнозування як такий, що включає в себе окремі модулі 180 IME, модулі 182 FME і модуль 184 злиття для кожної PU кожного режиму розбиття CU. У інших прикладах, модуль 121 інтерпрогнозування не включає в себе окремі модулі 180 IME, модулі 182 FME і модуль 184 злиття для кожної PU кожного режиму розбиття CU. Як проілюстровано в прикладі за фіг. 4, модуль 180A IME, модуль 182A FME і модуль 184A злиття можуть виконати операцію IME, операцію FME і операцію злиття відносно PU, згенерованої за допомогою розбиття CU згідно з режимом розбиття 2N×2N. Модуль 186A 17 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 вибору режиму PU може вибрати один з прогнозувальних відеоблоків, згенерованих модулем 180A IME, модулем 182A FME і модулем 184A злиття. Модуль 180B IME, модуль 182B FME і модуль 184B злиття можуть виконати операцію IME, операцію FME і операцію злиття відносно лівої PU, згенерованої за допомогою розбиття CU згідно з режимом розбиття N×2N. Модуль 186B вибору режиму PU може вибрати один з прогнозувальних відеоблоків, згенерованих модулем 180B IME, модулем 182B FME і модулем 184B злиття. Модуль 180C IME, модуль 182C FME і модуль 184C злиття можуть виконати операцію IME, операцію FME і операцію злиття ввдносно правої PU, згенерованої за допомогою розбиття CU згідно з режимом розбиття N×2N. Модуль 186C вибору режиму PU може вибрати один з прогнозувальних відеоблоків, згенерованих модулем 180C IME, модулем 182C FME і модулем 184C злиття. Модуль 180N IME, модуль 182N FME і модуль 184N злиття можуть виконати операцію IME, операцію FME і операцію злиття відносно нижньої PU, згенерованої за допомогою розбиття CU згідно з режимом розбиття N×N. Модуль 186N вибору режиму PU може вибрати один з прогнозувальних відеоблоків, згенерованих модулем 180N IME, модулем 182N FME і модулем 184N злиття. Модулі 186 вибору режиму PU можуть бути сконфігуровані для вибору прогнозувальних відеоблоків, які дають бажану якість реконструйованого відео і/або бажані коефіцієнти стиснення. Модулі вибору режиму PU можуть, наприклад, вибирати прогнозувальні відеоблоки на основі аналізу залежності спотворень від швидкості передачі численних можливих прогнозувальних відеоблоків і вибирати прогнозувальний відеоблок, який надає найкраще співвідношення швидкість передачі-спотворення для заданого сценарію кодування. Як один приклад, для застосувань з обмеженою смугою пропускання, модулі 186 вибору режиму PU можуть схилятися до вибору прогнозувальних відеоблоків, які збільшують коефіцієнт стиснення, тоді як для інших застосувань, модулі 186 вибору режиму PU можуть схилятися до вибору прогнозувальних відеоблоків, які збільшують якість реконструйованого відео. Після того, як модулі 186 вибору режиму PU вибирають прогнозувальні відеоблоки для PU поточної CU, модуль 188 вибору режиму CU вибирає режим розбиття для поточної CU і виводить прогнозувальні відеоблоки і інформацію руху PU, що належать вибраному режиму розбиття. Фіг. 5 є схемою послідовності операцій, яка ілюструє зразкову операцію 200 злиття. Відеокодер, такий як відеокодер 20, може виконати операцію 200 злиття. У інших прикладах, відеокодер може виконувати операції злиття, відмінні від операції 200 злиття. Наприклад, в інших прикладах, відеокодер може виконати операцію злиття, в якій відеокодер виконує більше, менше або інші етапи, ніж в операції 200 злиття. У інших прикладах, відеокодер може виконувати етапи операції 200 злиття в інших порядках або паралельно. Кодер може також виконати операцію 200 злиття відносно PU, кодованої в режимі пропуску. Після того, як відеокодер починає операцію 200 злиття, відеокодер може згенерувати список кандидатів для поточної PU (202). Відеокодер може згенерувати список кандидатів для поточної PU різним чином. Наприклад, відеокодер може згенерувати список кандидатів для поточної PU, згідно з одним із зразкових способів, описаних нижче стосовно фіг. 8-13B. Як стисло розглянуто вище, список кандидатів для поточної PU може включати в себе часового кандидата. Часовий кандидат може вказувати інформацію руху ідентично розташованої PU. Ідентично розташована PU може бути просторово ідентично розташована з поточною PU, але знаходитися в опорному зображенні замість поточного зображення. У цьому розкритті опорне зображення, яке включає в себе ідентично розташовану PU, може називатися релевантним опорним зображенням. У цьому розкритті індекс опорного зображення релевантного опорного зображення може називатися індексом релевантного опорного зображення. Як описано вище, поточне зображення може бути асоційоване з одним або більше списками опорних зображень, наприклад списком 0, списком 1 і т. д. Індекс опорного зображення може вказувати опорне зображення за допомогою указання положення опорного зображення в одному зі списків опорних зображень. У деяких прикладах, поточне зображення може бути асоційоване з об'єднаним списком опорних зображень. У деяких звичайних відеокодерах, індекс релевантного опорного зображення є індексом опорного зображення PU, яка покриває вихідне розміщення опорного індексу, асоційоване з поточною PU. У таких звичайних відеокодерах, вихідне розміщення опорного індексу, асоційоване з поточною PU, знаходиться відразу зліва від поточної PU або відразу зверху поточної PU. У цьому розкритті, PU може "покривати" конкретне розміщення, якщо відеоблок, асоційований з PU, включає в себе конкретне розміщення. У таких звичайних відеокодерах, 18 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 60 відеокодер може використовувати індекс опорного зображення зі значенням 0, якщо вихідне розміщення опорного індексу недоступне. Однак, можуть бути випадки, коли вихідне розміщення опорного індексу, асоційоване з поточною PU, знаходиться всередині поточної CU. У таких випадках, PU, що покриває вихідне розміщення опорного індексу, асоційоване з поточною PU, може розглядатися як доступна, якщо PU знаходиться вище або зліва від поточної CU. Однак, відеокодер може бути повинен здійснити доступ до інформації руху іншої PU поточної CU для того, щоб визначити опорне зображення, що містить ідентично розташовану PU. Тому, такі відеокодери можуть використовувати інформацію руху (тобто індекс опорного зображення) PU, яка належить поточній CU, щоб згенерувати часового кандидата для поточної PU. Іншими словами, такими відеокодери можуть згенерувати часового кандидата з використанням інформації руху PU, яка належить поточній CU. Отже, відеокодер може не мати можливості паралельного генерування списків кандидатів для поточної PU і PU, яка покриває вихідне розміщення опорного індексу, асоційоване з поточною PU. Відповідно до методів цього розкриття, відеокодер може в явній формі задати, без посилання на індекс опорного зображення якої-небудь іншої PU, індекс релевантного опорного зображення. Це може забезпечити відеокодеру можливість паралельного генерування списків кандидатів для поточної PU і інших PU поточної CU. Оскільки відеокодер в явній формі задає індекс релевантного опорного зображення, індекс релевантного опорного зображення не основується на інформації руху будь-якої іншої PU поточної CU. У деяких прикладах, де відеокодер в явній формі задає індекс релевантного опорного зображення, відеокодер може завжди задавати індекс релевантного опорного зображення як фіксований попередньо заданий за умовчанням індекс опорного зображення, такий як 0. Таким чином відеокодер може згенерувати часового кандидата на основі інформації руху ідентично розташованої PU в опорному кадрі, вказаному заданим за умовчанням індексом опорного зображення, і може включати часового кандидата в список кандидатів поточної CU. У деяких прикладах, де відеокодер в явній формі задає індекс релевантного опорного зображення, відеокодер може в явній формі сигналізувати індекс релевантного опорного зображення в синтаксичній структурі, такій як заголовок зображення, заголовок слайсу, APS або інша синтаксична структура. У цьому прикладі, відеокодер може сигналізувати індекс релевантного опорного зображення для кожної LCU, CU, PU, TU або іншого типу підблока. Наприклад, відеокодер може сигналізувати, що індекси релевантного опорного зображення для кожної PU з CU дорівнюють "1". У деяких прикладах, як і прикладах, описаних нижче, з посиланням на фіг. 9A-9F і 10A-F, індекс релевантного опорного зображення може бути заданий в неявній формі замість явної форми. У таких прикладах, відеокодер може генерувати кожного часового кандидата в списку кандидатів для PU поточної CU з використанням інформації руху PU в опорних зображеннях, вказаних індексами опорних зображень PU, які покривають розміщення поза поточною CU, навіть якщо такі розміщення знаходяться не суворо поруч з поточними PU. Після генерування списку кандидатів для поточної PU, відеокодер може згенерувати прогнозувальний відеоблок, асоційований з кандидатами в списку кандидатів (204). Відеокодер може згенерувати прогнозувальний відеоблок, асоційований з кандидатом, за допомогою визначення інформації руху поточної PU на основі інформації руху вказаного кандидата і потім генерування прогнозувального відеоблока на основі одного або більше опорних блоків, вказаних за допомогою інформації руху поточної PU. Відеокодер може потім вибрати одного з кандидатів зі списку кандидатів (206). Відеокодер може вибрати кандидата різним чином. Наприклад, відеокодер може вибрати одного з кандидатів на основі аналізу залежності спотворень від швидкості передачі по кожному з прогнозувальних відеоблоків, асоційованих з кандидатами. Після вибору кандидата, відеокодер може вивести індекс кандидата (208). Індекс кандидата може вказувати положення вибраного кандидата в списку кандидатів. У деяких прикладах, індекс кандидата може бути позначений як "merge_idx". Фіг. 6 є схемою послідовності операцій, яка ілюструє зразкову операцію 210 AMVP. Відеокодер, такий як відеокодер 20, може виконати операцію 210 AMVP. Фіг. 6 є лише одним прикладом операції AMVP. Після того, як відеокодер починає операцію 210 AMVP, відеокодер може згенерувати один або більше векторів руху для поточної PU (211). Відеокодер може виконати цілочислову оцінку руху або дробову оцінку руху, щоб згенерувати вектори руху для поточної PU. Як описано вище, поточне зображення може бути асоційоване з двома списками опорних зображень, списком 0 і списком 1. Якщо поточна PU прогнозована за допомогою однонаправленого прогнозування, 19 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 60 відеокодер може згенерувати вектор руху списку 0 або вектор руху списку 1 для поточної PU. Вектор руху списку 0 може вказувати просторове зміщення між відеоблоком поточної PU і опорним блоком в опорному зображенні в списку 0. Вектор руху списку 1 може вказувати просторове зміщення між відеоблоком поточної PU і опорним блоком в опорному зображенні в списку 1. Якщо поточна PU прогнозована за допомогою двонаправленого прогнозування, відеокодер може згенерувати вектор руху списку 0 і вектор руху списку 1 для поточної PU. Після генерування вектора руху або векторів руху для поточної PU, відеокодер може згенерувати прогнозувальний відеоблок для поточної PU (212). Відеокодер може згенерувати прогнозувальний відеоблок для поточної PU на основі одного або більше опорних блоків, вказаних за допомогою одного або більше векторів руху для поточної PU. На доповнення, відеокодер може згенерувати список кандидатів для поточної PU (213). Відеокодер може згенерувати список кандидатів для поточної PU різним чином. Наприклад, відеокодер може згенерувати список кандидатів для поточної PU, згідно з одним або більше із зразкових способів, описаних нижче стосовно фіг. 8-13B. В деяких прикладах, коли відеокодер генерує список кандидатів в операції 210 AMVP, список кандидатів може бути обмежений двома кандидатами. На відміну від цього, коли відеокодер генерує список кандидатів в операції злиття, список кандидатів може включати в себе більше кандидатів (наприклад, п'ять кандидатів). Після генерування списку кандидатів для поточної PU, відеокодер може згенерувати одну або більше різниць векторів руху (MVD) для кожного кандидата в списку кандидатів (214). Відеокодер може згенерувати різницю векторів руху для кандидата за допомогою визначення різниці між вектором руху, вказаним кандидатом, і відповідним вектором руху поточної PU. Якщо поточна PU прогнозована за допомогою однонаправленого прогнозування, відеокодер може згенерувати одну MVD для кожного кандидата. Якщо поточна PU прогнозована за допомогою двонаправленого прогнозування, відеокодер може згенерувати дві MVD для кожного кандидата. Перша MVD може вказувати різницю між вектором руху кандидата і вектором руху списку 0 поточної PU. Друга MVD може вказувати різницю між вектором руху кандидата і вектором руху списку 1 поточної PU. Відеокодер може потім вибрати одного з кандидатів зі списку кандидатів (215). Відеокодер може вибрати одного або більше кандидатів різним чином. Наприклад, відеокодер може вибрати кандидата, який має асоційований вектор руху, який найбільш точно співпадає з вектором руху, який повинен бути кодований, що може зменшити число бітів, необхідних для представлення різниці векторів руху для кандидата. Після вибору одного або більше кандидатів, відеокодер може виводити один або більше індексів опорного зображення для поточної PU, один або більше індексів кандидатів і одну або більше різниць векторів руху для одного або більше вибраних кандидатів (216). У випадках, коли поточне зображення асоційоване з двома списками опорних зображень, списком 0 і списком 1, і поточна PU прогнозована за допомогою однонаправленого прогнозування, відеокодер може виводити індекс опорного зображення для списку 0 ("ref_idx_10") або списку 1 ("ref_idx_11"). Відеокодер може також виводити індекс кандидата ("mvp_10_flag"), який вказує положення вибраного кандидата в списку кандидатів для вектора руху списку 0 поточної PU. Як альтернатива, відеокодер може виводити індекс кандидата ("mvp_11_flag"), який вказує положення вибраного кандидата в списку кандидатів для вектора руху списку 1 поточної PU. Відеокодер може також виводити MVD для вектора руху списку 0 або вектора руху списку 1 поточної PU. У випадках, коли поточне зображення асоційоване з двома списками опорних зображень, списком 0 і списком 1, і поточна PU прогнозована за допомогою двонаправленого прогнозування, відеокодер може виводити індекс опорного зображення для списку 0 ("ref_idx_10") і індекс опорного зображення для списку 1 ("ref_idx_11"). Відеокодер може також виводити індекс кандидата ("mvp_10_flag"), який вказує положення вибраного кандидата в списку кандидатів для вектора руху списку 0 поточної PU. На доповнення, відеокодер може виводити індекс кандидата ("mvp_11_flag"), який вказує положення вибраного кандидата в списку кандидатів для вектора руху списку 1 поточної PU. Відеокодер може також виводити MVD для вектора руху списку 0 поточної PU і MVD для вектора руху списку 1 поточної PU. Фіг. 7 є схемою послідовності операцій, яка ілюструє зразкову операцію 220 компенсації руху, виконувану відеодекодером, таким як відеодекодер 30. Фіг. 7 є лише одним прикладом операції компенсації руху. Коли відеодекодер виконує операцію 220 компенсації руху, відеодекодер може прийняти указання вибраного кандидата для поточної PU (222). Наприклад, відеодекодер може прийняти індекс кандидата, який вказує положення вибраного кандидата всередині списку кандидатів для поточної PU. 20 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 60 Якщо інформація руху поточної PU кодована з використанням режиму AMVP і поточна PU прогнозована за допомогою двонаправленого прогнозування, відеодекодер може прийняти перший індекс кандидата і другий індекс кандидата. Перший індекс кандидата вказує положення вибраного кандидата в списку кандидатів для вектора руху списку 0 поточної PU. Другий індекс кандидата вказує положення вибраного кандидата в списку кандидатів для вектора руху списку 1 поточної PU. У деяких прикладах, для ідентифікації обох індексів кандидатів може бути використаний один синтаксичний елемент. На доповнення, відеодекодер може згенерувати список кандидатів для поточної PU (224). Відеодекодер може згенерувати такий список кандидатів для поточної PU різним чином. Наприклад, відеодекодер може використати способи, описані нижче з посиланням на фіг. 8-15, щоб згенерувати список кандидатів для поточної PU. Коли відеодекодер генерує часового кандидата для списку кандидатів, відеодекодер може в явній формі або неявній формі задати індекс опорного зображення, який ідентифікує опорне зображення, яке включає в себе ідентично розташовану PU, як описано вище стосовно фіг. 5. Після генерування списку кандидатів для поточної PU, відеодекодер може визначити інформацію руху поточної PU на основі інформації руху, вказаної одним або більше вибраними кандидатами в списку кандидатів для поточної PU (225). Наприклад, якщо інформація руху поточного PU кодована з використанням режиму злиття, інформація руху поточної PU може бути такою ж, як інформація руху, вказана вибраним кандидатом. Якщо інформація руху поточної PU кодована з використанням режиму AMVP, відеодекодер може використовувати один або більше векторів руху, вказаних вибраним кандидатом або кандидатами, і одну або більше MVD, вказаних в бітовому потоці, для реконструкції вектора руху або векторів руху поточної PU. Індекс(и) опорного зображення і покажчик(и) напрямку прогнозування поточної PU можуть бути такими ж, як індекс(и) опорного зображення і покажчик(и) напрямку прогнозування одного або більше вибраних кандидатів. Після визначення інформації руху для поточної PU, відеодекодер може згенерувати прогнозувальний відеоблок для поточної PU на основі одного або більше опорних блоків, вказаних за допомогою інформації руху поточної PU (226). Інформація руху сусіднього елемента використовується відносно розміщення поточного відеоблока (плюс MVD з AMVP). Іншими словами, MV сусіднього елемента посилається на рух відносно сусіднього елемента. MV поточного блока посилається на рух відносно поточного блока. Так, якщо поточний блок запозичує інформацію руху сусідніх елементів, запозичений MV задає рух відносно поточного блока (несусіднього елемента, з якого він був запозичений). Фіг. 8 є принциповою схемою, яка ілюструє CU 250 і зразкові розміщення 252A-E кандидатів, асоційовані з CU 250. У цьому розкритті розміщення 252A-252E кандидатів можуть разом називатися розміщеннями 252 кандидатів. Розміщення 252 кандидатів являють собою просторових кандидатів, які знаходяться в тому ж зображенні, як і CU 250. Розміщення 252A кандидата розміщується зліва від CU 250. Розміщення 252B кандидата розміщується зверху CU 250. Розміщення 252C кандидата розміщується зверху справа від CU 250. Розміщення 252D кандидата розміщується знизу зліва від CU 250. Розміщення 252E кандидата розміщується зверху зліва від CU 250. Фіг. 8 буде використана для надання прикладів того, як модуль 121 інтерпрогнозування і модуль 162 компенсації руху можуть генерувати списки кандидатів. Приклади нижче будуть роз'яснені з посиланням на модуль 121 інтерпрогнозування, але потрібно розуміти, що модуль 162 компенсації руху може реалізувати ті ж способи і, таким чином, згенерувати такий же список кандидатів. Фіг. 9 є схемою послідовності операцій, яка ілюструє зразковий спосіб для формування списку кандидатів згідно зі способами цього розкриття. Способи за фіг. 9 будуть описані з посиланням на список, який включає в себе п'ять кандидатів, хоч способи, описані в цьому документі, можуть також бути використані зі списками інших розмірів. Кожний з п'яти кандидатів може мати індекс злиття (наприклад, 0-4). Способи за фіг. 9 будуть описані з посиланням на типовий відеокодер. Типовим відеокодером може, наприклад, бути відеокодер, такий як відеокодер 20, або відеодекодер, такий як відеодекодер 30. Щоб сформувати список кандидатів згідно з прикладом за фіг. 9, відеокодер спочатку розглядає чотири просторових кандидати (902). Чотири просторових кандидати можуть, наприклад, включати в себе розміщення 252A, 252В, 252C і 252D кандидатів. Чотири просторових кандидати відповідають інформації руху чотирьох PU в тому ж зображенні, що і поточна CU (наприклад, CU 250). Відеокодер може розглядати чотири просторових кандидати в списку в конкретному порядку. Наприклад, розміщення 252A кандидата може бути розглянуте першим. Якщо розміщення 252A кандидата доступне, то розміщенню 252A кандидата може бути наданий індекс злиття 0. Якщо розміщення 252A кандидата недоступне, то відеокодер може не включати розміщення 252A кандидата в список кандидатів. Розміщення кандидата 21 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 може бути недоступне по різних причинах. Наприклад, розміщення кандидата може бути недоступне, якщо розміщення кандидата не знаходиться всередині поточного зображення. У іншому прикладі, розміщення кандидата може бути недоступне, якщо розміщення кандидата прогнозоване за допомогою інтрапрогнозування. У іншому прикладі, розміщення кандидата може бути недоступне, якщо розміщення кандидата знаходиться в іншому слайсі, ніж поточна CU. Після розгляду розміщення 252A кандидата, відеокодер може далі розглядати розміщення 252B кандидата. Якщо розміщення 252B кандидата і доступно, і відрізняється від розміщення 252A кандидата, то відеокодер може додати розміщення 252B кандидата до списку кандидатів. У цьому конкретному контексті, терміни "однаковий" і "відмінний" посилаються на інформацію руху, асоційовану з розміщенням кандидата. Таким чином, два розміщення кандидатів розглядаються як однакові, якщо вони мають однакову інформацію руху, і розглядаються як різні, якщо вони мають різну інформацію руху. Якщо розміщення 252A було недоступне, то відеокодер може надати розміщенню 252B кандидата індекс злиття 0. Якщо розміщення 252A було доступне, то відеокодер може надати розміщенню 252B кандидата індекс злиття 1. Якщо розміщення 252B кандидата або недоступно, або є таким же, як розміщення 252A кандидата, то відеокодер пропускає розміщення 252B кандидата і не включає його в список кандидатів. Аналогічним чином відеокодером розглядається розміщення 252C кандидата для включення в список. Якщо розміщення 252C кандидата і доступно, і не таке ж, як розміщення 252B і 252A кандидатів, то відеокодер надає розміщенню 252C кандидата наступний доступний індекс злиття. Якщо розміщення 252C кандидата або недоступно, або не відрізняється від щонайменше одного з розміщень 252A і 252B кандидатів, то відеокодер не включає розміщення 252C кандидата в список кандидатів. Далі відеокодером розглядається розміщення 252D кандидата. Якщо розміщення 252D кандидата і доступно, і не таке ж, як розміщення 252A, 252B і 252C кандидатів, то відеокодер надає розміщенню 252D кандидата наступний доступний індекс злиття. Якщо розміщення 252D кандидата або недоступно, або не відрізняється від щонайменше одного з розміщень 252A, 252B і 252C кандидатів, то відеокодер не включає розміщення 252D кандидата в список кандидатів. Хоч вищенаведений приклад загалом описує кандидатів 252A-D, що розглядаються окремо для включення в список кандидатів, в деяких реалізаціях, всі з кандидатів 252A-D можуть бути спочатку додані в список кандидатів з подальшим видаленням дублікатів зі списку кандидатів. Після того, як відеокодер розгляне перші чотири просторових кандидати, список кандидатів може включати в себе чотири просторових кандидати або список може включати в себе менше, ніж чотири просторових кандидати. Якщо список включає в себе чотири просторових кандидати (904, ТАК), то відеокодер розглядає часового кандидата (906). Часовий кандидат може відповідати інформації руху ідентично розташованої PU зображення, відмінного від поточного зображення. Якщо часовий кандидат і доступний, і відрізняється від перших чотирьох просторових кандидатів, то відеокодер надає часовому кандидату індекс злиття 4. Якщо часовий кандидат або недоступний, або такий же, як один з перших чотирьох просторових кандидатів, то відеокодер не включає часового кандидата в список кандидатів. Таким чином, після того, як відеокодер розгляне часового кандидата (906), список кандидатів може включати в себе п'ять кандидатів (перші чотири просторових кандидати, розглянуті в блоці 902, і часового кандидата, розглянутого в блоці 904) або може включати в себе чотири кандидати (перші чотири просторових кандидати, розглянуті в блоці 902). Якщо список кандидатів включає в себе п'ять кандидатів (908, ТАК), то відеокодер закінчує формування списку. Якщо список кандидатів включає в себе чотири кандидати (908, НІ), то відеокодерможе розглянути п'ятого просторового кандидата (910). П'ятий просторовий кандидат може, наприклад, відповідати розміщенню 252E кандидата. Якщо кандидат в розміщенні 252E і доступний, і відрізняється від кандидатів в розміщеннях 252A, 252В, 252C і 252D, то відеокодер може додати в список кандидатів п'ятого просторового кандидата, якому наданий індекс злиття 4. Якщо кандидат в розміщенні 252E або недоступний, або не відрізняється від одного з розміщень 252A, 252В, 252C і 252D кандидатів, то відеокодер може не включати кандидата в розміщенні 252E в список кандидатів. Таким чином, після розгляду п'ятого просторового кандидата (910), список може включати в себе п'ять кандидатів (перші чотири просторових кандидати, розглянуті в блоці 902, і п'ятого просторового кандидата, розглянутого в блоці 910) або може включати в себе чотири кандидати (перші чотири просторових кандидати, розглянуті в блоці 902). Якщо список кандидатів включає в себе п'ять кандидатів (912, ТАК), то відеокодер закінчує генерування списку кандидатів. Якщо список кандидатів включає в себе чотири кандидати (912, 22 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 60 НІ), то відеокодер додає згенерованих кандидатів (914), поки список не буде включати в себе п'ять кандидатів (916, ТАК). Якщо після того, як відеокодер розгляне перші чотири просторових кандидати, список включає в себе менше, ніж чотири просторових кандидати (904, НІ), то відеокодер може розглянути п'ятого просторового кандидата (918). П'ятий просторовий кандидат може, наприклад, відповідати розміщенню 252E кандидата. Якщо кандидат в розміщенні 252E і доступний, і відрізняється від кандидатів, вже включених в список кандидатів, то відеокодер може додати в список кандидатів п'ятого просторового кандидата, якому наданий наступний доступний індекс злиття. Якщо кандидат в розміщенні 252E або недоступний, або не відрізняється від одного з кандидатів, вже включених в список кандидатів, то відеокодер може не включати кандидата в розміщенні 252E в список кандидатів. Відеодекодер може потім розглянути часового кандидата (920). Якщо часовий кандидат і доступний, і відрізняється від кандидатів, вже включених в список кандидатів, то відеокодер може додати в список кандидатів часового кандидата, якому наданий наступний доступний індекс злиття. Якщо часовий кандидат або недоступний, або не відрізняється від одного з кандидатів, вже включених в список кандидатів, то відеокодер може не включати часового кандидата в список кандидатів. Якщо після розгляду п'ятого просторового кандидата (блок 918) і часового кандидата (блок 920) список кандидатів включає в себе п'ять кандидатів (922, ТАК), то відеокодер закінчує генерування списку кандидатів. Якщо список кандидатів включає в себе менше, ніж п'ять кандидатів (922, НІ), то відеокодер додає згенерованих кандидатів (914), поки список не буде включати в себе п'ять кандидатів (916, ТАК). Згідно зі способами цього розкриття, додаткові кандидати для злиття можуть бути штучно згенеровані, виходячи з просторових і часових кандидатів, щоб зробити розмір списку кандидатів для злиття фіксованим до точно визначеного числа кандидатів для злиття, такого як п'ять в прикладі за фіг. 9 вище. Додаткові кандидати для злиття можуть включати в себе, наприклад, об'єднаного кандидата (кандидата 1) двонаправленого прогнозування для злиття, масштабованого кандидата (кандидата 2) для злиття, прогнозованого за допомогою двонаправленого прогнозування, і кандидатів для злиття з нульовими векторами/AMVPкандидатів (кандидата 3). Фіг. 10 показує приклад об'єднаного кандидата для злиття. Об'єднані кандидати з двонаправленим прогнозуванням для злиття можуть бути створені за допомогою об'єднання початкових кандидатів для злиття. Зокрема, два кандидати з початкових кандидатів, які мають mvL0 і refIdxL0 або mvL1 і refIdxL1, можуть бути використані для створення кандидатів з двонаправленим прогнозуванням для злиття. Фіг. 10 показує приклад об'єднаних кандидатів з двонаправленим прогнозуванням для злиття. На фіг. 10, два кандидати включені в список початкових кандидатів для злиття. Типом прогнозування одного кандидата є однонаправлене прогнозування списку 0 і іншим типом є однонаправлене прогнозування списку 1. В цьому прикладі, mvL0_A і ref0 підібрані зі списку 0 і mvL1_B і ref0 підібрані зі списку 1, і потім кандидат з двонаправленим прогнозуванням для злиття, який має mvL0_A і ref0 в списку 0 і mvL1_B і ref0 в списку 1, може бути створений і перевірений, чи відрізняється він від кандидатів, вже включених в список кандидатів. Якщо він відрізняється, то відеокодер може включити кандидата для злиття, прогнозованого за допомогою двонаправленого прогнозування, в список кандидатів. Фіг. 11 показує приклад масштабованого кандидата для злиття. Масштабовані кандидати з двонаправленим прогнозуванням для злиття можуть бути створені за допомогою масштабування початкових кандидатів для злиття. Зокрема, один кандидат з початкових кандидатів, який може мати mvLX і refIdxLX, може бути використаний для створення кандидатів з двонаправленим прогнозуванням для злиття. Фіг. 11 показує приклад масштабованого кандидата з двонаправленим прогнозуванням для злиття. У прикладі за фіг. 11, два кандидати включені в список початкових кандидатів для злиття. Типом прогнозування одного кандидата є однонаправлене прогнозування списку 0 і іншим типом є однонаправлене прогнозування типу 1. В цьому прикладі, mvL0_A і ref0 можуть бути підібрані зі списку 0 і ref0 може бути скопійований в опорний індекс ref0' в списку 1. Потім, mvL0'_A може бути обчислений за допомогою масштабування mvL0_A за допомогою ref0 і ref0'. Масштабування може бути залежне від відстані РОС. Потім, кандидат з двонаправленим прогнозуванням для злиття, який має mvL0_A і ref0 в списку 0 і mvL0'_A і ref0' в списку 1, може бути створений і перевірений, чи є він дублікатом, чи ні. Якщо він не є дублікатом, він може бути доданий в список кандидатів для злиття. Фіг. 12 показує приклад кандидатів для злиття з нульовими векторами. Кандидати для злиття з нульовими векторами можуть бути створені за допомогою об'єднання нульових векторів з опорними індексами, на які можуть посилатися. Фіг. 12 показує приклад кандидатів 23 UA 114802 C2 5 10 15 20 25 30 35 для злиття з нульовими векторами. Якщо кандидати з нульовими векторами не є дублікатами, вони можуть бути додані в список кандидатів для злиття. Для кожного згенерованого кандидата для злиття, інформація руху може порівнюватися з інформацією руху попереднього кандидата в списку. У одному прикладі, якщо новий згенерований кандидат відрізняється від кандидатів, вже включених в список кандидатів, то згенерований кандидат додається в список кандидатів для злиття. Цей процес визначення, чи відрізняється кандидат від кандидатів, вже включених в список кандидатів, іноді називають відсіканням. За допомогою відсікання, кожний новий згенерований кандидат може порівнюватися з існуючими кандидатами в списку, що може мати високі обчислювальні витрати. У деяких випадках, операція відсікання може включати в себе порівняння одного або більше нових кандидатів з кандидатами, що вже знаходяться в списку кандидатів, і не додавання нових кандидатів, які є дублікатами кандидатів, що вже знаходяться в списку кандидатів. У деяких випадках, операція відсікання може включати в себе додавання одного або більше нових кандидатів в список кандидатів і подальше видалення дубльованих кандидатів зі списку. Способи цього розкриття можуть, в деяких випадках, забезпечити спрощення і поліпшення в порівнянні зі способами попереднього рівня техніки. Способи цього розкриття включають в себе, в деяких випадках, етап, на якому обмежують операції відсікання для об'єднаних кандидатів з двонаправленим прогнозуванням, маючи на увазі, що тільки об'єднаний кандидат з двонаправленим прогнозуванням порівнюється з кандидатами в списку. У такому прикладі, всі інші кандидати (такі як масштабований кандидат з двонаправленим прогнозуванням, нульовий кандидат і mv_offset-кандидат) можуть не порівнюватися або відсікатися, навіть якщо інформація руху є такою ж, як деяка в списку. Способи цього розкриття можуть додатково включати в себе етапи, на яких видаляють масштабованих кандидатів з двонаправленим прогнозуванням і не розглядають їх для включення в список кандидатів. Згідно з додатковими способами цього розкриття, новий кандидат (кандидат зі зсувом) може бути доданий і інтегрований з нульовим кандидатом, щоб компенсувати будь-які можливі втрати експлуатаційних характеристик, внесені вищезазначеним спрощенням. Кандидати зі зсувом можуть бути згенеровані за допомогою додавання деякого mv зі зсувом до вектора руху існуючих кандидатів для злиття. Mv зі зсувом, які можуть бути додані, можуть включати в себе, наприклад, (4, 0), (- 4, 0), (0, 4) і (0, -4). Ці значення зсуву можуть бути додані до іншого вектора руху, щоб згенерувати кандидата зі зсувом. Можуть бути використані інші значення зсуву, ніж показані значення зсуву. Таблиця 1 нижче показує приклади mv_offset-кандидатів. Як приклади, показані в Таблиці 1, перші два кандидати походять з просторових і часових сусідніх елементів. Останні три кандидати згенеровані за допомогою зсуву існуючих кандидатів. Таблиця 1 Приклади mv_offset-кандидатів Кандидат для L0 злиття 0 mvL0_A, refL0_A 1 mvL0_B, refL0_В 2 mvL0_A+mv_offset(0), refL0_A 3 45 mvL0_A+mv_offset(1), refL0_A Примітка mvL1_A, refL1_A Існуючий Існуючий mvL1_A-mv_offset(0), refL1_A Згенерований mvL0_B+mv_offset(0), refL0_В 4 40 L1 Згенерований mvL1_A-mv_offset(1), refL1_A Згенерований Згідно зі способами цього розкриття, процедура для генерування mv_offset-кандидатів може включати в себе нижченаведені етапи. 1. Якщо існуючий кандидат для злиття є кандидатом з однонаправленим прогнозуванням, mv_offset-кандидат, оснований на існуючому кандидаті для злиття, може бути згенерований за допомогою додавання значення зсуву до вектора руху існуючого кандидата для злиття і копіювання опорного індексу, як показано кандидатом 3 для злиття Таблиці 1. 2. Якщо існуючий кандидат для злиття є кандидатом з двонаправленим прогнозуванням, mv_offset-кандидат, оснований на існуючому кандидаті для злиття, може бути згенерований за допомогою: 24 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 60 a) якщо два опорних кадри L0 і L1 з однієї сторони від поточного кадру (спереду або позаду), mv_offset-кандидат може бути згенерований за допомогою додавання значення зсуву до вектора руху, що вказує на дальній опорний кадр від поточного кадру; див., наприклад, фіг. 13A; b) якщо два опорних кадри L0 і L1 з різних сторін від поточного кадру, mv_offset-кандидат може бути згенерований за допомогою додавання значення зсуву до mv з одного списку і віднімання того ж значення зсуву з mv з іншого списку; див., наприклад, фіг. 13B. Фіг. 13A показує графічний приклад генерування mv_offset-кандидатів згідно з етапом 2(a) вище. На фіг. 13A, обидва опорних кадри (N-3 і N-2 в цьому прикладі) знаходяться з однієї сторони від поточного кадру. На фіг. 13A, обидва опорних кадри знаходяться позаду відносно поточного кадру, але ті ж способи можуть бути використані у випадку, коли обидва опорних кадри знаходяться спереду відносно поточного кадру. Опорний кадр N-2 має асоційований вектор руху mv1 і опорний кадр N-3 має асоційований вектор руху mv2. Щоб згенерувати штучного кандидата, mv_offset додається до вектора руху, що вказує на дальній опорний кадр, яким є mv2 опорного кадру N-3 в прикладі за фіг. 13A. Таким чином, в прикладі за фіг. 13A, штучно згенерований кандидат для злиття є кандидатом з двонаправленим прогнозуванням, з інформацією руху опорного кадру N-2 і інформацією руху (mv2+mv_offset), одержаною з опорного кадру N-3. Фіг. 13B показує графічний приклад генерування mv_offset-кандидатів згідно з етапом 2(b) вище. На фіг. 13B, один опорний кадр (N-1) знаходиться позаду відносно поточного кадру і один опорний кадр (N+1) знаходиться спереду відносно поточного кадру. Опорний кадр N-1 має асоційований вектор руху mv1 і опорний кадр N+1 має асоційований вектор руху mv2. Щоб згенерувати штучного кандидата, mv_offset додається до вектора руху одного опорного кадру і віднімається з вектора руху іншого опорного кадру. Таким чином, в прикладі за фіг. 13B, штучно згенерований кандидат для злиття є кандидатом з двонаправленим прогнозуванням, з інформацією руху, одержаною з опорного кадру N-1, і інформацією руху, одержаною з опорного кадру N+1. Згідно зі способами цього розкриття, нульові кандидати можуть бути інтегровані в кандидатів зі зсувом. У такому способі, нульові кандидати можуть бути додані умовно перед кандидатами зі зсувом, як представлено нижче: якщо в просторових і часових сусідніх елементах кандидат не виявлений, то перед кандидатами зі зсувом додається mv=(0, 0) refidx=0; якщо кандидат mv=(0, 0) refidx=0 вже був виявлений в просторових і часових сусідніх елементах, то перед кандидатами зі зсувом додається mv=(0, 0) refidx=1. Згідно з додатковими способами цього розкриття, підсумкові додаткові кандидати можуть включати в себе: кандидат 1: об'єднаний кандидат з двонаправленим прогнозуванням (з операцією відсікання); кандидат 2: зсув з нульовими інтегрованими кандидатами (без операції відсікання), оскільки кандидати в "кандидатові 2" не вимагають відсікання, кандидати 1 і 2 можуть бути згенеровані паралельно. Фіг. 14 є схемою послідовності операцій, що показує приклад способів, описаних в цьому розкритті. Способи за фіг. 14 можуть бути виконані відеокодером, таким як або відеокодер 20, або відеокодер 30. Відеодекодер може визначити набір просторових кандидатів, асоційованих з поточною ділянкою поточного відеокадру (142). Набір просторових кандидатів може відповідати сусіднім ділянкам поточного відеокадру, суміжним з поточною ділянкою. Кожний просторовий кандидат має асоційовану інформацію руху. Відеокодер може також визначити часового кандидата, асоційованого з поточною ділянкою поточного відеокадру (144). Часовий кандидат відповідає ділянці опорного відеокадру і часовий кандидат має асоційовану інформацію руху. На основі піднабору з набору просторових кандидатів і часового кандидата, відеокодер може згенерувати список кандидатів (146). У відповідь на список кандидатів, що включає в себе менше, ніж максимальне число кандидатів, відеокодер може додати штучно згенерованого кандидата в список кандидатів (148). Штучно згенерований кандидат може мати інформацію руху, яка є такою ж, як інформація руху просторового кандидата з піднабору або часового кандидата. За допомогою включення в список кандидатів штучно згенерованих кандидатів з інформацією руху, яка є такою ж, як інформація руху кандидата, вже включеного в список, може бути зменшена складність кодера. Набір просторових кандидатів може включати в себе два або більше просторових кандидатів, які мають однакову інформацію руху, тоді як піднабір просторових кандидатів включає в себе тільки один з двох або більше просторових кандидатів. Таким чином, за допомогою видалення або відсікання просторових кандидатів і включення більшого числа 25 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 унікальних кандидатів, якість кодування відео, яка змінена за допомогою показників залежності спотворень від швидкості передачі, наприклад, може бути поліпшена. Комбінація відсікання просторових кандидатів, але не відсікання штучно згенерованих кандидатів, може запропонувати бажаний компроміс, який забезпечує хорошу якість кодування відео при низькій складності. У одному або більше прикладах, описані функції можуть бути реалізовані в апаратних засобах, програмному забезпеченням, програмно-апаратних засобах або будь-якій їх комбінації. У випадку реалізації в програмному забезпеченні, функції можуть зберігатися як одна або більше інструкцій або код в комп'ютерочитаному середовищі або передаватися в ньому і можуть бути виконані апаратним блоком обробки. Комп'ютерочитані середовища можуть включати в себе комп'ютерочитані носії даних, які відповідають матеріальному середовищу, такому як носій даних, або комунікаційні середовища, що включають в себе будь-яке середовище, яке сприяє передачі комп'ютерної програми з одного місця в інше, наприклад, згідно з протоколом зв'язку. Таким чином, комп'ютерочитані середовища загалом можуть відповідати (1) матеріальним комп'ютерочитаним носіям даних, які є постійними, або (2) середовищу зв'язку, такому як сигнал або несуча хвиля. Середовищами зберігання даних можуть бути будь-які доступні середовища, до яких може бути здійснений доступ за допомогою одного або більше комп'ютерів або одного або більше процесорів для витягання інструкцій, коду і/або структури даних для реалізації способів, описані в цьому розкритті. Комп'ютерний програмний продукт може включати в себе комп'ютерочитане середовище. Як приклад, а не обмеження, такі комп'ютерочитані носії даних можуть містити RAM, ROM, EEPROM, CD-ROM або інше сховище на оптичних дисках, сховище на магнітних дисках або інші магнітні пристрої зберігання, флеш-пам'ять або будь-яке інше середовище, яке може бути використане для зберігання бажаного програмного коду у формі інструкцій або структур даних і до якого може бути здійснений доступ за допомогою комп'ютера. Також, будь-яке з'єднання правильно називати комп'ютерочитаним середовищем. Наприклад, якщо інструкції передаються з веб-сайта, сервера або іншого віддаленого джерела з використанням коаксіального кабелю, оптоволоконного кабелю, витої пари, цифрової абонентської лінії зв'язку (DSL) або бездротових технологій, таких як інфрачервона, радіо- і мікрохвильова, то коаксіальний кабель, оптоволоконний кабель, вита пара, DSL або бездротові технології, такі як інфрачервона, радіо- і мікрохвильова, включаються у визначення середовища. Однак, потрібно розуміти, що комп'ютерочитані носії даних і середовища зберігання даних не включають в себе з'єднання, несучі хвилі, сигнали або інші проміжні середовища, але замість цього направлені на непроміжні, матеріальні середовища зберігання. Термін "диск", як використовується в цьому документі, включає в себе компакт-диск (CD), лазерний диск, оптичний диск, універсальний цифровий диск (DVD), флопі-диск і диск blu-ray, причому магнітні диски звичайно відтворюють дані магнітним чином, в той час як оптичні диски відтворюють дані оптично за допомогою лазера. Комбінації вищезазначеного повинні також бути включені в обсяг комп'ютерочитаних середовищ. Інструкції можуть бути виконані одним або більше процесорами, такими як один або більше процесорів цифрової обробки сигналів (DSP), мікропроцесори загального призначення, спеціалізовані інтегральні мікросхеми (ASIC), програмовані користувачем вентильні матриці (FPGA), або іншим еквівалентом схем інтегрованої або дискретної логіки. Отже, термін "процесор", як використовується в цьому документі, може стосуватися будь-якої з вищезазначених структур або будь-якої іншої структури, придатної для реалізації способів, описаних в цьому документі. До того ж, в деяких аспектах, описана в цьому документі функціональність може бути надана всередині виділених апаратних засобів і/або програмних модулів, сконфігурованих для кодування і декодування, або включена в об'єднаний кодек. Також, способи можуть бути повністю реалізовані в одній і більше схемах або логічних елементах. Способи цього розкриття можуть бути реалізовані в широкому спектрі пристроїв або апаратів, що включають в себе бездротову гарнітуру, інтегральну схему (IC) або набір IC (наприклад, набір мікросхем). Різні компоненти, модулі або блоки описані в цьому розкритті, щоб підкреслити функціональні аспекти пристроїв, сконфігурованих для виконання розкритих способів, але необов'язково вимагають реалізацію за допомогою різних апаратних блоків. Швидше, як описано вище, різні блоки можуть бути об'єднані в апаратному блоці кодека або надані групою взаємодіючих апаратних блоків, що включають в себе один або більше процесорів, як описано вище, спільно з придатним програмним забезпеченням і/або програмноапаратними засобами. 26 UA 114802 C2 Були описані різні приклади. Ці і інші приклади входять в обсяг нижченаведених пунктів формули винаходу. ФОРМУЛА ВИНАХОДУ 5 10 15 20 25 30 35 40 45 50 55 1. Спосіб кодування відеоданих, причому спосіб включає етапи, на яких: визначають набір просторових кандидатів, асоційованих з поточною ділянкою поточного відеокадру, при цьому набір просторових кандидатів відповідає сусіднім ділянкам поточного відеокадру, суміжним з поточною ділянкою, і при цьому кожний з просторових кандидатів має асоційовану інформацію руху; визначають часового кандидата, асоційованого з поточною ділянкою поточного відеокадру, при цьому часовий кандидат відповідає ділянці опорного відеокадру, і при цьому часовий кандидат має асоційовану інформацію руху; генерують список кандидатів, який містить піднабір з набору просторових кандидатів і часового кандидата, за допомогою виконання однієї або більше операцій відсікання щодо набору просторових кандидатів і часового кандидата таким чином, що список кандидатів не включає в себе щонайменше одного кандидата з набору просторових кандидатів або часового кандидата, який має дубльовану інформацію руху відносно інформації руху іншого кандидата з набору просторових кандидатів або часового кандидата; і у відповідь на список кандидатів, що містить менше ніж точно визначене число кандидатів, додають штучно згенерованого кандидата в список кандидатів, при цьому штучно згенерований кандидат є одним з нульового кандидата або кандидата зі зсувом вектора руху, і при цьому етап, на якому додають штучно згенерованого кандидата в список кандидатів, включає етап, на якому додають штучно згенерованого кандидата без виконання однієї або більше операцій відсікання відносно штучно згенерованого кандидата, так щоб список кандидатів міг включати в себе штучно згенерованого кандидата, який має дубльовану інформацію руху відносно інформації руху конкретного кандидата піднабору з набору просторових кандидатів та часового кандидата. 2. Спосіб за п. 1, при цьому набір просторових кандидатів містить два або більше просторових кандидатів, які мають однакову інформацію руху, і при цьому піднабір з набору просторових кандидатів і часового кандидата включає в себе тільки один з двох або більше просторових кандидатів та часового кандидата. 3. Спосіб за п. 1, який додатково включає етап, на якому: генерують другого штучно згенерованого кандидата, при цьому штучно згенерований кандидат і другий штучно згенерований кандидат генеруються паралельно. 4. Спосіб за п. 1, який додатково включає етап, на якому: кодують поточну ділянку поточного відеокадру з використанням режиму злиття, при цьому інформація руху для режиму злиття визначається на основі списку кандидатів. 5. Спосіб за п. 1, при цьому спосіб виконується відеокодером, при цьому спосіб додатково включає етапи, на яких вибирають кандидата зі списку кандидатів і генерують синтаксичний елемент, що вказує індекс вибраного кандидата. 6. Спосіб за п. 1, при цьому спосіб виконується відеодекодером, і при цьому спосіб додатково включає етапи, на яких приймають синтаксичний елемент, що ідентифікує кандидата зі списку кандидатів, і декодують поточну ділянку поточного відеокадру з використанням інформації руху ідентифікованого кандидата. 7. Пристрій для кодування відеоданих, причому пристрій містить: пам'ять, виконану з можливістю зберігання відеоданих; і відеокодер, виконаний з можливістю: визначення набору просторових кандидатів, асоційованих з поточною ділянкою поточного відеокадру, при цьому набір просторових кандидатів відповідає сусіднім ділянкам поточного відеокадру, суміжним з поточною ділянкою, і при цьому кожний з просторових кандидатів має асоційовану інформацію руху; визначення часового кандидата, асоційованого з поточною ділянкою поточного відеокадру, при цьому часовий кандидат відповідає ділянці опорного відеокадру, і при цьому часовий кандидат має асоційовану інформацію руху; генерування списку кандидатів, який містить піднабір з набору просторових кандидатів і часового кандидата, за допомогою виконання однієї або більше операцій відсікання щодо набору просторових кандидатів і часового кандидата таким чином, що список кандидатів не включає в себе щонайменше одного кандидата з набору просторових кандидатів або часового 27 UA 114802 C2 5 10 15 20 25 30 35 40 45 50 55 60 кандидата, який має дубльовану інформацію руху відносно інформації руху іншого кандидата з набору просторових кандидатів або часового кандидата; і у відповідь на список кандидатів, що містить менше ніж точно визначене число кандидатів, додавання штучно згенерованого кандидата в список кандидатів, при цьому штучно згенерований кандидат є одним з нульового кандидата або кандидата зі зсувом вектора руху, і при цьому для додавання штучно згенерованого кандидата в список кандидатів відеокодер виконаний з можливістю додавати штучно згенерованого кандидата без виконання однієї або більше операцій відсікання відносно штучно згенерованого кандидата, так щоб список кандидатів міг включати в себе штучно згенерованого кандидата, який має дубльовану інформацію руху відносно інформації руху конкретного кандидата піднабору з набору просторових кандидатів та часового кандидата. 8. Пристрій за п. 7, при цьому набір просторових кандидатів містить два або більше просторових кандидатів, які мають однакову інформацію руху, і при цьому піднабір просторових кандидатів та часового кандидата включає в себе тільки один з двох або більше просторових кандидатів та часового кандидата. 9. Пристрій за п. 7, при цьому відеокодер додатково виконаний з можливістю генерування другого штучно згенерованого кандидата, при цьому штучно згенерований кандидат і другий штучно згенерований кандидат генеруються паралельно. 10. Пристрій за п. 7, при цьому відеокодер додатково виконаний з можливістю кодування поточної ділянки поточного відеокадру з використанням режиму злиття, при цьому інформація руху для режиму злиття визначається на основі списку кандидатів. 11. Пристрій за п. 7, при цьому відеокодер є відеокодером, і при цьому відеокодер виконаний з можливістю здійснення вибору кандидата зі списку кандидатів і генерування синтаксичного елемента, що вказує індекс вибраного кандидата. 12. Пристрій за п. 7, при цьому відеокодер є відеодекодером, і при цьому відеодекодер виконаний з можливістю прийому синтаксичного елемента, що ідентифікує кандидата зі списку кандидатів, і декодування поточної ділянки поточного відеокадру з використанням інформації руху ідентифікованого кандидата. 13. Пристрій за п. 7, при цьому пристрій містить щонайменше одне з: інтегральної схеми; мікропроцесора; і пристрою бездротового зв'язку, який включає в себе відеокодер. 14. Пристрій для кодування відеоданих, причому пристрій містить: засіб для визначення набору просторових кандидатів, асоційованих з поточною ділянкою поточного відеокадру, при цьому набір просторових кандидатів відповідає сусіднім ділянкам поточного відеокадру, суміжним з поточною ділянкою, і при цьому кожний з просторових кандидатів має асоційовану інформацію руху; засіб для визначення часового кандидата, асоційованого з поточною ділянкою поточного відеокадру, при цьому часовий кандидат відповідає ділянці опорного відеокадру, і при цьому часовий кандидат має асоційовану інформацію руху; засіб для генерування списку кандидатів, який містить піднабір з набору просторових кандидатів і часового кандидата, за допомогою виконання однієї або більше операцій відсікання щодо набору просторових кандидатів і часового кандидата таким чином, що список кандидатів не включає в себе щонайменше одного кандидата з набору просторових кандидатів або часового кандидата, який має дубльовану інформацію руху відносно інформації руху іншого кандидата з набору просторових кандидатів або часового кандидата; і засіб для додавання штучно згенерованого кандидата в список кандидатів у відповідь на список кандидатів, що містить менше ніж точно визначене число кандидатів, при цьому штучно згенерований кандидат є одним з нульового кандидата або кандидата зі зсувом вектора руху, і при цьому засіб для додавання штучно згенерованого кандидата в список кандидатів містить засіб для додавання штучно згенерованого кандидата без виконання однієї або більше операцій відсікання відносно штучно згенерованого кандидата, так щоб список кандидатів міг включати в себе штучно згенерованого кандидата, який має дубльовану інформацію руху відносно інформації руху конкретного кандидата піднабору з набору просторових кандидатів та часового кандидата. 15. Пристрій за п. 14, при цьому набір просторових кандидатів містить два або більше просторових кандидатів, які мають однакову інформацію руху, і при цьому піднабір із набору просторових кандидатів та часового кандидата включає в себе тільки один з двох або більше просторових кандидатів та часового кандидата. 16. Пристрій за п. 14, який додатково містить: 28

Дивитися

Додаткова інформація

Назва патенту англійською

Generating additional merge candidates

Автори англійською

Zheng, Yunfei, Wang, Xianglin, Karczewicz, Marta

Автори російською

Чжэн Юньфэй, Ван Сянлинь, Карчевич Марта

МПК / Мітки

МПК: H04N 19/107, H04N 19/139, H04N 19/517

Мітки: злиття, додаткових, кандидатів, генерування

Код посилання

<a href="https://ua.patents.su/40-114802-generuvannya-dodatkovikh-kandidativ-dlya-zlittya.html" target="_blank" rel="follow" title="База патентів України">Генерування додаткових кандидатів для злиття</a>

Подібні патенти