Кодування коефіцієнтів перетворення для кодування відео

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

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

Автори: Карчевіч Марта, Соле Рохальс Хоель, Джоши Раджан Лаксман

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

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

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

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

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

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

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

2. Спосіб за п. 1, в якому процес кодування відео використовує контекстне адаптивне двійкове арифметичне кодування (CABAC).

3. Спосіб за п. 1, в якому множина коефіцієнтів перетворення скомпонована в блоці.

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

5. Спосіб за п. 1, в якому порядок сканування містить шаблон сканування, і в якому шаблон сканування містить один з субблокового шаблона, діагонального шаблона, зигзагоподібного шаблона, горизонтального шаблона або вертикального шаблона.

6. Спосіб за п. 2, який додатково містить:

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

7. Спосіб за п. 6, який додатково містить:

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

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

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

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

9. Спосіб за п. 6, який додатково містить вибір різних наборів контекстів для різних піднаборів коефіцієнтів, на основі того, чи містять відповідні піднабори DC-коефіцієнт коефіцієнтів перетворення.

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

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

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

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

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

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

14. Система за п. 13, в якій процесор кодування відео використовує контекстне адаптивне двійкове арифметичне кодування (САВАС), щоб кодувати інформацію, що вказує значущі коефіцієнти, і кодувати інформацію, що вказує рівні значущих коефіцієнтів.

15. Система за п. 13, в якій множина коефіцієнтів перетворення скомпонована в блоці.

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

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

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

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

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

21. Система за п. 18, в якій процесор кодування відео додатково сконфігурований для вибору різних наборів контекстів для різних піднаборів коефіцієнтів, на основі того, чи містять відповідні піднабори DC-коефіцієнт коефіцієнтів перетворення.

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

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

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

25. Система за п. 13, в якій процесор кодування відео є частиною кодера відео.

26. Система для кодування множини коефіцієнтів перетворення, асоційованих із залишковими відеоданими в процесі кодування відео, причому система містить:

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

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

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

27. Система за п. 26, в якій кожний засіб для кодування використовує контекстне адаптивне двійкове арифметичне кодування (САВАС).

28. Система за п. 26, в якій множина коефіцієнтів перетворення скомпонована в блоці.

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

30. Система за п. 28, в якій порядок сканування містить шаблон сканування, і в якій шаблон сканування містить один з суб-блокового шаблона, діагонального шаблона, зигзагоподібного шаблона, горизонтального шаблона або вертикального шаблона.

31. Система за п. 26, яка додатково містить:

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

32. Система за п. 31, яка додатково містить:

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

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

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

34. Система за п. 31, яка додатково містить:

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

35. Система за п. 31, яка додатково містить:

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

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

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

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

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

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

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

39. Зчитуваний комп'ютером носій даних за п. 38, в якому інструкції для кодування використовують контекстне адаптивне двійкове арифметичне кодування (САВАС).

40. Зчитуваний комп'ютером носій даних за п. 38, в якому множина коефіцієнтів перетворення скомпонована в блоці.

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

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

43. Зчитуваний комп'ютером носій даних за п. 38, який додатково змушує процесор

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

44. Зчитуваний комп'ютером носій даних за п. 43, який додатково змушує процесор:

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

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

45. Зчитуваний комп'ютером носій даних за п. 43, який додатково змушує процесор:

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

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

47. Зчитуваний комп'ютером носій даних за п. 43, який додатково змушує процесор:

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

48. Зчитуваний комп'ютером носій даних за п. 43, який додатково змушує процесор:

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

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

Текст

