Кандидати злиття для кодування відео, що враховують паралелізацію

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

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

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

Є ще 25 сторінок.

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

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

1. Спосіб кодування даних відео, який містить:

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

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

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

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

3. Спосіб за п. 1, в якому поточна одиниця кодування має тип розділення Nx2N, nLx2N або nRx2N, включає в себе одиницю 0 прогнозування, позиціоновану зліва одиниці 1 прогнозування, і в якому видалення кандидатів злиття з набору кандидатів злиття включає видалення кандидата злиття зліва з набору кандидатів злиття для одиниці 1 прогнозування.

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

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

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

декодування поточної одиниці прогнозування з використанням визначеного вектора руху.

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

виконання процесу прогнозування вектора руху для поточної одиниці прогнозування з використанням набору кандидатів злиття для визначення вибраного кандидата злиття для поточної одиниці прогнозування; і

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

6. Пристрій, сконфігурований для кодування даних відео, що містить:

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

кодер відео, сконфігурований для:

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

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

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

7. Пристрій за п. 6, в якому поточна одиниця кодування має тип розділення 2NxN, 2NxnU або 2NxnD, включає в себе одиницю 0 прогнозування, позиціоновану зверху одиниці 1 прогнозування, і в якому кодер відео додатково сконфігурований для видалення кандидата злиття зверху з набору кандидатів злиття для одиниці 1 прогнозування.

8. Пристрій за п. 6, в якому поточна одиниця кодування має тип розділення Nx2N, nLx2N або nRx2N, включає в себе одиницю 0 прогнозування, позиціоновану зліва одиниці 1 прогнозування, і в якому кодер відео додатково сконфігурований для видалення кандидата злиття зліва з набору кандидатів злиття для одиниці 1 прогнозування.

9. Пристрій за п. 6, в якому кодер відео є декодером відео, і в якому декодер відео додатково сконфігурований для:

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

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

декодування поточної одиниці прогнозування з використанням визначеного вектора руху.

10. Пристрій за п. 6, в якому кодер відео є засобом кодування відео, і в якому засіб кодування відео додатково сконфігурований для:

виконання процесу прогнозування вектора руху для поточної одиниці прогнозування з використанням набору кандидатів злиття для визначення вибраного кандидата злиття для поточної одиниці прогнозування; і

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

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

12. Пристрій сконфігурований для кодування даних відео, який містить:

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

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

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

13. Пристрій за п. 12, в якому поточна одиниця кодування має тип поділу 2NxN, 2NxnU або 2NxnD, включає в себе одиницю 0 прогнозування, позиціоновану зверху одиниці 1 прогнозування, і в якому засіб для видалення кандидатів злиття з набору кандидатів злиття містить засіб для видалення кандидата злиття зверху з набору кандидатів злиття для одиниці 1 прогнозування.

14. Пристрій за п. 12, в якому поточна одиниця кодування має тип поділу Nx2N, nLx2N або nRx2N, включає в себе одиницю 0 прогнозування, позиціоновану зліва одиниці 1 прогнозування, і в якому засіб для видалення кандидатів злиття з набору кандидатів злиття містить засіб для виключення кандидата злиття зліва з набору кандидатів злиття для одиниці 1 прогнозування.

15. Пристрій за п. 12, в якому пристрій сконфігурований для декодування відео, і при цьому пристрій додатково містить:

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

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

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

16. Пристрій за п. 12, в якому пристрій сконфігурований для здійснення кодування відео, і при цьому пристрій додатково містить:

засіб для виконання процесу прогнозування вектора руху для поточної одиниці прогнозування з використанням набору кандидатів злиття для визначення вибраного кандидата злиття для поточної одиниці прогнозування; і

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

17. Пристрій за п. 12, в якому пристрій є частиною мобільного пристрою.

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

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

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

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

19. Зчитуваний комп'ютером носій даних за п. 18, в якому поточна одиниця кодування має тип розділення 2NxN, 2NxnU або 2NxnD, включає в себе одиницю 0 прогнозування, позиціоновану зверху одиниці 1 прогнозування, і в якому інструкції додатково спонукають згаданий один або більше процесорів видаляти кандидата злиття зверху з набору кандидатів злиття для одиниці 1 прогнозування.

20. Зчитуваний комп'ютером носій даних за п. 18, в якому поточна одиниця кодування має тип розділення Nx2N, nLx2N або nRx2N, включає в себе одиницю 0 прогнозування, позиціоновану зліва одиниці 1 прогнозування, і в якому інструкції додатково спонукають згаданий один або більше процесорів виключати кандидата злиття зліва з набору кандидатів злиття для одиниці 1 прогнозування.

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

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

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

декодувати поточну одиницю прогнозування з використанням визначеного вектора руху.

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

виконувати процес прогнозування вектора руху для поточної одиниці прогнозування з використанням набору кандидатів злиття для визначення вибраного кандидата злиття для поточної одиниці прогнозування; і

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

Текст

