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

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

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

Автори: Чіень Вей-Цзюн, Карчєвіч Марта, Го Лівей

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

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

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

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

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

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

кодування двійкового ланцюжка з використанням контекстно-адаптивного двійкового арифметичного кодування (САВАС) на основі, щонайменше частково, визначеного контексту.

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

ctx_index = (n>>log2(T))+15,

де n - двійковий індекс, а Т - розмір блока перетворення.

3. Спосіб за п. 1, в якому контекст призначається останньому двійковому індексу блока 16×16 перетворення і останньому двійковому індексу блока 32×32 перетворення.

4. Спосіб за п. 3, в якому другий контекст призначається суміжним двійковим індексам блока 16×16 перетворення.

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

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

кодування другого двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, оновленого контексту.

6. Спосіб декодування коефіцієнтів перетворення, який містить:

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

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

декодування закодованого двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, визначеного контексту.

7. Спосіб за п. 6, в якому контекст призначається кожному з щонайменше двох двійкових індексів відповідно до індексу контексту (ctx_index), визначеного функцією:

ctx_index = (n>>log2(T))+15,

де n - двійковий індекс, а Т - розмір блока перетворення.

8. Спосіб за п. 6, в якому контекст призначається останньому двійковому індексу блока 16×16 перетворення та останньому двійковому індексу блока 32×32 перетворення.

9. Спосіб за п. 8, в якому другий контекст призначається суміжним двійковим індексам блока 16×16 перетворення.

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

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

декодування другого закодованого двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, оновленого контексту.

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

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

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

засіб кодування двійкового ланцюжка з використанням контекстно-адаптивного двійкового арифметичного кодування (САВАС) на основі, щонайменше частково, визначеного контексту.

12. Пристрій за п. 11, в якому контекст призначається кожному з щонайменше двох двійкових індексів відповідно до індексу контексту (ctx_index), визначеного функцією:

ctx_index = (n>>log2(T))+15,

де n - двійковий індекс, а Т - розмір блока перетворення.

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

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

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

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

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

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

засіб декодування закодованого двійкового ланцюжка з використанням СABAC на основі щонайменше частково визначеного контексту.

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

ctx_index = (n>>log2(T))+15,

де n - двійковий індекс, а Т - розмір блока перетворення.

16. Пристрій за п. 14, в якому декодування закодованого двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, визначеного контексту, включає в себе оновлення контексту на основі величини закодованого двійкового ланцюжка, і в якому блок перетворення є першим блоком перетворення; і який додатково містить:

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

засіб декодування другого закодованого двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, оновленого контексту.

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

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

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

кодувати двійковий ланцюжок з використанням контекстно-адаптивного двійкового арифметичного кодування (САВАС) на основі, щонайменше частково, визначеного контексту.

18. Пристрій за п. 17, в якому контекст призначається кожному з щонайменше двох двійкових індексів відповідно до індексу контексту (ctx_index), визначеного функцією:

ctx_index = (n>>log2(T))+15,

де n - двійковий індекс, а Т - розмір блока перетворення.

19. Пристрій за п. 17, в якому контекст призначається останньому двійковому індексу блока 16×16 перетворення і останньому двійковому індексу блока 32×32 перетворення.

20. Пристрій за п. 19, в якому другий контекст призначається суміжним двійковим індексам блока 16×16 перетворення.

21. Пристрій за п. 17, в якому кодування двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, визначеного контексту, включає в себе оновлення контексту на основі величини двійкового ланцюжка, і в якому блок перетворення є першим блоком перетворення; і в якому відеокодер додатково виконаний з можливістю:

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

кодувати другий двійковий ланцюжок з використанням САВАС на основі, щонайменше частково, оновленого контексту.

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

одержувати закодований двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині блока перетворення коефіцієнтів перетворення, причому закодований двійковий ланцюжок закодований з використанням контекстно-адаптивного двійкового арифметичного кодування (САВАС);

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

декодувати закодований двійковий ланцюжок з використанням САВАС на основі, щонайменше частково, визначеного контексту.

23. Пристрій за п. 22, в якому контекст призначається кожному з щонайменше двох двійкових індексів відповідно до індексу контексту (ctx_index), визначеного функцією:

ctx_index = (n>>log2(T))+15,

де n - двійковий індекс, а Т - розмір блока перетворення.

24. Пристрій за п. 22, в якому контекст призначається останньому двійковому індексу блока 16×16 перетворення та останньому двійковому індексу блока 32×32 перетворення.

25. Пристрій за п. 24, в якому другий контекст призначається суміжним двійковим індексам блока 16×16 перетворення.

26. Пристрій за п. 22, в якому декодування закодованого двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, визначеного контексту, включає в себе оновлення контексту на основі величини закодованого двійкового ланцюжка, і в якому блок перетворення є першим блоком перетворення; і в якому відеодекодер додатково виконаний з можливістю:

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

декодувати другий закодований двійковий ланцюжок з використанням САВАС на основі, щонайменше частково, оновленого контексту.

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

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

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

кодувати двійковий ланцюжок з використанням контекстно-адаптивного двійкового арифметичного кодування (САВАС) на основі, щонайменше частково, визначеного контексту.

28. Комп'ютерно-зчитуваний носій даних за п. 27, причому контекст призначається кожному з щонайменше двох двійкових індексів відповідно до індексу контексту (ctx_index), визначеного функцією:

ctx_index = (n>>log2(T))+15,

де n - двійковий індекс, а Т - розмір блока перетворення.

29. Комп'ютерно-зчитуваний носій даних за п. 27, причому контекст призначається останньому двійковому індексу блока 16×16 перетворення і останньому двійковому індексу блока 32×32 перетворення.

30. Комп'ютерно-зчитуваний носій даних за п. 29, причому другий контекст призначається суміжним двійковим індексам блока 16×16 перетворення.

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

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

кодувати другий двійковий ланцюжок з використанням САВАС на основі, щонайменше частково, оновленого контексту.

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

одержувати закодований двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині блока перетворення коефіцієнтів перетворення, причому закодований двійковий ланцюжок закодований з використанням контекстно-адаптивного двійкового арифметичного кодування (САВАС);

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

декодувати закодований двійковий ланцюжок з використанням САВАС на основі, щонайменше частково, визначеного контексту.

33. Комп'ютерно-зчитуваний носій даних за п. 32, причому контекст призначається кожному з щонайменше двох двійкових індексів відповідно до індексу контексту (ctx_index), визначеного функцією:

ctx_index = (n>>log2(T))+15,

де n - двійковий індекс, а Т - розмір блока перетворення.

34. Комп'ютерно-зчитуваний носій даних за п. 32, причому контекст призначається останньому двійковому індексу блока 16×16 перетворення і останньому двійковому індексу блока 32×32 перетворення.

35. Комп'ютерно-зчитуваний носій даних за п. 34, причому другий контекст призначається суміжним двійковим індексам блока 16×16 перетворення.

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

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

декодувати другий закодований двійковий ланцюжок з використанням САВАС на основі, щонайменше частково, оновленого контексту.

Текст