Реферат: Дане розкриття описує способи для кодування коефіцієнтів перетворення, асоційованих з блоком залишкових даних відео в процесі кодування відео. Аспекти даного розкриття включають в себе вибір порядку сканування як для кодування відображення значущості, так і для кодування рівня, а також вибір контекстів для статистичного кодування, сумісного з вибраним порядком сканування. Дане розкриття пропонує узгодження порядку сканування для кодування як відображення значущості коефіцієнтів перетворення, так і для кодування рівнів коефіцієнтів перетворення. Запропоновано, щоб порядок сканування для відображення значущості був в оберненому напрямку (тобто від більш високих частот до більш низьких частот). Дане розкриття також пропонує, щоб коефіцієнти перетворення були скановані в піднаборах на відміну від фіксованих суб-блоків. Зокрема, коефіцієнти перетворення UA 107157 C2 (12) UA 107157 C2 скануються в піднаборі, що складається з ряду послідовних коефіцієнтів відповідно до порядку сканування. UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 60 Дана заявка заявляє пріоритет попередньої заявки на патент США № 61/450,555, поданої 8 березня 2011, попередньої заявки на патент США № 61/451,485, поданої 10 березня 2011, попередньої заявки на патент США № 61/451,496, поданої 10 березня 2011, попередньої заявки на патент США № 61/452,384, поданої 14 березня 2011, попередньої заявки на патент США № 61/494,855, поданої 8 червня 2011, і попередньої заявки на патент США № 61/497,345, поданої 15 червня 2011, кожна з яких повністю включена в даний опис за допомогою посилання. ГАЛУЗЬ ТЕХНІКИ, ДО ЯКОЇ НАЛЕЖИТЬ ВИНАХІД Даний опис належить до кодування відео і, більш конкретно, до способів для сканування та кодування коефіцієнтів перетворення, згенерованих процесами кодування відео. ПОПЕРЕДНІЙ РІВЕНЬ ТЕХНІКИ Можливості цифрового відео можуть бути вбудовані в широкий діапазон пристроїв, що включають в себе цифрові телевізори, цифрові системи прямого мовлення, системи бездротового мовлення, персональні цифрові асистенти (PDA), ноутбуки або настільні комп'ютери, цифрові камери, цифрові пристрої запису, цифрові медіа плеєри, ігрові відео пристрої, ігрові відео приставки, стільникові або супутникові радіотелефони, пристрої відео телеконференцій тощо. Цифрові відео пристрої реалізовують способи стиснення відео, такі як способи, описані в стандартах, визначених в MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG4, Частина 10, розширене кодування відео (AVC), стандарт високоефективного кодування відео (HEVC), що розробляється в цей час, і розширення таких стандартів для передачі, прийому і зберігання цифрової відео інформації більш ефективно. Способи стиснення відео включають в себе просторове прогнозування і/або часове прогнозування для зменшення або видалення надмірності, властивої відео послідовностям. Для кодування відео, основаного на блоці, відео кадр або вирізка можуть бути фрагментовані на блоки. Кожний блок може бути додатково фрагментований. Блоки в інтра- (внутрішньо) кодованих (I) кадрі або вирізці кодуються, використовуючи просторове прогнозування відносно опорних вибірок в сусідніх блоках в тому самому кадрі або вирізці. Блоки в інтер- (ззовні) кодованому (Р або В) кадрі або вирізці можуть використовувати просторове прогнозування відносно опорних вибірок в сусідніх блоках в тому самому кадрі або вирізці або часове прогнозування відносно опорних вибірок в інших опорних кадрах. Просторове або часове прогнозування приводить до прогнозуючого блока для блока, який повинен бути закодований. Залишкові дані представляють піксельні різниці між оригінальним блоком, який повинен бути закодований, і прогнозуючим блоком. Ззовні кодований блок кодується відповідно до вектора руху, який вказує на блок опорних вибірок, що формують прогнозуючий блок, і залишковими даними, що вказують різницю між закодованим блоком і прогнозуючим блоком. Внутрішньо кодований блок кодується відповідно до режиму внутрішнього кодування і залишкових даних. Для додаткового стиснення залишкові дані можуть бути перетворені з піксельної ділянки в ділянку перетворення, приводячи до залишкових коефіцієнтів перетворення, які потім можуть бути квантовані. Квантовані коефіцієнти перетворення, спочатку скомпоновані в двомірному масиві, можуть скануватися в конкретному порядку, щоб сформувати одномірний вектор коефіцієнтів перетворення для статистичного кодування. СУТЬ ВИНАХОДУ В цілому, дане розкриття описує пристрої та способи для кодування коефіцієнтів перетворення, асоційованих з блоком залишкових відео даних, в процесі кодування відео. Способи, структури і методи, описані в даному розкритті, застосовні для процесів кодування відео, які використовують статистичне кодування (наприклад, контекстне адаптивне двійкове арифметичне кодування (CABAC)) для кодування коефіцієнтів перетворення. Аспекти даного розкриття включають в себе вибір порядку сканування як для кодування відображення значущості, так і для кодування рівня і знаку, а також вибір контекстів для статистичного кодування, сумісного з вибраним порядком сканування. Способи, структури і методи даного розкриття застосовні для використання як в кодері відео, так і в декодері відео. Дане розкриття пропонує узгодженість (гармонізацію) порядку сканування для кодування як відображення значущості коефіцієнтів перетворення, так і для кодування рівнів коефіцієнтів перетворення. Тобто, скажімо, в деяких прикладах порядок сканування для кодування відображення значущості та рівня повинен мати один і той самий шаблон і напрямок. В іншому прикладі передбачається, що порядок сканування для відображення значущості повинен бути в оберненому напрямку (тобто від коефіцієнтів для більш високих частот до коефіцієнтів для більш низьких частот). У ще одному прикладі передбачається, що порядок сканування для кодування відображення значущості та рівня повинен бути узгоджений таким чином, щоб кожний здійснювався в оберненому напрямку. 1 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 Дане розкриття також пропонує, щоб в деяких прикладах коефіцієнти перетворення були скановані в піднаборах. Зокрема, коефіцієнти перетворення скануються в піднаборі, що складається з ряду послідовних коефіцієнтів, відповідно до порядку сканування. Такі піднабори можуть бути застосовні як для сканування відображення значущості, так і для сканування рівня коефіцієнтів. Додатково, дане розкриття пропонує, щоб в деяких прикладах сканування відображення значущості та сканування рівня коефіцієнтів були виконані в послідовних скануваннях і відповідно до одного і того самого порядку сканування. В одному аспекті порядком сканування є обернений порядок сканування. Послідовні сканування можуть складатися з декількох проходів сканування. Кожний прохід сканування може складатися з проходу сканування елементів синтаксису. Наприклад, першим скануванням є сканування відображення значущості (яке також називається контейнером (накопичувачем) 0 рівня коефіцієнтів перетворення), друге сканування має контейнер один рівнів коефіцієнтів перетворення в кожному піднаборі, третє сканування може мати контейнер два рівнів коефіцієнтів перетворення в кожному піднаборі, четверте сканування має контейнери рівнів коефіцієнтів перетворення, що залишилися, і п'яте сканування виконується для знаку рівнів коефіцієнтів перетворення. Прохід для знаку може мати місце в будь-який момент після проходу відображення значущості. Додатково, кількість проходів сканування може бути зменшена за допомогою кодування більш ніж одного елемента синтаксису для кожного проходу. Наприклад, один прохід сканування для елементів синтаксису використовує закодовані контейнери, і другий прохід сканування для елементів синтаксису використовує контейнери обходу (наприклад, рівні, що залишилися, і знак). У цьому контексті контейнером є частина рядка контейнера, яка статистично кодується. Заданий елемент синтаксису з недвійковим значенням відображається в двійкову послідовність (так званий рядок контейнерів). Дане розкриття також пропонує, щоб в деяких прикладах коефіцієнти перетворення були закодовані, використовуючи CABAC, в двох різних ділянках контексту. Виведення контексту для першої ділянки контексту залежить від позиції коефіцієнтів перетворення, в той час як виведення контексту для другої ділянки залежить від казуальних (випадкових) сусідніх коефіцієнтів перетворення. В іншому прикладі друга ділянка контексту може використовувати дві різні моделі контексту залежно від місцеположення коефіцієнтів перетворення. В одному прикладі даного розкриття запропонований спосіб кодування множини коефіцієнтів перетворення, асоційованих із залишковими даними відео в процесі кодування відео. Спосіб містить кодування інформації, що вказує коефіцієнти значущості для цієї множини коефіцієнтів перетворення згідно з порядком сканування, і кодування інформації, що вказує рівні цієї множини коефіцієнтів перетворення згідно з порядком сканування. В іншому прикладі даного розкриття запропонована система, сконфігурована для кодування множини коефіцієнтів перетворення, асоційованих із залишковими даними відео в процесі кодування відео. Система містить модуль кодування відео, сконфігурований для кодування інформації, що вказує коефіцієнти значущості для цієї множини коефіцієнтів перетворення згідно з порядком сканування, і додатково сконфігурований для кодування інформації, що вказує рівні цих коефіцієнтів значущості для згаданої множини коефіцієнтів перетворення згідно з порядком сканування. В іншому прикладі даного розкриття запропонована система для кодування множини коефіцієнтів перетворення, асоційованих із залишковими даними відео, в процесі кодування відео. Система містить засіб для кодування інформації, що вказує коефіцієнти значущості для цієї множини коефіцієнтів перетворення згідно з порядком сканування, і засіб для кодування інформації, що вказує рівні цих коефіцієнтів значущості для згаданої множини коефіцієнтів перетворення згідно з порядком сканування. В іншому прикладі даного розкриття комп'ютерний програмний продукт містить зчитуваний комп’ютером запам’ятовуючий носій, що зберігає команди, які при виконанні змушують процесор пристрою кодувати множину коефіцієнтів перетворення, асоційованих із залишковими даними відео, в процесі кодування відео, щоб кодувати інформацію, що вказує коефіцієнти значущості для цієї множини коефіцієнтів перетворення згідно з порядком сканування, і кодувати інформацію, що вказує рівні цих коефіцієнтів значущості для згаданої множини коефіцієнтів перетворення згідно з цим порядком сканування. Подробиці одного або більше прикладів наводяться в супровідних кресленнях та описі, представлених нижче. Інші ознаки, задачі та переваги будуть очевидні з опису і креслень та з формули винаходу. 2 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 КОРОТКИЙ ОПИС КРЕСЛЕНЬ Фіг. 1 є концептуальною діаграмою, що ілюструє процес кодування відображення значущості. Фіг. 2 є концептуальною діаграмою, що ілюструє шаблони і напрямки сканування для кодування відображення значущості. Фіг. 3 є концептуальною діаграмою, що ілюструє спосіб сканування для кодування рівня блока перетворення. Фіг. 4 є блок-схемою, що ілюструє зразкову систему кодування відео. Фіг. 5 є блок-схемою, що ілюструє зразковий кодер відео. Фіг. 6 є концептуальною діаграмою, що ілюструє обернені порядки сканування для кодування відображення значущості та рівня коефіцієнтів. Фіг. 7 є концептуальною діаграмою, що ілюструє перший піднабір коефіцієнтів перетворення відповідно до оберненого діагонального порядку сканування. Фіг. 8 є концептуальною діаграмою, що ілюструє перший піднабір коефіцієнтів перетворення відповідно до оберненого порядку горизонтального сканування. Фіг. 9 є концептуальною діаграмою, що ілюструє перший піднабір коефіцієнтів перетворення відповідно до оберненого порядку вертикального сканування. Фіг. 10 є концептуальною діаграмою, що ілюструє ділянки контексту для кодування відображення значущості. Фіг. 11 є концептуальною діаграмою, що ілюструє зразкові ділянки контексту для кодування відображення значущості, що використовує обернений порядок сканування. Фіг. 12 є концептуальною діаграмою, що ілюструє зразкових казуальних сусідів для статистичного кодування, що використовує прямий порядок сканування. Фіг. 13 є концептуальною діаграмою, що ілюструє зразкових казуальних сусідів для статистичного кодування, що використовує обернений порядок сканування. Фіг. 14 є концептуальною діаграмою, що ілюструє зразкові ділянки контексту для статистичного кодування, що використовує обернений порядок сканування. Фіг. 15 є концептуальною діаграмою, що ілюструє зразкових казуальних сусідів для статистичного кодування, що використовує обернений порядок сканування. Фіг. 16 є концептуальною діаграмою, що ілюструє інший приклад ділянок контексту для CABAC, що використовує обернений порядок сканування. Фіг. 17 є концептуальною діаграмою, що ілюструє інший приклад ділянок контексту для CABAC, що використовує обернений порядок сканування. Фіг. 18 є концептуальною діаграмою, що ілюструє інший приклад ділянок контексту для CABAC, що використовує обернений порядок сканування. Фіг. 19 є блок-схемою, що ілюструє зразковий блок статистичного кодування. Фіг. 20 є блок-схемою, що ілюструє зразковий декодер відео. Фіг. 21 є блок-схемою, що ілюструє зразковий блок статистичного декодування. Фіг. 22 є блок-схемою, що ілюструє зразковий процес для сканування відображення значущості та рівня коефіцієнтів з узгодженим порядком сканування. Фіг. 23 є блок-схемою, що ілюструє зразковий процес для сканування відображення значущості та рівня коефіцієнтів і виведення контексту статистичного кодування. Фіг. 24 є блок-схемою, що ілюструє інший зразковий процес для сканування відображення значущості та рівня коефіцієнтів і виведення контексту статистичного кодування. Фіг. 25 є блок-схемою, що ілюструє інший зразковий процес для сканування відображення значущості та рівня коефіцієнтів і виведення контексту статистичного кодування. Фіг. 26 є блок-схемою, що ілюструє зразковий процес для кодування відображення значущості, що використовує обернений напрямок сканування. Фіг. 27 є блок-схемою, що ілюструє зразковий процес для сканування відображення значущості та рівня коефіцієнтів відповідно до піднабору коефіцієнтів перетворення. Фіг. 28 є блок-схемою, що ілюструє інший зразковий процес для сканування відображення значущості та рівня коефіцієнтів, відповідно до піднабору коефіцієнтів перетворення. Фіг. 29 є блок-схемою, що ілюструє інший зразковий процес для сканування відображення значущості та рівня коефіцієнтів відповідно до піднабору коефіцієнтів перетворення. Фіг. 30 є блок-схемою, що ілюструє зразковий процес для статистичного кодування, що використовує множинні ділянки. ДОКЛАДНИЙ ОПИС Цифрові відео пристрої реалізовують способи стиснення відео, щоб більш ефективно передавати і приймати цифрову відео інформацію. Стиснення відео може застосовувати 3 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 60 способи просторового (внутрішньокадрового) прогнозування і/або часового (міжкадрового) прогнозування, щоб зменшити або видалити надмірність, властиву послідовностям відео. Для кодування відео відповідно до стандарту високоефективного кодування відео (HEVC), що в цей час розробляється спільною об’єднаною командою для кодування відео (JCT-VC), як один приклад, відео кадр може бути фрагментований на блоки кодування. Блок кодування в цілому відноситься до ділянки зображення, яка служить базовим блоком, до якого застосовуються різні інструменти кодування для стиснення відео. Блок кодування звичайно є квадратним (хоча не обов’язково), і може бути розглянутий як аналогічний так званому макроблоку, наприклад, відповідно до інших стандартів кодування відео, таких як ITU-T H.264. Кодування, відповідно до деяких із запропонованих в цей час аспектів розвитку стандарту HEVC, описане нижче в даній заявці з метою ілюстрації. Однак способи, описані в даному розкритті, можуть бути корисні для інших процесів кодування відео, таких як процеси, визначені відповідно до H.264 або іншого стандарту, або складаючі власність процеси кодування відео. Щоб досягнути бажаної ефективності кодування, блок кодування (CU) може мати змінні розміри залежно від відео контенту. Додатково, блок кодування може бути розбитий на менші блоки для прогнозування або перетворення. Зокрема, кожний блок кодування може бути додатково фрагментований на блоки прогнозування (блоки PU) і блоки перетворення (блоки TU). Блоки прогнозування можуть бути розглянуті як аналогічні так званим фрагментам (розділенням) відповідно до інших стандартів кодування відео, таких як стандарт H.264. Блок перетворення (TU) в цілому відноситься до блока залишкових даних, до яких застосовується перетворення, щоб сформувати коефіцієнти перетворення. Блок кодування звичайно має компоненту яскравості, позначену як Y, і дві компоненти кольоровості, позначені як U та V. Залежно від формату дискретизації відео, розмір компонент U та V, в термінах кількості вибірок, може бути однаковим або відрізнятися від розміру компоненти Y. Щоб закодувати блок (наприклад, блок прогнозування даних відео), спочатку виводиться прогнозувальник для блока. Прогнозувальник, який також називається прогнозуючим блоком, може бути виведений або за допомогою інтра-прогнозування (I) (тобто, просторового прогнозування) або інтер-прогнозування (Р або В) (тобто, часового прогнозування). Отже, деякі блоки прогнозування можуть бути інтра-кодовані (I), використовуючи просторове прогнозування відносно опорних вибірок в сусідніх опорних блоках в одному і тому самому кадрі (або вирізці), і інші блоки прогнозування можуть бути однонаправлено ззовні кодовані (Р) або двонаправлено ззовні кодовані (В) відносно блоків опорних вибірок в інших раніше закодованих кадрах (або вирізках). У кожному випадку опорні вибірки можуть бути використані для формування прогнозуючого блока для блока, який повинен бути закодований. Після ідентифікації прогнозуючого блока, визначається різниця між оригінальним блоком даних відео і його прогнозуючим блоком. Ця різниця може називатися залишковими даними прогнозування, і вказує піксельні різниці між піксельними значеннями в блоці, який повинен бути закодований, і піксельними значеннями в прогнозуючому блоці, вибраному для представлення закодованого блока. Щоб досягнути кращого стиснення, залишкові дані прогнозування можуть бути перетворені, наприклад, використовуючи дискретне косинусне перетворення (DCT), цілочисельне перетворення, перетворення Карунена-Лева (KarhunenLoeve) (K-L) або інше перетворення. Залишкові дані в блоці перетворення, такому як TU, можуть бути скомпоновані в двомірному (2D) масиві значень піксельної різниці, що знаходяться в просторовій, піксельній ділянці. Перетворення перетворює залишкові піксельні значення в двомірний масив коефіцієнтів перетворення в ділянці перетворення, такій як частотна ділянка. Для додаткового стиснення коефіцієнти перетворення можуть бути квантовані раніше статистичного кодування. Статистичний кодер потім застосовує статистичне кодування, таке як контекстне адаптивне кодування із змінною довжиною коду (CAVLC), контекстне адаптивне двійкове арифметичне кодування (CABAC), статистичне кодування з фрагментуванням інтервалу імовірності (PIPE) тощо, до квантованих коефіцієнтів перетворення. Для виконання статистичного кодування блока квантованих коефіцієнтів перетворення звичайно виконується процес сканування таким чином, щоб двомірний (2D) масив квантованих коефіцієнтів перетворення в блоці був оброблений відповідно до конкретного порядку сканування у впорядкований одномірний (1D) масив, тобто, вектор, коефіцієнтів перетворення. Статистичне кодування застосовується в одномірному (1-D) порядку коефіцієнтів перетворення. Сканування квантованих коефіцієнтів перетворення в блоці перетворення перетворює в послідовну форму 2D масив коефіцієнтів перетворення для статистичного кодера. Відображення значущості може бути згенероване для вказівки позицій значущих (тобто, 4 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 60 ненульових) коефіцієнтів. Сканування може бути застосоване для сканування рівнів значущих (тобто, ненульових) коефіцієнтів і/або для кодування знаків значущих коефіцієнтів. Для DCT, як приклад, часто є більш висока імовірність ненульових коефіцієнтів у напрямку до лівого верхнього кута (тобто, низькочастотної ділянки) 2D блока перетворення. Може бути бажано сканувати коефіцієнти способом, який збільшує імовірність групування ненульових коефіцієнтів разом в одному кінці перетвореної в послідовну форму серії коефіцієнтів, дозволяючи нульовим коефіцієнтам групуватися разом у напрямку до іншого кінця перетвореного в послідовну форму вектора і більш ефективно кодуватися як серії нулів. Тому порядок сканування може бути важливий для ефективного статистичного кодування. Як один приклад, так званий діагональний (або хвильового фронту) порядок сканування був прийнятий для використання при скануванні квантованих коефіцієнтів перетворення в стандарті HEVC. Альтернативно, можуть бути використані зигзагоподібний, горизонтальний, вертикальний або інші порядки сканування. За допомогою перетворення і квантування, як згадано вище, ненульові коефіцієнти перетворення в цілому розташовуються в низькочастотній ділянці у напрямку до верхньої лівої ділянки блока, наприклад, де перетворенням є DCT. У результаті після процесу діагонального сканування, який може спочатку перетнути верхню ліву ділянку, ненульові коефіцієнти перетворення звичайно більш ймовірно повинні бути розташовані у фронтальній частині сканування. Для процесу діагонального сканування, який спочатку перетинає з більш нижньої правої ділянки, ненульові коефіцієнти перетворення звичайно більш ймовірно повинні бути розташовані в задній частині сканування. Ряд нульових коефіцієнтів звичайно буде згрупований в одному кінці сканування, залежно від напрямку сканування, через зменшену енергію на більш високих частотах і через ефекти квантування, які можуть змушувати деякі ненульові коефіцієнти ставати нульовими коефіцієнтами після зменшення глибини в бітах. Ці характеристики розподілу коефіцієнтів у перетвореному в послідовну форму 1D масиві можуть бути використані в структурі статистичного кодера для підвищення ефективності кодування. Іншими словами, якщо ненульові коефіцієнти можуть бути ефективно скомпоновані в одній частині 1D масиву за допомогою деякого відповідного порядку сканування, може очікуватися поліпшена ефективність кодування через структуру багатьох статистичних кодерів. Щоб досягнути цієї задачі розміщення більшої кількості ненульових коефіцієнтів в одному кінці 1D масиву, різні порядки сканування можуть бути використані у відео кодері-декодері (кодеку), щоб закодувати коефіцієнти перетворення. У деяких випадках діагональне сканування може бути ефективним. В інших випадках різні типи сканування, такі як зигзагоподібне, вертикальне або горизонтальне сканування може бути більш ефективним. Різні порядки сканування можуть бути здійснені різними способами. Один приклад полягає в тому, що для кожного блока коефіцієнтів перетворення «найкращий» порядок сканування може бути вибраний з ряду доступних порядків сканування. Пристрій кодування відео потім може забезпечити декодеру індикацію, для кожного блока, індексу найкращого порядку сканування серед набору порядків сканування, позначених відповідними індексами. Вибір найкращого порядку сканування може бути визначений за допомогою застосування декількох порядків сканування і вибору одного, який є найбільш ефективним при розміщенні ненульових коефіцієнтів біля початку або кінця 1D вектора, таким чином сприяючи ефективному статистичному кодуванню. В іншому прикладі порядок сканування для поточного блока може бути визначений на основі різних факторів, що відносяться до кодування підходящого блока прогнозування, таких як режим прогнозування (I, В, Р), розмір блока, перетворення або інших факторів. У деяких випадках, оскільки одна і та сама інформація, наприклад, режим прогнозування, може бути виведена як на боці кодера, так і на боці декодера, може не бути необхідності забезпечувати індикацію індексу порядку сканування декодеру. Замість цього декодер відео може зберегти дані конфігурації, які вказують задане знання підходящого порядку сканування режиму прогнозування для блока і один або більше критеріїв, які відображають режим прогнозування в конкретний порядок сканування. Щоб додатково підвищити ефективність кодування, доступні порядки сканування можуть не бути постійними весь час. Замість цього деяка адаптація може бути дозволена таким чином, щоб порядок сканування адаптивно регулювався, наприклад, на основі коефіцієнтів, які вже закодовані. Звичайно адаптація порядку сканування може бути зроблена таким чином, щоб відповідно до вибраного порядку сканування більш ймовірно були згруповані нульові та ненульові коефіцієнти. У деяких кодеках відео первинні доступні порядки сканування можуть бути в дуже регулярній формі, такій як тільки горизонтальне, вертикальне, діагональне або зигзагоподібне 5 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 60 сканування. Альтернативно, порядки сканування можуть бути виведені за допомогою процесу навчання і тому можуть здатися дещо випадковими. Процес навчання може залучати застосування різних порядків сканування до блока або послідовностей блоків для ідентифікації порядку сканування, який приводить до бажаних результатів, наприклад, з точки зору ефективного розміщення ненульових коефіцієнтів і нульових коефіцієнтів, як згадано вище. Якщо порядок сканування виведений (одержаний) з процесу навчання, або якщо множина різних порядків сканування може бути вибрана, може бути вигідно зберегти конкретні порядки сканування як на боці кодера, так і на боці декодера. Обсяг даних, що задають такі порядки сканування, може бути істотним. Наприклад, для блока перетворення 32x32 один порядок сканування може містити 1024 позицій коефіцієнтів перетворення. Оскільки можуть існувати блоки різних розмірів, і для кожного розміру блока перетворення може існувати ряд різних порядків сканування, загальний обсяг даних, які повинні бути збережені, не є нехтуваним. Звичайні порядки сканування, такі як діагональний, горизонтальний, вертикальний або зигзагоподібний порядок, можуть не вимагати ділянки зберігання або можуть вимагати мінімальної ділянки зберігання. Однак діагональний, горизонтальний, вертикальний або зигзагоподібний порядки можуть не забезпечити достатньої різноманітності, щоб забезпечити продуктивність кодування, яка знаходиться нарівні з навченими порядками сканування. В одному звичайному прикладі для стандарту H.264 та HEVC, що в цей час розробляється, коли використовується статистичний кодер CABAC, позиції значущих коефіцієнтів (тобто, ненульових коефіцієнтів перетворення) в блоці перетворення (тобто, блоці перетворення в HEVC) є кодованими раніше рівнів коефіцієнтів. Процес кодування місцеположень значущих коефіцієнтів називається кодуванням відображення значущості. Значущість коефіцієнта є такою самою, що і контейнер нуль рівня коефіцієнтів. Як показано на ФІГ. 1, кодування відображення значущості квантованих коефіцієнтів 11 перетворення виробляє відображення 13 значущості. Відображення 13 значущості є відображенням (картою) одиниць і нулів, де одиниці вказують місцеположення значущих коефіцієнтів. Відображення значущості звичайно вимагає високого відсоткового вмісту швидкості передачі відео. Способи даного розкриття можуть також застосовуватися для використання з іншими статистичними кодерами (наприклад, PIPE). Зразковий процес для кодування відображення значущості описаний в D. Marpe, H. Schwarz, і «T. Wiegand Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard», IEEE Trans. Circuits and Systems for Video Technology, Vol. 13, № 7, July 2003. У цьому процесі кодується відображення значущості, якщо є щонайменше один значущий коефіцієнт в блоці, як указано прапором закодованого блока (CBF), який визначений як: Прапор закодованого блока: coded_block_flag є однобітовим символом, який вказує, чи є значущі, тобто, ненульові, коефіцієнти в єдиному блоці коефіцієнтів перетворення, для якого шаблон закодованого блока вказує ненульові записи. Якщо coded_block_flag є нулем, ніяка додаткова інформація не передається для зв’язаного блока. Якщо є значущі коефіцієнти в блоці, відображення значущості кодується наступним порядком сканування коефіцієнтів перетворення в блоці таким чином: Сканування коефіцієнтів перетворення: двомірні масиви рівнів коефіцієнтів перетворення суб-блоків, для яких coded_block_flag вказує ненульові записи, спочатку відображаються в одномірний список, використовуючи заданий шаблон сканування. Іншими словами, суб-блоки зі значущими коефіцієнтами скануються відповідно до шаблона сканування. При заданому шаблоні сканування відображення значущості сканується таким чином: Відображення значущості: Якщо coded_block_flag вказує, що блок має значущі коефіцієнти, кодується відображення значущості з двійковими значеннями. Для кожного коефіцієнта перетворення в порядку сканування передається однобітовий символ significant_coeff_flag. Якщо символ significant_coeff_flag рівний одиниці, тобто, якщо ненульовий коефіцієнт існує в цій позиції сканування, посилається додатковий однобітовий last_significant_coeff_flag. Цей символ вказує, чи є поточний значущий коефіцієнт останнім в блоці, або чи слідують додаткові значущі коефіцієнти. Якщо досягнута остання позиція сканування, і кодування відображення значущості не було ще закінчене за допомогою last_significant_coeff_flag зі значенням одиниця, очевидно, що останній коефіцієнт повинен бути значущим. Останні пропозиції для HEVC видалили last_significant_coeff_flag. У цих пропозиціях перед посиланням відображення значущості посилається індикація позиції X та Y останнього значущого коефіцієнта. У цей час в HEVC запропоновано, щоб три шаблони сканування використовувалися для відображення значущості: діагональний, вертикальний і горизонтальний. ФІГ. 2 показує приклад зигзагоподібного сканування 17, вертикального сканування 19, горизонтального сканування 21 і діагонального сканування 15. Як показано на ФІГ. 2, кожне з цих сканувань здійснюється в 6 UA 107157 C2 5 10 15 20 25 30 35 прямому напрямку, тобто, від коефіцієнтів перетворення більш низької частоти у верхньому лівому кутку блока перетворення до коефіцієнтів перетворення більш високої частоти в правому нижньому кутку блока перетворення. Після кодування відображення значущості кодується інформація про рівень, що залишилася, (контейнери 1-N, де N є загальною кількістю контейнерів) для кожного значущого коефіцієнта перетворення (тобто, значення коефіцієнта). У процесі CABAC, раніше визначеному в стандарті H.264, після обробки суб-блоків 4x4 кожний з рівнів коефіцієнтів перетворення перетворюється в двійкову форму, наприклад, відповідно до унарного коду, щоб сформувати послідовність контейнерів. У H.264 модель контексту CABAC, встановлена для кожного суб-блока, складається з моделей контексту два на п'ять з п'ятьма моделями як для першого контейнера, так і для всіх контейнерів, що залишилися, (аж до і включаючи 14-ий контейнер) елемента синтаксису coeff_abs_level_minus_one, який кодує абсолютне значення коефіцієнта перетворення. Зокрема, в одній запропонованій версії HEVC контейнери, що залишилися, включають в себе тільки контейнер 1 і контейнер 2. Залишок від рівнів коефіцієнтів кодується кодуванням ГоломбаРайса та експонентними кодами Голомба. У HEVC вибір моделей контексту може бути виконаний так, як в оригінальному процесі CABAC, запропонованому для стандарту H.264. Однак різні набори моделей контексту можуть бути вибрані для різних суб-блоків. Зокрема, вибір моделі контексту, встановленої для даного суб-блока, залежить від деякої статистичної інформації про раніше закодовані суб-блоки. ФІГ. 3 показує порядок сканування, що дотримується однієї запропонованої версії процесу HEVC, щоб закодувати рівні коефіцієнтів перетворення (абсолютне значення рівня і знак рівня) в блоці 25 перетворення. Повинне бути зазначено, що є прямий зигзагоподібний шаблон 27 для сканування суб-блоків 4x4 більшого блока і обернений зигзагоподібний шаблон 23 для сканування рівнів коефіцієнтів перетворення в кожному суб-блоці. Іншими словами, послідовність з суб-блоків 4x4 сканується в прямому зигзагоподібному шаблоні таким чином, щоб суб-блоки сканувалися в послідовності. Потім в кожному суб-блоці обернене зигзагоподібне сканування виконується для сканування рівнів коефіцієнтів перетворення в субблоці. Отже, коефіцієнти перетворення в двомірному масиві, сформованому блоком перетворення, перетворюються в послідовну форму в одномірний масив таким чином, щоб за коефіцієнтами, які обернено скануються в даному суб-блоці, потім слідували коефіцієнти, які обернено скануються в подальшому суб-блоці. В одному прикладі САВАС-кодування коефіцієнтів, сканованих відповідно до підходу сканування суб-блока, показаного на ФІГ. 3, може використовувати 60 контекстів, тобто, 6 наборів з 10 контекстів, розподілених, як описано нижче. Для блока 4x4 може бути використане 10 моделей контексту (5 моделей для контейнера 1 та 5 моделей для контейнерів 2-14), як показано в Таблиці 1: Таблиця 1 Контексти для контейнера 1 і контейнерів 2 - 14 рівнів коефіцієнтів суб-блока Контейнер 1 моделі 0 1 Закодований коефіцієнт більше, ніж 1 Первинний - немає хвостових одиниць в суб-блоці 1 хвостова одиниця в суб-блоці 0 1 2 2 3 3 2 хвостові одиниці в суб-блоці 3 або більше хвостових одиниць в суб-блоці 4 Контейнер 2-14 моделі (контейнери, що залишилися,) Первинні або 0 коефіцієнтів більших, ніж одиниця 1 коефіцієнт більший, ніж одиниця 2 коефіцієнти більших, ніж одиниця 3 коефіцієнти більший, ніж одиниця 4 або більше коефіцієнтів більших, ніж одиниця 4 40 Для Таблиці 1 одна з моделей 0-4 контексту в наборі контекстів використовується для контейнера 1, якщо, відповідно, в цей час закодований коефіцієнт, який сканується в суб-блоці, закодований після того, як коефіцієнт більше, ніж 1, був закодований в суб-блоці, цей закодований в цей час коефіцієнт є первинним коефіцієнтом, сканованим в суб-блоці, або немає ніяких хвостових одиниць (ніяких раніше закодованих коефіцієнтів) в суб-блоці, є одна 7 UA 107157 C2 5 10 хвостова одиниця в суб-блоці (тобто, одиниця була закодована, але ніякі коефіцієнти більші, ніж одиниця, не були закодовані), є дві хвостових одиниці в суб-блоці, або в суб-блоці є три або більше хвостових одиниць. Для кожного з контейнерів 2-14 (хоча в цей час запропонована версія HEVC кодує тільки контейнер 2, використовуючи CABAC, з подальшими контейнерами рівня коефіцієнтів, що кодуються експонентним кодом Голомба), одна з моделей 0-4 контексту може бути використана, відповідно, якщо коефіцієнт є первинним коефіцієнтом, сканованим в суб-блоці, або є нульові раніше закодовані коефіцієнти, більші, ніж одиниця, є один раніше закодований коефіцієнт більший, ніж одиниця, є два раніше закодованих коефіцієнта більші, ніж одиниця, є три раніше закодованих коефіцієнта більші, ніж одиниця, або є чотири раніше закодованих коефіцієнта більші, ніж одиниця. Існують 6 різних наборів цих 10 моделей, залежно від кількості коефіцієнтів, більших, ніж 1, в раніше закодованому суб-блоці 4x4 в прямому скануванні суб-блоків: Таблиця 2 Контексти для контейнера 1 і контейнерів 2-14 0 1 2 3 4 5 15 20 25 30 35 40 45 Набір контекстів Тільки для розміру блока 4х4 0-3 коефіцієнтів, більших, ніж 1, в попередньому суб-блоці 4-7 більших, ніж 1, в попередньому суб-блоці 8-11 більших, ніж 1, в попередньому суб-блоці 12-15 більших, ніж 1, в попередньому суб-блоці Перший суб-блок 4х4 16 більших, ніж 1, в попередньому суб-блоці Для Таблиці 2 набори 0-5 моделей контексту використовуються для заданого суб-блока, якщо, відповідно, розмір суб-блока становить 4x4, є 0-3 коефіцієнтів більше, ніж 1, в раніше закодованому суб-блоці, є 4-7 коефіцієнтів більших, ніж 1, в раніше закодованому суб-блоці, є 8-11 коефіцієнтів більших, ніж 1, в раніше закодованому суб-блоці, є 12-15 коефіцієнтів більших, ніж 1, в раніше закодованому суб-блоці, або даний суб-блок є першим суб-блоком 4x4 (верхній лівий суб-блок), або є 16 коефіцієнтів більших, ніж 1, в раніше закодованому суб-блоці. Вищеописаний процес кодування для H.264 і процес, в цей час запропонований для HEVC, мають декілька недоліків. Як показано на ФІГ. 3, один недолік полягає в тому, що сканування рівнів коефіцієнтів здійснюється вперед для сканування суб-блоків (тобто, починаючи з верхнього лівого суб-блока), а потім обернено для сканування рівнів коефіцієнтів в кожному суб-блоці (тобто, починаючи з нижнього правого коефіцієнта в кожному суб-блоці). Цей підхід має на увазі рух назад і вперед в межах блока, що може зробити вибірку даних більш складною. Інший недолік зумовлений тим фактом, що порядок сканування рівня коефіцієнтів відрізняється від порядку сканування відображення значущості. У HEVC є три різних запропонованих порядки сканування для відображення значущості: прямий діагональний, прямий горизонтальний і прямий вертикальний, як показано на ФІГ. 2. Всі сканування значущих коефіцієнтів відрізняються від сканування рівнів коефіцієнтів, в цей час запропонованих для HEVC, оскільки сканування рівня здійснюються в оберненому напрямку. Оскільки напрямок і шаблон сканування рівня коефіцієнтів не співпадають з напрямком і шаблоном сканування значущості, повинне бути перевірено більше рівнів коефіцієнтів. Наприклад, припустимо, що горизонтальне сканування використовується для відображення значущості, і останній коефіцієнт значущості знайдений в кінці першого рядка коефіцієнтів. Сканування рівня коефіцієнтів у HEVC буде вимагати діагонального сканування через множинні рядки для сканування рівня, коли тільки перший рядок фактично містить рівні коефіцієнтів, відмінні від 0. Такий процес сканування може ввести небажану неефективність. У поточній пропозиції за HEVC сканування відображення значущості здійснюється вперед в блоці від коефіцієнта DC, знайденого в лівому верхньому кутку блока, до коефіцієнта найвищої частоти, звичайно знайденого в правому нижньому кутку блока, в той час як сканування рівнів коефіцієнтів є в оберненому напрямку в кожному суб-блоці 4x4. Це також може привести до більш складної і більш неефективної вибірки даних. Інший недолік для поточних пропозицій HEVC зумовлений наборами контекстів. Набір контекстів (див. Таблицю 2 вище) для CABAC відрізняється для розміру блока 4x4, ніж для інших розмірів блока. Відповідно до цього розкриття, було б бажано узгодити (гармонізувати) 8 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 60 контексти для всіх розмірів блока таким чином, щоб менше пам'яті було виділено на зберігання різних наборів контекстів. Крім того, як описано більш детально нижче, в цей час запропоновані контексти CABAC для відображення значущості для HEVC дійсні тільки, якщо порядок сканування є прямим (вперед). Також, це може не враховувати обернені сканування відображення значущості. Крім того, контексти, описані вище для кодування рівня квантованого коефіцієнта, намагаються використовувати локальну кореляцію рівнів коефіцієнтів. Ці контексти залежать від кореляції серед суб-блоків 4x4 (див. набір контекстів у Таблиці 2) і кореляції в кожному субблоці (див. моделі контексту в Таблиці 1). Недолік цих контекстів полягає в тому, що залежність може бути дуже віддаленою (тобто, є низька залежність між коефіцієнтами, які відділені один від одного декількома іншими коефіцієнтами, від одного суб-блока до іншого). Крім того, в кожному суб-блоці залежність може бути слабкою. Дане розкриття пропонує декілька різних особливостей, які можуть зменшити або усунути деякі з недоліків, описаних вище. У деяких прикладах ці особливості можуть забезпечити більш ефективний та узгоджений порядок сканування коефіцієнтів перетворення при кодуванні відео. В інших прикладах даного розкриття ці особливості забезпечують більш ефективний набір контекстів, які повинні бути використані в основаному на CABAC статистичному кодуванні коефіцієнтів перетворення, сумісним із запропонованим порядком сканування. Повинне бути зазначено, що всі способи, описані в даному розкритті, можуть бути використані незалежно або можуть бути використані разом в будь-якій комбінації. ФІГ. 4 є блок-схемою, що ілюструє зразкову систему 10 кодування і декодування відео, яка може бути сконфігурована для використання способів для кодування коефіцієнтів перетворення відповідно до прикладів даного розкриття. Як показано на ФІГ. 4, система 10 включає в себе пристрій-джерело 12, яке передає закодоване відео на пристрій 14 призначення за допомогою каналу 16 зв'язку. Закодоване відео може бути також збережене на запам'ятовуючому носії 34 або файловому сервері 36 і може бути доступне за допомогою пристрою 14 призначення, якщо необхідно. Пристрій-джерело 12 і пристрій 14 призначення можуть містити будь-яку велику різноманітність пристроїв, що включають в себе настільні комп'ютери, портативні комп'ютери (тобто, ноутбук), планшетні комп'ютери, телевізійні приставки, телефонні трубки, такі як так звані смартфони, телевізори, камери, пристрої відображення, цифрові медіа плеєри, консолі для відео ігор тощо. В багатьох випадках такі пристрої можуть бути обладнані для бездротового зв’язку. Отже, канал 16 зв'язку може містити бездротовий канал, дротовий канал або комбінацію бездротових і дротових каналів, підходящих для передачі закодованих відео даних. Аналогічно, файловий сервер 36 може бути доступний за допомогою пристрою 14 призначення через будь-яке стандартне з’єднання передачі даних, що включає в себе Інтернет-з'єднання. Воно може включати в себе бездротовий канал (наприклад, з'єднання Wi-Fi), дротове з'єднання (наприклад, DSL, кабельний модем тощо) або їх комбінацію, яка підходить для того, щоб одержати доступ до закодованих відео даних, збережених на файловому сервері. Способи для кодування коефіцієнтів перетворення відповідно до прикладів даного розкриття можуть застосовуватися до кодування відео в підтримку будь-якого з множини мультимедійних додатків, таких як телевізійні мовлення по повітрю, передачі кабельного телебачення, передачі супутникового телебачення, поточні відео передачі, наприклад, за допомогою Інтернету, кодування цифрового відео для зберігання на запам'ятовуючому носії даних, декодування цифрового відео, збереженого на запам'ятовуючому носії даних або інших додатків. У деяких прикладах система 10 може бути сконфігурована для підтримки односторонньої або двосторонньої передачі відео, щоб підтримати додатки, такі як потокова передача відео, відтворення відео, мовлення відео і/або відео телефонія. У прикладі згідно з ФІГ. 4 пристрій-джерело 12 включає в себе джерело 18 відео, кодер 20 відео, модулятор/демодулятор 22 і передавач 24. У пристрої-джерелі 12 джерело 18 відео може включати в себе джерело, таке як пристрій захоплення відео, наприклад, відеокамеру, відео архів, що містить раніше захоплене відео, інтерфейс подачі відео для прийому відео від постачальника відео контенту, і/або систему комп'ютерної графіки для генерування даних комп’ютерної графіки як вихідного відео, або комбінацію таких джерел. Як один приклад, якщо джерелом 18 відео є відеокамера, пристрій-джерело 12 і пристрій 14 призначення можуть формувати так звані камерофони або відеотелефони. Однак способи, описані в даному розкритті, можуть застосовуватися до кодування відео в цілому і можуть застосовуватися до бездротових і/або дротових додатків. Захоплене, заздалегідь захоплене або згенероване комп'ютером відео може бути закодоване кодером 20 відео. Закодована інформація відео може бути модульована модемом 9 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 60 22 відповідно до стандарту зв’язку, такого як протокол бездротового зв’язку, і передаватися на пристрій 14 призначення за допомогою передавача 24. Модем 22 може включати в себе різні змішувачі, фільтри, підсилювачі або інші компоненти, сконструйовані для модуляції сигналу. Передавач 24 може включати в себе схеми, сконструйовані для передачі даних, що включають в себе підсилювачі, фільтри і одну або більше антен. Захоплене, заздалегідь захоплене або згенероване комп'ютером відео, яке кодується кодером 20 відео, може також бути збережене на запам'ятовуючому носії 34 або файловому сервері 36 для більш пізнього використання. Запам'ятовуючий носій 34 може включати в себе диски Blu-ray, диски DVD, диски CD-ROM, флеш-пам'ять або будь-які інші підходящі цифрові запам’ятовуючі носії для зберігання закодованого відео. Закодоване відео, збережене на запам'ятовуючому носії 34, потім може бути доступне за допомогою пристрою 14 призначення для декодування і відтворення. Файловий сервер 36 може бути будь-яким типом сервера, здатного зберігати закодоване відео і передавати це закодоване відео на пристрій 14 призначення. Зразкові файлові сервери включають в себе web-сервер (наприклад, для web-сайта), сервер FTP, мережні пристрої зберігання даних (NAS), локальний дисковий накопичувач або будь-який інший тип пристрою, здатного зберігати закодоване відео дані і передавати їх на приймальний пристрій. Передача закодованого відео даних від файлового сервера 36 може бути потоковою передачею, передачею завантаження або їх комбінацією. Файловий сервер 36 може бути доступний за допомогою пристрою 14 призначення через будь-яке стандартне з’єднання передачі даних, що включає в себе Інтернет-з'єднання. Воно може включати в себе бездротовий канал (наприклад, з'єднання Wi-Fi), дротове з'єднання (наприклад, DSL, кабельний модем, Ethernet, USB тощо) або їх комбінацію, яка підходить для того, щоб одержати доступ до закодованих відео даних, збережених на файловому сервері. Пристрій 14 призначення в прикладі на ФІГ. 4 включає в себе приймач 26, модем 28, декодер 30 відео та пристрій 32 відображення. Приймач 26 пристрою 14 призначення приймає інформацію по каналу 16, і модем 28 демодулює інформацію, щоб сформувати демодульований бітовий потік для декодера 30 відео. Інформація, передана по каналу 16, може включати в себе різну інформацію синтаксису, згенеровану кодером 20 відео, для використання за допомогою декодера 30 відео при декодуванні відео даних. Такий синтаксис може бути також включений із закодованими відео даними, збереженими на запам'ятовуючому носії 34 або файловому сервері 36. Кожний з кодера 20 відео і декодера 30 відео можуть бути частиною відповідного кодека (CODEC), який здатний кодувати або декодувати відео дані. Пристрій 32 відображення може бути об'єднаний з, або бути зовнішнім по відношенню до, пристроєм 14 призначення. У деяких прикладах пристрій 14 призначення може включати в себе інтегрований пристрій відображення і також бути сконфігурований для того, щоб взаємодіяти із зовнішнім пристроєм відображення. В інших прикладах пристрій 14 призначення може бути пристроєм відображення. В цілому, пристрій 32 відображення відображає декодовані відео дані користувачу і може містити будь-який з множини пристроїв відображення, таких як рідкокристалічний дисплей (LCD), плазмовий дисплей, дисплей на органічних світлодіодах (OLED) або інший тип пристрою відображення. У прикладі на ФІГ. 4 канал 16 зв'язку може містити будь-який бездротовий або дротовий комунікаційний носій, такий як радіочастотний (RF) (РЧ) спектр або одна або більше фізичних ліній передачі, або будь-яку комбінацію бездротових і дротових носіїв. Канал 16 зв'язку може бути частиною основаної на пакетній передачі мережі, такої як локальна мережа, широкомасштабна мережа або глобальна мережа, така як Інтернет. Канал 16 зв’язку в цілому представляє будь-який підходящій комунікаційний носій або колекцію різних комунікаційних носіїв для передачі даних відео від пристрою-джерела 12 на пристрій 14 призначення, включаючи будь-яку підходящу комбінацію дротових або бездротових носіїв. Канал 16 зв'язку може включати в себе маршрутизатори, комутатори, базові станції або будь-яке інше обладнання, яке може бути корисним, щоб полегшити передачу даних від пристрою-джерела 12 на пристрій 14 призначення. Кодер 20 відео і декодер 30 відео можуть працювати відповідно до стандарту стиснення відео, такого як стандарт високоефективного кодування відео (HEVC), що розробляється в цей час, і можуть відповідати тестовій моделі HEVC (HM). Альтернативно, кодер 20 відео і декодер 30 відео можуть працювати відповідно до інших складаючих власність або промислових стандартів, таких як стандарт ITU-T H.264, який альтернативно називається MPEG-4, Частина 10, вдосконалене кодування відео (AVC), або розширень таких стандартів. Способи даного розкриття, однак, не обмежуються ніяким особливим стандартом кодування. Інші приклади включають в себе MPEG-2 та ITU-T H.263. 10 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 60 Хоча не показано на ФІГ. 4, в деяких аспектах кодер 20 відео і декодер 30 відео можуть бути об’єднані з кодером і декодером аудіо, і можуть включати в себе відповідні блоки MUXDEMUX або інше апаратне і програмне забезпечення, щоб виконувати кодування як аудіо, так і відео в загальному потоці даних або окремих потоках даних. Якщо застосовно, в деяких прикладах блоки MUX-DEMUX можуть відповідати протоколу мультиплексора ITU H.223 або іншим протоколам, таким як протокол користувацьких дейтаграм (UDP). Кодер 20 відео і декодер 30 відео можуть бути реалізовані як будь-яка з множини підходящих схем кодера, наприклад, один або більше мікропроцесорів, цифрові сигнальні процесори (процесори DSP), спеціалізовані інтегральні схеми (схеми ASIC), програмовані користувачем вентильні матриці (матриці FPGA), дискретна логіка, програмне забезпечення, апаратне забезпечення, програмно-апаратне забезпечення або будь-які їх комбінації. Коли способи реалізовані частково в програмному забезпеченні, пристрій може зберегти команди для програмного забезпечення у підходящому нечасовому зчитуваному комп’ютером носії і виконувати команди в апаратному забезпеченні, використовуючи один або більше процесорів для виконання способів даного розкриття. Кожний зкодера 20 відео і декодера 30 відео можуть бути включені в один або більше кодерів або декодерів, будь-який з яких може бути інтегрований як частина об'єднаного кодера/декодера (CODEC) у відповідному пристрої. Кодер 20 відео може реалізувати будь-який або всі зі способів даного розкриття, щоб поліпшити кодування коефіцієнтів перетворення в процесі кодування відео. Аналогічно, декодер 30 відео може реалізувати будь-який або всі з цих способів, щоб поліпшити декодування коефіцієнтів перетворення в процесі кодування відео. Відео кодер, як описано в даному розкритті, може відноситися до кодера відео або декодера відео. Аналогічно, блок кодування відео може відноситися до кодера відео або декодера відео. Аналогічно, кодування відео може відноситися до кодування відео або декодування відео. В одному прикладі розкриття кодер відео (такий, як кодер 20 відео або декодер 30 відео) може бути сконфігурований для кодування множини коефіцієнтів перетворення, асоційованих із залишковими даними відео в процесі кодування відео. Кодер відео може бути сконфігурований для кодування інформації, що вказує значущі коефіцієнти для множини коефіцієнтів перетворення відповідно до порядку сканування, і кодування інформації, що вказує рівні множини коефіцієнтів перетворення відповідно до порядку сканування. В іншому прикладі розкриття кодер відео (такий, як кодер 20 відео або декодер 30 відео) може бути сконфігурований для кодування множини коефіцієнтів перетворення, асоційованих із залишковими відео даними в процесі кодування відео. Кодер відео може бути сконфігурований для кодування інформації, що вказує значущі коефіцієнти перетворення в блоці коефіцієнтів перетворення, зі скануванням, що здійснюється в оберненому напрямку сканування від коефіцієнтів більш високої частоти в блоці коефіцієнтів перетворення, до коефіцієнтів більш низької частоти в блоці коефіцієнтів перетворення. В іншому прикладі розкриття кодер відео (такий, як кодер 20 відео або декодер 30 відео) може бути сконфігурований для кодування множини коефіцієнтів перетворення, асоційованих із залишковими даними відео в процесі кодування відео. Кодер відео може бути сконфігурований для компонування блока коефіцієнтів перетворення в один або більше піднаборів коефіцієнтів перетворення на основі порядку сканування, кодування першої частини рівнів коефіцієнтів перетворення в кожному піднаборі, причому перша частина рівнів включає в себе щонайменше значущість коефіцієнтів перетворення в кожному піднаборі, і кодування другої частини рівнів коефіцієнтів перетворення в кожному піднаборі. В іншому прикладі розкриття кодер відео (такий, як кодер 20 відео або декодер 30 відео) може бути сконфігурований для кодування інформації, що вказує значущі коефіцієнти для множини коефіцієнтів перетворення відповідно до порядку сканування, розділення закодованої інформації на щонайменше першу ділянку і другу ділянку, статистичного кодування закодованої інформації в першій ділянці відповідно до першого набору контекстів, використовуючи критерії виведення контексту, і статистичного кодування закодованої інформації у другій ділянці відповідно до другого набору контекстів, використовуючи ті самі критерії виведення контексту, що і в першій ділянці. ФІГ. 5 є блок-схемою, що ілюструє приклад кодера 20 відео, який може використовувати способи для кодування коефіцієнтів перетворення, як описано в даному розкритті. Кодер 20 відео буде описаний в контексті кодування HEVC з метою ілюстрації, а не обмеження, даного розкриття відносно інших стандартів або способів кодування, які можуть вимагати сканування коефіцієнтів перетворення. Кодер 20 відео може виконувати внутрішнє (інтра-) і зовнішнє (інтер) кодування блоків CU у відео кадрах. Внутрішнє кодування основане на просторовому прогнозуванні, щоб зменшити або видалити просторову надмірність у відео в заданому кадрі 11 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 відео. Зовнішнє кодування основане на часовому прогнозуванні, щоб зменшити або видалити часову надмірність між поточним кадром і раніше закодованими кадрами відео послідовності. Внутрішній режим (I-режим) може відноситися до будь-якого з декількох режимів, основаних на просторовому стисненні відео. Зовнішні режими, такі як однонаправлене прогнозування (Ррежим) або двонаправлене прогнозування (В-режим), можуть відноситися до будь-якого з декількох режимів, основаних на часовому стисненні відео. Як показано на ФІГ. 5, кодер 20 відео приймає поточний блок відео в кадрі відео, який повинен бути закодований. У прикладі згідно з ФІГ. 5 кодер 20 відео включає в себе модуль 44 компенсації руху, модуль 42 оцінки руху, модуль 46 внутрішнього прогнозування, буфер 64 опорних кадрів, суматор 50, модуль 52 перетворення, модуль 54 квантування і модуль 56 статистичного кодування. Модуль 52 перетворення, ілюстрований на ФІГ. 5, є модулем, який застосовує фактичне перетворення до блока залишкових даних, і не повинен бути переплутаний з блоком коефіцієнтів перетворення, який також може називатися блоком перетворення (TU) CU. Для відновлення блока відео кодер 20 відео також включає в себе модуль 58 оберненого квантування, модуль 60 оберненого перетворення і суматор 62. Фільтр видалення блочності (не показаний на ФІГ. 5) також може бути включений, щоб фільтрувати межі блока для видалення артефактів блочності з відновленого відео. За бажанням фільтр видалення блочності звичайно буде фільтрувати вихідний сигнал суматора 62. Під час процесу кодування кодер 20 відео приймає кадр або вирізку відео, які повинні бути закодовані. Кадр або вирізка можуть бути розділені на множинні блоки відео, наприклад, найбільші блоки кодування (блоки LCU). Модуль 42 оцінки руху і модуль 44 компенсації руху виконують кодування із зовнішнім прогнозуванням прийнятого блока відео відносно одного або більше блоків в одному або більше опорних кадрах, щоб забезпечити часове стиснення. Модуль 46 внутрішнього прогнозування може виконати кодування з внутрішнім прогнозуванням прийнятого блока відео відносно одного або більше сусідніх блоків в одних і тих самих кадрі або вирізці як блока, який повинен бути закодований, щоб забезпечити просторове стиснення. Модуль 40 вибору режиму може вибрати один з режимів кодування, внутрішній або зовнішній, наприклад, на основі результатів помилки (тобто, спотворення) для кожного режиму, і видати одержаний в результаті внутрішньо - або ззовні кодований блок до суматора 50 для генерування залишкових даних блока і суматора 62 для відновлення закодованого блока, щоб використовувати в опорному кадрі. Деякі кадри відео можуть бути позначені як I-кадри, де всі блоки в I-кадрі закодовані в режимі внутрішнього прогнозування. У деяких випадках модуль 46 внутрішнього прогнозування може виконувати кодування з внутрішнім прогнозуванням блока в Р- або В-кадрі, наприклад, коли пошук руху, виконаний модулем 42 оцінки руху, не приводить до достатнього прогнозування блока. Модуль 42 оцінки руху і модуль 44 компенсації руху можуть бути високо інтегровані, але ілюструються окремо в концептуальних цілях. Оцінка руху є процесом генерування векторів руху, які оцінюють рух для блоків відео. Вектор руху, наприклад, може вказати зміщення блока прогнозування в поточному кадрі відносно опорної вибірки опорного кадру. Опорна вибірка може бути блоком, який, як вважається, точно відповідає частині CU, що включає в себе PU, що кодується в термінах піксельної різниці, яка може бути визначена сумою абсолютної різниці (SAD), сумою квадратичної різниці (SSD) або іншими метриками різниці. Компенсація руху, виконана модулем 44 компенсації руху, може включати вибірку або генерування значень для блока прогнозування на основі вектора руху, визначеного за допомогою оцінки руху. Знову, модуль 42 оцінки руху і модуль 44 компенсації руху можуть бути функціонально об'єднані в деяких прикладах. Модуль 42 оцінки руху обчислює вектор руху для блока прогнозування ззовні кодованого кадру за допомогою порівняння блока прогнозування з опорними вибірками опорного кадру, збереженого в буфері 64 опорних кадрів. У деяких прикладах кодер 20 відео може обчислювати значення для суб-цілочисельних піксельних позицій опорних кадрів, збережених в буфері 64 опорних кадрів. Наприклад, кодер 20 відео може обчислювати значення одночетвертних піксельних позицій, однієї восьмої від піксельних позицій або інших фракційних піксельних позицій опорного кадру. Тому, модуль 42 оцінки руху може виконувати пошук руху відносно повних піксельних позицій і фракційних піксельних позицій і сформувати вектор руху з фракційною піксельною точністю. Модуль 42 оцінки руху посилає обчислений вектор руху на модуль 56 статистичного кодування і модуль 44 компенсації руху. Частина опорного кадру, ідентифікована вектором руху, може називатися опорною вибіркою. Модуль 44 компенсації руху може обчислювати значення прогнозування для блока прогнозування поточного CU, наприклад, за допомогою витягання опорної вибірки, ідентифікованої вектором руху для PU. 12 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 60 Модуль 46 внутрішнього прогнозування може кодувати з внутрішнім прогнозуванням прийнятий блок, як альтернативу зовнішньому прогнозування, що виконується модулем 42 оцінки руху і модулем 44 компенсації руху. Модуль 46 внутрішнього прогнозування може кодувати прийнятий блок відносно сусідніх раніше закодованих блоків, наприклад, блоків вище, вище і вправо, вище і зліва або зліва від поточного блока, приймаючи порядок кодування зліва направо, знизу вгору для блоків. Модуль 46 внутрішнього прогнозування може бути сконфігурований з множиною різних режимів внутрішнього прогнозування. Наприклад, модуль 46 внутрішнього прогнозування може бути сконфігурований з деякою кількістю направлених режимів прогнозування, наприклад, 33 направленими режимами прогнозування, на основі розміру CU, що кодується. Модуль 46 внутрішнього прогнозування може вибрати режим внутрішнього прогнозування, наприклад, за допомогою обчислення значення помилки для різних режимів внутрішнього прогнозування і вибору режиму, який забезпечує найнижче значення помилки. Направлені режими прогнозування можуть включати в себе функції для комбінування значень просторово сусідніх пікселів і застосування комбінованих значень до однієї або більше піксельних позицій в PU. Як тільки значення для всіх піксельних позицій в PU будуть обчислені, модуль 46 внутрішнього прогнозування може обчислювати значення помилки для режиму прогнозування на основі піксельних різниць між PU і прийнятим блоком, який повинен бути закодований. Модуль 46 внутрішнього прогнозування може продовжити перевіряти режими внутрішнього прогнозування доти, доки не буде виявлений режим внутрішнього прогнозування, який забезпечує прийнятне значення помилки. Модуль 46 внутрішнього прогнозування може потім послати PU в суматор 50. Кодер 20 відео формує залишковий блок за допомогою віднімання даних прогнозування, обчислених модулем 44 компенсації руху або модулем 46 внутрішнього прогнозування, із закодованого оригінального блока відео. Суматор 50 представляє компонент або компоненти, які виконують цю операцію віднімання. Залишковий блок може відповідати двомірній матриці значень піксельної різниці, де кількість значень в залишковому блоці є тією самою, що і кількість пікселів у PU, що відповідає залишковому блоку. Значення в залишковому блоці можуть відповідати різницям, тобто, помилці, між значеннями спільно розташованих пікселів у PU і в оригінальному блоці, який повинен бути закодований. Різниці можуть бути різницями в кольоровості або яскравості залежно від типу блока, який кодується. Модуль 52 перетворення може формувати один або більше блоків перетворення (блоків TU) із залишкового блока. Модуль 52 перетворення застосовує перетворення, таке як дискретне косинусне перетворення (DCT), направлене перетворення або концептуально аналогічне перетворення, до TU, формуючи блок відео, що містить коефіцієнти перетворення. Модуль 52 перетворення може послати коефіцієнти перетворення на модуль 54 квантування, що одержані в результаті. Модуль 54 квантування може потім квантувати коефіцієнти перетворення. Модуль 56 статистичного кодування може потім виконати сканування квантованих коефіцієнтів перетворення в матриці відповідно до заданого порядку сканування. Дане розкриття описує модуль 56 статистичного кодування як такий, що виконує сканування. Однак, повинне бути зрозуміло, що в інших прикладах інші блоки обробки, такі як модуль 54 квантування, можуть виконувати сканування. Як згадано вище, сканування коефіцієнтів перетворення може включати в себе два сканування. Одне сканування ідентифікує, які з коефіцієнтів є значущими (тобто, ненульовими), щоб сформувати відображення значущості, і інше сканування кодує рівні коефіцієнтів перетворення. В одному прикладі дане розкриття пропонує, щоб порядок сканування, що використовується для кодування рівнів коефіцієнтів у блоці, був таким самим, що і порядок сканування для кодування значущих коефіцієнтів у відображенні значущості для цього блока. У HEVC блок може бути блоком перетворення. Термін «порядок сканування», що використовується в даному описі, може відноситися до будь-якого напрямку сканування і/або шаблона сканування. Як такі, сканування для відображення значущості і рівнів коефіцієнтів можуть бути одними і тими самими в шаблоні сканування і/або напрямку сканування. Таким чином, як один приклад, якщо порядок сканування, що використовується для формування відображення значущості, є шаблоном горизонтального сканування в прямому напрямку, то порядок сканування для рівнів коефіцієнтів також повинен бути шаблоном горизонтального сканування в прямому напрямку. Аналогічно, як інший приклад, якщо порядок сканування для відображення значущості є шаблоном вертикального сканування в оберненому напрямку, то порядок сканування для рівнів коефіцієнтів також повинен бути шаблоном вертикального сканування в оберненому напрямку. Те саме можна застосовувати для діагонального, зигзагоподібного або інших шаблонів сканування. 13 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 60 ФІГ. 6 показує приклади обернених порядків сканування для блока коефіцієнтів перетворення, тобто, блока перетворення. Блок перетворення може бути сформований, використовуючи перетворення, таке як, наприклад, дискретне косинусне перетворення (DCT). Повинне бути зазначено, що кожний із оберненого діагонального шаблона 9, оберненого зигзагоподібного шаблона 29, оберненого вертикального шаблона 31 та оберненого горизонтального шаблона 33 здійснюється від коефіцієнтів більш високої частоти в правому нижньому кутку блока перетворення до коефіцієнтів більш низької частоти в лівому верхньому кутку блока перетворення. Отже, один аспект розкриття представляє уніфікований порядок сканування для кодування відображення значущості та кодування рівнів коефіцієнтів. Запропонований спосіб застосовує порядок сканування, що використовується для відображення значущості, до порядку сканування, що використовується для кодування рівня коефіцієнтів. В цілому, горизонтальний, вертикальний і діагональний шаблони сканування були показані, щоб ефективно працювати, таким чином, зменшуючи потребу в додаткових шаблонах сканування. Однак, загальні способи даного розкриття застосовуються для використання з будь-яким шаблоном сканування. Відповідно до іншого аспекту, дане розкриття пропонує, щоб сканування значущості було виконане як обернене сканування, від останнього значущого коефіцієнта в блоці перетворення до першого коефіцієнта (тобто, коефіцієнта DC) в блоці перетворення. Приклади обернених порядків сканування показані на ФІГ. 6. Зокрема, сканування значущості здійснюється від останнього значущого коефіцієнта в позиції більш високої частоти до значущих коефіцієнтів у позиціях більш низької частоти, і зрештою, до позиції коефіцієнта DC. Щоб полегшити обернене сканування, можуть бути використані способи для ідентифікації останнього значущого коефіцієнта. Процес для ідентифікації останнього значущого коефіцієнта описаний в J. Sole, R. Joshi, I-S. Chong, M. Coban, M. Karczewicz, «Parallel Context Processing for the significance map in high coding efficiency» JCTVC-D262, 4th Meeting JCT-VC, Тегу, KR, January 2011, і в американській попередній заявці на патент № 61/419,740, поданій 3 грудня 2010, в Joel Sole Rojals і інш., названій «Encoding of the position of the last significant transform coefficient in video coding». Як тільки ідентифікований останній значущий коефіцієнт в блоці, потім може бути застосований обернений порядок сканування як для відображення значущості, так і для рівня коефіцієнтів. Дане розкриття також пропонує, щоб сканування значущості та сканування рівня коефіцієнтів не були оберненими і прямими, відповідно, але, замість цього, мали один і той самий напрямок сканування і, більш детально, тільки один напрямок в блоці. Зокрема, запропоновано, щоб сканування значущості та сканування рівня коефіцієнтів використовували обернений порядок сканування від останнього значущого коефіцієнта в блоці перетворення до першого коефіцієнта. Отже, сканування значущості здійснюється в оберненому напрямку (обернене сканування відносне сканування для HEVC, що пропонується в цей час) від останнього значущого коефіцієнта до першого коефіцієнта (коефіцієнта DC). Цей аспект розкриття представляє уніфікований однонаправлений порядок сканування для кодування відображення значущості та кодування рівнів коефіцієнтів. Зокрема, цей уніфікований однонаправлений порядок сканування може бути уніфікованим оберненим порядком сканування. Порядки сканування для сканувань значущості та рівня коефіцієнтів відповідно до уніфікованого шаблона оберненого сканування можуть бути оберненим діагональним, оберненим зигзагоподібним, оберненим горизонтальним або оберненим вертикальним , як показано на ФІГ. 6. Однак, може бути використаний будь-який шаблон сканування. Замість того, щоб визначити набори коефіцієнтів у двомірних суб-блоках, як показано на ФІГ. 3, для мети виведення контексту CABAC, дане розкриття пропонує визначити набори коефіцієнтів як декілька коефіцієнтів, які послідовно скануються відповідно до порядку сканування. Зокрема, кожний набір коефіцієнтів може містити послідовні коефіцієнти в порядку сканування по всьому блоку. Будь-який розмір набору може бути розглянутий, хоча було виявлено, що розмір з 16 коефіцієнтів у наборі сканування працював ефективно. Розмір набору може бути фіксованим або адаптивним. Це визначення забезпечує набори, які повинні бути 2-D блоками (якщо використовується спосіб сканування суб-блока), прямокутниками (якщо використовуються горизонтальне або вертикальне сканування) або діагональними формами (якщо використовуються зигзагоподібне або діагональне сканування). Набори діагонально сформованих коефіцієнтів можуть бути частиною діагональної форми, послідовних діагональних форм або частин послідовних діагональних форм. ФІГ. 7-9 показують приклади коефіцієнтів, скомпонованих в піднаборах з 16 коефіцієнтів, відповідно до конкретних порядків сканування поза компонуванням в фіксованих блоках 4x4. ФІГ. 7 зображає піднабір 51 з 16 коефіцієнтів, які складаються з перших 16 коефіцієнтів у 14 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 60 оберненому діагональному порядку сканування. Наступний піднабір в цьому прикладі буде просто складатися з наступних 16 послідовних коефіцієнтів вздовж оберненого діагонального порядку сканування. Аналогічно, ФІГ. 8 зображає піднабір 53 з 16 коефіцієнтів для перших 16 коефіцієнтів у оберненому горизонтальному порядку сканування. ФІГ. 9 зображає піднабір 55 з 16 коефіцієнтів для перших 16 коефіцієнтів у оберненому вертикальному порядку сканування. Цей спосіб сумісний з порядком сканування рівнів коефіцієнтів, який є тим самим, що і порядок сканування для відображення значущості. У цьому випадку немає необхідності у відмінному (і іноді трудомісткому) порядку сканування рівнів коефіцієнтів, таких як показані на ФІГ. 3. Сканування рівнів коефіцієнтів може бути сформоване, подібно до сканування відображення значущості, в цей час запропонованого для HEVC, як пряме сканування, яке здійснюється від положення останнього значущого коефіцієнта в блоці перетворення до позиції коефіцієнта DC. Як в цей час запропоновано в HEVC, для статистичного кодування, що використовує CABAC, коефіцієнти перетворення кодуються таким чином. По-перше, є один прохід (в порядку сканування відображення значущості) в повному блоці перетворення для кодування відображення значущості. Потім, є три проходи (в порядку сканування рівнів коефіцієнтів) для кодування контейнера 1 рівня (1-ий прохід), іншої частини рівня коефіцієнтів (2-ий прохід) і знаку рівня коефіцієнтів (3-ий прохід). Ці три проходи для кодування рівнів коефіцієнтів не робляться для повного блока перетворення. Замість цього кожний прохід виконується в субблоках 4x4, як показано на ФІГ. 3. Коли три проходи були закінчені в одному суб-блоці, наступний суб-блок обробляється за допомогою послідовного виконання тих самих трьох проходів кодування. Цей підхід полегшує паралелізацію кодування. Як описано вище, дане розкриття пропонує сканування коефіцієнтів перетворення більш узгодженим чином так, щоб порядок сканування для рівнів коефіцієнтів був тим самим, що і порядок сканування значущих коефіцієнтів, щоб сформувати відображення значущості. Додатково запропоновано, щоб сканування рівня коефіцієнтів і значущих коефіцієнтів були виконані в оберненому напрямку, який здійснюється від останнього значущого коефіцієнта в блоці до першого коефіцієнта (компонента DC) в блоці. Це обернене сканування є протилежним скануванню, що використовується для значущих коефіцієнтів відповідно до HEVC, як запропоновано в цей час. Як описано раніше з посиланнями на ФІГ. 7-9, дане розкриття додатково пропонує, щоб контексти для рівнів коефіцієнтів (включаючи відображення значущості) були розділені на піднабори. Таким чином, контекст визначений для кожного піднабору коефіцієнтів. Отже, в цьому прикладі один і той самий контекст не обов'язково використовується для всього сканування коефіцієнтів. Замість цього різні піднабори коефіцієнтів у блоці перетворення можуть мати різні контексти, які індивідуально визначені для кожного піднабору. Кожний піднабір може містити одномірний масив послідовно сканованих коефіцієнтів у порядку сканування. Тому, сканування рівня коефіцієнтів йде від останнього значущого коефіцієнта до першого коефіцієнта (компонента DC), де сканування концептуально фрагментується на різні піднабори послідовно сканованих коефіцієнтів відповідно до порядку сканування. Наприклад, кожний піднабір може включати в себе n послідовно сканованих коефіцієнтів для конкретного порядку сканування. Групування коефіцієнтів у піднаборах відповідно до їх порядку сканування може забезпечити кращу кореляцію між коефіцієнтами і, таким чином, більш ефективне статистичне кодування. Дане розкриття додатково пропонує збільшити розпаралелювання основаного на CABAC статистичного кодування коефіцієнтів перетворення за допомогою розширення концепції декількох проходів рівня коефіцієнтів для включення додаткового проходу для відображення значущості. Таким чином, приклад з чотирма проходами може включати в себе: (1) кодування значень прапора значущих коефіцієнтів для коефіцієнтів перетворення, наприклад, щоб сформувати відображення значущості, (2) кодування контейнера 1 значень рівня для коефіцієнтів перетворення, (3) кодування контейнерів значень рівня коефіцієнтів, що залишилися, і (4) кодування знаків рівнів коефіцієнтів, всіх в одному і тому самому порядку сканування. Використовуючи способи, описані в даному розкритті, може бути полегшено кодування з чотирма проходами, викладене вище. Таким чином, сканування значущих коефіцієнтів і рівнів для коефіцієнтів перетворення в одному і тому самому порядку сканування, де порядок сканування здійснюється в оберненому напрямку від високочастотного коефіцієнта до низькочастотного коефіцієнта, підтримує роботу способу кодування з декількома проходами, описаного вище. В іншому прикладі п'ять способів сканування проходу можуть включати в себе: (1) кодування значень прапора значущого коефіцієнта для коефіцієнтів перетворення, наприклад, 15 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 60 щоб сформувати відображення значущості, (2) кодування контейнера 1 значень рівня для коефіцієнтів перетворення, (3) кодування контейнера 2 значень рівня для коефіцієнтів перетворення, (4) кодування знаків рівнів коефіцієнтів (наприклад, в режимі обходу), і (5) кодування контейнерів значень рівня коефіцієнтів, що залишилися, (наприклад, в режимі обходу), причому всі проходи використовують один і той самий порядок сканування. Приклад з меншою кількістю проходів може бути також використаний. Наприклад, двопрохідне сканування, де рівень та інформація про знак обробляються паралельно, може включати в себе: (1) кодування регулярних контейнерів проходу в проході (наприклад, значущість, рівень контейнера 1 і рівень контейнера 2), і (2) кодування контейнерів обходу в іншому (наприклад, рівні, що залишилися, і знак), причому кожний прохід використовує один і той самий порядок сканування. Регулярні контейнери є контейнерами, закодованими за допомогою CABAC, використовуючи оновлений контекст, визначений критеріями виведення контексту. Наприклад, як буде пояснено більш детально нижче, критерії виведення контексту можуть включати в себе закодовану інформацію про рівень казуального (випадкового) сусіднього коефіцієнта відносно поточного коефіцієнта перетворення. Контейнери обходу є контейнерами, закодованими за допомогою CABAC, що мають фіксований контекст. Приклади декількох проходів сканування, описаних вище, можуть бути узагальнені як такі, що включають в себе перший прохід сканування першої частини рівнів коефіцієнтів, причому перша частина включає в себе прохід значущості, і другий прохід сканування другої частини рівнів коефіцієнтів. У кожному з прикладів, представлених вище, проходи можуть бути виконані послідовно в кожному піднаборі. Хоча використання одномірних піднаборів, що містять послідовно скановані коефіцієнти, може бути бажаним, декілька способів проходу також можуть застосовуватися до суб-блоків, таких як суб-блоки 4x4. Приклад процесів з двома проходами і з чотирма проходами для послідовно сканованих піднаборів викладений більш детально нижче. У спрощеному процесі з двома проходами для кожного піднабору блока перетворення перший прохід кодує значущість коефіцієнтів у піднаборі, дотримуючись порядку сканування, і другий прохід кодує рівень коефіцієнтів з коефіцієнтів у піднаборі, дотримуючись того самого порядку сканування. Порядок сканування може бути охарактеризований напрямком сканування (прямим або оберненим) і шаблоном сканування (наприклад, горизонтальним, вертикальним або діагональним). Алгоритм може бути таким, що більше піддається для паралельної обробки, якщо обидва проходи в кожному піднаборі дотримуються одного і того самого порядку сканування, як описано вище. У більш вдосконаленому процесі з чотирма проходами для кожного піднабору блока перетворення перший прохід кодує значущість коефіцієнтів у піднаборі, другий прохід кодує контейнер 1 рівня коефіцієнтів з коефіцієнтів у піднаборі, третій прохід кодує контейнери рівня коефіцієнтів, що залишилися, з коефіцієнтів у піднаборі, і четвертий прохід кодує знак рівня коефіцієнтів з коефіцієнтів у піднаборі. Знову, щоб бути такими, що більше піддаються для паралельної обробки, всі проходи в кожному піднаборі повинні мати один і той самий порядок сканування. Як описано вище, порядок сканування із оберненим напрямком був показаний як ефективно працюючий. Повинне бути зазначено, що четвертий прохід (тобто, кодування знаку рівнів коефіцієнтів) може бути зроблений безпосередньо після першого проходу (тобто, кодування відображення значущості) або безпосередньо перед значеннями проходу рівня коефіцієнтів, що залишилися. Для деяких розмірів перетворення піднабір може бути цілим блоком перетворення. У цьому випадку є єдиний піднабір, що відповідає всім значущим коефіцієнтам для всього блока перетворення, і сканування значущості та сканування рівня здійснюються в одному і тому самому порядку сканування. У цьому випадку замість обмеженого числа n (наприклад, n=16) коефіцієнтів у піднаборі, піднабір може бути єдиним піднабором для блока перетворення, причому єдиний піднабір включає в себе всі значущі коефіцієнти. Посилаючись на ФІГ. 5, як тільки коефіцієнти перетворення скановані, модуль 56 статистичного кодування може застосувати статистичне кодування, таке як CAVLC або CABAC, до цих коефіцієнтів. Додатково, модуль 56 статистичного кодування може кодувати інформацію про вектор руху (MV) і будь-який з множини елементів синтаксису, корисних при декодуванні відео даних в декодері 30 відео. Елементи синтаксису можуть включати в себе відображення значущості з прапорами значущих коефіцієнтів, які вказують, чи є значущими конкретні коефіцієнти (наприклад, ненульові), і прапор останнього значущого коефіцієнта, який вказує, чи є конкретний коефіцієнт останнім значущим коефіцієнтом. Декодер 30 відео може використовувати ці елементи синтаксису, щоб відновити закодовані відео дані. Після статистичного кодування за допомогою модуля 56 статистичного кодування закодоване відео, 16 UA 107157 C2 5 10 15 20 25 30 35 що одержане в результаті, може бути передане на інший пристрій, такий як декодер 30 відео, або заархівоване для більш пізньої передачі або пошуку. Для статистичного кодування елементів синтаксису модуль 56 статистичного кодування може виконувати CABAC і вибрати моделі контексту на основі, наприклад, кількості значущих коефіцієнтів у раніше сканованих N коефіцієнтах, де N є цілочисельним значенням, яке може бути зв’язане з розміром блока, що сканується. Модуль 56 статистичного кодування може також вибрати модель контексту на основі режиму прогнозування, що використовується для обчислення залишкових даних, які були перетворені в блок коефіцієнтів перетворення, і типу перетворення, що використовується для перетворення залишкових даних в блок коефіцієнтів перетворення. Коли відповідні дані прогнозування були передбачені, використовуючи режим внутрішнього прогнозування, модуль 56 статистичного кодування може додатково засновувати вибір моделі контексту на напрямку режиму внутрішнього прогнозування. Додатково, відповідно до іншого аспекту даного розкриття, запропоновано, щоб контексти для CABAC були розділені на піднабори коефіцієнтів (наприклад, піднабори, показані на ФІГ. 79). Запропоновано, щоб кожний піднабір складався з послідовних коефіцієнтів у порядку сканування по всьому блоку. Будь-який розмір піднаборів може бути розглянутий, хоча розмір 16 коефіцієнтів у піднаборі сканування вважався працюючим ефективно. У цьому прикладі піднабір може бути 16 послідовними коефіцієнтами в порядку сканування, який може бути в будь-якому шаблоні сканування, включаючи суб-блоковий, діагональний, зигзагоподібний, горизонтальний і вертикальний шаблони сканування. Відповідно до цієї пропозиції сканування рівня коефіцієнтів здійснюється від останнього значущого коефіцієнта в блоці. Тому сканування рівня коефіцієнтів йде від останнього значущого коефіцієнта до першого коефіцієнта (компонента DC) в блоці, де сканування концептуально фрагментоване в різних піднаборах коефіцієнтів, щоб одержати контексти для застосування. Наприклад, сканування організоване в піднаборах з n послідовних коефіцієнтів у порядку сканування. Останнім значущим коефіцієнтом є перший значущий коефіцієнт, що зустрічається в оберненому скануванні від коефіцієнта найвищої частоти блока (що звичайно вважається близьким до правого нижнього кута блока) до коефіцієнта DC блока (лівий верхній кут блока). В іншому аспекті розкриття запропоновано, щоб критерії виведення контексту CABAC були узгоджені (гармонізовані) для всіх розмірів блока. Іншими словами, замість того, щоб мати різні виведення контексту на основі розміру блока, як розглянуто вище, кожний розмір блока буде покладатися на одне і те саме виведення контекстів CABAC. Таким чином, немає необхідності брати до уваги конкретний розмір блока, щоб одержати контекст CABAC для блока. Виведення контексту є одним і тим самим як для кодування значущості, так і для кодування рівня коефіцієнтів. Також запропоновано, щоб набори контексту CABAC залежали від того, чи є піднабір піднабором 0 (визначеним як піднабір з коефіцієнтами для найнижчих частот, тобто, що містить коефіцієнт DC і суміжні низькочастотні коефіцієнти) чи ні (тобто, критерії виведення контексту). Див. Таблиці 3a та 3b, представлені нижче. 40 Таблиця 3а Набір контекстів 0 0 більших, ніж 1, в попередньому піднаборі 1 Найнижча частота 1 більший, ніж 1, в попередньому піднаборі 2 3 4 5 45 Найнижча частота Найнижча частота Найвища частота Найвища частота Найвища частота 1 більших, ніж 1, в попередньому піднаборі 0 більше, ніж 1, в попередньому піднаборі 1 більший, ніж 1, в попередньому піднаборі 1 більших, ніж 1, в попередньому піднаборі Для порівняння з Таблицею 2. Є залежність від піднабору, чи є він піднабором 0 (найнижчі частоти) чи ні. Для Таблиці 3a, представленої вище, набори 0-2 моделей контексту використовуються для піднаборів сканування найнижчої частоти (тобто, набір n послідовних коефіцієнтів) якщо, відповідно, є нуль коефіцієнтів більших, ніж одиниця в раніше закодованому піднаборі, є один коефіцієнт, більший, ніж одиниця, в раніше закодованому піднаборі, або є більш ніж один коефіцієнт, більших, ніж одиниця, в раніше закодованому піднаборі. Набори 3-5 моделей 17 UA 107157 C2 контексту використовуються для всіх піднаборів, більш високих, ніж піднабір найнижчої частоти, якщо, відповідно, є нуль коефіцієнтів, більших, ніж одиниця, в раніше закодованому піднаборі, є один коефіцієнт, більший, ніж одиниця, в раніше закодованому піднаборі, або є більш ніж один коефіцієнт, більший, ніж одиниця, в раніше закодованому піднаборі. 5 Таблиця 3b Набір контекстів 0 0 більших, ніж 1, в попередньому піднаборі 1 Найнижча частота 1-3 більших, ніж 1, в попередньому піднаборі 2 3 Найнижча частота Найвища частота 3 більших, ніж 1, в попередньому піднаборі 0 більших, ніж 1, в попередньому піднаборі 4 Найвища частота 1-3 більших, ніж 1, в попередньому піднаборі 5 10 Найнижча частота Найвища частота 3 більших, ніж 1, в попередньому піднаборі Таблиця 3b показує таблицю набору контекстів, яка показала хорошу продуктивність, оскільки вона враховує більш точну кількість числа більших, ніж одиниця, коефіцієнтів у попередньому піднаборі. Таблиця 3b може бути використана як альтернатива Таблиці 3a, представленій вище. Таблиця 3c показує спрощену таблицю набору контекстів з критеріями виведення контексту, яка також може бути альтернативно використана. Таблиця 3c Набір контекстів 0 25 30 35 Найнижча частота Найвища частота 1 більших, ніж 1, в попередньому піднаборі 0 більших, ніж 1, в попередньому піднаборі 3 20 0 більших, ніж 1, в попередньому піднаборі 1 2 15 Найнижча частота Найвища частота 1 більших, ніж 1, в попередньому піднаборі Додатково піднабір, що містить останній значущий коефіцієнт в блоці перетворення, може використовувати унікальний набір контекстів. Дане розкриття також пропонує, щоб контекст для піднаборів все ще залежав від кількості коефіцієнтів більших, ніж 1, в попередніх піднаборах. Наприклад, якщо кількість коефіцієнтів у попередніх піднаборах є ковзним вікном, нехай ця кількість буде uiNumOne. Як тільки це значення буде перевірене, щоб вирішити контекст для поточного набору суб-сканування, тоді це значення не встановлюється в нуль. Замість цього це значення нормалізується (наприклад, використовується uiNumOne=uiNumOne/4, що еквівалентне uiNumOne =2 або uiNumOne=uiNumOne/2, що еквівалентне uiNumOne =1). Виконуючи це, значення піднаборів раніше безпосередньо попередніх піднаборів можуть бути все ще розглянуті, але беручи до уваги меншу вагу в рішенні контексту CABAC для закодованого в цей час піднабору. Зокрема, рішення контексту CABAC для заданого піднабору бере до уваги не тільки кількість коефіцієнтів, більшу, ніж одиниця, в безпосередньо попередньому піднаборі, але також і зважену кількість коефіцієнтів, більшу, ніж одиниця, в раніше закодованих піднаборах. Додатково, набір контекстів може залежати від наступного: (1) кількості значущих коефіцієнтів у піднаборі, що в цей час сканується, (2) чи є поточний піднабір останнім піднабором зі значущим коефіцієнтом (тобто, використовуючи обернений порядок сканування, це відноситься до того, чи є піднабір першим сканованим для рівнів коефіцієнтів чи ні). Додатково, модель контексту для рівня коефіцієнтів може залежати від того, чи є поточний коефіцієнт останнім коефіцієнтом. Підхід високо адаптивного вибору контексту був раніше запропонований для кодування відображення значущості блоків 16x16 та 32x32 коефіцієнтів перетворення в HEVC. Повинне 18 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 бути зазначено, що цей підхід вибору контексту може бути розширений до всіх розмірів блока. Як показано на ФІГ. 10, цей підхід ділить блок 16x16 на чотири ділянки, де кожний коефіцієнт в ділянці 41 більш низької частоти (ці чотири коефіцієнти у верхньому лівому кутку в координатних позиціях х, у [0,0], [0,1], [1,0], [1,1] в прикладі блока 16x16, де [0,0] вказує лівий верхній кут, коефіцієнт DC) має свій власний контекст, коефіцієнти у верхній ділянці 37 (коефіцієнти у верхньому рядку з координатних позицій х, у [2,0] - [15,0] в прикладі блока 16x16) спільно використовують 3 контексти, коефіцієнти в лівій ділянці 35 (коефіцієнти в лівому стовпці з координатних позицій х, у [0,2]-[0,15] в прикладі блока 16x16) спільно використовують ще 3 контексти, і коефіцієнти в ділянці 39, що залишилася, (коефіцієнти, що залишилися, в блоці 16x16) спільно використовують 5 контекстів. Вибір контексту для коефіцієнта X перетворення в ділянці 39, як приклад, оснований на сумі значущості максимум цих 5 коефіцієнтів перетворення В, Е, F, Н та I. Так як X не залежить від інших позицій в одній і тій самій діагональній лінії X вздовж напрямку сканування (в цьому прикладі зигзагоподібний або діагональний шаблон сканування), контекст значущості коефіцієнтів перетворення вздовж діагональної лінії в порядку сканування може бути обчислений паралельно від попередніх діагональних ліній в порядку сканування. Запропоновані контексти для відображення значущості, як показано на ФІГ. 10, дійсні тільки, якщо порядок сканування є прямим, оскільки контекст стає неказуальним в декодері, якщо використовується обернене сканування. Тобто, декодер ще не декодував коефіцієнти В, Е, F, Н та I, як показано на ФІГ. 10, якщо використовується обернене сканування. У результаті бітовий потік не є декодованим. Однак, дане розкриття пропонує використання сканування в оберненому напрямку. Таким чином, відображення значущості має відповідну кореляцію серед коефіцієнтів, коли порядок сканування знаходиться в оберненому напрямку, як показано на ФІГ. 6. Тому, використання оберненого сканування для відображення значущості, як описано вище, пропонує бажану ефективність кодування. Крім того, використання оберненого сканування для відображення значущості служить для узгодження сканування, що використовується для кодування рівня коефіцієнтів і відображення значущості. Щоб підтримати обернене сканування значущих коефіцієнтів, контексти повинні бути змінені таким чином, щоб вони були сумісні із оберненим скануванням. Запропоновано, щоб кодування значущих коефіцієнтів використовувало контексти, які є казуальними відносно оберненого сканування. Дане розкриття додатково пропонує, в одному прикладі, спосіб для кодування відображення значущості, який використовує контексти, зображені на ФІГ. 11. Кожний коефіцієнт в ділянці 43 більш низької частоти (ці три коефіцієнти у верхньому лівому кутку в координатних позиціях х, у [0,0], [0,1], [1,0] в прикладі блока 16x16, де [0,0] вказує лівий верхній кут, коефіцієнт DC) має своє власне виведення контексту. Коефіцієнти у верхній ділянці 45 (коефіцієнти у верхньому рядку з координатних позицій х, у [2,0]-[15,0] в прикладі блока 16x16) мають контекст, що залежить від значущості двох попередніх коефіцієнтів у верхній ділянці 45 (наприклад, два коефіцієнти безпосередньо вправо від коефіцієнта, який повинен бути закодований, де такі коефіцієнти є казуальними (випадковими) сусідами з метою декодування, беручи до уваги обернене сканування). Коефіцієнти в лівій ділянці 47 (коефіцієнти в лівому стовпці з координатних позицій х, у [0,2]-[0,15] в прикладі блока 16x16) мають контекст, що залежить від значущості двох попередніх коефіцієнтів (наприклад, два коефіцієнти безпосередньо нижче коефіцієнта, який повинен бути закодований, де такі коефіцієнти є казуальними сусідами з метою декодування, беручи до уваги обернену орієнтацію сканування). Повинне бути зазначено, що ці контексти у верхній ділянці 45 і лівій ділянці 47 на ФІГ. 11 є інверсією контекстів, показаних на ФІГ. 10 (наприклад, де коефіцієнти у верхній ділянці 37 мають контекст, що залежить від коефіцієнтів зліва, і коефіцієнти в лівій ділянці 35 мають контекст, що залежить від коефіцієнтів, представлених вище). Посилаючись на ФІГ. 11, контексти для коефіцієнтів у ділянці 49, що залишилася, (тобто, коефіцієнти, що залишилися, поза ділянкою 43 більш низької частоти, верхньої ділянки 45 і лівої ділянки 47), залежать від суми (або будь-якої іншої функції) значущості коефіцієнтів у позиціях, відмічених за допомогою I, Н, F, Е та В. В іншому прикладі коефіцієнти у верхній ділянці 45 і лівій ділянці 47 можуть використовувати точно одне і те саме виведення контексту як коефіцієнти в ділянці 49. В оберненому скануванні таке можливо, оскільки сусідні позиції, відмічені за допомогою I, Н, F, Е та В, доступні для коефіцієнтів у верхній ділянці 45 і лівій ділянці 47. У кінці рядків/стовпця позиції для казуальних коефіцієнтів I, Н, F, Е та В можуть знаходитися поза блоком. У цьому випадку припускається, що значення таких коефіцієнтів дорівнює нулю (тобто, є не значущим). 19 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 Є багато варіантів при виборі контекстів. Основна ідея полягає в тому, щоб використовувати значущість коефіцієнтів, які були вже закодовані, відповідно до порядку сканування. У прикладі, показаному на ФІГ. 10, контекст коефіцієнта в позиції X виводиться на основі суми значущості коефіцієнтів у позиціях В, Е, F, Н та I. Ці коефіцієнти контексту з'являються до поточного коефіцієнта в порядку оберненого сканування, запропонованого в даному розкритті для відображення значущості. Контексти, які були казуальними в прямому скануванні, стають неказуальними (не доступними) в порядку оберненого сканування. Спосіб для вирішення цієї проблеми полягає в тому, щоб дзеркально відобразити контексти звичайного випадку на ФІГ. 10 до показаних на ФІГ. 11 для оберненого сканування. Для сканування значущості, яке здійснюється в оберненому напрямку від останнього значущого коефіцієнта до позиції коефіцієнта DC, сусідство контексту для коефіцієнта X складається з коефіцієнтів В, Е, F, Н, I, які асоційовані з позиціями більш високої частоти відносно позиції коефіцієнта X, і які були вже оброблені кодером або декодером в оберненому скануванні до кодування коефіцієнта X. Як розглянуто вище, контексти і моделі контексту, ілюстровані в Таблицях 1 та 2, намагаються використовувати локальну кореляцію рівнів коефіцієнтів серед суб-блоків 4x4. Однак залежність може бути дуже віддаленою. Тобто, може бути низька залежність між коефіцієнтами, які відділені один від одного декількома коефіцієнтами, наприклад, від одного суб-блока до іншого. Крім того, в кожному суб-блоці залежність між коефіцієнтами може бути слабкою. Дане розкриття описує способи для вирішення цих проблем шляхом створення набору контекстів для рівнів коефіцієнтів, які використовують більш локальне сусідство контексту. Дане розкриття пропонує використовувати локальне сусідство для виведення контексту рівнів коефіцієнтів перетворення, наприклад, при кодуванні відео відповідно до HEVC або інших стандартів. Це сусідство складається з коефіцієнтів, вже закодованих (або декодованих), які мають високу кореляцію з рівнем поточного коефіцієнта. Коефіцієнти можуть просторово межувати з коефіцієнтом, який повинен бути закодований, і можуть включати в себе як коефіцієнти, які служать межею коефіцієнту, який повинен кодуватися, так і інші сусідні коефіцієнти, такі як показані на ФІГ. 11 або ФІГ. 13. Зокрема, коефіцієнти, що використовуються для виведення контексту, не обмежуються суб-блоком або попереднім суб-блоком. Замість цього локальне сусідство може містити коефіцієнти, які просторово розташовані близько до коефіцієнта, який повинен бути закодований, але можуть не обов'язково знаходитися в тому самому суб-блоці, що і коефіцієнт, який повинен бути закодований, або в тому самому субблоці, що один інший, якщо коефіцієнти були скомпоновані в суб-блоках. Замість того, щоб покладатися на коефіцієнти, розташовані в фіксованому суб-блоці, дане розкриття пропонує використовувати сусідні коефіцієнти, які доступні (тобто, були вже закодовані), беручи до уваги заданий порядок сканування, що використовується. Різні набори контексту CABAC можуть бути задані для різних піднаборів коефіцієнтів, наприклад, на основі раніше закодованих піднаборів коефіцієнтів. У заданих піднаборах коефіцієнтів контексти виводяться на основі локального сусідства коефіцієнтів, що іноді називається сусідством контексту. Відповідно до даного розкриття, приклад сусідства контексту показаний на ФІГ. 12. Коефіцієнти в сусідстві контексту можуть бути просторово розташовані біля коефіцієнта, який повинен бути закодований. Як показано на ФІГ. 12, для прямого сканування контекст рівня для коефіцієнта X перетворення залежить від значень коефіцієнтів В, Е, F, Н та I. В прямому скануванні коефіцієнти В, Е, F, Н та I асоційовані з позиціями більш низької частоти відносно позиції і коефіцієнта X, і які вже були оброблені кодером або декодером до кодування коефіцієнта X. Для кодування контейнера 1 для CABAC контекст залежить від суми кількості значущих коефіцієнтів у цьому сусідстві контексту (тобто, в цьому прикладі, коефіцієнтів В, Е, F, Н та I). Якщо коефіцієнт у сусідстві контексту випадає з блока, тобто, через втрату даних, можна вважати, що це значення дорівнює 0 з метою визначення контексту коефіцієнта X. Для кодування інших контейнерів для CABAC, контекст залежить від суми кількості коефіцієнтів у сусідстві, які рівні 1, а також від суми кількості коефіцієнтів у сусідстві, які більше, ніж 1. В іншому прикладі контекст для контейнера 1 може залежати від суми значень контейнера 1 коефіцієнтів у локальному сусідстві контексту. В іншому прикладі контекст для контейнера 1 може залежати від комбінації суми коефіцієнтів значущості і значень контейнера 1 в цьому сусідстві контексту. Є багато можливостей для вибору сусідства контексту. Однак сусідство контексту повинно складатися з коефіцієнтів таким чином, щоб кодер і декодер мали доступ до однієї і тієї самої інформації. Зокрема, коефіцієнти В, F, Е, I та Н в сусідстві повинні бути казуальними сусідами в 20 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 60 тому значенні, що вони були раніше закодовані або декодовані, і доступні для посилання при визначенні контексту для коефіцієнта X. Контексти, описані вище з посиланнями на ФІГ. 12, є однією з багатьох можливостей. Такі контексти можуть застосовуватися до будь-яких з трьох сканувань, в цей час запропонованих для використання в HEVC: діагонального, горизонтального і вертикального. Дане розкриття пропонує, щоб сусідство контексту, що використовується для виведення контексту для рівня коефіцієнтів, могло бути тим самим, що і сусідство контексту, що використовується для виведення контекстів для відображення значущості. Наприклад, сусідство контексту, що використовується для виведення контексту для рівня коефіцієнтів, може бути локальним сусідством, як у випадку кодування відображення значущості. Як описано більш детально вище, дане розкриття пропонує використання оберненого порядку сканування для сканування значущих коефіцієнтів, щоб сформувати відображення значущості. Обернений порядок сканування може бути оберненим зигзагоподібним шаблоном, вертикальним шаблоном або горизонтальним шаблоном, як показано на ФІГ. 6. Якщо порядок сканування для сканування рівня коефіцієнтів також знаходиться в оберненому шаблоні, то сусідство контексту, показане на ФІГ. 12, буде неказуальним. Дане розкриття пропонує інвертувати позицію сусідства контексту таким чином, щоб воно було казуальним відносно оберненого порядку сканування. ФІГ. 13 показує приклад сусідства контексту для оберненого порядку сканування. Як показано на ФІГ. 13, для сканування рівня, яке виконується в оберненому напрямку від останнього значущого коефіцієнта до позиції коефіцієнта DC, сусідство контексту для коефіцієнта X складається з коефіцієнтів В, Е, F, Н та I, які асоційовані з позиціями більш високої частоти відносно позиції коефіцієнта X. Враховуючи обернене сканування, коефіцієнти В, Е, F, Н та I були вже оброблені кодером або декодером до кодування коефіцієнта X, і тому є казуальними в тому значенні, що вони є доступними. Аналогічно, це сусідство контексту може бути застосоване до рівнів коефіцієнтів. Дане розкриття додатково пропонує в одному прикладі інший спосіб для кодування відображення значущості, який використовує контексти, вибрані для підтримки оберненого сканування. Як розглянуто вище, високо адаптивний підхід вибору контексту був запропонований для HEVC для кодування відображення значущості блоків 16x16 та 32x32 коефіцієнтів перетворення. Наприклад, як було описано відносно ФІГ. 10 вище, цей підхід ділить блок 16x16 на чотири ділянки, де кожна позиція в ділянці 41 має свій власний набір контекстів, ділянка 37 має контексти, ділянка 35 має інші 3 контексти, і ділянка 39 має 5 контекстів. Вибір контексту для коефіцієнта перетворення X, як приклад, оснований на сумі значущості максимум цих 5 позицій В, Е, F, Н, I. Так як X є незалежним від інших позицій на одній і тій самій діагональній лінії X вздовж напрямку сканування, контекст значущості коефіцієнтів перетворення вздовж діагональної лінії в порядку сканування може бути обчислений паралельно від попередніх діагональних ліній в порядку сканування. Поточний підхід HEVC для виведень контексту має декілька недоліків. Однією проблемою є кількість контекстів для кожного блока. Наявність більшої кількості контекстів має на увазі більше пам'яті і більше обробки кожний раз, коли контексти оновлюються. Тому, може бути вигідно мати алгоритм, який має небагато контекстів і також небагато способів для генерування контекстів (наприклад, менше, ніж ці чотири способи, тобто, чотири шаблони, в попередньому прикладі). Одним способом вирішення таких недоліків є кодування відображення значущості в оберненому порядку, тобто, від останнього значущого коефіцієнта (більш високої частоти) до компонента DC (найнижчої частоти). Наслідок цього процесу в оберненому порядку полягає в тому, що контексти для прямого сканування більше не є достовірними. Способи, описані вище, включають в себе спосіб для визначення контекстів для адаптивного двійкового арифметичного кодування, основаного на контексті (CABAC) для інформації, що вказує поточний один із значущих коефіцієнтів на основі раніше закодованих значущих коефіцієнтів у оберненому напрямку сканування. У прикладі оберненого зигзагоподібного сканування раніше закодовані значущі коефіцієнти знаходяться в позиціях вправо від лінії сканування, на якій знаходиться поточний із значущих коефіцієнтів. Генерування контексту може відрізнятися для різних позицій блоків перетворення на основі щонайменше відстані від меж і відстані від компонента DC. У зразковому способі, описаному вище, було запропоновано, щоб кодування відображення значущості використовувало набори контекстів, зображених на ФІГ. 11. Дане розкриття пропонує набір контекстів для оберненого сканування відображення значущості, яке може привести до більш високої продуктивності через зменшення кількості 21 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 60 контекстів для кожного блока. Знову посилаючись на ФІГ. 11, зменшення кількості контексту для кожного блока може бути досягнуте, дозволяючи лівій ділянці 47 і верхній ділянці 45 використовувати те саме виведення контексту, що і для ділянки 49, що залишилася. В оберненому скануванні це можливо, оскільки сусідні позиції, відмічені I, Н, F, Е та В, є доступними для коефіцієнтів у ділянках 47 та 45. ФІГ. 14 показує приклад виведення контексту відповідно до цього прикладу. У цьому прикладі є тільки дві ділянки контексту: низькочастотна ділянка 57 для коефіцієнта DC і ділянка 59, що залишилася, для всіх інших коефіцієнтів. Також, цей приклад пропонує усього два способи для виведення контексту. У низькочастотній ділянці 57 (коефіцієнт DC в позиції х, у [0,0]) контекст виводять на основі позиції, тобто, коефіцієнт DC має контекст його самого. У ділянці 57, що залишилася, контекст виводять на основі значущості сусідніх коефіцієнтів у локальному сусідстві для кожного коефіцієнта, який повинен бути закодований. У цьому прикладі він виводиться залежно від суми значущості 5 сусідів, позначених I, Н, F, Е та В на ФІГ. 14. Тому, кількість способів для виведення контексту в блоці зменшена з 4 до 2. Крім того, кількість контекстів зменшена на 8 відносно попереднього прикладу на ФІГ. 11 (2 для ділянки 43 більш низьких частот і 3 для кожної з верхньої ділянки 45 і лівої ділянки 47). В іншому прикладі коефіцієнт DC може використовувати той самий спосіб, що і для іншої частини блока, таким чином, кількість способів для виведення контексту в блоці зменшується до 1. ФІГ. 15 показує приклад, в якому поточна позиція коефіцієнта X змушує деякі із сусідніх коефіцієнтів (в цьому випадку Н та В) знаходитися поза поточним блоком. Якщо будь-який із сусідів поточного коефіцієнта знаходиться поза цим блоком, можна передбачити, що такі сусідні коефіцієнти мають значущість 0 (тобто, вони є нульовими значеннями і, тому, не значущими). Альтернативно, один або декілька спеціальних контекстів можуть бути задані для одного або більше коефіцієнтів нижче вправо. Таким чином, коефіцієнти більш високої частоти можуть мати контексти залежно від позиції, аналогічно коефіцієнту DC. Однак припущення, що сусіди повинні бути нульовими, може забезпечити достатні результати, зокрема, тому, що нижні праві коефіцієнти звичайно будуть мати низьку імовірність наявності значущих коефіцієнтів або щонайменше значущих коефіцієнтів з великими значеннями. Зменшення кількості контекстів у прикладі на ФІГ. 14 добре для реалізації. Однак це може привести до невеликого зниження продуктивності. Дане розкриття пропонує додатковий спосіб, щоб підвищити продуктивність, в той самий час все ще зменшуючи кількість контекстів. Зокрема, пропонується мати другий набір контекстів, який також оснований на сусідніх коефіцієнтах. Алгоритм виведення контексту є точно таким самим, але використовуються два набори контекстів з різними моделями імовірності. Набір контекстів, які використовуються, залежить від позиції коефіцієнта, який повинен бути закодований в блоці перетворення. Більш точно, збільшена продуктивність була показана при використанні моделі контексту для коефіцієнтів більш високої частоти (наприклад, нижні праві координатні позиції х, у коефіцієнтів), яка відрізняється від моделі контексту для коефіцієнтів у більш низьких частотах (наприклад, верхні ліві координати х, у коефіцієнтів). Один спосіб для відділення коефіцієнтів більш низької частоти від коефіцієнтів більш високої частоти, і, таким чином, моделі контексту, що використовується для кожних коефіцієнтів, полягає в тому, щоб обчислити значення х+у для коефіцієнта, де х є горизонтальною позицією, і у є вертикальною позицією коефіцієнта. Якщо це значення менше, ніж деякий поріг (наприклад, 4 був показаний як працюючий ефективно), то використовується набір контекстів 1. Якщо значення дорівнює або більше, ніж цей поріг, то використовується набір контекстів 2. Знову, набори контекстів 1 та 2 мають різні моделі імовірності. ФІГ. 16 показує приклад ділянок контексту для цього прикладу. Знову, коефіцієнт DC в позиції (0,0) має свою власну ділянку 61 контексту. Ділянка 63 контексту більш низької частоти складається з коефіцієнтів перетворення в позиції х+у, рівній або менше, ніж поріг 4 (не включаючи коефіцієнт DC). Ділянка 65 контексту більш високої частоти складається з коефіцієнтів перетворення в позиції х+у більшій, ніж поріг 4. Поріг 4 використовується як приклад і може бути пристосований до будь-якої кількості, яка передбачає кращу продуктивність. В іншому прикладі поріг може залежати від розміру TU. Виведення контексту для ділянки 63 контексту більш низької частоти і ділянки 65 контексту більш високої частоти є точно таким самим в термінах способу, яким використовуються сусіди для вибору контексту, але імовірності (тобто, контексти), що використовуються, відрізняються. Зокрема, можуть бути використані одні і ті самі критерії для вибору контексту на основі сусідів, але застосування таких критеріїв призводить до вибору відмінного контексту для різних позицій коефіцієнта, оскільки різні позиції коефіцієнта можуть бути асоційовані з різними наборами 22 UA 107157 C2 5 10 15 20 25 30 35 40 45 50 55 60 контекстів. Таким чином, знання, що коефіцієнти більш низької і високої частоти мають різну статистику, включене в алгоритм таким чином, щоб могли бути використані різні набори контекстів для відмінного коефіцієнта. В інших прикладах функція х+у може бути змінена на інші функції залежно від позиції коефіцієнта. Наприклад, опція повинна надати один і той самий набір контекстів для всіх коефіцієнтів з х

Дивитися

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

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

Sole Rojals, Joel, Joshi, Rajan Laxman, Karczewicz, Marta

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

Соле Рохальс Хоель, Джоши Раджан Лаксман, Карчевич Марта

МПК / Мітки

МПК: H04N 19/00

Мітки: коефіцієнтів, кодування, відео, перетворення

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

<a href="https://ua.patents.su/53-107157-koduvannya-koeficiehntiv-peretvorennya-dlya-koduvannya-video.html" target="_blank" rel="follow" title="База патентів України">Кодування коефіцієнтів перетворення для кодування відео</a>

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