Реферат: Це розкриття представляє способи та системи для кодування відео в режимі злиття процесу прогнозування вектора руху. Спосіб кодування даних відео може визначати набір кандидатів злиття для поточної одиниці прогнозування поточної одиниці кодування, при цьому набір кандидатів злиття визначається без порівняння інформації руху кандидата злиття в наборі кандидатів злиття з інформацією руху яких-небудь інших одиниць прогнозування, і викопувати процес прогнозування вектора руху злиття для поточної одиниці прогнозування з використанням набору кандидатів злиття. Спосіб може додатково містити виключення кандидатів злиття з набору кандидатів злиття, які знаходяться в іншій одиниці прогнозування поточної одиниці кодування. UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 Ця заявка заявляє пріоритет попередньої заявки на патент США № 61/499,112, поданої 20 червня 2011 року, попередньої заявки на патент США № 61/543,043, поданої 4 жовтня 2011 року, попередньої заявки на патент США № 61/543,059, поданої 4 жовтня 2011 року, попередньої заявки на патент США № 61/556,761, поданої 7 листопада 2011 року, попередньої заявки на патент США № 61/562,387, поданої 21 листопада 2011 року і попередньої заявки на патент США № 61/562,953, поданої 22 листопада 2011 року, всі з яких повністю включені до складу даного документа за посиланням. ГАЛУЗЬ ТЕХНІКИ Це розкриття стосується кодування відео і більш конкретно - підходів для визначення набору кандидатів прогнозування вектора руху в процесі прогнозування вектора руху. РІВЕНЬ ТЕХНІКИ Можливості цифрового відео можуть бути впроваджені в широкий діапазон пристроїв, в тому числі засоби цифрового телебачення, системи цифрового прямого мовлення, системи бездротового мовлення, персональні цифрові помічники (PDA), настільні або переносні комп'ютери, цифрові камери, пристрої цифрового запису, цифрові мультимедійні програвачі, відео-ігрові пристрої, консолі відеоігор, стільникові або супутникові радіотелефони, пристрої відеоконференцзв'язку і подібне. Пристрої цифрового відео реалізовують підходи стиснення відео, наприклад такі, які описані в стандартах, визначених за допомогою MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Частини 10, Вдосконаленого Кодування Відео (AVC), стандарту Високоефективного Кодування Відео (HEVC), що розробляється в цей час, і розширень таких стандартів, для більш ефективної передачі, прийому та зберігання інформації цифрового відео. Підходи стиснення відео включають в себе просторове прогнозування і/або часове прогнозування для скорочення або видалення надмірності, характерної для послідовностей відео. Для блокового кодування відео, кадр відео або зріз (вирізка) може бути розділений на блоки. Кожний блок може бути розділений додатково. Блоки у внутрішньо-кодованому (I) кадрі або зрізі кодуються з використанням просторового прогнозування відносно опорних вибірок у сусідніх блоках в одному кадрі або зрізі. Блоки у зовні-кодованому (Р або В) кадрі або зрізі можуть використовувати просторове прогнозування відносно опорних вибірок у сусідніх блоках в одному кадрі або зрізі або часове (у часі) прогнозування відносно опорних вибірок в інших опорних кадрах. Просторове або часове прогнозування має результатом предиктивний блок для блока, який повинен бути кодований. Залишкові дані представляють піксельні різниці між вихідним блоком, який повинен бути кодований, і предиктивним блоком. Зовні-кодований блок кодується згідно з вектором руху, який вказує на блок опорних вибірок, що формують предиктивний блок, і залишковими даними, що вказують різницю між піксельними значеннями в кодованому блоці і опорними вибірками в предиктивному блоці. Внутрішньо-кодований блок кодується згідно з режимом внутрішнього кодування і залишковими даними. Для додаткового стиснення залишкові дані можуть бути перетворені з піксельної ділянки в ділянку перетворення, маючи результатом залишкові коефіцієнти перетворення, які потім можуть бути квантовані. Квантовані коефіцієнти перетворення, спочатку скомпоновані в двомірному масиві, можуть бути проскановані в конкретному порядку для створення одномірного вектора коефіцієнтів перетворення для ентропійного кодування. СУТЬ ВИНАХОДУ В цілому, це розкриття описує підходи для кодування даних відео. Це розкриття описує підходи для визначення набору кандидатів злиття в процесі прогнозування вектора руху режиму злиття. У деяких прикладах це розкриття пропонує генерування набору кандидатів злиття для поточної одиниці прогнозування одиниці кодування без порівняння інформації руху яких-небудь кандидатів злиття з інформацією руху яких-небудь інших одиниць прогнозування в одній одиниці кодування. Таким чином, набори кандидатів злиття для множинних одиниць прогнозування одиниці кодування можуть бути згенеровані паралельно, оскільки генерування конкретного кандидата злиття не покладається на порівняння з інформацією вектора руху в інших одиницях прогнозування, які можуть або можуть не бути вже визначені. Це розкриття додатково пропонує видаляти кандидатів злиття з набору кандидатів злиття для поточної одиниці прогнозування, які містяться в іншій одиниці прогнозування тієї самої одиниці кодування. Таким чином, імовірність, що всі одиниці прогнозування однієї одиниці кодування будуть використовувати одну і ту саму інформацію вектора руху, обмежується, тим самим зберігаючи перевагу розділення одиниці кодування на множинні одиниці прогнозування. В одному прикладі розкриття спосіб кодування даних відео містить визначення набору кандидатів злиття для поточної одиниці прогнозування поточної одиниці кодування, при цьому 1 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 набір кандидатів злиття визначається без порівняння інформації руху кандидата злиття в наборі кандидатів злиття з інформацією руху яких-небудь інших одиниць прогнозування, і виконання процесу прогнозування вектора руху злиття для поточної одиниці прогнозування з використанням набору кандидатів злиття. Спосіб може додатково містити виключення кандидатів злиття з набору кандидатів злиття, які знаходяться в іншій одиниці прогнозування поточної одиниці кодування. В іншому прикладі розкриття пристрій, сконфігурований для кодування даних відео, містить кодер відео, сконфігурований для визначення набору кандидатів злиття для поточної одиниці прогнозування поточної одиниці кодування, при цьому набір кандидатів злиття визначається без порівняння інформації руху кандидата злиття в наборі кандидатів злиття з інформацією руху яких-небудь інших одиниць прогнозування, і виконання процесу прогнозування вектора руху злиття для поточної одиниці прогнозування з використанням набору кандидатів злиття. Кодер відео може бути додатково сконфігурований для видалення кандидатів злиття з набору кандидатів злиття, які знаходяться в іншій одиниці прогнозування поточної одиниці кодування. В іншому прикладі розкриття пристрій, сконфігурований для кодування даних відео, містить засіб для визначення набору кандидатів злиття для поточної одиниці прогнозування поточної одиниці кодування, при цьому набір кандидатів злиття визначається без порівняння інформації руху кандидата злиття в наборі кандидатів злиття з інформацією руху яких-небудь інших одиниць прогнозування, і засіб для виконання процесу прогнозування вектора руху злиття для поточної одиниці прогнозування з використанням набору кандидатів злиття. Пристрій може додатково містити засіб для виключення кандидатів злиття з набору кандидатів злиття, які знаходяться в іншій одиниці прогнозування поточної одиниці кодування. В іншому прикладі розкриття запропонований зчитуваний комп'ютером носій даних, що має збережені на ньому інструкції, які при виконанні спонукають один або більше сконфігурованих процесорів кодувати дані відео. Інструкції спонукають згаданий один або більше процесорів визначати набір кандидатів злиття для поточної одиниці прогнозування поточної одиниці кодування, при цьому набір кандидатів злиття визначається без порівняння інформації руху кандидата злиття в наборі кандидатів злиття з інформацією руху яких-небудь інших одиниць прогнозування, і виконувати процес прогнозування вектора руху злиття для поточної одиниці прогнозування з використанням набору кандидатів злиття. Інструкції можуть додатково спонукати згаданий один або більше процесорів видаляти кандидатів злиття з набору кандидатів злиття, які знаходяться в іншій одиниці прогнозування поточної одиниці кодування. Подробиці одного або більше прикладів викладені в описі нижче за текстом і (показані) на кресленнях. Інші ознаки, цілі та переваги будуть очевидні з опису і креслень і з формули винаходу. КОРОТКИЙ ОПИС КРЕСЛЕНЬ Фіг. 1 являє собою концептуальну схему, яка ілюструє блоки-кандидати для прогнозування вектора руху згідно з режимом злиття. Фіг. 2 являє собою концептуальну схему, яка ілюструє зразкові типи розділення. Фіг. 3A являє собою концептуальну схему, яка ілюструє блоки-кандидати для прогнозування вектора руху режиму злиття для розділення Nx2N одиниці кодування. Фіг. 3B являє собою концептуальну схему, яка ілюструє блоки-кандидати для прогнозування вектора руху режиму злиття для розділення 2NxN одиниці кодування. Фіг. 4A являє собою концептуальну схему, яка ілюструє блоки-кандидати для прогнозування вектора руху режиму злиття для розділення NxN одиниці кодування. Фіг. 4B являє собою концептуальну схему, яка ілюструє інший приклад блоків-кандидатів для прогнозування вектора руху режиму злиття для розділення NxN одиниці кодування. Фіг. 5 являє собою блок-схему, яка ілюструє приклад системи кодування відео. Фіг. 6 являє собою блок-схему, яка ілюструє приклад засобу кодування відео. Фіг. 7 являє собою блок-схему, яка ілюструє приклад декодера відео. Фіг. 8 являє собою блок-схему послідовності операцій, що ілюструє приклад способу здійснення кодування відео згідно з підходами цього розкриття. Фіг. 9 являє собою блок-схему послідовності операцій, що ілюструє приклад способу декодування відео згідно з підходами цього розкриття. ДОКЛАДНИЙ ОПИС Загалом, це розкриття описує підходи для кодування даних відео. Це розкриття описує підходи для визначення набору кандидатів злиття в процесі прогнозування вектора руху режиму злиття. Пристрої цифрового відео реалізовують підходи стиснення відео для здійснення кодування і декодування інформації цифрового відео більш ефективно. Стиснення відео може 2 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 застосовувати підходи просторового (внутрішньокадрового) прогнозування і/або часового (міжкадрового) прогнозування для скорочення або видалення надмірності, характерної для послідовностей відео. Є новий стандарт кодування відео, а саме Високоефективне Кодування Відео (HEVC), що розробляється Об'єднаною Командою з Кодування Відео (JCT-VC) Експертної Групи з Кодування Відео ITU-T (VCEG) і Групою Експертів з Рухомого Зображення ISO/IEC (MPEG). Нещодавній проект стандарту HEVC, який називається "HEVC Working Draft 6" або "WD6", описаний в документі JCTVC-H1003, Bross et al, "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.intevry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H1003-v22.zip. Для кодування відео згідно зі стандартом Високоефективного Кодування Відео (HEVC), що розробляється в цей час Об'єднаною Командою з Кодування Відео (JCT-VC), відеокадр може бути розділений на одиниці кодування. Одиниця кодування (CU) загалом стосується ділянки зображення, яка служить як базова одиниця, до якої застосовуються різні інструменти кодування для стиснення відео. CU звичайно має компоненту яскравості, яка може бути позначена як Y, і дві компоненти кольоровості, які можуть бути позначені як U та V. Залежно від формату вибірки відео розмір компонент U та V в показниках кількості вибірок може бути таким самим як розмір компоненти Y або відмінним від нього. CU типово є квадратною і може бути розглянута як аналогічна так званому макроблоку, наприклад, за іншими стандартами кодування відео, такими як ITU-T H.264. Для досягнення кращої ефективності кодування одиниця кодування може мати розміри, що варіюються, залежно від контенту відео. Додатково, одиниця кодування може бути розбита на менші блоки для прогнозування або перетворення. Зокрема, кожна одиниця кодування може бути додатково розділена на одиниці прогнозування (PU) і одиниці перетворення (TU). Одиниці прогнозування можуть бути розглянуті як аналогічні так званим розділам (фрагментам) за іншими стандартами кодування відео, наприклад H.264. Одиниці перетворення (TU) відносяться до блоків залишкових даних, до яких застосовується перетворення для створення коефіцієнтів перетворення. Кодування згідно з деякими з раніше запропонованих аспектів розвитку стандарту HEVC будуть описані в цьому документі для цілей ілюстрації. Однак, підходи описані в цьому розкритті можуть бути застосовними для інших процесів кодування відео, таких, які визначені згідно з H.264 або іншим стандартом або приватними процесами кодування відео. Зусилля стандартизації HEVC основані на моделі пристрою кодування відео, яка називається Тестова Модель HEVC (HM). HM передбачає декілька можливостей пристроїв кодування відео над пристроями згідно з, наприклад ITU-T H.264/AVC. Наприклад, в той час як H.264 забезпечує дев'ять режимів здійснення кодування з внутрішнім прогнозуванням, HM забезпечує аж до тридцяти чотирьох режимів кодування з внутрішнім прогнозуванням. Згідно з HM, CU може включати в себе одну або більше одиниць прогнозування (PU) і/або одну або більше одиниць перетворення (TU). Синтаксичні дані в бітовому потоці можуть визначати найбільшу одиницю кодування (LCU), яка є найбільшою CU, виходячи з числа пікселів. Загалом, CU має аналогічне призначення з макроблоком з H.264, за винятком того, що CU не має відмінності за розміром. Таким чином, CU може бути розбита на суб-CU. Загалом, посилання в цьому розкритті на CU можуть відноситися до найбільшої одиниці кодування (LCU) зображення або суб-CU з LCU. LCU може бути розбита на суб-CU і кожна суб-CU може бути додатково розбита на суб-CU. Синтаксичні дані для бітового потоку можуть визначати максимальне число разів можливого розбиття LCU, що називається глибиною CU. Відповідно, бітовий потік також може визначати найменшу одиницю кодування (SCU). Це розкриття також використовує термін "блок" або "частина" для посилання на будь-який з CU, PU або TU. Загалом "частина" може стосується будь-якого піднабору відеокадру. LCU може бути зв'язана зі структурою даних квадродерева. Загалом, структура даних квадродерева включає в себе один вузол для кожної CU, де кореневий вузол відповідає LCU. Якщо CU розбита на 4 суб-CU, вузол, що відповідає CU, включає в себе чотири кінцевих вузли, кожний з яких відповідає одній із згаданих суб-CU. Кожний вузол структури даних квадродерева може забезпечувати синтаксичні дані для відповідної CU. Наприклад, вузол в квадродереві може включати в себе прапор розбиття, що вказує, чи розбита CU, що відповідає вузлу, на субCU. Елементи синтаксису для CU можуть бути визначені рекурсивно і можуть залежати від того, чи розбита CU на суб-CU. Якщо CU не розбита далі, вона називається кінцевою (листовою) CU. 3 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 Більше того, TU кінцевих CU також можуть бути зв'язані з відповідними структурами даних квадродерева. Таким чином, кінцева CU може включати в себе квадродерево, що вказує, як кінцева CU розділяється на TU. Це розкриття стосується квадродерева, що вказує, як LCU розділяється як квадродерево CU, і квадродерева, що вказує, як кінцева CU розділяється на TU як квадродерево TU. Кореневий вузол квадродерева TU загалом відповідає кінцевому CU, в той час як кореневий вузол квадродерева CU загалом відповідає LCU. TU квадродерева TU, які не розбиті, називаються кінцевими TU. Кінцева CU може включати в себе одну або більше одиниць прогнозування (PU). Загалом, PU представляє всю або частину відповідної CU і може включати в себе дані для витягання опорної вибірки для PU. Наприклад, коли PU кодується у зовнішньому режимі, PU може включати в себе дані, що визначають вектор руху для PU. Дані, що визначають вектор руху, можуть описувати, наприклад горизонтальну компоненту вектора руху, вертикальну компоненту вектора руху, розрізнення для вектора руху (наприклад одна четверта піксельної точності або одна восьма піксельної точності), опорний кадр, на який вказує вектор руху і/або опорний список (наприклад, список 0 або список 1) для вектора руху. Дані для кінцевої CU, що визначає PU (декілька PU) також можуть описувати, наприклад розділення CU на одну або більше PU. Режими розділення можуть відрізнятися залежно від того, чи не кодована з прогнозуванням CU, чи кодована в режимі внутрішнього прогнозування, чи кодована в режимі зовнішнього прогнозування. Для внутрішнього кодування PU може бути оброблена також як кінцева одиниця перетворення, описана нижче за текстом. Щоб кодувати блок (наприклад, одиницю прогнозування (PU) даних відео), спочатку повинен бути виведений предиктор для блока. Предиктор може бути виведений або за допомогою внутрішнього (I) прогнозування (тобто просторового прогнозування), або зовнішнього (Р або В) прогнозування (тобто часового прогнозування). Отже, деякі одиниці прогнозування можуть бути внутрішньо-кодовані (I) з використанням просторового прогнозування відносно сусідніх опорних блоків в тому самому кадрі, і інші одиниці прогнозування можуть бути зовні-кодовані (Р або В) відносно опорних блоків в інших кадрах. Після ідентифікації предиктора обчислюється різниця між вихідним блоком даного відео і його предиктором. Ця різниця також називається залишком прогнозування, і стосується піксельних різниць між пікселями блока, який повинен бути кодований, і відповідними опорними вибірками (які можуть бути пікселями з цілою точністю або пікселями з інтерпольованою дробовою точністю) опорного блока, тобто предиктора. Для досягнення кращого стиснення залишок прогнозування (тобто масив значень піксельних різниць) звичайно перетворюється, наприклад з використанням дискретного косинусного перетворення (DCT), цілочислового перетворення, перетворення Карунена-Лоєва (K-L) або іншого перетворення. Кодування PU з використанням зовнішнього прогнозування тягне за собою обчислення вектора руху між поточним блоком і блоком в опорному кадрі. Вектори руху обчислюються за допомогою процесу, який називається оцінка руху (або пошук руху). Вектор руху, наприклад, може вказувати зміщення одиниці прогнозування в поточному кадрі відносно опорної вибірки опорного кадру. Опорна вибірка може бути блоком, який шукають для близької відповідності частині CU, що включає в себе кодовану PU в показниках піксельної різниці, яка може бути визначена сумою абсолютних різниць (SAD), сумою квадратів різниць (SSC) або іншими метриками різниць. Опорна вибірка може виникати в будь-якому місці в межах опорного кадру або опорного зрізу. У деяких прикладах опорна вибірка може бути інтерпольована цілком або частково, і виникнути в дробовій піксельній позиції. Після знаходження частини опорного кадру, яка краще усього відповідає поточній частині, засіб кодування визначає поточний вектор руху для поточної частини як різницю в місцеположенні від поточної частини до відповідної частини в опорному кадрі (наприклад, від центра поточної частини до центра відповідної частини). У деяких прикладах засіб кодування може сигналізувати вектор руху для кожної частини в закодованому бітовому потоці відео. Сигналізований вектор руху використовується декодером для виконання компенсації руху для того, щоб декодувати дані відео. Однак, сигналізація вихідного вектора руху безпосередньо може дати в результаті менш ефективне кодування, оскільки типово велике число бітів необхідне для перенесення інформації. У деяких прикладах замість того, щоб безпосередньо сигналізувати вихідний вектор руху, засіб кодування може прогнозувати вектор руху для кожної PU. У цьому розкритті термін "блок" може бути використаний загалом для посилання на CU, PU або TU. При виконанні процесу прогнозування вектора руху засіб кодування може вибрати набір векторів руху кандидатів, визначених для просторово сусідніх блоків у тому самому кадрі, що і поточна PU, або вектор руху кандидат, визначений для спільно розміщеної PU в опорному кадрі. Засіб кодування може виконати прогнозування вектора руху для вибору конкретного вектора руху кандидата і, якщо 4 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 необхідно, сигналізувати елемент синтаксису, що вказує вибраного кандидата-вектора руху, для скорочення частоти проходження бітів при сигналізації. Вектори руху кандидати з просторово сусідніх блоків можуть бути названі просторовими MVP-кандидатами, тоді як вектор руху кандидат зі спільно розміщеного блока в іншому опорному кадрі може бути названий часовим MVP-кандидатом. Підходи цього розкриття направлені на режим "злиття" прогнозування вектора руху. У режимі злиття засіб кодування відео видає інструкцію декодеру, за допомогою сигналізації бітового потоку про синтаксис прогнозування, на копіювання вектора руху, опорного індексу (що ідентифікує опорний кадр у даному опорному списку зображень, на який вказує вектор руху) і напрямку прогнозування руху (яке ідентифікує опорний список зображень (список 0 або список 1) тобто виходячи з того, чи передує у часі опорний кадр або (він) йде за поточним кадром), з вибраного вектора руху кандидата для поточної частини кадру. Це виконується за допомогою сигналізації в бітовому потоці індексу на набір векторів руху кандидатів, ідентифікуючий вибраний вектор руху кандидат (тобто конкретний просторовий MVP-кандидат або часовий MVP кандидат). Набір векторів руху кандидатів може бути одержаний за допомогою настройок за умовчанням або виведений з деяких параметрів кодування. Таким чином, для режиму злиття синтаксис прогнозування може включати в себе прапор, що ідентифікує режим (в цьому випадку режим "злиття") і індекс, що ідентифікує вибраний вектор руху кандидат. У деяких прикладах вектор руху кандидат буде знаходиться в причинній PU з посиланням на поточну PU. Таким чином, вектор руху кандидат вже буде декодований декодером. Як такий, декодер вже прийняв і/або визначив вектор руху, опорний індекс і напрямок прогнозування руху для причинної PU. Як такий, декодер може просто витягнути вектор руху, опорний індекс і напрямок прогнозування руху, зв'язаний з причинною PU з пам'яті і скопіювати ці значення для поточної PU. Для декодування блока в режимі злиття декодер одержує блок-предиктор використовуючи прогнозування вектора руху і додає залишкові дані до блока-предиктора для відновлення кодованого блока. Як тільки оцінка руху виконана для визначення вектора руху для поточної частини, засіб кодування порівнює відповідну частину в опорному кадрі з поточною частиною. Це порівняння типово тягне за собою віднімання частини (яка звичайно називається "опорною вибіркою") в опорному кадрі з поточної частини і має результатом так звані залишкові дані, як відмічено вище за текстом. Залишкові дані вказують значення піксельних різниць між поточною частиною і опорною вибіркою. Засіб кодування потім перетворює ці залишкові дані з просторової ділянки в ділянку перетворення, таку як частотна ділянка. Звичайно засіб кодування застосовує дискретне косинусне перетворення (DCT) до залишкових даних для виконання цього перетворення. Засіб кодування виконує це перетворення для того, щоб сприяти стисненню залишкових даних оскільки коефіцієнти перетворення, що одержуються в результаті, представляють інші частоти, при цьому велика частина енергії звичайно концентрується на декількох низькочастотних коефіцієнтах. Типово коефіцієнти перетворення, що одержуються в результаті, групуються разом таким чином, який робить можливим кодування по довжинах серій, особливо якщо коефіцієнти перетворення спочатку квантовані (округлені). Засіб кодування виконує це кодування по довжинах серій квантованих коефіцієнтів перетворення і потім виконує статистичне кодування без втрат (або так зване "ентропійне"), щоб додатково стиснути кодовані по довжинах серій квантовані коефіцієнти перетворення. Після виконання ентропійного кодування без втрат засіб кодування генерує бітовий потік, який включає в себе закодовані дані відео. Цей бітовий потік також включає в себе деяке число елементів синтаксису прогнозування в деяких прикладах, які визначають, наприклад, чи було виконане прогнозування вектора руху, режим вектора руху та індекс предиктора вектора руху (MVP) (тобто індекс частини кандидата з вибраним вектором руху). Індекс MVP також може бути названий ім'ям змінної його елемента синтаксису "mvp_idx". Фіг. 1 показує набір 90 векторів руху кандидатів, в цей час запропонований в стандарті HEVC для використання в режимі злиття. Режим злиття використовує шість кандидатів злиття з наступних просторових і часових блоків: блок 91 зліва знизу (BL), блок 92 зліва (L), блок 93 зверху праворуч (RA), блок 94 зверху (А), блок 95 зверху зліва (LA) і часовий блок (Т) 96. Вектори руху кандидати, зв'язані з цими блоками, використовуються для визначення предиктора вектора руху в режимі злиття. Часовий блок 96 може знаходиться в спільно розміщеному блоці в кадрі, відмінному від такого поточною PU (наприклад T 2) або суміжному зі спільно розміщеним блоком в кадрі, відмінному від такого поточною PU 108 (наприклад T 1). Місцеположення просторових блоків кандидатів (тобто BL, L, LA, А та RA), зображених на Фіг. 1, не є абсолютними позиціями, але в 5 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 свою чергу є відносними позиціями у відношенні поточної PU 98 на основі наступних загальних визначень. Потрібно зазначити, що блокам кандидатам немає необхідності бути найближчим можливим блоком, який задовольняє наступним визначенням, а можуть бути будь-якою PU, яка задовольняє цим визначенням. Блок 95 кандидат LA розташований зверху верхньої лінії, що визначає поточну PU і зліва лівої лінії, що визначає поточну PU. Блок 92 кандидат L розташований зліва лівої лінії, що визначає поточну PU, але також зверху нижньої лінії, що визначає поточну PU і знизу верхньої лінії, що визначає поточну PU. Блок 91 кандидат BL розташований знизу нижньої лінії, що визначає поточну PU і зліва лівої лінії, що визначає поточну PU. Блок 94 кандидат А розташований зверху верхньої лінії, що визначає поточну PU, але також праворуч лівої лінії, що визначає поточну PU і зліва правої лінії, що визначає поточну PU. Блок 93 кандидат RA розташований праворуч правої лінії, що визначає поточну PU і зверху верхньої лінії, що визначає поточну PU. Кандидати злиття генеруються для кожної PU. Таким чином, кожна PU має свій власний набір кандидатів злиття. Це включає в себе PU, які відділені від більшої CU. Приклад Фіг. 1 призначається для 2Nx2N-розділеної PU (наприклад квадратної PU). Фіг. 2 показує додаткові приклади одиниць прогнозування з різними типами розділення. Як показано на Фіг. 2, розділення 2Nx2N є розділенням квадратної форми. По суті, це PU з неподіленої CU. Розділення 2NxN виконане за допомогою розподілу квадратної CU на дві горизонтальноорієнтовані PU, де PU 0 знаходиться зверху від PU 1. Розділення Nx2N виконане за допомогою розподілу квадратної CU на дві вертикально-орієнтовані PU, де PU 0 знаходиться зліва від PU 1. Розділення NxN виконане шляхом розподілу квадратної CU на чотири PU одного розміру. У розділенні NxN, PU 0 знаходиться зверху зліва CU, PU 1 знаходиться зверху праворуч CU, PU 2 знаходиться знизу зліва CU та PU 3 знаходиться знизу праворуч CU. Фіг. 2 показує додаткові типи "неквадратних" розділень. Розділення 2NxnD є типом горизонтально-орієнтованого неквадратного розділення, де нижня PU (PU 1) має менший розмір (тобто чверть розміру від розміру CU), ніж верхня PU (PU 0). Розділення 2NxnU є типом горизонтально-орієнтованого неквадратного розділення, де нижня PU (PU 1) має більший розмір (тобто три чверті від розміру CU), ніж верхня PU (PU 0). Розділення nLx2N є типом вертикально-орієнтованого неквадратного розділення, де ліва PU (PU 0) має менший розмір (тобто чверть розміру від розміру CU), ніж права PU (PU 1). Розділення nRx2N є типом вертикально-орієнтованого неквадратного розділення, де ліва PU (PU 0) має більший розмір (тобто три чверті від розміру CU), ніж права PU (PU 1). Ці приклади розділення іноді називають асиметричне розділення руху (AMP). CU розділяються згідно з одним із згаданих типів розділення для забезпечення більш точного зовнішнього прогнозування (часового прогнозування). Інформація руху сигналізується окремо для кожного розділу. З більш дрібним розділом (наприклад, розділ 2NxN є більш дрібним, ніж розділ 2Nx2N) потенційно може бути одержана краща якість предиктора для кожного розділу. З іншого боку, оскільки інформація руху сигналізується окремо для кожного розділу, непродуктивні витрати сигналізації CU з більш дрібним розділом також є відносно високими. На практиці визначення типу розділення для поточної CU часто основується на оптимізації швидкості передачі від спотворення. Вибраний тип розділення є компромісом між точністю прогнозування і непродуктивними витратами сигналізації. Пропозиції теперішнього часу для стандарту HEVC реалізовують підходи, щоб уникати використання надмірних кандидатів злиття для PU однієї і тієї самої CU. Надмірний кандидат злиття є кандидатом злиття, який має ту саму інформацію руху, що і інша PU в тій самій CU. Для конкретного типу розділення кожний з кандидатів злиття для PU 1 (або PU 1, 2 та 3 для розділення NxN) порівнюються з інформацією руху PU 0 (або PU 0, 1 та 2 для розділення NxN), щоб уникати того, що вся CU використовує одну і ту саму інформацію руху. Якщо кожна PU в CU використовує одну і ту саму інформацію, результат буде дублюючим відносно типу розділення 2Nx2N (тобто немає розділення). Таким чином перевага розділення CU для більш точного зовнішнього прогнозування буде зведена до нуля. Для того щоб уникнути використання надмірних кандидатів злиття, одна пропозиція для HEVC пропонує порівнювати інформацію руху для кожного кандидата злиття в наборі кандидатів злиття з інформацією руху інших PU тієї самої CU. Будь-який з кандидатів злиття з тією самою інформацією руху, що і у раніше кодованої PU видаляється з набору кандидатів злиття, щоб уникнути того що, вся CU використовує одну і ту саму інформацію руху. Згідно з цим підходом, процес для генерування набору кандидатів злиття для PU є наступним: 1. Перевіряється інформація руху для наступного блока кандидата. 6 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 2. Порівнюється інформація руху кандидата з інформацією руху для раніше кодованих PU в тій самій CU. 3. Якщо інформація руху кандидата для блока кандидата є такою самою як інформація руху для раніше кодованої PU, здійснюється перехід до етапу 1; інакше, здійснюється перехід до етапу 4. 4. Додається блок кандидат в набір кандидатів злиття. 5. Якщо всі блоки кандидати перевірені, здійснюється завершення; інакше, здійснюється перехід до етапу 1. Загалом, обмеження відносно кандидатів злиття з цим процесом дає наступні результати для типів розділення 2NxN, Nx2N та NxN: 1) випадки 2NxN/Nx2N: якщо кандидат злиття для другий PU (PU 1) має таку саму інформацію руху, що і у першої PU (PU 0), цей кандидат злиття буде встановлений як такий, що не є доступним. 2) випадок NxN: a. PU 0 та PU 1 мають одну і ту саму інформацію руху. Якщо кандидат злиття PU 3 має ту саму інформацію руху, що і PU 2, кандидата злиття встановлюють недоступним; b. PU 0 та PU 2 мають одну і ту саму інформацію руху. Якщо кандидат злиття PU 3 має ту саму інформацію руху, що і PU 1, кандидата злиття встановлюють недоступним. У той час як цей процес не усуває надмірні кандидати злиття, цей процес вимагає, щоб всі PU були кодовані/декодовані до створення набору кандидатів злиття для подальших PU. Як така, можливість паралельно обробляти множинні PU однієї CU обмежена. Засіб кодування/декодер повинен визначати кінцеву інформацію руху всіх попередніх PU в тій самій CU до побудови набору кандидатів злиття для поточної PU. Крім того, операція порівняння для кожного блока кандидата може збільшити обчислювальну складність для засобу кодування/декодера. В одному прикладі це розкриття пропонує видаляти операцію перевірки порівнянням під час генерування набору кандидатів злиття, таким чином роблячи генерування кандидатів злиття орієнтованим на паралелізацію. Розкритий підхід усуває необхідність в порівнянні інформації руху між блоками кандидатами та іншими PU з CU. Як такі набори кандидатів злиття для всіх PU з CU можуть бути згенеровані паралельно. Розкритий процес також може скорочувати обчислювальну складність здійснення кодування і декодування. Запропонований процес для кожної PU полягає в наступному: 1. Перевіряється наступний блок кандидат. 2. Додається блок кандидат в набір кандидатів. 3. Якщо всі сусідні блоки перевірені, здійснюється завершення; інакше, здійснюється перехід до етапу 1. Цей процес забезпечує уніфіковане рішення для всіх PU без урахування індексу одиниці прогнозування (наприклад, PU 0, PU 1) і без здійснення порівняння інформації руху блока кандидата з інформацією руху раніше кодованих PU. Етапи порівняння інформації руху, проілюстровані вище за текстом, можуть бути видалені. Хоча описані ітеративно, етапи цього способу можуть бути виконані паралельно. Наприклад, перший підпроцес паралельного процесу може включати в себе інструкції для виконання першого варіанту етапів 1 та 2, і другий, інший підпроцес паралельного процесу може включати в себе інструкції для виконання другого варіанту етапів 1 та 2. Також можуть бути забезпечені додаткові підпроцеси. На основі запропонованого підходу кандидат злиття, який знаходиться всередині попередньої PU, може бути включений в набір кандидатів злиття. Однак це може примусити цілу CU використовувати одну і ту саму інформацію руху. Як така, розділена CU може одержати точно так само кодовані вектори руху, що і розділення 2Nx2N і переваги розділення для зовнішнього прогнозування можуть бути обмежені. Додатково, включення таких надмірних блоків кандидатів у наборі кандидатів злиття може викликати деякі зниження продуктивності внаслідок того, що екстра біти використовуються для сигналізації надмірних кандидатів злиття. Як таке, це розкриття також пропонує видаляти кандидатів злиття з набору кандидатів злиття, якщо кандидат злиття розташований всередині іншої PU тієї самої CU. Фіг. 3A являє собою концептуальну схему, яка ілюструє блоки-кандидати для режиму злиття для розділення Nx2N CU. Потрібно зазначити, що підходи, показані на Фіг. 3A, також застосовні для типів асиметричного розділення nLx2N або nRx2N. Набір 100 кандидатів злиття показує кандидатів злиття для PU 0 з Nx2N-розділеної CU. Оскільки жоден кандидат злиття в наборі 100 кандидатів злиття не знаходиться в іншій PU тієї самої CU, всі кандидати злиття можуть залишатися в наборі 100 кандидатів злиття. Набір 102 кандидатів злиття показує кандидатів злиття для PU 1 з Nx2N-розділеної CU. Як можна бачити для набору 102 злиття для PU 1, 7 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 кандидат L злиття відбувається з PU 0 тієї самої CU. Як такий, кандидат L злиття може бути видалений/виключений з набору 102 кандидатів злиття. У цьому контексті, видалений кандидат злиття може бути розглянутий за кандидата, який видалений із заздалегідь визначеного списку кандидатів злиття. Виключений кандидат злиття може бути кандидатом злиття, який виключений зі списку кандидатів злиття по мірі виведення списку кандидатів злиття, незалежно від того, чи є цей список заздалегідь визначеним. Загалом, видалений/виключений кандидат злиття є будь-яким кандидатом злиття, який не використовується в кінцевому списку кандидатів злиття. Потрібно зазначити, що кандидату L злиття немає необхідності бути розташованим в точній позиції в PU 0 (наприклад, у випадку, коли PU 0 розділена додатково), але він може бути виключений, якщо кандидат L злиття розташований в будь-якій частині PU 0. Потрібно зазначити, що кожний з наборів 100 та 102 кандидатів злиття також має часового кандидата Т злиття, як показано на Фіг. 1. Фіг. 3B являє собою концептуальну схему, яка ілюструє блоки кандидати для режиму злиття для 2NxN-розділення CU. Потрібно зазначити, що підходи, показані на Фіг. 3B, також застосовні для типів асиметричного розділення 2NxnU або 2NxnD. Набір 104 кандидатів злиття показує кандидатів злиття для PU 0 з 2NxN-розділеної CU. Оскільки жоден кандидат злиття в наборі 104 кандидатів злиття не знаходиться в іншій PU тієї самої CU, всі кандидати злиття можуть залишатися в наборі 104 кандидатів злиття. Набір 106 кандидатів злиття показує кандидатів злиття для PU 1 з 2NxN-розділеної CU. Як можна бачити для набору 106 злиття для PU 1, кандидат А злиття відбувається з PU 0 тієї самої CU. Як такий, кандидат А злиття може бути видалений/виключений з набору 106 кандидатів злиття. Потрібно зазначити, що кандидату А злиття немає необхідності бути розташованим в точній позиції в PU 0, як показано (наприклад у випадку, коли PU 0 розділена додатково), але він може бути виключений, якщо кандидат А злиття розташований в будь-якій частині PU 0. Потрібно відмітити, також, що кожний з наборів 104 та 106 кандидатів злиття також має часового кандидата Т злиття, як показано на Фіг. 1. Фіг. 4A являє собою концептуальну схему, яка ілюструє блоки-кандидати для режиму злиття для NxN-розділення CU. Набір 108 кандидатів злиття показує кандидатів злиття для PU 0 з NxNрозділеної CU. Оскільки жоден кандидат злиття в наборі 108 кандидатів злиття не знаходиться в іншій PU тієї самої CU, всі кандидати злиття можуть залишатися в наборі 108 кандидатів злиття. Набір 110 кандидатів злиття показує кандидатів злиття для PU 1 з NxN-розділеної CU. Як можна бачити для набору 110 злиття для PU 1, кандидати L та BL злиття відбуваються відповідно з PU 0 і PU 2 тієї самої CU. Як такі, кандидати L та BL злиття можуть бути видалені/виключені з набору 110 кандидатів злиття. Потрібно зазначити, що кандидатам L та BL злиття немає необхідності бути розташованими в точній позиції в PU 0 і PU 2 як показано (наприклад у випадку, коли PU 0 або PU 2 розділені додатково), але вони можуть бути виключені, якщо кандидати L і/або BL злиття розташовані в будь-якій частині PU 0 і/або PU 2. Набір 112 кандидатів злиття показує кандидатів злиття для PU 2 з NxN-розділеної CU. Як можна бачити для набору 112 злиття для PU 2, кандидати А та RA злиття відбуваються відповідно з PU 0 і PU 1 тієї самої CU. Як такі, кандидати А та RA злиття можуть бути видалені/виключені з набору 112 кандидатів злиття. Потрібно зазначити, що кандидатам А та RA злиття немає необхідності бути розташованими в точній позиції в PU 0 і PU 1 як показано (наприклад у випадку, коли PU 0 або PU 1 розділені додатково), але вони можуть бути виключені, якщо кандидати А і/або RA злиття розташовані в будь-якій частині PU 0 і/або PU 1. Набір 114 кандидатів злиття показує кандидатів злиття для PU 3 з NxN-розділеної CU. Як можна бачити для набору 114 злиття для PU 3, кандидати LA, А і L злиття відбуваються відповідно з PU 0, PU 1 і PU 2 тієї самої CU. Як такі, кандидати LA, А і L злиття можуть бути видалені/виключені з набору 114 кандидатів злиття. Потрібно зазначити, що кандидатам LA, А та L злиття немає необхідності бути розташованими в точній позиції в PU 0, PU 1 і PU 2 як показано (наприклад у випадку, коли PU 0, PU 1 або PU 2 розділені додатково), але вони можуть бути виключені, якщо кандидати LA, А і/або L злиття розташовані в будь-якій частині PU 0, PU 1 і/або PU 2. Потрібно зазначити, що кожний з наборів 108, 110, 112 та 114 кандидатів злиття також має часового кандидата Т злиття, як показано на Фіг. 1. Хоча приклади, описані вище за текстом розглядають тільки типи розділення 2NxN, Nx2N та NxN, інші типи розділення (наприклад AMP, геометричне розділення руху (GMP) тощо) також можуть одержати користь з розкритих підходів. Загалом, запропоновані підходи визначають набір кандидатів злиття без порівняння інформації руху кандидатів злиття з інформацією руху яких-небудь інших одиниць прогнозування. Крім того, кандидати злиття в наборі кандидатів 8 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 злиття для поточної одиниці прогнозування можуть бути видалені/виключені, якщо вони знаходяться в іншій одиниці прогнозування тієї самої одиниці кодування. В іншому прикладі для режиму розділення NxN всі кандидати злиття кожної одиниці прогнозування використовуються незалежно від якого-небудь використання іншою одиницею прогнозування. Фіг. 4B являє собою концептуальну схему, яка ілюструє приклад блоків кандидатів для режиму злиття для розділення NxN одиниці кодування, де жоден з кандидатів злиття не віддаляється/виключає незалежно від їх позиції в іншій PU. Як показано на Фіг. 4B, всі кандидати (в тому числі часовий кандидат Т) використовуються для кожної з PU 116, 118, 120 та 122. Для інших режимів розділення, таких як 2NxN, Nx2N і асиметричних режимів, таких як 2NxnD, 2NxnU, nLx2N та nRx2N, виключення деяких кандидатів для поточної PU, які розташовані всередині іншої PU тієї самої CU, застосовується згідно з процесом, описаним вище за текстом. В іншому прикладі розкриття генерується набір кандидатів злиття, який використовує всі потенційні кандидати злиття в наборі, показаному на Фіг. 1 для одиниці 1 прогнозування в режимах розділення Nx2N та 2NxN, у випадку якщо одиниця 0 прогнозування в конкретному режимі розділення використовує кандидата злиття (тобто фактично вибраного кандидата в прогнозуванні вектора руху), який не дублює кандидата злиття, який би використовувався в режимі розділення 2Nx2N. В іншому прикладі для режиму розділення NxN, всі кандидати злиття використовуються незалежно від якого-небудь використання іншою одиницею прогнозування. Правила для генерування набору кандидатів злиття згідно з цим прикладом є наступними: 1. Режим розділення Nx2N: Кандидат злиття зліва (L) PU 1 використовується, якщо індекс злиття (тобто фактично вибраний кандидат злиття, що виконується), який використовується для PU 0, є RA, А або Т; інакше L не використовується (в порівнянні з попереднім прикладом розкриття, де L ніколи не використовується для PU 1). 2. Режим розділення 2NxN: Кандидат злиття зверху (А) PU 1 використовується, якщо індекс злиття, що використовується для PU 0, є BL, L або Т; інакше А не використовується (в порівнянні з попереднім прикладом розкриття, де А ніколи не використовується для PU 1). 3. Режим розділення NxN: Всі кандидати прогнозування всіх PU розглядаються як достовірні. У прикладі Nx2N застосування кандидата L злиття для PU 1 не стає дублюванням режиму розділення 2Nx2N, оскільки місцеположення кандидатів злиття RA, А або Т для PU 0 в режимі розділення Nx2N не повинні бути обов'язково використані для розділення 2Nx2N. Аналогічно, в прикладі 2NxN, застосування кандидата А злиття для PU 1 не стає дублюванням режиму розділення 2Nx2N, оскільки кандидати злиття BL, L або Т для PU 0 не повинні бути обов'язково використані для розділення 2Nx2N. Фіг. 5 являє собою блок-схему, яка ілюструє приклад системи 10 кодування і декодування відео, яка може бути виконана з можливістю застосування підходів для генерування векторів руху кандидатів у режимі злиття відповідно до прикладів цього розкриття. Як показано на Фіг. 5, система 10 включає в себе пристрій-джерело 12, яке передає закодоване відео пристроюадресату 14 через канал 16 зв'язку. Дані закодованого відео також можуть бути збережені на носії 34 зберігання або файловому сервері 36 і можуть бути доступні за допомогою пристроюадресата 14 по мірі необхідності. Коли збережені на носій зберігання або файловий сервер, засіб 20 кодування відео може забезпечити дані кодованого відео іншому пристрою, наприклад мережному інтерфейсу, компакт диску (CD), пристрою запису Blu-ray дисків або дисків цифрового відео або пристрою-установці тиснення або іншим пристроям, для збереження даних кодованого відео на носій зберігання. Аналогічний пристрій, окремо від декодера 30 відео, такий як мережний інтерфейс, засіб зчитування CD або DVD, або подібне, може витягувати дані кодованого відео з носія зберігання і забезпечувати витягнуті дані декодеру 30 відео. Пристрій-джерело 12 і пристрій-адресат 14 можуть містити будь-який з широкого діапазону пристроїв, в тому числі мобільні пристрої, настільні комп'ютери, комп'ютери-ноутбуки (тобто лептопи), планшетні комп'ютери, телевізійні приставки, телефонні трубки, такі як так звані смартфони, телевізори, камери, пристрої відображення, цифрові медіа-програвачі, відео-ігрові консолі або подібне. У багатьох випадках, такі пристрої можуть бути обладнані для бездротового зв'язку. Отже, канал 16 зв'язку може містити бездротовий канал, дротовий канал або комбінацію бездротового і дротового каналів, підходящу для передачі даних закодованого відео. Аналогічно, файловий сервер 36 може здійснювати доступ пристроєм-адресатом 14 за допомогою будь-якого стандарту з'єднання для даних, в тому числі Інтернет-з'єднання. Це може включати в себе бездротовий канал (наприклад, Wi-Fi з'єднання), дротове з'єднання 9 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 (наприклад, DSL, кабельний модем) або їх комбінацію, яка є підходящою для здійснення доступу до даних закодованого відео, що зберігаються на файловому сервері. Підходи для генерування векторів руху кандидатів у режимі злиття відповідно до прикладів цього розкриття можуть бути застосовані до кодування відео в підтримку будь-якого з різноманіття мультимедійних застосувань, таких як телевізійні мовлення через повітря, кабельні передачі телебачення, супутникові передачі телебачення, потокові передачі відео, наприклад, через Інтернет, здійснення кодування цифрового відео для збереження на носії зберігання даних, декодування цифрового відео, що зберігається на носії зберігання даних, або інші застосування. У деяких прикладах, система 10 може бути сконфігурована для підтримки односторонньої або двосторонньої передачі відео для підтримки застосувань, таких як потокова передача відео, відтворення відео, мовлення відео і/або відеотелефонія. У прикладі за Фіг. 5 пристрій-джерело 12 включає в себе джерело 18 відео, засіб 20 кодування відео, модулятор/демодулятор 22 і передавач 24. У пристрої-джерелі 12, джерело 18 відео може включати в себе джерело, таке як пристрій захоплення відео, такий як відеокамера, відеоархів, що містить раніше захоплене відео, інтерфейс видачі відео, для прийому відео від постачальника контенту відео і/або систему комп'ютерної графіки для генерування даних комп'ютерної графіки як вихідного відео, або комбінацію таких джерел. Як один приклад, якщо джерело 18 відео є відеокамерою, пристрій-джерело 12 і пристрій-адресат 14 можуть формувати так звані телефони з камерами або відеотелефони. Однак, підходи, описані в цьому розкритті можуть бути застосовні до кодування відео загалом, і можуть бути застосовані до бездротових і/або дротових застосувань, або застосування, в якому дані закодованого відео зберігаються на локальному диску. Захоплене, заздалегідь захоплене або згенероване комп'ютером відео може бути закодоване засобом 20 кодування відео. Інформація закодованого відео може бути модульована модемом 22 згідно зі стандартом зв'язку, таким як протокол бездротового зв'язку, і передані до пристрою-адресата 14 за допомогою передавача 24. Модем 22 може включати в себе різні змішувачі, фільтри, підсилювачі або інші компоненти, виконані для модуляції сигналу. Передавач 24 може включати в себе схеми, спроектовані для передачі даних, в тому числі підсилювачі, фільтри і одну або більше антен. Захоплене, заздалегідь захоплене або згенероване комп'ютером відео, яке кодується засобом 20 кодування відео також може бути збережене на носій 34 даних або файловий сервер 36 для споживання пізніше. Носій 34 зберігання може включати в себе диски Blu-ray, DVD, CD-ROM, флеш-пам'ять, або будь-які інші цифрові носії даних для збереження закодованого відео. Закодоване відео, збережене на носії 34 даних, потім може бути доступне за допомогою пристрою-адресата 14 для декодування і відтворення. Файловий сервер 36 може бути будь-яким типом сервера, здатного зберігати закодоване відео і передавати це закодоване відео пристрою-адресату 14. Зразкові файлові сервери включають в себе веб-сервер (наприклад, для веб-сайта), FTP сервер, що підключаються до мережі пристрою зберігання (NAS), локальний дисковий накопичувач, або будь-який інший тип пристрою здатного зберігати дані закодованого відео і передавати їх пристрою-адресату. Передача даних закодованого відео від файлового сервера 36 може бути потоковою передачею, передачею завантаження або їх комбінацією. Файловий сервер 36 може бути доступний пристроєм-адресатом 14 за допомогою будь-якого стандарту з'єднання для даних, в тому числі Інтернет-з'єднання. Це може включати в себе бездротовий канал (наприклад, Wi-Fi з'єднання), дротове з'єднання (наприклад, DSL, кабельний модем, Ethernet, USB тощо) або їх комбінацію, яка є підходящою для здійснення доступу до даних закодованого відео, що зберігаються на файловому сервері. Пристрій-адресат 14 в прикладі Фіг. 5 включає в себе приймач 26, модем 28, декодер 30 відео і пристрій 32 відображення. Приймач 26 пристрою-адресата 14 приймає інформацію по каналу 16 і модем 28 демодулює інформацію для вироблення демодульованого бітового потоку для декодера 30 відео. Інформація, що передається по каналу 16, може включати в себе різноманіття інформації синтаксису, що генерується засобом 20 кодування відео для використання декодером 30 відео при декодуванні даних відео. Такий синтаксис також може бути включений в дані закодованого відео, що зберігаються на носії 34 даних або файловому сервері 36. Кожний із засобу 20 кодування відео і декодера 30 відео може формувати відповідний засіб кодування-декодер (CODEC), який здатний кодувати або декодувати дані відео. Пристрій 32 відображення може бути об'єднаний з або бути зовнішнім відносно пристроюадресата 14. У деяких прикладах пристрій-адресат 14 може включати в себе інтегрований пристрій відображення і також бути сконфігурований для взаємодії із зовнішнім пристроєм 10 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 відображення. В інших прикладах пристрій-адресат 14 може бути пристроєм відображення. Загалом, пристрій 32 відображення відображає дані декодованого відео користувачу і може містити будь-який з різноманіття пристроїв відображення, таких як рідкокристалічний пристрій відображення (LCD), плазмовий пристрій відображення, пристрій відображення на органічних світлодіодах (OLED) або інший тип пристрою відображення. У прикладі за Фіг. 5 канал 16 зв'язку може містити будь-яке бездротове або дротове середовище зв'язку, таке як радіочастотний (RF) спектр або одну або більше фізичних ліній передачі, або комбінацію бездротового і дротового середовища. Канал 16 зв'язку може формувати частину пакетної мережі, такої як локальна мережа, широкомасштабна мережа або глобальна мережа, така як Інтернет. Канал 16 зв'язку загалом представляє будь-який підходящій носій зв'язку, або сукупність різних носіїв зв'язку, для передачі даного відео від пристрою-джерела 12 пристрою-адресату 14, в тому числі будь-яку підходящу комбінацію дротового або бездротового носіїв. Канал 16 зв'язку може включати в себе маршрутизатори, комутатори, базові станції або будь-яке інше обладнання, яке може бути придатним для сприяння зв'язку від пристрою-джерела 12 до пристрою-адресата 14. Засіб 20 кодування відео і декодер 30 відео можуть функціонувати згідно зі стандартом стиснення відео, таким як стандарт Високоефективного Кодування Відео (HEVC), що розробляється в цей час, і можуть відповідати Тестовій Моделі HEVC (HM). Як альтернатива, засіб 20 кодування відео і декодер 30 відео можуть функціонувати згідно з іншими приватними або промисловими стандартами, такими як стандарт ITU-T H.264, який альтернативно називається MPEG-4, Частина 10, Вдосконалене Кодування Відео (AVC) або розширення таких стандартів. Підходи цього розкриття, однак, не обмежені яким-небудь конкретним стандартом кодування. Інші приклади включають в себе MPEG-2 та ITU-T H.263. Хоча не показано на Фіг. 5, в деяких аспектах кожний із засобу 20 кодування відео і декодера 30 відео може бути об'єднаний зі засобом кодування і декодером аудіо і може включати в себе належні блоки MUX-DEMUX, або інше апаратне забезпечення і програмне забезпечення, для обробки кодування і аудіо і відео в загальному потоці даних або роздільних потоках даних. Якщо застосовно, в деяких прикладах, блоки MUX-DEMUX можуть відповідати протоколу мультиплексора ITU H.223 або іншим протоколам, таким як протокол користувацьких дейтаграм (UDP). Кожний із засобу 20 кодування відео і декодера 30 відео може бути реалізований як будьякий з різноманіття підходящих схем засобу кодування, таких як один або більше мікропроцесорів, цифрові сигнальні процесори (DSP), спеціалізовані інтегральні схеми (ASIC), програмовані користувачем вентильні матриці (FPGA), дискретна логіка, програмне забезпечення, програмно-апаратне забезпечення або будь-яка їх комбінація. Коли підходи реалізовуються частково в програмному забезпеченні, пристрій може зберігати інструкції для програмного забезпечення у підходящому нетимчасовому зчитуваному комп'ютером носії і виконувати інструкції в апаратному забезпеченні використовуючи один або більше процесорів для виконання підходів цього розкриття. Кожний із засобу 20 кодування відео і декодера 30 відео може бути включений в один або більше засобів кодування або декодерів, будь-який з яких може бути інтегрований як частина об'єднаного засобу кодування/декодера (CODEC) у відповідному пристрої. Засіб 20 кодування відео може реалізувати будь-який або всі підходи цього розкриття для генерування векторів руху кандидатів у режимі злиття в процесі кодування відео. Аналогічно декодер 30 відео може реалізувати будь-який або всі ці підходи для генерування векторів руху кандидатів у режимі злиття в процесі декодування відео. Кодер ("coder") відео, як описано в цьому розкритті, може стосуватися засобу кодування ("encoder") відео або декодеру ("decoder") відео. Аналогічно блок кодування відео може стосуватися засобу кодування відео або декодеру відео. Аналогічно кодування відео може стосуватися кодування відео або декодування відео. В одному прикладі розкриття засіб 20 кодування відео пристрою-джерела 12 може бути сконфігуроване для визначення набору кандидатів злиття для поточної одиниці прогнозування поточної одиниці кодування, при цьому набір кандидатів злиття визначається без порівняння інформації руху кандидата злиття в наборі кандидатів злиття з інформацією руху яких-небудь інших одиниць прогнозування, і виконання процесу прогнозування вектора руху злиття для поточної одиниці прогнозування з використанням набору кандидатів злиття. Засіб 20 кодування відео може бути додатково сконфігурований для видалення кандидатів злиття з набору кандидатів злиття, які знаходяться в іншій одиниці прогнозування поточної одиниці кодування. В іншому прикладі розкриття декодер 30 відео пристрою-джерела 12 може бути сконфігурований для визначення набору кандидатів злиття для поточної одиниці прогнозування поточної одиниці кодування, при цьому набір кандидатів злиття визначається без порівняння 11 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 інформації руху кандидата злиття в наборі кандидатів злиття з інформацією руху яких-небудь інших одиниць прогнозування, і для виконання процесу прогнозування вектора руху злиття для поточної одиниці прогнозування з використанням набору кандидатів злиття. Декодер 30 відео може бути додатково сконфігурований для видалення кандидатів злиття з набору кандидатів злиття, які знаходяться в іншій одиниці прогнозування поточної одиниці кодування. Фіг. 6 являє собою блок-схему, яка ілюструє приклад засобу 20 кодування відео, який може використовувати підходи для генерування векторів руху кандидатів у режимі злиття, як описано в цьому розкритті. Засіб 20 кодування відео буде описаний в контексті кодування HEVC для цілей ілюстрації, але без обмеження цим розкриттям, що стосується інших способів або стандартів кодування. Засіб 20 кодування відео може виконувати внутрішнє і зовнішнє кодування CU у відеокадрах. Внутрішнє кодування покладається на просторове прогнозування для скорочення або видалення просторової надмірності в даному відео в межах даного відеокадру. Зовнішнє кодування покладається на часове прогнозування для скорочення або видалення часової надмірності між поточним кадром і раніше кодованими кадрами послідовності відео. Внутрішній режим (I-режим) може стосуватися будь-якого з декількох просторово-основаних режимів стиснення відео. Зовнішній режим такий як однонаправлене прогнозування (Р-режим) або двонаправлене прогнозування (В-режим) може стосуватися будь-якого з декількох основаних на часі режимів стиснення даних. Як показано на Фіг. 6, засіб 20 кодування відео приймає поточний блок відео в кадрі відео, який повинен бути закодований. У прикладі на Фіг. 6, засіб 20 кодування відео включає в себе блок 44 компенсації руху, блок 42 оцінки руху, блок 46 внутрішнього прогнозування, буфер 64 опорних кадрів, суматор 50, модуль 52 перетворення, блок 54 квантування і блок 56 ентропійного кодування. Модуль 52 перетворення, проілюстрований на Фіг. 6, являє собою структуру або пристрій, який застосовує фактичне перетворення або комбінації перетворення до блока залишкових даних, і його не треба плутати з блоком коефіцієнтів перетворення, які можуть бути названі як одиниця перетворення (TU) CU. Для відновлення блока відео засіб 20 кодування відео також включає в себе блок 58 оберненого квантування, модуль 60 оберненого перетворення і суматор 62. Фільтр видалення блочності (не показаний на Фіг. 6) також може бути включений в склад, щоб фільтрувати межі блока для видалення артефактів блочності з відновленого відео. Якщо необхідно, фільтр видалення блочності типово фільтрує виведення суматора 62. Під час процесу кодування засіб 20 кодування відео приймає кадр відео або зріз, який повинен бути кодований. Кадр або зріз можуть бути поділені на множинні блоки відео, наприклад найбільші одиниці кодування (LCU). Блок 42 оцінки руху і блок 44 компенсації руху виконують кодування із зовнішнім прогнозуванням прийнятого блока відео відносно одного або більше блоків у одному або більше опорних кадрах для забезпечення часового стиснення. Блок 46 внутрішнього прогнозування може виконувати кодування з внутрішнім прогнозуванням прийнятого блока відео відносно одного або більше сусідніх блоків у тому самому кадрі або зрізі, що і блок, який повинен бути кодований, для забезпечення просторового стиснення. Блок 40 вибору режиму може вибирати один з режимів кодування, внутрішнього або зовнішнього, наприклад, на основі результатів помилки (тобто спотворення) для кожного режиму, і забезпечує внутрішньо- або зовні-прогнозований блок, що одержується в результаті, (наприклад, одиницю (PU) прогнозування) суматору 50 для генерування залишкового блока даних і суматору 62 для відновлення закодованого блока для використання в опорному кадрі. Суматор 62 об'єднує прогнозований блок з обернено квантованими, обернено перетвореними даними з модуля 60 оберненого перетворення для блока, щоб відновити закодований блок, як описано більш детально нижче за текстом. Деякі кадри відео можуть бути позначені як I-кадри, де всі блоки в I-кадрі кодуються в режимі внутрішнього прогнозування. У деяких випадках, блок 46 внутрішнього прогнозування може виконувати кодування з внутрішнім прогнозуванням блока в Р- або В-кадрі, наприклад коли пошук руху, виконаний блоком 42 оцінки руху, не має результатом достатнє прогнозування блока. Блок 42 оцінки руху і блок 44 компенсації руху можуть бути високо інтегрованими, але проілюстровані окремо для концептуальних цілей. Оцінка руху (або пошук руху) є процесом генерування векторів руху, який оцінює рух для блоків відео. Вектор руху, наприклад може вказувати зміщення одиниці прогнозування в поточному кадрі відносно опорної вибірки опорного кадру. Блок 42 оцінки руху обчислює вектор руху для одиниці прогнозування зовнікодованого кадру за допомогою порівняння одиниці прогнозування з опорними вибірками опорного кадру, що зберігається в буфері 64 опорних кадрів. Опорна вибірка може бути блоком, який шукають для близької відповідності частини CU, яка включає в себе кодовану PU, в 12 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 показниках піксельної різниці, яка може бути визначена сумою абсолютних різниць (SAD), сумою квадратів різниць (SSC) або іншими метриками різниць. Опорна вибірка може виникати де завгодно в межах опорного кадру або опорного зрізу. Частина опорного кадру, ідентифікована вектором руху може бути вказана як опорна вибірка. Блок 44 компенсації руху може обчислювати значення прогнозування для одиниці прогнозування поточної CU, наприклад за допомогою витягання опорної вибірки, ідентифікованої за допомогою вектора руху для PU. У деяких підходах кодування відео блок 42 оцінки руху відправляє обчислений вектор руху, опорний кадр і напрямок прогнозування (наприклад напрямок виходячи з того, чи передує у часі опорний кадр або чи йде за поточним кадром) блоку 56 ентропійного кодування і блоку 44 компенсації руху. Інші підходи кодування відео використовують процес прогнозування вектора руху для кодування вектора руху. Процес прогнозування вектора руху може бути вибраний з числа множини режимів, в тому числі режиму злиття. У режимі злиття засіб кодування розглядає набір блоків кандидатів злиття і вибирає блок, який має такий самий (або найбільш близько відповідає) вектор руху, опорний кадр і напрямок прогнозування, що і поточний блок, який повинен бути кодований. Це робиться, наприклад, за допомогою перевірки кожного блока кандидата на черги і вибору одного, який дає найкращі робочі характеристики залежності спотворення від швидкості передачі, як тільки його вектор руху, опорний кадр і напрямок прогнозування копіюються в поточний блок. Потім, замість того, щоб сигналізувати цю інформацію вектора руху (тобто вектор руху, опорний кадр і напрямок прогнозування) в закодованому бітовому потоку відео, засіб кодування сигналізує номер індексу для вибраного кандидата вектора руху. Номер індексу ідентифікує вибраний вектор руху кандидат з набору векторів руху кандидатів. Декодер може скопіювати інформацію вектора руху з кандидата вектора руху для використання для поточного блока. У прикладах описаних вище за текстом, сигналізація інформації вектора руху в закодованому бітовому потоці не обов'язково вимагає передачі в реальному часі таких елементів із засобу кодування декодеру, але в свою чергу означає, що така інформація кодується в бітовий потік і робиться доступною декодеру будь-яким чином. Це може включати в себе передачу в реальному часі (наприклад у відеоконференції), а також збереження закодованого бітового потоку на зчитуваному комп'ютером носії для використання в майбутньому декодером (наприклад при потоковій передачі, завантаженні, доступі до диска, доступі до карти, DVD, Blu-ray тощо). Відповідно до прикладів цього розкриття, описаних вище за текстом, для режиму злиття, набір кандидатів злиття може бути згенерований без порівняння інформації руху яких-небудь кандидатів злиття з інформацією руху інших PU в межах тієї самої CU, що і поточна PU. Додатково це розкриття також пропонує видаляти кандидатів злиття з набору кандидатів злиття, якщо кандидат злиття розташований всередині іншої PU тієї самої CU. Генерування кандидатів злиття може бути здійснене блоком 44 компенсації руху, блоком 42 компенсації руху або якою-небудь іншою фіксованою функцією або структурою програмованого апаратного забезпечення засобу 20 кодування відео. Як один приклад для Nx2N-розділення CU всі кандидати злиття (наприклад, кандидати злиття, показані на Фіг. 1) можуть бути використані для PU 0. Для PU 1 кандидат L злиття видаляється/виключається зі списку кандидатів злиття (див. Фіг. 3A), оскільки він є в PU 0. В іншому прикладі для 2NxN-розділення CU, всі кандидати злиття (наприклад, кандидати злиття, показані на Фіг. 1) можуть бути використані для PU 0. Для PU 1, кандидат А злиття видаляється зі списку кандидатів злиття (див. Фіг. 3B), оскільки він є в PU 0. Як інший приклад для NxN-розділення CU, всі кандидати злиття (наприклад, кандидати злиття, показані на Фіг. 1) можуть бути використані для PU 0. Для PU 1, кандидати L та BL злиття видаляються/виключаються зі списку кандидатів злиття (див. Фіг. 4A), оскільки вони є відповідно в PU 0 та PU 2. Для PU 2 кандидати А та RA злиття видаляються/виключаються зі списку кандидатів злиття (див. Фіг. 4A), оскільки вони є відповідно в PU 0 та PU 1. Для PU 3 кандидати LA, А та L злиття видаляються/виключаються зі списку кандидатів злиття (див. Фіг. 4A), оскільки вони є відповідно в PU 0, PU 1 та PU 2. З цієї причини, PU 0 може використовувати кандидатів BL, L, LA, А, RA та Т злиття. PU 1 може використовувати кандидатів LA, А, RA та Т злиття. PU 2 може використовувати кандидатів BL, L, LA, і Т злиття. PU 3 може використовувати кандидатів BL, RA та Т злиття. У ще одному іншому прикладі для режиму розділення NxN, всі кандидати злиття кожної одиниці прогнозування використовуються незалежно від якого-небудь використання іншою одиницею прогнозування (див. Фіг. 4B). Для інших режимів розділення, таких як 2NxN, Nx2N і асиметричних режимів, таких як 2NxnD, 2NxnU, nLx2N та nRx2N, виключення деяких кандидатів 13 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 для поточної PU, які розташовані всередині іншої PU тієї самої CU, застосовується згідно з процесом, описаним вище за текстом. Повертаючись до Фіг. 6, блок 46 внутрішнього прогнозування може виконувати внутрішнє прогнозування відносно прийнятого блока, як альтернативу зовнішньому прогнозуванню, що виконується блоком 42 оцінки руху і блоком 44 компенсації руху. Блок 46 внутрішнього прогнозування може прогнозувати прийнятий блок відносно сусідніх, раніше кодованих блоків, наприклад, блоків зверху, зверху і праворуч, зверху і зліва, або зліва від поточного блока, передбачаючи для блоків порядок кодування зліва направо, зверху вниз. Блок 46 внутрішнього прогнозування може бути сконфігурований з рядом різних режимів внутрішнього прогнозування. Наприклад, блок 46 внутрішнього прогнозування може бути сконфігурований з деяким числом режимів направленого прогнозування, наприклад тридцяти чотирма режимами направленого прогнозування, на основі розміру кодованої CU. Блок 46 внутрішнього прогнозування може вибирати режим внутрішнього прогнозування за допомогою, наприклад, обчислення значень помилок прогнозування для різних режимів внутрішнього прогнозування і вибору режиму, який дає найменше значення помилки. Режими направленого прогнозування можуть включати в себе функції для об'єднання значень просторово сусідніх пікселів і застосування об'єднаних значень до одного або більше піксельних позицій в PU. Як тільки значення для всіх піксельних позицій в PU були обчислені, блок 46 внутрішнього прогнозування може обчислювати значення помилки для режиму прогнозування на основі піксельних різниць між обчисленими і прогнозованими значеннями PU і прийнятим вихідним блоком, який повинен бути кодований. Блок 46 внутрішнього прогнозування може продовжувати тестування режимів внутрішнього прогнозування доти, доки не буде відкритий режим внутрішнього прогнозування, який виробляє прийнятне значення помилки. Блок 46 внутрішнього прогнозування потім може відправляти PU суматору 50. Засіб 20 кодування відео формує залишковий блок, який може включати в себе один блок сигналу яскравості і два блоки кольоровості, за допомогою віднімання даних прогнозування, обчислених блоком 44 компенсації руху або блоком 46 внутрішнього прогнозування з вихідного блока відео, що кодується. Суматор 50 представляє компонент або компоненти, які виконують цю операцію віднімання. Залишковий блок може відповідати двомірній матриці значень піксельних різниць, де кількість значень в залишковому блоці те саме, що і кількість пікселів у PU, що відповідає залишковому блоку. Значення в залишковому блоці можуть відповідати різницям, тобто помилці, між значеннями спільно розміщених пікселів у PU і у вихідному блоці, який повинен бути кодований. Така операція застосовується і до компонентів сигналу яскравості і кольоровості, так що різниці можуть бути різницями сигналів яскравості або кольоровості залежно від типу блока, який кодується. Модуль 52 перетворення може формувати одну або більше одиниць перетворення (TU) із залишкового блока. Модуль 52 перетворення вибирає перетворення з числа множини перетворень. Перетворення може бути вибране на основі однієї або більше характеристик кодування, таких як розмір блока, режим кодування або подібне. Модуль 52 перетворення потім застосовує вибране перетворення до TU, виробляючи блок відео, що містить двомірний масив коефіцієнтів перетворення. Модуль 52 перетворення може відправляти одержані в результаті коефіцієнти перетворення блока 54 квантування. Блок 54 квантування може потім квантувати коефіцієнти перетворення. Блок 56 ентропійного кодування потім може виконувати сканування квантованих коефіцієнтів перетворення в матриці згідно з режимом сканування. Це розкриття описує блок 56 ентропійного кодування як такий, що виконує сканування. Однак, потрібно розуміти, що в інших прикладах, інші блоки обробки, такі як блок 54 квантування, можуть виконувати згадане сканування. Як тільки коефіцієнти перетворення проскановані в одномірний масив, блок 56 ентропійного кодування може застосовувати ентропійне кодування, таке як контекстне адаптивне кодування із змінною довжиною слова (CAVLC), контекстне адаптивне двійкове арифметичне кодування (CABAC), основане на синтаксисі контекстно-адаптивне двійкове арифметичне кодування (SBAC), або іншу методологію ентропійного кодування, до коефіцієнтів. Ентропійне кодування також може бути застосоване до елементів синтаксису, таких як елементи синтаксису, що використовуються в режимі злиття. Для виконання CAVLC блок 56 ентропійного кодування може вибирати код із змінною довжиною слова для символу, який повинен бути кодований. Кодові слова в VLC можуть бути побудовані так, що відносно більш короткі коди відповідають більш імовірним символам, тоді як більш довгі коди відповідають менш імовірним символам. Таким чином, використання VLC може 14 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 досягнути збережених бітів за рахунок, наприклад, використання рівно-довгих кодових слів для кожного символу, який повинен бути переданий. Для виконання CABAC блок 56 ентропійного кодування може вибирати контекстну модель для застосування до деякого контексту для кодування символів, які повинні бути передані. У випадку коефіцієнтів перетворення, контекст може стосується того, наприклад, чи є сусідні значення ненульовими чи ні. Блок 56 ентропійного кодування також може ентропійно кодувати елементи синтаксису, такі як сигнал, що представляє вибране перетворення. Відповідно до методик цього розкриття, блок 56 ентропійного кодування може вибирати контекстну модель, що використовується для кодування цих елементів синтаксису на основі, наприклад, напрямку внутрішнього прогнозування для режимів внутрішнього прогнозування, позиції сканування коефіцієнта, що відповідає елементам синтаксису, типу блока і/або типу перетворення, серед інших факторів, що використовуються для вибору контекстної моделі. Услід за ентропійним кодуванням блоком 56 ентропійного кодування одержане в результаті закодоване відео може бути передане іншому пристрою, такому як декодер 30 відео, або архівоване для більш пізньої передачі або витягання. У деяких випадках блок 56 ентропійного кодування або інший блок засобу 20 кодування відео може бути сконфігурований для виконання інших функцій кодування додатково до ентропійного кодування. Наприклад, блок 56 ентропійного кодування може бути сконфігурований для визначення значень шаблона кодованого блока (CBP) для CU та PU. Також, в деяких випадках блок 56 ентропійного кодування може виконувати кодування по довжинах серій коефіцієнтів. Блок 58 оберненого квантування і модуль 60 оберненого перетворення застосовує обернене квантування та обернене перетворення відповідно для відновлення залишкового блока в піксельній ділянці, наприклад, для використання при відновленні опорного блока в майбутньому. Блок 44 компенсації руху може обчислювати опорний блок за допомогою додавання залишкового блока до предиктивного блока, сформованого з одного із згаданих кадрів буфера 64 опорних кадрів, який також може називатися буфером декодованих (графічних) зображень. Блок 44 компенсації руху також може застосовувати один або більше інтерполяційних фільтрів до відновленого опорного блока для обчислення субцілочислових піксельних значень для використання при оцінці руху. Суматор 62 додає відновлений залишковий блок до блока прогнозування скомпенсованого руху, що виробляється блоком 44 компенсації руху для вироблення відновленого блока відео для збереження в буфері 64 опорних кадрів. Відновлений блок відео може бути використаний блоком 42 оцінки руху і блоком 44 компенсації руху як опорний блок для зовнішнього кодування блока в іншому, пізніше кодованому кадрі відео. Фіг. 7 являє собою блок-схему, яка ілюструє приклад декодера 30 відео, який декодує закодовану послідовність відео. У прикладі на Фіг. 7 декодер 30 відео включає в себе блок 70 ентропійного декодування, блок 72 компенсації руху, блок 74 внутрішнього прогнозування, блок 76 оберненого квантування, модуль 78 оберненого перетворення, буфер 82 опорних кадрів і суматор 80. Декодер 30 відео може, в деяких прикладах, виконувати прохід декодування загалом обернений проходу кодування, описаному відносно засобу 20 кодування відео (див. Фіг. 6). Блок 70 ентропійного декодування виконує процес ентропійного декодування відносно закодованого бітового потоку, щоб витягнути одномірний масив коефіцієнтів перетворення. Процес ентропійного декодування, що використовується, залежить від ентропійного кодування, що використовується засобом 20 кодування відео (наприклад, CABAC, CAVLC тощо). Процес ентропійного кодування, що використовується засобом кодування, може бути сигналізований в закодованому бітовому потоці або може бути зумовленим процесом. У деяких прикладах блок 70 ентропійного декодування (або блок 76 оберненого квантування) може сканувати прийняті значення використовуючи сканування, що дзеркально відображає режим сканування, який використовується блоком 56 ентропійного кодування (або блоком 54 квантування) засобу 20 кодування відео. Хоча сканування коефіцієнтів як альтернатива може бути виконане в блоці 76 оберненого квантування, сканування буде описане для цілей ілюстрації як таке, що виконується блоком 70 ентропійного декодування. Додатково, хоча показані як окремі функціональні блоки для полегшення ілюстрації, структура і функціональність блока 70 ентропійного декодування, блока 76 оберненого квантування та інших блоків декодера 30 відео можуть бути високо інтегровані один з одним. Блок 76 оберненого квантування обернено квантує, тобто деквантує, квантовані коефіцієнти перетворення, забезпечені в бітовому потоці і декодовані блоком 70 ентропійного декодування. Процес оберненого квантування може включати в себе традиційний процес, наприклад 15 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 аналогічний процесам, запропонованим для HEVC або визначеним стандартом декодування H.264. Процес оберненого квантування може включати в себе використання параметра QP квантування, обчисленого засобом 20 кодування відео для CU для визначення ступеня квантування і, аналогічно, ступеня оберненого квантування, яке повинне бути застосоване. Блок 76 оберненого квантування може здійснювати обернене квантування коефіцієнтів перетворення або до, або після того, як коефіцієнти конвертовані з одномірного масиву в двомірний масив. Модуль 78 оберненого перетворення застосовує обернене перетворення до обернено квантованих коефіцієнтів перетворення. У деяких прикладах модуль 78 оберненого перетворення може визначити обернене перетворення на основі сигналізації від засобу 20 кодування відео або за допомогою виведення перетворення з однієї або більше характеристик кодування, таких як розмір блока, режим кодування або подібне. У деяких прикладах, модуль 78 оберненого перетворення може визначити перетворення для застосування до поточного блока на основі сигналізованого перетворення в кореневому вузлі квадродерева для LCU, що включає в себе поточний блок. Як альтернатива, перетворення може бути сигналізоване в корені квадродерева TU для кінцевого вузла CU в квадродереві LCU. У деяких прикладах, модуль 78 оберненого перетворення може застосовувати каскадне обернене перетворення, при якому модуль 78 оберненого перетворення застосовує два або більше обернених перетворень до коефіцієнтів перетворення декодованого поточного блока. Блок 74 внутрішнього прогнозування може генерувати дані прогнозування для поточного блока поточного кадру на основі сигналізованого режиму внутрішнього прогнозування і даних з раніше декодованих блоків поточного кадру. Згідно з прикладами цього розкриття декодер 30 відео може приймати із закодованого бітового потоку синтаксис прогнозування, який вказує індекс вибраного блока кандидата злиття з набору блоків кандидатів злиття для використання в процесі прогнозування вектора руху. Декодер відео додатково сконфігурований для витягання вектора руху, опорного кадру і напрямку прогнозування, зв'язаних з блоком кандидатом злиття, ідентифікованим прийнятим індексом і для виконання декодування із зовнішнім прогнозуванням для поточного блока з використанням витягнутого вектора руху, опорного кадру і напрямку прогнозування. Відповідно до прикладів цього розкриття, описаних вище за текстом, для режиму злиття, набір кандидатів злиття може бути згенерований декодером 30 відео без порівняння інформації руху яких-небудь кандидатів злиття з інформацією руху інших PU в межах тієї самої CU, що і поточна PU. Додатково, це розкриття також пропонує видаляти кандидатів злиття з набору кандидатів злиття, якщо кандидат злиття розташований всередині іншої PU тієї самої CU. Генерування кандидатів злиття може бути здійснене блоком 72 компенсації руху або якоюнебудь іншою фіксованою функцією або структурою програмованого апаратного забезпечення декодера 30 відео. Як тільки декодер 30 відео визначив кінцевий набір кандидатів злиття, він може витягнути інформацію руху з кандидата злиття, вказаного за допомогою прийнятого індексу. Як один приклад для Nx2N-розділення CU всі кандидати злиття (наприклад, кандидати злиття, показані на Фіг. 1) можуть бути використані для PU 0. Для PU 1 кандидат L злиття видаляється/виключається зі списку кандидатів злиття (див. Фіг. 3A), оскільки він є в PU 0. В іншому прикладі для 2NxN-розділення CU, всі кандидати злиття (наприклад, кандидат злиття, показаний на Фіг. 1) можуть бути використані для PU 0. Для PU 1 кандидат А злиття видаляється/виключається зі списку кандидатів злиття (див. Фіг. 3B), оскільки він є в PU 0. Як інший приклад для NxN-розділення CU, всі кандидати злиття (наприклад, кандидати злиття, показані на Фіг. 1) можуть бути використані для PU 0. Для PU 1 кандидати L та BL злиття видаляються/виключаються зі списку кандидатів злиття (див. Фіг. 4A), оскільки вони є відповідно в PU 0 та PU 2. Для PU 2 кандидати А та RA злиття видаляються/виключаються зі списку кандидатів злиття (див. Фіг. 4A), оскільки вони є в PU 0 та PU 1. Для PU 3, кандидати LA, А та L злиття видаляються/виключаються зі списку кандидатів злиття (див. Фіг. 4A), оскільки вони є відповідно в PU 0, PU 1 та PU 2. У ще одному іншому прикладі для режиму розділення NxN, всі кандидати злиття кожної одиниці прогнозування використовуються незалежно від якого-небудь використання іншою одиницею прогнозування (див. Фіг. 4B). Для інших режимів розділення, таких як 2NxN, Nx2N і асиметричних режимів, таких як 2NxnD, 2NxnU, nLx2N та nRx2N, виключення деяких кандидатів для поточної PU, які розташовані всередині PU тієї самої CU, застосовується згідно з процесом, описаним вище за текстом. Повертаючись до Фіг. 7, блок 72 компенсації руху може виробляти блоки зі скомпенсованим рухом, можливо виконуючи інтерполяцію на основі інтерполяційних фільтрів. Ідентифікатори для інтерполяційних фільтрів, які повинні бути використані для оцінки руху із субпіксельною 16 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 точністю, можуть бути включені в елементи синтаксису. Блок 72 компенсації руху може використовувати інтерполяційні фільтри, як використовуються засобом 20 кодування відео під час кодування блока відео, щоб обчислити інтерпольовані значення для субцілочислових пікселів опорного блока. Блок 72 компенсації руху може визначати інтерполяційні фільтри, що використовуються засобом 20 кодування відео згідно з прийнятою інформацією синтаксису, і використовувати інтерполяційні фільтри для вироблення предиктивних блоків. Додатково, блок 72 компенсації руху і блок 74 внутрішнього прогнозування в прикладі HEVC можуть використовувати деяку інформацію синтаксису (наприклад надану квадродеревом) для визначення розмірів LCU, що використовуються для кодування кадру(-ів) закодованої послідовності відео. Блок 72 компенсації руху і блок 74 внутрішнього прогнозування також можуть використовувати інформацію синтаксису для визначення інформації розбиття, яка описує, як розбивається кожна CU кадру закодованої послідовності відео (і аналогічно, як розбиваються суб-CU). Інформація синтаксису також може включати в себе режими, що вказують, як кодується кожна CU (наприклад внутрішнє або зовнішнє прогнозування і для внутрішнього прогнозування режим кодування з внутрішнім прогнозуванням), один або більше опорних кадрів (і/або опорні списки, що містять ідентифікатори для опорних кадрів) для кожної ззовні-закодованої PU, і іншу інформацію для декодування закодованої послідовності відео. Суматор 80 об'єднує залишкові блоки з відповідними блоками прогнозування, згенерованими блоком 72 компенсації руху або блоком 74 внутрішнього прогнозування для формування декодованих блоків. Декодовані блоки, в результаті відновлюють вихідні кодовані блоки, піддані втратам внаслідок квантування або інших аспектів кодування. Якщо бажано, фільтр видалення блочності також може бути застосований для фільтрування декодованих блоків для того, щоб видаляти артефакти блочності. Декодовані блоки відео потім зберігаються в буфері 82 опорних кадрів, який забезпечує опорні блоки для подальшої компенсації руху і також виробляє декодоване відео для представлення на пристрої відображення (такому як пристрій 32 відображення з Фіг. 5). Фіг. 8 являє собою блок-схему послідовності операцій, що ілюструє приклад способу кодування відео згідно з підходами цього розкриття. Спосіб на Фіг. 8 може бути виконаний засобом 20 кодування відео з Фіг. 6. Засіб 20 кодування відео може бути сконфігурований для визначення набору кандидатів злиття для поточної одиниці прогнозування поточної одиниці кодування, при цьому набір кандидатів злиття визначається без порівняння інформації руху кандидата злиття в наборі кандидатів злиття з інформацією руху іншої одиниці (200) прогнозування, і видалення кандидатів злиття з набору кандидатів злиття, які знаходяться в іншій одиниці прогнозування поточної одиниці (202) кодування. Набір кандидатів злиття включає в себе кандидата злиття зверху зліва, кандидата злиття зверху, кандидата злиття зверху праворуч, кандидата злиття зліва, кандидата злиття зліва знизу і часового кандидата злиття. У випадку, коли поточна одиниця кодування має тип розділення 2NxN, включає в себе одиницю 0 прогнозування, позиціоновану зверху від одиниці 1 прогнозування, засіб 20 кодування відео може видаляти кандидата злиття зверху з набору кандидатів злиття для одиниці 1 прогнозування. У випадку, коли поточна одиниця кодування має тип розділення Nx2N, включає в себе одиницю 0 прогнозування, позиціоновану зліва від одиниці 1 прогнозування, засіб 20 кодування відео може видаляти кандидата злиття зліва з набору кандидатів злиття для одиниці 1 прогнозування. У випадку, коли поточна одиниця кодування має тип розділення NxN, включає в себе одиницю 0 прогнозування, позиціоновану у верхній лівій частині поточної одиниці кодування, одиницю 1 прогнозування, позиціоновану у верхній правій частині поточної одиниці кодування, одиницю 2 прогнозування, позиціоновану в нижній лівій частині поточної одиниці кодування і одиницю 3 прогнозування, позиціоновану в нижній правій частині поточної одиниці кодування, засіб 20 кодування відео може видаляти кандидата злиття зліва і кандидата злиття зліва знизу з набору кандидатів злиття для одиниці 1 прогнозування. У цьому випадку засіб 20 кодування відео може додатково видаляти кандидата злиття зверху і кандидата злиття зверху праворуч з набору кандидатів злиття для одиниці 2 прогнозування. Засіб 20 кодування відео в цьому випадку все ще може додатково видаляти кандидата злиття зверху, кандидата злиття зліва і кандидата злиття зверху зліва з набору кандидатів злиття для одиниці 3 прогнозування. В інших прикладах виключення кандидатів злиття містить виключення кандидатів злиття з набору кандидатів злиття, які знаходяться в іншій одиниці прогнозування для поточної одиниці кодування для всіх режимів розділення відмінних від режиму розділення NxN. У цьому випадку ніякі кандидати злиття не видаляються/виключаються з одиниць прогнозування з одиниці кодування, яка має режим розділення NxN. 17 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 Засіб 20 кодування відео може бути додатково сконфігурований для виконання процесу прогнозування вектора руху для поточної одиниці прогнозування з використанням набору кандидатів злиття для визначення вибраного кандидата злиття для поточної одиниці (204) прогнозування і сигналізації елемента синтаксису, що вказує вибраного кандидата злиття в закодованому бітовому потоці (206) відео. Фіг. 9 являє собою блок-схему послідовності операцій, що ілюструє приклад способу декодування відео згідно з підходами цього розкриття. Спосіб на Фіг. 9 може бути виконаний декодером 30 відео з Фіг. 7. Декодер 30 відео може бути сконфігурований для прийому елемента синтаксису, що вказує вибраного кандидата злиття для поточної одиниці (220) прогнозування, і визначення набору кандидатів злиття для поточної одиниці прогнозування поточної одиниці кодування, при цьому набір кандидатів злиття визначається без порівняння інформації руху кандидата злиття в наборі кандидатів злиття з інформацією руху яких-небудь інших одиниць (222) прогнозування. Декодер 30 відео може бути додатково сконфігурований для видалення кандидатів злиття з набору кандидатів злиття, які знаходяться в іншій одиниці прогнозування поточної одиниці (224) кодування. Набір кандидатів злиття включає в себе кандидата злиття зверху зліва, кандидата злиття зверху, кандидата злиття зверху праворуч, кандидата злиття зліва, кандидата злиття зліва знизу і часового кандидата злиття. У випадку, коли поточна одиниця кодування має тип розділення 2NxN, включає в себе одиницю 0 прогнозування, позиціоновану зверху одиниці 1 прогнозування, декодер 30 відео може видаляти кандидата злиття зверху з набору кандидатів злиття для одиниці 1 прогнозування. У випадку, коли поточна одиниця кодування має тип розділення Nx2N, включає в себе одиницю 0 прогнозування, позиціоновану зліва від одиниці 1 прогнозування, декодер 30 відео може видаляти кандидата злиття зліва з набору кандидатів злиття для одиниці 1 прогнозування. У випадку, коли поточна одиниця кодування має тип розділення NxN, включає в себе одиницю 0 прогнозування, позиціоновану у верхній лівій частині поточної одиниці кодування, одиницю 1 прогнозування, позиціоновану у верхній правій частині поточної одиниці кодування, одиницю 2 прогнозування, позиціоновану в нижній лівій частині поточної одиниці кодування і одиницю 3 прогнозування, позиціоновану в нижній правій частині поточної одиниці кодування, декодер 30 відео може видаляти кандидата злиття зліва і кандидата злиття зліва знизу з набору кандидатів злиття для одиниці 1 прогнозування. У цьому випадку декодер 30 відео може додатково видаляти кандидата злиття зверху і кандидата злиття зверху праворуч з набору кандидатів злиття для одиниці 2 прогнозування. Декодер 30 відео в цьому випадку все ще може додатково видаляти кандидата злиття зверху, кандидата злиття зліва і кандидата злиття зверху зліва з набору кандидатів злиття для одиниці 3 прогнозування. В інших прикладах виключення кандидатів злиття містить виключення кандидатів злиття з набору кандидатів злиття, які знаходяться в іншій одиниці прогнозування для поточної одиниці кодування для всіх режимів розділення відмінних від режиму розділення NxN. У цьому випадку ніякі кандидати злиття не видаляються/виключаються з одиниць прогнозування з одиниці кодування, яка має режим розділення NxN. Декодер 30 відео може бути додатково сконфігурований для виконання процесу прогнозування вектора руху злиття для поточної одиниці прогнозування з використанням набору кандидатів злиття і прийнятого елемента синтаксису для визначення вектора руху для поточної одиниці (226) прогнозування, і декодування поточної одиниці прогнозування з використанням визначеного вектора (228) руху. В одному або більше прикладах описані функції можуть бути реалізовані в апаратному забезпеченні, програмному забезпеченні, програмно-апаратному забезпеченні, або будь-якій їх комбінації. Якщо реалізовано в програмному забезпеченні, функції можуть бути збережені на або передані по, як одна або більше інструкцій або коду, зчитуваному комп'ютером середовищу та виконані за допомогою основаного на апаратному забезпеченні блока обробки. Зчитувані комп'ютером середовища можуть включати в себе зчитуваний комп'ютером носій даних, який відповідає матеріальному носію, такому як носії даних, або середовища зв'язку, що включають в себе середовище, яке сприяє перенесенню комп'ютерної програми з одного місця в інше, наприклад згідно з протоколом зв'язку. Таким чином, зчитувані комп'ютером середовища загалом можуть відповідати (1) матеріальним зчитуваним комп'ютером носіям даних, які є нетимчасовими або (2) середовищу зв'язку, такому як сигнал або несуча хвиля. Носії даних можуть бути будь-якими доступними носіями, до яких може бути здійснений доступ за допомогою одного або більше комп'ютерів або одного або більше процесорів для витягання інструкцій, коду і/або структур даних для реалізації підходів, описаних в цьому розкритті. Комп'ютерний програмний продукт може включати в себе зчитуваний комп'ютером носій. 18 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 Як приклад, а не обмеження, такі зчитувані комп'ютером носії даних можуть містити RAM, ROM, EEPROM, CD-ROM або інше оптичне дискове сховище, магнітне дискове сховище, або інші магнітні пристрої зберігання, флеш-пам'ять, або будь-який інший носій, який може бути використаний для зберігання бажаного програмного коду в формі інструкцій або структур даних і до якого може бути здійснений доступ за допомогою комп'ютера. Також, будь-яке з'єднання належним чином іменується зчитуваним комп'ютером носієм. Наприклад, якщо інструкції передаються з веб-сайта, сервера, або іншого віддаленого джерела з використанням коаксіального кабелю, оптоволоконного кабелю, витої пари, цифрової абонентської лінії зв'язку (DSL), або бездротових технологій, таких як інфрачервоні, радіо і мікрохвильові, то коаксіальний кабель, оптоволоконний кабель, вита пара, DSL або бездротові технології, такі як інфрачервоні, радіо і мікрохвильові, включаються у визначення носія. Потрібно розуміти, однак, що зчитувані комп'ютером носії даних і носії даних не включають в себе з'єднання, несучі хвилі, сигнали, або інші тимчасові носії, але в свою чергу направлені на нетимчасові, матеріальні носії зберігання. Диск ("disk") і диск ("disc"), як використовуються в даному документі, включає в себе компактдиск (CD), лазерний диск, оптичний диск, цифровий універсальний диск (DVD), флопі диск і Bluray диск, де диски ("disks") звичайно відтворюють дані магнітно, тоді як диски ("discs") відтворюють дані оптично за допомогою лазерів. Комбінації вищеописаного також повинні бути включені в обсяг зчитуваних комп'ютером носіїв. Інструкції можуть бути виконані одним або більше процесорами, такими як один або більше цифрових сигнальних процесорів (DSP), мікропроцесорів загального призначення, спеціалізованих інтегральних схем (ASIC), програмованих користувачем вентильних матриць (FPGA), або іншими еквівалентними інтегрованими або дискретними схемами логіки. Відповідно термін "процесор", який використовується в даному документі, може стосуватися будь-якої з вищеописаних структур або будь-якої іншої структури, підходящої для реалізації підходів, описаних в даному документі. Додатково, в деяких аспектах, функціональність, описана в даному документі, може бути забезпечена в спеціалізованих модулях апаратного забезпечення і/або програмного забезпечення, сконфігурованих для кодування і декодування, або включена в об'єднаний кодек. Також, підходи можуть бути повністю реалізовані в одній або більше схемах або логічних елементах. Підходи цього розкриття можуть бути реалізовані в широкому ряді пристроїв або приладів, в тому числі бездротові телефонні трубки, інтегральна схема (ІС) або набір ІС (наприклад, набір інтегральних схем). Різні компоненти, модулі, або блоки описані в цьому розкритті, щоб підкреслити функціональні аспекти пристроїв, сконфігурованих для виконання розкритих підходів, але необов'язково вимагають реалізації за допомогою різних блоків апаратного забезпечення. Навпаки, як описано вище за текстом, різні блоки можуть бути об'єднані в апаратний блок кодека або забезпечені сукупністю взаємодіючих апаратних блоків, в тому числі один або більше процесорів, як описано вище за текстом, разом з підходящими програмним забезпеченням і/або програмно-апаратним забезпеченням. Були описані різні приклади. Ці та інші приклади знаходяться в обсязі нижченаведеної формули винаходу. Посилальні позиції 10 кодування і декодування відео 12 пристрій-джерело 14 пристрій-адресат 16 канал зв'язку 18 джерело відео 20 засіб кодування відео 22 модулятор/демодулятор 24 передавач 26 приймач 28 модем 30 декодер відео 32 пристрій відображення 34 носій зберігання 36 файловий сервер 44 блок компенсації рух 42 блок оцінки руху 46 блок внутрішнього прогнозування 64 буфер опорних кадрів 50 суматор 19 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 52 модуль перетворення 54 блок квантування 56 блок ентропійного кодування 58 блок оберненого квантування 60 модуль оберненого перетворення 62 суматор 64 буфер опорних кадрів 70 блок ентропійного декодування 72 блок компенсації руху 74 блок внутрішнього прогнозування 76 блок оберненого квантування 78 модуль оберненого перетворення 80 суматор 82 буфер опорних кадрів 90 набір векторів руху кандидатів 91 блок зліва знизу (BL) 92 блок зліва (L) 93 блок зверху праворуч (RA) 94 блок зверху (А) 95 блок зверху зліва (LA) 96 часової блок (Т) 98 поточна PU 100, 102, 104, 106, 108, 110, 112, 114 набір кандидатів злиття ФОРМУЛА ВИНАХОДУ 1. Спосіб кодування даних відео, який містить: визначення набору кандидатів злиття для поточної неквадратної одиниці прогнозування поточної одиниці кодування, при цьому набір кандидатів злиття включає в себе кандидата злиття зверху зліва, кандидата злиття зверху, кандидата злиття зверху справа, кандидата злиття зліва, кандидата злиття зліва знизу і часового кандидата злиття; видалення з набору кандидатів злиття кандидатів злиття, які знаходяться в іншій одиниці прогнозування поточної одиниці кодування на основі просторового розташування кандидатів злиття без порівняння інформації руху відповідного кандидата злиття в наборі кандидатів злиття з інформацією руху будь-яких інших одиниць прогнозування; і виконання процесу прогнозування вектора руху злиття для поточної одиниці прогнозування з використанням набору кандидатів злиття. 2. Спосіб за п. 1, в якому поточна одиниця кодування має тип розділення 2NxN, 2NxnU або 2NxnD, включає в себе одиницю 0 прогнозування, позиціоновану зверху одиниці 1 прогнозування, і в якому видалення кандидатів злиття з набору кандидатів злиття включає видалення кандидата злиття зверху з набору кандидатів злиття для одиниці 1 прогнозування. 3. Спосіб за п. 1, в якому поточна одиниця кодування має тип розділення Nx2N, nLx2N або nRx2N, включає в себе одиницю 0 прогнозування, позиціоновану зліва одиниці 1 прогнозування, і в якому видалення кандидатів злиття з набору кандидатів злиття включає видалення кандидата злиття зліва з набору кандидатів злиття для одиниці 1 прогнозування. 4. Спосіб за п. 1, в якому кодування відео включає декодування відео, і при цьому спосіб додатково включає: прийом елемента синтаксису, який вказує вибраного кандидата злиття для поточної одиниці прогнозування; виконання процесу прогнозування вектора руху злиття для поточної одиниці прогнозування з використанням набору кандидатів злиття і прийнятого елемента синтаксису для визначення вектора руху для поточної одиниці прогнозування; і декодування поточної одиниці прогнозування з використанням визначеного вектора руху. 5. Спосіб за п. 1, в якому кодування відео включає здійснення кодування відео, і при цьому спосіб додатково включає: виконання процесу прогнозування вектора руху для поточної одиниці прогнозування з використанням набору кандидатів злиття для визначення вибраного кандидата злиття для поточної одиниці прогнозування; і сигналізування елемента синтаксису, який вказує вибраного кандидата злиття в закодованому бітовому потоці відео. 20 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 60 6. Пристрій, сконфігурований для кодування даних відео, що містить: пам'ять, сконфігуровану для зберігання даних відео; і кодер відео, сконфігурований для: визначення набору кандидатів злиття для поточної неквадратної одиниці прогнозування поточної одиниці кодування даних відео, при цьому набір кандидатів злиття включає в себе кандидата злиття зверху зліва, кандидата злиття зверху, кандидата злиття зверху справа, кандидата злиття зліва, кандидата злиття зліва знизу і часового кандидата злиття; видалення з набору кандидатів злиття кандидатів злиття, які знаходяться в іншій одиниці прогнозування поточної одиниці кодування на основі просторового розташування кандидатів злиття без порівняння інформації руху відповідного кандидата злиття в наборі кандидатів злиття з інформацією руху будь-яких інших одиниць прогнозування; і виконання процесу прогнозування вектора руху злиття для поточної одиниці прогнозування з використанням набору кандидатів злиття. 7. Пристрій за п. 6, в якому поточна одиниця кодування має тип розділення 2NxN, 2NxnU або 2NxnD, включає в себе одиницю 0 прогнозування, позиціоновану зверху одиниці 1 прогнозування, і в якому кодер відео додатково сконфігурований для видалення кандидата злиття зверху з набору кандидатів злиття для одиниці 1 прогнозування. 8. Пристрій за п. 6, в якому поточна одиниця кодування має тип розділення Nx2N, nLx2N або nRx2N, включає в себе одиницю 0 прогнозування, позиціоновану зліва одиниці 1 прогнозування, і в якому кодер відео додатково сконфігурований для видалення кандидата злиття зліва з набору кандидатів злиття для одиниці 1 прогнозування. 9. Пристрій за п. 6, в якому кодер відео є декодером відео, і в якому декодер відео додатково сконфігурований для: прийому елемента синтаксису, який вказує вибраного кандидата злиття для поточної одиниці прогнозування; виконання процесу прогнозування вектора руху злиття для поточної одиниці прогнозування з використанням набору кандидатів злиття і прийнятого елемента синтаксису для визначення вектора руху для поточної одиниці прогнозування; і декодування поточної одиниці прогнозування з використанням визначеного вектора руху. 10. Пристрій за п. 6, в якому кодер відео є засобом кодування відео, і в якому засіб кодування відео додатково сконфігурований для: виконання процесу прогнозування вектора руху для поточної одиниці прогнозування з використанням набору кандидатів злиття для визначення вибраного кандидата злиття для поточної одиниці прогнозування; і сигналізування елемента синтаксису, який вказує вибраного кандидата злиття в закодованому бітовому потоці відео. 11. Пристрій за п. 6, в якому кодер відео є частиною мобільного пристрою, і при цьому пристрій додатково містить одне або більше з камери, сконфігурованої для захоплення зображення, яке включає в себе поточну одиницю прогнозування, або пристрою відображення, сконфігурованого для відображення зображення, яке включає в себе поточну одиницю прогнозування. 12. Пристрій сконфігурований для кодування данихвідео, який містить: засіб визначення набору кандидатів злиття для поточної неквадратної одиниці прогнозування поточної одиниці кодування, при цьому набір кандидатів злиття включає в себе кандидата злиття зверху зліва, кандидата злиття зверху, кандидата злиття зверху справа, кандидата злиття зліва, кандидата злиття зліва знизу і часового кандидата злиття; засіб для видалення з набору кандидатів злиття кандидатів злиття, які знаходяться в іншій одиниці прогнозування поточної одиниці кодування на основі просторового розташування кандидатів злиття без порівняння інформації руху відповідного кандидата злиття в наборі кандидатів злиття з інформацією руху будь-яких інших одиниць прогнозування; і засіб для виконання процесу прогнозування вектора руху злиття для поточної одиниці прогнозування з використанням набору кандидатів злиття. 13. Пристрій за п. 12, в якому поточна одиниця кодування має тип поділу 2NxN, 2NxnU або 2NxnD, включає в себе одиницю 0 прогнозування, позиціоновану зверху одиниці 1 прогнозування, і в якому засіб для видалення кандидатів злиття з набору кандидатів злиття містить засіб для видалення кандидата злиття зверху з набору кандидатів злиття для одиниці 1 прогнозування. 14. Пристрій за п. 12, в якому поточна одиниця кодування має тип поділу Nx2N, nLx2N або nRx2N, включає в себе одиницю 0 прогнозування, позиціоновану зліва одиниці 1 прогнозування, і в якому засіб для видалення кандидатів злиття з набору кандидатів злиття містить засіб для виключення кандидата злиття зліва з набору кандидатів злиття для одиниці 1 прогнозування. 21 UA 112547 C2 5 10 15 20 25 30 35 40 45 50 55 15. Пристрій за п. 12, в якому пристрій сконфігурований для декодування відео, і при цьому пристрій додатково містить: засіб для прийому елемента синтаксису, який вказує вибраного кандидата злиття для поточної одиниці прогнозування; засіб для виконання процесу прогнозування вектора руху злиття для поточної одиниці прогнозування з використанням набору кандидатів злиття і прийнятого елемента синтаксису для визначення вектора руху для поточної одиниці прогнозування; і засіб для декодування поточної одиниці прогнозування з використанням визначеного вектора руху. 16. Пристрій за п. 12, в якому пристрій сконфігурований для здійснення кодування відео, і при цьому пристрій додатково містить: засіб для виконання процесу прогнозування вектора руху для поточної одиниці прогнозування з використанням набору кандидатів злиття для визначення вибраного кандидата злиття для поточної одиниці прогнозування; і засіб для сигналізування елемента синтаксису, який вказує вибраного кандидата злиття в закодованому бітовому потоці відео. 17. Пристрій за п. 12, в якому пристрій є частиною мобільного пристрою. 18. Зчитуваний комп'ютером носій даних, що має збережені на ньому інструкції, які при виконанні спонукають один або більше процесорів, сконфігурованих для кодування даних відео: визначати набір кандидатів злиття для поточної неквадратної одиниці прогнозування поточної одиниці кодування, при цьому набір кандидатів злиття включає в себе кандидата злиття зверху зліва, кандидата злиття зверху, кандидата злиття зверху справа, кандидата злиття зліва, кандидата злиття зліва знизу і часового кандидата злиття; видаляти з набору кандидатів злиття кандидатів злиття, які знаходяться в іншій одиниці прогнозування поточної одиниці кодування на основі просторового розташування кандидатів злиття без порівняння інформації руху відповідного кандидата злиття в наборі кандидатів злиття з інформацією руху будь-яких інших одиниць прогнозування; і виконувати процес прогнозування вектора руху злиття для поточної одиниці прогнозування з використанням набору кандидатів злиття. 19. Зчитуваний комп'ютером носій даних за п. 18, в якому поточна одиниця кодування має тип розділення 2NxN, 2NxnU або 2NxnD, включає в себе одиницю 0 прогнозування, позиціоновану зверху одиниці 1 прогнозування, і в якому інструкції додатково спонукають згаданий один або більше процесорів видаляти кандидата злиття зверху з набору кандидатів злиття для одиниці 1 прогнозування. 20. Зчитуваний комп'ютером носій даних за п. 18, в якому поточна одиниця кодування має тип розділення Nx2N, nLx2N або nRx2N, включає в себе одиницю 0 прогнозування, позиціоновану зліва одиниці 1 прогнозування, і в якому інструкції додатково спонукають згаданий один або більше процесорів виключати кандидата злиття зліва з набору кандидатів злиття для одиниці 1 прогнозування. 21. Зчитуваний комп'ютером носій даних за п. 18, при цьому один або більше процесорів сконфігуровані для декодування даних відео, і при цьому інструкції додатково спонукають згаданий один або більше процесорів: приймати елемент синтаксису, який вказує вибраного кандидата злиття для поточної одиниці прогнозування; виконувати процес прогнозування вектора руху злиття для поточної одиниці прогнозування з використанням набору кандидатів злиття і прийнятого елемента синтаксису для визначення вектора руху для поточної одиниці прогнозування; і декодувати поточну одиницю прогнозування з використанням визначеного вектора руху. 22. Зчитуваний комп'ютером носій даних за п. 18, при цьому один або більше процесорів сконфігуровані для декодування даних відео, і при цьому інструкції додатково спонукають згаданий один або більше процесорів: виконувати процес прогнозування вектора руху для поточної одиниці прогнозування з використанням набору кандидатів злиття для визначення вибраного кандидата злиття для поточної одиниці прогнозування; і сигналізувати елемент синтаксису, який вказує вибраного кандидата злиття в закодованому бітовому потоці відео. 22 UA 112547 C2 23 UA 112547 C2 24 UA 112547 C2 25 UA 112547 C2 26 UA 112547 C2 27 UA 112547 C2 28

Дивитися

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

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

Parallelization friendly merge candidates for video coding

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

Zheng, Yunfei, Wang, Xianglin, Karczewicz, Marta

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

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

МПК / Мітки

МПК: H04N 19/105, H04N 19/51, H04N 19/103

Мітки: кандидати, відео, злиття, враховують, паралелізацію, кодування

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

<a href="https://ua.patents.su/33-112547-kandidati-zlittya-dlya-koduvannya-video-shho-vrakhovuyut-paralelizaciyu.html" target="_blank" rel="follow" title="База патентів України">Кандидати злиття для кодування відео, що враховують паралелізацію</a>

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