Сканування коефіцієнтів при кодуванні відео
Номер патенту: 110655
Опубліковано: 25.01.2016
Автори: Соле Рохальс Хоель, Ван Сянлінь, Карчєвіч Марта, Чжен Юньфей, Джоши Раджан Лаксман
Формула / Реферат
1. Спосіб декодування коефіцієнтів перетворення в процесі декодування відео, який включає етапи, на яких:
- декодують одновимірну матрицю коефіцієнтів перетворення; і
- виконують сканування для одновимірної матриці коефіцієнтів перетворення згідно з порядком сканування субблоків, в якому скануються і декодуються субблоки з множини субблоків, і порядком сканування коефіцієнтів, в якому скануються і декодуються коефіцієнти перетворення в субблоках, для того, щоб формувати блок коефіцієнтів перетворення, при цьому порядок скапування коефіцієнтів включає уніфікований порядок сканування для проходу сканування інформації значущості і одного або більше проходів сканування інформації рівнів коефіцієнтів для коефіцієнтів перетворення в межах кожного субблока з множини субблоків, і при цьому порядок сканування субблоків і порядок сканування коефіцієнтів мають ідентичну орієнтацію сканування.
2. Спосіб за п. 1, в якому орієнтація сканування включає зворотну діагональну орієнтацію, так що виконання сканування для блока включає етап, на якому виконують зворотне діагональне сканування коефіцієнтів перетворення кожного з множини субблоків в порядку сканування коефіцієнтів від нижнього правого кута до верхнього лівого кута кожного з множини субблоків і діагональне сканування через кожний з множини субблоків в порядку сканування субблоків від нижнього правого субблока блока до верхнього лівого субблока блока.
3. Спосіб за п. 1, в якому орієнтація сканування включає зворотну горизонтальну орієнтацію, так що виконання сканування для блока включає етап, на якому виконують горизонтальне сканування коефіцієнтів перетворення кожного з множини субблоків в порядку сканування коефіцієнтів справа наліво і знизу вверх в межах кожного з множини субблоків і горизонтальне сканування через кожний з множини субблоків в порядку сканування субблоків справа наліво і знизу вверх блока.
4. Спосіб за п. 1, в якому орієнтація сканування включає зворотну вертикальну орієнтацію, так що виконання сканування для блока включає етап, на якому виконують вертикальне сканування коефіцієнтів перетворення кожного з множини субблоків в порядку сканування коефіцієнтів знизу вверх і справа наліво в межах кожного з множини субблоків і вертикальне сканування через кожний з множини субблоків в порядку сканування субблоків знизу вверх і справа наліво блока.
5. Спосіб за п. 1, в якому виконання сканування включає стан, на якому починають сканування в субблоці з множини субблоків, який містить останній значущий коефіцієнт матриці коефіцієнтів перетворення.
6. Спосіб за п. 1, в якому виконання сканування включає етап, на якому починають сканування в межах кожного з множини субблоків від останнього значущого коефіцієнта в порядку сканування коефіцієнтів.
7. Спосіб за п. 1, в якому порядок сканування субблоків і порядок сканування коефіцієнтів мають різні орієнтації.
8. Спосіб за п. 1, в якому виконання сканування включає етап, на якому сканують всі елементи вибірки, асоційовані з коефіцієнтами перетворення поточного субблока з множини субблоків, перед скануванням елементів вибірки, асоційованих з коефіцієнтами перетворення наступного субблока з множини субблоків в порядку сканування субблоків.
9. Спосіб за п. 8, в якому сканування коефіцієнтів перетворення поточного субблока включає етап, на якому сканують елементи вибірки значущості і елементи вибірки рівня коефіцієнтів перетворення в порядку сканування коефіцієнтів.
10. Спосіб за п. 1, в якому виконання сканування включає етап, на якому сканують елементи вибірки значущості для блока до сканування елементів вибірки рівня коефіцієнтів перетворення для блока.
11. Спосіб за п. 1, який додатково включає етапи, на яких:
визначають порядок сканування субблоків для множини субблоків; і
визначають порядок сканування коефіцієнтів для коефіцієнтів перетворення в межах кожного з множини субблоків.
12. Спосіб за п, 1, в якому порядок сканування субблоків і порядок сканування коефіцієнтів являють собою один з прямого зигзагоподібного сканування, прямого горизонтального сканування, прямого вертикального сканування, прямого діагонального сканування, зворотного зигзагоподібного сканування, зворотного горизонтального сканування, зворотного вертикального сканування і зворотного діагонального сканування.
13. Спосіб за п. 12, в якому виконання сканування додатково включає етап, на якому адаптивно вибирають порядок сканування субблоків і порядок сканування коефіцієнтів на основі одного з показника спотворення залежно від швидкості передачі, розміру блока, режиму прогнозування і інформації, асоційованої з сусіднім блоком.
14. Спосіб за п. 1, в якому декодування одновимірної матриці коефіцієнтів перетворення включає етап, на якому виконують контекстно-адаптивне двійкове арифметичне декодування одновимірної матриці коефіцієнтів перетворення.
15. Спосіб за п. 14, який додатково включає етап, на якому:
визначають контекст для паралельного декодування інформації значущості, асоційованої з коефіцієнтами перетворення, при цьому контекст варіюється на основі позиції коефіцієнта перетворення, що в даний момент декодується в блоці.
16. Пристрій для декодування коефіцієнтів перетворення в процесі декодування відео, причому пристрій містить один або більше процесорів, сконфігурованих з можливістю:
декодувати одновимірну матрицю коефіцієнтів перетворення; і виконувати сканування для одновимірної матриці коефіцієнтів перетворення згідно з порядком сканування субблоків, в якому скануються і декодуються субблоки з множини субблоків, і порядком сканування коефіцієнтів, в якому скануються і декодуються коефіцієнти перетворення в субблоках, для того, щоб формувати блок коефіцієнтів перетворення, при цьому порядок сканування коефіцієнтів включає уніфікований порядок сканування для проходу сканування інформації значущості і одного або більше проходів сканування інформації рівнів коефіцієнтів для коефіцієнтів перетворення в межах кожного субблока з множини субблоків, і при цьому порядок сканування субблоків і порядок сканування коефіцієнтів мають ідентичну орієнтацію сканування.
17. Пристрій за п. 16, в якому орієнтація сканування включає зворотну діагональну орієнтацію, так що виконання сканування для блока включає зворотне діагональне сканування коефіцієнтів перетворення кожного з множини субблоків в порядку сканування коефіцієнтів від нижнього правого кута до верхнього лівого кута кожного з множини субблоків і діагональне сканування через кожний з множини субблоків в порядку сканування субблоків від нижнього правого субблока блока до верхнього лівого субблока блока.
18. Пристрій за п. 16, в якому орієнтація сканування включає зворотну горизонтальну орієнтацію, так що виконання сканування для блока включає горизонтальне сканування коефіцієнтів перетворення кожного з множини субблоків в порядку сканування коефіцієнтів справа наліво і знизу вверх в межах кожного з множини субблоків і горизонтальне сканування через кожний з множини субблоків в порядку сканування субблоків справа наліво і знизу вверх блока.
19. Пристрій за п. 16, в якому орієнтація сканування включає зворотну вертикальну орієнтацію, так що виконання сканування для блока включає вертикальне сканування коефіцієнтів перетворення кожного з множини субблоків в порядку сканування коефіцієнтів знизу вверх і справа наліво в межах кожного з множини субблоків і вертикальне сканування через кожний з множини субблоків в порядку сканування субблоків знизу вверх і справа наліво блока.
20. Пристрій за п. 16, в якому для того, щоб виконувати сканування, один або більше процесорів сконфігуровані з можливістю починати сканування в субблоці з множини субблоків, який містить останній значущий коефіцієнт матриці коефіцієнтів перетворення.
21. Пристрій за п. 16, в якому для того, щоб виконувати сканування, один або більше процесорів сконфігуровані з можливістю починати сканування в межах кожного з множини субблоків від останнього значущого коефіцієнта в порядку сканування коефіцієнтів.
22. Пристрій за п. 16, в якому порядок сканування субблоків і порядок сканування коефіцієнтів мають різні орієнтації.
23. Пристрій за п. 16, в якому для того, щоб виконувати сканування, один або більше процесорів сконфігуровані з можливістю сканувати всі елементи вибірки, асоційовані з коефіцієнтами перетворення поточного субблока з множини субблоків, перед скануванням елементів вибірки, асоційованих з коефіцієнтами перетворення наступного субблока з множини субблоків в порядку сканування субблоків.
24. Пристрій за п. 23, в якому для того, щоб сканувати коефіцієнти перетворення поточного субблока, один або більше процесорів сконфігуровані з можливістю сканувати елементи вибірки значущості і елементи вибірки рівня коефіцієнтів перетворення в порядку сканування коефіцієнтів.
25. Пристрій за п. 16, в якому для того, щоб виконувати сканування, один або більше процесорів сконфігуровані з можливістю сканувати елементи вибірки значущості для блока до сканування елементів вибірки рівня коефіцієнтів перетворення для блока.
26. Пристрій за п. 16, в якому один або більше процесорів додатково сконфігуровані з можливістю:
визначати порядок сканування субблоків для множини субблоків; і
визначати порядок сканування коефіцієнтів для коефіцієнтів перетворення в межах кожного з множини субблоків.
27. Пристрій за п. 16, в якому порядок сканування субблоків і порядок сканування коефіцієнтів являють собою один з прямого зигзагоподібного сканування, прямого горизонтального сканування, прямого вертикального сканування, прямого діагонального сканування, зворотного зигзагоподібного сканування, зворотного горизонтального сканування, зворотного вертикального сканування і зворотного діагонального сканування.
28. Пристрій за п. 27, в якому для того, щоб виконувати сканування, один або більше процесорів сконфігуровані з можливістю адаптивно вибирати порядок сканування субблоків і порядок сканування коефіцієнтів на основі одного з показника спотворення залежно від швидкості передачі, розміру блока, режиму прогнозування і інформації, асоційованої з сусіднім блоком.
29. Пристрій за п. 16, в якому для того, щоб декодувати одновимірну матрицю коефіцієнтів перетворення, один або більше процесорів сконфігуровані з можливістю здійснювати контекстно-адаптивне двійкове арифметичне декодування одновимірної матриці коефіцієнтів перетворення.
30. Пристрій за п. 29, в якому один або більше процесорів додатково сконфігуровані з можливістю:
визначати контекст для паралельного декодування інформації значущості, асоційованої з коефіцієнтами перетворення, при цьому контекст варіюється на основі позиції коефіцієнта перетворення, що в даний момент декодується в блоці.
31. Пристрій для декодування коефіцієнтів перетворення в процесі декодування відео, причому пристрій містить:
засіб для декодування одновимірної матриці коефіцієнтів перетворення; і
засіб для виконання сканування для одновимірної матриці коефіцієнтів перетворення згідно з порядком сканування субблоків, в якому скануються і декодуються субблоки з множини субблоків, і порядком сканування коефіцієнтів, в якому скануються і декодуються коефіцієнти перетворення в субблоках, для того, щоб формувати блок коефіцієнтів перетворення, при цьому порядок сканування коефіцієнтів включає уніфікований порядок сканування для проходу сканування інформації значущості і одного або більше проходів сканування інформації рівнів коефіцієнтів для коефіцієнтів перетворення в межах кожного субблока з множини субблоків, і при цьому порядок сканування субблоків і порядок сканування коефіцієнтів мають ідентичну орієнтацію сканування.
32. Пристрій за п. 31, в якому засіб для декодування містить засіб для контекстно-адаптивного двійкового арифметичного декодування одновимірної матриці коефіцієнтів перетворення.
33. Пристрій за п. 32, який додатково містить:
засіб для визначення контексту для паралельного декодування інформації значущості, асоційованої з коефіцієнтами перетворення, при цьому контекст варіюється на основі позиції коефіцієнта перетворення, що в даний момент декодується в блоці.
34. Комп'ютерочитаний носій зберігання даних, що містить збережені на ньому інструкції, які при виконанні інструктують одному або більше процесорам:
декодувати одновимірну матрицю коефіцієнтів перетворення; і виконувати сканування для одновимірної матриці коефіцієнтів перетворення згідно з порядком сканування субблоків, в якому скануються і декодуються субблоки з множини субблоків, і порядком сканування коефіцієнтів, в якому скануються і декодуються коефіцієнти перетворення в субблоках, для того, щоб формувати блок коефіцієнтів перетворення, при цьому порядок сканування коефіцієнтів включає уніфікований порядок сканування для проходу сканування інформації значущості і одного або більше проходів сканування інформації рівнів коефіцієнтів для коефіцієнтів перетворення в межах кожного субблока з множини субблоків, при цьому сканування субблоків і порядок сканування коефіцієнтів мають ідентичну орієнтацію сканування.
35. Комп'ютерочитаний носій зберігання даних за п. 34, в якому інструкції додатково інструктують одному або більше процесорам виконувати контекстно-адаптивне двійкове арифметичне декодування одновимірної матриці коефіцієнтів перетворення.
36. Комп'ютерочитаний носій зберігання даних за п. 35, який додатково містить:
інструкції, які інструктують одному або більше процесорам визначати контекст для паралельного декодування інформації значущості, асоційованої з коефіцієнтами перетворення, при цьому контекст варіюється на основі позиції коефіцієнта перетворення, що в даний момент декодується в блоці.
37. Спосіб кодування коефіцієнтів перетворення в процесі кодування відео, який включає етапи, на яких:
розділяють блок коефіцієнтів перетворення на множину субблоків;
виконують сканування для блока коефіцієнтів перетворення згідно з порядком сканування субблоків, в якому скануються і декодуються субблоки з множини субблоків, і порядком сканування коефіцієнтів, в якому скануються і декодуються коефіцієнти перетворення в субблоках, для того, щоб формувати одновимірну матрицю коефіцієнтів перетворення, при цьому порядок сканування коефіцієнтів включає уніфікований порядок сканування для проходу сканування інформації значущості і одного або більше проходів сканування інформації рівнів коефіцієнтів для коефіцієнтів перетворення в межах кожного субблока з множини субблоків, і при цьому порядок сканування субблоків і порядок сканування коефіцієнтів мають ідентичну орієнтацію сканування; і
кодують одновимірну матрицю коефіцієнтів перетворення.
38. Спосіб за п. 37, в якому орієнтація сканування включає зворотну діагональну орієнтацію, так що виконання сканування для блока включає етап, на якому виконують зворотне діагональне сканування коефіцієнтів перетворення кожного з множини субблоків в порядку сканування коефіцієнтів від нижнього правого кута до верхнього лівого кута кожного з множини субблоків і діагональне сканування через кожний з множини субблоків в порядку сканування субблоків від нижнього правого субблока блока до верхнього лівого субблока блока.
39. Спосіб за п. 37, в якому орієнтація сканування включає зворотну горизонтальну орієнтацію, так що виконання сканування для блока включає етап, на якому виконують горизонтальне сканування коефіцієнтів перетворення кожного з множини субблоків в порядку сканування коефіцієнтів справа наліво і знизу вверх в межах кожного з множини субблоків і горизонтальне сканування через кожний з множини субблоків в порядку сканування субблоків справа наліво і знизу вверх блока.
40. Спосіб за п. 37, в якому орієнтація сканування включає зворотну вертикальну орієнтацію, так що виконання сканування для блока включає етап, на якому виконують вертикальне сканування коефіцієнтів перетворення кожного з множини субблоків в порядку сканування коефіцієнтів знизу вверх і справа наліво в межах кожного з множини субблоків і вертикальне сканування через кожний з множини субблоків в порядку сканування субблоків знизу вверх і справа наліво блока.
41. Спосіб за п. 37, в якому виконання сканування включає етап, на якому починають сканування в субблоці з множини субблоків, який містить останній значущий коефіцієнт матриці коефіцієнтів перетворення.
42. Спосіб за п. 37, в якому виконання сканування включає етап, на якому починають сканування в межах кожного з множини субблоків від останнього значущого коефіцієнта в порядку сканування коефіцієнтів.
43. Спосіб за п. 37, в якому порядок сканування субблоків і порядок сканування коефіцієнтів мають різні орієнтації.
44. Спосіб за п. 37, в якому виконання сканування включає етап, на якому сканують всі елементи вибірки, асоційовані з коефіцієнтами перетворення поточного субблока з множини субблоків, перед скануванням елементів вибірки, асоційованих з коефіцієнтами перетворення наступного субблока з множини субблоків в порядку сканування субблоків.
45. Спосіб за п. 44, в якому сканування коефіцієнтів перетворення поточного субблока включає етап, на якому сканують елементи вибірки значущості і елементи вибірки рівня коефіцієнтів перетворення в порядку сканування коефіцієнтів.
46. Спосіб за п. 37, в якому виконання сканування включає етап, на якому сканують елементи вибірки значущості для блока до сканування елементів вибірки рівня коефіцієнтів перетворення для блока.
47. Спосіб за п. 37, який додатково включає етапи, на яких:
визначають порядок сканування субблоків для множини субблоків; і
визначають порядок сканування коефіцієнтів для коефіцієнтів перетворення в межах кожного з множини субблоків.
48. Спосіб за п. 37, в якому порядок сканування субблоків і порядок сканування коефіцієнтів являють собою один з прямого зигзагоподібного сканування, прямого горизонтального сканування, прямого вертикального сканування, прямого діагонального сканування, зворотного зигзагоподібного сканування, зворотного горизонтального сканування, зворотного вертикального сканування і зворотного діагонального сканування.
49. Спосіб за п. 48, в якому виконання сканування додатково включає етап, на якому адаптивно вибирають порядок сканування субблоків і порядок сканування коефіцієнтів на основі одного з показника спотворення залежно від швидкості передачі, розміру блока, режиму прогнозування і інформації, асоційованої з сусіднім блоком.
50. Спосіб за п. 37, в якому кодування включає етап, на якому виконують контекстно-адаптивне двійкове арифметичне кодування.
51. Спосіб за п. 50, який додатково включає етап, на якому:
визначають контекст для паралельного кодування інформації значущості, асоційованої з коефіцієнтами перетворення, при цьому контекст варіюється на основі позиції коефіцієнта перетворення, що в даний момент кодується в блоці.
52. Пристрій для кодування коефіцієнтів перетворення в процесі кодування, причому пристрій містить один або більше процесорів, сконфігурованих з можливістю:
розділяти блок коефіцієнтів перетворення на множину субблоків;
виконувати сканування для блока коефіцієнтів перетворення згідно з порядком сканування субблоків, в якому скануються і декодуються субблоки з множини субблоків, і порядком сканування коефіцієнтів, в якому скануються і декодуються коефіцієнти перетворення в субблоках, для того, щоб формувати одновимірну матрицю коефіцієнтів перетворення, при цьому порядок сканування коефіцієнтів включає уніфікований порядок сканування для проходу сканування інформації значущості і одного або більше проходів сканування інформації рівнів коефіцієнтів для коефіцієнтів перетворення в межах кожного субблока з множини субблоків, і при цьому порядок сканування субблоків і порядок сканування коефіцієнтів мають ідентичну орієнтацію сканування; і
кодувати одновимірну матрицю коефіцієнтів перетворення.
53. Пристрій за п. 52, в якому орієнтація сканування включає зворотну діагональну орієнтацію, так що виконання сканування для блока включає зворотне діагональне сканування коефіцієнтів перетворення кожного з множини субблоків в порядку сканування коефіцієнтів від нижнього правого кута до верхнього лівого кута кожного з множини субблоків і діагональне сканування через кожний з множини субблоків в порядку сканування субблоків від нижнього правого субблока блока до верхнього лівого субблока блока.
54. Пристрій за п. 52, в якому орієнтація сканування включає зворотну горизонтальну орієнтацію, так що виконання сканування для блока включає горизонтальне сканування коефіцієнтів перетворення кожного з множини субблоків в порядку сканування коефіцієнтів справа наліво і знизу вверх в межах кожного з множини субблоків і горизонтальне сканування через кожний з множини субблоків в порядку сканування субблоків справа наліво і знизу вверх блока.
55. Пристрій за п. 52, в якому орієнтація сканування включає зворотну вертикальну орієнтацію, так що виконання сканування для блока включає вертикальне сканування коефіцієнтів перетворення кожного з множини субблоків в порядку сканування коефіцієнтів знизу вверх і справа наліво в межах кожного з множини субблоків і вертикальне сканування через кожний з множини субблоків в порядку сканування субблоків знизу вверх і справа наліво блока.
56. Пристрій за п. 52, в якому для того, щоб виконувати сканування, один або більше процесорів сконфігуровані з можливістю починати сканування в субблоці з множини субблоків, який містить останній значущий коефіцієнт матриці коефіцієнтів перетворення.
57. Пристрій за п. 52, в якому для того, щоб виконувати сканування, один або більше процесорів сконфігуровані з можливістю починати сканування в межах кожного з множини субблоків від останнього значущого коефіцієнта в порядку сканування коефіцієнтів.
58. Пристрій за п. 52, в якому порядок сканування субблоків і порядок сканування коефіцієнтів мають різні орієнтації.
59. Пристрій за п. 52, в якому для того, щоб виконувати сканування, один або більше процесорів сконфігуровані з можливістю сканувати всі елементи вибірки, асоційовані з коефіцієнтами перетворення поточного субблока з множини субблоків, перед скануванням елементів вибірки, асоційованих з коефіцієнтами перетворення наступного субблока з множини субблоків в порядку сканування субблоків.
60. Пристрій за п. 59, в якому для того, щоб сканувати коефіцієнти перетворення поточного субблока, один або більше процесорів сконфігуровані з можливістю сканувати елементи вибірки значущості і елементи вибірки рівня коефіцієнтів перетворення в порядку сканування коефіцієнтів.
61. Пристрій за п. 52, в якому для того, щоб виконувати сканування, один або більше процесорів сконфігуровані з можливістю сканувати елементи вибірки значущості для блока до сканування елементів вибірки рівня коефіцієнтів перетворення для блока.
62. Пристрій за п. 52, в якому один або більше процесорів додатково сконфігуровані з можливістю:
- визначати порядок сканування субблоків для множини субблоків; і
- визначати порядок сканування коефіцієнтів для коефіцієнтів перетворення в межах кожного з множини субблоків.
63. Пристрій за п. 52, в якому порядок сканування субблоків і порядок сканування коефіцієнтів являють собою один з прямого зигзагоподібного сканування, прямого горизонтального сканування, прямого вертикального сканування, прямого діагонального сканування, зворотного зигзагоподібного сканування, зворотного горизонтального сканування, зворотного вертикального сканування і зворотного діагонального сканування.
64. Пристрій за п. 63, в якому для того, щоб виконувати сканування, один або більше процесорів сконфігуровані з можливістю адаптивно вибирати порядок сканування субблоків і порядок сканування коефіцієнтів на основі показника спотворення залежно від швидкості передачі.
65. Пристрій за п. 52, в якому для того, щоб кодувати, один або більше процесорів сконфігуровані з можливістю здійснювати контекстно-адаптивне двійкове арифметичне кодування одновимірної матриці коефіцієнтів перетворення.
66. Пристрій за п. 65, в якому один або більше процесорів додатково сконфігуровані з можливістю:
визначати контекст для паралельного кодування інформації значущості, асоційованої з коефіцієнтами перетворення, при цьому контекст варіюється на основі позиції коефіцієнта перетворення, що в даний момент кодується в блоці.
67. Пристрій для кодування коефіцієнтів перетворення в процесі кодування відео, причому пристрій містить:
засіб для розділення блока коефіцієнтів перетворення на множину субблоків;
засіб для виконання сканування для блока коефіцієнтів перетворення згідно з порядком сканування субблоків, в якому скануються і декодуються субблоки з множини субблоків, і порядком сканування коефіцієнтів, в якому скануються і декодуються коефіцієнти перетворення в субблоках, для того, щоб формувати одновимірну матрицю коефіцієнтів перетворення, при цьому порядок сканування коефіцієнтів включає уніфікований порядок сканування для проходу сканування інформації значущості і одного або більше проходів сканування інформації рівнів коефіцієнтів для коефіцієнтів перетворення в межах кожного субблока з множини субблоків, і при цьому порядок сканування субблоків і порядок сканування коефіцієнтів мають ідентичну орієнтацію сканування; і
засіб для кодування одновимірної матриці коефіцієнтів перетворення.
68. Пристрій за п. 67, в якому засіб для кодування містить засіб для контекстно-адаптивного двійкового арифметичного кодування одновимірної матриці коефіцієнтів перетворення.
69. Пристрій за п. 68, який додатково містить:
засіб для визначення контексту для паралельного кодування інформації значущості, асоційованої з коефіцієнтами перетворення, при цьому контекст варіюється на основі позиції коефіцієнта перетворення, що в даний момент кодується в блоці.
70. Комп'ютерочитаний носій зберігання даних, що містить збережені на ньому інструкції, які при виконанні інструктують одному або більше процесорам:
розділяти блок коефіцієнтів перетворення на множину субблоків;
виконувати сканування для блока коефіцієнтів перетворення згідно з порядком сканування субблоків, в якому скануються і декодуються субблоки з множини субблоків, і порядком сканування коефіцієнтів, в якому скануються і декодуються коефіцієнти перетворення в субблоках, для того, щоб формувати одновимірну матрицю коефіцієнтів перетворення, при цьому порядок сканування коефіцієнтів включає уніфікований порядок сканування для проходу сканування інформації значущості і одного або більше проходів сканування інформації рівнів коефіцієнтів для коефіцієнтів перетворення в межах кожного субблока з множини субблоків, і при цьому порядок сканування субблоків і порядок сканування коефіцієнтів мають ідентичну орієнтацію сканування; і
кодувати одновимірну матрицю коефіцієнтів перетворення.
71. Комп'ютерочитаний носій зберігання даних за п. 70, в якому інструкції додатково інструктують одному або більше процесорам виконувати контекстно-адаптивне двійкове арифметичне кодування одновимірної матриці коефіцієнтів перетворення.
72. Комп'ютерочитаний носій зберігання даних за п. 71, який додатково містить:
інструкції, які інструктують одному або більше процесорам визначати контекст для паралельного кодування інформації значущості, асоційованої з коефіцієнтами перетворення, при цьому контекст варіюється на основі позиції коефіцієнта перетворення, що в даний момент кодується в блоці.
Текст
Реферат: У прикладі, аспекти цього розкриття суті стосуються способу декодування коефіцієнтів перетворення в процесі декодування відео, який включає в себе декодування одновимірної матриці коефіцієнтів перетворення і виконання сканування для одновимірної матриці коефіцієнтів перетворення згідно з порядком сканування субблоків і порядком сканування коефіцієнтів для того, щоб формувати блок коефіцієнтів перетворення, при цьому порядок сканування субблоків включає порядок, в якому сканується кожний субблок з множини UA 110655 C2 (12) UA 110655 C2 субблоків в блоці, і при цьому порядок сканування коефіцієнтів включає порядок, в якому скануються коефіцієнти перетворення, відповідні кожному субблоку з множини субблоків. UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 Дана заявка вимагає пріоритет по попередній заявці на патент США № 61/509,522, поданій 19 липня 2011 року, попередній заявці на патент США № 61/509,926, поданій 20 липня 2011 року, попередній заявці на патент США № 61/550,829, поданій 24 жовтня 2011 року, і попередній заявці на патент США № 61/554,292, поданій 01 листопада 2011 року, зміст кожної з яких повністю міститься в даному документі по посиланню. Галузь ТЕХНІКИ, ДО ЯКОЇ НАЛЕЖИТЬ ВИНАХІД Дане розкриття суті стосується кодування відео, а більш конкретно методик для сканування і кодування коефіцієнтів перетворення, сформованих за допомогою процесів кодування відео. РІВЕНЬ ТЕХНІКИ Можливості цифрового відео можуть бути впроваджені в широкий діапазон пристроїв, що включають в себе цифрові телевізори, системи цифрової прямої широкомовної передачі, бездротові широкомовні системи, персональні цифрові пристрої (PDA), переносні або настільні комп'ютери, цифрові камери, цифрові пристрої запису, цифрові мультимедійні програвачі, пристрої для відеоігор, консолі для відеоігор, стільникові або супутникові радіотелефони, пристрої відеоконференцзв'язку і т. п. Цифрові відеопристрої реалізовують такі методики стиснення відео, як методики, описані в стандартах, заданих за допомогою розроблюваних на даний час стандартів MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, частина 10, вдосконалене кодування відео (AVC), стандарту високоефективного кодування відео (HEVC) і розширень таких стандартів, для того, щоб більш ефективно передавати, приймати і зберігати цифрову відеоінформацію. Методики стиснення відео включають в себе просторове прогнозування і/або часове прогнозування для того, щоб зменшувати або видаляти надмірність, властиву відеопослідовностям. Для кодування відео на основі блоків, відеозображення або вирізка можуть бути сегментовані на блоки. Кожний блок може бути додатково сегментований. Блоки у внутрішньокодованому (I) кадрі або вирізці кодуються з використанням просторового прогнозування відносно опорних вибірок в сусідніх блоках в ідентичному зображенні або вирізці. Блоки у взаємнокодованому (Р або В) кадрі або вирізці послідовних макроблоків можуть використовувати просторове прогнозування відносно опорних вибірок в сусідніх блоках в ідентичному зображенні або вирізці або часове прогнозування відносно опорних вибірок в інших опорних зображеннях. Просторове або часове прогнозування приводить в результаті до прогнозного блока для блока, який повинен бути кодований. Залишкові дані представляють пікселні різниці між вихідним блоком, який повинен бути кодований, і прогнозним блоком. Взаємнокодований блок кодується згідно з вектором руху, який вказує на блок опорних вибірок, що формують прогнозний блок, і залишковими даними, що вказують різницю між кодованим блоком і прогнозним блоком. Внутрішньокодований блок кодується згідно з режимом внутрішнього кодування і залишковими даними. Для додаткового стиснення залишкові дані можуть бути перетворені з пікселної області в область перетворення, приводячи до залишкових коефіцієнтів перетворення, які потім можуть бути квантовані. Квантовані коефіцієнти перетворення, початково розміщувані в двовимірній матриці, можуть бути скановані в конкретному порядку для того, щоб формувати одновимірний вектор коефіцієнтів перетворення для ентропійного кодування. СУТЬ ВИНАХОДУ Загалом, це розкриття суті описує пристрої і способи кодування коефіцієнтів перетворення, асоційованих з блоком залишкових відеоданих в процесі кодування відео. У ході кодування блок коефіцієнтів перетворення може бути розділений на піднабори, які можуть приймати форму множини субблоків. Субблоки потім можуть бути скановані і кодовані. Наприклад, відносно відеокодера, двовимірна матриця коефіцієнтів перетворення з субблоків може бути сканована для того, щоб формувати одновимірну матрицю коефіцієнтів перетворення, які потім кодуються. Відносно відеодекодера, одновимірна матриця коефіцієнтів перетворення може бути прийнята і декодована і потім використана для того, щоб відновлювати двовимірні субблоки. Методики цього розкриття суті, загалом, стосуються сканування і кодування субблоків коефіцієнтів перетворення. Наприклад, як описано в даному документі, порядок сканування коефіцієнтів може описувати порядок, в якому коефіцієнти перетворення скануються і кодуються в субблоках блока залишкових даних. Порядок сканування субблоків може описувати порядок, в якому скануються і кодуються самі субблоки. Згідно з аспектами цього розкриття суті, порядок сканування коефіцієнтів може мати ідентичну орієнтацію з порядком сканування субблоків, тобто з порядком, в якому скануються субблоки, щоб потім сканувати коефіцієнти в межах кожного субблока, в блоці залишкових даних. Іншими словами, згідно з аспектами цього розкриття суті, шаблон/напрямок/порядок сканування для порядку сканування субблоків може співпадати з шаблоном сканування для порядку сканування коефіцієнтів в межах кожного 1 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 субблока. Додатково або альтернативно, методики цього розкриття суті включають в себе адаптивне визначення порядку сканування коефіцієнтів і/або порядку сканування субблоків на основі множини критеріїв. Таким чином, в деяких прикладах, порядок сканування коефіцієнтів може відрізнятися від порядку сканування субблоків. У прикладі, аспекти цього розкриття суті стосуються способу декодування коефіцієнтів перетворення в процесі декодування відео, що включає декодування одновимірної матриці коефіцієнтів перетворення; і виконання сканування для одновимірної матриці коефіцієнтів перетворення згідно з порядком сканування субблоків і порядком сканування коефіцієнтів для того, щоб формувати блок коефіцієнтів перетворення, при цьому порядок сканування субблоків включає порядок, в якому сканується кожний субблок з множини субблоків в блоці, і при цьому порядок сканування коефіцієнтів включає порядок, в якому скануються коефіцієнти перетворення, відповідні кожному субблоку з множини субблоків. У іншому прикладі, аспекти цього розкриття суті стосуються пристрою для декодування коефіцієнтів перетворення в процесі декодування відео, причому пристрій містить один або більше процесорів, сконфігурованих з можливістю декодувати одновимірну матрицю коефіцієнтів перетворення; і виконувати сканування для одновимірної матриці коефіцієнтів перетворення згідно з порядком сканування субблоків і порядком сканування коефіцієнтів для того, щоб формувати блок коефіцієнтів перетворення, при цьому порядок сканування субблоків включає порядок, в якому сканується кожний субблок з множини субблоків в блоці, і при цьому порядок сканування коефіцієнтів включає порядок, в якому скануються коефіцієнти перетворення, відповідні кожному субблоку з множини субблоків. У іншому прикладі, аспекти цього розкриття суті стосуються пристрою для декодування коефіцієнтів перетворення в процесі декодування відео, причому пристрій містить засіб для декодування одновимірної матриці коефіцієнтів перетворення; і засіб для виконання сканування для одновимірної матриці коефіцієнтів перетворення згідно з порядком сканування субблоків і порядком сканування коефіцієнтів для того, щоб формувати блок коефіцієнтів перетворення, при цьому порядок сканування субблоків включає порядок, в якому сканується кожний субблок з множини субблоків в блоці, і при цьому порядок сканування коефіцієнтів включає порядок, в якому скануються коефіцієнти перетворення, відповідні кожному субблоку з множини субблоків. У іншому прикладі, аспекти цього розкриття суті стосуються комп'ютерночитаного носія зберігання даних, що містить збережені на ньому інструкції, які при виконанні інструктують одному або більше процесорам декодувати одновимірну матрицю коефіцієнтів перетворення; і виконувати сканування для одновимірної матриці коефіцієнтів перетворення згідно з порядком сканування субблоків і порядком сканування коефіцієнтів для того, щоб формувати блок коефіцієнтів перетворення, при цьому порядок сканування субблоків включає порядок, в якому сканується кожний субблок з множини субблоків в блоці, і при цьому порядок сканування коефіцієнтів включає порядок, в якому скануються коефіцієнти перетворення, відповідні кожному субблоку з множини субблоків. У іншому прикладі, аспекти цього розкриття суті стосуються способу кодування коефіцієнтів перетворення в процесі кодування відео, який включає розділення блока коефіцієнтів перетворення на множину субблоків; виконання сканування для блока коефіцієнтів перетворення згідно з порядком сканування субблоків і порядком сканування коефіцієнтів для того, щоб формувати одновимірну матрицю коефіцієнтів перетворення, при цьому порядок сканування субблоків включає порядок, в якому сканується кожний з множини субблоків, і при цьому порядок сканування коефіцієнтів включає порядок, в якому скануються коефіцієнти перетворення в межах кожного з множини субблоків; і кодування одновимірної матриці коефіцієнтів перетворення. У іншому прикладі, аспекти цього розкриття суті стосуються пристрою для кодування коефіцієнтів перетворення в процесі кодування, причому пристрій містить один або більше процесорів, сконфігурованих з можливістю розділяти блок коефіцієнтів перетворення на множину субблоків; виконувати сканування для блока коефіцієнтів перетворення згідно з порядком сканування субблоків і порядком сканування коефіцієнтів для того, щоб формувати одновимірну матрицю коефіцієнтів перетворення, при цьому порядок сканування субблоків включає порядок, в якому сканується кожний з множини субблоків, і при цьому порядок сканування коефіцієнтів включає порядок, в якому скануються коефіцієнти перетворення в межах кожного з множини субблоків; і кодувати одновимірну матрицю коефіцієнтів перетворення. У іншому прикладі, аспекти цього розкриття суті стосуються пристрою для кодування коефіцієнтів перетворення в процесі кодування відео, причому пристрій містить засіб для розділення блока коефіцієнтів перетворення на множину субблоків; засіб для виконання 2 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 сканування для блока коефіцієнтів перетворення згідно з порядком сканування субблоків і порядком сканування коефіцієнтів для того, щоб формувати одновимірну матрицю коефіцієнтів перетворення, при цьому порядок сканування субблоків включає порядок, в якому сканується кожний з множини субблоків, і при цьому порядок сканування коефіцієнтів включає порядок, в якому скануються коефіцієнти перетворення в межах кожного з множини субблоків; і засіб для кодування одновимірної матриці коефіцієнтів перетворення. У іншому прикладі, аспекти цього розкриття суті стосуються комп'ютерночитаного носія зберігання даних, що містить збережені на ньому інструкції, які при виконанні інструктують одному або більше процесорам розділяти блок коефіцієнтів перетворення на множину субблоків; виконувати сканування для блока коефіцієнтів перетворення згідно з порядком сканування субблоків і порядком сканування коефіцієнтів для того, щоб формувати одновимірну матрицю коефіцієнтів перетворення, при цьому порядок сканування субблоків включає порядок, в якому сканується кожний з множини субблоків, і при цьому порядок сканування коефіцієнтів включає порядок, в якому скануються коефіцієнти перетворення в межах кожного з множини субблоків; і кодувати одновимірну матрицю коефіцієнтів перетворення. Подробиці одного або більше прикладів викладені на прикладених кресленнях і в нижченаведеному описі. Інші ознаки, цілі і переваги повинні ставати очевидними з опису і креслень і з формули винаходу. КОРОТКИЙ ОПИС КРЕСЛЕНЬ Фіг. 1 є блок-схемою, яка ілюструє зразкову систему кодування відео, яка може бути сконфігурована з можливістю здійснювати методики цього розкриття суті. Фіг. 2 є блок-схемою, яка ілюструє зразковий відеокодер, який може бути сконфігурований з можливістю здійснювати методики цього розкриття суті. Фіг. 3 є блок-схемою, яка ілюструє зразковий відеодекодер, який може бути сконфігурований з можливістю здійснювати методики цього розкриття суті. Фіг. 4 є концептуальною схемою, яка ілюструє процес кодування на основі карти значущості. Фіг. 5A є концептуальною схемою, яка ілюструє зразкові шаблони і напрямки сканування для кодування коефіцієнтів перетворення. Фіг. 5B є іншою концептуальною схемою, яка ілюструє зразкові шаблони і напрямки сканування для кодування коефіцієнтів перетворення. Фіг. 5C є іншою концептуальною схемою, яка ілюструє зразкові шаблони і напрямки сканування для кодування коефіцієнтів перетворення. Фіг. 5D є іншою концептуальною схемою, яка ілюструє зразкові шаблони і напрямки сканування для кодування коефіцієнтів перетворення. Фіг. 5E є іншою концептуальною схемою, яка ілюструє зразкові шаблони і напрямки сканування для кодування коефіцієнтів перетворення. Фіг. 5F є іншою концептуальною схемою, яка ілюструє зразкові шаблони і напрямки сканування для кодування коефіцієнтів перетворення. Фіг. 6 є концептуальною схемою, яка ілюструє приклад контекстно-адаптивного декодування коефіцієнтів перетворення блока відеоданих. Фіг. 7 є концептуальною схемою, яка ілюструє приклад розділення блока коефіцієнтів перетворення на субблоки. Фіг. 8A є концептуальною схемою, яка ілюструє зразковий зигзагоподібний порядок сканування субблоків для блока коефіцієнтів перетворення, розділених на субблоки. Фіг. 8B є концептуальною схемою, яка ілюструє зразковий горизонтальний порядок сканування субблоків для блока коефіцієнтів перетворення, розділених на субблоки. Фіг. 8C є концептуальною схемою, яка ілюструє зразковий вертикальний порядок сканування субблоків для блока коефіцієнтів перетворення, розділених на субблоки. Фіг. 8D є концептуальною схемою, яка ілюструє зразковий діагональний порядок сканування субблоків для блока коефіцієнтів перетворення, розділених на субблоки. Фіг. 8E є концептуальною схемою, яка ілюструє зразковий діагональний порядок сканування субблоків для блока коефіцієнтів перетворення, розділених на субблоки, який є зворотним порядком відносно сканування, показаного на фіг. 8D. Фіг. 9A і 9B ілюструють зразковий діагональний порядок сканування коефіцієнтів для коефіцієнтів перетворення субблоків і діагональний порядок сканування субблоків для субблоків. Фіг. 10A і 10B ілюструють зразковий зворотний діагональний порядок сканування коефіцієнтів для коефіцієнтів перетворення субблоків і зворотний діагональний порядок сканування субблоків для субблоків відносно сканувань, показаних на фіг. 9A і 9B. 3 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 Фіг. 11A і 11B ілюструють зразковий зворотний вертикальний порядок сканування коефіцієнтів для коефіцієнтів перетворення субблоків і зворотний вертикальний порядок сканування субблоків для субблоків. Фіг. 12A і 12B ілюструють зразковий зворотний горизонтальний порядок сканування коефіцієнтів для коефіцієнтів перетворення субблоків і зворотний горизонтальний порядок сканування субблоків для субблоків. Фіг. 13 є концептуальною схемою, яка ілюструє приклад контекстно-адаптивного кодування коефіцієнтів перетворення субблока відеоданих. Фіг. 14 є концептуальною схемою, яка ілюструє інший приклад контекстно-адаптивного кодування коефіцієнтів перетворення субблока відеоданих. Фіг. 15 є блок-схемою послідовності операцій, що ілюструє зразковий процес кодування відео згідно з методиками цього розкриття суті. Фіг. 16 є блок-схемою послідовності операцій, що ілюструє зразковий процес декодування відео згідно з методиками цього розкриття суті. Фіг. 17 є блок-схемою послідовності операцій, що ілюструє зразковий спосіб контекстноадаптивного кодування коефіцієнтів перетворення субблока відеоданих. ДОКЛАДНИЙ ОПИС ВИНАХОДУ Пристрій кодування відео може стискати відеодані за допомогою використання переваги просторової і часової надмірності. Наприклад, відеокодер може використовувати перевагу просторової надмірності за допомогою кодування блока відеоданих відносно сусідніх раніше кодованих блоків. Аналогічно, відеокодер може використовувати перевагу часової надмірності за допомогою кодування блока відеоданих відносно відеоданих раніше кодованих зображень, також званих "зображеннями". Зокрема, відеокодер може прогнозувати поточний блок з даних просторового сусіднього вузла або з даних раніше кодованого зображення. Відеокодер потім може обчислювати залишок для блока як різницю між фактичними пікселними значеннями для блока і прогнозними пікселними значеннями для блока. Іншими словами, залишок для блока може включати в себе попікселні значення різниць в пікселній (або просторовій) області. Відповідно, для того, щоб кодувати блок (наприклад, одиницю прогнозування відеоданих), спочатку витягується предиктор для блока. Предиктор, також званий "прогнозним блоком", може витягуватися через внутрішнє (I) прогнозування (тобто просторове прогнозування) або взаємне (Р або В) прогнозування (тобто часове прогнозування). Отже, деякі одиниці прогнозування можуть бути кодовані внутрішньо (I) з використанням просторового прогнозування відносно опорних вибірок в сусідніх опорних блоках в ідентичному зображенні (або вирізці), а інші одиниці прогнозування можуть бути однонаправлено кодовані взаємно (Р) або двонаправлено кодовані взаємно (В) відносно опорних блоків опорних вибірок в інших раніше кодованих зображеннях (або вирізках). Опорні вибірки можуть включати в себе фактичні піксели в опорних блоках і/або синтезовані опорні вибірки, сформовані, наприклад, за допомогою інтерполяції. В кожному випадку, опорні вибірки можуть бути використані для того, щоб формувати прогнозний блок для блока, який повинен бути кодований. Для того, щоб додатково стискати залишкове значення блока, відеокодер може перетворювати залишкові значення в набір коефіцієнтів перетворення, які ущільнюють максимально можливо об'єм даних (також званих "енергією") в мінімально можливе число коефіцієнтів. Перетворення перетворює залишкові значення з пікселних рівнів, наприклад рівнів сигналу яскравості і/або сигналу кольоровості, в просторовій області в коефіцієнти перетворення в області перетворення, наприклад, з використанням дискретного косинусного перетворення (DCT), цілочислового перетворення, перетворення Карунена-Лоева (K-L) або іншого перетворення. Коефіцієнти перетворення відповідають двовимірній матриці коефіцієнтів перетворення, яка звичайно має розмір, ідентичний розміру вихідного блока. Іншими словами, типово передбачено стільки ж коефіцієнтів перетворення, скільки пікселів у вихідному блоці. Проте, внаслідок перетворення багато які коефіцієнти перетворення можуть мати значення, що дорівнюють нулю. Відеокодер потім може квантувати коефіцієнти перетворення, щоб додатково стискати відеодані. Квантування, загалом, включає в себе перетворення значень у відносно великому діапазоні в значення у відносно невеликому діапазоні, внаслідок цього зменшуючи об'єм даних, необхідних для того, щоб представляти квантовані коефіцієнти перетворення. Відеокодер може квантувати коефіцієнти перетворення за допомогою застосування параметра квантування (QP) згідно із попередньо заданим алгоритмом. Після квантування деякі коефіцієнти перетворення можуть мати значення нуль. Крім цього, в певних режимах кодування відео, таких як режим пропуску перетворення, перетворення може бути відсутнім, і квантування може застосовуватися безпосередньо до залишку прогнозування. 4 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 Ентропійний кодер потім застосовує ентропійне кодування, наприклад контекстно-адаптивне кодування змінної довжини (CAVLC), контекстно-адаптивне двійкове арифметичне кодування (CABAC), ентропійне кодування з сегментуванням на інтервали імовірності (PIPE) і т. п., до квантованих коефіцієнтів перетворення. Для того, щоб ентропійно кодувати блок квантованих коефіцієнтів перетворення, процес сканування звичайно виконується таким чином, що двовимірна матриця квантованих коефіцієнтів перетворення в блоці перекомпоновується, згідно з конкретним порядком сканування, у впорядковану, одновимірну матрицю, тобто у вектор, коефіцієнтів перетворення. Ентропійне кодування застосовується до вектора коефіцієнтів перетворення. Сканування квантованих коефіцієнтів перетворення перетворює в послідовну форму двовимірну матрицю коефіцієнтів перетворення для ентропійного кодера. Згідно з деякими прикладами, позиції значущих коефіцієнтів (тобто ненульових коефіцієнтів перетворення) у відеоблоці можуть бути кодовані до значень коефіцієнтів перетворення, які можуть згадуватися як "рівні" коефіцієнтів перетворення. Процес кодування місцеположень значущих коефіцієнтів може згадуватися як кодування на основі карти значущості. Карта значущості включає в себе двовимірну матрицю двійкових значень, які вказують місцеположення значущих коефіцієнтів. Наприклад, карта значущості для блока відеоданих може включати в себе двовимірну матрицю одиниць і нулів, при цьому одиниці вказують позиції значущих коефіцієнтів перетворення в блоці, а нулі вказують позиції незначущих (з нульовим значенням) коефіцієнтів перетворення в блоці. Одиниці і нулі можуть згадуватися як "прапори значущих коефіцієнтів". Додатково, в деяких прикладах, карта значущості може включати в себе іншу двовимірну матрицю одиниць і нулів, при цьому одиниці вказують позицію останнього значущого коефіцієнта в блоці згідно з порядком сканування, асоційованим з блоком, а нулі вказують позиції всіх інших коефіцієнтів в блоці. У цьому випадку, одиниці і нулі згадуються як "прапори останніх значущих коефіцієнтів". У інших прикладах, такі прапори останніх значущих коефіцієнтів не використовуються. Навпаки, останній значущий коефіцієнт в блоці може бути кодований першим перед відправленням іншої частини карти значущості. У будь-якому випадку, кодування на основі карти значущості для блока відеоданих може використовувати значний процент швидкості передачі відеобітів, використовуваних для того, щоб кодувати блок. Після того, як сканується і кодується карта значущості, відеокодер може сканувати і кодувати рівень кожного коефіцієнта перетворення. Наприклад, відеокодер може перетворювати абсолютне значення, тобто рівень, кожного ненульового коефіцієнта перетворення в двійкову форму. Таким чином, рівень кожного ненульового коефіцієнта перетворення може "перетворюватися в двійкову форму", наприклад, з використанням унарного або іншого коду, щоб формувати один або більше бітів або "елементів вибірки" для того, щоб представляти коефіцієнт перетворення. Крім цього, може включатися певне число інших перетворених в двійкову форму елементів синтаксису для того, щоб давати можливість відеодекодеру декодувати відеодані. У деяких прикладах, порядок сканування карти значущості може відрізнятися від порядку сканування рівнів коефіцієнтів. У інших прикладах, порядок сканування коефіцієнтів перетворення може бути узгоджений таким чином, що сканування рівнів коефіцієнтів є ідентичним скануванню карти значущості, тобто по напрямку сканування і шаблону сканування. Крім цього, як відмічено вище, сканування для рівнів коефіцієнтів і значущих коефіцієнтів може виконуватися в зворотному порядку, тобто як зворотне сканування, яке продовжується від останнього значущого коефіцієнта в блоці до першого коефіцієнта (DC-компонента) в блоці. Для того, щоб спрощувати зворотне сканування, відеокодер може ідентифікувати останній значущий коефіцієнт до сканування. Після того, як останній значущий коефіцієнт в блоці ідентифікується, потім порядок зворотного сканування може застосовуватися як для карти значущості, так і для рівнів коефіцієнтів. Після сканування певне число нульових коефіцієнтів типово групується на одному кінці одновимірної матриці, залежно від напрямку сканування, внаслідок зменшеної енергії у верхніх частотах і внаслідок ефектів квантування, що може приводити до того, що деякі ненульові коефіцієнти стають коефіцієнтами з нульовим значенням після зменшення бітової глибини. Ці характеристики розподілу коефіцієнтів в перетвореній в послідовну форму одновимірній матриці можуть бути використані в схемі ентропійного кодера для того, щоб підвищувати ефективність кодування. Іншими словами, якщо ненульові коефіцієнти можуть ефективно розміщуватися в одній частині одновимірної матриці через деякий належний порядок сканування, більш висока ефективність кодування може очікуватися внаслідок схеми множини ентропійних кодерів. Наприклад, ентропійне кодування може кодувати серії коефіцієнтів з нульовим значенням, надаючи більш ефективні символи для кодування. 5 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 Як приклад, коли DCT застосовується до коефіцієнтів перетворення, часто існує більш висока імовірність ненульових коефіцієнтів до верхнього лівого кута (тобто в області низьких частот) двовимірної одиниці перетворення. Відповідно, може підвищуватися ефективність ентропійного кодування, якщо коефіцієнти перетворення скануються з початком у верхньому лівому куті, що може підвищувати імовірність угрупування ненульових коефіцієнтів на відносному початку перетвореної в послідовну форму серії коефіцієнтів. Крім цього, коефіцієнти з нульовим значенням можуть групуватися до цього кінця перетвореної в послідовну форму матриці, що може підвищувати ефективність ентропійного кодування. Діагональний (або хвильовий) порядок сканування пристосовується для використання в скануванні квантованих коефіцієнтів перетворення в запропонованому HEVC-стандарті. Через перетворення і квантування, як згадано вище, ненульові коефіцієнти перетворення можуть бути розташовані в низькочастотній області до верхньої лівої області блока для прикладу, в якому перетворення являє собою DCT. Як результат, після процесу діагонального сканування, який може проходити спочатку по верхній лівій області, ненульові коефіцієнти перетворення можуть з більшою імовірністю розташовуватися в передній частині одновимірної матриці. Для процесу діагонального сканування, який проходить спочатку від нижньої правої області, ненульові коефіцієнти перетворення звичайно з більшою імовірністю розташовуються в задній частині одновимірної матриці. Хоч вищенаведений приклад посилається на діагональне сканування, щоб досягати мети розміщення більш ненульових коефіцієнтів на одному кінці одновимірної матриці, інші порядки сканування можуть бути використані у відеокодері (наприклад, у відеокодері або у відеодекодері) для того, щоб кодувати коефіцієнти перетворення. У деяких випадках, може бути ефективним діагональне сканування. У інших випадках, можуть бути більш ефективними інші типи сканування, такі як зигзагоподібне, вертикальне або горизонтальне сканування. Конкретне сканування, яке реалізовується, може залежати від різних критеріїв, таких як показник спотворення залежно від швидкості передачі. Різні порядки сканування можуть формуватися множиною способів. Один приклад полягає в тому, що для кожного блока коефіцієнтів перетворення "найкращий" порядок сканування може вибиратися з числа доступних порядків сканування. Відеокодер потім може надавати індикатор в декодер, для кожного блока, індекс найкращого порядку сканування з набору порядків сканування, позначуваних за допомогою відповідних індексів. Вибір найкращого порядку сканування може бути визначений за допомогою застосування декількох порядків сканування і вибору того, який є найбільш ефективним при розміщенні ненульових коефіцієнтів біля початку або кінця одновимірного вектора, за рахунок цього сприяючи ефективному ентропійному кодуванню. У іншому прикладі, порядок сканування для поточного блока може бути визначений на основі різних факторів, пов'язаних з кодуванням застосовної одиниці прогнозування, таких як режим прогнозування (I, B, Р), розмір блока, перетворення або інші фактори. В деяких випадках, оскільки ідентична інформація, наприклад режим прогнозування, може логічно виводитися на стороні кодера і декодера, може не виникати необхідності надавати індикатор відносно індексу порядку сканування в декодер. Замість цього, відеодекодер може зберігати конфігураційні дані, які вказують належний порядок сканування з урахуванням відомостей по режиму прогнозування для блока і одного або більше критеріїв, які перетворюють режим прогнозування в конкретний порядок сканування. Для того, щоб додатково підвищувати ефективність кодування, доступні порядки сканування можуть не бути постійними весь час. Замість цього, може забезпечуватися деяка адаптація, так що порядок сканування адаптивно регулюється, наприклад, на основі коефіцієнтів, які вже кодуються. Загалом, адаптація порядку сканування може виконуватися таким чином, що, згідно з вибраним порядком сканування, нульові і ненульові коефіцієнти з більшою імовірністю групуються між собою. У деяких відеокодерах початкові доступні порядки сканування можуть бути в надрегулярній формі, наприклад чисто горизонтальне, вертикальне, діагональне або зигзагоподібне сканування. Альтернативно, порядки сканування можуть витягуватися через процес навчання і, отже, можуть здаватися певною мірою випадковими. Процес навчання може включати застосування різних порядків сканування до блока або послідовності блоків для того, щоб ідентифікувати порядок сканування, який приводить до необхідних результатів, наприклад, з точки зору ефективного розміщення ненульових коефіцієнтів і коефіцієнтів з нульовим значенням, як згадано вище. Якщо порядок сканування витягується з процесу навчання або якщо може вибиратися множина різних порядків сканування, конкретні порядки сканування можуть бути збережені на 6 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 стороні кодера і декодера. Об'єм даних, який вказує такі порядки сканування, може бути відносно суттєвим. Наприклад, для блока перетворення 32×32, один порядок сканування може містити 1024 позиції коефіцієнтів перетворення. Оскільки можуть бути блоки різного розміру, і для кожного розміру блока перетворення може бути передбачене визначене число різних порядків сканування, загальний об'єм даних, який повинен бути збережений, не є нехтувано малим. Навпаки, регулярні порядки сканування, такі як діагональний, горизонтальний, вертикальний або зигзагоподібний порядки, можуть не вимагати простору зберігання або можуть вимагати мінімального простору зберігання. Проте, регулярні сканування, такі як пряме горизонтальне або вертикальне сканування, сканують один рядок/стовпець зліва або зверху направо або вниз до кінця, а потім зворотно наліво або вверх для наступного рядка/стовпця. Цей вид "строгої" орієнтації для порядку сканування може не бути ефективним для великих блоків, оскільки може бути слабка кореляція між коефіцієнтами перетворення в кінці одного рядка/стовпця і на початку наступного рядка/стовпця. У деяких прикладах, щоб підвищувати ефективність і/або спрощувати реалізацію, блок коефіцієнтів перетворення може бути розділений на піднабори, які можуть приймати форму множини субблоків. Наприклад, для програмного або апаратного відеокодера може бути складним (наприклад, обчислювально неефективним) реалізовувати зигзагоподібне або діагональне сканування для великих блоків, таких як 32×32. Відповідно, після розділення блока на субблоки, субблоки потім можуть бути скановані і кодовані. Відносно відеокодера двовимірна матриця коефіцієнтів перетворення з субблоків може бути сканована для того, щоб формувати одновимірну матрицю коефіцієнтів перетворення, які потім кодуються. Відносно відеодекодера, може бути прийнята і декодована одновимірна матриця коефіцієнтів перетворення, які потім використовуються для того, щоб відновлювати двовимірні субблоки. Методики цього розкриття суті, загалом, стосуються сканування і кодування субблоків коефіцієнтів перетворення. Наприклад, як описано в даному документі, порядок сканування коефіцієнтів може описувати порядок, в якому коефіцієнти перетворення скануються і кодуються в субблоках. Порядок сканування субблоків може описувати порядок, в якому скануються і кодуються самі субблоки. Згідно з аспектами цього розкриття суті, порядок сканування коефіцієнтів може мати ідентичну орієнтацію з порядком сканування субблоків. Наприклад, як описано в даному документі, орієнтація сканування може, загалом, означати напрямок, шаблон сканування або загальний порядок сканування. Іншими словами, зигзагоподібний шаблон (наприклад, як показано і описано відносно фіг. 5A) може згадуватися як такий, що має зигзагоподібну орієнтацію. Крім цього, сканування, яке має діагональний напрямок (наприклад, як показано і описано відносно фіг. 5D-5F), може згадуватися як таке, що має діагональну орієнтацію. Згідно з аспектами цього розкриття суті, орієнтація порядку сканування субблоків може співпадати з орієнтацією порядку сканування коефіцієнтів. Наприклад, згідно з аспектами цього розкриття суті, відеокодер може розділяти блок, який більше попередньо визначеного розміру субблока, на субблоки. У деяких прикладах, відеокодер може розділяти блок на субблоки 4×4, хоч також може використовуватися множина інших розмірів субблоків (наприклад, 2×2, 8×8, 16×16 і т. п.). Якщо відеокодер використовує ідентичний розмір субблока для всіх блоків зображення (або вирізки), вигоди можуть досягатися в апаратній реалізації внаслідок рівномірності розмірів субблоків. Проте, рівномірний розмір субблока необов'язковий для того, щоб здійснювати методики цього розкриття суті. Після розділення блока коефіцієнтів перетворення на субблоки відеокодер може сканувати коефіцієнти перетворення субблоків в порядку сканування коефіцієнтів, а також сканувати самі субблоки в порядку сканування субблоків. Згідно з аспектами цього розкриття суті, порядок сканування коефіцієнтів і порядок сканування субблоків можуть мати ідентичну орієнтацію (наприклад, ідентичний шаблон, напрямок або порядок сканування). Іншими словами, наприклад, відеокодер може діагонально сканувати кожний з коефіцієнтів перетворення (наприклад, що включають в себе значущість, знак, рівень і т. п.) субблоків в порядку сканування коефіцієнтів. Відеокодер також може діагонально сканувати між субблоками в порядку сканування субблоків. Як ілюстрація, порядок, в якому скануються субблоки, може вказувати, що першими скануються коефіцієнти в субблоці, після цього другими скануються коефіцієнти у другому субблоці і т. д., тоді як порядок сканування коефіцієнтів вказує порядок, в якому скануються коефіцієнти в даному субблоці. У інших прикладах, згідно з аспектами цього розкриття суті, порядок сканування коефіцієнтів може відрізнятися від порядку сканування субблоків. Іншими словами, наприклад, відеокодер може виконувати діагональний порядок сканування субблоків і зигзагоподібний порядок сканування коефіцієнтів. Як детальніше описано нижче, відеокодер може адаптивно визначати 7 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 порядки сканування субблоків і коефіцієнтів на основі, наприклад, показника спотворення залежно від швидкості передачі. У деяких прикладах, відеокодер може виконувати сканування в зворотному порядку. Крім цього, згідно з деякими аспектами, відеокодер може сканувати і кодувати субблоки послідовно. Іншими словами, відеокодер може сканувати і кодувати коефіцієнти перетворення поточного субблока в порядку сканування коефіцієнтів перед переходом до наступного субблока в порядку сканування субблоків. Аспекти цього розкриття суті також стосуються використання адаптивного порядку сканування субблоків для того, щоб виконувати сканування для ентропійного кодування (наприклад, сканування на основі карти значущості або сканування на рівні коефіцієнтів в CABAC). У одному прикладі, адаптивний порядок сканування субблоків може бути використаний замість строгих горизонтальних і вертикальних порядків сканування, як описано вище, для відносно великих розмірів блоків (наприклад, розмірів блоків 32×32 або 16×16). Проте, наступні методики можуть використовуватися для блока будь-якого розміру, який може підрозділятися. Як відмічено вище, адаптивні сканування можуть допомагати групувати ненульові коефіцієнти перетворення блока. У деяких прикладах, розділення блока коефіцієнтів перетворення на субблоки може створювати залежність від контексту в субблоках (наприклад, при ентропійному кодуванні з використанням контексту). Наприклад, при скануванні в субблоках з використанням діагонального сканування, контекст для верхнього лівого коефіцієнта в субблоці може залежати від попереднього оброблюваного коефіцієнта (наприклад, коефіцієнта перетворення, розміщеного нижче поточного коефіцієнта перетворення). Залежність від контексту може накладати небажану затримку при ентропійному кодуванні. Для того, щоб не допускати цієї залежності і за рахунок цього підвищувати паралелізацію, аспекти цього розкриття суті стосуються модифікації позицій, з яких може витягуватися контекст, що може згадуватися як оточення підтримання контексту. Наприклад, методики цього розкриття суті включають в себе визначення оточення підтримання контексту, яке видаляє залежність двох послідовних коефіцієнтів, даючи можливість відеокодеру паралельно обробляти два елементи вибірки. У деяких прикладах, видалення залежності може бути збільшене з двох до трьох, чотирьох або більше послідовних коефіцієнтів. У цих випадках, оточення підтримання контексту в кожній позиції може бути модифіковане, щоб видаляти залежність від контексту в оточенні з урахуванням конкретного порядку сканування. Фіг. 1 є блок-схемою, яка ілюструє зразкову систему 10 кодування і декодування відео, яка може бути сконфігурована з можливістю використовувати методики для кодування коефіцієнтів перетворення відповідно до прикладів цього розкриття суті. Як показано на фіг. 1, система 10 включає в себе вихідний пристрій 12, який передає кодоване відео в цільовий пристрій 14 через канал 16 зв'язку. Кодоване відео також може бути збережене на носії 34 зберігання даних або файловому сервері 36 і до нього може здійснюватися доступ за допомогою цільового пристрою 14 необхідним чином. Вихідний пристрій 12 і цільовий пристрій 14 можуть містити будь-який з широкого спектра пристроїв, що включають в себе настільні комп'ютери, ноутбуки (тобто переносні комп'ютери), планшетні комп'ютери, абонентські приставки, телефонні трубки, наприклад так звані смартфони, телевізійні приймачі, камери, пристрої відображення, цифрові мультимедійні програвачі, консолі для відеоігор і т. п. В багатьох випадках, такі пристрої можуть мати підтримання бездротового зв'язку. Отже, канал 16 зв'язку може містити бездротовий канал, дротовий канал або комбінацію бездротових і дротових каналів, придатних для передачі кодованих відеоданих, наприклад радіочастотний (RF) спектр або одну або більше фізичних ліній передачі, або будь-яку комбінацію бездротових і дротових середовищ. Канал 16 зв'язку може формувати частину мережі з комутацією пакетів, такої як локальна обчислювальна мережа, глобальна обчислювальна мережа або глобальна мережа, така як Інтернет. Канал 16 зв'язку, загалом, представляє будь-яке належне середовище зв'язку або набір різних середовищ зв'язку для передачі відеоданих з вихідного пристрою 12 в цільовий пристрій 14, що включають в себе будь-яку належну комбінацію дротових або бездротових середовищ. Канал 16 зв'язку може включати в себе маршрутизатори, перемикачі, базові станції або будь-яке інше обладнання, яке може бути застосовним для того, щоб спрощувати передачу з вихідного пристрою 12 в цільовий пристрій 14. Методики для кодування коефіцієнтів перетворення, відповідно до прикладів цього розкриття суті, можуть застосовуватися до кодування відео для підтримання будь-яких з множини мультимедійних додатків, таких як широкомовні телепередачі по радіоінтерфейсу, кабельні телепередачі, супутникові телепередачі, потокові передачі відео, наприклад через 8 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 Інтернет, кодування цифрового відео для зберігання на носії зберігання даних, декодування цифрового відео, збереженого на носії зберігання даних, або до інших варіантів застосування. У деяких прикладах, система 10 може бути сконфігурована з можливістю підтримувати односторонню або двосторонню передачу відео, щоб підтримувати такі додатки, як потокова передача відео, відтворення відео, широкомовна передача відео і/або відеотелефонія. У прикладі за фіг. 1, вихідний пристрій 12 включає в себе відеоджерело 18, відеокодер 20, модулятор/демодулятор 22 і передавальний пристрій 24. У вихідному пристрої 12 відеоджерело 18 може включати в себе таке джерело, як пристрій відеозахоплення, наприклад відеокамера, відеоархів, що містить раніше захоплене відео, інтерфейс прямих відеотрансляцій, щоб приймати відео від постачальника відеоконтенту, і/або комп'ютерну графічну систему для формування комп'ютерних графічних даних як вихідного відео або комбінацію таких джерел. Як один приклад, якщо відеоджерелом 18 є відеокамера, вихідний пристрій 12 і цільовий пристрій 14 можуть формувати так звані камерофони або відеофони. Проте, методики, описані в цьому розкритті суті, можуть бути застосовним до кодування відео загалом і можуть застосовуватися до бездротових і/або дротових варіантів застосування. Захоплене, попередньо захоплене або генероване комп'ютером відео може бути кодоване за допомогою відеокодера 20. Кодована відеоінформація може бути модульована за допомогою модема 22 згідно зі стандартом зв'язку, таким як протокол бездротового зв'язку, і передана в цільовий пристрій 14 через передавальний пристрій 24. Модем 22 може включати в себе різні мікшери, фільтри, підсилювачі або інші компоненти, спроектовані з можливістю модуляції сигналів. Передавальний пристрій 24 може включати в себе схеми, спроектовані з можливістю передачі даних, що включають в себе підсилювачі, фільтри і одну або більше антен. Захоплене, попередньо захоплене або генероване комп'ютером відео, яке кодується за допомогою відеокодера 20, також може бути збережене на носії 34 зберігання даних або файловому сервері 36 для подальшого застосування. Носій 34 зберігання даних може включати в себе Blu-Ray-диски, DVD, CD-ROM, флеш-пам'ять або будь-які інші придатні цифрові носії зберігання даних для зберігання кодованого відео. Після цього, до кодованого відео, збереженого на носії 34 зберігання даних, може здійснюватися доступ за допомогою цільового пристрою 14 для декодування і відтворення. Файловий сервер 36 може бути будь-яким типом сервера, що допускає збереження кодованого відео і передачу цього кодованого відео в цільовий пристрій 14. Зразкові файлові сервери включають в себе веб-сервер (наприклад, для веб-вузла), FTP-сервер, пристрої по протоколу системи зберігання даних з підключенням по мережі (NAS), локальний накопичувач на дисках або будь-який інший тип пристрою, що допускає збереження кодованих відеоданих і їх передачу в цільовий пристрій. Передача кодованих відеоданих з файлового сервера 36 може являти собою потокову передачу, передачу на основі завантаження або комбінацію вищезазначеного. Доступ до файлового сервера 36 може здійснюватися за допомогою цільового пристрою 14 через будь-яке стандартне з'єднання для передачі даних, що включає в себе Інтернет-підключення. Воно може включати в себе бездротовий канал (наприклад, Wi-Fiпідключення), дротове підключення (наприклад, DSL, кабельний модем, Ethernet, USB і т. д.) або комбінацію вищезазначеного, яка є придатною для здійснення доступу до кодованих відеоданих, збережених на файловому сервері. Цільовий пристрій 14, в прикладі за фіг. 1, включає в себе приймальний пристрій 26, модем 28, відеодекодер 30 і пристрій 32 відображення. Приймальний пристрій 26 цільового пристрою 14 приймає інформацію по каналу 16, і модем 28 демодулює інформацію, щоб формувати демодульований потік бітів для відеодекодера 30. Інформація, що передається по каналу 16, може включати в себе множину синтаксичної інформації, сформованої за допомогою відеокодера 20 для використання за допомогою відеодекодера 30 при декодуванні відеоданих. Такий синтаксис також може бути включений в кодовані відеодані, збережені на носії 34 зберігання даних або файловому сервері 36. Пристрій 32 відображення може бути інтегрованим або зовнішнім для цільового пристрою 14. У деяких прикладах, цільовий пристрій 14 може включати в себе інтегрований пристрій відображення, а також виконаний з можливістю взаємодіяти із зовнішнім пристроєм відображення. У інших прикладах, цільовий пристрій 14 може бути пристроєм відображення. Загалом, пристрій 32 відображення відображає декодовані відеодані користувачу і може містити будь-який з множини пристроїв відображення, таких як рідкокристалічний дисплей (LCD), плазмовий дисплей, дисплей на органічних світлодіодах (OLED) або інший тип пристрою відображення. Відеокодер 20 і відеодекодер 30 можуть працювати згідно з таким стандартом кодування відео, як стандарт високоефективного кодування відео (HEVC), розроблюваний на даний час, і 9 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 можуть відповідати тестовій моделі HEVC (HM). Останній робочий проект (WD) HEVC, званий "HEVC WD7" надалі в цьому документі, доступний за адресою http://phenix.intevry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v5.zip, при цьому більш нова версія доступна за адресою http://phenix.intevry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v6.zip, причому обидві з них містяться в даному документі по посиланню, як якби вони повністю були викладені в даному документі. Альтернативно, відеокодер 20 і відеодекодер 30 можуть працювати згідно з іншими власними або галузевими стандартами, такими як стандарт ITU-T H.264, альтернативно званий "MPEG-4, частина 10, вдосконалене кодування відео (AVC)", або розширеннями таких стандартів. Проте, методики цього розкриття суті не обмежені яким-небудь конкретним стандартом кодування. Інші приклади стандартів кодування відео включають в себе MPEG-2 і ITU-T H.263. Стандарт ITU H.264/MPEG-4 (AVC) сформульований за допомогою Експертної групи в сфері кодування відео (VCEG) ITU-T спільно з Експертною групою з рухомих зображень (MPEG) ISO/IEC як продукт спільного партнерського проекту, відомого як Об'єднана група з відеостандартів (JVT). У деяких аспектах, методики, описані в цьому розкритті суті, можуть бути застосовані до пристроїв, які, загалом, відповідають стандарту H.264. Стандарт H.264 описаний в "ITU-T Recommendation H.264 Advanced Video Coding for Generic Audiovisual Services" від Дослідницької групи ITU-T і датований березнем 2005 року, який може згадуватися в даному документі як стандарт H.264 або специфікація H.264 або стандарт або специфікація H.264/AVC. Об'єднана група з відеостандартів (JVT) продовжує працювати над доповненнями до H.264/MPEG-4 AVC. JCT-VC проводить роботи з розробки HEVC-стандарту. Робота по стандартизації HEVC основана на вдосконаленій моделі пристрою кодування відео, званій "тестовою моделлю HEVC (HM)". HM передбачає декілька додаткових можливостей пристроїв кодування відео відносно існуючих пристроїв згідно, наприклад, з ITU-T H.264/AVC. Наприклад, тоді як H.264 надає дев'ять режимів внутрішнього прогнозуючого кодування, HM може надавати цілих тридцять три режими внутрішнього прогнозуючого кодування. HEVC-стандарт посилається на блок відеоданих як одиницю кодування (CU). Загалом, CU має призначення, аналогічне призначенню макроблока, кодованого згідно з H.264, за винятком того, що CU не має відмінності розміру. Таким чином, CU може розбиватися на суб-CU. Загалом, посилання в цьому розкритті суті на CU можуть посилатися на найбільшу одиницю кодування (LCU) зображення або суб-CU LCU. Наприклад, синтаксичні дані в потоці бітів можуть задавати LCU, яка є найбільшою одиницею кодування з точки зору числа пікселів. LCU може розбиватися на суб-CU, і кожна суб-CU може розбиватися на суб-CU. Синтаксичні дані для потоку бітів можуть задавати максимальне число разів, яке LCU може розбиватися, що називається "максимальною CU-глибиною". Відповідно, потік бітів також може задавати найменшу одиницю кодування (SCU). LCU може бути асоційована з ієрархічною структурою даних у вигляді дерева квадрантів. Загалом, структура даних у вигляді дерева квадрантів включає в себе один вузол в розрахунку на CU, при цьому кореневий вузол відповідає LCU. Якщо CU розбивається на чотири суб-CU, вузол, відповідний CU, включає в себе чотири кінцевих вузли, кожний з яких відповідає одній з суб-CU. Кожний вузол структури даних у вигляді дерева квадрантів може надавати синтаксичні дані для відповідної CU. Наприклад, вузол в дереві квадрантів може включати в себе прапор розбиття, що вказує те, розбивається чи ні CU, відповідна вузлу, на суб-CU. Елементи синтаксису для CU можуть бути задані рекурсивно і можуть залежати від того, розбивається чи ні CU на суб-CU. CU, яка не розбивається, може включати в себе одну або більше одиниць прогнозування (PU). Загалом, PU представляє всю або частину відповідної CU і включає в себе дані для витягання опорної вибірки для PU. Наприклад, коли PU кодується у внутрішньому режимі, PU може включати в себе дані, що описують режим внутрішнього прогнозування для PU. Як інший приклад, коли PU кодується у взаємному режимі, PU може включати в себе дані, що задають вектор руху для PU. Дані, що задають вектор руху, можуть описувати, наприклад, горизонтальний компонент вектора руху, вертикальний компонент вектора руху, розрізнення для вектора руху (наприклад, точність в одну чверть піксела або точність в одну восьму піксела), опорне зображення, на яке вказує вектор руху, і/або опорний список (наприклад, список 0 або список 1) для вектора руху. Дані для CU, що задає PU, також можуть описувати, наприклад, сегментування CU на одну або більше PU. Режими сегментування можуть відрізнятися між тим, є CU некодованою, кодованою в режимі внутрішнього прогнозування або кодованою в режимі взаємного прогнозування. 10 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 CU, що має одну або більше PU, також може включати в себе одну або більше одиниць перетворення (TU). Після прогнозування з використанням PU, відеокодер може обчислювати залишкове значення для частини CU, відповідної PU. Залишкове значення може бути перетворене, квантоване і скановане. TU не обов'язково обмежується розміром PU. Таким чином, TU можуть бути більше або менше відповідних PU для ідентичної CU. У деяких прикладах, максимальний розмір TU може бути розміром відповідної CU. Це розкриття суті також використовує термін "блок" для того, щоб посилатися на будь-яку з CU, PU або TU. Відеокодер 20 може реалізовувати будь-які з методик цього розкриття суті для того, щоб поліпшувати кодування коефіцієнтів перетворення в процесі кодування відео. Аналогічно, відеодекодер 30 може реалізовувати будь-які з цих методик для того, щоб поліпшувати декодування коефіцієнтів перетворення в процесі кодування відео. Відеокодер, як описано в цьому розкритті суті, може означати відеокодер або відеодекодер. Аналогічно, модуль кодування відео може означати відеокодер або відеодекодер. Аналогічно, кодування відео може означати кодування відео або декодування відео. Згідно з аспектами цього розкриття суті, відеокодер 20 і/або відеодекодер 30 можуть обробляти коефіцієнти перетворення блока (наприклад, TU) у множині субблоків. Субблоки можуть мати однаковий або різний розмір. Відеокодер 20 і/або відеодекодер 30 можуть сканувати коефіцієнти перетворення субблоків в порядку сканування коефіцієнтів і можуть сканувати самі субблоки в порядку сканування субблоків. Іншими словами, порядок сканування субблоків може вказувати, що скануються першими коефіцієнти в першому субблоці, другими скануються коефіцієнти у другому субблоці, третіми скануються коефіцієнти в третьому субблоці і т. д. Порядок сканування коефіцієнтів потім може вказувати порядок, в якому скануються коефіцієнти в межах кожного субблока. Згідно з аспектами цього розкриття суті, відеокодер 20 і/або відеодекодер 30 можуть використовувати ідентичну орієнтацію (наприклад, шаблон, напрямок або порядок сканування) для порядку сканування коефіцієнтів і порядку сканування субблоків. Іншими словами, згідно з аспектами цього розкриття суті, орієнтація порядку сканування субблоків може співпадати з орієнтацією порядку сканування коефіцієнтів. У інших прикладах, порядок сканування субблоків може відрізнятися від порядку сканування коефіцієнтів (наприклад, в прикладах, в яких порядок сканування субблоків і порядок сканування коефіцієнтів адаптивно визначаються). Наприклад, після розділення блока коефіцієнтів перетворення на субблоки (або прийому субблоків коефіцієнтів перетворення), відеокодер 20 і/або відеодекодер 30 можуть сканувати коефіцієнти перетворення субблоків в порядку сканування коефіцієнтів, а також сканувати самі субблоки в порядку сканування субблоків. Іншими словами, наприклад, відеокодер 20 і/або відеодекодер 30 можуть діагонально сканувати кожний з коефіцієнтів перетворення субблоків в порядку сканування коефіцієнтів. Відеокодер 20 і/або відеодекодер 30 також можуть діагонально сканувати між субблоками в порядку сканування субблоків. У деяких прикладах, відеокодер 20 і/або відеодекодер 30 можуть виконувати сканування в зворотному порядку. Крім цього, згідно з деякими аспектами, відеокодер 20 і/або відеодекодер 30 можуть сканувати і кодувати субблоки послідовно. Іншими словами, відеокодер 20 і/або відеодекодер 30 можуть сканувати і кодувати коефіцієнти перетворення (наприклад, що включають в себе значущість, знак, рівень і т. п.) поточного субблока в порядку сканування коефіцієнтів перед переходом до наступного субблока в порядку сканування субблоків. Згідно з деякими аспектами, відеокодер 20 і/або відеодекодер 30 можуть виконувати адаптивний порядок сканування субблоків. У одному прикладі, адаптивний порядок сканування субблоків може бути використаний замість строгих горизонтальних і вертикальних порядків сканування, як описано вище, для відносно великих розмірів блоків (наприклад, розмірів блоків 32×32 або 16×16). Відеокодер 20 і/або відеодекодер 30 можуть адаптивно визначати порядок сканування субблоків і порядок сканування коефіцієнтів для блока на основі розміру блока, режиму прогнозування блока (наприклад, режиму внутрішнього/взаємного прогнозування), інформації сусіднього блока (режиму прогнозування, інформації руху, індексу сканування) і/або з рішення на основі повного спотворення залежно від швидкості передачі в кодері і синтаксису з кодованого потоку бітів в декодері. Хоч не показано на фіг. 1, в деяких аспектах, відеокодер 20 і відеодекодер 30 можуть бути інтегровані з аудіокодером і декодером і можуть включати в себе відповідні модулі мультиплексора-демультиплексора або інші апаратні засоби і програмне забезпечення, щоб обробляти кодування як аудіо, так і відео в загальному потоці даних або в окремих потоках даних. Якщо застосовно, в деяких прикладах блоки мультиплексора-демультиплексора можуть відповідати протоколу мультиплексора ITU H.223 або іншим протоколам, таким як протокол користувацьких дейтаграм (UDP). 11 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 Відеокодер 20 і відеодекодер 30 можуть бути реалізовані як будь-яка з множини належних схем кодера, наприклад один або більше мікропроцесорів, процесори цифрових сигналів (DSP), спеціалізовані інтегральні схеми (ASIC), програмовані користувачем вентильні матриці (FPGA), дискретна логіка, програмне забезпечення, апаратні засоби, мікропрограмне забезпечення або будь-які комбінації вищезазначеного. Коли методики реалізовуються частково в програмному забезпеченні, пристрій може зберігати інструкції для програмного забезпечення на придатному енергонезалежному комп'ютерночитаному носії і виконувати інструкції в апаратних засобах з використанням одного або більше процесорів, щоб здійснювати методики цього розкриття суті. Кожний з відеокодера 20 і відеодекодера 30 може бути включений в один або більше кодерів або декодерів, будь-який з яких може бути інтегрований як частина комбінованого кодера/декодера (кодека) у відповідному пристрої. Фіг. 2 є блок-схемою, яка ілюструє приклад відеокодера 20, який може використовувати методики для кодування коефіцієнтів перетворення, як описано в цьому розкритті суті. Хоч конкретні аспекти відеокодера 20 можуть бути описані на фіг. 2 відносно запропонованого HEVC-кодування з метою ілюстрації, потрібно розуміти, що методики цього розкриття суті можуть бути виконані без обмеження відносно інших стандартів або способів кодування, які можуть вимагати сканування коефіцієнтів перетворення. У прикладі за фіг. 2, відеокодер 20 включає в себе модуль 44 компенсації руху, модуль 42 оцінки руху, модуль 46 внутрішнього прогнозування, буфер 64 опорних зображень, суматор 50, модуль 52 обробки перетворення, модуль 54 квантування і модуль 56 ентропійного кодування. Модуль 52 обробки перетворення, проілюстрований на фіг. 2, являє собою модуль, який застосовує фактичне перетворення до блока залишкових даних, і не повинен плутатися з блоком коефіцієнтів перетворення, який може згадуватися як одиниця перетворення (TU) CU. Для відновлення відеоблоків відеокодер 20 також включає в себе модуль 58 зворотного квантування, модуль 60 обробки зворотного перетворення і суматор 62. Фільтр видалення блоковості (не показаний на фіг. 2) також може бути включений, щоб фільтрувати границі блоків для того, щоб видаляти артефакти блоковості з відновленого відео. Якщо потрібно, фільтр видалення блоковості типово повинен фільтрувати виведення суматора 62. У ході процесу кодування відеокодер 20 приймає відеозображення або вирізку, яка повинна бути кодована. Зображення або вирізка можуть бути розділені на декілька відеоблоків, наприклад на найбільші одиниці кодування (LCU). Модуль 42 оцінки руху і модуль 44 компенсації руху виконують взаємне прогнозуюче кодування відеоблока, що приймається, відносно одного або більше блоків в одному або більше опорних зображеннях, щоб надавати часове стиснення. Модуль 46 внутрішнього прогнозування може виконувати внутрішнє прогнозуюче кодування відеоблока, що приймається, відносно одного або більше сусідніх блоків в ідентичному зображенні або вирізці, що і блок, який повинен бути кодований, щоб надавати просторове стиснення. Модуль 40 вибору режиму може вибирати один з режимів кодування, внутрішніх або взаємних, наприклад, на основі аналізу спотворення залежно від швидкості передачі для кожного режиму і надає результуючий внутрішньо- або взаємнокодований блок в суматор 50, щоб формувати залишкові блокові дані, і в суматор 62, щоб відновлювати кодований блок для використання як опорного зображення. Деякі відеозображення можуть позначатися як I-кадри, при цьому всі блоки в I-кадрі кодуються в режимі внутрішнього прогнозування. У деяких випадках, модуль 46 внутрішнього прогнозування може виконувати внутрішнє прогнозуюче кодування блока в Р- або В-кадрі, наприклад, коли пошук руху, виконуваний за допомогою модуля 42 оцінки руху, не приводить до достатнього прогнозування блока. Модуль 42 оцінки руху і модуль 44 компенсації руху можуть мати високу міру інтеграції, але проілюстровані окремо в концептуальних цілях. Оцінка руху типово є процесом формування векторів руху, які оцінюють рух для відеоблоків. Вектор руху, наприклад, може вказувати зміщення одиниці прогнозування в поточному зображенні відносно опорної вибірки опорного зображення. Опорна вибірка може бути блоком, для якого виявляється, що він практично співпадає з частиною CU, що включає в себе кодовану PU, з точки зору пікселної різниці, яка може бути визначена за допомогою суми абсолютних різниць (SAD), суми квадратів різниць (SSD) або інших різницевих показників. Компенсація руху, виконувана за допомогою модуля 44 компенсації руху, може включати вибірку або формування значень для одиниці прогнозування на основі вектора руху, визначеного за допомогою оцінки руху. З іншого боку, в деяких прикладах модуль 42 оцінки руху і модуль 44 компенсації руху можуть бути функціонально інтегровані. Модуль 42 оцінки руху обчислює вектор руху для одиниці прогнозування взаємнокодованого зображення за допомогою порівняння одиниці прогнозування з опорними вибірками опорного 12 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 зображення, збереженого в буфері 64 опорних зображень. У деяких прикладах, відеокодер 20 може обчислювати значення для субцілопікселних позицій опорних зображень, збережених в буфері 64 опорних зображень. Наприклад, відеокодер 20 може обчислювати значення позицій в одну чверть піксела, позицій в одну восьму піксела або інших дробовопікселних позицій опорного зображення. Отже, модуль 42 оцінки руху може виконувати пошук руху відносно повнопікселних позицій і дробовопікселних позицій і виводити вектор руху з дробовопікселною точністю. Модуль 42 оцінки руху відправляє обчислений вектор руху в модуль 56 ентропійного кодування і модуль 44 компенсації руху. Частина опорного зображення, ідентифікованого за допомогою вектора руху, може згадуватися як опорна вибірка. Опорна вибірка може задавати пікселні значення для використання при формуванні прогнозуючих значень пікселів для поточного блока, який має бути кодований. Модуль 44 компенсації руху може обчислювати прогнозне значення для одиниці прогнозування поточної CU, наприклад, за допомогою витягання опорної вибірки, ідентифікованої за допомогою вектора руху для PU. Модуль 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 квантування. У певних режимах кодування відео, таких як режим пропуску перетворення, модуль 52 обробки перетворення може відправляти залишковий блок безпосередньо в модуль 54 квантування без виконання перетворення. У таких випадках, залишкові значення як і раніше можуть згадуватися в даному документі як "коефіцієнти перетворення", незважаючи на відсутність фактичного застосування перетворення до залишкових значень. Модуль 54 квантування потім може квантувати коефіцієнти перетворення. Модуль 56 ентропійного кодування потім може виконувати сканування квантованих коефіцієнтів перетворення в матриці згідно з вказаним порядком сканування. Це розкриття суті описує модуль 56 ентропійного кодування як такий, що виконує сканування. Проте, потрібно розуміти, 13 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 що, в інших прикладах, інші модулі обробки, такі як модуль 52 обробки перетворення, модуль 54 квантування або інший модуль, якщо відеокодер 20, можуть виконувати сканування. Згідно з аспектами цього розкриття суті, модуль 56 ентропійного кодування може сканувати коефіцієнти перетворення двовимірної TU з використанням множини субблоків. Наприклад, модуль 56 ентропійного кодування може сканувати коефіцієнти перетворення субблоків в порядку сканування коефіцієнтів і може сканувати самі субблоки в порядку сканування субблоків. Згідно з аспектами цього розкриття суті, модуль 56 ентропійного кодування може використовувати ідентичну орієнтацію (наприклад, шаблон, напрямок або порядок сканування) для порядку сканування коефіцієнтів і порядку сканування субблоків. Іншими словами, згідно з аспектами цього розкриття суті, орієнтація порядку сканування субблоків може співпадати з орієнтацією порядку сканування коефіцієнтів. У інших прикладах, порядок сканування субблоків може відрізнятися від порядку сканування коефіцієнтів (наприклад, в прикладах, в яких порядок сканування субблоків і порядок сканування коефіцієнтів адаптивно визначаються). Наприклад, модуль 56 ентропійного кодування може формувати TU коефіцієнтів перетворення. До сканування TU, щоб перетворювати в послідовну форму TU, модуль 56 ентропійного кодування може розділяти TU на множину субблоків. Модуль 56 ентропійного кодування потім може сканувати коефіцієнти перетворення субблоків в порядку сканування коефіцієнтів, а також сканувати самі субблоки в порядку сканування субблоків. Іншими словами, в прикладі з метою ілюстрації модуль 56 ентропійного кодування може діагонально сканувати кожний з коефіцієнтів перетворення субблоків в порядку сканування коефіцієнтів. Модуль 56 ентропійного кодування також може діагонально сканувати між субблоками (сканувати самі субблоки) в порядку сканування субблоків. У деяких прикладах, модуль 56 ентропійного кодування може виконувати сканування в зворотному порядку. Крім цього, згідно з деякими аспектами, модуль 56 ентропійного кодування може сканувати і кодувати субблоки послідовно. Іншими словами, модуль 56 ентропійного кодування може скануватиі кодувати всі елементи вибірки, асоційовані з коефіцієнтами перетворення поточного субблока в порядку сканування коефіцієнтів перед переходом до наступного субблока в порядку сканування субблоків. У інших прикладах, модуль 56 ентропійного кодування може кодувати конкретний елемент вибірки для всієї TU (що включає в себе всі субблоки) перед кодуванням наступного елемента вибірки. Згідно з деякими аспектами, модуль 56 ентропійного кодування може виконувати адаптивний порядок сканування субблоків. У одному прикладі, адаптивний порядок сканування субблоків може бути використаний замість строгих горизонтальних і вертикальних порядків сканування, як описано вище, для відносно великих розмірів блоків (наприклад, розмірів блоків 32×32 або 16×16). Модуль 56 ентропійного кодування може адаптивно визначати порядок сканування субблоків і порядок сканування коефіцієнтів для блока на основі розміру блока, режиму прогнозування блока (наприклад, режиму внутрішнього/взаємного прогнозування), інформації сусіднього блока (режиму прогнозування, інформації руху, індексу сканування) і/або з рішення на основі повного спотворення залежно від швидкості передачі в кодері і синтаксису з кодованого потоку бітів в декодері. Після того, як коефіцієнти перетворення скануються (або під час сканування), модуль 56 ентропійного кодування може застосовувати ентропійне кодування, наприклад CAVLC, PIPE або CABAC, до коефіцієнтів. Крім цього, модуль 56 ентропійного кодування може кодувати інформацію вектора руху (MV) і будь-які з множини інших елементів синтаксису, застосовних при декодування відеоданих у відеодекодері 30. Елементи синтаксису можуть включати в себе карту значущості з прапорами значущих коефіцієнтів, які вказують те, є чи ні конкретні коефіцієнти значущими (наприклад, ненульовими), і прапор останнього значущого коефіцієнта, який вказує те, є чи ні конкретний коефіцієнт останнім значущим коефіцієнтом (в деяких прикладах, позиція останнього значущого коефіцієнта може не кодуватися). Відеодекодер 30 може використовувати ці елементи синтаксису для того, щоб відновлювати кодовані відеодані. Після ентропійного кодування за допомогою модуля 56 ентропійного кодування, результуюче кодоване відео може бути передане в інший пристрій, наприклад у відеодекодер 30, або заархівоване для подальшої передачі або витягання. У деяких прикладах, розділення блока коефіцієнтів перетворення на субблоки може створювати залежність від контексту в субблоках (наприклад, при ентропійному кодуванні з використанням контекстної інформації). Наприклад, при скануванні в субблоках з використанням діагонального сканування, контекст для конкретного елемента вибірки (наприклад, елементів вибірки карти значущості) для верхнього лівого коефіцієнта в субблоці може залежати від попереднього оброблюваного коефіцієнта (наприклад, коефіцієнта перетворення, розміщеного нижче поточного коефіцієнта перетворення). Залежність від контексту може накладати небажану затримку при ентропійному кодуванні. Для того, щоб не 14 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 допускати цієї залежності і за рахунок цього підвищувати паралелізацію, модуль 56 ентропійного кодування може модифікувати оточення підтримання контексту. Наприклад, модуль 56 ентропійного кодування може визначати оточення підтримання контексту, яке видаляє залежність від контексту двох послідовних коефіцієнтів, даючи можливість модулю 56 ентропійного кодування кодувати два елементи вибірки паралельно. Іншими словами, згідно з аспектами цього розкриття суті, одна або більше позицій з набору позицій (тобто оточення підтримання контексту), які звичайно використовуються для того, щоб витягувати контекст, можуть видалятися, внаслідок цього встановлюючи скорочений контекстний набір. У деяких прикладах, модуль 56 ентропійного кодування може збільшувати видалення залежності з двох до трьох, чотирьох або більше послідовних коефіцієнтів. У цих випадках, оточення підтримання контексту в кожній позиції може бути модифіковане, щоб видаляти залежність від контексту в оточенні з урахуванням конкретного порядку сканування. Модуль 58 зворотного квантування і модуль 60 обробки зворотного перетворення застосовують зворотне квантування і зворотне перетворення, відповідно, щоб відновлювати залишковий блок в пікселній області, наприклад, для подальшого використання як опорного блока. Модуль 44 компенсації руху може обчислювати опорний блок за допомогою підсумовування залишкового блока з прогнозним блоком одного іззображень буфера 64 опорних зображень. Модуль 44 компенсації руху також може застосовувати один або більше інтерполяційних фільтрів до відновленого залишкового блока, щоб обчислювати субцілопіксельні значення для використання при оцінці руху. Суматор 62 підсумовує відновлений залишковий блок з прогнозним блоком з компенсацією руху, сформованим за допомогою модуля 44 компенсації руху, щоб сформувати відновлений відеоблок для зберігання в буфері 64 опорних зображень. Відновлений відеоблок може використовуватися за допомогою модуля 42 оцінки руху і модуля 44 компенсації руху як опорний блок для того, щоб взаємно кодувати блок в подальшому відеозображенні. Фіг. 3 є блок-схемою, яка ілюструє приклад відеодекодера 30, який декодує кодовану відеопослідовність. У прикладі за фіг. 3, відеодекодер 30 включає в себе модуль 70 ентропійного декодування, модуль 72 компенсації руху, модуль 74 внутрішнього прогнозування, модуль 76 зворотного квантування, модуль 78 зворотного перетворення, буфер 82 опорних зображень і суматор 80. Ентропійне декодування 70 ентропійно декодує кодоване відео в процесі, який може бути зворотним відносно процесу, використовуваного за допомогою модуля 56 ентропійного кодування за фіг. 2. Модуль 72 компенсації руху може формувати прогнозуючі дані на основі векторів руху, що приймаються з модуля 70 ентропійного декодування. Модуль 74 внутрішнього прогнозування може формувати прогнозуючі дані для поточного блока поточного зображення на основі режиму внутрішнього прогнозування, що передається в службових сигналах, і даних з раніше декодованих блоків поточного зображення. У деяких прикладах, модуль 70 ентропійного декодування (або модуль 76 зворотного квантування) може сканувати прийняті значення з використанням сканування, співпадаючого з порядком сканування, використовуваним за допомогою модуля 56 ентропійного кодування (або модуля 54 квантування) відеокодера 20. Хоч сканування коефіцієнтів може бути виконане в модулі 76 зворотного квантування, сканування описується з метою ілюстрації як таке, що виконується за допомогою модуля 70 ентропійного декодування. Крім цього, хоч показані як окремі функціональні модулі для простоти ілюстрації, структура і функціональність модуля 70 ентропійного декодування, модуля 76 зворотного квантування і інших одиниць відеодекодера 30 можуть мати високу міру інтеграції одне з одним. Відеодекодер 30 може приймати з кодованого потоку бітів передачу в службових сигналах, яка ідентифікує порядок сканування, використовуваний за допомогою відеокодера 20. Додатково або альтернативно, порядок сканування може логічно виводитися за допомогою відеодекодера 30 на основі характеристик кодованого відео, таких як режим прогнозування, розмір блока, перетворення або інші характеристики. Як інший приклад, відеокодер 20 і відеодекодер 30 можуть використовувати попередньо визначені порядки сканування і контексти для всіх варіантів використання, і, по суті, не потрібна передача службових сигналів в кодованому потоці бітів. Відповідно до методик цього розкриття суті, порядок сканування, визначений за допомогою відеодекодера 30, може включати в себе порядок сканування субблоків і порядок сканування коефіцієнтів, які задають те, як коефіцієнти перетворення з одновимірного вектора скануються в двовимірний блок, розділений на множину субблоків. Декодер може логічно виводити число і/або розмір субблоків для блока коефіцієнтів перетворення на основі розміру двовимірного 15 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 блока. У інших прикладах, число і/або розмір субблоків можуть вказуватися в кодованому потоці відеобітів. Незалежно від того, як визначається порядок сканування, модуль 70 ентропійного декодування використовує порядок сканування, зворотний відносно порядку сканування, використовуваного за допомогою кодера, для того, щоб сканувати одновимірний вектор в двовимірну матрицю. Відповідно до методик цього розкриття суті, модуль 70 ентропійного декодування може виконувати процес сканування, який сканує коефіцієнти перетворення з секцій одновимірного вектора на множину субблоків двовимірного блока. Цей процес може бути процесом, зворотним відносно процесу, описаного вище з посиланням на фіг. 2. Наприклад, згідно з аспектами цього розкриття суті, модуль 70 ентропійного декодування може декодувати і зворотно сканувати TU у множині субблоків. Іншими словами, модуль 70 ентропійного декодування може сканувати коефіцієнти перетворення субблоків в порядку сканування коефіцієнтів і може сканувати самі субблоки в порядку сканування субблоків. Згідно з аспектами цього розкриття суті, модуль 70 ентропійного декодування може використовувати ідентичну орієнтацію (наприклад, шаблон, напрямок або порядок сканування) для порядку сканування коефіцієнтів і порядку сканування субблоків. Іншими словами, згідно з аспектами цього розкриття суті, орієнтація порядку сканування субблоків може співпадати з орієнтацією порядку сканування коефіцієнтів. У інших прикладах, порядок сканування субблоків може відрізнятися від порядку сканування коефіцієнтів (наприклад, в прикладах, в яких порядок сканування субблоків і порядок сканування коефіцієнтів адаптивно визначаються). Наприклад, модуль 70 ентропійного декодування може приймати перетворену в послідовну форму матрицю коефіцієнтів перетворення, асоційованих з TU. Модуль 70 ентропійного декодування може сканувати коефіцієнти перетворення в субблоках, щоб відновлювати двовимірну TU. Іншими словами, модуль 70 ентропійного декодування може сканувати коефіцієнти перетворення в порядку сканування коефіцієнтів, а також сканувати самі субблоки в порядку сканування субблоків. У прикладі з метою ілюстрації модуль 70 ентропійного декодування може діагонально сканувати кожний з коефіцієнтів перетворення, що приймаються, в порядку сканування коефіцієнтів для того, щоб відновлювати двовимірний субблок. Модуль 70 ентропійного декодування також може діагонально сканувати відновлені субблоки (у міру того, як формуються субблоки) в порядку сканування субблоків для того, щоб відновлювати TU. У деяких прикладах, модуль 70 ентропійного декодування може виконувати сканування в зворотному порядку. Крім цього, згідно з деякими аспектами, модуль 70 ентропійного декодування може сканувати і кодувати субблоки послідовно. Іншими словами, модуль 70 ентропійного декодування може сканувати і декодувати всі елементи вибірки, асоційовані з коефіцієнтами перетворення поточного субблока в порядку сканування коефіцієнтів перед переходом до наступного субблока в порядку сканування субблоків. У інших прикладах, модуль 70 ентропійного декодування може декодувати конкретний елемент вибірки для всієї TU (що включає в себе всі субблоки) перед декодування наступного елемента вибірки. Згідно з деякими аспектами, модуль 70 ентропійного декодування може виконувати адаптивний порядок сканування субблоків. У одному прикладі, адаптивний порядок сканування субблоків може бути використаний замість строгих горизонтальних і вертикальних порядків сканування, як описано вище, для відносно великих розмірів блоків (наприклад, розмірів блоків 32×32 або 16×16). Модуль 70 ентропійного декодування може адаптивно визначати порядок сканування субблоків і порядок сканування коефіцієнтів для блока на основі розміру блока, режиму прогнозування блока (наприклад, режиму внутрішнього/взаємного прогнозування), інформації сусіднього блока (режиму прогнозування, інформації руху, індексу сканування) і/або з рішення на основі повного спотворення залежно від швидкості передачі в кодері і синтаксису з кодованого потоку бітів в декодері. У деяких прикладах, розділення блока коефіцієнтів перетворення на субблоки може створювати залежність від контексту в субблоках (наприклад, при ентропійному кодуванні з використанням контекстної інформації). Наприклад, при скануванні в субблоках з використанням діагонального сканування, контекст для верхнього лівого коефіцієнта в субблоці може залежати від попереднього оброблюваного коефіцієнта (наприклад, коефіцієнта перетворення, розміщеного нижче поточного коефіцієнта перетворення). Залежність від контексту може накладати небажану затримку при ентропійному кодуванні. Для того, щоб не допускати цієї залежності і за рахунок цього підвищувати паралелізацію, модуль 70 ентропійного декодування може використовувати модифіковане оточення підтримання контексту. Наприклад, модуль 70 ентропійного декодування може використовувати оточення підтримання контексту, яке видаляє залежність від контексту двох послідовних коефіцієнтів, 16 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 даючи можливість модулю 70 ентропійного декодування декодувати два елементи вибірки паралельно. У деяких прикладах, модуль 70 ентропійного декодування може збільшувати видалення залежності з двох до трьох, чотирьох або більше послідовних коефіцієнтів. У цих випадках, оточення підтримання контексту в кожній позиції може бути модифіковане, щоб видаляти залежність від контексту в оточенні з урахуванням конкретного порядку сканування. Двовимірна матриця коефіцієнтів перетворення, сформованих за допомогою модуля 70 ентропійного декодування, може бути квантована і може, загалом, співпадати з двовимірною матрицею коефіцієнтів перетворення, сканованих за допомогою модуля 56 ентропійного кодування відеокодера 20, щоб формувати одновимірний вектор коефіцієнтів перетворення. Модуль 76 зворотного квантування зворотно квантує, тобто деквантує, квантовані коефіцієнти перетворення, надані в потоці бітів і декодовані за допомогою модуля 70 ентропійного декодування. Процес зворотного квантування може включати в себе традиційний процес, наприклад, аналогічний процесам, запропонованим для HEVC або заданим за допомогою стандарту декодування H.264. Процес зворотного квантування може включати в себе використання параметра QP квантування, обчисленого за допомогою відеокодера 20 для CU, щоб визначати міру квантування і, аналогічно, міру зворотного квантування, яке повинно застосовуватися. Модуль 76 зворотного квантування може зворотно квантувати коефіцієнти перетворення до або після того, як коефіцієнти перетворюються з одновимірного вектора в двовимірну матрицю. Модуль 58 зворотного перетворення застосовує зворотне перетворення, наприклад зворотне DCT, зворотне цілочислове перетворення, зворотне KLT, зворотне обертальне перетворення, зворотне направлене перетворення або інше зворотне перетворення. У деяких прикладах, модуль 78 обробки зворотного перетворення може визначати зворотне перетворення на основі передачі службових сигналів з відеокодера 20 або за допомогою логічного висновку з однієї або більше характеристик кодування, таких як розмір блока, режим кодування і т. п. В деяких прикладах, модуль 78 обробки зворотного перетворення може визначати перетворення, яке повинно застосовуватися до поточного блока, на основі перетворення в кореневому вузлі дерева квадрантів, що передається в службових сигналах, для LCU, що включає в себе поточний блок. У деяких прикладах, модуль 78 обробки зворотного перетворення може застосовувати каскадне зворотне перетворення. У прикладах, в яких прийняті коефіцієнти кодовані з використанням так званого режиму пропуску, модуль 58 зворотного перетворення може не застосовувати перетворення. Модуль 72 компенсації руху формує блоки з компенсацією руху, можливо виконуючи інтерполяцію на основі інтерполяційних фільтрів. Ідентифікатори для інтерполяційних фільтрів, які повинні використовуватися для оцінки руху з субпікселною точністю, можуть бути включені в елементи синтаксису. Модуль 72 компенсації руху може використовувати інтерполяційні фільтри, використовувані за допомогою відеокодера 20 в ході кодування відеоблока, щоб обчислювати інтерпольовані значення для субцілочислових пікселів опорного блока. Модуль 72 компенсації руху може визначати інтерполяційні фільтри, використовувані за допомогою відеокодера 20 згідно з синтаксичною інформацією, що приймається, і використовувати інтерполяційні фільтри, щоб формувати прогнозні блоки. Модуль 72 компенсації руху і модуль 74 внутрішнього прогнозування, в прикладі HEVC, можуть використовувати частину синтаксичної інформації (наприклад, наданої за допомогою дерева квадрантів) для того, щоб визначати розміри LCU, використовуваних для того, щоб кодувати зображення кодованої відеопослідовності. Модуль 72 компенсації руху і модуль 74 внутрішнього прогнозування також можуть використовувати синтаксичну інформацію, щоб визначати інформацію розбиття, яка описує те, як розбивається кожна CU зображення кодованої відеопослідовності (і, аналогічно, те, як розбиваються суб-CU). Синтаксична інформація також може включати в себе режими, що вказують те, як кодується кожне розбиття (наприклад, внутрішнє або взаємне прогнозування і для режиму внутрішнього прогнозуючого кодування), одне або більше опорних зображень (і/або опорних списків, що містять ідентифікатори для опорних зображень) для кожної взаємнокодованої PU, і іншу інформацію для того, щоб декодувати кодовану відеопослідовність. Суматор 80 комбінує залишкові блоки з відповідними прогнозними блоками, сформованими за допомогою модуля 72 компенсації руху або модуля 74 внутрішнього прогнозування, щоб формувати декодовані блоки. Наприклад, суматор 80 може комбінувати прогнозуюче пікселне значення (наприклад, сигнал яскравості і/або сигнал кольоровості) із залишковим значенням пікселної різниці, щоб відновлювати пікселні значення. Якщо потрібно, фільтр видалення блоковості також може бути застосований для того, щоб фільтрувати декодовані блоки, щоб видаляти артефакти блоковості. Декодовані відеоблоки потім зберігаються в буфері 82 опорних 17 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 зображень, який надає опорні блоки для подальшої компенсації руху, а також формує декодоване відео для представлення на пристрої відображення (наприклад, на пристрої 32 відображення за фіг. 1). Фіг. 4 є концептуальною схемою, яка, загалом, ілюструє кодування карти значущості. Наприклад, як відмічено вище, відеокодер (наприклад, відеокодер 20) може кодувати позиції значущих коефіцієнтів (тобто ненульових коефіцієнтів перетворення) в блоці перетворення (наприклад, TU) до кодування значень коефіцієнтів (рівнів). Процес кодування карти значущості може згадуватися як кодування на основі карти значущості, що вимагає відносно великого процента швидкості передачі бітів. Відеодекодер (наприклад, відеодекодер 30) може приймати карту значущості і визначати місцеположення значущих коефіцієнтів перетворення. Приклад за фіг. 4 показує блок 4×4 квантованих коефіцієнтів 100 перетворення, який має три значущих коефіцієнти в першому рядку, чотири значущих коефіцієнти у другому рядку, два значущих коефіцієнти в третьому рядку і не має значущих коефіцієнтів в четвертому рядку. Карта 102 значущості включає в себе (1) в кожному місцеположенні значущого коефіцієнта перетворення і (0) в кожному місцеположенні коефіцієнта перетворення з нульовим значенням. Загалом, після визначення місцеположень коефіцієнтів перетворення значущості, відеокодер 20 може перетворювати в послідовну форму і кодувати карту 102 значущості. Аналогічно, відеодекодер 30 може приймати перетворену в послідовну форму карту 102 значущості, щоб відновлювати місцеположення значущих коефіцієнтів. Зразковий процес для кодування карти значущості описується в роботі авторів Marpe D., Schwarz H. і Wiegand T. "Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard", IEEE Trans. Circuits and Systems for Video Technology, видання 13, № 7, липень 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-стандарт використовує процес, аналогічний процесу, описаному вище, але не кодує прапор останнього значущого коефіцієнта. Замість цього, згідно з HEVC, останній значущий коефіцієнт може бути ідентифікований, і сканування може продовжуватися від останнього значущого коефіцієнта до першого значущого коефіцієнта в зворотному порядку. Згідно з аспектами цього розкриття суті, карта 102 значущості може складати частину більшої карти значущості. Іншими словами, наприклад, карта 102 значущості може бути субблоком прапорів значущості для більшого блока прапорів значущості. У таких прикладах, згідно з аспектами цього розкриття суті, відеокодер може сканувати карту 102 значущості і більшу карту значущості з використанням сканування, що має ідентичну орієнтацію. На доповнення до карти 102 значущості, як детальніше описано нижче, множина інших елементів вибірки (наприклад, знак, рівень і т. п.) також може бути сканована в ідентичних або різних орієнтаціях відносно карти 102 значущості. 18 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 Фіг. 5A-5F, загалом, ілюструють шаблони і напрямки сканування для кодування коефіцієнтів перетворення. Наприклад, шаблони сканування, показані на фіг. 5A-5F, можуть бути використані за допомогою відеокодера (наприклад, відеокодера 20) як порядки сканування коефіцієнтів при перетворенні в послідовну форму двовимірної матриці коефіцієнтів перетворення (наприклад, значущості, рівнів, знака і т. п.). У іншому прикладі, шаблони сканування можуть бути використані за допомогою відеодекодера (наприклад, відеодекодера 30) як порядки сканування коефіцієнтів при відновленні блока коефіцієнтів перетворення з перетвореної в послідовну форму матриці кодованих коефіцієнтів перетворення, що приймається. У деяких прикладах, шаблони і напрямки сканування, показані на фіг. 5A-5F, можуть бути реалізовані за допомогою відеокодера при скануванні карти значущості (наприклад, карти 102 значущості, показаної на фіг. 4), а також рівнів коефіцієнтів перетворення. Наприклад, фіг. 5A ілюструє прямий зигзагоподібний шаблон 110 сканування для сканування коефіцієнтів перетворення блока відеоданих (наприклад, коефіцієнтів перетворення, асоційованих з TU). Загалом, зигзагоподібний шаблон 110 сканування проходить по блоку під кутами, що чергуються, в 45 градусів зверху справа блока вниз наліво блока. Іншими словами, в прикладі, показаному на фіг. 5A, перший коефіцієнт 112 є DC-компонентом, розміщеним у верхньому лівому куті блока, в той час як останній коефіцієнт 114, який повинен бути сканований, розміщується в нижньому правому куті блока. Фіг. 5B ілюструє прямий горизонтальний шаблон 120 сканування для сканування коефіцієнтів перетворення блока відеоданих. Загалом, прямий горизонтальний шаблон 120 сканування проходить по блоку зліва направо і зверху вниз. Іншими словами, в прикладі, показаному на фіг. 5B, перший коефіцієнт 122 є DC-компонентом, розміщеним у верхньому лівому куті блока, в той час як останній коефіцієнт 124, який повинен бути сканований, розміщується в нижньому правому куті блока. Прямий горизонтальний шаблон 120 сканування продовжується від першого коефіцієнта 122 по верху блока зліва направо. Кожний наступний рядок сканується зліва направо до досягнення останнього коефіцієнта 124. Фіг. 5C ілюструє прямий вертикальний шаблон 130 сканування для сканування коефіцієнтів перетворення блока відеоданих. Загалом, прямий вертикальний шаблон 130 сканування проходить по блоку зверху вниз і зліва направо. Іншими словами, в прикладі, показаному на фіг. 5C, перший коефіцієнт 132 є DC-компонентом, розміщеним у верхньому лівому куті блока, в той час як останній коефіцієнт 134, який повинен бути сканований, розміщується в нижньому правому куті блока. Прямий вертикальний шаблон 130 сканування продовжується від першого коефіцієнта 132 вниз до відносного низу блока. Кожний наступний стовпець сканується зверху вниз до досягнення останнього коефіцієнта 134. Фіг. 5D ілюструє діагональний шаблон 140 сканування для сканування коефіцієнтів перетворення блока відеоданих. Загалом, діагональний шаблон 140 сканування проходить по блоку під кутом в 45 градусів зверху справа вниз наліво (наприклад, від верхнього лівого кута блока до нижнього правого кута блока). Іншими словами, в прикладі, показаному на фіг. 5D, перший коефіцієнт 142 є DC-компонентом, розміщеним у верхньому лівому куті блока, в той час як останній коефіцієнт 144, який повинен бути сканований, розміщується в нижньому правому куті блока. Кожна з діагональних ліній в діагональному шаблоні 140 сканування проходить по блоку під кутом в 45 градусів від верхнього правого кута блока до нижнього лівого кута блока. Фіг. 5E ілюструє інший діагональний шаблон 150 сканування для сканування коефіцієнтів перетворення блока відеоданих. Загалом, діагональний шаблон 150 сканування проходить по блоку під кутом в 45 градусів зверху справа вниз наліво (наприклад, від верхнього лівого кута блока до нижнього правого кута блока). Іншими словами, в прикладі, показаному на фіг. 5E, перший коефіцієнт 152 є DC-компонентом, розміщеним у верхньому лівому куті блока, в той час як останній коефіцієнт 154, який повинен бути сканований, розміщується в нижньому правому куті блока. Проте, діагональний шаблон 150 сканування продовжується в протилежному напрямку відносно діагонального шаблона 140 сканування. Кожна з діагональних ліній в діагональному шаблоні 150 сканування проходить по блоку під кутом в 45 градусів від нижнього лівого кута блока до верхнього правого кута блока. Кожне зі сканувань, показаних на фіг. 5A-5E, продовжується в прямому напрямку, тобто від менших коефіцієнтів перетворення частоти у верхньому лівому куті блока перетворення до більших коефіцієнтів перетворення частоти в нижньому правому куті блока перетворення. Альтернативно, кожне зі сканувань може продовжуватися в зворотному напрямку (тобто від нижнього правого кута блока до верхнього лівого кута). У даному прикладі, як відмічено вище, коефіцієнти перетворення з нульовим значенням можуть бути розміщені на початку перетвореної в послідовну форму матриці. 19 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 Наприклад, фіг. 5F ілюструє зворотний діагональний шаблон сканування, як показано на фіг. 5E. Іншими словами, фіг. 5F ілюструє зворотний діагональний шаблон 160 сканування для сканування коефіцієнтів перетворення блока відеоданих (наприклад, коефіцієнтів перетворення, асоційованих з TU). Загалом, зворотний діагональний шаблон 160 сканування проходить по блоку під кутом в 45 градусів справа наліво і знизу вверх. Іншими словами, в прикладі, показаному на фіг. 5F, перший коефіцієнт 162 розміщується в нижньому правому куті блока, в той час як останній коефіцієнт 164, який повинен бути сканований, розміщується у верхньому лівому куті блока. Іншими словами, кожна з діагональних ліній в діагональному шаблоні 160 сканування проходить по блоку під кутом в 45 градусів від верхнього правого кута блока до нижнього лівого кута блока. DC-коефіцієнт може залишатися у верхньому лівому куті блока з високочастотними коефіцієнтами в нижньому правому куті блока. Потрібно розуміти, що шаблон сканування, показаний на фіг. 5A-5F, надається тільки з метою ілюстрації. Крім цього, різні компоненти, асоційовані з коефіцієнтами перетворення (наприклад, значущість, знак, рівень і т. п.), можуть бути скановані з використанням сканувань різних орієнтацій. Рівень коефіцієнтів може бути сканований і кодований з елементами синтаксису, що вказують те, має чи ні коефіцієнт рівень, що перевищує одиницю, і рівень, що перевищує два, а також рівень, що залишився, наприклад, що перевищує два. У деяких випадках, інформація значущості (наприклад, прапори значущості) може бути сканована в протилежному напрямку відносно рівнів коефіцієнтів перетворення (наприклад, один або більше елементів синтаксису, асоційованих з рівнями коефіцієнтів). У інших випадках, уніфікований шаблон сканування може бути реалізований таким чином, що інформація значущості і рівні коефіцієнтів перетворення скануються і кодуються в ідентичному напрямку. Хоч сканування, показані на фіг. 5A-5F, загалом, ілюструються як виконувані для всього блока, згідно з аспектами цього розкриття суті і як детальніше описано нижче, такі сканування можуть бути використані всередині і між субблоками коефіцієнтів перетворення. Іншими словами, як приклад, зворотний діагональний шаблон 160 сканування, показаний на фіг. 5F, може бути використаний як порядок сканування коефіцієнтів для сканування коефіцієнтів перетворення в субблоках, а також порядок сканування субблоків для сканування самих субблоків. Фіг. 6 є концептуальною схемою, яка ілюструє приклад оточення підтримання контексту для діагонально орієнтованого тракту сканування. Наприклад, фіг. 6 ілюструє блок коефіцієнтів 170 перетворення і діагонально орієнтованої лінії 171 сканування, що проходить через позицію 172 коефіцієнта перетворення, яка в даний момент кодується. Крім цього, приклад за фіг. 6 показує оточення 174A-174E підтримання контексту (спільно, оточення 174 підтримання контексту), що має п'ять елементів. Наприклад, як відмічено вище, кожний елемент вибірки для блока відеоданих, відповідний або рівню залишкових коефіцієнтів перетворення, або інформації карти значущості для блока, може бути кодований з використанням оцінок імовірності для елемента вибірки, які вказують імовірність того, що елемент вибірки має дане значення (наприклад, 0 або 1). Оцінки імовірності включаються у імовірнісну модель, також звану "контекстною моделлю". Імовірнісна модель вибирається за допомогою визначення контексту для елемента вибірки, який може бути ідентифікований за допомогою оточення підтримання контексту. Іншими словами, оточення підтримання контексту може ідентифікувати відносні позиції елементів синтаксису, які можуть використовуватися для ентропійного кодування конкретного символу або прапора, асоційованого з коефіцієнтом перетворення. Контекст, наприклад, фактичні значення, розташовані в позиціях оточення контексту, визначає імовірнісну модель. У прикладі, показаному на фіг. 6, будь-який з коефіцієнтів перетворення вздовж лінії 171 шаблона сканування може бути кодований паралельно. Такий шаблон сканування може згадуватися як "паралельно орієнтований". Іншими словами, позиції вздовж лінії 171 сканування можуть бути кодовані паралельно, оскільки жодна позиція в лінії 171 сканування не включає в себе оточення підтримання контексту, яке залежить від іншої позиції в лінії 171 сканування. Відповідно, лінія 171 сканування забезпечує можливість паралельного обчислення контексту множини прапорів значущості, внаслідок цього забезпечуючи попереджувальну вибірку контексту для кодування на основі прапорів значущості. Така лінія сканування також може спрощувати кодування декількох прапорів значущості з використанням орієнтовного обчислення. Проте, як детальніше описано нижче відносно фіг. 11 і 12, в деяких прикладах, розділення блока коефіцієнтів перетворення на субблоки може створювати залежність від контексту в субблоках (наприклад, при ентропійному кодуванні з використанням контексту). Іншими словами, оточення підтримання контексту для деяких позицій в субблоці може основуватися на 20 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 попередніх коефіцієнтах в порядку сканування з субблока. Відповідно, аспекти цього розкриття суті стосуються визначення оточення підтримання контексту для сканування субблоків, яке забезпечує можливість паралельного кодування декількох прапорів значущості (наприклад, контекст може бути попереджувально вибраний для декількох позицій в субблоці). Фіг. 7, загалом, ілюструє розділення блока коефіцієнтів 180 перетворення на піднабори в формі субблоків 184A-184P (спільно, субблоків 184). Наприклад, відеокодер (наприклад, відеокодер 20 або відеодекодер 30) може розділяти блок 180 на субблоки 184 при скануванні і ентропійному кодуванні блока 180. Згідно з аспектами цього розкриття суті, як детальніше описано нижче, коефіцієнти перетворення в субблоках 184 можуть бути скановані в порядку сканування коефіцієнтів. Крім цього, кожний з субблоків 184 може бути сканований в порядку сканування субблоків. У деяких прикладах, згідно з аспектами цього розкриття суті, порядок сканування коефіцієнтів може співпадати з порядком сканування субблоків. У деяких прикладах, відеокодер може кодувати інформацію значущості і рівні коефіцієнтів субблоків 184 в декількох проходах. Наприклад, відеокодер може виконувати перший прохід, щоб кодувати інформацію значущості. Відеокодер потім може виконувати ще один прохід, щоб кодувати елемент 1 вибірки (наприклад, що перевищує одиницю) рівнів коефіцієнтів перетворення, ще один прохід, щоб кодувати елемент 2 вибірки (наприклад, що перевищує 2) рівнів коефіцієнтів перетворення, ще один прохід, щоб кодувати елементи вибірки, що залишилися (наприклад, рівень, що залишився), рівнів коефіцієнтів перетворення, і ще один прохід, щоб кодувати знак рівнів коефіцієнтів перетворення. Проте, п'ять проходів, описаних вище, надаються тільки для прикладу, і може використовуватися інша система кодування. Згідно з деякими аспектами цього розкриття суті, відеокодер може кодувати кожний з субблоків 184 послідовно. Іншими словами, відеокодер може виконувати п'ять проходів кодування, описаних вище для субблока 184A, в порядку сканування коефіцієнтів перетворення. Відеокодер потім може перейти до наступного субблока в порядку сканування субблоків і виконувати ідентичні п'ять проходів кодування в порядку сканування коефіцієнтів перетворення. У інших прикладах, прохід кодування може бути виконаний для всього блока 180 перед переходом до наступного проходу кодування. Іншими словами, відеокодер може виконувати перший прохід кодування для блока 180 для всіх коефіцієнтів перетворення субблоків 184 в порядку сканування коефіцієнтів перетворення і для всіх субблоків 184 в порядку сканування субблоків. Відеокодер потім може виконувати наступний прохід кодування для блока 180 аналогічним чином доти, поки всі проходи кодування не будуть завершені. У деяких прикладах, відеокодер може використовувати уніфіковане сканування для сканування коефіцієнтів перетворення субблоків 184. Наприклад, відеокодер може сканувати інформацію значущості і рівні коефіцієнтів з використанням сканування, що має ідентичну орієнтацію (наприклад, діагонального сканування). У інших прикладах, відеокодер може сканувати компоненти коефіцієнтів перетворення (наприклад, значущість, знак, рівні і т. п.) з використанням зворотних сканувань або сканувань, що мають інші орієнтації. Наприклад, відеокодер може спочатку сканувати інформацію карти значущості при прямому скануванні. Відеокодер потім може сканувати один або більше елементів вибірки рівня коефіцієнтів при зворотному скануванні. Хоч в прикладі, показаному на фіг. 7, блок 180 має розмір 16×16 коефіцієнтів перетворення, потрібно розуміти, що більші або менші блоки можуть бути аналогічно розділені. Крім того, хоч субблоки 184 мають розмір 4×4, потрібно розуміти, що можуть використовуватися більші або менші субблоки. Іншими словами, в інших прикладах, розмір субблоків може становити 2×2, 8×8, 16×16 або n×n, за умови, що розмір субблока менше або дорівнює вихідному розміру блока. Те, як підрозділяється конкретний блок коефіцієнтів перетворення, може бути попередньо визначено на основі розміру блока. У зв'язку з цим, відеодекодер може логічно виводити те, як підрозділяти блок, на основі його розміру. У інших прикладах, число і/або розмір субблоків можуть вказуватися в кодованому потоці відеобітів за допомогою кодера. Фіг. 8A-8E, загалом, ілюструють шаблони і напрямки сканування для кодування субблоків коефіцієнтів перетворення. Наприклад, шаблони сканування, показані на фіг. 8A-8E, можуть бути використані за допомогою відеокодера (наприклад, відеокодера 20) як порядки сканування субблоків при перетворенні в послідовну форму двовимірної матриці коефіцієнтів перетворення (наприклад, значущості, рівнів, знака і т. п.). У іншому прикладі, шаблони сканування можуть бути використані за допомогою відеодекодера (наприклад, відеодекодера 30) як порядки сканування субблоків при відновленні блока коефіцієнтів перетворення з перетвореної в послідовну форму матриці кодованих коефіцієнтів перетворення, що приймається. 21 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 Наприклад, фіг. 8A, загалом, ілюструє прямий зигзагоподібний порядок 190 сканування субблоків для сканування між субблоками (субблоками 4×4, показаними за допомогою більш жирної рамки) блока коефіцієнтів перетворення. Загалом, прямий зигзагоподібний порядок 190 сканування субблоків проходить по кожному з субблоків від відносного першого субблока 192 у верхньому лівому куті блока до останнього субблока 194 в нижньому правому куті блока під кутами, що чергуються, в 45 градусів відносно зверху для блока відносно вниз для блока. Фіг. 8B, загалом, ілюструє прямий горизонтальний порядок 196 сканування субблоків для сканування між субблоками (субблоками 4×4, показаними за допомогою більш жирної рамки) блока коефіцієнтів перетворення. Загалом, прямий горизонтальний порядок 196 сканування субблоків проходить по кожному з субблоків від відносного першого субблока 198 у верхньому лівому куті блока до останнього субблока 200 в нижньому правому куті в послідовності горизонтальних ліній зліва направо і зверху вниз. Іншими словами, в прикладі, показаному на фіг. 8B, прямий горизонтальний порядок сканування субблоків продовжується від першого субблока 198 по верху блока зліва направо. Кожний наступний рядок потім сканується зліва направо до досягнення останнього субблока 200. Фіг. 8C ілюструє прямий вертикальний порядок 204 сканування субблоків для сканування між субблоками (субблоками 4×4, показаними за допомогою більш жирної рамки) блока коефіцієнтів перетворення. Загалом, прямий вертикальний порядок 204 сканування субблоків проходить по кожному з субблоків від відносного першого субблока 206 у верхньому лівому куті блока до останнього субблока 208 в нижньому правому куті в послідовності вертикальних ліній зверху вниз і зліва направо. Іншими словами, в прикладі, показаному на фіг. 8C, прямий вертикальний порядок сканування субблоків продовжується від першого субблока 206 вниз до відносного низу блока. Кожний наступний стовпець сканується зверху вниз до досягнення останнього субблока 208. Фіг. 8D, загалом, ілюструє діагональний порядок 210 сканування субблоків для сканування між субблоками (субблоками 4×4, показаними за допомогою більш жирної рамки) блока коефіцієнтів перетворення. Загалом, діагональний порядок 210 сканування субблоків проходить по кожному з субблоків від відносного першого субблока 212 у верхньому лівому куті блока до останнього субблока 214 в нижньому правому куті блока під кутом в 45 градусів зліванаправо і знизу вверх. Іншими словами, в прикладі, показаному на фіг. 8D, діагональний порядок 210 сканування субблоків проходить по блоку під кутом в 45 градусів від нижнього лівого кута блока до верхнього правого кута блока в послідовних діагональних лініях від першого субблока 212 до останнього субблока 214. Кожне зі сканувань субблоків, показаних на фіг. 8A-8D, продовжується в прямому напрямку, тобто від менших коефіцієнтів перетворення частоти у верхньому лівому куті блока перетворення до більших коефіцієнтів перетворення частоти в нижньому правому куті блока перетворення. Альтернативно, кожне зі сканувань може продовжуватися в зворотному напрямку (тобто від нижнього правого кута блока до верхнього лівого кута). У даному прикладі, як відмічено вище, коефіцієнти перетворення з нульовим значенням можуть бути розміщені на початку перетвореної в послідовну форму матриці. Якщо позиція останнього коефіцієнта кодується явно в потоці бітів, зворотне сканування субблоків може починатися з субблока, який містить останній значущий коефіцієнт відносно прямого сканування. Крім того, в цьому субблоці сканування може починатися з останнього значущого коефіцієнта (для кодування рівнів) або коефіцієнта після останнього значущого коефіцієнта в зворотному порядку сканування. Альтернативно, всі субблоки і всі коефіцієнти можуть завжди скануватися, але коефіцієнти, які знаходяться після останнього значущого коефіцієнта відносно прямого сканування, можуть логічно виводитися рівними нулю. Наприклад, фіг. 8E, загалом, ілюструє зворотний діагональний порядок 216 сканування субблоків для сканування між субблоками (субблоками 4×4, показаними за допомогою більш жирної рамки) блока коефіцієнтів перетворення в зворотному порядку відносно порядку сканування субблоків, показаного на фіг. 8D. Загалом, зворотний діагональний порядок 216 сканування субблоків проходить по кожному з субблоків від відносного першого субблока 217 в нижньому правому куті блока до останнього субблока 218 у верхньому лівому куті блока під кутом в 45 градусів справа наліво і зверху вниз. Іншими словами, в прикладі, показаному на фіг. 8E, зворотний діагональний порядок 216 сканування субблоків проходить по блоку під кутом в 45 градусів від верхнього правого кута блока до нижнього лівого кута блока в послідовних діагональних лініях від першого субблока 217 до останнього субблока 218. Потрібно розуміти, що порядки сканування субблоків, показані на фіг. 8A-8E, надаються тільки з метою ілюстрації. Крім цього, різні компоненти, асоційовані з коефіцієнтами перетворення (наприклад, значущість, знак, рівень і т. п.), можуть бути скановані з 22 UA 110655 C2 5 10 15 20 25 30 використанням сканувань різних орієнтацій. Наприклад, в деяких випадках, інформація значущості (наприклад, прапори значущості) може бути сканована в протилежному напрямку відносно рівнів коефіцієнтів перетворення. У інших випадках, уніфікований шаблон сканування може бути реалізований таким чином, що інформація значущості і рівні коефіцієнтів перетворення скануються в ідентичному напрямку. Згідно з аспектами цього розкриття суті, порядки сканування субблоків, показані на фіг. 8A8E, можуть співпадати з відповідними порядками сканування коефіцієнтів, використовуваними для того, щоб сканувати коефіцієнти перетворення в межах кожного з субблоків. Іншими словами, порядок сканування коефіцієнтів для сканування коефіцієнтів в межах кожного з субблоків може бути ідентичним порядкам сканування субблоків для сканування самих субблоків. Згідно з іншими аспектами цього розкриття суті, порядок сканування коефіцієнтів і/або порядок сканування субблоків може бути адаптивним. Іншими словами, відеокодер (наприклад, відеокодер 20 або відеодекодер 30) може вибирати порядок сканування субблоків і/або порядок сканування коефіцієнтів для блока на основі розміру блока, режиму внутрішнього/взаємного прогнозування, інформації сусіднього блока (режиму прогнозування, інформації руху, індексу сканування) або інших характеристик кодування відео. У іншому прикладі, порядок сканування субблоків і порядок сканування коефіцієнтів можуть бути визначені з аналізу спотворення залежно від швидкості передачі у відеокодері 20. У цьому випадку, синтаксис (наприклад, індекс сканування блоків з таблиці 1, показаної нижче), що вказує порядок сканування субблоків і порядок сканування коефіцієнтів, може бути переданий в службових сигналах в кодованому потоці відеобітів для використання в декодері. Відповідно, коефіцієнти перетворення вмежах кожного субблока, показаного на фіг. 8A-8E, можуть бути скановані згідно з ідентичними або різними порядками сканування. Іншими словами, зигзагоподібні, горизонтальні, діагональні або вертикальні порядки сканування можуть бути використані для того, щоб сканувати коефіцієнти перетворення в межах кожного субблока. З іншого боку, кожний з цих порядків сканування може бути в прямому або зворотному напрямку. Порядок сканування коефіцієнтів може відрізнятися або бути ідентичним порядку сканування субблоків. Крім цього, порядок сканування коефіцієнтів може бути ідентичним для кожного субблока в блоці коефіцієнтів перетворення, або порядок сканування коефіцієнтів для кожного субблока може вибиратися окремо. Наприклад, якщо як порядок сканування субблоків, так і порядок сканування коефіцієнтів використовують три сканування (тобто діагональне, горизонтальне і вертикальне), як показано в таблиці 1 нижче, загальне число потенційних сканувань для блока становить 3×3=9. 35 Таблиця 1 Комбінації порядків сканування Індекс сканування блоків 0 1 2 3 4 5 6 7 8 40 45 Сканування субблоків Діагональне Діагональне Діагональне Горизонтальне Горизонтальне Горизонтальне Вертикальне Вертикальне Вертикальне Сканування коефіцієнтів Діагональне Горизонтальне Вертикальне Діагональне Горизонтальне Вертикальне Діагональне Горизонтальне Вертикальне Потрібно розуміти, що таблиця 1 надається тільки для прикладу і що інші сканування можуть бути доступними для вибору під час визначення адаптивного сканування. Наприклад, зигзагоподібне сканування, зворотні сканування відносних будь-яких або всіх з вищезгаданих сканування або сканування інших орієнтацій також можуть бути доступними для вибору. Як згадано в іншому місці, методики сканування цього розкриття суті можуть бути застосовними для процесів сканування, використовуваних для CAVLC, CABAC або інших методик ентропійного кодування. Наприклад, вищезгадані методики сканування можуть бути застосовними для використання при скануванні на основі карти значущості і на рівні коефіцієнтів для CABAC. 23 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 Фіг. 9A і 9B, загалом, більш детально ілюструють сканування коефіцієнтів перетворення множини субблоків в порядку сканування коефіцієнтів, а також сканування множини субблоків в порядку сканування субблоків. Наприклад, відносно фіг. 9A, згідно з аспектами цього розкриття суті, відеокодер (наприклад, відеокодер 20 або відеодекодер 30) може розділяти блок 220 на субблоки 222A, 222B, 222C і 222D (спільно, субблоки 222) при кодуванні блока 220. Іншими словами, відеокодер 20 може розділяти блок 220 на субблоки 222 при перетворенні в послідовну форму коефіцієнтів перетворення блока 220. Альтернативно, відеодекодер 30 може відновлювати коефіцієнти перетворення блока 220 з використанням субблоків 222. У будь-якому випадку, приклад, показаний на фіг. 9A, загалом, ілюструє діагональний порядок сканування коефіцієнтів для сканування коефіцієнтів перетворення блока 220, в той час як фіг. 9B, загалом, ілюструє аналогічно орієнтований діагональний порядок сканування субблоків для сканування субблоків 222. Відповідно, як показано на фіг. 9A і 9B, відеокодер може сканувати коефіцієнти перетворення, асоційовані з першим субблоком 222A, розміщеним у верхньому лівому куті блока 220. Відеокодер потім може сканувати коефіцієнти перетворення, асоційовані з другим субблоком 222B, розміщеним в нижньому лівому куті блока 220, після цього з третім субблоком 222C, розміщеним у верхньому правому куті блока 220, і з четвертим субблоком 222D, розміщеним в нижньому правому куті блока 220. Як відмічено вище, в деяких прикладах, відеокодер може кодувати інформацію значущості і рівні коефіцієнтів субблоків 222 в декількох проходах. Згідно з деякими аспектами цього розкриття суті, відеокодер може кодувати кожний з субблоків 222 послідовно. Іншими словами, відеокодер може виконувати всі проходи кодування для субблока 222A в порядку сканування коефіцієнтів перетворення. Відеокодер потім може перейти до субблока 222B, а після цього до субблока 222C і субблока 222D, закінчуючи кодування коефіцієнтів в одному субблоці перед переходом до наступного субблока. У інших прикладах, один прохід кодування з множини проходів кодування може бути виконаний для всього блока 220 перед переходом до наступного проходу кодування. Іншими словами, відеокодер може виконувати перший прохід кодування для блока 220 для всіх коефіцієнтів перетворення субблоків 222 в порядку сканування коефіцієнтів перетворення і для всіх субблоків 222 в порядку сканування субблоків. Відеокодер потім може виконувати наступний прохід кодування для блока 222 аналогічним чином доти, поки всі проходи кодування не будуть завершені. У деяких прикладах, відеокодер може використовувати уніфіковане сканування для сканування коефіцієнтів перетворення субблоків 222. Наприклад, відеокодер може сканувати інформацію значущості (наприклад, прапори значущості) і рівні коефіцієнтів з використанням сканування, що має діагональну орієнтацію, показану на фіг. 9A і 9B. У інших прикладах, відеокодер може сканувати компоненти коефіцієнтів перетворення (наприклад, значущість, знак, рівні і т. п.) блока 222 з використанням зворотних сканувань або сканувань, що мають інші орієнтації. Наприклад, відеокодер може спочатку сканувати інформацію карти значущості при прямому скануванні. Відеокодер потім може сканувати один або більше елементів вибірки рівня коефіцієнтів при зворотному скануванні. Хоч приклади, показані на фіг. 9A і 9B, загалом, ілюструють діагональний шаблон сканування, як відмічено вище відносно фіг. 5A і 5B, може використовуватися множина інших шаблонів сканування, таких як зигзагоподібний шаблон, адаптивний порядок сканування, горизонтальний шаблон, вертикальний шаблон і т. п. Крім цього, у той час як приклади, показані на фіг. 9A і 9B, ілюструють блоки 8×8 коефіцієнтів перетворення з субблоками 4×4, потрібно розуміти, що методики цього розкриття суті можуть застосовуватися до блоків інших розмірів, а також до субблоків інших розмірів. Наприклад, субблок може включати в себе будь-який блок n×n (або блок n×m, у випадках, в яких субблоки не є квадратними) коефіцієнтів перетворення одиниці перетворення (TU), де n×n менше або дорівнює розміру TU. Крім цього, субблоки рівних розмірів, як показано на фіг. 9A і 9B, можуть допомагати досягати апаратної ефективності (наприклад, апаратні засоби можуть бути оптимізовані з можливістю працювати зі статичним розміром субблока). Проте, в інших прикладах, методики цього розкриття суті можуть застосовуватися до субблоків, що мають інші розміри. Фіг. 10A і 10B також, загалом, більш детально ілюструють сканування коефіцієнтів перетворення множини субблоків в порядку сканування коефіцієнтів, а також сканування множини субблоків в порядку сканування субблоків. Наприклад, відносно фіг. 10A, згідно з аспектами цього розкриття суті, відеокодер (наприклад, відеокодер 20 або відеодекодер 30) може розділяти блок 224 на субблоки 226A, 226B, 226C і 226D (спільно, субблоки 226) при кодуванні блока 224. Іншими словами, відеокодер 20 може розділяти блок 224 на субблоки 226 при перетворенні в послідовну форму коефіцієнтів перетворення блока 224. Альтернативно, 24 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 відеодекодер 30 може відновлювати коефіцієнти перетворення блока 224 з використанням субблоків 226. Приклад, показаний на фіг. 10A, загалом, ілюструє зворотний діагональний порядок сканування коефіцієнтів для сканування коефіцієнтів перетворення блока 224 (відносно порядку діагонального сканування, показаного на фіг. 9A), в той час як фіг. 10B, загалом, ілюструє аналогічно орієнтований зворотний діагональний порядок сканування субблоків для сканування субблоків 222 (відносно порядку діагонального сканування, показаного на фіг. 9B). Відповідно, як показано на фіг. 10A і 10B, відеокодер може спочатку сканувати коефіцієнти перетворення, асоційовані з першим субблоком 226A, розміщеним в нижньому правому куті блока 224. Відеокодер потім може сканувати коефіцієнти перетворення, асоційовані з другим субблоком 226B, розміщеним у верхньому правому куті блока 224, після цього з третім субблоком 226C, розміщеним в нижньому лівому куті блока 224, і з четвертим субблоком 226D, розміщеним у верхньому лівому куті блока 224. Фіг. 11A і 11B також, загалом, більш детально ілюструють сканування коефіцієнтів перетворення множини субблоків в порядку сканування коефіцієнтів, а також сканування множини субблоків в порядку сканування субблоків. Наприклад, відносно фіг. 11A, згідно з аспектами цього розкриття суті, відеокодер (наприклад, відеокодер 20 або відеодекодер 30) може розділяти блок 228 на субблоки 230A, 230B, 230C і 230D (спільно, субблоки 230) при кодуванні блока 228. Іншими словами, відеокодер 20 може розділяти блок 228 на субблоки 230 при перетворенні в послідовну форму коефіцієнтів перетворення блока 228. Альтернативно, відеодекодер 30 може відновлювати коефіцієнти перетворення блока 228 з використанням субблоків 230. Приклад, показаний на фіг. 11A, загалом, ілюструє зворотний вертикальний порядок сканування коефіцієнтів для сканування коефіцієнтів перетворення блока 228, в той час як фіг. 11B, загалом, ілюструє аналогічно орієнтований зворотний вертикальний порядок сканування субблоків для сканування субблоків 230. Відповідно, як показано на фіг. 11A і 11B, відеокодер може спочатку сканувати коефіцієнти перетворення, асоційовані з першим субблоком 230A, розміщеним в нижньому правому куті блока 228. Відеокодер потім може сканувати коефіцієнти перетворення, асоційовані з другим субблоком 230B, розміщеним у верхньому правому куті блока 228, після цього з третім субблоком 230C, розміщеним в нижньому лівому куті блока 228, і з четвертим субблоком 230D, розміщеним у верхньому лівому куті блока 228. Відповідно, приклад, показаний на фіг. 11A і 11B, включає в себе орієнтацію сканування, що має зворотну вертикальну орієнтацію, так що виконання сканування для блока 228 включає в себе вертикальне сканування коефіцієнтів перетворення кожного з множини субблоків 230 в порядку сканування коефіцієнтів знизу вверх і справа наліво в межах кожного з множини субблоків і вертикальне сканування через кожний з множини субблоків в порядку сканування субблоків знизу вверх і справа наліво блока 228. Фіг. 12A і 12B також, загалом, більш детально ілюструють сканування коефіцієнтів перетворення множини субблоків в порядку сканування коефіцієнтів, а також сканування множини субблоків в порядку сканування субблоків. Наприклад, відносно фіг. 12A, згідно з аспектами цього розкриття суті, відеокодер (наприклад, відеокодер 20 або відеодекодер 30) може розділяти блок 234 на субблоки 236A, 236B, 236C і 236D (спільно, субблоки 236) при кодуванні блока 234. Іншими словами, відеокодер 20 може розділяти блок 234 на субблоки 236 при перетворенні в послідовну форму коефіцієнтів перетворення блока 234. Альтернативно, відеодекодер 30 може відновлювати коефіцієнти перетворення блока 234 з використанням субблоків 236. Приклад, показаний на фіг. 12A, загалом, ілюструє зворотний горизонтальний порядок сканування коефіцієнтів для сканування коефіцієнтів перетворення блока 234, в той час як фіг. 12B, загалом, ілюструє аналогічно орієнтований зворотний вертикальний порядок сканування субблоків для сканування субблоків 236. Відповідно, як показано на фіг. 12A і 12B, відеокодер може спочатку сканувати коефіцієнти перетворення, асоційовані з першим субблоком 236A, розміщеним в нижньому правому куті блока 234. Відеокодер потім може сканувати коефіцієнти перетворення, асоційовані з другим субблоком 236B, розміщеним у верхньому правому куті блока 234, після цього з третім субблоком 236C, розміщеним в нижньому лівому куті блока 234, і з четвертим субблоком 236D, розміщеним у верхньому лівому куті блока 234. Відповідно, приклад, показаний на фіг. 12A і 12B, включає в себе орієнтацію сканування, що має зворотну горизонтальну орієнтацію, так що виконання сканування для блока 234 включає горизонтальне сканування коефіцієнтів перетворення кожного з множини субблоків 236 в порядку сканування коефіцієнтів справа наліво і знизу вверх в межах кожного з множини 25 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 субблоків 236 і горизонтальне сканування через кожний з множини субблоків в порядку сканування субблоків справа наліво і знизу вверх блока 234. Для того, щоб спрощувати зворотне сканування, показане на фіг. 10A-12B, в деяких прикладах, відеокодер може спочатку ідентифікувати останній значущий коефіцієнт відповідного блока, а також останній значущий коефіцієнт кожного відповідного субблока. Іншими словами, в той час як приклади, показані на фіг. 10A-12B, загалом, ілюструють всі скановані позиції коефіцієнтів перетворення, як описано вище, відеокодер може тільки сканувати значущі коефіцієнти. Відповідно, відеокодер може визначати останній значущий коефіцієнт в межах кожного з субблоків і сканувати кожний з субблоків в порядку сканування коефіцієнтів від останнього значущого коефіцієнта кожного субблока до відносного першого значущого коефіцієнта (наприклад, DC-коефіцієнта) кожного субблока. Крім цього, відеокодер може визначати останній значущий коефіцієнт блока і сканувати субблоки в порядку сканування субблоків від останнього значущого коефіцієнта блока до відносного першого значущого коефіцієнта в блоці (наприклад, DC-коефіцієнта). Відповідно, якщо один або більше субблоків не містять значущі коефіцієнти, такі коефіцієнти перетворення і/або субблоки не можуть бути скановані. Фіг. 13 є концептуальною схемою, яка ілюструє приклад контекстно-адаптивного кодування коефіцієнтів перетворення субблока відеоданих. Наприклад, фіг. 13 ілюструє блок коефіцієнтів 240 перетворення, який розділений на множину субблоків (субблоків 4×4, показаних за допомогою більш жирної рамки), і діагонально орієнтований порядок сканування коефіцієнтів в субблоках, що проходять через позицію 244 коефіцієнта перетворення, що на даний момент кодується (суцільний блок). Приклад, показаний на фіг. 13, включає в себе оточення 246 підтримання контексту, що має чотири елементи підтримання контексту (заштриховані блоки). Відносно оточення підтримання контексту, показаного на фіг. 6, оточення 246 підтримання контексту має видалену позицію 248. Іншими словами, наприклад, контекст для кодування прапора значущості для коефіцієнта 244 перетворення, що на даний момент кодується, не включає в себе дані з видаленої позиції 248. Як відмічено вище, кожний елемент вибірки для блока відеоданих, відповідний або рівню залишкових коефіцієнтів перетворення, або інформації значущості для блока, може бути кодований з використанням оцінок імовірності для елемента вибірки, які вказують імовірність того, що елемент вибірки має дане значення (наприклад, 0 або 1). Імовірнісна модель вибирається за допомогою визначення контексту для елемента вибірки, який може бути ідентифікований за допомогою оточення підтримання контексту. Іншими словами, оточення підтримання контексту може ідентифікувати відносні позиції раніше кодованих елементів синтаксису, використовуваних для того, щоб витягувати контекст для ентропійного кодування конкретного символу або прапора, асоційованого з коефіцієнтом перетворення. Контекст, наприклад, фактичні значення елементів синтаксису, розташованих в позиціях оточення контексту, визначає імовірнісну модель. У прикладі, показаному на фіг. 6, будь-який з коефіцієнтів перетворення вздовж лінії 171 шаблона сканування може бути кодований паралельно, оскільки жодна позиція в лінії 171 сканування не включає в себе оточення підтримання контексту, яке залежить від іншої позиції в лінії 171 сканування (за умови, що ідентичне оточення підтримання контексту використовується для всіх позицій). Відповідно, лінія 171 сканування забезпечує можливість паралельного обчислення контекстів множини прапорів значущості, внаслідок цього забезпечуючи попереджувальну вибірку контексту для кодування на основі прапорів значущості. Проте, коли зигзагоподібне або діагональне сканування застосовується до відносно великих блоків (наприклад, до блока, показаного на фіг. 6), декілька коефіцієнтів можуть вибиратися одночасно, внаслідок цього збільшуючи навантаження в апаратній реалізації. Іншими словами, коефіцієнти перетворення, які обробляються до і після коефіцієнта перетворення, що в даний момент кодується, вздовж лінії 171 сканування, не розміщуються в стовпці або рядку, ідентичному стовпцю або рядку коефіцієнта перетворення, що в даний момент кодується. Традиційно, коефіцієнти перетворення упорядковуються і зберігаються за допомогою стовпця і рядка. Відповідно, щоб мати можливість витягувати суміжні дані, декілька діагональних ліній коефіцієнтів перетворення, можливо, повинні бути оброблені. У деяких випадках, програмні реалізації з одним потоком інструкцій і декількома потоками даних (SIMD) можуть стикатися з аналогічними проблемами при паралелізації цих великих сканувань. Введення локальності субблоків може допомагати полегшувати цю проблему. Іншими словами, менші субблоки можуть забезпечувати можливість більш ефективного витягання даних. Хоч розділення блока коефіцієнтів перетворення на субблоки може допомагати полегшувати проблему, описану вище, субблоки також можуть створювати залежність від 26 UA 110655 C2 5 10 15 20 25 30 35 40 45 50 55 60 контексту в субблоках (наприклад, при ентропійному кодуванні з використанням контексту). Іншими словами, оточення підтримання контексту для деяких позицій в субблоці може основуватися на інших позиціях в субблоці. Як приклад з метою ілюстрації і як показано на фіг. 13, при скануванні в субблоках з використанням зигзагоподібного або прямого діагонального порядку сканування коефіцієнтів, оточення підтримання контексту для першої позиції коефіцієнта перетворення (тобто позиції 244, що в даний момент кодується у верхньому лівому куті блока) типово може включати в себе позицію безпосередньо нижче позиції 244, що в даний момент кодується (наприклад, з використанням оточення підтримання контексту з п'яти позицій, показаного на фіг. 6). Проте, ця залежність може накладати небажану затримку при ентропійному кодуванні. Іншими словами, коефіцієнт перетворення субблока, який розміщується безпосередньо перед позицією 244, що в даний момент кодується, ймовірно, повинен бути кодований, щоб витягувати контекст для позиції, що в даний момент кодується. Для того, щоб не допускати цієї залежності і за рахунок цього підвищувати паралелізацію, аспекти цього розкриття суті стосуються модифікації позицій, з яких контекст витягується в субблоках, тобто оточення підтримання контексту для позицій в субблоках. Згідно з аспектами цього розкриття суті, одна або більше позицій можуть видалятися з оточення підтримання контексту для певних позицій в субблоках. Іншими словами, в прикладі, показаному на фіг. 13, відеокодер може видаляти видалену позицію 248 з оточення підтримання контексту при кодуванні поточної позиції 244, внаслідок цього надаючи зменшене оточення підтримання контексту. Видалена позиція 248 розміщується безпосередньо перед поточною позицією 244 в порядку сканування коефіцієнтів. За допомогою невиконання витягання даних, асоційованих з видаленою позицією 248 в ході кодування, виключається залежність, описана вище. Відповідно, відеокодер може кодувати як поточну позицію 244, так і видалену позицію 248 паралельно (наприклад, контекст може бути попереджувально вибраний для декількох позицій в субблоці). Методика видалення оточення підтримання контексту, показана і описана відносно фіг. 13, може бути розширена з двох позицій до трьох або більше позицій, залежно від числа коефіцієнтів перетворення, які скануються і кодуються паралельно. Іншими словами, наприклад, якщо три коефіцієнти перетворення кодуються паралельно, відеокодер може видаляти видалену позицію 248, а також позицію безпосередньо перед видаленою позицією в порядку сканування (наприклад, позицію безпосередньо справа від поточної позиції 244). У деяких прикладах, щоб виконувати аспекти цього розкриття суті, відеокодер може витягувати позицію в порядку сканування коефіцієнта з урахуванням позиції на основі блоків коефіцієнта. Один процес, який може бути використаний для того, щоб визначати позицію, наводиться нижче (наприклад, в С-коді для випадку субблока 8×8 і діагонального сканування): UInt uiScanPosLast=0; UInt sWidth=uiWidth>>3; UInt sX=uiPosLastX>>3; UInt sY=uiPosLastY>>3; UInt uiDs=sX+sY; if(uiDs>1); } else{ UInt uiDI=((sWidth-1)1)+sX } uiPosLastX-=sX
ДивитисяДодаткова інформація
Назва патенту англійськоюCoefficient scanning in video coding
Автори англійськоюJoshi, Rajan Laxman, Sole Rojals, Joel, Karczewicz, Marta, Zheng, Yunfei, Wang, Xianglin
Автори російськоюДжоши Раджан Лаксман, Соле Рохальс Хоель, Карчевич Марта, Чжен Юньфей, Ван Сянлинь
МПК / Мітки
МПК: H04N 7/00
Мітки: кодуванні, коефіцієнтів, сканування, відео
Код посилання
<a href="https://ua.patents.su/54-110655-skanuvannya-koeficiehntiv-pri-koduvanni-video.html" target="_blank" rel="follow" title="База патентів України">Сканування коефіцієнтів при кодуванні відео</a>