Підпотоки для хвильової паралельної обробки в відеокодуванні

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

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

Автори: Кобан Мухаммед Зейд, Ван Є-Куй

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

1. Спосіб кодування відеоданих, який включає етапи, на яких: сигналізують в бітовому потоці синтаксичний елемент, який вказує, що хвильова паралельна обробка (WPP) використовується для кодування зображення послідовності відеозображень, причому, коли синтаксичний елемент вказує, що WPP використовується для кодування зображення, кожний рядок деревовидних блоків кодування (СТВ) зображення формує один мозаїчний елемент; виконують WPP для формування множини підпотоків, причому кожний з підпотоків включає в себе послідовну серію бітів, яка представляє один з рядків СТВ, причому жоден з підпотоків не містить закодовані біти більше ніж одного мозаїчного елемента; і формують елемент рівня мережевої абстракції (NAL) закодованого слайсу, який включає в себе множину підпотоків.

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

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

4. Спосіб за п. 1, в якому сигналізування, що WPP використовується для кодування зображення, включає етап, на якому формують множину параметрів зображення (PPS), що включає в себе синтаксичний елемент, який вказує, що WPP використовується для кодування зображення.

5. Спосіб за п. 1, в якому сигналізування, що WPP використовується для кодування зображення, включає етап, на якому формують множину параметрів послідовності (SPS), що включає в себе синтаксичний елемент, який вказує, що WPP використовується для кодування зображення.

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

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

8. Обчислювальний пристрій, який містить один або декілька процесорів, виконаних з можливістю: сигналізувати в бітовому потоці синтаксичний елемент, який вказує, що хвильова паралельна обробка (WPP) використовується для кодування зображення послідовності відеозображень, причому, коли синтаксичний елемент вказує, що WPP використовується для кодування зображення, кожний рядок деревовидних блоків кодування (СТВ) зображення формує один мозаїчний елемент; виконувати WPP для формування множини підпотоків, причому кожний з підпотоків включає в себе послідовну серію бітів, яка представляє один з рядків СТВ, причому жоден з підпотоків не містить закодовані біти більше ніж одного мозаїчного елемента; і формувати елемент рівня мережевої абстракції (NAL) закодованого слайсу, який включає в себе множину підпотоків.

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

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

11. Обчислювальний пристрій за п. 8, в якому один або декілька процесорів виконані з можливістю формувати множину параметрів зображення (PPS), що включає в себе синтаксичний елемент, який вказує, що WPP використовується для кодування зображення.

12. Обчислювальний пристрій за п. 8, в якому один або декілька процесорів виконані з можливістю формувати множину параметрів послідовності (SPS), що включає в себе синтаксичний елемент, який вказує, що WPP використовується для кодування зображення.

13. Обчислювальний пристрій за п. 8, в якому один або декілька процесорів виконані з можливістю: у відповідь на визначення, що перший блок СТВ відділений від лівої границі зображення єдиним блоком СТВ, зберігати змінні контексту, асоційовані з першим блоком СТВ; і виконувати ентропійне кодування одного або декількох синтаксичних елементів другого блока СТВ щонайменше частково на основі змінних контексту, асоційованих з першим блоком СТВ, причому другий блок СТВ є суміжним з лівою границею зображення і на один рядок блоків СТВ нижче першого блока СТВ.

14. Обчислювальний пристрій за п. 8, причому обчислювальний пристрій є мобільним обчислювальним пристроєм.

15. Обчислювальний пристрій, який містить: засіб для сигналізування в бітовому потоці синтаксичного елемента, який вказує, що хвильова паралельна обробка (WPP) використовується для кодування зображення, причому, коли синтаксичний елемент вказує, що WPP використовується для кодування зображення, кожний рядок деревовидних блоків кодування (СТВ) зображення формує один мозаїчний елемент; засіб для виконання WPP для формування множини підпотоків, причому кожний з підпотоків включає в себе послідовну серію бітів, яка представляє один з рядків СТВ, причому жоден з підпотоків не містить закодовані біти більше ніж одного мозаїчного елемента; і засіб для формування елемента рівня мережевої абстракції (NAL) закодованого слайсу, який включає в себе множину підпотоків.

16. Комп'ютерно-читаний запам'ятовуючий носій, що зберігає команди, які при їх виконанні одним або декількома процесорами обчислювального пристрою примушують обчислювальний пристрій: сигналізувати в бітовому потоці синтаксичний елемент, який вказує, що хвильова паралельна обробка (WPP) використовується для кодування зображення, причому, коли синтаксичний елемент вказує, що WPP використовується для кодування зображення, кожний рядок деревовидних блоків кодування (СТВ) зображення формує один мозаїчний елемент; виконувати WPP для формування множини підпотоків, причому кожний з підпотоків включає в себе послідовну серію бітів, яка представляє один з рядків СТВ, причому жоден з підпотоків не містить закодовані біти більше ніж одного мозаїчного елемента; і формувати елемент рівня мережевої абстракції (NAL) закодованого слайсу, який включає в себе множину підпотоків.

17. Спосіб декодування відеоданих, який включає етапи, на яких: приймають бітовий потік, який включає в себе елемент рівня мережевої абстракції (NAL) закодованого слайсу, причому елемент NAL закодованого слайсу включає в себе множину підпотоків, причому кожний з підпотоків включає в себе послідовну серію бітів, яка представляє один рядок деревовидних блоків кодування (СТВ) в слайсі зображення; на основі синтаксичного елемента в бітовому потоці визначають, що слайс закодований з використанням хвильової паралельної обробки (WPP), причому, коли синтаксичний елемент вказує, що WPP використовується для кодування зображення, кожний рядок СТВ зображення формує один мозаїчний елемент, і жоден з підпотоків не містить закодовані біти більше ніж одного мозаїчного елемента; і декодують слайс з використанням WPP.

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

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

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

21. Спосіб за п. 17, в якому бітовий потік включає в себе множину параметрів зображення (PPS), що включає в себе синтаксичний елемент, який вказує, що WPP використовується для кодування зображення.

22. Спосіб за п. 17, в якому бітовий потік включає в себе множину параметрів послідовності (SPS), що включає в себе синтаксичний елемент, який вказує, що WPP використовується для кодування зображення.

23. Спосіб за п. 17, в якому декодування слайсу з використанням WPP включає етапи, на яких: у відповідь на визначення, що перший блок СТВ відділений від лівої границі зображення єдиним блоком СТВ, зберігають змінні контексту, асоційовані з першим блоком СТВ; і виконують ентропійне декодування одного або декількох синтаксичних елементів другого блока СТВ щонайменше частково на основі змінних контексту, асоційованих з першим блоком СТВ, причому другий блок СТВ є суміжним з лівою границею зображення і на один рядок блоків СТВ нижче першого блока СТВ.

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

25. Обчислювальний пристрій, який містить один або декілька процесорів, виконаних з можливістю: приймати бітовий потік, який включає в себе елемент рівня мережевої абстракції (NAL) закодованого слайсу, причому елемент NAL закодованого слайсу включає в себе множину підпотоків, причому кожний з підпотоків включає в себе послідовну серію бітів, яка представляє один рядок деревовидних блоків кодування (СТВ) в слайсі зображення; визначати на основі одного або декількох синтаксичних елементів в бітовому потоці, що слайс закодований з використанням хвильової паралельної обробки (WPP), причому, коли синтаксичний елемент вказує, що WPP використовується для кодування зображення, кожний рядок СТВ зображення формує один мозаїчний елемент, і жоден з підпотоків не містить закодовані біти більше ніж одного мозаїчного елемента; і декодувати слайс з використанням WPP.

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

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

28. Обчислювальний пристрій за п. 25, в якому бітовий потік включає в себе множину параметрів зображення (PPS), що включає в себе синтаксичний елемент, який вказує, що WPP використовується для кодування зображення.

29. Обчислювальний пристрій за п. 25, в якому бітовий потік включає в себе множину параметрів послідовності (SPS), що включає в себе синтаксичний елемент, який вказує, що WPP використовується для кодування зображення.

30. Обчислювальний пристрій за п. 25, в якому один або декілька процесорів виконані з можливістю: у відповідь на визначення, що перший блок СТВ відділений від лівої границі зображення єдиним блоком СТВ, зберігати змінні контексту, асоційовані з першим блоком СТВ; і виконувати ентропійне декодування одного або декількох синтаксичних елементів другого блока СТВ щонайменше частково на основі змінних контексту, асоційованих з першим блоком СТВ, причому другий блок СТВ є суміжним з лівою границею зображення і на один рядок блоків СТВ нижче першого блока СТВ.

31. Обчислювальний пристрій за п. 25, причому обчислювальний пристрій є мобільним обчислювальним пристроєм.

32. Обчислювальний пристрій, який містить: засіб для прийому бітового потоку, який включає в себе елемент рівня мережевої абстракції (NAL) закодованого слайсу, причому елемент NAL закодованого слайсу включає в себе множину підпотоків, причому кожний з підпотоків включає в себе послідовну серію бітів, яка представляє один рядок деревовидних блоків кодування (СТВ) в слайсі зображення; засіб для визначення на основі одного або декількох синтаксичних елементів в бітовому потоці, що слайс закодований з використанням хвильової паралельної обробки (WPP), причому, коли синтаксичний елемент вказує, що WPP використовується для кодування зображення, кожний рядок СТВ зображення формує один мозаїчний елемент, і жоден з підпотоків не містить закодовані біти більше ніж одного мозаїчного елемента; і засіб для декодування слайсу з використанням WPP.

33. Комп'ютерно-читаний запам'ятовуючий носій, що зберігає команди, які при їх виконанні одним або декількома процесорами обчислювального пристрою примушують обчислювальний пристрій: приймати бітовий потік, який включає в себе елемент NAL закодованого слайсу, елемент рівня мережевої абстракції (NAL) закодованого слайсу включає в себе множину підпотоків, кожний з підпотоків включає в себе послідовну серію бітів, яка представляє один рядок деревовидних блоків кодування (СТВ) в слайсі зображення; визначати на основі одного або декількох синтаксичних елементів в бітовому потоці, що слайс закодований з використанням хвильової паралельної обробки (WPP), причому, коли синтаксичний елемент вказує, що WPP використовується для кодування зображення, кожний рядок СТВ зображення формує один мозаїчний елемент, і жоден з підпотоків не містить закодовані біти більше ніж одного мозаїчного елемента; і декодувати слайс з використанням WPP.

Текст