Реферат: Відеокодер виконаний з можливістю кодувати двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині відеоблока. Відеодекодер виконаний з можливістю декодувати закодований двійковий ланцюжок. Ланцюжок може бути закодований з використанням контекстно-адаптивного двійкового арифметичного кодування (CABAC). Двійковим індексам двійкового ланцюжка може бути призначений контекст. Контекст може бути визначений відповідно до функції відображення. Контекст може бути призначений одному або UA 109505 C2 (12) UA 109505 C2 декільком двійковим індексам, причому кожний індекс зв'язаний з іншим розміром блока. Останній двійковий індекс відеоблока 16×16 може мати загальний контекст з останнім двійковим індексом відеоблока 32×32. UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 ГАЛУЗЬ ТЕХНІКИ, ДО ЯКОЇ НАЛЕЖИТЬ ВИНАХІД Даний винахід належить до кодування відеосигналу і, більш конкретно, до способів кодування коефіцієнтів перетворення. РІВЕНЬ ТЕХНІКИ Можливості цифрового відео можуть бути включені в широкий ряд пристроїв, включаючи цифрові телевізори, цифрові системи прямої широкомовної передачі, системи бездротової широкомовної передачі, персональні цифрові помічники (PDA), портативні або настільні комп'ютери, планшетні комп'ютери, пристрої для читання електронних книг, цифрові фотоапарати, цифрові записуючі пристрої, цифрові медіаплеєри, пристрої відеоігор, ігрові відеоприставки, стільникові або супутникові радіотелефони, так звані "смартфони", пристрої відеотелеконференції, пристрої потокового відео і тому подібне. Цифрове відео пристрою здійснює способи стиснення відеосигналу, як, наприклад, описані в стандартах MPEG-2, MPEG4, ITU-T H.263, ITU-T H.264/MPEG-4, частина 10, Вдосконалене Кодування (AVC) Відеосигналу, стандарті Високоефективне Кодування (HEVC) Відеосигналу, що в цей час знаходиться в розробці, і розширеннях цих стандартів. Відеопристрої можуть передавати, приймати, кодувати, декодувати і/або зберігати цифрову відеоінформацію більш ефективно, здійснюючи такі способи стиснення відеосигналу. Способи стиснення відеосигналу виконують просторове (всередині зображення) прогнозування і/або часове (між зображеннями) прогнозування для скорочення або усунення надмірності, властивої для послідовностей відеокадрів. Для кодування відеосигналів на основі блоків, відеослайс (тобто, відеокадр або частина відеокадру) може бути розділений на відеоблоки, які також називають деревоподібними блоками, елементами (CU) кодування і/або вузлами кодування. Відеоблоки в слайсі (I) зображення, підданому інтра-кодуванню, кодуються з використанням просторового прогнозування по відношенню до опорних вибірок у сусідніх блоках у тому самому зображенні. Відеоблоки в слайсі зображення (Р або В), підданому інтеркодуванню, можуть використовувати просторове прогнозування по відношенню до опорних вибірок у сусідніх блоках в тому самому зображенні або часове прогнозування по відношенню до опорних вибірок в інших опорних зображеннях. Зображення називаються кадрами, і опорні зображення називаються опорними кадрами. Просторове або часове прогнозування призводить до прогнозуючого блока для блока, який підлягає кодуванню. Залишкові дані являють собою різниці пікселів між вихідним блоком, який підлягає кодуванню, і прогнозуючим блоком. Блок, підданий інтер-кодуванню, кодується відповідно до вектора руху, який вказує на блок опорних вибірок, що формують прогнозуючий блок, і залишковими даними, які вказують різницю між закодованим блоком і прогнозуючим блоком. Блок, підданий інтра-кодуванню, кодується відповідно до режиму інтра-кодування і залишкових даних. Для додаткового стиснення залишкові дані можуть бути перетворені з ділянки пікселів у ділянку перетворення, що призведе до залишкових коефіцієнтів перетворення, які потім можуть бути квантовані. Квантовані коефіцієнти перетворення, спочатку розміщені в двомірному масиві, можуть бути скановані в конкретному порядку для виробництва одномірного вектора коефіцієнтів перетворення, і ентропійне кодування може бути застосоване для досягнення ще більшого стиснення. СУТЬ ВИНАХОДУ Загалом, даний винахід описує способи кодування відеоданих. Більш конкретно, даний винахід описує способи кодування коефіцієнтів перетворення. В одному прикладі даного винаходу, спосіб кодування коефіцієнтів перетворення містить одержання двійкового ланцюжка, який вказує положення останнього значущого коефіцієнта всередині блока коефіцієнтів перетворення, зв'язаного з відеоблоком; визначення контексту для двійкового індексу двійкового ланцюжка на основі розміру відеоблока, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами відеоблока; і кодування двійкового ланцюжка з використанням контекстно-адаптивного двійкового арифметичного кодування (САВАС) на основі щонайменше, частково, визначеного контексту. В іншому прикладі даного винаходу, спосіб декодування коефіцієнтів перетворення містить одержання закодованого двійкового ланцюжка, який вказує положення останнього значущого коефіцієнта всередині блока коефіцієнтів перетворення, зв'язаного з відеоблоком, причому закодований двійковий ланцюжок закодований з використанням САВАС; визначення контексту для двійкового індексу закодованого двійкового ланцюжка на основі розміру відеоблока, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами відеоблока; і декодування 1 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 60 закодованого двійкового ланцюжка з використанням САВАС на основі щонайменше, частково, визначеного контексту. В іншому прикладі даного винаходу, пристрій, виконаний з можливістю кодувати коефіцієнти перетворення в процесі кодування відеосигналу, містить засіб одержання двійкового ланцюжка, який вказує положення останнього значущого коефіцієнта всередині блока коефіцієнтів перетворення, зв'язаного з відеоблоком; засіб визначення контексту для двійкового індексу двійкового ланцюжка на основі розміру відеоблока, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами відеоблока; і засіб кодування двійкового ланцюжка з використанням САВАС на основі щонайменше, частково, визначеного контексту. В іншому прикладі даного винаходу, пристрій, виконаний з можливістю декодувати коефіцієнти перетворення в процесі декодування відеосигналу, містить засіб одержання закодованого двійкового ланцюжка, який вказує положення останнього значущого коефіцієнта всередині блока коефіцієнтів перетворення, зв'язаного з відеоблоком, причому закодований двійковий ланцюжок закодований з використанням САВАС; засіб визначення контексту для двійкового індексу закодованого двійкового ланцюжка на основі розміру відеоблока, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами відеоблока; і засіб декодування закодованого двійкового ланцюжка з використанням САВАС на основі щонайменше, частково, визначеного контексту. В іншому прикладі даного винаходу, пристрій містить відеокодер, виконаний з можливістю одержувати двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині блока коефіцієнтів перетворення, зв'язаного з відеоблоком; визначати контекст для двійкового індексу двійкового ланцюжка на основі розміру відеоблока, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами відеоблока; і кодувати двійковий ланцюжок з використанням САВАС на основі щонайменше, частково, визначеного контексту. В іншому прикладі даного винаходу, пристрій містить відеодекодер, виконаний з можливістю одержувати закодований двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині блока коефіцієнтів перетворення, зв'язаного з відеоблоком, причому закодований двійковий ланцюжок закодований з використанням САВАС; визначати контекст для двійкового індексу закодованого двійкового ланцюжка на основі розміру відеоблока, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами відеоблока; і декодувати закодований двійковий ланцюжок з використанням САВАС на основі щонайменше, частково, визначеного контексту. В іншому прикладі даного винаходу, незмінюваний комп'ютерно-зчитуваний носій даних має команди, що зберігаються на ньому, які, при їх виконанні, спонукають пристрій кодування відеосигналу одержувати двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині блока коефіцієнтів перетворення, зв'язаного з відеоблоком; визначати контекст для двійкового індексу двійкового ланцюжка на основі розміру відеоблока, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами відеоблока; і кодувати двійковий ланцюжок з використанням САВАС на основі щонайменше, частково, визначеного контексту. В іншому прикладі даного винаходу, незмінюваний комп'ютерно-зчитуваний носій даних має команди, що зберігаються на ньому, які, при їх виконанні, спонукають пристрій декодування відеосигналу одержувати закодований двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині блока коефіцієнтів перетворення, зв'язаного з відеоблоком, причому закодований двійковий ланцюжок закодований з використанням САВАС; визначати контекст для двійкового індексу закодованого двійкового ланцюжка на основі розміру відеоблока, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами відеоблока; і декодувати закодований двійковий ланцюжок з використанням САВАС на основі щонайменше, частково, визначеного контексту. Деталі одного або декількох прикладів викладені в супроводжуючих кресленнях і розкритті винаходу нижче. Інші ознаки, цілі та переваги будуть очевидні з розкриття і креслень, а також з формули винаходу. КОРОТКИЙ ОПИС КРЕСЛЕНЬ Фіг. 1 є блок-схемою, що зображає приклад системи кодування і декодування відеосигналу. Фіг. 2A-2D зображають приклади порядків сканування величини коефіцієнта. 2 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 60 Фіг. 3 зображає приклад карти значущості по відношенню до блока величин коефіцієнтів. Фіг. 4 є блок-схемою, що зображає приклад відеокодера, який може здійснювати способи, описані в даному винаході. Фіг. 5 є блок-схемою, що зображає приклад ентропійного кодера, який може здійснювати способи, описані в даному винаході. Фіг. 6 є блок-схемою алгоритму, що зображає приклад кодування величини двійкового ланцюжка, що вказує положення останнього значущого коефіцієнта, відповідно до способів даного винаходу. Фіг. 7 є блок-схемою, що зображає приклад відеодекодера, який може здійснювати способи, описані в даному винаході. Фіг. 8 є блок-схемою, що зображає приклад ентропійного декодера, який може здійснювати способи, описані в даному винаході. Фіг. 9 є блок-схемою алгоритму, що зображає приклад декодування величини двійкового ланцюжка, що вказує положення останнього значущого коефіцієнта, відповідно до способів даного винаходу. ДОКЛАДНИЙ ОПИС ВИНАХОДУ Загалом, даний винахід описує способи кодування відеоданих. Більш конкретно, даний винахід описує способи кодування коефіцієнтів перетворення в процесі кодування і/або декодування відеосигналу. При кодуванні відеосигналу на основі блоків, блок коефіцієнтів перетворення може бути впорядкований в двомірну (2D) матрицю. Процес сканування може бути виконаний для перевпорядкування двомірної (2D) матриці коефіцієнтів перетворення у впорядковану одномірну (1D) матрицю, тобто вектор, коефіцієнтів перетворення. Один або декілька коефіцієнтів перетворення можуть бути використані для вказівки положення останнього значущого коефіцієнта (тобто, ненульового коефіцієнта) всередині блока коефіцієнтів перетворення на основі порядку сканування. Положення останнього значущого коефіцієнта може бути використане відеокодером для оптимізації кодування коефіцієнтів перетворення. Таким чином, бажано ефективно кодувати один або декілька синтаксичних елементів, які вказують положення останнього значущого коефіцієнта. Даний винахід описує способи кодування одного або декількох синтаксичних елементів, які вказують положення останнього значущого коефіцієнта. У деяких прикладах, всі або частина синтаксичних елементів, які вказують положення останнього значущого коефіцієнта, можуть бути ентропійно кодовані відповідно до будь-якого з наступних способів: контекстно-залежного адаптивного кодування (CAVLC) із змінною довжиною кодового слова, контекстно-залежного адаптивного двійкового арифметичного кодування (САВАС), ентропійного кодування (PIPE) з розділенням інтервалу імовірності або тому подібного. У способах ентропійного кодування, які використовують двійкові індекси (які також називають "бінами" або "індексами біна") і призначення контексту, загальне призначення контексту може бути використане для бінів для блоків (TU) перетворення різних розмірів і/або компонентів різних кольорів. Таким чином, загальне число контекстів може бути скорочене. При скороченні загального числа контекстів, відеокодер і/або відеодекодер можуть більш ефективно кодувати синтаксичні елементи, які вказують положення останнього значущого коефіцієнта, оскільки треба зберігати менше контекстів. Фіг. 1 є блок-схемою, що зображає приклад системи 10 кодування і декодування відеосигналу, яка може бути виконана з можливістю використовувати способи кодування коефіцієнтів перетворення, відповідно до прикладів даного винаходу. Як зображено на Фіг. 1, система 10 включає в себе пристрій 12 джерела, який передає закодований відеосигнал пристрою 14 призначення по каналу 16 зв'язку. Закодовані відеодані можуть також зберігатися на носії 34 даних або файловому сервері 36, і за бажанням доступ до них може бути здійснений пристроєм 14 призначення. При зберіганні на носії даних або файловому сервері, відеокодер 20 може забезпечувати закодовані відеодані іншому пристрою, як, наприклад, мережному інтерфейсу, компактному диску (CD), пристрою для запису цифрового відеодиска (DVD) або Blu-ray, або пристрою маркування засобів передачі інформації або іншим пристроям, для зберігання закодованих відеоданих на носії даних. Подібним чином, пристрій, окремий від відеодекодера 30, як, наприклад, мережний інтерфейс, зчитуючий пристрій CD або DVD, або тому подібне, може витягувати закодовані відеодані з носія даних і забезпечувати витягнуті дані відеодекодеру 30. Пристрій 12 джерела і пристрій 14 призначення можуть містити будь-який з широкого вибору пристроїв, включаючи настільні комп'ютери, ноутбуки (тобто, портативні комп'ютери), планшети, телевізійні приставки, телефонні пристрої, як, наприклад, так звані смартфони, телевізори, фотоапарати, пристрої відображення, цифрові медіаплеєри, ігрові відеоприставки і тому 3 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 60 подібне. У багатьох випадках, такі пристрої можуть бути обладнані для бездротового зв'язку. Отже, канал 16 зв'язку може містити бездротовий канал, дротовий канал або комбінацію бездротового і дротового каналів, підходящу для передачі закодованих відеоданих. Подібним чином, до файлового сервера 36 може бути здійснений доступ пристроєм 14 призначення через будь-яке стандартне з'єднання даних, включаючи інтернет-з'єднання. Це може включати в себе бездротовий канал (наприклад, з'єднання Wi-Fi), дротове з'єднання (наприклад, DSL, кабельний модем і так далі), або їх комбінацію, підходящу для доступу до закодованих відеоданих, що зберігаються на файловому сервері. Способи кодування коефіцієнтів перетворення, відповідно до прикладів даного винаходу, можуть бути застосовані до кодування відеосигналу для підтримки будь-якого з множини мультимедійних додатків, як, наприклад, широкомовні передачі через ефірне телебачення, передачі через кабельне телебачення, передачі через супутникове телебачення, передачі через потокове відео, наприклад, через інтернет, кодування цифрового відеосигналу для зберігання на носії даних, декодування цифрового відеосигналу, що зберігається на носії даних, і інші додатки. У деяких прикладах, система 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, кабельний модем, етернет, USB і так далі) або їх комбінацію, підходящу для доступу до закодованих відеоданих, що зберігаються на файловому сервері. Пристрій 14 призначення, в прикладі на Фіг. 1, включає в себе приймач 26, модем 28, відеодекодер 30 і пристрій 32 відображення. Приймач 26 пристрою 14 призначення приймає інформацію через канал 16, і модем 28 демодулює інформацію для виробництва демодульованого потоку двійкових даних для відеодекодера 30. Інформація, що передається через канал 16, може включати в себе різну синтаксичну інформацію, сформовану відеокодером 20, для використання відеодекодером 30 при декодуванні відеоданих. Такий синтаксис може також бути включений в закодовані відеодані, що зберігаються на носії 34 даних 4 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 60 або файловому сервері 36. Кожний з відеокодера 20 і відеодекодера 30 може формувати частину відповідного кодера-декодера (CODEC), який здатний кодувати або декодувати відеодані. Пристрій 32 відображення може бути інтегрований, або бути зовнішнім по відношенню до пристрою 14 призначення. У деяких прикладах, пристрій 14 призначення може включати в себе інтегрований пристрій відображення і також бути виконаний з можливістю взаємодіяти із зовнішнім пристроєм відображення. В інших прикладах, пристрій 14 призначення може бути пристроєм відображення. Загалом, пристрій 32 відображення відображає декодовані відеодані користувачу і може містити будь-який з пристроїв відображення, як, наприклад, рідкокристалічний дисплей (LCD), плазмовий дисплей, дисплей на органічних світлодіодах (OLED) або інший тип пристрою відображення. У прикладі на Фіг. 1, канал 16 зв'язку може містити бездротовий або дротовий носій зв'язку, як, наприклад, радіочастотний (RF) спектр або одна або декілька фізичних ліній передачі, або будь-яка комбінація бездротових і дротових носіїв. Канал 16 зв'язку може формувати частину пакетної мережі, як, наприклад, локальна мережа, регіональна мережа або глобальна мережа, як, наприклад, інтернет. Канал 16 зв'язку, загалом, являє собою будь-який підходящий носій зв'язку або групу різних носіїв зв'язку для передачі відеоданих від пристрою 12 джерела пристрою 14 призначення, включаючи будь-яку підходящу комбінацію дротових або бездротових носіїв. Канал 16 зв'язку може включати в себе роутери, перемикачі, базові станції або будь-яке інше обладнання, яке можна використовувати для сприяння зв'язку від пристрою 12 джерела до пристрою 14 призначення. Відеокодер 20 і відеодекодер 30 можуть функціонувати відповідно до стандарту стиснення відеосигналу, як, наприклад, стандарт високоефективного кодування (HEVC) відеосигналу, що знаходиться в цей час в розробці Спільною Кооперативною Групою (JCT-VC) з Кодування відеосигналу Експертної групи (VCEG) з Відеокодування ITU-T і Експертної групи (MPEG) з рухомого зображення ISO/IEC, і може відповідати тестовій моделі (HM) HEVC. Відеокодер 20 і відеодекодер 30 можуть функціонувати відповідно до останньої версії стандарту HEVC, яка називається "Робоча версія 5 HEVC" або "WD5", яка описана в документі JCTVC-G1103, Бросс та інші, "WD5: Робоча версія 5 Високоефективного кодування (HEVC) відеосигналу", Спільна група (JCT-VC) з відеокодування ITU-T SG16 WP3 та ISO/IEC JTC1/SC29/WG11, 7а зустріч: Женева, Швейцарія, Листопад, 2012 рік. Додатково, інша остання робоча версія HEVC, Робоча версія 7, описана в документі HCTVC-I1003, Бросс та інші, "Текстова версія 7 специфікації Високоефективного кодування (HEVC) відеосигналу", Спільна група (JCT-VC) з відеокодування ITU-T SG16 WP3 та ISO/IEC JTC1/SC29/WG11, 9а зустріч: Женева, Швейцарія, 27 квітня - 7 травня, 2012 рік. Альтернативно, відеокодер 20 і відеодекодер 30 можуть функціонувати відповідно до інших приватних або промислових стандартів, як, наприклад, стандарт ITU-T H.264, який альтернативно називається як MPEG-4, частина 10, Вдосконалене Кодування (AVC) Відеосигналу, або розширень таких стандартів. Способи даного винаходу, однак, не обмежені будь-яким конкретним стандартом кодування. Інші приклади включають в себе MPEG-2 та ITU-T H.263. Хоча це не зображене на Фіг. 1, в деяких аспектах відеокодер 20 і відеодекодер 30 можуть бути інтегровані з аудіокодером і декодером і можуть включати в себе елементи MUX-DEMUX або інші технічні засоби або програмне забезпечення для виконання кодування аудіо- і відеосигналу в загальному потоці даних або роздільних потоках даних. Якщо це застосовне, в деяких прикладах, елементи MUX-DEMUX можуть відповідати протоколу мультиплексування ITU H.223 або іншим протоколам, як, наприклад, протокол (UDP) користувацьких дейтаграм. Відеокодер 20 і відеодекодер 30 можуть бути здійснені як будь-який з підходящих схем кодування, як, наприклад, один або декілька мікропроцесорів, цифрові сигнальні елементи (DSP) обробки, спеціалізовані інтегральні схеми (ASIC), програмовані користувачем вентильні матриці (FPGA), дискретна логіка, програмне забезпечення, технічні засоби, програмно-апаратні засоби або будь-які їх комбінації. Коли способи здійснені частково в програмному забезпеченні, пристрій може зберігати команди для програмного забезпечення на підходящому незмінюваному комп'ютерно-зчитуваному носії і виконувати команди в технічних засобах з використанням одного або декількох процесорів для виконання способів даного винаходу. Кожний з відеокодера 20 і відеодекодера 30 може бути включений в один або декілька кодерів і декодерів, будь-який з яких може бути інтегрований як частина комбінованого кодера-декодера (CODEC) у відповідному пристрої. Відеокодер 20 може здійснювати будь-які або всі способи даного винаходу для кодування коефіцієнтів перетворення в процесі відеокодування. Подібним чином, відеодекодер 30 може здійснювати будь-який або всі способи кодування коефіцієнтів перетворення в процесі 5 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 60 відеокодування. Відеокодер, як описано в даному винаході, може відноситися до відеокодера або відеодекодера. Подібним чином, елемент кодування відеосигналу може відноситися до відеокодера або відеодекодера. Подібним чином, кодування відеосигналу може відноситися до кодування відеосигналу або декодування відеосигналу. Відеокодер 20 і відеодекодер 30 на Фіг. 1 представляють приклади відеокодерів, виконаних з можливістю одержувати двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині відеоблока, визначати контекст для двійкового індексу двійкового ланцюжка на основі розміру відеоблока, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами відеоблока; і кодувати двійковий ланцюжок з використанням контекстно-адаптивного двійкового арифметичного кодування (САВАС) на основі щонайменше, частково, визначеного контексту. Для кодування відеосигналу відповідно до стандарту HEVC, який знаходиться в цей час в розробці, відеокадр може бути розділений на елементи кодування. Елемент (CU) кодування, загалом, відноситься до ділянки зображення, яка служить як базовий елемент, до якого застосовуються різні інструменти кодування для стиснення відеосигналу. CU, як правило, має компонент яскравості, що позначається як Y, і два компоненти кольоровості, що позначаються як U та V. Залежно від формату відеодискретизації, розмір компонентів U та V, з точки зору числа вибірок, може бути тим самим або відрізнятися від розміру компонента Y. CU, як правило, квадратний, і його можна розглядати як схожий на так званий макроблок, наприклад, за іншими стандартами кодування відеосигналу, як, наприклад, ITU-T H.264. Кодування відповідно до деяких з аспектів стандарту HEVC, що розвивається, які пропонуються, буде описане в даній заявці для цілей ілюстрації. Однак способи, описані в даному винаході, можуть бути використані для інших процесів кодування відеосигналу, як, наприклад, визначені відповідно до Н.264 або інших стандартів або приватних процесів кодування відеосигналу. Зусилля із стандартизації HEVC основані на моделі пристрою кодування відеосигналу, яка називається тестова модель (НМ) HEVC. НМ передбачає декілька здатностей пристроїв кодування відеосигналу в порівнянні з іншими пристроями відповідно, наприклад, до ITU-T H.264/AVC. Наприклад, в той час як Н.264 забезпечує дев'ять режимів кодування з інтра-прогнозуванням, НМ забезпечує тридцять чотири режиму кодування з інтра-прогнозуванням. Відеопослідовність звичайно включає в себе послідовність відеокадрів або зображень. Група (GOP) зображень, загалом, містить послідовність одного або декількох відеозображень. GOP може включати в себе синтаксичні дані в заголовку GOP, заголовку одного або декількох зображень або ще де-небудь, які описують число зображень, включених в GOP. Кожний слайс зображення може включати в себе синтаксичні дані слайса, які описують режим кодування для відповідного слайса. Відеокодер 20, як правило, функціонує на відеоблоках всередині окремих відеослайсів, щоб кодувати відеодані. Відеоблок може включати в себе один або декілька TU або PU, які відповідають вузлу кодування всередині CU. Відеоблоки можуть мати фіксовані або змінювані розміри і можуть відрізнятися в розмірах відповідно до конкретного стандарту кодування. Відповідно до НМ, CU може включати в себе один або декілька елементів (PU) прогнозування і/або один або декілька елементів (TU) перетворення. Синтаксичні дані всередині двійкового потоку даних можуть визначати найбільший елемент (LCU) кодування, який є найбільшим CU по відношенню до числа пікселів. Загалом, CU призначений для того самого, що і макроблок Н.264, за винятком того, що CU не має відмінності в розмірі. Таким чином, CU може бути розділений на суб-CU. Загалом, посилання в даному винаході на CU можуть відноситися до найбільшого елемента кодування зображення або суб-CU LCU. LCU може бути розділений на суб-CU, і кожний суб-CU може бути додатково розділений на суб-CU. Синтаксичні дані для двійкового потоку даних можуть визначати максимальне число разів, яке може бути розділений LCU, що називається глибиною CU. Відповідно, потік двійкових даних може також визначати найменший елемент (SCU) кодування. Даний винахід також використовує термін "блок" або "частина" для посилання на будь-якому з CU, PU або TU. Загалом, "частина" може відноситися до будь-якого з підгрупи відеокадру. LCU може бути зв'язаний зі структурою даних дерева квадратів. Загалом, структура даних дерева квадратів включає в себе один вузол на CU, де кореневий вузол відповідає LCU. Якщо CU розділений на чотири суб-CU, то вузол, що відповідає CU, включає в себе чотири кінцевих вузли, кожний з яких відповідає одному з суб-CU. Кожний вузол структури даних дерева квадратів може забезпечувати синтаксичні дані відповідному CU. Наприклад, вузол в дереві квадратів може включати в себе прапор розділення, який вказує, чи розділений CU, що відповідає вузлу, на суб-CU. Синтаксичні елементи для CU можуть бути визначені рекурсивно і 6 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 60 можуть залежати від того, чи розділений CU на суб-CU. Якщо CU додатково не розділений, то він називається кінцевим CU. У даному винаході, 4 суб-CU кінцевого CU будуть також називатися кінцевими CU, хоча при цьому немає явного розділення вихідного кінцевого CU. Наприклад, якщо CU розміру 16 × 16 не розділений додатково, то чотири суб-CU 8 × 8 також будуть називатися кінцевими CU, хоча CU 16 × 16 ніколи не був розділений. Більше того, TU кінцевих CU також можуть бути зв'язані з відповідними структурами даних дерева квадратів. Тобто, кінцевий CU може включати в себе дерево квадратів, яке вказує, як розділений кінцевий CU на TU. Даний винахід посилається на дерево квадратів, яке вказує, як LCU розділений як дерево квадратів CU, і дерево квадратів, яке вказує, як кінцевий CU розділений на TU як дерево квадратів TU. Кореневий вузол дерева квадратів TU, загалом, відповідає кінцевому CU, в той час як кореневий вузол дерева квадратів CU, загалом, відповідає LCU. TU дерева квадратів TU, які не розділені, називаються кінцевими TU. Кінцевий CU може включати в себе один або декілька елементів (PU) прогнозування. Загалом, PU являє собою всі або частину відповідних CU і може включати в себе дані для витягання опорної вибірки для PU. Наприклад, коли PU закодований в інтре-режимі, PU може включати дані, що визначають вектор руху для PU. Дані, що визначають вектор руху, можуть описувати, наприклад, горизонтальний компонент вектора руху, вертикальний компонент вектора руху, розрізнення для вектора руху (наприклад, з точністю до однієї четвертої пікселя або однієї восьмої пікселя), опорний кадр, на який вказує вектор руху, і/або опорний список (наприклад, список 0) для вектора руху. Дані для кінцевого CU, що визначають PU, також можуть описувати, наприклад, розділення CU на один або декілька PU. Режими розділення можуть відрізнятися залежно від того, чи є CU незакодованим, закодованим в режимі інтрапрогнозування або закодованим в режимі інтер-прогнозування. Для інтра-кодування, PU може розглядатися так само, як і кінцевий елемент перетворення, описаний нижче. Як приклад, НМ підтримує прогнозування в різних розмірах PU. Припускаючи, що розмір конкретного CU дорівнює 2N2N, НМ підтримує інтра-прогнозування в розмірах PU 2N2N або NN, і інтер-прогнозування в симетричних розмірах PU 2N2N, 2NN, N2N або NN. НМ також підтримує асиметричне розділення для інтер-прогнозування в розмірах PU 2NnU, 2NnD, nL2N та nR2N. В асиметричному розділенні, один напрямок CU не розділяється, в той час як інший напрямок розділяється на 25 % та 75 %. Частина CU, що відповідає 25 % розділенню, вказується "n", за яким йде вказівка "Вгору", "Вниз", "Ліворуч" або "Праворуч". Таким чином, наприклад, "2NnU" відноситься до 2N2N CU, який розділений горизонтально з 2N0,5N PU зверху і 2N1,5N PU знизу. У даному винаході, "NN" і "N на N" можуть бути використані взаємозамінно для посилання на розміри пікселів відеоблока з урахуванням вертикальних і горизонтальних розмірів, наприклад, 1616 пікселів або 16 на 16 пікселів. Загалом, блок 1616 буде мати 16 пікселів у вертикальному напрямку (у=16) і 16 пікселів у горизонтальному напрямку (х=16). Подібним чином, блок NN буде мати N пікселів у вертикальному напрямку і N пікселів у горизонтальному напрямку, де N являє собою ненегативну цілу величину. Пікселі в блоці можуть бути впорядковані в рядки і стовпці. Більше того, блоки необов'язково повинні мати однакове число пікселів у горизонтальному напрямку і вертикальному напрямку. Наприклад, блоки можуть містити NM пікселів, де М необов'язково дорівнює N. Для кодування блока (наприклад, елемента прогнозування відеоданих), спершу витягується предиктор для блока. Предиктор, також який називається прогнозуючим блоком, може бути витягнутий або за допомогою інтра-прогнозування (I) (тобто, просторового прогнозування), або інтер-прогнозування (Р або В) (тобто, часового прогнозування). Отже, деякі елементи прогнозування можуть бути закодовані в інтра-режимі (I) з використанням просторового прогнозування по відношенню до опорних вибірок у сусідніх опорних блоках у тому самому кадрі (або слайсі), і інші елементи прогнозування можуть бути закодовані однонаправлено у інтер-режимі (Р) або закодовані двонаправлено в інтер-режимі (В) по відношенню до блоків опорних вибірок в інших раніше закодованих кадрах (або слайсах). У кожному випадку, опорні вибірки можуть бути використані для формування прогнозуючого блока для блока, який підлягає кодуванню. Після ідентифікації прогнозуючого блока, визначається різниця між вихідним блоком відеоданих і його прогнозуючим блоком. Ця різниця може називатися залишковими даними прогнозування і вказувати різниці пікселів між величинами пікселів у блоці, який підлягає кодуванню, і величинами пікселів у блоці, вибраному для представлення закодованого блока. Для досягнення кращого стиснення, залишкові дані прогнозування можуть бути перетворені, наприклад, з використанням дискретного косинусного перетворення (DCT), цілочисельного перетворення, перетворення Карунена-Лоєва (K-L) або іншого перетворення. 7 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 60 Залишкові дані в блоці перетворення, як, наприклад, TU, можуть бути впорядковані в двомірну (2D) матрицю величин різниці пікселів, що знаходиться в просторовій, піксельній ділянці. Перетворення перетворює залишкові величини пікселів у двомірну матрицю коефіцієнтів перетворення в ділянці перетворення, як, наприклад, ділянка частот. Для додаткового стиснення, коефіцієнти перетворення можуть бути квантовані до ентропійного кодування. Елемент ентропійного кодування потім застосовує ентропійне кодування, як, наприклад, CAVLC, CABAC, PIPE або тому подібне, до квантованих коефіцієнтів перетворення. Для ентропійного кодування блока коефіцієнтів перетворення, процес сканування звичайно виконується так, щоб двомірна (2D) матриця квантованих коефіцієнтів перетворення в блоці була перевпорядкована, відповідно до конкретного порядку сканування, у впорядковану, одномірну (1D) матрицю, тобто вектор, коефіцієнтів перетворення. Потім до вектора коефіцієнтів перетворення застосовується ентропійне кодування. Сканування квантованих коефіцієнтів перетворення в елементі перетворення перетворює в послідовну форму 2D матрицю коефіцієнтів перетворення для ентропійного кодера. Карта значущості може бути сформована для вказівки положень значущих (тобто, ненульових) коефіцієнтів. Сканування може бути застосоване для сканування рівнів значущих (тобто, ненульових) коефіцієнтів і/або кодування знаків значущих коефіцієнтів. У HEVC, інформація про положення значущих коефіцієнтів перетворення (наприклад, карта значущості) спершу кодується для TU, щоб вказати місцеположення останнього ненульового коефіцієнта в порядку сканування. Карта значущості та інформація рівня (абсолютні величини і знаки коефіцієнтів) кодуються для кожного коефіцієнта в оберненому порядку сканування. Услід за будь-якими перетвореннями для вироблення коефіцієнтів перетворення, відеокодер 20 може виконувати квантування коефіцієнтів перетворення. Квантування, загалом, відноситься до процесу, в якому коефіцієнти перетворення квантуються для можливого скорочення кількості даних, що використовуються для представлення коефіцієнтів, враховуючи додаткове стиснення. Процес квантування може скоротити бітову глибину, зв'язану з деякими або всіма коефіцієнтами. Наприклад, величина n-біт може бути округлена до величини m-біт під час квантування, де n більше, ніж m. В деяких прикладах, відеокодер 20 може використовувати заздалегідь визначений порядок сканування для сканування квантованих коефіцієнтів перетворення для вироблення впорядкованого вектора, який може бути ентропійно закодований. В інших прикладах, відеокодер 20 може виконувати адаптивне сканування. Фіг. 2А-2D зображають деякі різні приклади порядків сканування. Інші визначені порядки сканування або адаптивні (змінювані) порядки сканування можуть також бути використані. Фіг. 2А зображає зигзагоподібний порядок сканування, Фіг. 2В зображає горизонтальний порядок сканування, Фіг. 2С зображає вертикальний порядок сканування, Фіг. 2D зображає діагональний порядок сканування. Комбінації цих порядків сканування можуть також бути визначені і використані. У деяких прикладах, способи даного винаходу можуть бути конкретно застосовні під час кодування так званої карти значущості в процесі відеокодування. Один або декілька синтаксичних елементів можуть бути визначені для вказівки положення останнього значущого коефіцієнта (тобто, ненульового коефіцієнта), яке може залежати від порядку сканування, зв'язаного з блоком коефіцієнтів. Наприклад, один синтаксичний елемент може визначати положення в стовпці останнього значущого коефіцієнта всередині блока величин коефіцієнтів, а інший синтаксичний елемент може визначати положення в рядку останнього значущого коефіцієнта всередині блока величин коефіцієнтів. Фіг. 3 зображає приклад карти значущості по відношенню до блока величин коефіцієнтів. Карта значущості зображена праворуч, на ній однобітові прапори ідентифікують ті коефіцієнти у відеоблоці зліва, які значущі, тобто ненульові. В одному прикладі, з урахуванням групи значущих коефіцієнтів (наприклад, визначеною картою значущості) і порядку сканування, може бути визначене положення останнього значущого коефіцієнта. У стандарті HEVC, що розвивається, коефіцієнти перетворення можуть бути згруповані у фрагмент. Фрагмент може містити весь TU або, в деяких випадках, TU можуть бути поділені на більш дрібні фрагменти. Карта значущості та інформація рівня (абсолютна величина і знак) кодуються для кожного коефіцієнта у фрагменті. В одному прикладі, фрагмент складається з 16 послідовних коефіцієнтів в оберненому порядку сканування (наприклад, діагональному, вертикальному або горизонтальному) для TU 44 та TU 88. Для TU 1616 та 3232 коефіцієнти всередині субблока 44 розглядаються як фрагмент. Синтаксичні елементи кодуються і сигналізуються для представлення інформації рівня коефіцієнтів всередині фрагмента. В одному прикладі, всі символи кодуються в оберненому порядку сканування. Способи даного винаходу можуть поліпшити кодування синтаксичного елемента, що використовується для визначення положення останнього значущого коефіцієнта блока коефіцієнтів. 8 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 60 Як приклад, способи даного винаходу можуть бути використані для кодування положення останнього значущого коефіцієнта блока коефіцієнтів (наприклад, TU або фрагмента TU). Далі, після кодування положення останнього значущого коефіцієнта, інформація рівня і знаку, зв'язана з коефіцієнтами перетворення, може бути закодована. Кодування інформації рівня і знаку може оброблятися відповідно до підходу в п'ять проходів шляхом кодування наступних символів в оберненому порядку сканування (наприклад, для TU або фрагмента TU): significant_coeff_flag (аббр. sigMapFlag): цей прапор може вказувати значущість кожного коефіцієнта в фрагменті. Коефіцієнт з величиною один або більше може бути розглянутий як значущий. coeff_abs_level_greater1_flag (аббр. gr1Flag): цей прапор може вказувати, чи є абсолютна величина коефіцієнта більше, ніж один для ненульових коефіцієнтів (тобто, коефіцієнтів з sigMapFlag 1). coeff_abs_level_greater2_flag (аббр. gr2Flag): цей прапор може вказувати, чи є абсолютна величина коефіцієнта більше, ніж два для коефіцієнтів з абсолютною величиною більше, ніж один (тобто, коефіцієнтів з gr1Flag 1). coeff_sign_flag (аббр. signFlag): цей прапор може вказувати інформацію знаку для ненульових коефіцієнтів. Наприклад, нуль для цього прапора може вказувати позитивний знак, а 1 може вказувати негативний знак. coeff_abs_level_remain (аббр. levelRem): цей синтаксичний елемент може вказувати абсолютну величину рівня коефіцієнта перетворення, що залишилася. Для цього синтаксичного елемента, абсолютна величина коефіцієнта - х, може бути закодована як (abs(level)-х) для кожного коефіцієнта з амплітудою більше, ніж х. Величина х залежить від присутності gr1Flag та gr2Flag. Якщо gr2Flag був закодований, то величина levelRem обчислюється як (abs(level)-2). Якщо gr2Flag не був закодований, але величина gr1Flag була закодована, то величина levelRem обчислюється як (abs(level)-1). Таким чином, можуть бути закодовані коефіцієнти перетворення для TU або частини (наприклад, фрагмента) TU. У будь-якому випадку, способи даного винаходу, які стосуються кодування синтаксичного елемента, що використовується для визначення положення останнього значущого коефіцієнта блока коефіцієнтів, можуть бути також використані з іншими типами способів, передусім, кодування інформації рівня і знаку коефіцієнтів перетворення. Підхід в п'ять проходів для кодування значущості, інформації рівня і знаку є усього лише одним прикладом способу, який може бути використаний услід за кодуванням положення останнього значущого коефіцієнта блока, як викладено в даному винаході. Після сканування квантованих коефіцієнтів перетворення для формування одномірного вектора, відеокодер 20 може ентропійно кодувати одномірний вектор коефіцієнтів перетворення. Відеокодер 20 може також ентропійно кодувати синтаксичні елементи, зв'язані із закодованими відеоданими, для використання відеодекодером 30 при декодуванні відеоданих. Ентропійне кодування може бути виконане відповідно до одного з наступних способів: CAVLC, САВАС, синтаксичне контекстно-залежне адаптивне двійкове арифметичне кодування (SBAC), кодування PIPE або іншої методології ентропійного кодування. Для виконання CAVLC, відеокодер 20 може вибирати код із змінною довжиною для символу, який підлягає передачі. Кодові слова при кодуванні (VLC) із змінною довжиною кодового слова можуть бути побудовані так, що відносно більш короткі коди відповідають більш імовірним символам, в той час як більш довгі коди відповідають менш імовірним символам. Таким чином, використання VLC може дозволити досягнення збереження бітів у порівнянні, наприклад, з використанням кодових слів рівної довжини для кожного символу, який підлягає передачі. Способи ентропійного кодування даного винаходу конкретно описані як застосовні до САВАС, хоча способи можуть також бути застосовні до CAVLC, SBAC, PIPE або інших способів. Необхідно зазначити, що PIPE використовує принципи, подібні до арифметичного кодування. Загалом, кодування символів даних з використанням САВАС може включати один або декілька з наступних етапів: (1) Перетворення в двійкову форму: Якщо символ, який підлягає кодуванню, не представлений в двійковому значенні, то його відображають в двійковій послідовності, тобто так званому "двійковому ланцюжку". Кожний двійковий індекс (тобто, "бін") в двійковому ланцюжку може мати величину "0" або "1". (2) Призначення контексту: У звичайному режимі кожному біну призначається контекст. Бін може також кодуватися відповідно до режиму обходу, де контекст не призначається. Контекст є моделлю імовірності і часто називається "моделлю контексту". Як використано в цьому документі, термін контекст може відноситися до моделі імовірності або величини імовірності. Контекст визначає, як імовірність величини біна обчислюється для заданого біна. Контекст 9 UA 109505 C2 5 10 15 20 25 30 35 40 може зв'язувати імовірність з величиною біна на основі інформації, як, наприклад, величини раніше закодованих символів або число бінів. Додатково, контекст може бути призначений біну на основі параметрів більш високого рівня (тобто, слайса). (3) Кодування бінів: Біни кодуються за допомогою арифметичного кодера. Для кодування біна, арифметичному кодеру потрібно як введення імовірність величини біна, тобто імовірність того, що величина біна дорівнює "0", і/або імовірність того, що величина біна дорівнює "1". (Оцінена) імовірність може бути представлена в контексті цілою величиною, яка називається "стан контексту". (4) Оновлення стану: Імовірність (стан) вибраного контексту може бути оновлена на основі актуальної закодованої величини біна (наприклад, якщо величина біна була "1", то імовірність того, що бін дорівнює "1", може зрости). Оновленням імовірностей можна керувати відповідно до правил переходу, зв'язаних з контекстом. Далі йде приклад способу перетворення в двійкову форму синтаксичних елементів останнього значущого коефіцієнта, який може бути виконаний відеокодером 20. Синтаксичні елементи останнього значущого коефіцієнта можуть включати в себе положення в рядку і стовпці останнього значущого коефіцієнта всередині двомірного блока (тобто, координати х та у). Для блока 8 × 8 є вісім різних можливостей для останнього положення коефіцієнта всередині стовпця або рядка, тобто, 0, 1,…, 7. Вісім різних бінів використовуються для представлення цих восьми положень в рядку і стовпці. Наприклад, бін 0=1 може вказувати, що коефіцієнт в рядку або стовпці 0 є останнім значущим коефіцієнтом. У цьому прикладі, якщо бін 0=0, то коефіцієнт в положенні 0 не останній значущий коефіцієнт. Інший бін, рівний 1, може вказувати положення останнього значущого коефіцієнта. Наприклад, бін 1=1 може вказувати, що положення 1 є останнім значущим коефіцієнтом. Як інший приклад, бін Х=1 може вказувати, що положення Х є останнім значущим коефіцієнтом. Як описано вище, кожний бін може бути закодований двома різними способами: (1) кодувати бін за допомогою контексту і (2) кодувати бін з використанням режиму обходу (без контексту). Таблиця 1 показує приклад перетворення в двійкову форму положення останнього значущого коефіцієнта, де деякі біни закодовані за допомогою контексту, а інші закодовані з використанням режиму обходу. Приклад в Таблиці 1 забезпечує приклад перетворення в двійкову форму положення останнього значущого коефіцієнта для TU 3232. Другий стовпець Таблиці 1 забезпечує відповідні скорочені унарні величини префікса для можливих величин положення останнього значущого коефіцієнта всередині TU розміру Т, визначеного шляхом максимальної скороченої унарної довжини префікса 2log2(Т)-1. Третій стовпець Таблиці 1 забезпечує відповідний суфікс фіксованої довжини для кожного скороченого унарного префікса. Скорочено, Таблиця 1 включає в себе Х величин, які вказують величину біта або один, або нуль. Необхідно зазначити, що величини Х відображають унікально кожну величину, що має скорочений унарний префікс відповідно до коду фіксованої довжини. Значення компонента останнього положення в Таблиці 1 може відповідати величині х-координати і/або величині укоординати. Необхідно зазначити, що перетворення в двійкову форму положення останнього значущого коефіцієнта для TU 44, 88 та 1616 можуть бути визначені подібним чином, що і перетворення в двійкову форму TU 3232, описане по відношенню до Таблиці 1. Таблиця 1 Перетворення в двійкову форму для TU розміру 3232, де Х означає 1 або 0 Значення компонента Скорочений унарний Фіксований двійковий f_value останнього положення (модель контексту) (обхід) 0 1 0 1 01 0 2 001 0 3 0001 0 4-5 00001 Х 0-1 6-7 000001 Х 0-1 8-11 0000001 ХХ 0-3 12-15 00000001 ХХ 0-3 16-23 000000001 ХХХ 0-7 24-31 000000000 ХХХ 0-7 45 10 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 Як описано вище, кодування символів даних з використанням САВАС може також включати призначення контексту. В одному прикладі, контекстне моделювання може бути використане для арифметичного кодування частини скорочених унарних ланцюжків двійкового ланцюжка, в той час як контекстне моделювання не використовується для арифметичного кодування фіксованих двійкових ланцюжків двійкового ланцюжка (тобто фіксований двійковий ланцюжок обходять). У випадку, коли скорочені унарні ланцюжки кодуються з використанням контекстного моделювання, контекст може бути призначений кожному індексу біна двійкового ланцюжка. Існує декілька способів, якими можна призначити контексти кожному індексу біна двійкового ланцюжка. Число призначень контексту для двійкового ланцюжка, що являє собою положення останнього значущого коефіцієнта, може бути таке, що дорівнює числу індексів біна або довжині скороченого унарного ланцюжка для можливих розмірів і колірних компонентів TU. Наприклад, якщо можливі розміри компонента яскравості 44, 88, 1616 та 3232, то число призначень контексту для одного вимірювання може бути таке, що дорівнює 60 (тобто, 4+8+16+32), коли жоден з бінів не обходять. Подібним чином, для кожного компонента кольоровості з можливими розмірами 44, 88 та 1616 число призначень контексту може бути таке, що дорівнює 28 (тобто, 4+8+16), коли жоден з бінів не обходять. Таким чином, максимальне число призначень контексту може бути таке, що дорівнює 116 (тобто, 60+28+28) для кожного вимірювання, коли положення останнього значущого коефіцієнта визначене з використанням координат х та у. Приклад призначень контексту нижче передбачає, що деякі біни обійдуть відповідно до схеми перетворення в двійкову форму, описаної по відношенню до Таблиці 1. Однак необхідно зазначити, що способи призначення контексту, описані в цьому документі, можуть бути застосовні до декількох схем перетворення в двійкову форму. Додатково, навіть коли передбачається, що деякі біни обійдуть, все одно залишається множина способів, якими можуть бути призначені контексти бінам двійкового ланцюжка, що являє собою положення останнього значущого коефіцієнта. У деяких випадках, може бути бажано скоротити загальне число контекстів по відношенню до числа необхідного числа призначень контексту. Таким чином, кодеру або декодеру необов'язково зберігати і підтримувати багато контекстів. Однак коли число контекстів скорочене, точність прогнозування також може погіршитися, наприклад, якщо контексти спільно використовуються двома бінами з різними імовірностями. Додатково, конкретний контекст може оновлюватися більш часто, що може вплинути на оцінену імовірність величини біна. Тобто, кодування біна з використанням призначеного контексту може включати оновлення контексту. Таким чином, подальший бін, призначений контексту, може бути закодований з використанням оновленого контексту. Додатково, необхідно зазначити, що в деяких прикладах моделі контексту можуть бути запущені для рівня слайса, так що величини бінів всередині слайса не можуть впливати на кодування бінів всередині подальшого слайса, хоча біни призначаються тому самому контексту. Даний винахід описує способи оптимізації призначень контексту, щоб число контекстів могло бути скорочене при одночасній підтримці точності для оцінених імовірностей. В одному прикладі, способи призначення контексту, описані в цьому документі, включають в себе способи, коли індивідуальним індексам бінів призначається однаковий контекст. Таблиці 2-13 нижче зображають призначення контексту індексам бінів двійкового ланцюжка, який являє собою положення останнього значущого коефіцієнта всередині TU. Необхідно зазначити, що для деяких бінів у Таблиці 2-13 (наприклад, біни 5-7 блока 88) немає призначених контекстів. Це відбувається внаслідок припущення, що ці біни будуть закодовані з використанням режиму обходу, як описано вище. Необхідно також зазначити, що величини в Таблиці 2-13 являють собою індекс контексту. В таблицях 2-13, коли різні біни мають однакову величину індексу контексту, вони мають загальний однаковий контекст. Відображення індексу контексту в актуальному контексті може бути визначене відповідно до стандарту кодування відеосигналу. Таблиці 2-13 зображають, як контекст може бути спільно призначений бінам. Таблиця 2 зображає можливе індексування контексту для кожного біна різних розмірів TU для прикладів перетворень в двійкову форму, забезпечених вище по відношенню до Таблиці 1. У прикладі в Таблиці 2 суміжним бінам дозволено мати загальні однакові контексти. Наприклад, біни 2 та 3 TU 88 мають загальний однаковий контекст. 55 11 UA 109505 C2 Таблиця 2 Індекс біна TU 44 TU 88 TU 1616 TU 3232 5 10 15 Призначення контексту для останнього положення кодування 0 1 2 3 4 5 6 0 1 2 3 4 5 5 6 7 8 9 9 10 10 11 12 13 14 14 15 15 16 7 8 16 17 Таблиці 3-6 зображають додаткові приклади призначень контексту відповідно до наступних правил: 1. Перші К бінів не мають загального контексту, де К>1. К може відрізнятися для кожного розміру TU. 2. Один контекст може бути призначений тільки послідовним бінам. Наприклад, бін3 - бін5 можуть використовувати контекст 5. Однак не дозволене використання контексту 5 для біна3 і біна5 і використання контексту 6 для біна4. 3. Останні N біни, N>=0, різних розмірів TU можуть мати загальні однакові контексти. 4. Число бінів, які мають загальний однаковий контекст, зростає з розміром TU. Правила 1-4 вище можуть бути конкретно застосовні до перетворення в двійкову форму, забезпеченого в Таблиці 1. Однак правила 1-4 можуть бути рівно застосовні і до інших схем перетворення в двійкову форму, і актуальні призначення контексту можуть бути пристосовані відповідно до схеми перетворення в двійкову форму, яка здійснюється. Таблиця 3 Індекс біна TU 44 TU 88 TU 1616 TU 3232 Приклад бінів останнього положення відповідно до правил 1-4 0 1 2 3 4 5 6 0 1 2 3 4 5 6 7 8 9 10 11 11 12 12 13 14 14 15 16 16 16 7 8 16 17 Таблиця 4 Індекс біна TU 44 TU 88 TU 1616 TU 3232 Приклад бінів останнього положення відповідно до правил 1-4 0 1 2 3 4 5 6 0 1 2 3 4 5 6 6 8 9 10 11 11 12 12 13 14 14 15 16 16 16 7 8 16 17 Таблиця 5 Індекс біна TU 44 TU 88 TU 1616 TU 3232 Приклад бінів останнього положення відповідно до правил 1-4 0 1 2 3 4 5 6 0 1 2 3 4 5 6 7 8 9 10 11 11 12 12 13 14 14 15 16 16 16 20 12 7 8 12 12 UA 109505 C2 Таблиця 6 Індекс біна TU 44 TU 88 TU 1616 TU 3232 5 Приклад бінів останнього положення відповідно до правилами 1-4 0 1 2 3 4 5 6 0 1 2 3 4 5 6 7 8 9 10 10 11 11 12 13 14 14 15 15 15 16 7 8 16 16 Таблиці 7-8 нижче забезпечують приклад призначень контексту, де останні біни з блоків різних розмірів мають загальний однаковий контекст, який може додатково оптимізувати число контекстів. В одному прикладі, пряме відображення може бути використане для визначення того, як два останніх біни двох або декількох розмірів блоків мають загальний контекст. Наприклад, для блока А і блока В з розмірами M та N, відповідно, контекст n-го біна блока А може використовувати той самий контекст, що і n-ий бін блока розміру В. Таблиця 7 Приклад бінів останнього положення, де розміри блоків мають загальні однакові контексти Індекс біна 0 1 2 3 4 5 6 7 8 12 13 14 TU 44 12 13 14 14 15 TU 88 12 13 14 14 15 15 16 TU 1616 12 13 14 14 15 15 16 16 17 TU 3232 10 Таблиця 8 показує інший приклад, де біни останнього положення з деяких розмірів блоків мають загальні контексти. У цьому випадку, TU розміру 88 та 1616 мають загальні однакові контексти. Таблиця 8 Приклад бінів останнього положення, де деякі розміри блоків (88 та 1616) мають загальні однакові контексти Індекс біна 0 1 2 3 4 5 6 7 8 0 1 2 TU 44 7 8 9 9 10 TU 88 7 8 9 9 10 10 11 TU 1616 12 13 14 14 15 15 16 16 17 TU 3232 15 20 Як інший приклад, відображення контекстів для бінів останнього положення з різних розмірів блоків може бути витягнуте з використанням функції f(.). Наприклад, n-ий бін блока розміру А може мати загальні однакові контексти з m-им біном блока розміру В, де m є функцією n(m=f(n)). Наприклад, функція може бути лінійною, тобто, m=n*а+b, де а та b є параметрами лінійної функції. Таблиця 9 зображає приклад, де а=1, b=1, А=TU 88 та В=TU 1616. Таблиця 9 Приклад бінів останнього положення із загальними контекстами на основі лінійної функції Індекс біна TU 44 TU 88 TU 1616 TU 3232 0 0 8 7 12 1 1 9 8 13 2 2 9 9 14 3 4 5 6 7 8 10 9 14 10 10 15 10 15 11 16 16 17 13 UA 109505 C2 5 10 15 Необхідно зазначити, що при застосуванні вищезгаданого рівняння в визначених випадках, внаслідок цілочисельної функції, може бути використане округлення. Наприклад, 7*0,5=3. Відповідно до наступного прикладу, відображення від місцеположення n в розмірі блока 88 до місцеположення m в блоці 44 може бути обчислене за допомогою наступного рівняння: m=f(n)=n>>1, що означає а=0,5, b=0, А=88, В=44 (1) Відображення від місцеположення n в блоці 1616 до місцеположення m в блоці 44 може бути обчислене за допомогою наступного рівняння: m=f(n)=n>>2, що означає а=0,5, b=0, А=1616, В=44 (2) Як описано вище, рівняння (1) та (2) є тільки парою прикладів, які можуть бути використані для здійснення відображення між блоками різних розмірів. Рівняння (1) та (2) можуть називатися функціями відображення. Необхідно зазначити, що «>>» в рівняннях (1) та (2) може представляти функцію зсуву, визначену відповідно до стандарту кодування відеосигналу, як, наприклад, HEVC. Додатково, інші рівняння можуть бути використані для досягнення того самого відображення або інших відображень. Таблиця 10 забезпечує приклад призначення контексту для останнього значущого коефіцієнта для TU 44, 88 та 1616, відповідно до рівнянь (1) та (2). Таблиця 10 Відображення контексту для елементів перетворення різних розмірів Індекс біна TU 44 TU 88 TU 1616 0 0 0 0 1 1 0 0 2 2 1 0 3 4 5 6 1 0 2 1 1 7 8 1 20 Таблиця 11 забезпечує приклад призначення контексту Таблиці 10, де використані інші величини індексу контексту (тобто, 15-17 замість 0-2). Як описано вище, величини індексів контексту в Таблицях 3-12 не призначені для обмеження актуальних контекстів, призначених двійковому індексу. 25 Таблиця 11 Індекс біна TU 44 TU 88 TU 1616 30 35 40 Відображення контексту для елементів перетворення іншого розміру 0 1 2 3 4 5 6 7 15 16 17 15 15 16 16 17 15 15 15 15 16 16 16 8 Необхідно зазначити, що відображення контекстів у Таблиці 11 еквівалентно наступній функції відображення: ctx_index=(n>>k)+15 (3), де ctx_index є індексом контексту; n = індекс біна k=logTrafoDimension-2; log2TrafoDimension=log2(width) для останнього положення в х вимірюванні; log2TrafoDimension=log2(height) для останнього положення в у вимірюванні. У деяких випадках функція, визначена в (1)-(3), може бути використана пристроєм кодування для побудови послідовності таблиць, яка може зберігатися в пам'яті і використовуватися для пошуку призначень контексту. У деяких випадках, таблиці можуть бути заздалегідь визначені на основі рівнянь і правил, що описуються в цьому документі і зберігаються у відеокодері 20 і відеодекодері 30. Додатково, в деяких прикладах, функції (1)-(3), визначені вище, можуть бути вибірково застосовані для призначення контекстів для конкретних бінів. Таким чином, різні біни можуть 14 UA 109505 C2 бути призначені контексту на основі іншого правила. В одному прикладі, функції, як, наприклад, описані вище, можуть застосовуватися тільки для індексу біна (тобто, величини n), який менше, ніж поріг Th1 і/або більше, ніж поріг Th2. Таблиця 12 показує приклад, де способи відображення, описані вище, вибірково застосовані на основі величини індексу біна, тобто, n>Th2=2. 5 Таблиця 12 Приклад бінів останнього положення із загальними контекстами на основі лінійної функції і порога Індекс біна 0 1 2 3 4 5 6 7 8 0 1 2 TU 44 3 4 9 10 10 TU 88 7 8 9 9 10 10 11 TU 1616 12 13 14 14 15 15 16 16 17 TU 3232 10 15 20 25 30 Як інший приклад, величина порога для способів, що застосовуються до індексів бінів, може відрізнятися для різних розмірів блоків, різних типів кадрів, різних колірних компонентів (Y, U, V) і/або іншої сторонньої інформації. Цей поріг може бути заздалегідь визначений відповідно до стандарту кодування відеосигналу або може бути сигналізований з використанням синтаксису високого рівня. Наприклад, поріг може бути сигналізований в групі (SPS) параметрів послідовності, групі (PPS) параметрів зображення, групі (APS) параметрів адаптації і/або заголовку слайса. В іншому прикладі, функція відображення може відрізнятися для різних розмірів блока, різних типів кадру, різних колірних компонентів (Y, U та V) і/або іншої сторонньої інформації. Функція відображення може бути заздалегідь визначена відповідно до стандарту кодування відеосигналу або сигналізована з використанням синтаксису високого рівня. Наприклад, функція відображення може бути сигналізована в SPS, PPS, APS і/або заголовку слайса. В іншому прикладі, способи прямого відображення і відображення функції, описані вище, можуть бути адаптивно застосовані на основі колірних компонентів, типу кадру, параметра (QP) квантування і/або іншої сторонньої інформації. Наприклад, способи прямого відображення або відображення функції можуть бути застосовані тільки до компонентів кольоровості. Правила для цієї адаптації можуть бути заздалегідь визначені або можуть бути сигналізовані з використанням синтаксису високого рівня. Наприклад, правила адаптації можуть бути сигналізовані в SPS, PPS, APS і/або заголовку слайса. В іншому прикладі, біни останнього положення для компонентів кольоровості та яскравості можуть мати загальні однакові контексти. Це можна застосовувати до будь-якого розміру блока, наприклад, 44, 88, 1616 або 3232. Таблиця 13 показує приклад, коли біни останнього положення компонентів кольоровості та яскравості для TU 44 мають загальні контексти. Таблиця 13 Приклад бінів останнього положення для компонентів яскравості та кольоровості в TU 44 Індекс біна 0 1 2 3 0 1 2 Яскравість TU 44 Кольоровість TU 4м4 0 1 2 35 40 Фіг. 4 є блок-схемою, що зображає приклад відеокодера 20, який може використовувати способи кодування коефіцієнтів перетворення, описані в даному винаході. Наприклад, відеокодер 20 являє собою приклад відеокодера, виконаного з можливістю одержувати двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині відеоблока; визначати контекст для двійкового індексу двійкового ланцюжка на основі розміру відеоблока, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами відеоблока; і кодувати двійковий ланцюжок з використанням САВАС на основі щонайменше, частково, визначеного контексту. Відеокодер 20 буде описаний в контексті кодування HEVC для цілей ілюстрації, але не обмеження даного винаходу відносно інших стандартів кодування або 15 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 60 способів, які можуть вимагати сканування коефіцієнтів перетворення. Відеокодер 20 може виконувати інтра- та інтер-кодування CU всередині відеокадрів. Інтра-кодування покладається на просторове прогнозування для скорочення або усунення просторової надмірності у відеоданих всередині заданого відеокадру. Інтер-кодування покладається на часове прогнозування для скорочення або усунення часової надмірності між поточним кадром і раніше закодованими кадрами відеопослідовності. Інтра-режим (I-режим) може відноситися до будьякого з декількох режимів стиснення відеосигналу на основі просторового прогнозування. Інтеррежими, як, наприклад, однонаправлене прогнозування (Р-режим) або двонапралене прогнозування (В-режим) може відноситися до будь-якого з декількох режимів стиснення відеосигналу на основі часового прогнозування. Як зображено на Фіг. 4, відеокодер 20 приймає поточний відеоблок всередині відеокадру, який підлягає кодуванню. У прикладі на Фіг. 4, відеокодер 20 включає в себе модуль 40 вибору режиму, модуль 42 оцінки руху, модуль 44 компенсації руху, модуль 46 інтра-прогнозування, буфер 64 опорних кадрів, суматор 50, модуль 52 перетворення, модуль 54 квантування і модуль 56 ентропійного кодування. Модуль 52 перетворення, зображений на Фіг. 4, є модулем, який застосовує актуальне перетворення або комбінації перетворення до блока залишкових даних, і його не треба плутати з блоком коефіцієнтів перетворення, який також називають елементом (TU) перетворення CU. Для відновлення відеоблока, відеокодер 20 також включає в себе модуль 58 оберненого квантування, модуль 60 оберненого перетворення і суматор 62. Фільтр для видалення блочності (не зображений на Фіг. 4) може також бути включений для фільтрації меж блока для усунення блокових спотворень з відновленого відеосигналу. Якщо бажано, але фільтр для видалення блочності буде фільтрувати вивід суматора 62. Під час процесу кодування, відеокодер 20 приймає відеокадр або слайс, який підлягає кодуванню. Кадр або слайс може бути розділений на множину відеоблоків, наприклад, найбільших елементів (LCU) кодування. Модуль 42 оцінки руху та модуль 44 компенсації руху виконують кодування з інтер-прогнозуванням прийнятого відеоблока по відношенню до одного або декількох опорних кадрів для забезпечення часового стиснення. Модуль 46 інтрапрогнозування може виконувати кодування з інтра-прогнозуванням прийнятого відеоблока по відношенню до одного або декількох сусідніх блоків у тому самому кадрі або слайсі, що і блок, який підлягає кодуванню, для забезпечення просторового стиснення. Модуль 40 вибору режиму може вибирати один з режимів кодування, внутрішній (інтрарежим) або зовнішній (інтер-режим), наприклад, на основі результатів помилки (тобто, спотворення) для кожного режиму, і забезпечувати результуючий блок з інтра- або інтерпрогнозуванням (наприклад, елемент (PU) прогнозування) суматору 50 для формування даних залишкового блока і суматору 62 для відновлення закодованого блока для використання в опорному кадрі. Суматор 62 комбінує прогнозований блок із обернено квантованими, обернено перетвореними даними від модуля 60 оберненого перетворення для блока, щоб відновити закодований блок, як описано більш детально нижче. Деякі відеокадри можуть бути призначені як I-кадри, де всі блоки в I-кадрі закодовані в режимі інтра-прогнозування. У деяких випадках, модуль 46 інтра-прогнозування може виконувати кодування з інтра-прогнозуванням блока в Рабо В-кадрі, наприклад, коли пошук руху, що виконується модулем 42 оцінки руху, не приводить до достатнього прогнозування блока. Модуль 42 оцінки руху і модуль 44 компенсації руху можуть бути високо інтегровані, але зображені окремо для концептуальних цілей. Оцінка руху (або пошук руху) є процесом формування векторів руху, які оцінюють рух для відеоблоків. Вектор руху, наприклад, може вказувати розташування елемента прогнозування в поточному кадрі по відношенню до опорної вибірки опорного кадру. Модуль 42 оцінки руху обчислює вектор руху для елемента прогнозування кадру, закодованого в інтер-режимі, шляхом порівняння елемента прогнозування з опорними вибірками опорного кадру, що зберігаються в буфері 64 опорних кадрів. Опорна вибірка може бути блоком, який близько співпадає з частиною CU, що включає PU, який кодується, по відношенню до різниці пікселів, яка може бути визначена шляхом суми (SAD) абсолютної різниці, суми (SSD) квадратної різниці або інших метрик різниці. Опорна вибірка може зустрічатися в будь-якому місці всередині опорного кадру або опорного слайса і необов'язково на межі блока (наприклад, елемента кодування) опорного кадру або слайса. У деяких прикладах, опорна вибірка може зустрічатися в дробовому положенні пікселя. Модуль 42 оцінки руху відправляє обчислений вектор руху модулю 56 ентропійного кодування і модулю 44 компенсації руху. Частина опорного кадру, ідентифікована вектором руху, може називатися опорною вибіркою. Модуль 44 компенсації руху може обчислювати величину прогнозування для елемента прогнозування поточного CU, наприклад, шляхом витягання опорної вибірки, ідентифікованої вектором руху для PU. 16 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 60 Модуль 46 інтра-прогнозування може виконувати інтра-прогнозування прийнятого блока як альтернативу інтер-прогнозуванню, що виконується модулем 42 оцінки руху і модулем 44 компенсації руху. Модуль 46 інтра-прогнозування може прогнозувати прийнятий блок по відношенню до сусідніх, раніше закодованих блоків, наприклад, блоків зверху, зверху праворуч, зверху зліва, або зліва від поточного блока, передбачаючи, що порядок кодування блоків йде зліва направо, зверху вниз. Модуль 46 інтра-прогнозування може бути виконаний з множиною різних режимів інтра-прогнозування. Наприклад, модуль 46 інтра-прогнозування може бути виконаний з конкретним числом режимів направленого прогнозування, наприклад, тридцять чотири режиму направленого прогнозування, на основі розміру CU, який кодують. Модуль 46 інтра-прогнозування може вибирати режим інтра-прогнозування, наприклад, за допомогою обчислення величин помилок для різних режимів інтра-прогнозування і вибору режиму з найменшою величиною помилки. Режими направленого прогнозування можуть включати в себе функції для комбінації величин просторово сусідніх пікселів і застосування комбінованих величин до одного або декількох положень пікселів у PU. Як тільки величини для всіх положень пікселів у PU обчислені, модуль 46 інтра-прогнозування може обчислювати величину помилки для режиму прогнозування на основі різниць пікселів між PU і прийнятим блоком, який підлягає кодуванню. Модуль 46 інтра-прогнозування може продовжити тестувати режими інтра-прогнозування доти, доки не виявиться режим інтра-прогнозування з прийнятною величиною помилки. Модуль 46 інтра-прогнозування може потім відправити PU суматору 50. Відеокодер 20 формує залишковий блок шляхом віднімання даних прогнозування, обчислених модулем 44 компенсації руху або модулем 46 інтра-прогнозування, з вихідного відеоблока, який кодують. Суматор 50 являє собою компонент або компоненти, які виконують функцію віднімання. Залишковий блок може відповідати двомірній матриці величин різниць пікселів, де число величин у залишковому блоці те саме, що і число величин в PU, що відповідає залишковому блока. Величини в залишковому блоці можуть відповідати різницям, тобто, помилці, між величинами спільно розташованих пікселів у PU і у вихідному блоці, який підлягає кодуванню. Різниці можуть бути різницями кольоровості або яскравості, залежно від типу блока, який кодують. Модуль 52 перетворення може формувати один або декілька елементів (TU) перетворення із залишкового блока. Модуль 52 перетворення вибирає перетворення з множини перетворень. Перетворення може бути вибране на основі однієї або декількох характеристик кодування, як, наприклад, розмір блока, режим кодування або тому подібне. Модуль 52 перетворення потім застосовує вибране перетворення до TU, виробляючи відеоблок, що містить двомірну матрицю коефіцієнтів перетворення. Модуль 52 перетворення може відправляти коефіцієнти перетворення, що одержали, модулю 54 квантування. Модуль 54 квантування може потім квантувати коефіцієнти перетворення. Модуль 56 ентропійного кодування може потім виконувати сканування квантованих коефіцієнтів перетворення в матриці відповідно до режиму сканування. Даний винахід описує модуль 56 ентропійного кодування як такий, що виконує сканування. Однак необхідно розуміти, що в інших прикладах інші модулі обробки, як, наприклад, модуль 54 квантування, можуть виконувати сканування. Модуль 58 оберненого квантування і модуль 60 оберненого перетворення застосовують обернене квантування та обернене перетворення, відповідно, для відновлення залишкового блока в ділянці пікселів, наприклад, для подальшого використання як опорного блока. Модуль 44 компенсації руху може обчислювати опорний блок шляхом додавання залишкового блока до прогнозуючого блока одного з кадрів буфера 64 опорних кадрів. Буфер 64 опорних кадрів іноді називають буфером (DPB) декодованих зображень. Модуль 44 компенсації руху може також застосовувати один або декілька фільтрів інтерполяції до відновленого залишкового блока для обчислення субчисельних величин пікселів для використання при оцінці руху. Суматор 62 додає відновлений залишковий блок до блока прогнозування з компенсованим рухом, зробленим модулем 44 компенсації руху для вироблення відновленого відеоблока для зберігання в буфері 64 опорних зображень. Відновлений відеоблок може бути використаний модулем 42 оцінки руху і модулем 44 компенсації руху як опорний блок для інтер-кодування блока в подальшому відеокадрі. Як тільки коефіцієнти перетворення скановані в одномірну матрицю, модуль 56 ентропійного кодування може застосовувати ентропійне кодування, як, наприклад, CAVLC, CABAC, SBAC, PIPE або іншу методологію ентропійного кодування, до коефіцієнтів. У деяких випадках, модуль 56 ентропійного кодування може бути виконаний з можливістю виконувати інші функції кодування, додатково до ентропійного кодування. Наприклад, модуль 56 ентропійного кодування може бути виконаний з можливістю визначати величини шаблона (СВР) 17 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 60 закодованого блока для CU та PU. Також, в деяких випадках, модуль 56 ентропійного кодування може виконувати кодування довжин серій коефіцієнтів. Услід за ентропійним кодуванням модулем 56 ентропійного кодування, закодований відеосигнал, що одержали, може бути переданий іншому пристрою, як, наприклад, відеодекодеру 30, або архівований для подальшої передачі або витягання. Відповідно до способів даного винаходу, модуль 56 ентропійного кодування може вибирати контекст, що використовується для кодування синтаксичних елементів, на основі, наприклад, призначень контексту, описаних вище по відношенню до Таблиць 2-13, і будь-яку комбінацію з наступного: напрямок інтра-прогнозування для режимів інтра-прогнозування, положення сканування коефіцієнта, що відповідає синтаксичним елементам, тип блока, тип перетворення і/або інші характеристики відеопослідовності. В одному прикладі, модуль 56 ентропійного кодування може кодувати положення останнього значущого коефіцієнта з використанням способу перетворення в двійкову форму, прийнятого HEVC, який описаний вище по відношенню до Таблиці 1. В інших прикладах, модуль 56 ентропійного кодування може кодувати положення останнього значущого коефіцієнта з використанням інших способів перетворення в двійкову форму. В одному прикладі, кодове слово для положення останнього значущого коефіцієнта може включати в себе скорочений унарний префікс коду, за яким йде суфікс коду з фіксованою довжиною. В одному прикладі, кожне значення останнього положення може використовувати однакове перетворення в двійкову форму для всіх можливих розмірів TU, за винятком того, коли останнє положення дорівнює розміру TU мінус 1. Це виключення відбувається внаслідок характеристик скороченого унарного кодування. В одному прикладі, положення останнього значущого коефіцієнта всередині прямокутного коефіцієнта перетворення може бути визначене за допомогою визначення величини х-координати і величини у-координати. В іншому прикладі, блок коефіцієнтів перетворення може бути в формі вектора 1хN, і положення останнього значущого коефіцієнта всередині вектора може бути визначене за допомогою однієї величини положення. Фіг. 5 є блок-схемою, яка зображає приклад модуля 56 ентропійного кодування, який може здійснювати способи, описані в даному винаході. В одному прикладі, модуль 56 ентропійного кодування, зображений на Фіг. 5, може бути кодером САВАС. Приклад модуля 56 ентропійного кодування може включати в себе модуль 502 перетворення в двійкову форму, модуль 510 арифметичного кодування, який включає в себе механізм 504 кодування в режимі обходу і механізм 508 звичайного кодування, і модуль 506 контекстного моделювання. Модуль 56 ентропійного кодування приймає синтаксичні елементи, як, наприклад, один або декілька синтаксичних елементів, що представляють положення останнього значущого коефіцієнта перетворення всередині блока коефіцієнтів перетворення, і кодує синтаксичний елемент в потік двійкових даних. Синтаксичні елементи можуть включати в себе синтаксичний елемент, що визначає х-координату положення останнього значущого коефіцієнта всередині блока коефіцієнтів перетворення, і синтаксичний елемент, що визначає у-координату положення останнього значущого коефіцієнта всередині блока коефіцієнтів перетворення. Модуль 502 перетворення в двійкову форму приймає синтаксичний елемент і виробляє ланцюжок бінів (тобто, двійковий ланцюжок). В одному прикладі, модуль 502 перетворення в двійкову форму приймає синтаксичні елементи, що являють собою останнє положення значущого коефіцієнта всередині блока коефіцієнтів перетворення, і виробляє двійковий ланцюжок відповідно до прикладу, описаного вище по відношенню до Таблиці 1. Модуль 510 арифметичного кодування приймає двійковий ланцюжок від модуля 502 перетворення в двійкову форму і виконує арифметичне кодування двійкового ланцюжка. Як зображено на Фіг. 5, модуль 510 арифметичного кодування може приймати величини бінів від тракту обходу або тракту звичайного кодування. Відповідно до процесу САВАС, описаного вище, у випадку якщо модуль 510 арифметичного кодування приймає величини бінів від тракту обходу, то механізм 504 кодування в режимі обходу може виконувати арифметичне кодування величин біна без використання контексту, призначеного величині. В одному прикладі, механізм 504 кодування в режимі обходу може передбачити рівні імовірності для можливих величин біна. У випадку, коли модуль 510 арифметичного кодування приймає величини біна по регулярному тракту, то модуль 506 контекстного моделювання може забезпечувати змінну контексту (наприклад, стан контексту), щоб механізм 508 звичайного кодування міг виконати арифметичне кодування на основі призначень контексту, забезпечених модулем 506 контекстного моделювання. В одному прикладі, модуль 510 арифметичного кодування може кодувати частину префікса двійкового ланцюжка, використовуючи призначення контексту, і може кодувати частину суфікса двійкового ланцюжка, не використовуючи призначення контексту. Призначення контексту можуть бути визначені відповідно до прикладів, описаних 18 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 60 вище по відношенню до Таблиць 2-13. Моделі контекстів можуть зберігатися в пам'яті. Модуль 506 контекстного моделювання може включати в себе послідовність індексних таблиць і/або використовувати функції відображення для визначення контексту і змінної контексту для конкретного біна. Після кодування величини біна, механізм 508 звичайного кодування може оновити контекст на основі актуальних величин біна і вивести закодовану величину біна як частину двійкового потоку даних. Таким чином, модуль ентропійного кодування виконаний з можливістю кодувати один або декілька синтаксичних елементів на основі способів призначення контексту, описаних в цьому документі. Фіг. 6 є блок-схемою, що зображає приклад способу визначення контексту для величини двійкового ланцюжка, що вказує положення останнього значущого коефіцієнта, відповідно до способів даного винаходу. Спосіб, описаний на Фіг. 6, може бути виконаний будь-яким з прикладів відеокодерів та ентропійних кодерів, описаних в цьому документі. На етапі 602, одержують двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині відеоблока. Двійковий ланцюжок може бути визначений відповідно до схеми перетворення в двійкову форму, описаної по відношенню до Таблиці 1. На етапі 604, визначають контекст для величини біна двійкового ланцюжка. Контекст може бути призначений біну на основі способів, описаних в цьому документі. Контекст може бути визначений відео- або ентропійним кодером при здійсненні доступу до таблиці пошуку або при виконанні функції відображення. Контекст може бути використаний для витягання конкретної змінної контексту для конкретного біна. Змінна контексту може бути 7-бітовою двійковою величиною, яка вказує одну з 64 можливих імовірностей (станів) і найбільш імовірний стан (наприклад, "1" або "0"). Як описано вище, в деяких випадках, біни можуть мати загальні контексти відповідно до функцій відображення і Таблиць 2-13, описаних вище. На етапі 606, кодують величину біна з використанням процесу арифметичного кодування, який застосовує змінну контексту, як, наприклад, САВАС. Необхідно зазначити, що коли біни мають загальні контексти, величина одного біна може впливати на величину змінної контексту, що використовується для кодування подальшого біна, відповідно до способів контекстно-адаптивного кодування. Наприклад, якщо конкретний бін дорівнює "1", то подальший бін може бути закодований на основі збільшеної імовірності того, що він буде 1. Таким чином, ентропійне кодування двійкового ланцюжка може включати в себе оновлення стану контексту моделі контексту. Додатково, необхідно зазначити, що в деяких прикладах моделі контексту можуть бути запущені для рівня слайса, щоб величини бінів всередині слайса не могли впливати на кодування бінів всередині подальшого слайса. Фіг. 7 є блок-схемою, що зображає приклад відеодекодера 30, який може використовувати способи кодування коефіцієнтів перетворення, описані в даному винаході. Наприклад, відеодекодер 30 являє собою приклад відеодекодера, виконаного з можливістю одержувати закодований двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині відеоблока, причому закодований двійковий ланцюжок закодований з використанням САВАС; визначати контекст для двійкового індексу закодованого двійкового ланцюжка на основі розміру відеоблока, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з іншими розмірами відеоблока; і декодувати закодований двійковий ланцюжок з використанням САВАС на основі щонайменше, частково, визначеного контексту. У прикладі на Фіг. 7, відеодекодер 30 включає в себе модуль 70 ентропійного декодування, модуль 72 компенсації руху, модуль 74 інтра-прогнозування, модуль 76 оберненого квантування, модуль 78 оберненого перетворення, буфер 82 опорних кадрів і суматор 80. Відеодекодер 30 може, в деяких прикладах, виконувати прохід декодування, загалом, обернений проходу кодування, описаному по відношенню до відеокодера 20. Модуль 70 ентропійного декодування виконує процес ентропійного декодування закодованого потоку двійкових даних для витягання одномірної матриці коефіцієнтів перетворення. Процес ентропійного декодування, що використовується, залежить від ентропійного кодування, що використовується відеокодером 20 (наприклад, САВАС, CAVLC і так далі). Процес ентропійного кодування, що використовується кодером, може бути сигналізований в закодованому потоку двійкових даних або може бути заздалегідь визначеним процесом. У деяких прикладах, модуль 70 ентропійного декодування (або модуль 76 оберненого квантування) може сканувати прийняті величини з використанням дзеркального відображення сканування режиму сканування, що використовується модулем 56 ентропійного кодування (або модулем 54 квантування) відеокодера 20. Хоча сканування коефіцієнтів може бути виконане модулем 76 оберненого квантування, сканування буде описане для цілей ілюстрації як таке, що виконується модулем 70 ентропійного декодування. Додатково, хоча для полегшення ілюстрації 19 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 60 вони зображені як окремі функціональні модулі, модуль 70 ентропійного декодування, модуль 76 оберненого перетворення та інші модулі відеодекодера 30 можуть бути високо інтегровані один з одним структурно і функціонально. Модуль 76 оберненого квантування обернено квантує, тобто, деквантує, квантовані коефіцієнти перетворення, забезпечені в двійковому потоці даних і декодовані модулем 70 ентропійного декодування. Процес оберненого квантування може включати в себе традиційний процес, наприклад, подібний до процесів, запропонованих для HEVC або визначених стандартом Н.264 декодування. Процес оберненого квантування може включати в себе використання параметра QP квантування, обчисленого відеокодером 20 для CU, для визначення ступеня квантування і, подібним чином, ступеня оберненого квантування, який повинен бути застосований. Модуль 76 оберненого квантування може обернено квантувати коефіцієнти перетворення або до, або після того, як коефіцієнти перетворені з одномірної матриці в двомірну матрицю. Модуль 78 оберненого перетворення застосовує обернене перетворення до обернено квантованих коефіцієнтів перетворення. У деяких прикладах, модуль 78 оберненого перетворення може визначати обернене перетворення на основі сигналізації від відеокодера 20 або шляхом виведення перетворення з однієї або декількох характеристик кодування, як, наприклад, розмір блока, режим кодування або тому подібне. У деяких прикладах, модуль 78 оберненого квантування може визначати перетворення для застосування до поточного блока на основі сигналізованого перетворення в кореневому вузлі дерева квадратів для LCU, що включає в себе поточний блок. Альтернативно, перетворення може бути сигналізоване в корені дерева квадратів TU для кінцевого вузла CU в дереві квадратів LCU. У деяких прикладах, модуль 78 оберненого перетворення може застосовувати каскадне обернене перетворення, в якому модуль 78 оберненого перетворення застосовує два або більше обернених перетворення до коефіцієнтів перетворення поточного блока, який кодують. Модуль 74 інтра-прогнозування може формувати дані прогнозування для поточного блока поточного кадру на основі сигналізованого режиму інтра-прогнозування і даних з раніше декодованих блоків поточного кадру. Модуль 72 компенсації руху може витягувати вектор руху, напрямок прогнозування руху і опорний індекс із закодованого потоку двійкових даних. Напрямок опорного прогнозування вказує, чи є режим інтер-прогнозування однонаправленим (наприклад, Р кадр) або двонаправленим (наприклад, В кадр). Опорний індекс вказує, на якому опорному кадрі оснований підходящий вектор руху. На основі витягнутого напрямку прогнозування руху, індексу опорного кадру і вектора руху, модуль 72 компенсації руху виробляє блок з компенсованим рухом для поточної частини. Ці блоки з компенсованим рухом істотним чином відтворюють прогнозуючий блок, що використовується для вироблення залишкових даних. Модуль 72 компенсації руху може виробляти блоки з компенсованим рухом, можливо виконуючи інтерполяцію на основі фільтрів інтерполяції. Ідентифікатори фільтрів інтерполяції, які будуть використані для оцінки руху з точністю до суб-пікселя, можуть бути включені в синтаксичні елементи. Модуль 72 компенсації руху може використовувати фільтри інтерполяції так само, як і відеокодер 20 під час кодування відеоблока, для обчислення інтерпольованих величин для субчисельних пікселів опорного блока. Модуль 72 компенсації руху може визначати фільтри інтерполяції, що використовуються відеокодером 20, відповідно до прийнятої синтаксичної інформації і використовувати фільтри інтерполяції для вироблення прогнозуючих блоків. Додатково, модуль 72 компенсації руху і модуль 74 інтра-прогнозування, в прикладі HEVC, можуть використовувати синтаксичну інформацію (наприклад, забезпечену деревом квадратів) для визначення розмірів LCU, що використовуються для кодування кадру(ів) закодованої відеопослідовності. Модуль 72 компенсації руху і модуль 74 інтра-прогнозування можуть також використовувати синтаксичну інформацію для визначення інформації розділення, яка описує, як розділений кожний CU в кадрі закодованої відеопослідовності (і, подібним чином, як розділені суб-CU). Синтаксична інформація може також включати в себе режими, які вказують, як закодоване кожне розділення (наприклад, інтра- або інтер-прогнозування, і для інтрапрогнозування режим кодування з інтра-прогнозуванням), один або декілька опорних кадрів (і/або опорних списків, що містять ідентифікатори для опорних кадрів) для кожного PU з інтеркодуванням і інша інформація для декодування закодованої відеопослідовності. Суматор 80 комбінує залишкові блоки з відповідними блоками прогнозування, сформованими модулем 72 компенсації руху або модулем 74 інтра-прогнозування, для формування декодованих блоків. Якщо бажано, фільтр для видалення блочності може також бути застосований для фільтрації декодованих блоків, щоб усунути блокові спотворення. 20 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 60 Декодовані відеоблоки потім зберігаються в буфері 82 опорних кадрів, який забезпечує опорні блоки для подальшої компенсації руху і також виробляє декодований відеосигнал для представлення на пристрої відображення (як, наприклад, пристрій 32 відображення на Фіг. 1). Буфер 82 опорних кадрів також може називатися DPB. Фіг. 8 є блок-схемою, яка зображає приклад модуля 70 ентропійного декодування, який може здійснювати способи, описані в даному винаході. Модуль 70 ентропійного декодування приймає ентропійно закодований потік двійкових даних і декодує синтаксичні елементи з потоку двійкових даних. В одному прикладі, синтаксичні елементи можуть являти собою положення останнього значущого коефіцієнта перетворення всередині блока коефіцієнтів перетворення. Синтаксичні елементи можуть включати в себе синтаксичний елемент, що визначає хкоординату положення останнього значущого коефіцієнта всередині блока коефіцієнтів перетворення, і синтаксичний елемент, що визначає у-координату положення останнього значущого коефіцієнта всередині блока коефіцієнтів перетворення. В одному прикладі, модуль 70 ентропійного декодування, зображений на Фіг. 8, може бути декодером САВАС. Приклад модуля 70 ентропійного декодування на Фіг. 8 включає в себе модуль 702 арифметичного декодування, який може включати в себе механізм 704 декодування в режимі обходу і механізм 706 звичайного декодування. Приклад модуля 70 ентропійного декодування також включає в себе елемент 708 контекстного моделювання і модуль 710 оберненого перетворення в двійкову форму. Приклад модуля 70 ентропійного декодування може виконувати обернені функції прикладу модуля 56 ентропійного кодування, описаного по відношенню до Фіг. 5. Таким чином, модуль 70 ентропійного декодування може виконувати ентропійне декодування на основі способів призначень контексту, описаних в цьому документі. Модуль 702 арифметичного декодування приймає закодований потік двійкових даних. Як зображено на Фіг. 8, модуль 702 арифметичного декодування може обробляти закодовані величини бінів відповідно до тракту обходу або тракту звичайного кодування. Вказівка того, чи повинна закодована величина біна бути оброблена відповідно до тракту обходу або звичайного проходу, може бути сигналізоване в потоці двійкових даних синтаксисом високого рівня. Відповідно до процесу САВАС, описаного вище, у випадку, коли модуль 702 арифметичного декодування приймає величини біна від тракту обходу, механізм 704 арифметичного декодування може виконувати арифметичне декодування величин біна, не використовуючи контекст, призначений величині біна. В одному прикладі, механізм 704 арифметичного декодування може передбачити рівні імовірності для можливих величин біна. У випадку, коли модуль 702 арифметичного декодування приймає величини бінів по звичайному тракту, модуль 708 контекстного моделювання може забезпечувати змінну контексту, щоб механізм 706 звичайного декодування міг виконати арифметичне декодування на основі призначень контексту, забезпечених модулем 708 контекстного моделювання. Призначення контексту можуть бути визначені відповідно до прикладів, описаних вище по відношенню до Таблиць 2-13. Моделі контекстів можуть зберігатися в пам'яті. Модуль 708 контекстного моделювання може включати в себе послідовність індексних таблиць і/або використовувати функції відображення для визначення контексту і частини змінної контексту закодованого потоку двійкових даних. Після декодування величини біна, механізм 706 звичайного декодування може оновлювати контекст на основі декодованих величин біна. Додатково, модуль 710 оберненого перетворення в двійкову форму може виконувати обернене перетворення в двійкову форму величини біна і використовувати функцію збігу бінів для визначення того, чи дійсна величина біна. Модуль 710 оберненого перетворення в двійкову форму може також оновлювати модуль контекстного моделювання на основі визначення збігу. Таким чином, модуль 710 оберненого перетворення в двійкову форму виводить синтаксичні елементи відповідно до способу контекстно-адаптивного декодування. Таким чином, модуль 70 ентропійного декодування виконаний з можливістю декодувати один або декілька синтаксичних елементів на основі способів призначення контексту, описаних в цьому документі. Фіг. 9 є блок-схемою, що зображає приклад способу визначення величини, що вказує положення останнього значущого коефіцієнта всередині блока коефіцієнтів перетворення з двійкового ланцюжка, відповідно до способів даного винаходу. Спосіб, описаний на Фіг. 9, може бути виконаний будь-яким з прикладів відеодекодерів або елементів ентропійного декодування, описаних в цьому документі. На етапі 902, одержують закодований потік двійкових даних. Закодований потік двійкових даних може бути витягнутий з пам'яті або через передачу. Закодований потік двійкових даних може бути закодований відповідно до процесу кодування САВАС або іншого процесу ентропійного кодування. На етапі 904, визначають контекст для частини закодованого двійкового ланцюжка. Контекст може бути призначений закодованому біну на основі способів, описаних в цьому документі. Контекст може бути визначений відео- або 21 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 ентропійним декодером, що здійснює доступ до таблиці пошуку або виконує функцію відображення. Контекст може бути визначений на основі синтаксису високого рівня, забезпеченого в закодованому потоці двійкових даних. Контекст може бути використаний для витягання конкретної змінної контексту для конкретного закодованого біна. Як описано вище, змінна контексту може бути 7-бітовою двійковою величиною, яка вказує одну з 64 можливих імовірностей (станів) і найбільш імовірний стан (наприклад, "1" або "0") і, в деяких випадках, біни можуть мати загальні контексти. На етапі 906, декодують двійковий ланцюжок з використанням процесу арифметичного декодування, який використовує змінну контексту, як, наприклад, САВАС. Двійковий ланцюжок може бути декодований на основі бін-за-біном, причому модель контекстів оновлюється після декодування кожного біна. Декодований потік двійкових даних може включати в себе синтаксичні елементи, які додатково використовуються для декодування коефіцієнтів перетворення, зв'язаних із закодованими відеоданими. Таким чином, призначення контекстів конкретним бінам, що використовує способи, описані вище, може забезпечувати ефективне декодування закодованих відеоданих. В одному або більше прикладах, описані функції можуть бути втілені в технічних засобах, програмному забезпеченні, програмно-апаратних засобах або будь-якій їх комбінації. При здійсненні в програмному забезпеченні, функції можуть зберігатися або передаватися як одна або декілька команд або код на комп'ютерно-зчитуваному носії і виконуватися обробляючим елементом на основі технічних засобів. Комп'ютерно-зчитувані носії можуть включати в себе комп'ютерно-зчитувані запам'ятовуючі носії, які відповідають фізичному носію, як, наприклад, зчитуваний носій даних або засоби зв'язку, включаючи будь-який носій, який підтримує передачу комп'ютерної програми з одного місця в інше, наприклад, відповідно до протоколу зв'язку. У цьому випадку, комп'ютерно-зчитувані носії, загалом, можуть відповідати (1) фізичним комп'ютерно-зчитуваним запам'ятовуючим носіям, що є незмінюваними, або (2) засобам зв'язку, як, наприклад, сигнал або несуча хвиля. Запам'ятовуючі носії даних можуть бути будь-якими доступними носіями, доступ до яких може бути здійснений одним або декількома комп'ютерами або одним або декількома пристроями обробки для витягання команд, коду і/або структур даних для здійснення способів, описаних в даному винаході. Комп'ютерний програмний продукт може включати в себе комп'ютерно-зчитуваний носій. Для прикладу, але не обмеження, такі комп'ютерно-зчитувані запам'ятовуючі носії можуть містити RAM, ROM, EEPROM, CD-ROM або інше сховище на оптичному диску, сховище на магнітному диску або інші магнітні пристрої зберігання, флеш-пам'ять, або будь-який інший носій, який може бути використаний для зберігання бажаного програмного коду в формі команд або структур даних і доступ до якого може бути здійснений комп'ютером. Також, будь-яке з'єднання правильно називається комп'ютерно-зчитуваним носієм. Наприклад, якщо команди передаються з вебсайта, сервера або іншого віддаленого джерела з використанням коаксіального кабелю, оптоволоконного кабелю, кабелю з витою парою, цифрової абонентської лінії (DSL) або бездротової технології, як, наприклад, інфрачервона, радіо і мікрохвильова, то коаксіальний кабель, оптоволоконний кабель, кабель з витою парою, DSL або бездротова технологія, як, наприклад, інфрачервона, радіо або мікрохвильова, включені у визначення носія. Необхідно розуміти, однак, що комп'ютерно-зчитувані запам'ятовуючі носії і запам'ятовуючі носії даних не включають в себе з'єднання, несучі хвилі, сигнали або інші змінювані носії, але, навпаки, направлені на незмінювані, фізичні запам'ятовуючі носії. Термін "диск", як використано в цьому документі, включає в себе компакт-диск (CD), лазерний диск, оптичний диск, універсальний цифровий диск (DVD), гнучкий диск і диск Blu-ray, де магнітні диски, як правило, відтворюють дані магнітним чином, в той час як оптичні диски відтворюють дані оптично за допомогою лазера. Комбінації вищеназваного також повинні бути включені в обсяг комп'ютернозчитуваних носіїв. Команди можуть бути виконані одним або декількома пристроями обробки, як, наприклад, один або декілька пристроїв (DSP) для цифрової обробки сигналу, мікропроцесорів загального призначення, спеціалізовані інтегральні схеми (ASIC), програмовані користувачем вентильні матриці (FPGA) або інші еквівалентні інтегральні схеми або схеми з дискретною логікою. Відповідно, термін "пристрій обробки", як використано в цьому документі, може відноситися до будь-якої з вищезгаданих структур або будь-якої іншої структури, підходящої для здійснення способів, описаних в цьому документі. Додатково, в деяких аспектах, функціональність, описана в цьому документі, може бути забезпечена всередині закріплених модулів технічних засобів і/або програмного забезпечення, виконаних з можливістю кодувати і декодувати, або вбудованих в комбінований кодер-декодер. Також, способи можуть бути повністю здійснені в одній або декількох схемах або логічних елементах. 22 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 Способи даного винаходу можуть бути здійснені в широкому ряді пристроїв або апаратів, включаючи бездротовий мобільний телефон, інтегральну схему (IC) або групу IC (наприклад, набір мікросхем). Різні компоненти, модулі або елементи описані в даному винаході для посилення функціональних аспектів пристроїв, виконаних з можливістю виконувати розкриті способи, але не обов'язково вимагають реалізації різними елементами технічних засобів. Швидше, як описано вище, різні елементи можуть бути скомбіновані в апаратному модулі кодера-декодера або забезпечені групою взаємодіючих апаратних модулів, включаючи один або декілька пристроїв обробки, як описано вище, спільно з підходящим програмним забезпеченням і/або програмно-апаратними засобами. Описані різні приклади. Ці та інші приклади знаходяться в межах обсягу наступної формули винаходу. Посилальні позиції 10 система кодування і декодування відеосигналу 12 пристрій джерела 14 пристрій призначення 16 канал зв'язку 18 відеоджерело 20 відеокодер 22 модулятор/демодулятор 24 передавач 26 приймач 28 модем 30 відеодекодер 32 пристрій відображення 30 відеодекодер 34 носій даних 36 файловий сервер 40 модуль вибору режиму 42 модуль оцінки руху 44 модуль компенсації руху 46 модуль інтра-прогнозування 64 буфер опорних кадрів 50 суматор 52 модуль перетворення 54 модуль квантування 56 модуль ентропійного кодування 58 модуль оберненого квантування 60 модуль оберненого перетворення 62 суматор 64 буфер опорних кадрів 70 модуль ентропійного декодування 72 модуль компенсації руху 74 модуль інтра-прогнозування 76 модуль оберненого квантування 78 модуль оберненого перетворення 80 суматор 82 буфер опорних кадрів 502 модуль перетворення в двійкову форму 504 механізм кодування в режимі обходу 508 механізм звичайного кодування 506 модуль контекстного моделювання 510 модуль арифметичного кодування 702 модуль арифметичного декодування 704 механізм декодування в режимі обходу 706 механізм звичайного декодування 708 елемент контекстного моделювання 710 модуль оберненого перетворення в двійкову форму ФОРМУЛА ВИНАХОДУ 60 23 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 60 1. Спосіб кодування коефіцієнтів перетворення для блока перетворення, який включає: одержання двійкового ланцюжка, який вказує положення останнього значущого коефіцієнта всередині блока перетворення коефіцієнтів перетворення; визначення контексту для двійкового індексу двійкового ланцюжка на основі розміру блока перетворення, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами блока перетворення; і кодування двійкового ланцюжка з використанням контекстно-адаптивного двійкового арифметичного кодування (САВАС) на основі, щонайменше частково, визначеного контексту. 2. Спосіб за п. 1, в якому контекст призначається кожному з щонайменше двох двійкових індексів відповідно до індексу контексту (ctx_index), визначеного функцією: ctx_index = (n>>log2(T))+15, де n - двійковий індекс, а Т - розмір блока перетворення. 3. Спосіб за п. 1, в якому контекст призначається останньому двійковому індексу блока 16×16 перетворення і останньому двійковому індексу блока 32×32 перетворення. 4. Спосіб за п. 3, в якому другий контекст призначається суміжним двійковим індексам блока 16×16 перетворення. 5. Спосіб за п. 1, в якому кодування двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, визначеного контексту, включає в себе оновлення контексту на основі величини двійкового ланцюжка, і в якому блок перетворення є першим блоком перетворення; і який додатково містить: одержання другого двійкового ланцюжка, який вказує положення останнього значущого коефіцієнта всередині другого блока перетворення, причому перший блок перетворення і другий блок перетворення мають різні розміри; і кодування другого двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, оновленого контексту. 6. Спосіб декодування коефіцієнтів перетворення, який містить: одержання закодованого двійкового ланцюжка, який вказує положення останнього значущого коефіцієнта всередині блока перетворення коефіцієнтів перетворення, причому закодований двійковий ланцюжок закодований з використанням контекстно-адаптивного двійкового арифметичного кодування (CABAC); визначення контексту для двійкового індексу закодованого двійкового ланцюжка на основі розміру блока перетворення, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з іншими розмірами блока перетворення; і декодування закодованого двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, визначеного контексту. 7. Спосіб за п. 6, в якому контекст призначається кожному з щонайменше двох двійкових індексів відповідно до індексу контексту (ctx_index), визначеного функцією: ctx_index = (n>>log2(T))+15, де n - двійковий індекс, а Т - розмір блока перетворення. 8. Спосіб за п. 6, в якому контекст призначається останньому двійковому індексу блока 16×16 перетворення та останньому двійковому індексу блока 32×32 перетворення. 9. Спосіб за п. 8, в якому другий контекст призначається суміжним двійковим індексам блока 16×16 перетворення. 10. Спосіб за п. 6, в якому декодування закодованого двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, визначеного контексту, включає в себе оновлення контексту на основі величини закодованого двійкового ланцюжка, і в якому блок перетворення є першим блоком перетворення; і який додатково містить: одержання другого закодованого двійкового ланцюжка, який вказує положення останнього значущого коефіцієнта всередині другого блока перетворення, причому перший блок перетворення і другий блок перетворення мають різні розміри; і декодування другого закодованого двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, оновленого контексту. 11. Пристрій, виконаний з можливістю кодувати коефіцієнти перетворення для блока перетворення, який містить: засіб одержання двійкового ланцюжка, який вказує положення останнього значущого коефіцієнта всередині блока перетворення коефіцієнтів перетворення; засіб визначення контексту для двійкового індексу двійкового ланцюжка на основі розміру блока перетворення, причому контекст призначається щонайменше двом двійковим індексам, 24 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами блока перетворення; і засіб кодування двійкового ланцюжка з використанням контекстно-адаптивного двійкового арифметичного кодування (САВАС) на основі, щонайменше частково, визначеного контексту. 12. Пристрій за п. 11, в якому контекст призначається кожному з щонайменше двох двійкових індексів відповідно до індексу контексту (ctx_index), визначеного функцією: ctx_index = (n>>log2(T))+15, де n - двійковий індекс, а Т - розмір блока перетворення. 13. Пристрій за п. 11, в якому кодування двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, визначеного контексту, включає в себе оновлення контексту на основі величини двійкового ланцюжка, і в якому блок перетворення є першим блоком перетворення; і який додатково містить: засіб одержання другого двійкового ланцюжка, який вказує положення останнього значущого коефіцієнта всередині другого блока перетворення, причому перший блок перетворення і другий блок перетворення мають різні розміри; і засіб ентропійного кодування другого двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, оновленого контексту. 14. Пристрій, виконаний з можливістю декодувати коефіцієнти перетворення для блока перетворення, який містить: засіб одержання закодованого двійкового ланцюжка, який вказує положення останнього значущого коефіцієнта всередині блока перетворення коефіцієнтів перетворення, причому закодований двійковий ланцюжок закодований з використанням контекстно-адаптивного двійкового арифметичного кодування (CABAC); засіб визначення контексту для двійкового індексу закодованого двійкового ланцюжка на основі розміру блока перетворення, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами блока перетворення; і засіб декодування закодованого двійкового ланцюжка з використанням СABAC на основі щонайменше частково визначеного контексту. 15. Пристрій за п. 14, в якому контекст призначається кожному з щонайменше двох двійкових індексів відповідно до індексу контексту (ctx_index), визначеного функцією: ctx_index = (n>>log2(T))+15, де n - двійковий індекс, а Т - розмір блока перетворення. 16. Пристрій за п. 14, в якому декодування закодованого двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, визначеного контексту, включає в себе оновлення контексту на основі величини закодованого двійкового ланцюжка, і в якому блок перетворення є першим блоком перетворення; і який додатково містить: засіб одержання другого двійкового ланцюжка, який вказує положення останнього значущого коефіцієнта всередині другого блока перетворення, причому перший блок перетворення і другий блок перетворення мають різні розміри; і засіб декодування другого закодованого двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, оновленого контексту. 17. Пристрій, який містить відеокодер, виконаний з можливістю: одержувати двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині блока перетворення коефіцієнтів перетворення; визначати контекст для двійкового індексу двійкового ланцюжка на основі розміру блока перетворення, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами блока перетворення; і кодувати двійковий ланцюжок з використанням контекстно-адаптивного двійкового арифметичного кодування (САВАС) на основі, щонайменше частково, визначеного контексту. 18. Пристрій за п. 17, в якому контекст призначається кожному з щонайменше двох двійкових індексів відповідно до індексу контексту (ctx_index), визначеного функцією: ctx_index = (n>>log2(T))+15, де n - двійковий індекс, а Т - розмір блока перетворення. 19. Пристрій за п. 17, в якому контекст призначається останньому двійковому індексу блока 16×16 перетворення і останньому двійковому індексу блока 32×32 перетворення. 20. Пристрій за п. 19, в якому другий контекст призначається суміжним двійковим індексам блока 16×16 перетворення. 25 UA 109505 C2 5 10 15 20 25 30 35 40 45 50 55 60 21. Пристрій за п. 17, в якому кодування двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, визначеного контексту, включає в себе оновлення контексту на основі величини двійкового ланцюжка, і в якому блок перетворення є першим блоком перетворення; і в якому відеокодер додатково виконаний з можливістю: одержувати другий двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині другого блока перетворення, причому перший блок перетворення і другий блок перетворення мають різні розміри; і кодувати другий двійковий ланцюжок з використанням САВАС на основі, щонайменше частково, оновленого контексту. 22. Пристрій, який містить відеодекодер, виконаний з можливістю: одержувати закодований двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині блока перетворення коефіцієнтів перетворення, причому закодований двійковий ланцюжок закодований з використанням контекстно-адаптивного двійкового арифметичного кодування (САВАС); визначати контекст для двійкового індексу закодованого двійкового ланцюжка на основі розміру блока перетворення, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами блока перетворення; і декодувати закодований двійковий ланцюжок з використанням САВАС на основі, щонайменше частково, визначеного контексту. 23. Пристрій за п. 22, в якому контекст призначається кожному з щонайменше двох двійкових індексів відповідно до індексу контексту (ctx_index), визначеного функцією: ctx_index = (n>>log2(T))+15, де n - двійковий індекс, а Т - розмір блока перетворення. 24. Пристрій за п. 22, в якому контекст призначається останньому двійковому індексу блока 16×16 перетворення та останньому двійковому індексу блока 32×32 перетворення. 25. Пристрій за п. 24, в якому другий контекст призначається суміжним двійковим індексам блока 16×16 перетворення. 26. Пристрій за п. 22, в якому декодування закодованого двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, визначеного контексту, включає в себе оновлення контексту на основі величини закодованого двійкового ланцюжка, і в якому блок перетворення є першим блоком перетворення; і в якому відеодекодер додатково виконаний з можливістю: одержувати другий закодований двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині другого блока перетворення, причому перший блок перетворення і другий блок перетворення мають різні розміри; і декодувати другий закодований двійковий ланцюжок з використанням САВАС на основі, щонайменше частково, оновленого контексту. 27. Комп'ютерно-зчитуваний носій даних, який має команди, що зберігаються на ньому, які, при їх виконанні, спонукають один або декілька процесорів пристрою кодування відеосигналу: одержувати двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині блока перетворення коефіцієнтів перетворення; визначати контекст для двійкового індексу двійкового ланцюжка на основі розміру блока перетворення, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами блока перетворення; і кодувати двійковий ланцюжок з використанням контекстно-адаптивного двійкового арифметичного кодування (САВАС) на основі, щонайменше частково, визначеного контексту. 28. Комп'ютерно-зчитуваний носій даних за п. 27, причому контекст призначається кожному з щонайменше двох двійкових індексів відповідно до індексу контексту (ctx_index), визначеного функцією: ctx_index = (n>>log2(T))+15, де n - двійковий індекс, а Т - розмір блока перетворення. 29. Комп'ютерно-зчитуваний носій даних за п. 27, причому контекст призначається останньому двійковому індексу блока 16×16 перетворення і останньому двійковому індексу блока 32×32 перетворення. 30. Комп'ютерно-зчитуваний носій даних за п. 29, причому другий контекст призначається суміжним двійковим індексам блока 16×16 перетворення. 31. Комп'ютерно-зчитуваний носій даних за п. 27, причому кодування двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, визначеного контексту, включає в себе оновлення контексту на основі величини двійкового ланцюжка, і в якому блок 26 UA 109505 C2 5 10 15 20 25 30 35 перетворення є першим блоком перетворення; і в якому команди, при їх виконанні, додатково спонукають один або декілька процесорів пристрою кодування відеосигналу: одержувати другий двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині другого блока перетворення, причому перший блок перетворення і другий блок перетворення мають різні розміри; і кодувати другий двійковий ланцюжок з використанням САВАС на основі, щонайменше частково, оновленого контексту. 32. Комп'ютерно-зчитуваний носій даних, який має команди, що зберігаються на ньому, які, при їх виконанні, спонукають один або декілька процесорів пристрою декодування відеосигналу: одержувати закодований двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині блока перетворення коефіцієнтів перетворення, причому закодований двійковий ланцюжок закодований з використанням контекстно-адаптивного двійкового арифметичного кодування (САВАС); визначати контекст для двійкового індексу закодованого двійкового ланцюжка на основі розміру блока перетворення, причому контекст призначається щонайменше двом двійковим індексам, причому кожний з щонайменше двох двійкових індексів зв'язаний з різними розмірами блока перетворення; і декодувати закодований двійковий ланцюжок з використанням САВАС на основі, щонайменше частково, визначеного контексту. 33. Комп'ютерно-зчитуваний носій даних за п. 32, причому контекст призначається кожному з щонайменше двох двійкових індексів відповідно до індексу контексту (ctx_index), визначеного функцією: ctx_index = (n>>log2(T))+15, де n - двійковий індекс, а Т - розмір блока перетворення. 34. Комп'ютерно-зчитуваний носій даних за п. 32, причому контекст призначається останньому двійковому індексу блока 16×16 перетворення і останньому двійковому індексу блока 32×32 перетворення. 35. Комп'ютерно-зчитуваний носій даних за п. 34, причому другий контекст призначається суміжним двійковим індексам блока 16×16 перетворення. 36. Комп'ютерно-зчитуваний носій даних за п. 32, причому декодування закодованого двійкового ланцюжка з використанням САВАС на основі, щонайменше частково, визначеного контексту, включає в себе оновлення контексту на основі величини закодованого двійкового ланцюжка, і в якому блок перетворення є першим блоком перетворення; і в якому команди, при їх виконанні, додатково спонукають один або декілька процесорів пристрою декодування відеосигналу: одержувати другий закодований двійковий ланцюжок, який вказує положення останнього значущого коефіцієнта всередині другого блока перетворення, причому перший блок перетворення і другий блок перетворення мають різні розміри; і декодувати другий закодований двійковий ланцюжок з використанням САВАС на основі, щонайменше частково, оновленого контексту. 40 27 UA 109505 C2 28

Дивитися

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

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

Context optimization for last significant coefficient position coding

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

Guo, Liwei, Chien, Wei-Jung, Karczewicz, Marta

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

Го Ливэй, Чиэнь Вэй-Цзюн, Карчевич Марта

МПК / Мітки

МПК: H03M 7/40, H04N 7/00

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

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

<a href="https://ua.patents.su/34-109505-kontekstna-optimizaciya-dlya-koduvannya-polozhennya-ostannogo-znachushhogo-koeficiehnta.html" target="_blank" rel="follow" title="База патентів України">Контекстна оптимізація для кодування положення останнього значущого коефіцієнта</a>

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