Реферат: Відеокодер сигналізує, чи використовується WPP для кодування зображення послідовності відеозображення. Якщо WPP використовується для кодування зображення, відеокодер формує елемент NAL закодованого слайсу, який включає в себе множину підпотоків, кожний з яких включає в себе послідовну серію бітів, яка представляє один закодований рядок деревовидних блоків кодування (СТВ) в слайсі зображення. Відеодекодер приймає бітовий потік, який включає в себе елемент NAL закодованого слайсу. Крім того, відеодекодер може визначити на основі синтаксичного елемента в бітовому потоці, що слайс закодований з використанням WPP, і може декодувати слайс з використанням WPP. UA 111879 C2 (12) UA 111879 C2 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 ПІДПОТОКИ ДЛЯ ХВИЛЬОВОЇ ПАРАЛЕЛЬНОЇ ОБРОБКИ В ВІДЕОКОДУВАННІ Дана заявка вимагає пріоритет попередньої заявки на патент США № 61/588,096, поданої 18 січня 2012 року, інформаційний зміст якої включений в цей документ по посиланню у всій повноті. ГАЛУЗЬ ТЕХНІКИ Це розкриття стосується відеокодування (тобто кодування і/або декодування відеоданих). РІВЕНЬ ТЕХНІКИ Можливості цифрового відео можуть бути включені в широкий діапазон пристроїв, в тому числі в цифрові телевізори, системи цифрового прямого мовлення, бездротові системи мовлення, кишенькові персональні комп'ютери (PDA), ноутбуки або настільні комп'ютери, планшетні комп'ютери, пристрої для читання електронних книг, цифрові фотоапарати, пристрої цифрового запису, програвачі цифрових даних, пристрої відеоігор, відеоігрові приставки, стільникові або супутникові радіотелефони, так звані "смартфони", пристрої організації відеоконференцій, пристрої потокової передачі відео і т. п. Цифрові відеопристрої реалізовують методики стиснення відео, такі, як описані в стандартах MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4 Частина 10, вдосконалене відеокодування (AVC), в розроблюваному на даний час стандарті високоефективного відеокодування (HEVC) і в розширеннях таких стандартів. Відеопристрої можуть передавати, приймати, кодувати, декодувати і/або зберігати інформацію цифрового відео більш ефективно за допомогою реалізації таких методик стиснення відео. Методики стиснення відео виконують просторове (всередині зображення) прогнозування і/або часове (між зображеннями) прогнозування для зменшення або видалення надмірності, властивої послідовностям відеокадрів. Для основаного на блоках відеокодування відеослайс (тобто відеокадр або частина відеокадру) може бути розділений на відеоблоки, які можуть також згадуватися як деревовидні блоки, елементи кодування (CU) і/або вузли кодування. Відеоблоки в інтракодованому (I) слайсі зображення кодуються з використанням просторового прогнозування відносно опорних вибірок в сусідніх блоках в тому ж самому зображенні. Відеоблоки в інтеркодованому (Р або В) слайсі зображення можуть використовувати просторове прогнозування відносно опорних вибірок в сусідніх блоках в одному і тому ж зображенні або часове прогнозування відносно опорних вибірок в інших опорних зображеннях. Зображення можуть називатися кадрами, і опорні зображення можуть називатися опорними кадрами. Просторове або часове прогнозування дає в результаті блок прогнозування для блока, який повинен бути закодований. Залишкові дані представляють відмінності в пікселах між первинним блоком, який повинен бути закодований, і блоком прогнозування. Інтеркодований блок кодується відповідно до вектора руху, який вказує блок опорних вибірок, що формують блок прогнозування, і залишкових даних, що вказують відмінність між закодованим блоком і блоком прогнозування. Інтракодований блок кодується відповідно до режиму інтракодування і залишкових даних. Для додаткового стиснення залишкові дані можуть бути перетворені з області пікселів в область перетворення, що приводить до залишкових коефіцієнтів, які потім можуть бути квантовані. Квантовані коефіцієнти, спочатку розташовані в двовимірному масиві, можуть бути проскановані, щоб одержати одновимірний вектор коефіцієнтів, і може бути застосоване ентропійне кодування для досягнення ще більшого стиснення. СУТЬ ВИНАХОДУ Загалом це розкриття описує методики для відеокодування з використанням мозаїчних елементів і хвильової паралельної обробки (WPP). Більш точно, відеокодер може сигналізувати, чи використовується WPP для кодування зображення послідовності відеозображення. Якщо WPP використовується для кодування зображення, відеокодер формує множину підпотоків. Кожний з підпотоків може включати в себе послідовну серію бітів, яка представляє один закодований рядок деревовидних блоків кодування (CTB) в слайсі зображення. Відеокодер може формувати елемент рівня мережевої абстракції (NAL) закодованого слайсу, який включає в себе множину підпотоків. Відеодекодер може прийняти бітовий потік, який включає в себе елемент NAL закодованого слайсу. Крім того, відеодекодер може визначити на основі синтаксичного елемента в бітовому потоці, що слайс закодований з використанням WPP, і може декодувати слайс з використанням WPP. У одному аспекті це розкриття описує спосіб кодування відеоданих. Спосіб включає етап, на якому сигналізують, що WPP використовується для кодування зображення послідовності відеозображення. Спосіб також включає етап, на якому виконують WPP для формування множини підпотоків, причому кожний з підпотоків включає в себе послідовну серію бітів, яка представляє один закодований рядок блоків CTB в слайсі зображення. Спосіб також включає 1 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 етап, на якому формують елемент рівня мережевої абстракції (NAL) закодованого слайсу, який включає в себе множину підпотоків. У іншому аспекті це розкриття описує обчислювальний пристрій, який містить один або декілька процесорів, виконаних з можливістю сигналізувати, що WPP використовується для кодування зображення послідовності відеозображень. Один або декілька процесорів також виконані з можливістю виконувати WPP для формування множини підпотоків, причому кожний з підпотоків включає в себе послідовну серію бітів, яка представляє один закодований рядок блоків CTB в слайсі зображення. Один або декілька процесорів також виконані з можливістю формувати елемент NAL закодованого слайсу, який включає в себе множину підпотоків. У іншому аспекті це розкриття описує обчислювальний пристрій, який містить засіб для сигналізування, що WPP використовується для кодування зображення. Обчислювальний пристрій також містить засіб для виконання WPP для формування множини підпотоків, причому кожний з підпотоків включає в себе послідовну серію бітів, яка представляє один закодований рядок блоків CTB в слайсі зображення. Крім того, обчислювальний пристрій включає засіб для формування елемента NAL закодованого слайсу, який включає в себе множину підпотоків. У іншому аспекті це розкриття описує комп'ютерно-читаний запам'ятовуючий носій, що зберігає команди, які при їх виконанні одним або декількома процесорами обчислювального пристрою примушують обчислювальний пристрій сигналізувати, що WPP використовується для кодування зображення. Команди також примушують обчислювальний пристрій виконувати WPP для формування множини підпотоків, причому кожний з підпотоків включає в себе послідовну серію бітів, яка представляє один закодований рядок блоків CTB в слайсі зображення. Крім того, команди примушують обчислювальний пристрій формувати елемент NAL закодованого слайсу, який включає в себе множину підпотоків. У іншому аспекті це розкриття описує спосіб декодування відеоданих. Спосіб включає етап, на якому приймають бітовий потік, який включає в себе елемент NAL закодованого слайсу, причому елемент NAL закодованого слайсу включає в себе множину підпотоків, причому кожний з підпотоків включає в себе послідовну серію бітів, яка представляє один рядок деревовидних блоків кодування (CTB) в слайсі зображення. Спосіб також включає етап, на якому визначають на основі синтаксичного елемента в бітовому потоці, що слайс закодований з використанням WPP. Крім того, спосіб включає етап, на якому декодують слайс з використанням WPP. У іншому аспекті це розкриття описує обчислювальний пристрій, який містить один або декілька процесорів, виконаних з можливістю приймати бітовий потік, який включає в себе елемент NAL закодованого слайсу, причому елемент NAL закодованого слайсу включає в себе множину підпотоків, причому кожний з підпотоків включає в себе послідовну серію бітів, яка представляє один рядок блоків CTB в слайсі зображення. Один або декілька процесорів також виконані з можливістю визначати на основі одного або декількох синтаксичних елементів в бітовому потоці, що слайс закодований з використанням WPP. Крім того, один або декілька процесорів виконані з можливістю декодувати слайс з використанням WPP. У іншому аспекті це розкриття описує обчислювальний пристрій, який містить засіб для прийому бітового потоку, який включає в себе елемент NAL закодованого слайсу, причому елемент NAL закодованого слайсу включає в себе множину підпотоків, причому кожний з підпотоків включає в себе послідовну серію бітів, яка представляє один рядок блоків CTB в слайсі зображення. Обчислювальний пристрій також містить засіб для визначення на основі одного або декількох синтаксичних елементів в бітовому потоці, що слайс закодований з використанням WPP. Обчислювальний пристрій також містить засіб для декодування слайсу з використанням WPP. У іншому аспекті це розкриття описує комп'ютерно-читаний запам'ятовуючий носій, що зберігає команди, які при їх виконанні одним або декількома процесорами обчислювального пристрою примушують обчислювальний пристрій приймати бітовий потік, який включає в себе елемент NAL закодованого слайсу, причому елемент NAL закодованого слайсу включає в себе множину підпотоків, причому кожний з підпотоків включає в себе послідовну серію бітів, яка представляє один рядок блоків CTB в слайсі зображення. Команди також примушують обчислювальний пристрій визначати на основі одного або декількох синтаксичних елементів в бітовому потоці, що слайс закодований з використанням WPP. Крім того, команди примушують обчислювальний пристрій декодувати слайс з використанням WPP. Подробиці одного або декількох прикладів розкриття викладені на прикладених кресленнях і в описі нижче. Інші ознаки, задачі і переваги будуть зрозумілі з опису, креслень і формули винаходу. КОРОТКИЙ ОПИС КРЕСЛЕНЬ 2 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 60 Фіг. 1 - блок-схема, що показує зразкову систему відеокодування, яка може використовувати методики, описані в цьому розкритті. Фіг. 2 - блок-схема, що показує зразковий відеокодер, який може реалізувати методики, описані в цьому розкритті. Фіг. 3 - блок-схема, що показує зразковий відеодекодер, який може реалізувати методики, описані в цьому розкритті. Фіг. 4 - блок-схема послідовності операцій, що показує зразкову роботу відеокодера для кодування відеоданих, в яких не дозволені комбінації мозаїчних елементів і хвильової паралельної обробки (WPP) в межах одного зображення, відповідно до одного або декількох аспектів цього розкриття. Фіг. 5 - блок-схема послідовності операцій, що показує зразкову роботу відеодекодера для декодування відеоданих, в яких не дозволені комбінації мозаїчних елементів і WPP в межах одного зображення, відповідно до одного або декількох аспектів цього розкриття. Фіг. 6 - блок-схема послідовності операцій, що показує інший зразковий варіант роботи відеодекодера для декодування відеоданих, в яких не дозволені комбінації мозаїчних елементів і WPP в межах одного зображення, відповідно до одного або декількох аспектів цього розкриття. Фіг. 7 - блок-схема послідовності операцій, що показує зразкову роботу відеокодера для кодування відеоданих, в яких кожний рядок деревовидних блоків кодування (CTB) зображення знаходиться в окремому підпотоці, відповідно до одного або декількох аспектів цього розкриття. Фіг. 8 - блок-схема послідовності операцій, що показує зразкову роботу відеодекодера для декодування відеоданих, в яких кожний рядок блоків CTB зображення знаходиться в окремому підпотоці, відповідно до одного або декількох аспектів цього розкриття. Фіг. 9A - блок-схема послідовності операцій, що показує першу частину зразкового процесу аналізу контекстно-адаптивного двійкового арифметичного кодування (CABAC) для аналізу даних слайсу відповідно до одного або декількох аспектів цього розкриття. Фіг. 9B - блок-схема послідовності операцій, що показує продовження зразкового процесу аналізу кодування CABAC на фіг. 9A. Фіг. 10 - концептуальна схема, яка показує приклад WPP. Фіг. 11 - концептуальна схема, яка показує зразковий порядок кодування, коли зображення розділене на множину мозаїчних елементів. ДОКЛАДНИЙ ОПИС Під час відеокодування зображення може бути розділене на декілька мозаїчних елементів, хвиль хвильової паралельної обробки (WPP) і/або ентропійних слайсів. Мозаїчні елементи зображення задані горизонтальними і/або вертикальними границями мозаїчного елемента, які проходять через зображення. Мозаїчні елементи зображення кодуються відповідно до порядку растрової розгортки, і деревовидні блоки кодування (CTB) в межах кожного мозаїчного елемента також кодуються відповідно до порядку растрової розгортки. У WPP кожний рядок блоків CTB в зображенні є "хвилею WPP." Коли пристрій відеокодування використовує WPP для кодування зображення, пристрій відеокодування може почати кодувати блоки CTB хвилі WPP зліва направо після того, як пристрій відеокодування закодував два або більше блоків CTB безпосередньо вище хвилі WPP. Ентропійний слайс може включати в себе серію послідовних блоків CTB відповідно до порядку розгортки растра. Використання інформації через границі ентропійного слайсу заборонене для використання при виборі контекстів ентропійного кодування, але може бути дозволене в інших цілях. В існуючих системах відеокодування зображення може мати будь-яку комбінацію мозаїчних елементів, хвиль WPP і ентропійних слайсів. Наприклад, зображення може бути розділене на множину мозаїчних елементів. У цьому прикладі блоки CTB в деяких з мозаїчних елементів можуть бути закодовані відповідно до порядку растрової розгортки, в той час як блоки CTB в інших мозаїчних елементах можуть бути закодовані з використанням WPP. Допущення можливості, щоб зображення включало в себе комбінації мозаїчних елементів, хвиль WPP і ентропійних слайсів, можуть зайво збільшити складність реалізації і вартість таких систем відеокодування. Методики цього розкриття можуть виправити цю проблему. Таким чином, відповідно до методик цього розкриття в межах зображення не допускаються комбінації будь-яких двох або більше з мозаїчних елементів, хвиль WPP і ентропійних слайсів. Наприклад, відеокодер може формувати бітовий потік, який включає в себе синтаксичний елемент, що вказує, чи закодоване зображення відповідно до першого режиму кодування або відповідно до другого режиму кодування. У першому режимі кодування зображення повністю закодоване з використанням WPP. У другому режимі кодування зображення має один або декілька мозаїчних елементів, і кожний мозаїчний елемент зображення закодований без використання WPP. 3 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 Крім того, в цьому прикладі відеодекодер може аналізувати синтаксичний елемент з бітового потоку, який включає в себе закодоване представлення зображення. У відповідь на визначення, що синтаксичний елемент має конкретне значення, відеодекодер може декодувати зображення повністю з використанням WPP. У відповідь на визначення, що синтаксичний елемент не має конкретного значення, відеодекодер може декодувати кожний мозаїчний елемент зображення без використання WPP. Зображення можуть мати один або декілька мозаїчних елементів. Прикладені креслення ілюструють приклади. Елементи, позначені умовними позначеннями в прикладених кресленнях, відповідають елементам, позначеним аналогічними умовними позначеннями в подальшому описі. У цьому розкритті елементи, що мають назви, які починаються з порядкових прикметників (наприклад, "перший", "другий", "третій" і так далі), не обов'язково мають на увазі, що елементи мають конкретний порядок. Замість цього такі порядкові прикметники використовуються лише для посилання на різні елементи однакового або аналогічного типу. Фіг. 1 є блок-схемою, що показує зразкову систему 10 відеокодування, яка може використовувати методики цього розкриття. Використовуваний тут термін "пристрій відеокодування" стосується загалом і відеокодерів, і відеодекодерів. У цьому розкритті терміни "відеокодування" або "кодування" можуть стосуватися загалом кодування відеоінформації або декодування відеоінформації. Як показано на фіг. 1, система 10 відеокодування включає в себе пристрій 12 джерела і пристрій 14 призначення. Пристрій 12 джерела формує закодовані відеодані. Відповідно до цього пристрій 12 джерела може згадуватися як пристрій кодування відео. Пристрій 14 призначення може декодувати закодовані відеодані, сформовані пристроєм 12 джерела. Відповідно до цього пристрій 14 призначення може згадуватися як пристрій декодування відео. Пристрій 12 джерела і пристрій 14 призначення можуть являти собою приклади пристроїв відеокодування або апаратів відеокодування. Пристрій 12 джерела і пристрій 14 призначення можуть містити широкий діапазон пристроїв, в тому числі настільні комп'ютери, мобільні обчислювальні пристрої, переносні комп'ютери (наприклад, ноутбуки), планшетні комп'ютери, телеприставки, телефонні гарнітури, наприклад так звані "смартфони", телевізори, камери, пристрої відображення, цифрові медіапрогравачі, консолі відеогри, комп'ютери в автомобілях і т. п. Пристрій 14 призначення може приймати закодовані відеодані від пристрою 12 джерела через канал 16. Канал 16 може містити один або декілька носіїв і/або пристроїв, які можуть переміщувати закодовані відеодані від пристрою 12 джерела до пристрою 14 призначення. У одному прикладі канал 16 може містити один або декілька комунікаційних носіїв, які дають можливість пристрою 12 джерела передавати закодовані відеодані безпосередньо пристрою 14 призначення в реальному часі. У цьому прикладі пристрій 12 джерела може модулювати закодовані відеодані згідно зі стандартом зв'язку, таким як протокол бездротового зв'язку, і може передавати модульовані відеодані пристрою 14 призначення. Один або декілька комунікаційних носіїв можуть включати в себе бездротові і/або дротові комунікаційні носії, такі як радіочастотний (RF) спектр або одна або декілька фізичних ліній передачі. Один або декілька комунікаційних носіїв можуть бути частиною пакетної мережі, такої як локальна мережа, широкомасштабна мережа або глобальна мережа (наприклад, Інтернет). Один або декілька комунікаційних носіїв можуть включати в себе маршрутизатори, перемикачі, базові станції або інше обладнання, яке забезпечує можливість зв'язку від пристрою 12 джерела до пристрою 14 призначення. У іншому прикладі канал 16 може включати в себе запам'ятовуючий носій, який зберігає закодовані відеодані, сформовані пристроєм 12 джерела. У цьому прикладі пристрій 14 призначення може одержати доступ до запам'ятовуючого носія через диск або карту. Запам'ятовуючий носій може включати в себе множину локально доступних носіїв даних, таких як диски Blu-ray, універсальні цифрові диски (DVD), компакт-диски (CD-ROM), флеш-пам'ять або інші придатні цифрові запам'ятовуючі носії для зберігання закодованих відеоданих. У додатковому прикладі канал 16 може включати в себе файловий сервер або інший проміжний пристрій зберігання, який зберігає закодоване відео, сформоване пристроєм 12 джерела. У цьому прикладі пристрій 14 призначення може одержувати доступ до закодованих відеоданих, збережених на файловому сервері або в іншому проміжному пристрої зберігання, через потокову передачу або завантаження. Файловий сервер може являти собою тип сервера, який може зберігати закодовані відеодані і передавати закодовані відеодані пристрою 14 призначення. Зразкові файлові сервери включають в себе веб-сервери (наприклад, для веб 4 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 сайта), сервери протоколу передачі файлів (FTP), мережеві сховища даних (NAS) і локальні накопичувачі на дисках. Пристрій 14 призначення може одержати доступ до закодованих відеоданих за допомогою стандартного з'єднання передачі даних, такого як Інтернет-з'єднання. Зразкові типи з'єднань передачі даних включають в себе бездротові канали (наприклад, з'єднання Wi-Fi), дротові з'єднання (наприклад, DSL, кабельний модем і т. д.) або їх комбінації, які є придатними для одержання доступу до закодованих відеоданих, що зберігаються на файловому сервері. Передача закодованих відеоданих від файлового сервера може являти собою потокову передачу, передачу завантаження або їх комбінацію. Методики цього розкриття не обмежені додатками або конфігураціями бездротового зв'язку. Методики можуть бути застосовані до відеокодування при підтриманні множини мультимедійних додатків, таких як ефірне телемовлення, передача кабельного телебачення, передача супутникового телебачення, передача потокового відео, наприклад через Інтернет, кодування відеоданих для зберігання на носії даних, декодування відеоданих, збережених на носії даних, або інші додатки. У деяких прикладах система 10 відеокодування може бути виконана з можливістю підтримувати односторонню або двосторонню передачу відео для підтримання таких додатків, як потокова передача відеоінформації, відтворення відео, відеомовлення і/або відеотелефонія. У прикладі на фіг. 1 пристрій 12 джерела включає в себе джерело 18 відео, відеокодер 20 і вихідний інтерфейс 22. У деяких прикладах вихідний інтерфейс 22 може включати в себе модулятор/демодулятор (модем) і/або передавач. Джерело 18 відео може включати в себе пристрій відеозйомки, наприклад відеокамеру, відеоархіви, що містять раніше відзняті відеодані, інтерфейс відеоканалу для прийому відеоданих від провайдера відеоконтенту і/або систему комп'ютерної графіки для формування відеоданих або комбінацію таких джерел відеоданих. Відеокодер 20 може закодувати відеодані з джерела 18 відео. У деяких прикладах пристрій 12 джерела безпосередньо передає закодовані відеодані пристрою 14 призначення через вихідний інтерфейс 22. Закодовані відеодані можуть також бути збережені на запам'ятовуючий носій або файловий сервер для більш пізнього доступу за допомогою пристрою 14 призначення для декодування і/або відтворення. У прикладі на фіг. 1 пристрій 14 призначення включає в себе вхідний інтерфейс 28, відеодекодер 30 і пристрій 32 відображення. У деяких прикладах вхідний інтерфейс 28 включає в себе приймач і/або модем. Вхідний інтерфейс 28 може приймати закодовані відеодані по каналу 16. Пристрій відображення 32 може бути інтегрований з пристроєм 14 призначення або може бути зовнішнім відносно нього. У загальному випадку пристрій 32 відображення відображає декодовані відеодані. Пристрій 32 відображення може містити множину пристроїв відображення, таких як рідкокристалічний дисплей (LCD), плазмовий дисплей, органічний світлодіодний (OLED) дисплей або пристрій відображення іншого типу. Відеокодер 20 і відеодекодер 30 можуть працювати згідно зі стандартом стиснення відеоінформації, таким як стандарт високоефективного відеокодування (HEVC), розроблюваний на даний час, і може відповідати тестовій моделі стандарту HEVC (HM). Проект майбутнього стандарту HEVC, званий "Робочий проект HEVC 5" або "WD5", описаний в документі Bross et al., "WD5: Working Draft 5 °F High-Efficiency Video Coding", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SGI 6 WP3 and ISO/IEC JTC1/SC29/WG11, 7th Meeting: Geneva, Switzerland, November, 2011, версія якого від 10 жовтня 2012 року може бути завантажена за адресою: http://phenix.int-evry.fr/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC-G1103-v3.zip, і інформаційний зміст якого включений в цей документ по посиланню. Інший проект майбутнього стандарту HEVC, називаний "Робочий проект HEVC 9", описаний в документі Bross et al., "High Efficiency Video Coding (HEVC) text specification draft 9", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SGI 6 WP3 and ISO/IEC JTC1/SC29/WG11, 11th Meeting: Shanghai, China, October, 2012, версія якого від 7 листопада 2012 року може бути завантажена за адресою: http://phenix.int-evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v8.zip, і інформаційний зміст якого включений в цей документ по посиланню. Як альтернатива, відеокодер 20 і відеодекодер 30 можуть працювати відповідно до інших власних або промислових стандартів, в тому числі ITU-T H.261, MPEG ISO/IEC 1 Visual, ITU-T H.262 або MPEG ISO/IEC 2 Visual, ITU-T H.263, MPEG ISO/IEC 4 Visaul і ITU-T H.264 (також відомий як MPEG ISO/IEC 4 AVC), в тому числі його розширення масштабованого відеокодування (SVC) і багатовидового відеокодування (MVC). Однак методики цього розкриття не обмежені яким-небудь конкретним стандартом або методикою кодування. 5 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 Потрібно знов зазначити, що фіг. 1 є лише прикладом, і методики цього розкриття можуть застосовуватися до конфігурацій відеокодування (наприклад, до кодування відео або декодування відео), які не обов'язково включають в себе яку-небудь передачу даних між пристроями кодування і декодування. У інших прикладах дані витягуються з локальної пам'яті, передаються у вигляді потоку по мережі і т. п. Пристрій кодування може закодувати і зберегти дані в запам'ятовуючому пристрої, і/або пристрій декодування може витягнути і декодувати дані з пам'яті. У багатьох прикладах кодування і декодування виконуються пристроями, які не взаємодіють один з одним, а просто кодують дані в запам'ятовуючому пристрої і/або витягують і декодують дані із запам'ятовуючого пристрою. Відеокодер 20 і відеодекодер 30 можуть бути реалізовані як будь-яка множина придатних схем, таких як один або декілька мікропроцесорів, процесорів цифрових сигналів (DSP), спеціалізованих інтегральних схем (ASIC), програмованих користувачем вентильних матриць (DSP), дискретних логічних схем, апаратних засобів або будь-яка їх комбінація. Якщо методики реалізовані частково в програмному забезпеченні, пристрій може зберігати команди для програмного забезпечення у придатному постійному комп'ютерно-читаному запам'ятовуючому носії і може виконувати команди в апаратних засобах з використанням одного або декількох процесорів для виконання методик цього розкриття. Будь-який із згаданих вище елементів (в тому числі апаратні засоби, програмне забезпечення, комбінація апаратного і програмного забезпечення і т. д.), може розглядатися як один або декілька процесорів. Відеокодер 20 і відеодекодер 30 можуть бути включені в один або декілька кодерів або декодерів, кожний з яких може бути інтегрований як частина об'єднаного кодера/декодера (кодека; CODEC) у відповідному пристрої. Це розкриття може загалом посилатися на те, що відеокодер 20 "сигналізує" певну інформацію іншому пристрою, такому як відеодекодер 30. Термін "сигналізування" може загалом стосуватися передачі синтаксичних елементів і/або інших даних, які представляють закодовані відеодані. Така передача може відбуватися в реальному часі або майже в реальному часі. Як альтернатива, така передача може відбуватися в проміжку часу, наприклад може відбуватися при збереженні синтаксичних елементів на комп'ютерно-читаному запам'ятовуючому носії в закодованому бітовому потоці під час кодування, який потім може бути витягнутий пристроєм декодування в будь-який час після збереження на цьому носії. Як згадано стисло вище, відеокодер 20 кодує відеодані. Відеодані можуть містити одне або декілька зображень. Кожне із зображень може являти собою нерухоме зображення. У деяких випадках зображення може згадуватися як "відеокадр". Відеокодер 20 може формувати бітовий потік, який включає в себе послідовність бітів, що формують закодоване представлення відеоданих. Бітовий потік може включати в себе закодовані зображення і відповідні дані. Закодоване зображення є закодованим представленням зображення. Відповідні дані можуть включати в себе множини параметрів послідовності (SPS), множини параметрів зображення (PPS) і інші синтаксичні структури. Множина SPS може містити параметри, застосовні до нуля або більшої кількості послідовностей зображень. Множина PPS може містити параметри, застосовні до нуля або більшої кількості зображень. Для формування закодованого представлення зображення відеокодер 20 може розділити зображення на решітку деревовидних блоків кодування (CTB). У деяких випадках блок CTB може згадуватися як "деревовидний блок", "найбільший елемент кодування" (LCU) або "деревовидний елемент кодування". Блоки CTB стандарту HEVC можуть приблизно бути аналогічними макроблокам попередніх стандартів, таких як H.264/AVC. Однак блок CTB не обов'язково обмежений конкретним розміром і може включати в себе один або декілька елементів кодування (CU). Кожний з блоків CTB може відповідати різним блокам пікселів одного розміру в межах зображення. Кожний піксел може містити вибірку яскравості (luma) і дві вибірки кольоровості (chroma). Таким чином, кожний блок CTB може бути асоційований з блоком вибірок яскравості і двома блоками вибірок кольоровості. Для простоти пояснення це розкриття може називати двовимірний масив пікселів пікселним блоком і може називати двовимірний масив вибірок блоком вибірок. Відеокодер 20 може використовувати розділення дерева квадрантів, щоб розділити пікселний блок, відповідний блоку CTB, на пікселні блоки, асоційовані з елементами CU, звідси назва "деревовидні блоки кодування". Блоки CTB зображення можуть бути згруповані в один або декілька слайсів. У деяких прикладах кожний зі слайсів включає в себе ціле число блоків CTB. Як частину кодування зображення, відеокодер 20 може сформувати закодовані представлення кожного слайсу зображення (тобто закодовані слайси). Щоб сформувати закодований слайс, відеокодер 20 6 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 може закодувати кожний блок CTB слайсу для формування закодованих представлень кожного з блоків CTB слайсу (тобто закодованих блоків CTB). Щоб сформувати закодований блок CTB, відеокодер 20 може рекурсивно виконувати розділення дерева квадрантів над пікселним блоком, асоційованим з блоком CTB, щоб розділити пікселний блок на все менші і менші пікселні блоки. Кожний з менших пікселних блоків може бути асоційований з елементом CU. Розділений елемент CU може бути елементом CU, пікселний блок якого розділений на пікселні блоки, асоційовані з іншими елементами CU. Нерозділений елемент CU може бути елементом CU, пікселний блок якого не розділений на пікселні блоки, асоційовані з іншими елементами CU. Відеокодер 20 може формувати один або декілька елементів прогнозування (PU) для кожного нерозділеного елемента CU. Кожний з елементів PU елемента CU може бути асоційований з окремим пікселним блоком в межах пікселного блока елемента CU. Відеокодер 20 може формувати пікселні блоки прогнозування для кожного елемента PU елемента CU. Пікселний блок прогнозування елемента PU може бути блоком пікселів. Відеокодер 20 може використовувати інтрапрогнозування або інтерпрогнозування для формування пікселного блока прогнозування для елемента PU. Якщо відеокодер 20 використовує інтрапрогнозування для формування пікселного блока прогнозування елемента PU, відеокодер 20 може сформувати пікселний блок прогнозування елемента PU на основі декодованих пікселів зображення, асоційованих з елементом PU. Якщо відеокодер 20 використовує інтерпрогнозування для формування пікселного блока прогнозування елемента PU, відеокодер 20 може сформувати пікселний блок прогнозування елемента PU на основі декодованих пікселів одного або декількох зображень, відмінних від зображення, асоційованого з елементом PU. Відеокодер 20 може формувати залишковий пікселний блок для елемента CU на основі пікселних блоків прогнозування елементів PU елемента CU. Залишковий пікселний блок для елемента CU може вказувати різницю між вибірками в пікселних блоках прогнозування для елементів PU елемента CU і відповідними вибірками в первинному пікселному блоці елемента CU. Крім того, як частину кодування нерозділеного елемента CU, відеокодер20 може виконати рекурсивне розділення дерева квадрантів над залишковим пікселним блоком елемента CU, щоб розділити залишковий пікселний блок елемента CU на один або декілька менших залишкових пікселних блоків, асоційованих з елементами перетворення (TU) елемента CU. Оскільки кожний з пікселів в пікселних блоках, асоційованих з елементами TU, включає в себе вибірку яскравості і дві вибірки кольоровості, кожний з елементів TU може бути асоційований з блоком залишкових вибірок яскравості і двома блоками залишкових вибірок кольоровості. Відеокодер 20 може застосувати одне або декілька перетворень до блоків залишкових вибірок, асоційованих з елементами TU, щоб формувати блоки коефіцієнтів. Відеокодер 20 може виконати процес квантування над кожним з блоків коефіцієнтів. Квантуванням звичайно називається процес, в якому коефіцієнти квантуються для можливого зменшення об'єму даних, використовуваних для представлення коефіцієнтів, забезпечуючи додаткове стиснення. Відеокодер 20 може формувати множини синтаксичних елементів, які представляють коефіцієнти в квантованих блоках коефіцієнтів. Відеокодер 20 може застосувати операції ентропійного кодування, такі як операції контекстно-адаптивного двійкового арифметичного кодування (CABAC), щонайменше до деяких з цих синтаксичних елементів. Як частину виконання операції ентропійного кодування, відеокодер 20 може вибрати контекст кодування. У випадку CABAC контекст кодування може вказувати імовірності діапазонів зі значенням 0 і зі значенням 1. Бітовий потік, сформований відеокодером 20, може включати в себе послідовність елементів рівня мережевої абстракції (NAL). Кожний з елементів NAL може являти собою синтаксичну структуру, що містить показник відносно типу даних в елементі NAL і байти, що містять дані. Наприклад, елемент NAL може містити дані, що представляють множину SPS, множину PPS, закодований слайс, інформацію додаткового поліпшення (SEI), роздільник елемента доступу, дані заповнення або дані іншого типу. Елементи NAL закодованих слайсів являють собою елементи NAL, які включають в себе закодовані слайси. Відеодекодер 30 може приймати бітовий потік. Бітовий потік може включати в себе закодоване представлення відеоданих, закодованих відеокодером 20. Відеодекодер 30 може аналізувати бітовий потік, щоб витягнути синтаксичні елементи з бітового потоку. Як частину витягання деяких синтаксичних елементів з бітового потоку, відеодекодер 30 може виконати ентропійне декодування (наприклад, декодування CABAC, експоненціальне декодування 7 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 60 Голомба і т. д.) даних в бітовому потоці. Відеодекодер 30 може відновлювати зображення відеоданих на основі синтаксичних елементів, витягнутих з бітового потоку. Процес для відновлення відеоданих на основі синтаксичних елементів загалом може бути зворотним відносно процесу, виконуваного відеокодером 20 для формування синтаксичних елементів. Наприклад, відеодекодер 30 може формувати на основі синтаксичних елементів, асоційованих з елементом CU, пікселні блоки прогнозування для елементів PU елемента CU. Крім того, відеодекодер 30 може виконувати зворотне квантування блоків коефіцієнтів, асоційованих з елементами TU елемента CU. Відеодекодер 30 може виконувати зворотні перетворення над блоками коефіцієнтів, щоб відновити залишкові пікселні блоки, асоційовані з елементами TU елемента CU. Відеодекодер 30 може відновити пікселний блок елемента CU на основі пікселних блоків прогнозування і залишкових пікселних блоків. У деяких прикладах відеокодер 20 може розділяти зображення на множину ентропійних слайсів. Це розкриття може використовувати термін "регулярний слайс", щоб відрізняти слайси від ентропійних слайсів. Ентропійний слайс може включати в себе підмножину елементів CU регулярного слайсу. У деяких прикладах відеокодер 20 може розділяти елементи CU серед ентропійних слайсів таким чином, що жоден з ентропійних слайсів не включає в себе більше діапазонів (наприклад, ентропійно закодованих бітів), ніж верхня межа. Кожний ентропійний слайс може бути включений в окремий елемент NAL. У цьому розкритті прогнозуванням всередині зображення може називатися використання інформації, асоційованої з першим елементом (наприклад, CTB, CU, PU і т. д.) зображення для кодування другого елемента цього ж зображення. Прогнозування всередині зображенні через границі ентропійних слайсів дозволяється, за винятком мети ентропійного кодування. Наприклад, якщо пристрій відеокодування (наприклад, відеокодер 20 або відеодекодер 30) виконує інтрапрогнозування над конкретним елементом PU, пристрій відеокодування може використовувати вибірки з сусіднього елемента PU, навіть якщо сусідній елемент PU знаходиться в ентропійному слайсі, відмінному від того, в якому знаходиться конкретний елемент PU. У цьому прикладі пристрій відеокодування може не мати можливості використовувати вибірки з сусіднього елемента PU, якщо сусідній елемент PU знаходиться в слайсі, відмінному від того, в якому знаходиться конкретний елемент PU. Однак, коли пристрій відеокодування виконує ентропійне кодування над даними, асоційованими з конкретним елементом PU, пристрою відеокодування дозволено вибирати контексти кодування тільки на основі інформації, асоційованої з сусіднім елементом PU, якщо конкретний елемент PU і сусідній елемент PU знаходяться в одному і тому ж ентропійному слайсі. Внаслідок цього обмеження пристрій відеокодування може мати можливість виконати операції ентропійного кодування або декодування над декількома ентропійними слайсами слайсу паралельно. Отже, відеодекодер 30 може мати можливість паралельно проаналізувати синтаксичні елементи декількох ентропійних слайсів. Однак відеодекодер 30 не може паралельно відновити пікселні блоки декількох ентропійних слайсів слайсу. Як указано вище, елемент NAL закодованого слайсу може містити закодований слайс. Цей слайс може являти собою або ентропійний слайс, або регулярний слайс. Заголовок слайсу в елементі NAL закодованого слайсу може включати в себе синтаксичний елемент (наприклад, entropy_slice_flag), який вказує, чи є слайс ентропійним слайсом або регулярним слайсом. Наприклад, якщо синтаксичний елемент дорівнює 1, слайс в елементі NAL закодованого слайсу може бути ентропійним слайсом. Кожний закодований слайс може включати в себе заголовок слайсу і дані слайсу. Заголовки ентропійних слайсів можуть відрізнятися від заголовків регулярних слайсів. Наприклад, синтаксичні елементи в заголовках ентропійних слайсів можуть включати в себе підмножину синтаксичних елементів в заголовках регулярних слайсів. Оскільки заголовки ентропійних слайсів включають в себе менше синтаксичних елементів, ніж заголовки регулярних слайсів, ентропійні слайси також можуть називатися легкими слайсами, слайсами з короткими заголовками або короткими слайсами. Ентропійний слайс може успадкувати із заголовка регулярного слайсу, який передує ентропійному слайсу в порядку декодування, синтаксичні елементи, опущені із заголовка ентропійного слайсу. Традиційно відеокодери формують окремі елементи NAL для кожного ентропійного слайсу. Окремі елементи NAL часто транспортуються по мережі в окремих пакетах. Іншими словами, може бути наявний один елемент NAL на пакет під час передачі елементів NAL через мережу. Це може бути проблематично для елементів NAL, які містять ентропійні слайси. Якщо пакет, що містить елемент NAL, який включає в себе регулярний слайс, втрачений під час передачі, відеодекодер 30 може бути не здатний використовувати ентропійні слайси, які успадковували синтаксичні елементи із заголовка регулярного слайсу. Крім того, якщо один або декілька блоків 8 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 60 CTB першого ентропійного слайсу покладаються на один або декілька блоків CTB другого ентропійного слайсу для прогнозування в зображенні, і пакет, що містить елемент NAL, який включає в себе другий ентропійний слайс, втрачений під час передачі, відеокодер 30 може бути не здатний декодувати блоки CTB першого ентропійного слайсу. У деяких прикладах пристрій відеокодування може закодувати щонайменше частини зображення з використанням хвильової паралельної обробки (WPP). Фіг. 9, описана детально нижче, є концептуальною схемою, яка ілюструє приклад WPP. Якщо пристрій відеокодування кодує зображення з використанням WPP, пристрій відеокодування може розділити блоки CTB зображення на множину "хвиль WPP." Кожна з хвиль WPP може відповідати окремому рядку блоків CTB в зображенні. Якщо пристрій відеокодування кодує зображення з використанням WPP, пристрій відеокодування може почати кодувати верхній рядок блоків CTB. Після того, як пристрій відеокодування закодував два або більше блоків CTB верхнього рядка, пристрій відеокодування може почати кодувати другий зверху рядок блоків CTB паралельно з кодуванням верхнього рядка блоків CTB. Після того, як пристрій відеокодування закодував два або декілька блоків CTB другого зверху рядка, пристрій відеокодування може почати кодувати третій зверху рядок блоків CTB паралельно з кодуванням більш верхніх рядків блоків CTB. Цей шаблон може продовжуватися вниз по рядках блоків CTB в зображенні. Якщо пристрій відеокодування використовує WPP, пристрій відеокодування може використовувати інформацію, асоційовану з сусідніми в просторі елементами CU поза поточним блоком CTB, щоб виконати прогнозування всередині зображення над конкретним елементом CU в поточному блоці CTB, поки сусідні в просторі елементи CU знаходяться зліва, зверху і зліва, зверху або зверху і справа від поточного блока CTB. Якщо поточний блок CTB є самим лівим блоком CTB в рядку, відмінному від самого верхнього рядка, пристрій відеокодування може використовувати інформацію, асоційовану з другим блоком CTB рядка, що знаходиться безпосередньо зверху, щоб вибрати контекст для кодування CABAC одного або декількох синтаксичних елементів поточного блока CTB. Інакше, якщо поточний блок CTB не є самим лівим блоком CTB в рядку, пристрій відеокодування може використовувати інформацію, відповідну блоку CTB зліва від поточного блока CTB, щоб вибрати контекст для кодування CABAC одного або декількох синтаксичних елементів поточного блока CTB. Таким чином, пристрій відеокодування може ініціалізувати стани CABAC на основі станів CABAC рядка, що знаходиться безпосередньо зверху, після кодування двох або більше блоків CTB рядка, що знаходиться безпосередньо зверху. Таким чином, у відповідь на визначення, що перший блок CTB відділений від лівої границі зображення єдиним блоком CTB, пристрій відеокодування може зберегти змінні контексту, асоційовані з першим блоком CTB. Пристрій відеокодування може виконати ентропійне кодування або ентропійне декодування одного або декількох синтаксичних елементів другого блока CTB щонайменше частково на основі змінних контексту, асоційованих з першим блоком CTB, причому другий блок CTB є суміжним з лівою границею зображення і на один рядок блоків CTB нижче першого блока CTB. Закодовані блоки CTB слайсу звичайно розташовуються в елементі NAL закодованого слайсу відповідно до порядку растрової розгортки, навіть коли використовується WPP. Це може ускладнити конфігурацію пристроїв відеокодування, які реалізовують WPP. Коли кількість хвиль WPP більше однієї і менше кількості рядків блока CTB зображення, порядок бітового потоку (тобто порядок декодування, якщо закодоване зображення обробляється одним ядром декодера, не декодується паралельно) закодованих бітів для блоків CTB змінений в порівнянні з порядком, коли WPP не застосовується, наступним чином. Закодований блок CTB пізніше в бітовому потоці/порядку декодування може бути необхідний для прогнозування всередині зображення за допомогою іншого закодованого блока CTB раніше в порядку декодування. Це може порушити обумовленість бітового потоку, при якій більш ранні дані не залежать від даних, що приходять пізніше в бітовому потоці/порядку декодування. Принцип обумовленості бітового потоку звичайно виконується в конфігураціях відеокодування, що включають в себе стандарти відеокодування. Хоч процес декодування працює, процес декодування може бути більш складним, оскільки покажчик бітового потоку, який вказує поточну позицію в бітовому потоці, може переміщатися назад і уперед в межах частини бітового потоку, відповідної елементу NAL закодованого слайсу. У деяких прикладах відеокодер 20 може розділити зображення на один або декілька мозаїчних елементів. Мозаїчні елементи можуть містити множини блоків CTB зображення, що не перекриваються. Відеокодер 20 може розділити зображення на мозаїчні елементи, визначаючи дві або більше вертикальних границь мозаїчного елемента і дві або більше горизонтальних границь мозаїчного елемента. Кожна вертикальна сторона зображення може 9 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 бути вертикальною границею мозаїчного елемента. Кожна горизонтальна сторона поточного зображення може бути горизонтальною границею мозаїчного елемента. Наприклад, якщо відеокодер 20 визначає чотири вертикальні границі мозаїчного елемента і три горизонтальні границі мозаїчного елемента для зображення, поточне зображення розділяється на шість мозаїчних елементів. Пристрій відеокодування, такий як відеокодер 20 або відеодекодер 30, може кодувати блоки CTB мозаїчних елементів зображення відповідно до порядку сканування мозаїчних елементів. Щоб закодувати блоки CTB відповідно до порядку сканування мозаїчних елементів, пристрій відеокодування може закодувати мозаїчні елементи зображення відповідно до порядку растрової розгортки. Таким чином, пристрій відеокодування може закодувати кожний мозаїчний елемент по рядках мозаїчних елементів зліва направо, починаючи з верхнього рядка мозаїчних елементів і потім продовжуючи вниз зображення. Крім того, пристрій відеокодування може закодувати кожний блок CTB в межах мозаїчного елемента відповідно до порядку растрової розгортки. Таким чином, пристрій відеокодування може закодувати кожний блок CTB даного мозаїчного елемента зображення, перш ніж закодувати будь-який блок CTB іншого мозаїчного елемента зображення. Іншими словами, порядок сканування мозаїчного елемента проходить через блоки CTB в порядку растрової розгортки блоків CTB в межах мозаїчного елемента і проходить через мозаїчні елементи в порядку растрової розгортки мозаїчних елементів в межах зображення. Отже, порядок, в якому пристрій відеокодування кодує блоки CTB зображення, може відрізнятися, якщо зображення розділене на декілька мозаїчних елементів і якщо зображення не розділене на декілька мозаїчних елементів. Фіг. 10, описана нижче, є концептуальною схемою, що показує зразковий порядок сканування мозаїчних елементів, коли зображення розділене на декілька мозаїчних елементів. У деяких випадках пристрій відеокодування може виконувати прогнозування всередині зображення через границі мозаїчного елемента, але не через границі слайсу. У інших випадках прогнозування всередині зображення заборонене через границі мозаїчного елемента і границі слайсу. У випадках, коли прогнозування всередині зображення заборонене через границі мозаїчного елемента і границі слайсу, пристрій відеокодування може паралельно кодувати декілька мозаїчних елементів. У деяких прикладах прогнозуванням всередині зображення через границі мозаїчного елемента керує прапор (наприклад, "tile_boundary_independence_idc"). Якщо прапор дорівнює 1, прогнозування всередині зображення через границі мозаїчного елемента не дозволене в межах зображення. У іншому випадку прогнозування всередині зображення через границі мозаїчного елемента дозволене, за винятком границь мозаїчного елемента, які є також границями зображення або границями слайсу. Якщо прогнозування всередині зображення через границі мозаїчного елемента дозволене, функціональність мозаїчних елементів може змінити порядок сканування блоків CTB в порівнянні з випадком, коли зображення не має мозаїчних елементів або, еквівалентно, має тільки один мозаїчний елемент. Якщо прогнозування всередині зображення через границі мозаїчного елемента не дозволене, крім зміни порядку сканування блоків CTB мозаїчні елементи також можуть забезпечити незалежне розділення, яке може використовуватися для паралельного кодування і/або декодування мозаїчних елементів. Таким чином, якщо зображення розділене щонайменше на перший мозаїчний елемент і другий мозаїчний елемент, коли відеодекодер 30 декодує мозаїчні елементи, не використовуючи WPP, відеодекодер 30 може паралельно декодувати блок CTB першого мозаїчного елемента і блок CTB другого мозаїчного елемента. У деяких випадках зображення може бути розділене на комбінацію мозаїчних елементів, хвиль WPP і ентропійних слайсів. Наприклад, зображення може бути розділене на мозаїчний елемент і множину хвиль WPP. У іншому прикладі зображення може бути розділене на два мозаїчних елементи і ентропійний слайс. Дозвіл комбінацій мозаїчних елементів, хвиль WPP і ентропійних слайсів в межах зображення може бути проблематичним, оскільки дозвіл таких комбінацій може збільшити складність і вартість відеокодерів і/або відеодекодерів. Методики цього розкриття можуть вирішити описані вище проблеми. Відповідно до методик цього розкриття зображення не може бути розділене ні на яку комбінацію мозаїчних елементів, хвиль WPP і ентропійних слайсів. Іншими словами, зображення може бути розділене на один або декілька мозаїчних елементів, зображення може бути розділене на хвилі WPP або зображення може бути розділене на один або декілька ентропійних слайсів. Однак, зображення не може бути розділене ні на одну з наступних комбінацій: (a) мозаїчні елементи, хвилі WPP і ентропійні слайси, (b) мозаїчні елементи і хвилі WPP, (с) мозаїчні елементи і ентропійні слайси, або (d) хвилі WPP і ентропійні слайси. 10 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 60 Для виконання цього відеокодер 20 може включати, в бітовому потоці, синтаксичний елемент, який вказує, що зображення закодоване або відповідно до першого режиму кодування, або відповідно до другого режиму кодування. У першому режимі кодування зображення повністю кодується з використанням WPP. Таким чином, кожний рядок блоків CTB в зображенні може бути закодований як хвиля WPP. У другому режимі кодування зображення може мати один або декілька мозаїчних елементів. Крім того, у другому режимі кодування кожний мозаїчний елемент зображення може бути закодований без використання WPP. Наприклад, у другому режимі кодування відеокодер 20 для кожного мозаїчного елемента зображення може закодувати блоки CTB в межах мозаїчного елемента послідовно в порядку зліва направо по рядках блоків CTB і вниз по рядках блоків CTB мозаїчного елемента. Для простоти пояснення цей синтаксичний елемент може згадуватися тут як синтаксичний елемент режиму кодування. Відеодекодер 30 може аналізувати синтаксичний елемент з бітового потоку, який включає в себе закодоване представлення зображення у відеоданих. У відповідь на визначення, що синтаксичний елемент має конкретне значення, відеодекодер 30 може декодувати зображення, повністю використовуючи WPP. У відповідь на визначення, що синтаксичний елемент не має конкретного значення, відеодекодер 30 може декодувати кожний мозаїчний елемент зображення, не використовуючи WPP, причому зображення має один або декілька мозаїчних елементів. Різні частини бітового потоку можуть включати в себе синтаксичний елемент режиму кодування. Наприклад, відеокодер 20 може формувати множину SPS, що включає в себе синтаксичний елемент режиму кодування. У цьому прикладі відеодекодер 30 може виділити з бітового потоку множину SPS, що включає в себе синтаксичний елемент режиму кодування. У іншому прикладі відеокодер 20 може формувати множину PPS, що включає в себе синтаксичний елемент режиму кодування. У цьому прикладі відеодекодер 30 може виділити з бітового потоку множину PPS, що включає в себе синтаксичний елемент режиму кодування. Крім того, якщо зображення закодоване згідно з другим режимом кодування, бітовий потік може включати в себе один або декілька синтаксичних елементів, які вказують, чи використані ентропійні слайси для зображення. Різні частини бітового потоку можуть включати в себе один або декілька синтаксичних елементів, які вказують, чи використані ентропійні слайси для зображення. Наприклад, множина SPS може включати в себе один або декілька синтаксичних елементів, які вказують, що ентропійні слайси використані для зображень, відповідних множині SPS. У іншому прикладі множина PPS може включати в себе один або декілька синтаксичних елементів, які вказують, що ентропійні слайси використані для зображень, відповідних множині PPS. Наприклад, в цьому прикладі множина PPS може включати в себе синтаксичний елемент entropy_slice_enabled_flag, який вказує, чи можуть закодовані слайси, які належать до множини PPS, складатися з ентропійних слайсів. Якщо зображення включає в себе один або декілька ентропійних слайсів, кожний ентропійний слайс, відповідний слайсу зображення, може бути включений в єдиний елемент NAL закодованого слайсу, замість того, щоб бути включеним в окремі елементи NAL. Таким чином, ентропійний слайс може бути визначений як підмножина слайсу, причому процес ентропійного декодування ентропійного слайсу незалежний від інших ентропійних слайсів в тому ж самому слайсі. Як стисло згадано вище, бітовий потік може включати в себе елементи NAL закодованого слайсу, які включають в себе закодовані слайси. Закодований слайс може містити заголовок слайсу і дані слайсу. Дані слайсу можуть включати в себе один або декілька підпотоків. Відповідно до методик цього розкриття, якщо зображення закодоване в першому режимі кодування (тобто зображення повністю закодоване з використанням WPP), кожний рядок блоків CTB слайсу представлений єдиним з підпотоків. Якщо зображення закодоване у другому режимі кодування (тобто кожний мозаїчний елемент зображення закодований без використання WPP), кожний мозаїчний елемент зображення, який має один або декілька блоків CTB в слайсі, представлений єдиним з підпотоків. Крім того, відповідно до методик цього розкриття заголовок закодованого слайсу може включати в себе множину синтаксичних елементів, які вказують точки входу мозаїчних елементів, хвилі WPP або ентропійні слайси в межах даних слайсу елемента NAL закодованого слайсу. Точка входу підпотоку може бути першим бітом підпотоку. Крім того, мозаїчні елементи, хвилі WPP або ентропійні слайси в межах даних слайсу елемента NAL закодованого слайсу можуть включати в себе додаткові біти, які гарантують, що мозаїчні елементи, хвилі WPP або ентропійні слайси вирівняні по байту. Фіг. 2 є блок-схемою, яка показує зразковий відеокодер 20, виконаний з можливістю реалізувати методики цього розкриття. Фіг. 2 представлена з метою пояснення і не повинна 11 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 60 розглядатися як така, що обмежує методики, загалом проілюстровані і описані в цьому розкритті. З метою пояснення це розкриття описує відеокодер 20 в контексті кодування HEVC. Однак методики цього розкриття можуть бути застосовані до інших стандартів або способів кодування. У прикладі на фіг. 2 відеокодер 20 включає в себе секцію 100 обробки прогнозування, секцію 102 формування різниці, секцію 104 обробки перетворення, секцію 106 квантування, секцію 108 зворотного квантування, секцію 110 обробки зворотного перетворення, секцію 112 відновлення, секцію 113 фільтра, буфер 114 декодованого зображення і секцію 116 ентропійного кодування. Секція 100 обробки прогнозування включає в себе секцію 121 обробки інтерпрогнозування і секцію 126 обробки інтрапрогнозування. Секція 121 обробки інтерпрогнозування включає в себе секцію 122 оцінки руху і секцію 124 компенсації руху. У інших прикладах відеокодер 20 може включати більше або менше функціональних компонентів або інші функціональні компоненти. Відеокодер 20 може приймати відеодані. Щоб закодувати відеодані, відеокодер 20 може закодувати кожний слайс кожного зображення відеоданих. Як частину кодування слайсу, відеокодер 20 може закодувати кожний блок CTB в слайсі. Як частину кодування блока CTB, секція 100 обробки прогнозування може виконати розділення дерева квадрантів над пікселним блоком, відповідним блоку CTB, для розділення пікселного блока на все менші і менші пікселні блоки. Менші пікселні блоки можуть відповідати елементам CU. Наприклад, секція 100 обробки прогнозування може розділити пікселний блок блока CTB на чотири підблоки з однаковими розмірами, розділити один або декілька підблоків на чотири підпідблоки з однаковими розмірами і так далі. Відеокодер 20 може закодувати елементи CU блока CTB, щоб сформувати закодовані представлення елементів CU (тобто закодовані елементи CU). Відеокодер 20 може закодувати елементи CU блока CTB відповідно до порядку z-сканування. Іншими словами, відеокодер 20 може закодувати верхній лівий елемент CU, верхній правий елемент CU, нижній лівий елемент CU і потім нижній правий елемент CU в цьому порядку. Коли відеокодер 20 кодує розділений елемент CU, відеокодер 20 може закодувати елементи CU, відповідні підблокам пікселного блока розділеного елемента CU, відповідно до порядку z-сканування. Як частину кодування елемента CU, секція 100 обробки прогнозування може розділити пікселний блок елемента CU серед одного або декількох елементів PU елемента CU. Відеокодер 20 і відеодекодер 30 можуть підтримувати різні розміри елемента PU. У припущенні, що розмір конкретного елемента CU становить 2N×2N, відеокодер 20 і відеодекодер 30 можуть підтримувати розміри елемента PU 2N×2N або N×N для інтрапрогнозування і симетричні розміри елемента PU 2N×2N, 2N×N, N×2N, N×N і т. п. для інтерпрогнозування. Відеокодер 20 і відеодекодер 30 також можуть підтримувати асиметричне розділення для розмірів елемента PU 2N×nU, 2N×nD, nL×2N і nR×2N для інтерпрогнозування. Секція 121 обробки інтерпрогнозування може формувати дані прогнозування для елемента PU, виконуючи інтерпрогнозування над кожним елементом PU елемента CU. Дані прогнозування для елемента PU можуть включати в себе пікселний блок прогнозування, який відповідає елементу PU, і інформацію руху для елемента PU. Слайси можуть являти собою Iслайси, Р-слайси або В-слайси. Секція 121 інтерпрогнозування може виконувати різні операції для елемента PU елемента CU залежно від того, чи знаходиться елемент PU в I-слайсі, Рслайсі або В-слайсі. У I-слайсі всі елементи PU мають інтрапрогнозування. Отже, якщо елемент PU знаходиться в I-слайсі, секція 121 інтерпрогнозування 121 не виконує інтерпрогнозування над елементом PU. Якщо елемент PU знаходиться в Р-слайсі, секція 122 оцінки руху може виконати пошук опорного блока для елемента PU в опорних зображеннях в списку опорних зображень (наприклад, в "списку 0"). Опорний блок елемента PU може бути пікселним блоком, який найбільш близько відповідає пікселному блоку елемента PU. Секція 122 оцінки руху може сформувати індекс опорного зображення, який вказує опорне зображення в списку 0, що містить опорний блок елемента PU і вектор руху, який вказує просторове зміщення між пікселним блоком елемента PU і опорним блоком. Секція 122 оцінки руху може видати індекс опорного зображення і вектор руху як інформацію руху елемента PU. Секція 124 компенсації руху може формувати пікселний блок прогнозування елемента PU на основі опорного блока, позначеного інформацією руху елемента PU. Якщо елемент PU знаходиться в В-слайсі, секція 122 оцінки руху може виконати однонаправлене інтерпрогнозування або двонаправлене інтерпрогнозування для елемента PU. Щоб виконати однонаправлене інтерпрогнозування для елемента PU, секція 122 оцінки руху може виконати пошук опорного блока для елемента PU в опорних зображеннях першого списку опорних зображень ("списку 0") або другого списку опорних зображень ("списку 1"). Секція 122 12 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 оцінки руху може видати як інформацію руху елемента PU індекс опорного зображення, який вказує позицію в списку 0 або списку 1 опорного зображення, яке містить опорний блок, вектор руху, який вказує просторове зміщення між пікселним блоком елемента PU і опорним блоком, і індикатор напрямку прогнозування, який вказує, чи знаходиться опорне зображення в списку 0 або в списку 1. Щоб виконати двонаправлене інтерпрогнозування для елемента PU, секція 122 оцінки руху може виконати пошук опорного блока для елемента PU в опорних зображеннях в списку 0 і також може виконати пошук іншого опорного блока для елемента PU в опорних зображеннях в списку 1. Секція 122 оцінки руху може сформувати індекси опорних зображень, які вказують позиції в списку 0 і в списку 1 опорних зображень, які містять опорні блоки. Крім того, секція 122 оцінки руху може сформувати вектори руху, які вказують просторові зміщення між опорними блоками і пікселним блоком елемента PU. Інформація руху елемента PU може включати в себе індекси опорних зображень і вектори руху елемента PU. Секція 124 компенсації руху може сформувати пікселний блок прогнозування елемента PU на основі опорних блоків, позначених інформацією руху елемента PU. Секція 126 обробки інтрапрогнозування 126 може формувати дані прогнозування для елемента PU, виконуючи інтрапрогнозування над елементом PU. Дані прогнозування для елемента PU можуть включати в себе пікселний блок прогнозування для елемента PU і різні синтаксичні елементи. Секція 126 обробки інтрапрогнозування може виконати інтрапрогнозування над елементами PU в I-слайсах, Р-слайсах і В-слайсах. Щоб виконати інтрапрогнозування над елементом PU, секція 126 обробки інтрапрогнозування може використовувати декілька режимів інтрапрогнозування для формування декількох множин даних прогнозування для елемента PU. Щоб використовувати режим інтрапрогнозування для формування множини даних прогнозування для елемента PU, секція 126 обробки інтрапрогнозування може розширити вибірки з блоків вибірок сусідніх елементів PU по блоках вибірок елемента PU в напрямі, відповідному режиму інтрапрогнозування. Сусідні елементи PU можуть знаходитися зверху, зверху і справа, зверху і зліва або зліва від елемента PU, при умові порядку кодування зліва направо і зверху вниз для елементів PU, елементів CU і блоків CTB. Секція 126 обробки інтрапрогнозування може використовувати різні кількості режимів інтрапрогнозування, наприклад 33 направлених режими інтрапрогнозування. У деяких прикладах кількість режимів інтрапрогнозування може залежати від розміру пікселного блока елемента PU. Секція 100 обробки прогнозування може вибрати дані прогнозування для елементів PU елемента CU з даних прогнозування, сформованих секцією 121 обробки інтерпрогнозування для елементів PU, або з даних прогнозування, сформованих секцією 126 обробки інтрапрогнозування для елементів PU. У деяких прикладах секція 100 обробки прогнозування вибирає дані прогнозування для елементів PU елемента CU на основі метрик швидкості/спотворення множин даних прогнозування. Пікселні блоки прогнозування вибраних даних прогнозування можуть називатися тут вибраними пікселними блоками прогнозування. Секція 102 формування різниці може формувати залишковий піксельний блок елемента CU на основі піксельного блока елемента CU і вибраних піксельних блоків прогнозування елементів PU елемента CU. Наприклад, секція 102 формування різниці може формувати залишковий піксельний блок елемента CU таким чином, що кожна вибірка в залишковому піксельному блоці має значення, що дорівнює різниці між вибіркою в піксельному блоці елемента CU і відповідною вибіркою у вибраному піксельному блоці прогнозування елемента PU елемента CU. Секція 100 обробки прогнозування може виконати розділення дерева квадрантів, щоб розділити залишковий піксельний блок елемента CU на підблоки. Кожний нерозділений залишковий піксельний блок може відповідати окремому елементу TU елемента CU. Розміри і позиції залишкових піксельних блоків, відповідних елементам TU елемента CU, можуть бути основані або не основані на розмірах і позиціях піксельних блоків елементів PU елемента CU. Оскільки пікселі залишкових пікселних блоків елементів TU можуть містити вибірку яскравості і дві вибірки кольоровості, кожний з елементів TU може бути асоційований з блоком вибірок яскравості і двома блоками вибірок кольоровості. Секція 104 обробки перетворення може сформувати блоки коефіцієнтів для кожного елемента TU елемента CU, застосовуючи одне або декілька перетворень до блоків залишкових вибірок, відповідних елементу TU. Секція 104 обробки перетворення може застосувати різні перетворення до блока залишкових вибірок, відповідного елементу TU. Наприклад, секція 104 обробки перетворення може застосувати дискретне косинусне перетворення (DCT), направлене перетворення або концептуально аналогічне перетворення до блока залишкових вибірок. 13 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 60 Секція 106 квантування може квантувати коефіцієнти в блоці коефіцієнтів, відповідному елементу TU. Процес квантування може зменшити бітову глибину, відповідну деяким або всім коефіцієнтам. Наприклад, n-бітовий коефіцієнт може бути округлений в меншу сторону до mбітового коефіцієнта під час квантування, де n більше m. Секція 106 квантування може квантувати блок коефіцієнтів, відповідний елементу TU елемента CU, на основі значення параметра квантування (QP), відповідного елементу CU. Відеокодер 20 може скоректувати міру квантування, застосовувану до блоків коефіцієнтів, асоційованих з елементом CU, за допомогою коректування значення параметра QP, асоційованого з елементом CU. Секція 108 зворотного квантування і секція 110 обробки зворотного перетворення можуть застосовувати зворотне квантування і зворотні перетворення до блока коефіцієнтів, відповідно, щоб відновити блок залишкових вибірок з блока коефіцієнтів. Секція 112 відновлення може додати відновлений блок залишкових вибірок до відповідних вибірок з одного або декількох блоків вибірок прогнозування, сформованих секцією 100 обробки прогнозування, щоб виробити відновлений блок вибірок, асоційований з елементом TU. За допомогою такого відновлення блоків вибірок для кожного елемента TU елемента CU відеокодер 20 може відновити пікселний блок елемента CU. Секція 113 фільтра може виконати операцію видалення блоковості, щоб зменшити артефакти блоковості в пікселному блоці, відповідному елементу CU. Буфер 114 декодованого зображення може зберігати відновлені пікселні блоки після того, як секція 113 фільтра виконує одну або декілька операцій видалення блоковості над відновленими пікселними блоками. Секція 121 інтерпрогнозування може використовувати опорне зображення, яке містить відновлені пікселні блоки, для виконання інтерпрогнозування над елементами PU інших зображень. Крім того, секція 126 обробки інтрапрогнозування може використовувати відновлені пікселні блоки в буфері 114 декодованого зображення для виконання інтрапрогнозування над іншими елементами PU в тому ж самому зображенні, в якому знаходиться елемент CU. Секція 116 ентропійного кодування може приймати дані від інших функціональних компонентів відеокодера 20. Наприклад, секція 116 ентропійного кодування може приймати блоки коефіцієнтів від секції 106 квантування і може приймати синтаксичні елементи від секції 100 обробки прогнозування. Секція 116 ентропійного кодування може виконувати одну або декілька операцій ентропійного кодування над даними для формування підданих ентропійному кодуванню даних. Наприклад, секція 116 ентропійного кодування може виконати операцію контекстно-адаптивного кодування із змінною довжиною (CAVLC), операцію кодування CABAC, операцію кодування змінних із змінною довжиною (variable-to-variable; V2V), операцію контекстно-адаптивного двійкового арифметичного кодування на основі синтаксису (SBAC), операцію ентропійного кодування з розділенням на інтервали імовірності (PIPE), операцію експоненціального кодування Голомба або операцію ентропійного кодування іншого типу над даними. Відеокодер 20 може видати бітовий потік, який включає в себе піддані ентропійному кодуванню дані, сформовані секцією 116 ентропійного кодування. Бітовий потік може включати в себе послідовність елементів NAL. Елементи NAL можуть включати в себе елементи NAL закодованого слайсу, елементи NAL множини SPS, елементи NAL множини PPS і так далі. Щоб гарантувати, що зображення не включає в себе комбінації мозаїчних елементів, хвиль WPP і ентропійних слайсів, бітовий потік може включати в себе синтаксичний елемент, який вказує, чи закодоване зображення повністю з використанням WPP, або кожний мозаїчний елемент зображення закодований без використання WPP. Фіг. 3 є блок-схемою, яка показує зразковий відеодекодер 30, виконаний з можливістю реалізувати методики цього розкриття. Фіг. 3 представлена з метою пояснення і не обмежує методики, загалом проілюстровані і описані в цьому розкритті. З метою пояснення це розкриття описує відеодекодер 30 в контексті кодування HEVC. Однак методики цього розкриття можуть бути застосовані до інших стандартів або способів кодування. У прикладі на фіг. 3 відеодекодер 30 включає в себе секцію 150 ентропійного декодування, секцію 152 обробки прогнозування, секцію 154 зворотного квантування, секцію 156 обробки зворотного перетворення, секцію 158 відновлення, секцію 159 фільтра і буфер 160 декодованого зображення. Секція 152 обробки прогнозування включає в себе секцію 162 компенсації руху і секцію 164 обробки інтрапрогнозування. У інших прикладах відеодекодер 30 може включати більше або менше функціональних компонентів або інші функціональні компоненти. Відеодекодер 30 може приймати бітовий потік. Секція 150 ентропійного декодування може проаналізувати бітовий потік, щоб витягнути з бітового потоку синтаксичні елементи. Як частину аналізу бітового потоку, секція 150 ентропійного декодування може виконати ентропійне 14 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 декодування підданих ентропійному кодуванню синтаксичних елементів в бітовому потоці. Секція 152 обробки прогнозування, секція 154 зворотного квантування, секція 156 обробки зворотного перетворення, секція 158 відновлення і секція 159 фільтра можуть сформувати декодовані відеодані на основі синтаксичних елементів, витягнутих з бітового потоку. Бітовий потік може містити послідовність елементів NAL. Елементи NAL бітового потоку можуть включати в себе елементи NAL закодованого слайсу. Як частину аналізу бітового потоку, секція 150 ентропійного декодування може витягнути і піддати ентропійному декодуванню синтаксичні елементи з елементів NAL закодованого слайсу. Кожний із закодованих слайсів може включати в себе заголовок слайсу і дані слайсу. Заголовок слайсу може містити синтаксичні елементи, що мають відношення до слайсу. Синтаксичні елементи в заголовку слайсу можуть включати в себе синтаксичний елемент, який ідентифікує множину PPS, що відповідає зображенню, яке містить слайс. Крім того, відеодекодер 30 може виконати операцію відновлення над нерозділеним елементом CU. Для виконання операції відновлення над нерозділеним елементом CU відеодекодер 30 може виконати операцію відновлення над кожним елементом TU елемента CU. Виконуючи операцію відновлення для кожного елемента TU елемента CU, відеодекодер 30 може відновити залишковий пікселний блок, відповідний елементу CU. Як частину виконання операції відновлення над елементом TU елемента CU, секція 154 зворотного квантування може виконати зворотне квантування, тобто деквантування блоків коефіцієнтів, відповідних елементу TU. Секція 154 зворотного квантування може використовувати значення параметра QP, відповідне елементу CU елемента TU, щоб визначити міру квантування і, аналогічно, міру зворотного квантування для застосування секцією 154 зворотного квантування. Після того, як секція 154 зворотного квантування виконує зворотне квантування блока коефіцієнтів, секція 156 обробки зворотного перетворення може застосувати одне або декілька зворотних перетворень до блока коефіцієнтів, щоб сформувати блок залишкових вибірок, відповідний елементу TU. Наприклад, секція 156 обробки зворотного перетворення може застосувати до блока коефіцієнтів зворотне перетворення DCT, зворотне цілочислове перетворення, зворотне перетворення Карунена-Лоева (KLT), зворотне обертальне перетворення, зворотне направлене перетворення або інше зворотне перетворення. Якщо елемент PU закодований з використанням інтрапрогнозування, секція 164 обробки інтрапрогнозування може виконати інтрапрогнозування, щоб сформувати блок вибірок прогнозування для елемента PU. Секція 164 обробки інтрапрогнозування може використовувати режим інтрапрогнозування, щоб сформувати пікселний блок прогнозування для елемента PU на основі пікселних блоків сусідніх в просторі елементів PU. Секція 164 обробки інтрапрогнозування може визначати режим інтрапрогнозування для елемента PU на основі одного або декількох синтаксичних елементів, проаналізованих з бітового потоку. Секція 162 компенсації руху може створити перший список опорних зображень (список 0) і другий список опорних зображень (список 1) на основі синтаксичних елементів, витягнутих з бітового потоку. Крім того, якщо елемент PU закодований з використанням інтерпрогнозування, секція 150 ентропійного декодування може витягнути інформацію руху для елемента PU. Секція 162 компенсації руху може визначити на основі інформації руху елемента PU один або декілька опорних блоків для елемента PU. Секція 162 компенсації руху може сформувати на основі одного або декількох опорних блоків для елемента PU пікселний блок прогнозування для елемента PU. Секція 158 відновлення може використовувати залишкові пікселні блоки, відповідні елементам TU елемента CU, і пікселні блоки прогнозування елементів PU елемента CU, тобто залежно від конкретного випадку або дані інтрапрогнозування, або дані інтерпрогнозування, щоб відновити пікселний блок елемента CU. Зокрема, секція 158 відновлення може додати вибірки залишкових пікселних блоків до відповідних вибірок пікселних блоків прогнозування, щоб відновити пікселний блок елемента CU. Секція 159 фільтра може виконати операцію видалення блоковості для зменшення артефактів блоковості, відповідних пікселному блоку елемента CU. Відеодекодер 30 може зберегти пікселний блок елемента CU в буфері 160 декодованого зображення. Буфер 160 декодованого зображення може забезпечити опорні зображення для подальшої компенсації руху, інтрапрогнозування і представлення на пристрої відображення, такому як пристрій 32 відображення на фіг. 1. Наприклад, відеодекодер 30 на основі пікселних блоків в буфері 160 декодованого зображення може виконати операції інтрапрогнозування або інтерпрогнозування над елементами PU інших елементів CU. 15 UA 111879 C2 5 Як згадано вище, відеодекодер 30 може приймати бітовий потік, який включає в себе синтаксичний елемент режиму кодування. Якщо синтаксичний елемент режиму кодування має конкретне значення, синтаксичний елемент режиму кодування вказує, що зображення повністю закодоване з використанням WPP. У різних прикладах синтаксичний елемент режиму кодування може знаходитися в різних частинах бітового потоку. Наприклад, множина SPS може включати в себе синтаксичний елемент режиму кодування. Наведена нижче таблиця 1 представляє зразковий синтаксис для множини SPS, що включає в себе синтаксичний елемент режиму кодування ("time_mode"). ТАБЛИЦЯ 1 Синтаксис RBSP множини параметрів послідовності тільки один мозаїчний елемент в одному зображенні; з однорідними інтервалами; з неоднорідними інтервалами; 10 15 20 25 30 Синтаксичні елементи з дескриптором типу ue(v) являють собою значення змінної довжини без знака, закодовані з використанням експоненціального кодування Голомба з лівим бітом спочатку. Синтаксичні елементи з дескриптором типу u(1) і u(2) являють собою значення без знака, які складають в довжину 1 або 2 біти, відповідно. У зразковому синтаксисі таблиці 1 синтаксичний елемент inter_4 × 4_enabled_flag визначає, чи може інтерпрогнозування бути застосоване до блоків, що мають розмір 4×4 вибірок яскравості. Крім того, в зразковому синтаксисі таблиці 1 синтаксичний елемент tile_mode визначає режим мозаїчних елементів для зображень, відповідних множині SPS. Якщо синтаксичний елемент tile_mode дорівнює 0, в кожному із зображень, відповідних множині SPS, є тільки один мозаїчний елемент. Блоки CTB в єдиному мозаїчному елементі кожного зображення закодовані відповідно до порядку растрової розгортки без використання WPP. Якщо синтаксичний елемент tile_mode дорівнює 1, зображення, відповідні множині SPS, знаходяться в режимі мозаїчних елементів з однорідними інтервалами. Коли зображення знаходиться в режимі мозаїчних елементів з однорідними інтервалами, границі стовпців мозаїчних елементів і границі рядків мозаїчних елементів однорідно розподілені в кожному зображенні, відповідному множині SPS. В результаті, коли зображення знаходиться в режимі мозаїчних елементів з однорідними інтервалами, мозаїчні елементи зображення мають однаковий розмір. Блоки CTB в межах кожного з однорідно розподілених мозаїчних елементів можуть бути закодовані відповідно до порядку растрової розгортки без використання WPP. Якщо синтаксичний елемент tile_mode дорівнює 2, зображення, відповідні множині SPS, знаходяться в режимі мозаїчних елементів з неоднорідними інтервалами. Коли зображення знаходиться в режимі мозаїчних елементів з 16 UA 111879 C2 5 10 15 20 25 30 35 40 45 неоднорідними інтервалами, границі стовпців мозаїчних елементів і границі рядків мозаїчних елементів розподілені неоднорідно по зображенню, але вони можуть бути явно повідомлені з використанням синтаксичних елементів column_width[i] і row_height[i] множини SPS. Блоки CTB в межах кожного з розташованих з неоднорідними інтервалами мозаїчних елементів можуть бути закодовані відповідно до порядку растрової розгортки без використання WPP. Якщо синтаксичний елемент tile_mode дорівнює 3, зображення, відповідні множині SPS, закодовані з використанням режиму WPP. Іншими словами, якщо синтаксичний елемент tile_mode має конкретне значення (наприклад, 3), зображення, відповідні множині SPS, повністю закодовані з використанням WPP. Якщо синтаксичний елемент tile_mode має значення, відмінне від 3, жоден мозаїчний елемент якого-небудь зображення, відповідного множині SPS, не закодований з використанням WPP. Крім того, коли зображення закодоване з використанням WPP, заданий процес запам'ятовування викликається після декодування двох блоків CTB рядка блоків CTB зображення. Крім того, заданий процес синхронізації викликається перед декодуванням першого блока CTB рядка блоків CTB зображення. Крім того, заданий процес повторної ініціалізації стану CABAC внутрішніх змінних викликається, коли був закодований самий правий блок CTB рядка. У заданому згаданому вище процесі запам'ятовування пристрій відеокодування може у відповідь на визначення, що перший блок CTB відділений від лівої границі зображення єдиним блоком CTB, зберегти змінні конкретного контексту, асоційовані з першим блоком CTB. У заданому процесі синхронізації пристрій відеокодування може виконати ентропійне кодування або ентропійне декодування щонайменше частково на основі змінних контексту, асоційованих з першим блоком CTB, одного або декількох синтаксичних елементів другого блока CTB, другий блок CTB розташований суміжно з лівою границею зображення і розташований на один рядок блоків CTB нижче першого блока CTB. Крім того, в зразковому синтаксисі таблиці 1 синтаксичний елемент num_tile_columns_minus1 визначає кількість стовпців мозаїчних елементів, що розділяють кожне із зображень, відповідних множині SPS. Коли синтаксичний елемент tile_mode дорівнює 0 або 3, може бути виведено, що значення синтаксичного елемента num_tile_columns_minus1 дорівнює 0. Це справедливо тому, що в зображенні є тільки один мозаїчний елемент, коли синтаксичний елемент tile_mode дорівнює 0, і кожний рядок блока CTB зображення є єдиним мозаїчним елементом, коли синтаксичний елемент tile_mode дорівнює 3. Синтаксичний елемент num_tile_rows_minus1 визначає кількість рядків мозаїчних елементів, що розділяють кожне із зображень, відповідних множині SPS. Коли синтаксичний елемент tile_mode дорівнює 0, може бути виведено, що значення синтаксичного елемента num_tile_rows_minus1 дорівнює 0. Коли синтаксичний елемент tile_mode дорівнює 3, відеодекодер 30 може автоматично визначити (тобто вивести), що значення синтаксичного елемента num_tile_rows_minus1 дорівнює висоті зображень в блоках CTB мінус 1. Крім того, коли синтаксичний елемент tile_mode дорівнює 1 або 2, щонайменше один з синтаксичних елементів num_tile_columns_minus1 і num_tile_rows_minus1 більше 0. Відеодекодер 30 може визначити, на основі синтаксичних елементів column_width[i] і row_height[i], ширину і висоту мозаїчних елементів зображень, відповідних множині SPS. Синтаксичні елементи column_width[i] вказують ширину стовпців мозаїчних елементів зображень, відповідних множині SPS. Відеодекодер 30 може сформувати щонайменше частково на основі синтаксичних елементів column_width[i] вектор columnWidth, який вказує ширину стовпців мозаїчних елементів в зображеннях, відповідних множині SPS. Відеодекодер 30 може використовувати наступний псевдокод для формування вектора columnWidth з синтаксичних елементів column_width[i] множини SPS: 17 UA 111879 C2 Відеодекодер 30 може сформувати вектор rowHeight, який вказує висоти мозаїчних елементів в зображеннях, відповідних множині SPS. У деяких прикладах відеодекодер 30 може використовувати наступний псевдокод для формування вектора rowHeight: 5 10 15 Крім того, відеодекодер 30 може сформувати вектор colBd, який вказує місцеположення в межах зображень, відповідних множині SPS, границі самого лівого стовпця для кожного стовпця мозаїчних елементів. У деяких прикладах відеодекодер 30 може визначити вектор colBd з використанням наступного псевдокоду: Відеодекодер 30 може сформувати вектор rowBd, який вказує місцеположення в межах зображення, відповідного множині SPS, границі верхнього ряду кожного рядка мозаїчних елементів. У деяких прикладах відеодекодер 30 може визначити вектор rowBd з використанням наступного псевдокоду: У зразковому синтаксисі таблиці 1 синтаксичний елемент tile_boundary_independence_flag вказує, чи є мозаїчні елементи незалежно декодованими. Наприклад, якщо прапор tile_boundary_independence_flag дорівнює 1, мозаїчні елементи незалежно декодовані. Наприклад, якщо прапор tile_boundary_independence_flag дорівнює 1, і відеодекодер 30 декодує 18 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 конкретний блок CTB, визначається, що всі блоки CTB, щомежують з конкретним блоком CTB, які не знаходяться в межах того ж самого мозаїчного елемента, як конкретний блок CTB, є недоступними для прогнозування всередині зображення. Крім того, якщо прапор tile_boundary_independence_flag дорівнює 1, відеодекодер 30 повторно ініціалізує контекст ентропійного кодування перед ентропійним декодуванням першого блока CTB в мозаїчному елементі. Якщо синтаксичний елемент tile_boundary_independence_flag дорівнює 0, на доступність блоків CTB для прогнозування всередині зображення не впливають границі мозаїчного елемента. Іншими словами, якщо синтаксичний елемент tile_boundary_independence_flag дорівнює 0, відеодекодер 30 може виконати прогнозування всередині зображення через границі мозаїчного елемента. Крім того, якщо синтаксичний елемент tile_boundary_independence_flag дорівнює 0, секція 150 ентропійного декодування може викликати процес синхронізації при декодуванні першого блока CTB в мозаїчному елементі за винятком першого деревовидного блока в зображенні. У цьому процесі синхронізації секція 150 ентропійного декодування може використовувати інформацію, відповідну останньому блоку CTB попереднього мозаїчного елемента, щоб вибрати контекст кодування для ентропійного декодування одного або декількох синтаксичних елементів першого блока CTB в мозаїчному елементі. Крім того, секція 150 ентропійного декодування може виконати процес запам'ятовування при декодуванні першого блока CTB другого рядка блоків CTB в мозаїчному елементі. Процес запам'ятовування може зберегти змінні контексту для використання при виборі контексту для кодування CABAC одного або декількох синтаксичних елементів самого лівого блока CTB наступного розташованого нижче рядка блоків CTB. Якщо синтаксичний елемент tile_mode дорівнює 0 (тобто є тільки один мозаїчний елемент на зображення), множина SPS в зразковому синтаксисі таблиці 1 не включає в себе синтаксичний елемент tile_boundary_independence_flag. Однак, якщо синтаксичний елемент tile_mode дорівнює 0, відеодекодер 30 може автоматично визначити, що значення синтаксичного елемента tile_boundary_independence_flag дорівнює 1. Аналогічним чином, якщо синтаксичний елемент tile_mode дорівнює 3 (тобто зображення повністю закодоване з використанням WPP), множина SPS зразковому синтаксисі таблиці 1 не включає в себе синтаксичний елемент tile_boundary_independence_flag. Однак, якщо синтаксичний елемент tile_mode дорівнює 3, відеодекодер 30 може автоматично визначити, що значення синтаксичного елемента tile_boundary_independence_flag дорівнює 0. У зразковому синтаксисі таблиці 1 синтаксичний елемент loop_filter_across_tile_flag визначає, чи повинен відеодекодер 30 виконати операції петльової фільтрації через границі мозаїчного елемента. Наприклад, якщо синтаксичний елемент loop_filter_across_tile_flag дорівнює 1, відеодекодер 30 може виконувати операції петльової фільтрації через границі мозаїчного елемента. У іншому випадку, якщо синтаксичний елемент loop_filter_across_tile_flag дорівнює 0, відеодекодер 30 не може виконувати операції петльової фільтрації через границі мозаїчного елемента. Зразкові операції петльової фільтрації можуть включати в себе фільтри видалення блоковості, адаптивні зміщення вибірок і адаптивні петльові фільтри. Якщо синтаксичний елемент tile_mode дорівнює 0 (тобто є тільки один мозаїчний елемент на зображення) або дорівнює 3 (тобто кожне зображення, відповідне множині SPS, закодоване повністю з використанням WPP), множина SPS в зразковому синтаксисі таблиці 1 не включає в себе синтаксичний елемент loop_filter_across_tile_flag. Однак, якщо синтаксичний елемент tile_mode дорівнює 0, відеодекодер 30 може автоматично визначити, що значення синтаксичного елемента loop_filter_across_tile_flag дорівнює 0. Якщо синтаксичний елемент tile_mode дорівнює 3, відеодекодер 30 може автоматично визначити, що значення синтаксичного елемента loop_filter_across_tile_flag дорівнює 1. Як альтернатива або на доповнення до прийому множини SPS, що включає в себе синтаксичний елемент режиму кодування, відеодекодер 30 може прийняти множину PPS, що включає в себе синтаксичний елемент режиму кодування. У деяких прикладах, в яких відеодекодер 30 приймає множину SPS і множину PPS, які застосовуються до одного і того ж зображення, і множина SPS і множина PPS включають в себе синтаксичні елементи режиму кодування, відеодекодер 30 може надати пріоритет значенню синтаксичного елемента режиму кодування, визначеному множиною PPS. Наведена нижче таблиця 2 представляє зразковий синтаксис множини PPS, що включає в себе синтаксичний елемент режиму кодування ("tile_mode"). 19 UA 111879 C2 5 У зразковому синтаксисі таблиці 2, якщо синтаксичний елемент tile_partition_info_present_flag дорівнює 1, присутній синтаксичний елемент tile_mode. Крім того, якщо синтаксичний елемент tile_partition_info_present_flag дорівнює 1, у множині PPS можуть 20 UA 111879 C2 5 10 15 20 25 30 35 40 45 50 55 60 бути присутніми синтаксичні елементи num_tile_columns_minus1, num_tile_rows_minus1, column_width[i] і row_height[i]. Семантика синтаксичного елемента tile_mode, синтаксичного елемента num_tile_columns_minus1, синтаксичного елемента num_tile_rows_minus1, синтаксичних елементів column_width і синтаксичних елементів row_height може бути такою ж, як описані вище відносно зразкового синтаксису множини SPS таблиці 1. Якщо синтаксичний елемент tile_partition_info_present_flag дорівнює 0, синтаксичні елементи tile_mode, num_tile_columns_minus1, num_tile_rows_minus1, column_width[i] і row_height[i] не присутні у множині PPS. Таким чином, відеодекодер 30 може визначити щонайменше частково на основі синтаксичного елемента режиму кодування (наприклад, tile_mode), що має значення, яке вказує, що ніякий блок CTB зображення не закодований з використанням WPP, що встановлені параметри (наприклад, множина SPS або множина PPS) включають в себе синтаксичний елемент кількості стовпців мозаїчних елементів і синтаксичний елемент кількості рядків мозаїчних елементів. Відеодекодер 30 також може визначити на основі синтаксичного елемента кількості стовпців мозаїчних елементів кількість стовпців мозаїчних елементів. Кількість стовпців мозаїчних елементів кожного зображення, відповідного множині параметрів, може дорівнювати кількості стовпців мозаїчних елементів. Відеодекодер 30 також може визначити на основі синтаксичного елемента кількості рядків мозаїчних елементів кількість рядків мозаїчних елементів. Кількість рядків мозаїчних елементів кожного зображення, відповідного множині параметрів, може дорівнювати кількості рядків мозаїчних елементів. Крім того, відеодекодер 30 може визначити, що множина параметрів (наприклад, множина SPS або множина PPS) включає в себе послідовність з одного або декількох синтаксичних елементів ширини стовпця і послідовність з одного або декількох синтаксичних елементів висоти мозаїчних елементів. Крім того, відеодекодер 30 може визначити щонайменше частково на основі синтаксичних елементів ширини стовпця ширину стовпців мозаїчних елементів кожного зображення, відповідного множині параметрів. Крім того, відеодекодер 30 може визначити щонайменше частково на основі синтаксичних елементів висоти мозаїчного елемента висоту мозаїчних елементів кожного зображення, відповідного множині параметрів. Аналогічним чином, відеокодер 20 може сформувати множину параметрів, що включає в себе синтаксичний елемент кількості стовпців мозаїчних елементів і синтаксичний елемент кількості рядків мозаїчних елементів. Множина параметрів може бути множиною параметрів зображення (PPS) або множиною параметрів послідовності (SPS). Кількість стовпців мозаїчних елементів може бути визначена на основі синтаксичного елемента кількості стовпців мозаїчних елементів, і кількість стовпців мозаїчних елементів кожного зображення, відповідного множині параметрів, дорівнює кількості стовпців мозаїчних елементів. Кількість рядків мозаїчних елементів може бути визначена на основі синтаксичного елемента кількості рядків мозаїчних елементів, і кількість рядків мозаїчних елементів кожного зображення, відповідного множині параметрів, дорівнює кількості рядків мозаїчних елементів. Коли відеокодер 20 формує множину параметрів, відеокодер 20 може сформувати послідовність з одного або декількох синтаксичних елементів ширини стовпців і послідовність з одного або декількох синтаксичних елементів висоти рядків. Ширина стовпців мозаїчних елементів кожного зображення, відповідного множині параметрів, може бути визначена щонайменше частково на основі синтаксичних елементів ширини стовпців. Висоти рядків мозаїчних елементів кожного зображення, відповідного множині параметрів, можуть бути визначені щонайменше частково на основі синтаксичних елементів висоти рядків. Крім того, в зразковому синтаксисі таблиці 2, якщо синтаксичний елемент tile_control_info_present_flag дорівнює 1, у множині PPS можуть бути присутніми синтаксичні елементи tile_boundary_independence_flag і loop_filter_across_tile_flag. Якщо синтаксичний елемент tile_control_info_present_flag дорівнює 0, синтаксичні елементи tile_boundary_independence_flag і loop_filter_across_tile_flag не присутні у множині PPS. У зразковому синтаксисі таблиці 2, якщо прапор entropy_slice_enabled_flag дорівнює 1, закодовані слайси, які посилаються на множину PPS, можуть включати в себе один або декілька ентропійних слайсів (і можуть складатися з них). Якщо синтаксичний елемент entropy_slice_enabled_flag дорівнює 0, закодовані слайси, які посилаються на множину PPS, не містять ентропійні слайси. Коли синтаксичний елемент entropy_slice_enabled_flag не присутній, відеодекодер 30 може автоматично визначити (тобто вивести), що синтаксичний елемент entropy_slice_enabled_flag дорівнює 0. Семантика для інших синтаксичних елементів множини PPS може бути такою ж, як семантика, визначена в HEVC WD5. У зразковому синтаксисі таблиці 2 множина PPS включає в себе синтаксичний елемент entropy_slice_enabled_flag, тільки якщо синтаксичний елемент tile__mode дорівнює 0. Як 21 UA 111879 C2 5 10 15 20 описано вище, відеодекодер 30 може визначити на основі синтаксичного елемента tile_mode, чи потрібно використовувати WPP для декодування блоків CTB кожного мозаїчного елемента зображення. Таким чином, відеодекодер 30 може визначити на основі синтаксичного елемента режиму кодування (наприклад, tile_mode), що має конкретне значення, що бітовий потік включає в себе додатковий синтаксичний елемент (наприклад, entropy_slice_enabled_flag), який вказує, чи використані ентропійні слайси для закодованих представлень зображень, які посилаються на множину параметрів (наприклад, множину SPS або множину PPS), що включає в себе синтаксичний елемент режиму кодування і додатковий синтаксичний елемент. Як описано вище, елемент NAL закодованого слайсу може включати в себе закодоване представлення слайсу. Закодоване представлення слайсу може включати в себе заголовок слайсу, за яким ідуть дані слайсу. У деяких прикладах відеодекодер 30 може визначити щонайменше частково на основі синтаксичного елемента режиму кодування (наприклад, tile_mode), чи включає в себе заголовок слайсу множину синтаксичних елементів зміщення входу, з яких можуть бути визначені точки входу підпотоків в даних слайсу. У відповідь на визначення, що заголовок слайсу включає в себе синтаксичні елементи зміщення входу, відеодекодер 30 може використовувати множину синтаксичних елементів зміщення входу для визначення точок входу підпотоків в даних слайсу. Іншими словами, відеодекодер 30 може визначити щонайменше частково на основі синтаксичних елементах зміщення позиції підпотоків в пам'яті. Якщо синтаксичний елемент режиму кодування має значення (наприклад, 3), кожний рядок блоків CTB зображення представлений єдиним з підпотоків. Якщо синтаксичний елемент режиму кодування має інше значення (наприклад, 0, 1 або 2), кожний мозаїчний елемент зображення, який має один або декілька блоків CTB в слайсі, представлений єдиним з підпотоків. Заголовок слайсу може відповідати зразковому синтаксису представленої нижче таблиці 3. 22 UA 111879 C2 Синтаксис заголовка слайсу 23 ТАБЛИЦЯ 3 UA 111879 C2 5 10 15 20 25 У зразковому синтаксисі таблиці 3 значення синтаксичних елементів заголовка слайсу pic_parameter_set_id, frame_num, idr_pic_id, pic_order_cnt_lsb, delta_pic_order_cnt[0] і delta_pic_order_cnt[1] є однаковими у всіх заголовках слайсу закодованого зображення. Крім того, в зразковому синтаксисі таблиці 3, синтаксичний елемент first_slice_in_pic_flag вказує, чи включає в себе слайс елемент CU, який охоплює верхню ліву вибірку яскравості зображення. Якщо синтаксичний елемент first_slice_in_pic_flag дорівнює 1, відеодекодер 30 може встановити обидві змінні SliceAddress і LCUAddress рівними 0, і відеодекодер 30 може почати декодування з першого блока CTB в зображенні. Крім того, в зразковому синтаксисі таблиці 3 синтаксичний елемент slice_address визначає в розрізненні міри деталізації слайсу адресу, за якою починається слайс. Розрізнення міри деталізації слайсу - це міра деталізації, за допомогою якої визначений слайс. Кількість бітів синтаксичного елемента slice_address буде дорівнювати (Ceil(Log2(NumLCUsInPicture)) + SliceGranularity), де NumLCUsInPicture - кількість блоків CTB в зображенні. У зразковому синтаксисі таблиці 3 відеодекодер 30 встановлює змінну LCUAddress рівною (slice_address>>SliceGranularity). Змінна LCUAddress вказує частину елемента LCU адреси слайсу в порядку растрової розгортки. Відеодекодер 30 встановлює змінну GranularityAddress рівною (slice_address - (LCUAddress

Дивитися

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

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

Wang, Ye-Kui, Coban, Muhammed Zeyd

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

Ван Е-Куй, Кобан Мухаммед Зэйд

МПК / Мітки

МПК: H04N 7/00

Мітки: хвильової, підпотоки, паралельно, обробки, відеокодуванні

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

<a href="https://ua.patents.su/47-111879-pidpotoki-dlya-khvilovo-paralelno-obrobki-v-videokoduvanni.html" target="_blank" rel="follow" title="База патентів України">Підпотоки для хвильової паралельної обробки в відеокодуванні</a>

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