Кодування відео, використовуючи адаптивне розрізнення вектора руху
Формула / Реферат
1. Спосіб ентропійного кодування відеоданих, причому спосіб включає:
коли абсолютне значення -компоненти значення різниці векторів руху для поточного блока більше ніж нуль, і коли абсолютне значення
-компоненти значення різниці векторів руху для поточного блока більше ніж нуль, ентропійне кодування інформації, що представляє значення різниці векторів руху, причому ентропійне кодування інформації, що представляє значення різниці векторів руху, містить:
перемежовування інформації, що представляє те, чи більше згадане абсолютне значення -компоненти значення різниці векторів руху для згаданого поточного блока відеоданих ніж нуль, і інформації, що представляє те, чи більше згадане абсолютне значення
-компоненти значення різниці векторів руху ніж нуль; і
перемежовування інформації, що представляє абсолютне значення -компоненти значення різниці векторів руху, інформації, що представляє абсолютне значення
-компоненти значення різниці векторів руху, знака
-компоненти значення різниці векторів руху і знака
-компоненти значення різниці векторів руху.
2. Спосіб за п. 1, в якому ентропійне кодування містить контекстно-адаптивне двійкове арифметичне кодування (САВАС), причому спосіб додатково містить:
обчислення вектора руху для поточного блока відеоданих; і
обчислення значення різниці векторів руху як різниці між вектором руху для поточного блока відеоданих і прогнозувальника вектора руху, визначеного для поточного блока відеоданих.
3. Спосіб за п. 1, в якому ентропійне кодування містить декодування згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС), причому спосіб додатково містить:
визначення прогнозувальник вектора руху для поточного блока відеоданих; і
обчислення вектора руху для поточного блока відеоданих як суми значення різниці векторів руху і прогнозувальник вектора руху.
4. Спосіб за п. 1, який додатково містить:
кодування значення, що представляє те, чи має вектор руху поточного блока відеоданих першу субпіксельну точність або другу субпіксельну точність, в якому друга субпіксельна точність більше, ніж перша субпіксельна точність; і
коли вектор руху має другу субпіксельну точність, коли -компонента значення різниці векторів руху не дорівнює нулю, і коли
-компонента значення різниці векторів руху не дорівнює нулю, то кодування інформації, що представляє абсолютне значення
-компоненти значення різниці векторів руху і кодування інформації, що представляє абсолютне значення
-компоненти значення різниці векторів руху, містить кодування спільно кодованого значення, що представляє як
-компоненту значення різниці векторів руху, так і
-компоненту значення різниці векторів руху.
5. Спосіб за п. 4, який додатково містить визначення, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, містить:
визначення порогового значення, асоційованого з вектором руху; і
визначення, що вектор руху має першу субпіксельну точність, коли і -компонента значення різниці векторів руху, і
-компонента значення різниці векторів руху більше, ніж поріг.
6. Спосіб за п. 5, в якому визначення, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, містить, коли щонайменше одна з -компоненти значення різниці векторів руху і
-компоненти значення різниці векторів руху менше ніж або дорівнює порогу, визначення, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, на основі значення прапора дозволу вектора руху.
7. Спосіб за п. 4, в якому кодування значення, що представляє те, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, містить кодування значення для прапора дозволу вектора руху.
8. Спосіб за п. 1, в якому кодування інформації, що представляє абсолютне значення-компоненти значень різниці векторів руху, містить кодування абсолютного значення
-компоненти значень різниці векторів руху як
, в якому
містить
-компоненту значення різниці векторів руху; і
в якому кодування інформації, що представляє абсолютне значення -компоненти значень різниці векторів руху, містить кодування абсолютного значення
- компоненти значень різниці векторів руху як
, в якому
містить
-компоненту значення різниці векторів руху.
9. Пристрій для ентропійного кодування даних відео, причому пристрій містить ентропійний кодувач відео, сконфігурований, щоб, коли абсолютне значення -компоненти значення різниці векторів руху більше ніж нуль і коли абсолютне значення
-компоненти значення різниці векторів руху більше ніж нуль, ентропійно кодувати інформацію, що представляє значення різниці векторів руху, причому, щоб ентропійно кодувати інформацію, що представляє значення різниці векторів руху, пристрій для ентропійного кодування сконфігурований, щоб:
перемежовувати інформацію, що представляє те, чи більше абсолютне значення згаданої -компоненти згаданого значення різниці векторів руху для поточного блока відеоданих ніж нуль, і інформації, що представляє те, чи більше абсолютне значення згаданої
-компоненти згаданого значення різниці векторів руху ніж нуль, і
перемежовувати інформацію, що представляє абсолютне значення -компоненти значення різниці векторів руху, інформацію, що представляє абсолютне значення
-компоненти значення різниці векторів руху, знак
-компоненти значення різниці векторів руху і знак
-компоненти значення різниці векторів руху.
10. Пристрій за п. 9, в якому ентропійний кодувач відео містить відеокодер згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС), і в якому відеокодер САВАС також сконфігурований, щоб обчислювати вектор руху для поточного блока відеоданих і обчислювати значення різниці векторів руху як різницю між вектором руху для поточного блока відеоданих і прогнозувальником вектора руху, визначеним для поточного блока відеоданих.
11. Пристрій за п. 9, в якому ентропійний кодувач відео містить відеодекодер згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС), і в якому відеодекодер САВАС також сконфігурований, щоб визначати прогнозувальник вектора руху для поточного блока відеоданих і обчислювати вектор руху для поточного блока відеоданих як суму значення різниці векторів руху і прогнозувальника вектора руху.
12. Пристрій за п. 9, в якому кодувач відео сконфігурований, щоб кодувати значення, що представляє те, чи має вектор руху поточного блока відеоданих першу субпіксельну точність або другу субпіксельну точність, в якому друга субпіксельна точність більше, ніж перша суб-піксельна точність, і в якому кодувач відео сконфігурований, щоб кодувати спільно закодоване значення, що представляє і -компоненту значення різниці векторів руху, і
-компоненту значення різниці векторів руху, коли вектор руху має другу субпіксельну точність, коли
-компонента значення різниці векторів руху не дорівнює нулю і коли
-компонента значення різниці векторів руху не дорівнює нулю.
13. Пристрій за п. 12, в якому, щоб визначити, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, кодувач відео сконфігурований, щоб визначити порогове значення, асоційоване з вектором руху, і визначати, що вектор руху має першу субпіксельну точність, коли як -компонента значення різниці векторів руху, так і
-компонента значення різниці векторів руху більше, ніж поріг.
14. Пристрій за п. 13, в якому, щоб визначити, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, кодувач відео сконфігурований, щоб, коли щонайменше одна з -компоненти значення різниці векторів руху і
-компоненти значення різниці векторів руху менше ніж або дорівнює порогу, визначити, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, на основі значення прапора дозволу вектора руху.
15. Пристрій за п. 12, в якому, щоб визначити, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, кодувач відео сконфігурований, щоб визначити, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, на основі значення прапора дозволу вектора руху.
16. Пристрій за п. 9, в якому, щоб кодувати інформацію, що представляє абсолютне значення -компоненти значень різниці векторів руху, кодувач відео сконфігурований, щоб кодувати абсолютне значення
-компоненти значень різниці векторів руху як
, в якому
містить
-компоненту значення різниці векторів руху; і в якому, щоб закодувати інформацію, що представляє абсолютне значення
-компоненти значень різниці векторів руху, кодувач відео сконфігурований, щоб закодувати абсолютне значення
-компоненти значень різниці векторів руху як
, в якому
містить
-компоненту значення різниці векторів руху.
17. Пристрій за п. 9, в якому пристрій містить щонайменше одне з: інтегральної схеми; мікропроцесора і пристрою бездротового зв'язку, який включає в себе кодувач відео.
18. Пристрій для ентропійного кодування даних відео, причому пристрій містить:
засіб для ентропійного кодування інформації, що представляє значення різниці векторів руху, коли абсолютне значення -компоненти згаданого значення різниці векторів руху більше ніж нуль і коли абсолютне значення
-компоненти значення різниці векторів руху більше ніж нуль, причому засіб для ентропійного кодування інформації, що представляє значення різниці векторів руху, містить:
засіб для перемежовування інформації, що представляє те, чи більше абсолютне значення -компоненти значення різниці векторів руху для поточного блока відеоданих ніж нуль, і інформації, що представляє те, чи більше абсолютне значення
-компоненти значення різниці векторів руху ніж нуль;
засіб для перемежовування інформації, що представляє абсолютне значення -компоненти значення різниці векторів руху, інформації, що представляє абсолютне значення
-компоненти значення різниці векторів руху, коли абсолютне значення
-компоненти значення різниці векторів руху більше ніж нуль, знака
-компоненти значення різниці векторів руху і знака
-компоненти значення різниці векторів руху.
19. Пристрій за п. 18, в якому засіб для ентропійного кодування містить засіб для виконання кодування згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС), причому пристрій додатково містить:
засіб для обчислення вектора руху для поточного блока відеоданих; і
засіб для обчислення значення різниці векторів руху як різниці між вектором руху для поточного блока відеоданих і прогнозувальником вектора руху, визначеного для поточного блока відеоданих.
20. Пристрій за п. 18, в якому засіб для ентропійного кодування містить засіб для виконання декодування згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС), причому пристрій додатково містить:
засіб для визначення прогнозувальника вектора руху для поточного блока відеоданих; і
засіб для обчислення вектора руху для поточного блока відеоданих як суми значення різниці векторів руху і прогнозувальника вектора руху.
21. Пристрій за п. 18, який додатково містить:
засіб для кодування значення, що представляє те, чи має вектор руху поточного блока відеоданих першу субпіксельну точність або другу субпіксельну точність, в якому друга субпіксельна точність більше, ніж перша субпіксельна точність; і
засіб для кодування спільно закодованого значення, що представляє як -компоненту значення різниці векторів руху, так і
-компоненту значення різниці векторів руху, коли вектор руху має другу субпіксельну точність, коли
-компонента значення різниці векторів руху не дорівнює нулю і коли
-компонента значення різниці векторів руху не дорівнює нулю.
22. Пристрій за п. 21, який додатково містить засіб для визначення, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, містить:
засіб для визначення порогового значення, асоційованого з вектором руху; і
засіб для визначення, що вектор руху має першу субпіксельну точність, коли і х-компонента значення різниці векторів руху і -компонента значення різниці векторів руху більше, ніж поріг.
23. Пристрій за п. 22, в якому засіб для визначення, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, містить засіб для визначення, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, на основі значення прапора дозволу вектора руху, коли щонайменше одна з -компоненти значення різниці векторів руху і
-компоненти значення різниці векторів руху менше ніж або дорівнює порогу.
24. Пристрій за п. 21, в якому засіб для кодування значення, що представляє те, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, містить засіб для кодування значення для прапора дозволу вектора руху.
25. Пристрій за п. 18, в якому засіб для кодування інформації, що представляє абсолютне значення -компоненти значень різниці векторів руху, містить засіб для кодування абсолютного значення
-компоненти значень різниці векторів руху як
, в якому
містить
-компоненту значення різниці векторів руху; і
в якому засіб для кодування інформації, що представляє абсолютне значення -компоненти значень різниці векторів руху, містить засіб для кодування абсолютного значення
-компоненти значень різниці векторів руху як
, в якому
містить
-компоненту значення різниці векторів руху.
26. Зчитуваний комп'ютером запам'ятовуючий носій, який має збережені на ньому інструкції, які, коли виконуються, змушують один або більше процесорів пристрою для кодування даних відео:
коли абсолютне значення -компоненти значення різниці векторів руху для поточного блока більше ніж нуль і абсолютне значення
-компоненти значення різниці векторів руху для поточного блока більше ніж нуль, ентропійно кодувати інформацію, що представляє значення різниці векторів руху, причому інструкції, які змушують один або більше процесорів ентропійно кодувати інформацію, що представляє значення різниці векторів руху, змушують один або більше процесорів
перемежовувати інформацію, що представляє те, чи більше згадане абсолютне значення -компоненти значення різниці векторів руху для поточного блока відеоданих ніж нуль, і інформацію, що представляє те, чи більше абсолютне значення
-компоненти значення різниці векторів руху ніж нуль; і
перемежовувати інформацію, що представляє абсолютне значення -компоненти значення різниці векторів руху, і інформацію, що представляє абсолютне значення
-компоненти значення різниці векторів руху, знак
-компоненти значення різниці векторів руху і знак
-компоненти значення різниці векторів руху.
27. Зчитуваний комп'ютером запам'ятовуючий носій за п. 26, в якому інструкції, які змушують один або більше процесорів виконувати ентропійне кодування, містять інструкції, які, коли виконуються, змушують один або більше процесорів виконувати кодування згідно з контекстно-адаптивним двійковим арифметичним кодуванням (CABAC), додатково містять інструкції, які змушують один або більше процесорів:
обчислювати вектор руху для поточного блока відеоданих; і
обчислювати значення різниці векторів руху як різницю між вектором руху для поточного блока відеоданих і прогнозувальником вектора руху, визначеним для поточного блока відеоданих.
28. Зчитуваний комп'ютером запам'ятовуючий носій за п. 26, в якому інструкції, які змушують один або більше процесорів виконувати ентропійне кодування, містять інструкції, які, коли виконуються, змушують один або більше процесорів виконувати декодування згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС), додатково містять інструкції, які змушують один або більше процесорів:
визначати прогнозувальник вектора руху для поточного блока відеоданих; і
обчислювати вектор руху для поточного блока відеоданих як суму значення різниці векторів руху і прогнозувача вектора руху.
29. Зчитуваний комп'ютером запам'ятовуючий носій за п. 26, який додатково містить інструкції, які змушують один або більше програмованих процесорів:
кодувати значення, що представляє те, чи має вектор руху поточного блока відеоданих першу субпіксельну точність або другу субпіксельну точність, в якому друга субпіксельна точність більше, ніж перша субпіксельна точність; і
в якому інструкції, які змушують один або більше процесорів кодувати інформацію, що представляє абсолютне значення -компоненти значення різниці векторів руху, і кодувати інформацію, що представляє абсолютне значення
-компоненти значення різниці векторів руху, містять інструкції, які, коли виконуються, змушують один або більше процесорів спільно кодувати значення, що представляє і
-компоненту значення різниці векторів руху, і
-компоненту значення різниці векторів руху, коли вектор руху має другу субпіксельну точність, коли
-компонента значення різниці векторів руху не дорівнює нулю і коли
-компонента значення різниці векторів руху не дорівнює нулю.
30. Зчитуваний комп'ютером запам'ятовуючий носій за п. 29, який додатково містить інструкції, які змушують один або більше програмованих процесорів визначати, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, містить інструкції, які змушують один або більше програмованих процесорів:
визначати порогове значення, асоційоване з вектором руху; і
визначати, що вектор руху має першу субпіксельну точність, коли і -компонента значення різниці векторів руху, і
-компонента значення різниці векторів руху більше, ніж поріг.
31. Зчитуваний комп'ютером запам'ятовуючий носій за п. 30, в якому інструкції, які змушують один або більше програмованих процесорів визначати, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, містять інструкції, які, коли виконуються, змушують один або більше програмованих процесорів, коли щонайменше одна з -компоненти значення різниці векторів руху і
-компоненти значення різниці векторів руху менше ніж або дорівнює порогу, визначати, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, на основі значення прапора дозволу вектора руху.
32. Зчитуваний комп'ютером запам'ятовуючий носій за п. 29, в якому інструкції, які змушують один або більше програмованих процесорів кодувати значення, що представляє те, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, містять інструкції, які, коли виконуються, змушують один або більше програмованих процесорів кодувати значення для прапора дозволу вектора руху.
33. Зчитуваний комп'ютером запам'ятовуючий носій за п. 26, в якому інструкції, які змушують один або більше програмованих процесорів кодувати інформацію, що представляє абсолютне значення -компоненти значень різниці векторів руху, містять інструкції, які, коли виконуються, змушують один або більше процесорів кодувати абсолютне значення
-компоненти значень різниці векторів руху як
, в якому
містить
-компоненту значення різниці векторів руху; і
при цьому інструкції, які змушують один або більше процесорів кодувати інформацію, що представляє абсолютне значення -компоненти значень різниці векторів руху, містять інструкції, які змушують один або більше процесорів кодувати абсолютне значення
-компоненти значень різниці векторів руху як
, в якому
містить
-компоненту значення різниці векторів руху.
Текст
Реферат: В одному прикладі пристрій кодування відео включає в себе кодувач відео, сконфігурований, щоб кодувати інформацію, яка представляє те, чи більше абсолютне значення х-компоненти значення різниці векторів руху для поточного блока відеоданих ніж нуль, кодувати інформацію, яка представляє те, чи більше абсолютне значення у-компоненти значення різниці векторів руху ніж нуль, коли абсолютне значення х-компоненти більше ніж нуль, кодувати інформацію, яка представляє абсолютне значення х-компоненти, коли абсолютне значення у-компоненти більше ніж нуль, кодувати інформацію, яка представляє абсолютне значення у-компоненти, коли абсолютне значення х-компоненти більше ніж нуль, кодувати знак х-компоненти, і коли абсолютне значення у-компоненти більше ніж нуль, кодувати знак у-компоненти. UA 110981 C2 (12) UA 110981 C2 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 60 Дана заявка заявляє пріоритет попередньої заявки на патент США № 61/504,150, поданої 1 липня 2011 року, і попередньої заявки на патент США № 61/554,398, поданої 1 листопада 2011 року, весь вміст кожної з яких тим самим включений за посиланням. Галузь техніки Дане розкриття стосується кодування відео, і більш докладно, кодування відео даних для компенсації руху при кодуванні відео. Рівень техніки Цифрові здатності відео можуть бути включені в широкий діапазон пристроїв, включаючи цифрові телевізори, цифрові системи прямого мовлення, бездротові системи мовлення, персональні цифрові помічники (PDA), ноутбуки або настільні комп'ютери, цифрові камери, цифрові пристрої запису, цифрові медіаплеєри, відео ігрові пристрої, пульти відеоігор, стільникові або супутникові радіотелефони, пристрої організації відео телеконференцій, тощо. Цифрове відео пристрою реалізовує способи стиснення відео, такі як описані в стандартах, визначених MPEG-2, MPEG-4, ITU-T H.263 або ITU-T H.264/MPEG-4, Частина 10, Вдосконалене відео кодування (AVC), і розширення таких стандартів, щоб передавати і приймати цифрову відео інформацію більш ефективно. Способи стиснення відео виконують просторове прогнозування і/або часове прогнозування, щоб зменшити або видалити надмірність, властиву відео послідовностям. Для основаного на блоці кодування відео кадр або вирізка відео можуть бути сегментовані на макроблоки. Кожний макроблок може бути далі сегментований. Макроблоки у внутрішньо кодованому (I) кадрі або вирізці кодують, використовуючи просторове прогнозування відносно сусідніх макроблоків. Макроблоки у зовні кодованому (Р або В) кадрі або вирізці можуть використовувати просторове прогнозування відносно сусідніх макроблоків у тих самих кадрі або вирізці або часове прогнозування відносно інших опорних кадрів. Суть винаходу В цілому, дане розкриття забезпечує способи для спільного кодування значень різниці векторів руху для х- та у- компонент вектора руху. Спільне кодування значень різниці векторів руху можуть стосуватися процесу, в якому інформація, яка представляє х- та у- компоненти значення різниці векторів руху кодують або декодують разом під час процесу кодування, наприклад, за допомогою перемежовування значень для х- та у- компонент або за допомогою кодування єдиного значення, яке представляє і х- та у- компоненти значення різниці векторів руху. У деяких прикладах інформація, яка представляє х- та у- компоненти різниці векторів руху можуть включати в себе інформацію, яка представляє те, чи більше х- і/або у- компоненти різниці векторів руху, ніж нуль, і інформацію, яка представляє знак х- і/або у- компоненти значення різниці векторів руху. Деяка інформація, така як знак і величина х- і/або у- компонент, може бути сигналізована умовно на основі того, чи більше величина х- або у- компоненти значення різниці векторів руху, ніж нуль. Дане розкриття також забезпечує способи для сигналізації точності векторів руху. Вектора руху можуть мати суб-піксельну точність, наприклад, суб-піксельну точність в одну чверть або піксельну точність в одну восьму. В одному прикладі спосіб кодування відео даних включає в себе кодування інформації, яка представляє те, чи більше абсолютне значення х- компоненти значення різниці векторів руху для поточного блока відео даних ніж нуль, кодування інформації, яка представляє те, чи більше абсолютне значення у- компоненти значення різниці векторів руху, ніж нуль, коли абсолютне значення х- компоненти значення різниці векторів руху більше ніж нуль, кодування інформації, яка представляє абсолютне значення х- компоненти значення різниці векторів руху, коли абсолютне значення у- компоненти значення різниці векторів руху більше ніж нуль, кодування інформації, яка представляє абсолютне значення у- компоненти значення різниці векторів руху, коли абсолютне значення х- компоненти значення різниці векторів руху більше ніж нуль, кодування знаку х- компоненти значення різниці векторів руху, і коли абсолютне значення укомпоненти значення різниці векторів руху більше ніж нуль, кодування знаку у- компоненти значення різниці векторів руху. В іншому прикладі пристрій включає в себе відео кодувач, сконфігурований, щоб кодувати інформацію, яка представляє те, чи більше абсолютне значення х- компоненти значення різниці векторів руху для поточного блока відео даних ніж нуль, кодувати інформацію, яка представляє те, чи більше абсолютне значення у- компоненти значення різниці векторів руху ніж нуль, коли абсолютне значення х- компоненти значення різниці векторів руху більше ніж нуль, кодувати інформацію, яка представляє абсолютне значення х- компоненти значення різниці векторів руху, коли абсолютне значення у- компоненти значення різниці векторів руху більше ніж нуль, кодувати інформацію, яка представляє абсолютне значення у- компоненти значення різниці векторів руху, коли абсолютне значення х- компоненти значення різниці векторів руху більше 1 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 ніж нуль, кодувати знак х- компоненти значення різниці векторів руху, і коли абсолютне значення у- компоненти значення різниці векторів руху більше ніж нуль, кодувати знак укомпоненти значення різниці векторів руху. В іншому прикладі комп'ютерний програмний продукт включає в себе зчитуваний комп'ютером носій, що має збережені на ньому інструкції, які, коли виконуються, змушують один або більше процесорів пристрою кодувати відео дані, щоб кодувати інформацію, яка представляє те, чи більше абсолютне значення х- компоненти значення різниці векторів руху для поточного блока відео даних ніж нуль, кодувати інформацію, яка представляє те, чи більше абсолютне значення у- компоненти значення різниці векторів руху ніж нуль, коли абсолютне значення х- компоненти значення різниці векторів руху більше ніж нуль, кодувати інформацію, яка представляє абсолютне значення х- компоненти значення різниці векторів руху, коли абсолютне значення у- компоненти значення різниці векторів руху більше ніж нуль, кодувати інформацію, яка представляє абсолютне значення у- компоненти значення різниці векторів руху, коли абсолютне значення х- компоненти значення різниці векторів руху більше ніж нуль, кодувати знак х- компоненти значення різниці векторів руху, і коли абсолютне значення укомпоненти значення різниці векторів руху більше ніж нуль, кодувати знак у- компоненти значення різниці векторів руху. В іншому прикладі пристрій включає в себе засіб для кодування значення, яке представляє те, чи має вектор руху поточного блока відео даних першу суб-піксельну точність або другу субпіксельну точність, в якому друга суб-піксельна точність більше ніж перша суб-піксельна точність, і коли вектор руху має другу суб-піксельну точність, коли х- компонент значення різниці векторів руху не дорівнює нулю, і коли у- компонент значення різниці векторів руху не дорівнює нулю, в якому кодування інформації, яка представляє абсолютне значення х- компоненти значення різниці векторів руху і кодування інформації, яка представляє абсолютне значення укомпоненти значення різниці векторів руху, містить кодування спільно кодованого значення, яке представляє і х- компоненті значення різниці векторів руху і у- компоненту значення різниці векторів руху. Подробиці одного або більше прикладів сформульовані в супроводжуючих кресленнях та описі нижче. Інші ознаки, задачі та переваги будуть очевидні з опису і креслень і з формули винаходу. Короткий опис креслень Фіг. 1 є блок-схемою, яка ілюструє один приклад системи кодування і декодування відео, сумісна зі способами даного розкриття. Фіг. 2 є блок-схемою, яка ілюструє один приклад відео кодера, сумісного зі способами даного розкриття. Фіг. 3 є блок-схемою, яка ілюструє один приклад відео декодера, сумісного зі способами даного розкриття. Фіг. 4 є послідовністю операцій, що ілюструє зразковий спосіб для спільного кодування х- та у- компонент значення різниці векторів руху і ентропійного кодування поточного блока. Фіг. 5 є послідовністю операцій, що ілюструє зразковий спосіб окремої сигналізації значення різниці векторів руху відповідно до тестової моделі 3.0 HEVC (HM 3.0). Фіг. 6 є послідовністю операцій, що ілюструє зразковий спосіб дляспільного кодування х- та у- компонент значення різниці векторів руху. Фіг. 7 є послідовністю операцій, що ілюструє зразковий спосіб для спільного кодування х- та у- компонент значення різниці векторів руху і кодувати розрізнення х- та у- компонент значення різниці векторів руху. Фіг. 8 є послідовністю операцій, що ілюструє зразковий спосіб для того, щоб спільно декодувати х- та у- компоненти значення різниці векторів руху і ентропійно декодувати кодовані дані, щоб сформувати поточний блок. Фіг. 9 є послідовністю операцій, що ілюструє зразковий спосіб для того, щоб спільно декодувати х- та у- компоненти значення різниці векторів руху. Докладний опис В цілому дане розкриття описує способи для кодування даних для значень різниці векторів руху під час кодування відео. Відео дані включають в себе послідовність кадрів (або картинки), що відтворюються в швидкій послідовності, щоб моделювати рух. Кожний кадр відео даних може бути сегментований на блоки. Під час кодування відео, і більш конкретно - зовнішнього прогнозування, пристрій, такий як відео кодер або відео декодер, може прогнозувати піксельне значення блока. Відео кодер або декодер можуть основувати прогнозування для блока на піксельних значеннях блока з іншого кадру або з піксельних значень сусіднього блока. 2 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 60 Для внутрішнього прогнозування відео кодер може вказати зміщення опорного блока, використовуючи вектор руху. Вектор руху може мати х- компоненту та у- компоненту. х- та укомпоненти вектора руху можуть вказувати зміщення із суб-піксельною точністю, такою як половинна піксельна точність, одна-четвертна піксельна точність, або піксельна точність в одну восьму. Щоб досягнути суб-піксельної точності, відео кодер або декодер можуть використовувати метод, такий як інтерполяція, щоб визначити суб-піксельні значення в місцеположеннях, вказаних вектором руху. Після визначення х- та у- компонент вектора руху, відео кодер може обчислити значення різниці векторів руху (MVD) для компонентів вектора руху відносно прогнозувальника вектора руху. Дане розкриття в цілому забезпечує способи для спільного кодування значень MVD руху. У даному розкритті спільне кодування може стосуватися способів кодування, в яких інформація, що відноситься до х- та у- компонентів значення різниці векторів руху, перемежовується, на противагу кодуванню всієї інформації, що відноситься до однієї з х- або у- компонент раніше, ніж кодувати яку-небудь інформацію, що відноситься до другого компонента значення різниці векторів руху. Об'єднане кодування може також стосуватися використання одного значення, щоб представити значення для обох з х- та у- компонент. Крім того, дане розкриття також описує способи для кодування різниці векторів руху, які можуть мати різну суб-піксельну точність, наприклад, чверть-піксельну точність або піксельну точність в одну восьму, і вказівки точності різниць векторів руху і векторів руху, асоційованих з цими векторами руху. Відео послідовність включає в себе один або більше кадрів або картинок. Кожна з картинок може бути розділена на один або більше блоків, кожний з яких може бути індивідуально кодований. Зусилля робляться, щоб сформувати новий стандарт кодування, який в цей час називається кодування відео високої ефективності (HEVC), і іноді називається ITU H.265. Цей стандарт, що з'являється, відноситься до одиниці кодування (CU) як конкретний блок пікселів, що включає в себе дані яскравості і дані кольоровості, де дані яскравості мають розрізнення 2Nx2N, і дані кольоровості мають розрізнення NxN. Одиниця кодування може бути розділена на чотири однакових розміри, квадратних суб-одиниць кодування, що не накладаються. Кожна з суб-одиниць кодування може також бути розділена таким чином в інші суб-одиниці кодування. Одиниця кодування, яка не розділена на суб-одиниці кодування, згадується як одиниця кодування листового (кінцевого) вузла. Одиниці кодування листового вузла можуть включати в себе одиниці прогнозування (PU) і одиниці перетворення (TU), де PU представляє дані прогнозування, а TU представляють залишкові дані, тобто, кодовані піксель-за-пікселем різниці між даними прогнозування і первинними некодованими даними для пікселів, що відповідають цій TU. Як приклад, PU можуть бути кодовані, використовуючи режим зовнішнього прогнозування, в якому відео кодер може обчислити вектор руху для PU, використовуючи процес оцінки руху. Відео кодер може далі сигналізувати режим кодування для PU і значення різниці векторів руху для обчисленого вектора руху, як описано в даному розкритті. Аналогічно, відео декодер може використовувати інформацію, що вказує режим прогнозування, включений в кодований потік бітів, щоб сформувати дані прогнозування для кодованих блоків. Дані можуть далі включати в себе точність вектора руху, так само як індикацію дробової піксельної позиції, на яку вектор руху вказує (наприклад, піксельна позиція в одну восьму для опорного кадру або опорної вирізки). Пристрій кодування відео, такий як відео кодер або відео декодер, може визначити прогнозуючий вектор руху для одиниці кодування (такий як кадр, вирізка або блок). Пристрій кодування відео може використовувати х- та у- компоненти прогнозуючого вектора руху (який також називається прогнозувальником вектора руху), щоб обчислити значення різниці векторів руху вектора руху для поточного блока. Пристрій кодування відео може реалізувати способи даного розкриття, щоб спільно кодувати значення різниці векторів руху для векторів руху, які можуть мати суб-піксельну точність. Як описано вище, дані прогнозування PU для того, щоб формувати прогнозуючий блок, можуть бути основані на раніше кодованих даних просторово сусідніх CU або CU, сусідніх у часі кадрів, які були раніше закодовані. Відео кодер може обчислити вектор руху PU, який вказує місцеположення прогнозуючого блока для відповідної CU у часово окремому раніше кодованому кадрі. Відео кодер може далі обчислити значення різниці векторів руху для цього вектора руху, щоб закодувати вектор руху. Значення різниці векторів руху може звичайно відповідати різниці між обчисленим вектором руху і прогнозувальником вектора руху. Вектор руху для поточного блока може мати х- компоненту (MV_x) для горизонтального зміщення, і укомпоненту (MV_y) для вертикального зміщення. Прогнозувальник вектора руху може мати хкомпоненту p_x та у- компоненту p_y. Потім прогнозувальник вектора руху може бути визначений як MV_x-p_x, MV_y-p_y. 3 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 60 Дане розкриття забезпечує способи для спільного кодування х- компоненти та у- компоненти значення різниці векторів руху. У даному розкритті спільне кодування може стосуватися способів кодування, в яких інформація, що відноситься до х- та у- компонентів значення різниці векторів руху, перемежовується. Інформація, що відноситься до різниці векторів руху, може включати в себе значення, яке представляє, чи є компонент різниці векторів руху нулем, одним або більше значеннями, які представляють значення знаку х- і/або у- компонент, і одним або більше значеннями, що представляють абсолютне значення х- та у- компонент значення різниці векторів руху, як деякі приклади. Відповідно до способів даного розкриття, інформація, що відноситься до одного або обох компонентів значення різниці векторів руху, можуть бути закодовані змінним способом таким чином, що вся інформація, яка відноситься до однієї компоненті різниці векторів руху, не повинна бути закодована раніше кодування інформації, яка відноситься до іншої компоненті різниці векторів руху. Іншими словами, елемент х- компоненти, такий як, чи має х- компонента величину, більше ніж нуль, може перемежовуватися з відповідним елементом у- компоненти. Спільне кодування х- та у- компонент різниці векторів руху контрастує з окремим кодуванням всієї інформації, що відноситься до однієї з х- або у- компонент значення різниці векторів руху, наприклад, згідно з угодою в ITU-T H.264. Спільне кодування х- та у- компонент значень різниці векторів руху може зменшити складність потоку бітів кодування відео, що може привести до більш низької частоти проходження бітів для закодованого відео, так само як і інших потенційних переваг, описаних тут. При кодуванні відео згідно із звичайним стандартом ITU-T H.264, вектора руху можуть мати чверть-піксельну (тобто в одну чверть пікселя) точність. У деяких випадках точність в одну восьму пікселя (тобто, одну-восьму пікселя) може забезпечити деякі переваги. Тестова модель кодування відео високої ефективності (HM) має можливість сформувати блоки прогнозування, використовуючи вектора руху, що мають піксельну точність в одну восьму. Зокрема, HM забезпечує здатність адаптивно вибрати або чверть-піксельну точність або піксельну точність в одну восьму. Таким чином, вектора руху можуть мати адаптивну точність, яка також називається розрізненням вектора руху. Це дробова, або суб-цілочисельна, піксельна точність може бути використана для визначення вектора руху відносно блока інтерпольованих піксельних значень в раніше закодованому кадрі. Дане розкриття також забезпечує способи для вибору конкретних випадків, в яких вектора руху в одну чверть або одну восьму піксельної точності можуть використовуватися, і як точність вектора руху може бути сигналізована для конкретного вектора руху. Зокрема, способи даного розкриття направлені на вибір розрізнення вектора руху, і сигналізації цього розрізнення, використовуючи прапор розрізнення руху в деяких випадках. Дане розкриття також забезпечує способи для спільної сигналізації х- та у- компонент конкретного вектора руху. Дане розкриття описує декілька способів, що відносяться до кодування вектора руху, таких як об'єднане кодування значень різниці векторів руху і сигналізація точності, амплітуди і знаку одного або більше значень різниці векторів руху. Способи даного розкриття можуть бути виконані під час процесу кодування, виконаного пристроєм кодування відео, таким як відео кодер або відео декодер. У даному розкритті термін "кодування" відноситься до кодування, яке відбувається в кодері, або декодування, яке відбувається в декодері. Точно так само, термін "кодер" відноситься до кодера, декодера, або об'єднаного кодера/декодера (кодека). Терміни "кодер", "кодувач", "декодер" і "кодек" всі відносяться до конкретних машин, розроблених для кодування (кодування і/або декодування) відео даних, сумісних з цим розкриттям. Фіг. 1 є блок-схемою, яка ілюструє зразкову систему 10 кодування і декодування відео, яка може використовувати способи для спільної сигналізації векторів руху. Вектора руху можуть мати суб-піксельну точність. Як показано на Фіг. 1, система 10 включає в себе пристрій-джерело 12, яке передає закодоване відео на пристрій 14 призначення через комунікаційний канал 16. Пристрій-джерело 12 і пристрій 14 призначення можуть охоплювати будь-який з широкого діапазону пристроїв. У деяких випадках пристрій-джерело 12 і пристрій 14 призначення можуть містити пристрої бездротового зв'язку, такі як бездротові телефонні трубки, так звані стільникові або супутникові радіотелефони, або будь-які бездротові пристрої, які можуть передавати відео інформацію по комунікаційному каналу 16, коли комунікаційний канал 16 є бездротовим. Способи даного розкриття, однак, які стосуються спільного кодування, наприклад, спільної сигналізації і/або інтерпретації спільно сигналізованого значення, значень різниці векторів руху, які можуть мати суб-піксельну точність, не обов'язково обмежені бездротовими додатками або параметрами настройки. Наприклад, ці способи можуть стосуватися передач телевізійного мовлення, передач кабельного телебачення, передач супутникового телебачення, інтернетпередач відео, кодованого цифрового відео, яке закодоване на запам'ятовуючому носії або 4 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 60 інших сценаріїв. Відповідно, комунікаційний канал 16 може містити будь-яку комбінацію бездротового, дротового або запам'ятовуючого носія, підходящу для передачі або зберігання кодованого відео даних. У прикладі згідно з Фіг. 1 пристрій-джерело 12 включає в себе відео джерело 18, відео кодер 20, модулятор/демодулятор (модем) 22 і передавач 24. Пристрій 14 призначення включає в себе приймач 26, модем 28, відео декодер 30 і пристрій 32 відображення. Відповідно до цього розкриття, відео кодер 20 з пристрою-джерела 12 може бути сконфігурований, щоб застосовувати ці способи для сигналізації різниць векторів руху, які можуть мати суб-піксельну точність. В інших прикладах пристрій-джерело і пристрій призначення можуть включати в себе інші компоненти або компонування. Наприклад, пристрій-джерело 12 може приймати відео дані із зовнішнього відео джерела 18, такого як зовнішня камера. Аналогічно, пристрій 14 призначення може взаємодіяти із зовнішнім пристроєм відображення замість включення інтегрованого пристрою відображення. Ілюстрована система 10 згідно з Фіг. 1 є просто одним прикладом. Способи для спільної сигналізації точності різниць векторів руху можуть бути виконані будь-яким пристроєм цифрового кодування і/або декодування відео. Хоча в цілому способи даного розкриття виконуються пристроєм кодування відео, ці способи можуть також бути виконані відео кодером/декодером, який типово називається як "кодек". Крім того, способи даного розкриття можуть також бути виконані передпроцесором відео. Пристрій-джерело 12 і пристрій 14 призначення є просто прикладами таких пристроїв кодування, в яких пристрій-джерело 12 генерує кодовані відео дані для передачі на пристрій 14 призначення. У деяких прикладах пристрої 12, 14 можуть працювати по суті симетричним чином таким чином, що кожний з пристроїв 12, 14 включають в себе компоненти кодування і декодування відео. Отже, система 10 може підтримувати односторонню або двосторонню передачу відео між відео пристроями 12, 14, наприклад, для потокової передачі відео, відтворення відео, мовлення відео або відео телефонії. Відео джерело 18 з пристрою-джерела 12 може включати в себе пристрій захоплення відео, такий як відео камера, відео архів, що містить раніше захоплене відео, і/або подачу відео від постачальника відео контенту. Як подальша альтернатива, відео джерело 18 може генерувати основані на комп'ютерній графіці дані як вихідне відео або комбінацію "живого" відео, архівованого відео і генерованого комп'ютером відео. У деяких випадках, якщо відео джерело 18 є відео камерою, пристрій-джерело 12 і пристрій 14 призначення можуть сформувати так звані камерофони або відео телефони. Як згадано вище, однак, способи, описані в даному розкритті, можуть бути застосовними до кодування відео взагалі, і можуть бути застосовані до бездротових і/або дротових додатків. У кожному випадку захоплене, заздалегідь захоплене або генероване комп'ютером відео може бути кодоване відео кодером 20. Кодована відео інформація може потім модулюватися модемом 22 згідно зі стандартом зв'язку і передаватися на пристрій 14 призначення через передавач 24. Модем 22 може включати в себе різні змішувачі, фільтри, підсилювачі або інші компоненти, розроблені для модуляції сигналу. Передавач 24 може включати в себе схеми, розроблені для того, щоб передавати дані, включаючи підсилювачі, фільтри і одну або більше антен. Приймач 26 з пристрою 14 призначення приймають інформацію по каналу 16, і модем 28 демодулюють цю інформацію. Знову, процес кодування відео може реалізувати один або більше способів, описаних тут, для сигналізації різниць векторів руху, які можуть мати субпіксельну точність. Інформація, передана по каналу 16, може включати в себе інформацію синтаксису, визначену відео кодером 20, яка також використовується відео декодером 30, яка включає в себе елементи синтаксису, які описують характеристики і/або обробку макроблоків та інших одиниць кодування, наприклад, GOP. Пристрій 32 відображення відображає декодовані відео дані користувачу, і може містити будь-який з множини пристроїв відображення, таких як електронно-променева трубка (CRT), рідкокристалічний дисплей (LCD), плазмовий дисплей, дисплей на органічних світлодіодах (OLED), або інший тип пристрою відображення. У прикладі згідно з Фіг. 1 комунікаційний канал 16 може містити будь-який бездротовий або дротовий комунікаційний носій, такий як радіочастотний (РЧ) спектр або одну або більше фізичних ліній передачі, або будь-яку комбінацію бездротового і дротового носіїв. Комунікаційний канал 16 може бути частиною основаною на передачі пакетів мережі, такої як локальна мережа, регіональна мережа або глобальна мережа, така як Інтернет. Комунікаційний канал 16 звичайно представляє будь-який підходящий комунікаційний носій або колекцію різних комунікаційних носіїв для того, щоб передавати відео дані від пристрою-джерела 12 на пристрій 14 призначення, включаючи будь-яку підходящу комбінацію дротового або бездротового носіїв. Комунікаційний канал 16 може включати в себе маршрутизатори, комутатори, базові станції або 5 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 будь-яке інше обладнання, яке може бути корисним, щоб полегшити зв'язок від пристроюджерела 12 до пристрою 14 призначення. В інших прикладах пристрій-джерело 12 може зберігати кодовані дані на носій даних, замість того, щоб передавати ці дані. Аналогічно, пристрій 14 призначення може бути сконфігурований, щоб витягнути закодовані дані з носія даних. Відео кодер 20 і відео декодер 30 можуть працювати згідно зі стандартом стиснення відео, таким як майбутній стандарт Кодування відео високої ефективності ITU-T (HEVC), який також називається "H.265". HEVC не був зроблений заключним, таким чином, відео кодер 20 і декодер 30 можуть працювати згідно з останнім проектом HEVC, який називається Тестовою Моделлю кодування відео високої ефективності (HM). Способи даного розкриття, однак, не обмежені ніяким конкретним стандартом кодування. Інші приклади включають в себе MPEG-2 і ITU-T H.263, і ITU-T H.264. Хоча не показано на Фіг. 1, в деяких аспектах відео кодер 20 і відео декодер 30 можуть кожний інтегруватися з аудіо кодером і декодером, і можуть включати в себе відповідні блоки MUX-DEMUX (мультиплексорів - демультиплексорів), або інше апаратне забезпечення і програмне забезпечення, щоб виконувати кодування як аудіо так і відео в загальному потоці даних або окремих потоках даних. Якщо застосовно, блоки MUX-DEMUX можуть відповідати протоколу мультиплексора ITU H.223, або іншим протоколам, таким як протокол дейтаграм користувача (UDP). Стандарт HEVC в цей час формулюється групою експертів з кодування відео ITU-T (VCEG) разом з групою експертів з рухомих зображень ISO/IEC (MPEG) як продукт колективного товариства, відомого як об'єднана спільна команда з кодування відео (JCT-VC). HM передбачає декілька можливостей пристроїв кодування відео в порівнянні з пристроями згідно з попереднім стандартом кодування, таким як ITU-T H.264/AVC. Наприклад, тоді як H.264 забезпечує дев'ять режимів кодування з внутрішнім прогнозуванням, HM забезпечує цілих тридцять чотири режими кодування з внутрішнім прогнозуванням. Відео кодер 20 і відео декодер 30 кожний може бути реалізований як будь-яка з множини підходящих схем кодера, таких як один або більше мікропроцесорів, цифрових сигнальних процесорів (DSP), спеціалізованих інтегральних схем (ASIC), програмованих користувачем вентильних матриць (FPGA), дискретної логіки, програмного забезпечення, апаратного забезпечення, програмно-апаратних засобів або будь-яких їх комбінацій. Кожний з відео кодера 20 і відео декодера 30 може бути включений в один або більше кодерів або декодерів, будьякий з яких може бути інтегрованим як частина об'єднаного кодера/декодера (кодека) у відповідних камері, комп'ютері, мобільному пристрої, пристрої абонента, пристрої мовлення, телевізійній приставці, сервері або подібному. Відео послідовність типово включає в себе ряд відео кадрів. Група картинок (GOP) звичайно містить послідовність з одного або більше відео кадрів. GOP може включати дані синтаксису в заголовку GOP, заголовку одного або більше кадрів GOP, або в іншому місці, які описують множину кадрів, включених в GOP. Кожний кадр може включати в себе дані синтаксису кадру, які описують режим кодування для відповідного кадру. Відео кодер 20 типово оперує над відео блоками, які також називаються одиницями CU, в межах індивідуальних відео кадрів, щоб закодувати відео дані. Відео блок може відповідати LCU або сегменту для LCU. Відео блоки можуть мати фіксовані або змінні розміри, і можуть відрізнятися за розміром згідно з вказаним стандартом кодування. Кожний відео кадр може включати в себе множину вирізок. Кожна вирізка може включати в себе множину одиниць LCU, які можуть бути скомпоновані в сегменти, які також називаються суб-CU. Як приклад, стандарт ITU-T H.264 підтримує внутрішнє прогнозування в різних розмірах блока, таких як 16 на 16, 8 на 8, або 4 на 4 для компонент яскравості, і 8 × 8 для компонент насиченості кольору, так само як зовнішнє прогнозування в різних розмірах блока, таких як 1616, 168, 816, 88, 84, 48 та 44 для компонент яскравості і відповідних масштабованих розмірів для компонент насиченості кольору. У даному розкритті "NN" та "N на N" можуть використовуватися взаємозамінно, щоб стосуватися вимірювань в пікселях блока в термінах вертикальних і горизонтальних вимірювань, наприклад, 1616 пікселів або 16 на 16 пікселів. Звичайно блок 1616 буде мати 16 пікселів у вертикальному напрямку (у=16) і 16 пікселів в горизонтальному напрямку (х=16). Аналогічно, блок NN звичайно має N пікселів у вертикальному напрямку і N пікселів у горизонтальному напрямку, де N представляє ненегативне цілочисельне значення. Пікселі в блоці можуть бути скомпоновані в рядках і колонках. Крім того, блоки не обов'язково повинні мати ту саму кількість пікселів у горизонтальному напрямку, як у вертикальному напрямку. Наприклад, блоки можуть містити NM пікселів, де М не обов'язково дорівнює N. 6 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 60 HEVC іменує блок відео даних як одиницю кодування (CU), яка може включати в себе одну або більше одиниць прогнозування (PU) і/або одну або більше одиниць перетворення (TU). Дані синтаксису в межах потоку бітів можуть визначити найбільшу одиницю кодування (LCU), яка є найбільшою одиницею кодування в термінах кількості пікселів. Взагалі, CU має мету, аналогічну макроблоку в H.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 можуть бути визначені рекурсивно, і можуть залежати від того, чи розділена CU на одиниці суб-CU. Якщо CU не розділяється далі, на неї посилаються як на листову CU. У даному розкритті 4 одиниці суб-CU листової CU будуть також згадуватися як листові одиниці CU, хоча немає явного розділення первинної листової CU. Наприклад, якщо CU з розміром 1616 не буде розділена далі, то чотири одиниці 88 суб-CU будуть також згадуватися як листові CU, хоча 1616 CU ніколи не була розділена. Крім того, одиниці TU листових CU також можуть бути асоційовані з відповідними структурами даних квадродерева. Таким чином, листова CU може включати в себе квадродерево, яке вказує, як листова CU розділена на одиниці TU. Дане розкриття відноситься до квадродерева, яке вказує, як LCU розділена як квадродерево CU і квадродерево, яке вказує, як листова CU розділена на одиниці TU як квадродерево TU. Кореневий вузол квадродерева TU звичайно відповідає листовій CU, в той час як кореневий вузол квадродерева CU звичайно відповідає LCU. Одиниці TU квадродерева TU, які не розділені, згадуються як листові TU. Листова CU може включати в себе одну або більше одиниць прогнозування (PU). Звичайно PU представляє всю або частину відповідної CU, і може включати в себе дані для того, щоб витягнути опорну вибірку для цієї PU. Наприклад, коли PU є кодованою у зовнішньому режимі, PU може включати в себе дані, що визначають вектор руху для цієї PU. Дані, що визначають вектор руху, можуть описувати, наприклад, горизонтальну компоненту вектора руху, вертикальну компоненту вектора руху, розрізнення для вектора руху (наприклад, піксельну точність в одну чверть або піксельну точність в одну восьму), опорний кадр, на який вказує вектор руху, і/або опорний список (наприклад, список 0 або список 1) для вектора руху. Дані для листової CU, що визначають одиниці (одиницю) PU, можуть також описати, наприклад, сегментовані CU в одну або більше одиниць PU. Режими сегментування можуть відрізнятися залежно від того, чи не кодована CU, кодована в режимі внутрішнього прогнозування, або кодована в режимі зовнішнього прогнозування. Для внутрішнього кодування PU може бути оброблена також як листова одиниця перетворення, описана нижче. Листова CU може включати в себе одну або більше одиниць перетворення (одиниці TU). Одиниці перетворення можуть бути визначені, використовуючи структуру квадродерева TU, як описано вище. Таким чином, прапор розділення може вказувати, чи розділена листова CU на чотири одиниці перетворення. Потім, кожна одиниця перетворення може бути розділена далі на 4 одиниці суб-TU. Коли TU далі не розділяється, вона може згадуватися як листова TU. Звичайно для внутрішнього кодування всі листові TU, що належать листовій CU, спільно використовують один і той самий режим внутрішнього прогнозування. Тобто один і той самий режим внутрішнього прогнозування звичайно застосовується, щоб обчислити прогнозовані значення для всіх одиниць TU листової CU. Для внутрішнього кодування відео кодер може обчислити залишкове значення для кожної листової TU, використовуючи режим внутрішнього прогнозування, як різницю між частиною прогнозуючих значень, що відповідають цій TU, і первинним блоком. Залишкове значення може бути перетворене, квантоване і скановане. Для зовнішнього кодування відео кодер може виконувати прогнозування на рівні PU і може обчислити залишок для кожної PU. Залишкові значення, що відповідають листовій CU, можуть бути перетворені, квантовані і скановані. Для зовнішнього кодування листова TU може бути 7 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 більше або менше, ніж PU. Для внутрішнього кодування PU може бути спільно розташована з відповідною листовою TU. У деяких прикладах максимальний розмір листової TU може бути розміром відповідної листової CU. В цілому дане розкриття використовує терміни CU та TU, щоб посилатися на листову CU і листову TU, відповідно, якщо не вказано інакше. В цілому способи даного розкриття стосуються перетворення, квантування, сканування і ентропійного кодування даних в CU. Як приклад, способи даного розкриття включають в себе вибір перетворення для використання, щоб перетворити залишкове значення внутрішньо прогнозованого блока на основі режиму внутрішнього прогнозування, використаного для прогнозування блока. Дане розкриття також використовує термін "направлене перетворення", або "задумане перетворення", щоб посилатися на таке перетворення, яке залежить від напрямку режиму внутрішнього прогнозування. Тобто, відео кодер може вибрати направлене перетворення, щоб стосуватися одиниці перетворення (TU). Як відмічено вище, внутрішнє прогнозування включає в себе прогнозування TU поточної CU в картинці з раніше кодованих одиниць CU та одиниць TU тієї самої картинки. Більш конкретно, відео кодер може внутрішньо прогнозувати поточну TU картинки, використовуючи конкретний режим внутрішнього прогнозування. Під час режимів зовнішнього прогнозування відео кодер 20 може визначити розрізнення, таке як піксельне розрізнення в 1/4 (одну чверть) або в 1/8 (одну восьму), для конкретного вектора руху одиниці PU. Це розрізнення може бути визначене, використовуючи спосіб, який намагається мінімізувати величину помилки між прогнозувальником вектора руху і обчисленим вектором руху для PU в CU, який може бути вектором руху, що використовується для прогнозування зміщення раніше закодованого кадру. Відео кодер 20 може визначити точність для прогнозувальника вектора руху, а також зміщення вектора, який може включати в себе х- компоненту, p_x, та у- компоненту, p_y. Відео кодер 20 може обчислити різницю векторів руху, що відповідає різниці між прогнозувальником вектора руху та обчисленим вектором руху. Різниця векторів руху (яка називається "MVD"), може мати х- компоненту, mvd_x та у- компоненту, mvd_y. На основі величини mvd_x, і mvd_y, точності векторів (тобто піксельної точності в одну чверть або одну восьму), і порогового значення, відео кодер 20 може бути сконфігурований, щоб спільно кодувати одне або більше значень, що відносяться до х- та у- компонент значення різниці векторів руху. Відповідно до способів даного розкриття, відео кодер 20 і/або відео декодер 30 може бути сконфігурований, щоб спільно кодувати інформацію, що відноситься до різниць векторів руху для блока. Спільне кодування може стосуватися способів кодування, в яких інформація, що відноситься до х- та у- компонентів значення різниці векторів руху перемежовується. Інформація може включати в себе інформацію, що вказує, чи більше величина, наприклад, абсолютне значення, цих компонент, ніж нуль, знак для компонент, коли абсолютне значення відповідної компоненти більше ніж нуль, і інформацію, яка вказує абсолютне значення компоненти, коли абсолютне значення більше, ніж нуль. Спільне кодування одного або більше значень різниці векторів руху може зменшити складність потоку бітів кодування відео, що може забезпечити переваги, описані тут. Подібно до відео кодера 20, відео декодер 30 може прийняти закодований відео потік бітів і може працювати по суті оберненим способом відео кодеру 20. Наприклад, відео декодер 30 може прийняти закодовані значення для MVD, декодувати спільно закодовані значення, і обчислити вектор руху для блока як суму MVD і прогнозувальника вектора руху для блока. У цілому х- компонента значення різниці векторів руху може згадуватися як "MVD_x, », в той час як у- компонента значення різниці векторів руху може згадуватися як "MVD_y". Значення різниці векторів руху для блока відео даних, наприклад, PU, може бути описане як MVD_x, MVD_y. Взагалі, MVD_x відповідає різниці між х- компонентою вектора руху для блока і хкомпонентою прогнозувальника вектора руху, вибраного для цього блока. Аналогічно, MVD_y відповідає різниці між у- компонентою вектора руху для блока і у- компонентою прогнозувальника вектора руху, вибраного для блока. Таким чином, відео кодер 20 може обчислити MVD_x, обчислюючи різницю між х- компонентою вектора руху для блока і хкомпонентою прогнозувальника вектора руху для блока, і MVD_y, обчислюючи різницю між укомпонентою вектора руху для блока і у- компонентою прогнозувальника вектора руху для цього блока. Аналогічно, відео декодер 30 може відновити вектор руху для блока, підсумовуючи MVD_x з х- компонентою прогнозувальника вектора руху, і підсумовуючи MVD_y з хкомпонентою прогнозувальника вектора руху. Іншими словами, передбачаючи, що MV_x та MV_y представляють х- компоненту і у- компоненту вектора руху, відповідно: 8 UA 110981 C2 MVD_x=MV_x-p_x; та MVD_y=MV_x-p_y 5 10 15 20 25 30 35 40 45 50 55 (1) (2) У деяких прикладах відео кодер 20 може кодувати, наприклад, сигнал, інформацію для значення різниці векторів руху для блока спільно. Наприклад, відео кодер 20 може кодувати інформацію, що вказує те, чи більше абсолютне значення MVD_x, тобто, |MVD_х|, ніж нуль, з подальшою інформацією, що вказує те, чи більше абсолютне значення MVD_y, тобто, |MVD_y|, ніж нуль. Така інформація може включати в себе, наприклад, прапори, що представляють те, чи більше х- та у- компоненти значення MVD ніж нуль, відповідно. Відео кодер 20 може також сигналізувати значення, яке представляє знак, для MVD_x після сигналізації прапора, який представляє те, чи більше MVD_y ніж нуль, передбачаючи, що прапор, який представляє, чи більше MVD_x ніж нуль, вказує, що MVD_x, фактично, більше ніж нуль. Відео кодер 20 не повинен сигналізувати знак для MVD_x, коли |MVD_x| дорівнює нулю. Після будь-якого із значення, що вказує знак для MVD_x (коли сигналізовано), або інформації, що вказує, чи більше |MVD_y|, ніж нуль (коли знак MVD_x не сигналізований), відео кодер 20 може сигналізувати знак для MVD_y, знов передбачаючи, що |MVD_y| більше ніж нуль. Крім того, відео кодер 20 може потім сигналізувати інформацію, яка представляє абсолютні значення MVD_x і/або MVD_y, залежно від того, або будь-який або обидва з MVD_x та MVD_у мають абсолютні значення, більше ніж нуль. Знов, інформація, яка представляє абсолютні значення MVD_x та MVD_y, не повинна бути сигналізована, коли раніше сигналізовані значення вказують, що абсолютні значення будь-якого або обох з MVD_x та MVD_y рівні нулю. Аналогічним чином відео декодер 30 може кодувати (наприклад, декодувати та інтерпретувати), дані, що представляють те, чи має MVD_x абсолютне значення, більше ніж нуль, з подальшими даними, що представляють те, чи має MVD_y абсолютне значення, більше ніж нуль. Коли дані вказують, що абсолютне значення MVD_x більше ніж нуль, відео декодер 30 може бути сконфігурований, щоб потім синтаксично розібрати інформацію, яка представляє знак для MVD_x. Після синтаксичного розбору інформації, яка представляє знак для MVD_x, або після визначення, що |MVD_x| дорівнює нулю, відео декодер 30 може бути сконфігурований, щоб синтаксично розібрати інформацію, яка представляє знак для MVD_y, коли дані вказують, що абсолютне значення MVD_y більше ніж нуль. Аналогічно, відео декодер 30 може потім синтаксично розібрати інформацію, яка представляє абсолютні значення для MVD_x та MVD_y, відповідно, знов передбачаючи, що абсолютні значення MVD_x та MVD_y більше ніж нуль. Відео декодер 30 може бути сконфігурований, щоб не чекати інформацію, що стосується знаку та абсолютного значення будь-якого компонента, для якого дані вказують, що компонента має абсолютне значення, не більше ніж нуль (тобто, рівний нулю). Тобто, відео декодер 30 може бути сконфігурований, щоб синтаксично розібрати інші відео дані, наприклад, інші дані для цього блока, без прийому або кодування даних для знаків і абсолютних значень компонент MVD, які мають абсолютні значення, рівні нулю, як вказано раніше сигналізованою інформацією. Спільне кодування х- та у- компонент таким чином може досягнути деяких переваг перед кодуванням даних для х- та у- компонент окремо. Наприклад, спільне кодування х- та укомпонент може збільшити продуктивність під час ентропійного кодування. Як конкретний приклад, спільне кодування значення різниці векторів руху може збільшити продуктивність ентропійного кодування, коли відео кодер 20 або декодер 30 використовує CABAC, щоб виконати ентропійне кодування. Коли інформація, яка представляє абсолютне значення х- та укомпонент значень різниці векторів руху, спільно кодована, відео кодер 20 або декодер 30 може бути здатний ентропійно кодувати х- та у- компоненти значення різниці векторів руху, спільно використовуючи режим обходу CABAC. Режим обходу CABAC може поліпшити продуктивність ентропійного кодування. Ентропійне кодування спільно кодованої інформації, яка представляє х- та у- компоненти, може дозволити відео кодеру 20 або декодеру 30 ентропійно кодувати обидва елементи синтаксису, по черзі використовуючи режим обходу CABAC, що може поліпшити ефективність ентропійного кодування відносно окремого ентропійного кодування хта у- компонент. Хоча описано в попередньому прикладі відносно CABAC, спільне кодування хта у- компонент значень різниці векторів руху може також підвищити ефективність ентропійного кодування і/або продуктивність при використанні інших способів ентропійного кодування, таких як VLC, і CAVLC. Після внутрішньо прогнозуючого або зовні прогнозуючого кодування, щоб сформувати прогнозуючі дані та залишкові дані, і після будь-якого перетворення (такого як 44 або 88 9 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 60 цілочисельне перетворення, що використовується в H.264/AVC, або дискретне косинусне перетворення DCT), щоб сформувати коефіцієнти перетворення, може бути виконане квантування коефіцієнтів перетворення. Квантування в цілому відноситься до процесу, в якому коефіцієнти перетворення квантуються, щоб можливо зменшити обсяг даних, використаних для представлення коефіцієнтів. Процес квантування може зменшити глибину в бітах, асоційовану з деякими або усіма коефіцієнтами. Наприклад, n-бітове значення може бути округлене в менший бік до m-бітового значення під час квантування, де n більше ніж m. Після квантування, може бути виконане ентропійне кодування квантованих даних, наприклад, згідно з адаптивним до контенту кодуванням із змінною довжиною коду (CAVLC), контекстно-адаптивним двійковим арифметичним кодуванням (CABAC), або іншою методологією ентропійного кодування. Блок обробки, сконфігурований для ентропійного кодування, або інший блок обробки, може виконувати інші функції обробки, такі як кодування довжин серій нулів квантованих коефіцієнтів і/або генерування інформації синтаксису, такої як значення шаблона кодованих блоків (CBP), тип макроблока, режим кодування, максимальний розмір макроблока для кодованого блока (такого як кадр, вирізка, макроблок або послідовність), або подібне. Відео кодер 20 може також послати дані синтаксису, такі як основані на блоці дані синтаксису, основані на кадрі дані синтаксису, і основані на GOP дані синтаксису, до відео декодера 30, наприклад, в заголовку кадру, заголовку блока, заголовку вирізки або заголовку GOP. Дані синтаксису GOP можуть описувати ряд кадрів у відповідній GOP, і дані синтаксису кадру можуть вказувати режим кодування/прогнозування, використаний для кодування відповідного кадру. Відео кодер 20 і відео декодер 30 кожний може бути реалізований як будь-яка з множини підходящих схем кодера або декодера, коли застосовно, таких як один або більше мікропроцесорів, цифрові сигнальні процесори (DSP), спеціалізовані інтегральні схеми (ASIC), прогнозовані користувачем вентильні матриці (FPGA), дискретні логічні схеми, програмне забезпечення, апаратне забезпечення, програмно-апаратні засоби або будь-які їх комбінації. Кожний з відео кодера 20 і відео декодера 30 може бути включений в один або більше кодерів або декодерів, будь-який з яких може інтегруватися як частина об'єднаного відео кодера/декодера (кодек). Пристрій, що включає в себе відео кодер 20 і/або відео декодер 30, може містити інтегральну схему, мікропроцесор і/або пристрій бездротового зв'язку, такий як стільниковий телефон. Фіг. 2 є блок-схемою, яка ілюструє приклад відео кодера 20, який може реалізувати способи для спільної сигналізації векторів руху, які можуть мати суб-піксельну точність. Відео кодер 20 може виконувати внутрішнє і зовнішнє кодування блоків у межах відео кадрів, включаючи одиниці CU або одиниці суб-CU в одиницях CU. Внутрішнє кодування покладається на просторове прогнозування, щоб зменшити або видалити просторову надмірність у відео в межах заданого відео кадру. Зовнішнє кодування покладається на часове прогнозування, щоб зменшити або видалити часову надмірність у відео в межах суміжних кадрів відео послідовності. Внутрішній режим (I-режим) може стосуватися будь-якого з декількох просторово основаних режимів стиснення, і зовнішні режими, такі як однонаправлене прогнозування (режим Р-) або двонаправлене прогнозування (В-режим), можуть стосуватися будь-якого з декількох часово основаних режимів стиснення. Хоча компоненти для кодування у зовнішньому режимі зображені на Фіг. 2, треба мати на увазі, що відео кодер 20 може також включати в себе компоненти для кодування у внутрішньому режимі. Однак, такі компоненти не ілюстровані заради стислості та розуміння. Як показано на Фіг. 2, відео кодер 20 приймає поточний відео блок в межах відео кадру, який повинен бути закодований. У прикладі згідно з Фіг. 2 відео кодер 20 включає в себе блок 44 компенсації руху, блок 42 оцінки руху, пам'ять 64 опорних кадрів, суматор 50, блок 52 обробки перетворення, блок 54 квантування і блок 56 ентропійного кодування. Для реконструкції блока відео, відео кодер 20 також включає в себе блок 58 оберненого квантування, блок 60 оберненого перетворення і суматор 62. Фільтр видалення блочності (не показаний на Фіг. 2) може також бути включений, щоб фільтрувати межі блока, щоб видалити артефакти блочності з відновленого відео. Якщо бажано, фільтр видалення блочності типово може фільтрувати вихідний сигнал суматора 62. Під час процесу кодування відео кодер 20 приймає відео кадр, вирізку або CU, які повинні бути кодовані. Кадр або вирізка можуть бути розділені на множинні відео блоки. Блок 42 оцінки руху і блок 44 компенсації руху виконують зовнішнє прогнозуюче кодування прийнятого відео блока відносно одного або більше блоків в одному або більше опорних кадрах, щоб забезпечити часове стиснення. Блок 46 внутрішнього прогнозування може виконувати 10 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 внутрішнє прогнозуюче кодування прийнятого відео блока відносно одного або більше сусідніх блоків у тому самому кадрі або вирізці, що і блок, який повинен бути закодований, щоб забезпечити просторове стиснення. Відповідно до способів, описаних нижче, блок 42 оцінки руху може визначити точність для прогнозувальника вектора руху, який може бути визначений на основі режиму внутрішнього або зовнішнього прогнозування, який раніше визначив блок 40 вибору режиму. Блок 42 оцінки руху або інший блок відео кодера 20, такий як блок 56 ентропійного кодування, може далі визначити різницю векторів руху, що відповідає різниці між прогнозувальником вектора руху і обчисленим вектором руху для PU прийнятого кадру, вирізки, або CU. Блок 56 ентропійного кодування може далі кодувати інформацію, що відноситься до розрізнення, знаку і амплітуди різниці векторів руху, а також іншу інформацію, що відноситься до об'єднаного кодування вектора руху, як описано нижче. Блок 40 вибору режиму може вибрати один з режимів кодування, внутрішній або зовнішній, наприклад, на основі результатів помилки, і видати результуючий внутрішньо- або зовнікодований блок до суматора 50, щоб генерувати залишкові дані блока, і до суматора 62, щоб відновити закодований блок для використання як опорного кадру. Крім того, блок 40 вибору режиму може вибрати точність вектора руху для вектора руху. Наприклад, блок 40 вибору режиму може вибрати точність вектора руху для вектора руху на основі оптимізації "спотворення - швидкість передачі" (RDO), асоційованої з векторами руху з суб-піксельною точністю до однієї чверті і суб-піксельною точністю в одну восьму. Вектора руху з піксельною точністю до однієї чверті можуть вимагати менше бітів для кодування відносно векторів руху з піксельною точністю до однієї восьмої. Однак, прогнозуючий блок, вказаний з вектором руху, закодованим з піксельною точністю до однієї чверті, може призвести до більшого обсягу залишкової інформації в порівнянні з прогнозуючим блоком, закодованим з суб-піксельною точністю до однієї восьмої. Відео кодер 20 може виконувати RDO, щоб оптимізувати кількість бітів (тобто швидкість передачі в бітах), використану для кодування конкретного вектора руху, залежно від залишкової інформації (спотворення), асоційованої з різницею між прогнозуючим блоком, вказаним вектором руху, і блоком, що в цей час кодується. На основі результату RDO блок 40 вибору режиму може вибрати точність вектора руху, наприклад, суб-піксельну точність в одну чверть або одну восьму, яка оптимізує компроміс "спотворення - швидкість передачі". Блок 44 компенсації руху може бути необхідний, щоб обчислити суб-пікселі, такі як субпікселі опорних кадрів, при різній точності, наприклад, одна восьма і одна чверть суб-пікселя. Щоб інтерполювати суб-пікселі, блок 44 компенсації руху може використовувати множину способів. Як приклади, блок 44 компенсації руху може використовувати білінійну інтерполяцію або використовувати N-відвідні фільтри з кінцевою імпульсною характеристикою (FIR), щоб інтерполювати суб-піксель. Коли пристрій, такий як блок 44 компенсації руху, обчислює значення для дробового пікселя за допомогою усереднення двох пікселів або суб-пікселів, він може округлити і/або масштабувати результуюче значення. У деяких випадках блок 44 компенсації руху може усереднити значення для двох суб-пікселів, які є результатом усереднення до суб-цілочисельного пікселя. Блок 44 компенсації руху може обчислити значення для більшої кількості суб-цілочисельних піксельних позицій, таких як піксельна позиція в одну восьму, застосовуючи фільтри інтерполяції до наборів підтримки. Підтримка в цілому відноситься до значень для одного або більше опорних пікселів, наприклад, пікселів на загальній лінії або ділянці. Ці пікселі можуть відповідати повним піксельним позиціям або суб-цілочисельним піксельним позиціям, які були раніше обчислені. У деяких прикладах блок 44 компенсації руху може обчислити значення для суб-цілочисельних пікселів, використовуючи білінійну інтерполяцію, і може використовувати аналогічні фільтри білінійної інтерполяції, щоб обчислити значення для двох або більше різних суб-цілочисельних піксельних позицій, застосовуючи один або більше фільтрів білінійної інтерполяції до різних наборів підтримки, що відповідають суб-цілочисельним піксельним позиціям. У деяких інших випадках блок 44 компенсації руху може використовувати N-відвідний фільтр з кінцевою імпульсною характеристикою (FIR), щоб інтерполювати суб-піксельні значення. FIR, такий як фільтр Вінера (Wiener) з 12 відводами або з 6 відводами, може використовувати сусідні піксельні значення підтримки, щоб інтерполювати суб-цілочисельне піксельне значення. Піксель підтримки є піксельним або суб-піксельним значенням, що використовується як ввід в FIR. FIR може мати одну або більше розмірностей. В одномірній FIR пристрій, такий як блок 44 компенсації руху, може застосувати фільтр до багатьох пікселів або суб-пікселів підтримки в лінії, наприклад, горизонтально, вертикально або під кутом. На відміну від одномірної FIR, яка може використовувати пікселі підтримки на прямій лінії, двомірна FIR може використовувати 11 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 60 сусідні пікселі або суб-пікселі підтримки, які формують квадрат або прямокутник, щоб обчислити інтерпольоване піксельне значення. Блок 42 оцінки руху і блок 44 компенсації руху можуть бути високо інтегрованими, але ілюстровані окремо в концептуальних цілях. Оцінка руху є процесом генерування векторів руху, які оцінюють рух для відео блоків. Вектор руху, наприклад, може вказувати зміщення блока прогнозування в межах прогнозуючого опорного кадру (або іншого кодованого блока) відносно поточного блока, що кодується в межах поточного кадру (або іншого кодованого блока). Прогнозуючий блок є блоком, який, як знаходять, близько відповідає блоку, який повинен бути кодований, в термінах піксельної різниці, яка може бути визначена сумою абсолютних різниць (SAD), сумою різниць квадратів (SSD), або іншими метриками різниці. Вектор руху може також вказувати зміщення сегмента макроблока. Компенсація руху може залучати процес вибірки або генерування прогнозуючого блока на основі вектора руху, визначеного за допомогою оцінки руху. Знову, блок 42 оцінки руху і блок 44 компенсації руху можуть бути функціонально інтегрованими, в деяких прикладах. Блок 42 оцінки руху обчислює вектор руху для відео блока зовні кодованого кадру, порівнюючи відео блок з відео блоками опорного кадру в пам'яті 64 опорних кадрів. Блок 44 компенсації руху може також інтерполювати суб-цілочисельні пікселі опорного кадру, наприклад, I-кадру або Р-кадру. Як приклад, вектори руху можуть бути прогнозовані з двох списків опорних кадрів: списку 0, який включає в себе опорні кадри, що мають порядок відображення раніше, ніж поточний кадр, що кодується, і списку 1, який включає в себе опорні кадри, що мають порядок відображення пізніше, ніж поточний кадр, що кодується. Тому, дані, що зберігаються в пам'яті 64 опорних кадрів, можуть бути організовані згідно з цими списками. Блок 42 оцінки руху порівнює блоки одного або більше опорних кадрів з пам'яті 64 опорних кадрів з блоком, який повинен бути закодований, поточного кадру, наприклад, Р-кадру або Вкадру. Коли опорні кадри в пам'яті 64 опорних кадрів включають в себе значення для субцілочисельних пікселів, вектор руху, обчислений блоком 42 оцінки руху, може стосуватися місцеположення суб-цілочисельного пікселя одного з опорних кадрів, збережених в пам'яті 64 опорних кадрів. Блок 42 оцінки руху і/або блок 44 компенсації руху можуть також конфігуруватися, щоб обчислити значення для суб-цілочисельних піксельних позицій опорних кадрів, збережених в пам'яті 64 опорних кадрів, якщо ніякі значення для суб-цілочисельних піксельних позицій не збережені в пам'яті 64 опорних кадрів. Блок 42 оцінки руху посилає обчислений вектор руху в блок 56 ентропійного кодування і блок 44 компенсації руху. Блок опорного кадру, ідентифікований вектором руху, може згадуватися як прогнозуючий блок. Вектор руху, який вказує зміщення прогнозуючого блока відносно поточного блока, що кодується в поточному кадрі, може мати х- компоненту mvd_x та у- компоненту mvd_y. Блок 44 компенсації руху може обчислити дані прогнозування на основі прогнозуючого блока. Відео кодер 20 формує залишковий відео блок, віднімаючи дані прогнозування з блока 44 компенсації руху з первинного блока відео, що кодується. Суматор 50 представляє компонент або компоненти, які виконують цю операцію віднімання. Блок 52 обробки перетворення застосовує перетворення, таке як дискретне косинусне перетворення (DCT) або концептуально подібне перетворення, до залишкового блока, формуючи відео блок, що містить залишкові значення коефіцієнта перетворення. Блок 52 обробки перетворення може виконувати інше перетворення, таке як визначене за стандартом H.264, які концептуально подібні до DCT. Вейвлет перетворення, цілочисельні перетворення, перетворення під-діапазонів, або інші типи перетворення також можуть використовуватися. У будь-якому випадку блок 52 обробки перетворення застосовує перетворення до залишкового блока, формуючи блок залишкових коефіцієнтів перетворення. Перетворення може перетворити залишкову інформацію з ділянки піксельних значень в ділянку перетворення, таку як частотна ділянка. Блок 54 квантування квантує залишкові коефіцієнти перетворення, щоб далі зменшити частоту проходження в бітах. Процес квантування може зменшити глибину в бітах, асоційовану з деякими або усіма коефіцієнтами. Ступінь квантування може бути змінена за допомогою настройки параметра квантування. Після квантування блок 56 ентропійного кодування ентропійно кодує квантовані коефіцієнти перетворення. Наприклад, блок 56 ентропійного кодування може виконувати адаптивне до контенту кодування із змінною довжиною коду (CAVLC), контекстно-адаптивне двійкове арифметичне кодування (CABAC), або інший спосіб ентропійного кодування. Спільне кодування х- та у- компонент значень різниці векторів руху може дозволити блоку 56 ентропійного кодування досягати більш високої продуктивності ентропійного кодування, використовуючи CABAC. Блок 56 ентропійного кодування може використовувати режим обходу CABAC, щоб збільшити продуктивність ентропійного кодування спільно кодованих х- та у- компонент значень 12 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 різниці векторів руху відносно ентропійного кодування окремо кодованих х- та у- компонент значень різниці векторів руху. Після ентропійного кодування блоком 56 ентропійного кодування кодоване відео може бути передане на інший пристрій або заархівоване для більш пізньої передачі або витягання. У випадку контекстно-адаптивного двійкового арифметичного кодування контекст може бути оснований на сусідніх макроблоках. У деяких випадках блок 56 ентропійного кодування або інший блок відео кодера 20 може бути сконфігурований, щоб виконати інші функції кодування, в доповнення до ентропійного кодування. Наприклад, блок 56 ентропійного кодування може бути сконфігурований, щоб визначити значення CBP для макроблоків і сегментів. Крім того, в деяких випадках блок 56 ентропійного кодування може виконувати кодування довжин серій для коефіцієнтів у макроблоці або його сегменті. Зокрема, блок 56 ентропійного кодування може застосувати зигзагоподібне сканування або інший шаблон сканування, щоб сканувати коефіцієнти перетворення в макроблоці або сегменті і кодувати серії нулів для подальшого стиснення. Блок 56 ентропійного кодування також може конструювати інформацію заголовка з відповідними елементами синтаксису для передачі в закодованому відео потоку бітів. Відповідно до способів даного розкриття, блок 54 квантування і блок 56 ентропійного кодування можуть спільно кодувати вектора руху, які можуть мати суб-піксельну точність, як описано нижче. У деяких прикладах блок квантування 45 і блок 56 ентропійного кодування можуть сигналізувати одне або більше значень прапора, які представляють, чи є х- і/або укомпоненти значення різниці векторів руху нулем, одним або більше значеннями, які представляють знак х- і/або у- компонент, коли ці компоненти мають абсолютні значення, не рівні нулю, і інформацією, яка представляє абсолютне значення величини х- та у- компонент значення різниці векторів руху, коли ці компоненти мають абсолютні значення, не рівні нулю. Блок квантування 45 і блок 56 ентропійного кодування можуть також сигналізувати прапор розрізнення руху, який може представити суб-піксельне розрізнення вектора руху, а також порогове значення, що відноситься і до величини і до точності вектора руху. Блок 58 оберненого квантування і блок 60 оберненого перетворення застосовують обернене квантування та обернене перетворення, відповідно, щоб відновити залишковий блок в піксельній ділянці, наприклад, для більш пізнього використання як опорного блока. Блок 44 компенсації руху може обчислити опорний блок, підсумовуючи залишковий блок з прогнозуючим блоком одного з кадрів з пам'яті 64 опорних кадрів. Блок 44 компенсації руху може також застосувати один або більше фільтрів інтерполяції до відновленого залишкового блока, щоб обчислити суб-цілочисельніпіксельні значення для використання в оцінці руху. Суматор 62 підсумовує відновлений залишковий блок з блоком прогнозування зі скомпенсованим рухом, сформованим блоком 44 компенсації руху, щоб сформувати відновлений відео блок для зберігання в пам'яті 64 опорних кадрів. Відновлений відео блок може використовуватися блоком 42 оцінки руху і блоком 44 компенсації руху як опорний блок, щоб зовні кодувати блок в подальшому відео кадрі. Відео кодер 20 представляє приклад відео кодера, що конфігурується, щоб кодувати відео дані, які представляють те, чи більше абсолютне значення х- компоненти значення різниці векторів руху для поточного блока відео даних, ніж нуль, і закодувати відео дані, які представляють те, чи більше абсолютне значення у- компоненти значення різниці векторів руху, ніж нуль. Відео кодер 20 може бути сконфігурований, щоб кодувати відео дані, які представляють абсолютне значення х- компоненти значення різниці векторів руху, коли абсолютне значення х- компоненти значення різниці векторів руху більше, ніж нуль, і кодувати відео дані, які представляють абсолютне значення у- компоненти значення різниці векторів руху, коли абсолютне значення у- компоненти значення різниці векторів руху більше, ніж нуль. Відео кодер 20 може також конфігуруватися, щоб кодувати відео дані, які представляють знак хкомпоненти значення різниці векторів руху, коли абсолютне значення х- компоненти значення різниці векторів руху більше ніж нуль, і кодувати знак у- компоненти значення різниці векторів руху, коли абсолютне значення у- компоненти значення різниці векторів руху більше ніж нуль. Фіг. 3 є блок-схемою, яка ілюструє приклад відео декодера 30, який декодує кодовану відео послідовність. У прикладі згідно з Фіг. 3 відео декодер 30 включає в себе блок 70 ентропійного декодування, блок 72 компенсації руху, блок 74 внутрішнього прогнозування, блок 76 оберненого квантування, блок 78 оберненого перетворення пам'ять 82 опорних кадрів і суматор 80. Відео декодер 30 в деяких прикладах може виконувати прохід декодування, в цілому обернений до проходу кодування, описаного відносно відео кодера 20 (Фіг. 2). Блок 72 компенсації руху може генерувати дані прогнозування, на основі векторів руху, прийнятих від блока 70 ентропійного декодування. 13 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 60 Блок 72 компенсації руху може використовувати вектори руху, прийняті в потоку бітів, включаючи вектори руху, сигналізовані відповідно до способів, описаних тут, щоб ідентифікувати блок прогнозування в одному з опорних кадрів, збережених в пам'яті 82 опорних кадрів. Блок 74 внутрішнього прогнозування може використовувати режими внутрішнього прогнозування, прийняті в потоку бітів, щоб сформувати блок прогнозування з просторово суміжних блоків. Блок 76 оберненого квантування обернено квантує, тобто, деквантує, квантовані коефіцієнти блоків, надані в потоці бітів і декодовані блоком 70 ентропійного декодування. Процес оберненого квантування може включати в себе звичайний процес, наприклад як визначено стандартом декодування H.264. Процес оберненого квантування може також включати в себе використання параметра квантування QPY, обчисленого кодером 50 для кожного макроблока, щоб визначити ступінь квантування і, аналогічно, ступінь оберненого квантування, яке повинне бути застосоване. Блок 70 ентропійного декодування і блок 76 оберненого квантування можуть також відновити спільно кодовані значення різниці векторів руху, інтерпретуючи різні елементи синтаксису, включаючи прапори та інші значення, в закодованому потоці бітів. Як приклад, блок 70 ентропійного декодування і блок 76 оберненого квантування можуть прийняти одне або більше значень, які представляють, чи більше х- і/або у- компоненти різниці векторів руху ніж нуль, прапор розрізнення руху, який може вказувати суб-піксельне розрізнення вектора руху, і порогове значення, яке може вказувати максимальну величину і/або розрізнення значення різниці векторів руху. В одному прикладі блок 70 ентропійного декодування може декодувати спільно закодовані х- та у- компоненти значення різниці векторів руху, використовуючи CABAC в режимі обходу. Використання режиму обходу CABAC може дозволити блоку ентропійного кодування 70 декодувати спільно закодовані значення різниці векторів руху із збільшеною продуктивністю відносно ентропійного декодування х- та у- компонент значень різниці векторів руху окремо. Блок 70 ентропійного декодування і блок 76 оберненого квантування можуть також прийняти одне або більше значень, які представляють знак х- і/або у- компонент значення різниці векторів руху, і значення, які представляють абсолютне значення величини кожного компонента значення різниці векторів руху. Блок 70 ентропійного декодування і блок 76 оберненого квантування можуть використовувати значення, які представляють, чи більше х- та у- компоненти значень різниці векторів руху ніж нуль, а також значення, які представляють абсолютне значення величини кожного компонента значення різниці векторів руху, щоб відновити амплітуду, знак, точність, х- та у- компоненти значень різниці векторів руху. Блок 58 оберненого перетворення застосовує обернене перетворення, наприклад, обернене DCT, обернене цілочисельне перетворення, або концептуально подібний процес оберненого перетворення, до коефіцієнтів перетворення, щоб сформувати залишкові блоки в піксельній ділянці. Блок 72 компенсації руху формує дані блоки із скомпенсованим рухом, можливо виконуючи інтерполяцію, основану на фільтрах інтерполяції. Ідентифікатори для фільтрів інтерполяції, які повинні використовуватися для оцінки руху з суб-піксельною точністю, можуть бути включені в елементи синтаксису. Блок 72 компенсації руху може використовувати фільтри інтерполяції, які використовуються відео кодером 20 під час кодування блока відео, щоб обчислити інтерпольовані значення для суб-цілочисельних пікселів опорного блока. Блок 72 компенсації руху може визначити фільтри інтерполяції, що використовуються відео кодером 20, згідно з прийнятою інформацією синтаксису, і використовувати ці фільтри інтерполяції, щоб сформувати прогнозуючі блоки. Блок 72 компенсації руху використовує частину інформації синтаксису, щоб визначити розміри макроблоків, використаних для кодування кадру(ів) кодованої відео послідовності, інформацію сегментів, яка описує, як кожний макроблок кадру кодованої відео послідовності сегментований, режими, що вказують, як кожний сегмент кодований, один або більше опорних кадрів (і списки опорних кадрів) для кожного зовні кодованого макроблока або сегмента, та іншу інформацію, щоб декодувати кодовану відео послідовність. Як приклад, блок 72 компенсації руху може прийняти значення MVD і прогнозувальник вектора руху. Блок 72 компенсації руху може далі визначити обчислений вектор для поточного блока як суму значення MVD і прогнозувальника вектора руху поточного блока. Обчислений вектор руху для поточного блока може далі вказувати місцеположення блока прогнозування. У деяких прикладах блок 72 компенсації руху може обчислити піксельні значення для блока прогнозування, наприклад, коли вектор руху має суб-піксельну точність, таку як піксельна точність в одну чверть або одну восьму. Суматор 80 підсумовує залишкові блоки з відповідними блоками прогнозування, що генеруються блоком 72 компенсації руху або блоком внутрішнього прогнозування, щоб сформувати декодовані блоки. Якщо бажано, фільтр видалення блочності може також бути 14 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 60 застосований, щоб фільтрувати декодовані блоки, щоб видалити артефакти блочності. Декодовані відео блоки потім зберігаються в пам'яті 82 опорних кадрів, яка видає опорні блоки для подальшої компенсації руху і також формує декодоване відео для представлення на пристрої відображення (такому як пристрій 32 відображення згідно з Фіг. 1). На основі вектора руху для поточного блока блок компенсації руху може визначити прогнозуючий блок з одного або більше кадрів, збережених в пам'яті 82 опорних кадрів. Блок 72 компенсації руху може бути необхідний, щоб обчислити суб-пікселі прогнозуючого блока, який генерує блок 72 компенсації руху. Блоки прогнозування, такі як суб-пікселі опорних кадрів, з різною точністю, наприклад, в одну восьму і одну чверть суб-пікселя. Щоб інтерполювати субпікселі, блок 72 компенсації руху може використовувати множину способів. Як приклади, блок 72 компенсації руху може використовувати білінійну інтерполяцію або використовувати N-відвідні фільтри з кінцевою імпульсною характеристикою (FIR), щоб інтерполювати суб-піксель. Коли пристрій, такий як блок 72 компенсації руху, обчислює значення для дробового пікселя, усереднюючи два пікселі або суб-пікселі, він може округлити і/або масштабувати результуюче значення. У деяких випадках блок 72 компенсації руху може усереднити значення для двох субпікселів, які є результатом усереднення до суб-цілочисельного пікселя. Блок 72 компенсації руху може обчислити значення для суб-цілочисельних піксельних позицій, таких як піксельні позиції в одну восьму, застосовуючи фільтри інтерполяції до наборів підтримки. Підтримка в цілому відноситься до значень для одного або більше опорних пікселів, наприклад, пікселів на загальній лінії або ділянці. Пікселі можуть відповідати повним піксельним позиціям або суб-цілочисельним піксельним позиціям, які були раніше обчислені. У деяких прикладах блок 72 компенсації руху може обчислити значення для суб-цілочисельних пікселів, використовуючи білінійну інтерполяцію, і може використовувати аналогічні фільтри білінійної інтерполяції, щоб обчислити значення для двох або більше різних суб-цілочисельних піксельних позицій, застосовуючи один або більше фільтрів білінійної інтерполяції до різних наборів підтримки, що відповідають суб-цілочисельним піксельним позиціям. У деяких інших випадках блок 42 компенсації руху може використовувати N-відвідний фільтр з кінцевою імпульсною характеристикою (FIR), щоб інтерполювати суб-піксельні значення. FIR, такий як фільтр Вінера (Wiener) з 6 відводами або з 12 відводами, може використовувати сусідні піксельні значення підтримки, щоб інтерполювати суб-цілочисельне піксельне значення. Піксель підтримки є піксельним або суб-піксельним значенням, що використовується як введення в FIR. FIR може мати одну або більше розмірностей. В одномірній FIR пристрій, такий як блок 72 компенсації руху, може застосувати фільтр до багатьох пікселів або суб-пікселів підтримки в лінії, наприклад, горизонтально, вертикально або під кутом. На відміну від одномірної FIR, яка може використовувати пікселі підтримки на прямій лінії, двомірна FIR може використовувати сусідні пікселі або суб-пікселі підтримки, які формують квадрат або прямокутник, щоб обчислити інтерпольоване піксельне значення. Відео декодер 30 представляє приклад відео кодера, що конфігурується, щоб декодувати відео дані, які представляють те, чи більше абсолютне значення х- компоненти значення різниці векторів руху для поточного блока відео даних ніж нуль, і декодувати відео дані, які представляють те, чи більше абсолютне значення у- компоненти значення різниці векторів руху ніж нуль. Відео декодер 30 може бути сконфігурований, щоб декодувати відео дані, які представляють абсолютне значення х- компоненти значення різниці векторів руху, коли абсолютне значення х- компоненти значення різниці векторів руху більше ніж нуль, і декодувати відео дані, які представляють абсолютне значення у- компоненти значення різниці векторів руху, коли абсолютне значення у- компоненти значення різниці векторів руху більше ніж нуль. Відео декодер 30 може також конфігуруватися, щоб декодувати відео дані, які представляють знак х- компоненти значення різниці векторів руху, коли абсолютне значення х- компоненти значення різниці векторів руху більше ніж нуль, і декодувати знак у- компоненти значення різниці векторів руху, коли абсолютне значення у- компоненти значення різниці векторів руху більше ніж нуль. Фіг. 4 є послідовністю операцій, що ілюструє зразковий спосіб для спільного кодування х- та у- компонент значення різниці векторів руху та ентропійного кодування поточного блока. У способі 150 блок 42 оцінки руху з відео кодера 20 може прогнозувати поточний блок (152). Як частина прогнозування поточного блока, блок 42 оцінки руху може обчислити вектор руху. Вектор руху може вказувати зміщення прогнозуючого блока відносно поточного блока. Зміщення вектора руху може мати х- та у- компоненти, MV_x, і MV_y. Прогнозуючий блок може близько відповідати поточному блоку в термінах піксельної різниці, яка може бути визначена сумою абсолютних різниць (SAD), сумою різниць квадратів (SSD), або іншими метриками різниці. У випадку, коли поточний кадр є зовні прогнозованим, прогнозуючий блок може містити 15 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 60 блок іншого кадру, такого як один з одного або більше опорних кадрів у пам'яті 64 опорних кадрів згідно з Фіг. 2. Блок 44 компенсації руху або інший блок відео кодера 20 можуть потім визначити прогнозувальник вектора руху для вектора руху поточного блока (154). Прогнозувальник вектора руху є вектором руху, який блок 44 компенсації руху використовує, щоб обчислити значення різниці векторів руху для поточного блока. У деяких прикладах прогнозувальник вектора руху може бути вектором руху одного з множини блоків, які межують з PU поточного блока. Блок 44 компенсації руху може також визначити прогнозувальник вектора руху зі спільно розташованого блока одного з опорних кадрів, збережених в пам'яті 64 опорних кадрів. Прогнозувальник вектора руху може мати х- компоненту p_x та у-компоненту p_y. Відео кодер 20 може визначити прогнозувальник вектора руху таким чином, що прогнозувальник вектора руху мінімізує різницю векторів руху для поточного блока і прогнозувальника вектора руху. На основі прогнозувальника вектора руху блок 44 компенсації руху з відео кодера 20, або інший блок відео кодера 20, такий як блок 56 ентропійного кодування, може обчислити значення різниці векторів руху для поточного блока (156). Блок 44 компенсації руху може обчислити різницю векторів руху для поточного блока як різницю векторів руху для поточного блока і прогнозувальника вектора руху для поточного блока. Таким чином, блок 44 компенсації руху може обчислити прогнозувальник вектора руху для поточного блока як p_x-MV_x, p_y-MV_y, де p_x і p_y-x- і у- компоненти прогнозувальника вектора руху, і MV_x і MV_y є х- та укомпонентами вектора руху для поточного блока. Блок 56 ентропійного кодування може потім спільно кодувати елементи значення різниці векторів руху для поточного блока (158). Наприклад, блок 56 ентропійного кодування може спільно кодувати елементи значення різниці векторів руху, які включають в себе х- та укомпоненти різниці векторів руху, як описано з посиланнями на Фіг. 6 та 7 більш детально нижче. Елементи різниці векторів руху можуть також включати в себе одне або більше значень, які представляють те, чи є х- та у- компоненти різниці векторів руху нулем, значення, яке представляє значення знаку х- і/або у- компоненти значення різниці векторів руху, і значення, яке представляє абсолютне значення компоненти значення різниці векторів руху, як деякі необмежуючі приклади. Блок 52 обробки перетворення або блок 44 компенсації руху може обчислити залишковий блок для поточного блока (160). Залишковий блок може містити піксельні різниці між прогнозуючим відео блоком, який вказаний вектором руху для поточного блока, і поточним відео блоком. Блок 52 обробки перетворення може потім застосувати перетворення, таке як дискретне косинусне перетворення (DCT), до залишкового блока для поточного блока, в той час як блок 54 квантування може квантувати коефіцієнти перетворення з блока 52 обробки перетворення (162). Блок 56 ентропійного кодування може сканувати перетворені коефіцієнти, одержані з перетворення 162. У деяких випадках блок 56 ентропійного кодування може застосувати зигзагоподібне сканування або інший шаблон сканування, щоб сканувати коефіцієнти перетворення перетвореного залишкового блока (164). Блок 56 ентропійного кодування може ентропійно кодувати коефіцієнти, що містять серії нулів, одержані із сканування 164, наприклад, використовуючи кодування довжин серій, для подальшого стиснення (166). Блок 56 ентропійного кодування може потім вивести ентропійно кодовані коефіцієнти і спільно закодоване значення MVD (168). Таким чином, блок 56 ентропійного кодування може вивести спільно кодовані дані для х- та у- компонент значення MVD додатково до ентропійно кодованих квантованих коефіцієнтів перетворення. Способи згідно з Фіг. 4 можуть бути звичайно виконані будь-яким блоком обробки або процесором, чи реалізовані вони в апаратному забезпеченні, програмному забезпеченні, програмно-апаратних засобах, або їх комбінації, і коли реалізовано в програмному забезпеченні або програмно-апаратних засобах, відповідне апаратне забезпечення може бути надане, щоб виконати інструкції для програмного забезпечення або програмно-апаратних засобів. З метою прикладу способи згідно з Фіг. 4 описані відносно пристрою кодування відео, який може включати в себе компоненти, по суті аналогічні таким з відео кодера 20 (Фіг. 1 та 2), хоча треба мати на увазі, що інші пристрої можуть бути сконфігуровані, щоб виконати аналогічні способи. Крім того, етапи, ілюстровані на Фіг. 4, можуть бути виконані у відмінному порядку або паралельно, і додаткові етапи можуть бути додані, і деякі етапи опущені, не відступаючи від способів даного розкриття. Фіг. 5 є послідовністю операцій, що ілюструє спосіб окремої сигналізації вектора руху значення різниці векторів руху відповідно до способів, описаних в тестовій моделі 3.0 HEVC (HM3.0, що також називається HM3). Способи HEVC також описані в документі HCTVC-11003, 16 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 Brass et al, High Efficiency Video Coding (HEVC) Text Specification Draft 7, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 9th Meeting: Geneva, Switzerland, April 27, 2012 to May 7, 2012, which, as of June 7, 2102, може бути завантажено з http://phenix.it-sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/ JCTVC11003-v3.zip. Згідно зі способом, запропонованим в HM3, і ілюстрованим на Фіг. 5, значення mvd_x і mvd_y, відповідні х- та у- компоненти значення різниці векторів руху, сигналізуються окремо. Спосіб 180 ілюструє, як один або більше елементів синтаксису, що відносяться до mvd_x, можуть бути сигналізовані, і спосіб 192 ілюструє, як один або більше елементів синтаксису, що відносяться до mvd_y, можуть бути сигналізовані. У способі 180 блок відео кодера 20, такий як блок 44 компенсації руху або блок 56 ентропійного кодування, може сигналізувати прапор mvd_x==0 (182). Прапор mvd_x==0 представляє, чи рівні різниця між х- компонентами обчисленого вектора руху для PU в CU і прогнозувальник вектора руху для вектора руху, і відповідно, чи дорівнює відповідна різниця між цими двома х- компонентами нулю. Якщо прапор mvd_x==0 встановлений, то mvd_x, х- компонента MVD, рівна нулю ("Так" гілка на етапі 184), і спосіб закінчується (190). Однак, якщо mvd_x є відмінним від нуля (гілка "Ні" на етапі 184), відео кодер 20 може сигналізувати abs_mvd_x-1 (186). Abs_mvd_x-1 може представляти абсолютне значення значення mvd_x мінус один. Відео кодер 20 може далі сигналізувати значення, яке представляє знак mvd_x (188). Знак може бути наприклад, позитивним або негативним. Аналогічно, в способі 192 відео кодер, такий як відео кодер 20 згідно з Фіг. 1, може сигналізувати прапор mvd_y==0 (194). Прапор mvd_y==0 представляє, чи рівні різниця між укомпонентами обчисленого вектора руху для PU в CU і прогнозувальником вектора руху для вектора руху, і відповідно, чи дорівнює відповідна різниця між цими двома у- компонентами нулю. Якщо прапор mvd_y==0 встановлений, то mvd_y, у- компонента MVD, рівна нулю ("Так" гілка на етапі 196), і спосіб завершується (202). Однак, якщо mvd_y є відмінним від нуля (гілка "Ні" на етапі 196), відео кодер 20 може сигналізувати abs_mvd_y-1 (198). Abs_mvd_y-1 може бути значенням, яке представляє абсолютне значення значення mvd_y мінус один. Відео кодер 20 може далі сигналізувати значення, яке представляє знак mvd_y (200). Знак може бути наприклад, позитивним або негативним. Фіг. 6 є послідовністю операцій, що ілюструє зразковий спосіб 220 об'єднаного кодування значень різниці векторів руху для спільного кодування х- та у- компонент значення різниці векторів руху. В цілому, спосіб 220 згідно з Фіг. 6 відповідає етапу 158 згідно з Фіг. 4. Таким чином, спосіб 220 згідно з Фіг. 6 представляє зразковий спосіб для спільного кодування даних хта у- компонент значення різниці векторів руху. Крім того, передбачається, що до виконання зразкового способу згідно з Фіг. 6 блок 44 компенсації руху з відео кодера 20, або інший блок відео кодера 20, такий як блок 56 ентропійного кодування з відео кодера 20, можуть обчислити вектор руху для поточного блока відео даних та обчислити значення різниці векторів руху як різницю між вектором руху для поточного блока відео даних і прогнозувальником вектора руху, визначеним для поточного блока відео даних, наприклад, як описано відносно етапу 156 згідно з Фіг. 4. Щоб спільно кодувати дані для х- та у- компонентів значення різниці векторів руху, блок 56 ентропійного кодування може кодувати інформацію, яка представляє те, чи більше абсолютне значення mvd_x, х- компоненти значення різниці векторів руху, ніж нуль (222). Блок 56 ентропійного кодування може потім кодувати інформацію, яка представляє те, чи більше абсолютне значення у- компоненти (mvd_y) значення різниці векторів руху ніж нуль (224). Коли абсолютне значення х- компоненти значення різниці векторів руху більше ніж нуль, блок 56 ентропійного кодування може кодувати інформацію, яка представляє абсолютне значення х- компоненти значення різниці векторів руху (226). І коли абсолютне значення укомпоненти значення різниці векторів руху більше ніж нуль, блок 56 ентропійного кодування може кодувати інформацію, яка представляє абсолютне значення у- компоненти значення різниці векторів руху (228). У деяких прикладах блок 56 ентропійного кодування може кодувати інформацію, яка представляє абсолютне значення х- та у- компонент значень різниці векторів руху, як абсолютні значення mvd_x/2-1, і mvd_y/2-1, відповідно. Коли абсолютне значення х- компоненти значення різниці векторів руху більше ніж нуль, блок 56 ентропійного кодування може кодувати знак х- компоненти значення різниці векторів руху (230). Коли абсолютне значення у- компоненти значення різниці векторів руху більше ніж нуль, блок 56 ентропійного кодування може кодувати знак у- компоненти значення різниці векторів руху. 17 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 60 Способи згідно з Фіг. 6 можуть бути звичайно виконані будь-яким блоком обробки або процесором, чи реалізовані вони в апаратному забезпеченні, програмному забезпеченні, програмно-апаратних засобах або їх комбінації, і коли реалізовано в програмному забезпеченні або програмно-апаратних засобах, відповідне апаратне забезпечення може бути надане, щоб виконати інструкції для програмного забезпечення або програмно-апаратних засобів. З метою прикладу способи згідно з Фіг. 6 описані відносно пристрою кодування відео, який може включати в себе компоненти, по суті аналогічні таким з відео кодера 20 (Фіг. 1 та 2), хоча треба мати на увазі, що інші пристрої можуть бути сконфігуровані, щоб виконати аналогічні способи. Крім того, етапи, ілюстровані на Фіг. 6, можуть бути виконані в іншому порядку або паралельно, і додаткові етапи можуть бути додані, і деякі етапи опущені, не відступаючи від способів даного розкриття. Таким чином, спосіб згідно з Фіг. 6 представляє приклад способу, що включає в себе кодування інформації, яка представляє те, чи більше абсолютне значення х- компоненти значення різниці векторів руху для поточного блока відео даних ніж нуль, кодування інформації, яка представляє те, чи більше абсолютне значення у- компоненти значення різниці векторів руху ніж нуль, коли абсолютне значення х- компоненти значення різниці векторів руху більше ніж нуль, кодування інформації, яка представляє абсолютне значення х- компоненти значення різниці векторів руху, коли абсолютне значення у- компоненти значення різниці векторів руху більше ніж нуль, кодування інформації, яка представляє абсолютне значення у- компоненти значення різниці векторів руху, коли абсолютне значення х- компоненти значення різниці векторів руху більше ніж нуль, кодування знаку х- компоненти значення різниці векторів руху, і коли абсолютне значення у- компоненти значення різниці векторів руху більше ніж нуль, кодування знаку у- компоненти значення різниці векторів руху. Таким чином, спосіб згідно з Фіг. 6 представляє приклад об'єднаного кодування елементів х- та у- компонент значення різниці векторів руху, обчисленого для вектора руху поточного блока відео даних. Фіг. 7 є послідовністю операцій, що ілюструє спосіб для того, щоб сигналізувати значення для значень mvd_x та mvd_y. На відміну від способів 180 та 192 згідно з Фіг. 5, які ілюструють кодування х- та у- компонентів MVD окремо, і аналогічно способу Фіг. 6, спосіб згідно з Фіг. 7 може також дозволити кодеру спільно кодувати х- та у- компоненти значення різниці векторів руху, тобто, mvd_x і mvd_y. У цьому прикладі один елемент синтаксису, сигналізований в потоці бітів кодером, таким як відео кодер 20 згідно з Фіг. 1 та 2, може містити величину, знак і/або іншу інформацію, що відноситься до х- та у- компонент значення різниці векторів руху. У прикладі згідно з Фіг. 7, як пояснено нижче, відео кодер 20 може кодувати прапор розрізнення руху, який є значенням, що представляє те, чи має вектор руху поточного блока відео даних першу суб-піксельну точність, наприклад, піксельну точність в одну чверть, або другу суб-піксельну точність, наприклад, піксельну точність в одну восьму. У цьому прикладі прапор розрізнення руху має значення одиниця, щоб вказувати, що вектор руху поточного блока має піксельну точність в одну чверть, і має значення нуль, щоб вказувати, що прапор розрізнення руху має піксельну точність в одну восьму. Відео кодер 20 може також кодувати значення, abs_mvd_equal_2, яке представляє, чи має величини однієї або обох з компонент різниці векторів руху абсолютне значення два. Відео кодер 20 може призначити значення на abs_mvd_equal_2 на основі прикладу з Таблиці 1 нижче. У прикладі способу 240 згідно з Фіг. 7, блок 44 компенсації руху або інший блок відео кодера 20 можуть сигналізувати прапор mvd_x==0, (242) і прапор mvd_y==0 (244). Ці прапори можуть бути встановлені, коли відповідні значення mvd_x або mvd_y рівна нулю. Якщо і mvd_y і mvd_x є нулем ("Так" гілка на етапі 246), ніякі додаткові дані не повинні бути сигналізовані, і спосіб 240 завершується (266). Якщо або mvd_x або mvd_y є відмінними від нуля (гілка "Ні" на етапі 246), блок 44 компенсації руху може сигналізувати або закодувати прапор розрізнення руху (246). Прапор розрізнення руху (mvres_flag) є прикладом елемента синтаксису, який може вказувати розрізнення вектора руху (що також називається точність вектора руху) для вектора руху, що відповідає значенням різниці векторів руху. Прапор розрізнення руху може вказувати, чи має вектор руху поточного блока відео даних першу суб-піксельну точність або другу суб-піксельну точність, наприклад, піксельну точність в одну чверть або піксельну точність в одну восьму. Відео кодер 20 може також визначити поріг для поточного кадру, який також асоційований з вектором руху для поточного блока, і який може бути сигналізований в заголовку вирізки або іншій структурі даних, наприклад, наборі параметрів вирізки (SPS) або наборі параметрів картинки (PPS). Відео кодер 20 може використовувати цей поріг, щоб обмежити амплітуду значень різниці векторів руху однією восьмою пікселя і може вказувати, що вектор руху має першу суб-піксельну точність, коли обидва - х- компонента значення різниці векторів руху 18 UA 110981 C2 5 10 15 20 25 30 35 40 (mvd_x) і у- компонента значення різниці векторів руху (mvd_y) більше ніж поріг. Наприклад, як показано нижче з посиланням на Таблицю 1 нижче, відео кодер (наприклад, відео кодер 20) може обмежити величину х- та у- компонент значення різниці векторів руху однієї восьмої піксельної точності значеннями один або два. Відео кодер може сигналізувати значення порога, використовуючи прапор порога. Якщо MVD, обчислена для х- або у- компоненти вектора руху для PU, більше ніж визначений поріг, прапор розрізнення руху може бути встановлений в "істина". Якщо прапор розрізнення руху встановлений в "істина", цей прапор представляє, що вектор руху має піксельну точність в одну чверть. Якщо значення MVD менше ніж або дорівнює вибраному порогу, відео кодер може встановити значення для прапора розрізнення руху, щоб вказувати, чи має відповідний вектор руху піксельну точність в одну восьму або одну чверть. Спосіб 240 може додатково містити визначення за допомогою відео кодера 20, чи дорівнює прапор розрізнення руху одиниці (250). Прапор розрізнення руху може бути рівним одиниці, наприклад, якщо точність вектора руху дорівнює точності в одну чверть. Якщо прапор розрізнення руху встановлений в одиницю, відео кодер 20 може сигналізувати або закодувати значення, яке представляє значення abs_mvd_x/2-1, якщо mvd_x є відмінним від нуля, де abs_mvd_x - значення, яке представляє абсолютне значення х- компоненти MVD (252). Відео кодер 20 може аналогічно кодувати значення, яке представляє abs_mvd_y/2-1, якщо mvd_x є відмінним від нуля, де abs_mvd_y є абсолютним значенням у- компоненти MVD (254). У деяких прикладах відео кодер 20 може сигналізувати abs_mvd_y/2-1, якщо mvd_y є відмінним від нуля, замість того, якщо mvd_x є ненульовим. Якщо прапор розрізнення руху не дорівнює одиниці (гілка "Ні" на етапі 250), відео кодер 20 може визначити, чи дорівнює поріг одиниці. Поріг може мати значення або один або два в цьому прикладі. В деякому прикладі поріг може мати значення два. Оскільки вектор руху може мати тільки піксельну точність в одну восьму, коли mvd_x та mvd_y значення не перевищують поріг, значення mvd_x і mvd_y обмежені один або двома в цьому прикладі. Крім того, якщо поріг дорівнює одиниці ("Так" гілка на етапі 256), і вектор руху має піксельну точність в одну чверть (як вказано прапором розрізнення руху, який в цьому прикладі повинен бути "істинним" після етапу 250), відео кодер не повинен сигналізувати додаткову інформацію для значень mvd. Таким чином, значення mvd_x і mvd_y можуть бути настроєні бути або нулем або одиницею, використовуючи іншу інформацію. Зокрема, чи є mvd_x та mvd_y нулем, може бути вказано на основі того, чи сигналізовані значення знаку в етапах 248 та 264. Якщо поріг рівний двом (гілка "Ні" на етапі 256), відео кодер 20 може визначити, чи дорівнює будь-який із значень mvd_x або mvd_y нулю. Якщо mvd_x або mvd_y рівні нулю ("Так" гілка на етапі 260), відео кодер 20 може продовжити сигналізувати знаки ненульового одного з mvd_x та mvd_y (258, 264). В деяких прикладах відео кодер 20 може додатково сигналізувати значення для ненульового одного з mvd_x та mvd_y, і таким чином, замість цього може перейти на етап 252, а не 258. Однак, якщо і mvd_x і mvd_y є відмінними від нуля, тобто, ні mvd_x, ні mvd у не мають значення нуль (гілка "Ні" на етапі 260), то відео кодер 20 може сигналізувати прапор abs_mvd_equal_2. Прапор abs_mvd_equal_2 є прикладом спільно кодованого значення для mvd_x і mvd_y. Відео кодер може призначити значення на abs_mvd_equal_2 на основі Таблиці 1 нижче. Таблиця 1 abs_mvd_equal_2 0 1 2 45 50 abs_mvd_x 1 1 2 abs_mvd_y 1 2 1 На основі значень abs mvd_x та abs mvd_y відео кодер 20 може сигналізувати значення abs_mvd_equal_2 (262), наприклад, згідно з Таблицею 1. Відео кодер 20 може сигналізувати значення abs_mvd_equal_2, використовуючи унарну бінаризацію. Відео кодер 20 може далі сигналізувати знак mvd_x, якщо mvd_x відрізнений від нуля (258), і аналогічно сигналізувати знак mvd_y, якщо mvd_x відрізнений від нуля (264). У деяких прикладах відео кодер 20 може сигналізувати знак mvd_y, якщо mvd_y є відмінним від нуля. У деяких прикладах прапор розрізнення руху, прапор mvd_x==0 і прапор mvd_y==0 кодуються спільно. Необов'язково, і як один приклад, коди VLC можуть використовуватися згідно з Таблицею 2 нижче: 19 UA 110981 C2 Таблиця 2 mvd_x==0 істина істина істина 15 20 25 30 35 40 45 mvd_y==0 неправда неправда неправда неправда 10 істина неправда неправда mvd_x==0 5 прапор розрізнення руху mvd_y==0 х істина істина неправда неправда 1 0 прапор розрізнення руху 1 0 0 1 Кодове слово VLC 00 101 1110 Кодове слово VLC 100 110 1111 01 Відео кодер 20 може сигналізувати прапор розрізнення руху, щоб вказувати один з розрізнення вектора руху в одну чверть пікселя і в одну восьму. Наприклад, відео кодер 20 може сигналізувати розрізнення різниці векторів руху між 1/4 пікселя або 1/8 пікселі. Відео кодер 20 може сигналізувати прапор розрізнення руху, щоб вказувати різницю між точністю вектора руху в одну чверть і одну восьму пікселя, коли MVD менше ніж порогове значення. Відео кодер 20 може також сигналізувати прапор розрізнення руху, щоб вказувати різницю між точністю вектора руху в одну чверть і одну восьму пікселя, коли один або обидва з компонентів MVD більше, ніж порогове значення. Пристрій декодування відео, такий як відео декодер 30, може працювати по суті оберненим способом до відео кодера 20, щоб виконати способи, ілюстровані на Фіг. 7. Таким чином відео декодер 30 може адаптивно вибрати точність вектора руху для кожного вектора руху на основі прийому і декодування значення, яке представляє вектор руху, такого як прапор розрізнення руху. Відео декодер 30 може також прийняти і декодувати порогове значення з (256). Відео декодер 30 може прийняти і декодувати порогове значення для кожного опорного кадру, щоб обмежити амплітуду значення різниці векторів руху в одну восьму суб-пікселя для кадру. Поріг може бути прийнятий в заголовку вирізки. Поріг може мати значення нуль, один або два. Поріг не обмежений, і може бути розширений на інші значення. Кодуючи інформацію про х- та укомпоненти значень різниці векторів руху, складність кодованого потоку бітів відео може бути зменшена, що може привести до більш низької повної частоти проходження бітів (швидкості передачі в бітах) для кодованих відео даних. У прикладі пристрій кодування відео, такий як відео кодер 20 або відео декодер 30, може кодувати значення, таке як прапор розрізнення руху згідно з Фіг. 7, який є таким, що представляє те, чи має вектор руху поточного блока відео даних першу суб-піксельну точність або другу суб-піксельну точність, таку як суб-піксельна точність в одну восьму або одну чверть. Друга суб-піксельна точність може бути більше ніж перша суб-піксельна точність. Коли вектор руху має другу суб-піксельну точність, наприклад, піксельну точність в одну восьму, коли хкомпонента значення різниці векторів руху не дорівнює нулю, і коли у- компонента значення різниці векторів руху не дорівнює нулю, відео кодер 20 або відео декодер 30 може кодувати інформацію, яка представляє абсолютне значення х- компоненти значення різниці векторів руху, і кодувати інформацію, яка представляє абсолютне значення у- компоненти значення різниці векторів руху. Відео кодер 20 або відео декодер 30 можуть кодувати спільно кодоване значення, яке представляє як х- компоненту значення різниці векторів руху так і у- компоненту значення різниці векторів руху. Способи згідно з Фіг. 7 можуть звичайно бути виконані будь-яким блоком обробки або процесором, чи реалізовані вони в апаратному забезпеченні, програмному забезпеченні, програмно-апаратних засобах, або їх комбінації, і коли реалізовано в програмному забезпеченні або програмно-апаратних засобах, відповідне апаратне забезпечення може бути надане, щоб виконати інструкції для програмного забезпечення або програмно-апаратних засобів. З метою прикладу способи згідно з Фіг. 7 описані відносно пристрою кодування відео, який може включати в себе компоненти, по суті аналогічні таким з відео кодера 20 (Фіг. 1 та 2). Відео декодер 30 згідно з Фіг. 1 та 3 може виконувати звичайно обернені операції тим, що проілюстровані та описані на Фіг. 7, щоб декодувати потік бітів, кодований згідно зі способами, ілюстрованими на Фіг. 7. Треба також мати на увазі, що інші пристрої можуть бути сконфігуровані, щоб виконати аналогічні способи. Крім того, етапи, ілюстровані на Фіг. 7, можуть бути виконані у відмінному порядку або паралельно, і додаткові етапи можуть бути додані, і деякі етапи опущені, не відступаючи від способів даного розкриття. 20 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 60 Спосіб згідно з Фіг. 7 представляє приклад способу, що включає в себе визначення, чи використовувати вектор руху, що має першу суб-піксельну точність або другу суб-піксельну точність, щоб кодувати одиницю прогнозування одиниці кодування відео даних, в якому друга суб-піксельна точність більше ніж перша суб-піксельна точність, обчислення х- компоненти та укомпоненти вектора руху, що має або першу суб-піксельну точність або другу суб-піксельну точність, на основі визначення, коли х- компонента та у- компонента мають другу суб-піксельну точність, визначення значення різниці векторів руху, на основі значень х- компоненти та укомпоненти вектора руху і значеннях прогнозованої х- компоненти і прогнозованої укомпоненти для вектора руху, і кодування спільно закодованого значення, яке представляє значення різниці векторів руху для х- компоненти та у- компоненти для вектора руху. Обернений спосіб може бути виконаний відео декодером. Обернений спосіб може, наприклад, включати в себе визначення, чи має вектор руху одиниці прогнозування одиниці кодування відео даних першу суб-піксельну точність або другу суб-піксельну точність, використовуючи значення прапора розрізнення руху для вектора руху, в якому друга субпіксельна точність більше ніж перша суб-піксельна точність, коли вектор руху має другу субпіксельну точність, декодування спільно закодованого значення, яке представляє значення різниці векторів руху для х- компоненти та у- компоненти вектора руху, і декодування вектора руху, на основі значень різниці векторів руху і значень прогнозованої х- компоненти і прогнозованої у- компоненти для вектора руху, і формування даних прогнозування для одиниці кодування, використовуючи декодований вектор руху. Відео кодер 20 або відео декодер 30 можуть визначити розрізнення вектора руху для поточного блока на основі порогового значення, ілюстрованого на Фіг. 7. Більш конкретно, відео кодер 20 або відео декодер 30 можуть визначити, чи має вектор руху для поточного блока першу суб-піксельну точність або другу суб-піксельну точність, за допомогою визначення порогового значення, асоційованого з вектором руху. Відео кодер 20 або відео декодер 30 можуть визначити, що вектор руху має першу суб-піксельну точність, коли як х- компонента значення різниці векторів руху поточного блока так і у- компонента значення різниці векторів руху більше ніж поріг. Коли щонайменше одна з х- компоненти значення різниці векторів руху та у- компоненти значення різниці векторів руху менше ніж або дорівнює порогу, відео кодер 20 або відео декодер 30 можуть визначити, чи має вектор руху першу суб-піксельну точність або другу субпіксельну точність, на основі значення прапора розрізнення вектора руху. Повинне бути визнано, що залежно від прикладу, деякі дії або події будь-якого зі способів, описаних тут, можуть бути виконані у відмінній послідовності, можуть бути додані, злиті, або не враховані в цілому (наприклад, не всі описані дії або події необхідні для практичної реалізації способів). Крім того, в деяких прикладах дії або події можуть бути виконані одночасно, наприклад, за допомогою мульти-потокової обробки, обробки переривань або множинних процесорів, а не послідовно. Фіг. 8 є послідовністю операцій, що ілюструє зразковий спосіб для того, щоб спільно декодувати х- та у- компоненти значення різниці векторів руху та ентропійно декодувати кодовані дані, щоб сформувати поточний блок. Етапи способу 280 згідно з Фіг. 8 є звичайно оберненими способу 150 згідно з Фіг. 4. У способі 280 блок 72 компенсації руху або інший блок відео декодера 30 можуть прогнозувати поточний блок (282). Як частина прогнозування поточного блока, блок 72 компенсації руху може декодувати спільно закодовані компоненти значення різниці векторів руху (284). Відео декодер може декодувати спільно закодовані компоненти різниці векторів руху відповідно до способів способу 320, ілюстрованого на Фіг. 9. Значення різниці векторів руху для поточного блока може мати х- компоненту mvd_x та укомпоненту mvd_y. Спільно закодовані компоненти значення різниці векторів руху можуть включати в себе х- та у- компоненти значення різниці векторів руху для поточного блока, а також іншу інформацію, що відноситься до значення різниці векторів руху, таку як одне або більше значень, що представляють те, чи є х- та у- компоненти різниці векторів руху нулем, значенням, що представляє значення знаку х- і/або у- компоненти значення різниці векторів руху, і значенням, що представляє абсолютне значення компоненти значення різниці векторів руху, як деякі необмежуючі приклади. Блок 44 компенсації руху з відео кодера 20 може також прийняти прогнозувальник вектора руху для вектора руху поточного блока (286). Прогнозувальник вектора руху є вектором руху, який блок 72 компенсації руху використовує, щоб обчислити значення різниці векторів руху для поточного блока. У деяких прикладах прогнозувальник вектора руху може бути вектором руху одного з множини блоків, що межують з PU поточного блока. Блок 72 компенсації руху може також визначити прогнозувальник вектора руху від спільно розташованого блока одного з 21 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 опорних кадрів, збережених в пам'яті 82 опорних кадрів. Прогнозувальник вектора руху може мати х- компоненту p_x та у- компоненту p_y. Прогнозувальник вектора руху може бути визначений відео кодером 20 під час фази кодування таким чином, що прогнозувальник вектора руху мінімізує різницю векторів руху для поточного блока і прогнозувальника вектора руху. На основі прогнозувальника вектора руху блок 72 компенсації руху з відео кодера 20 може обчислити вектор руху для поточного блока (286). Відео декодер 30 може обчислити вектор руху як суму компонент різниці векторів руху і прогнозувальника вектора руху, p_x+mvd_x, p_y+mvd_y (288). Блок 70 ентропійного декодування може прийняти ентропійно кодовані дані для поточного блока (290), і декодувати дані, такі як перетворені кодовані довжиною серій коефіцієнти блока, щоб відтворити ці перетворені коефіцієнти блока (292). Блок 70 ентропійного декодування може обернено сканувати відтворені коефіцієнти, щоб перекомпонувати коефіцієнти з одного або більше одномірних векторів коефіцієнтів у двомірний блок перетворених коефіцієнтів (294). Блок 76 оберненого квантування може обернено квантувати двомірний блок коефіцієнтів перетворення, і блок 78 оберненого перетворення може обернено перетворити коефіцієнти, обернено квантовані коефіцієнти, щоб сформувати блок неперетворених пікселів (296). Залишковий блок може містити піксельні різниці між прогнозуючим блоком відео, який вказаний вектором руху для поточного блока, і поточним блоком відео. Відео декодер 30 може потім об'єднати залишковий блок з прогнозуючим блоком, щоб сформувати поточний блок поточного кадру (298). Способи згідно з Фіг. 8 можуть звичайно бути виконані будь-яким блоком обробки або процесором, чи реалізовані вони в апаратному забезпеченні, програмному забезпеченні, програмно-апаратних засобах, або їх комбінації, і коли реалізоване в програмному забезпеченні або програмно-апаратних засобах, відповідне апаратне забезпечення може бути надане, щоб виконати інструкції для програмного забезпечення або програмно-апаратних засобів. З метою прикладу способи згідно з Фіг. 8 описані відносно пристрою декодування відео, який може включати в себе компоненти, по суті аналогічні таким з відео декодера 30 (Фіг. 1 та 3), хоча треба мати на увазі, що інші пристрої можуть бути сконфігуровані, щоб виконати аналогічні способи. Крім того, етапи, ілюстровані на Фіг. 8, можуть бути виконані у відмінному порядку або паралельно, і додаткові етапи можуть бути додані, і деякі етапи опущені, не відступаючи від способів даного розкриття. Фіг. 9 є послідовністю операцій, що ілюструє зразковий спосіб для того, щоб спільно декодувати х- та у- компоненти значення різниці векторів руху. Етапи способу 320 згідно з Фіг. 9 є в цілому оберненими до етапів способу 220 згідно з Фіг. 6. Аналогічно, спосіб 320 може в цілому відповідати етапу 284 згідно з Фіг. 8. У способі 320 згідно з Фіг. 9, блок 72 компенсації руху з відео декодера 30 або інший блок відео декодера 30 може прийняти спільно кодоване представлення вектора руху для поточного блока відео даних. Відео декодер 30 може також визначити прогнозувальник вектора руху, який відео декодер, такий як відео кодер 20, може раніше визначити і закодувати. Відео декодер 30 може обчислити вектор руху для поточного блока як різницю суми прогнозувальника вектора руху для поточного блока відео даних і прогнозувальника вектора руху, визначеного для поточного блока відео даних. Щоб визначити компоненти значення різниці векторів руху, блок 72 компенсації руху з відео декодера 30 може декодувати інформацію, яка представляє те, чи більше абсолютне значення mvd_x, х- компоненти значення різниці векторів руху, ніж нуль (322). Блок 72 компенсації руху може потім декодувати інформацію, яка представляє те, чи більше абсолютне значення укомпоненти (mvd_y) значення різниці векторів руху ніж нуль (324). Коли абсолютне значення х- компоненти значення різниці векторів руху більше ніж нуль, блок 72 компенсації руху може декодувати інформацію, яка представляє абсолютне значення хкомпоненти значення різниці векторів руху (326). І коли абсолютне значення у- компоненти значення різниці векторів руху більше ніж нуль, блок 72 компенсації руху може декодувати інформацію, яка представляє абсолютне значення у- компоненти значення різниці векторів руху (328). У деяких прикладах відео декодер 30 може декодувати інформацію, яка представляє абсолютне значення х- та у- компонент значень різниці векторів руху, як абсолютні значення mvd_x/2-1, і mvd_y/2-1, відповідно. Коли абсолютне значення х- компоненти значення різниці векторів руху більше ніж нуль, блок 72 компенсації руху може декодувати знак х- компоненти значення різниці векторів руху (330). Коли абсолютне значення у- компоненти значення різниці векторів руху більше ніж нуль, блок 72 компенсації руху може декодувати знак у- компоненти значення різниці векторів руху (332). 22 UA 110981 C2 5 10 15 20 25 30 Способи згідно з Фіг. 9 можуть бути звичайно виконані будь-яким блоком обробки або процесором, чи реалізовані вони в апаратному забезпеченні, програмному забезпеченні, програмно-апаратних засобах, або їх комбінації, і коли реалізоване в програмному забезпеченні або програмно-апаратних засобах, відповідне апаратне забезпечення може бути надане, щоб виконати інструкції для програмного забезпечення або програмно-апаратних засобів. З метою прикладу способи згідно з Фіг. 9 описані відносно пристрою кодування відео, який може включати в себе компоненти, по суті аналогічні таким з відео декодера 30 (Фіг. 1 та 3), хоча треба мати на увазі, що інші пристрої можуть бути сконфігуровані, щоб виконати аналогічні способи. Крім того, етапи, ілюстровані на Фіг. 9, можуть бути виконані у відмінному порядку або паралельно, і додаткові етапи можуть бути додані, і деякі етапи опущені, не відступаючи від способів даного розкриття. Таким чином, спосіб згідно з Фіг. 9 представляє приклад способу, що включає в себе кодування інформації, яка представляє те, чи більше абсолютне значення х- компоненти значення різниці векторів руху для поточного блока відео даних ніж нуль, кодування інформації, яка представляє те, чи більше абсолютне значення у- компоненти значення різниці векторів руху ніж нуль, коли абсолютне значення х- компоненти значення різниці векторів руху більше ніж нуль, кодування інформації, яка представляє абсолютне значення х- компоненти значення різниці векторів руху, коли абсолютне значення у- компоненти значення різниці векторів руху більше ніж нуль, кодування інформації, яка представляє абсолютне значення у- компоненти значення різниці векторів руху, коли абсолютне значення х- компоненти значення різниці векторів руху більше ніж нуль, кодування знаку х- компоненти значення різниці векторів руху, і коли абсолютне значення у- компоненти значення різниці векторів руху більше ніж нуль, кодування знаку у- компоненти значення різниці векторів руху. Таким чином, спосіб згідно з Фіг. 9 представляє інший приклад способу для спільного кодування даних значення різниці векторів руху. Крім того, відео декодер 30 може також конфігуруватися, щоб виконати спосіб декодування відео, по суті подібний до способу згідно з Фіг. 7. Деякі способи даного розкриття були експериментально оцінені. Зокрема, способи даного розкриття, що відносяться до адаптивної сигналізації суб-піксельної точності, були реалізовані для HM3.0 і модельовані при звичайних тестових умовах. Продуктивність була порівняна з базовим HM3.0 в термінах швидкості передачі по Delta Bjontegaard (BD). Результати моделювання показали в середньому економію BD-швидкості передачі в 0.4 %, на високоефективних конфігураціях і в середньому економію BD-швидкості передачі в 0.6 % на конфігураціях низької складності. Таблиця 3 нижче підсумовує експериментальні результати: 23 UA 110981 C2 5 10 15 20 25 Повинне бути визнано, що залежно від прикладу, деякі дії або події будь-якого зі способів, описаних тут, можуть бути виконані у відмінній послідовності, можуть бути додані, злиті, або не враховані в цілому (наприклад, не всі описані дії або події необхідні для практичної реалізації способів). Крім того, в деяких прикладах дії або події можуть бути виконані одночасно, наприклад, за допомогою мультипотокової обробки, обробки переривань або множинних процесорів, а не послідовно. В одному або більше прикладах описані функції можуть бути реалізовані в апаратному забезпеченні, програмному забезпеченні, програмно-апаратних засобах або будь-якій їх комбінації. Якщо реалізовані в програмному забезпеченні, функції можуть бути збережені на або передані по як одна або більше інструкцій або код на зчитуваному комп'ютером носії і виконані основаним на апаратному забезпеченні блоком обробки. Зчитуваний комп'ютером носій може включати в себе зчитувані комп'ютером запам'ятовуючі носії, які відповідають матеріальному носію, такому як запам'ятовуючі носії даних, або комунікаційні носії, включаючи будь-який носій, який полегшує передачу комп'ютерної програми від одного місця до іншого, наприклад, згідно з протоколом зв'язку. Таким чином зчитуваний комп'ютером носій звичайно може відповідати (1) матеріальним зчитуваним комп'ютером запам'ятовуючим носіям, які є нечасовими, або (2) комунікаційному носію, такому як сигнал або несуча. Запам'ятовуючі носії даних можуть бути будь-якими доступними носіями, до яких можуть одержати доступ один або більше комп'ютерів або один або більше процесорів, щоб витягнути інструкції, код і/або структури даних для реалізації способів, описаних в даному розкритті. Комп'ютерний програмний продукт може включати в себе зчитуваний комп'ютером носій. За допомогою прикладу, а не обмеження, такі зчитувані комп'ютером носії даних можуть містити RAM, ROM, EEPROM, CD-ROM або інший оптичний дисковий запам'ятовуючий пристрій, магнітний дисковий запам'ятовуючий пристрій, або інші магнітні пристрої зберігання, флеш-пам'ять, або будь-який інший носій, який може використовуватися, щоб зберегти бажаний 24 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 60 програмний код в формі інструкцій або структур даних, і до якого може одержати доступ комп'ютер. Також, будь-яке з'єднання належним чином називають зчитуваним комп'ютером носієм. Наприклад, якщо інструкції передані від веб-сайту, сервера, або іншого віддаленого джерела, використовуючи коаксіальний кабель, волокно-оптичний кабель, виту пару, цифрову абонентську лінію (DSL), або бездротові технології, такі як інфрачервона, радіо- і мікрохвильова, то цей коаксіальний кабель, волокно-оптичний кабель, вита пара, DSL, або ці бездротові технології, такі як інфрачервона, радіо- і мікрохвильова, включені у визначення носія. Треба мати на увазі, однак, що зчитувані комп'ютером носії даних і запам'ятовуючі носії даних не включають в себе з'єднання, несучі, сигнали, або інші часові носії, але замість цього направлені на нечасові матеріальні носії даних. Диск і диск, як використовується тут, включають в себе компакт-диск (CD), лазерний диск, оптичний диск, цифровий універсальний диск (DVD), дискету і диск blu-ray, де диски (disks) звичайно відтворюють дані магнітним чином, в той час як диски (disсs) відтворюють дані оптично за допомогою лазерів. Комбінації вищезазначеного повинні також бути включені в поняття зчитуваного комп'ютером носія. Інструкції можуть бути виконані одним або більше процесорами, такими як один або більше цифрових сигнальних процесорів (DSP), мікропроцесори загального призначення, спеціалізовані інтегральні схеми (ASIC), програмовані користувачем логічні матриці (FPGA), або інші еквівалентні інтегральні або дискретні логічні схеми. Відповідно, термін "процесор", як використовується тут, може стосуватися будь-якої відомої структури або будь-якої іншої структури, підходящої для реалізації способів, описаних тут. Також, в деяких аспектах функціональні можливості, описані тут, можуть бути надані в межах спеціалізованого апаратного забезпечення і/або програмних модулів, сконфігурованих для кодування і декодування, або вбудованих в об'єднаний кодек. Також, способи могли бути повністю реалізовані в одній або більше схемах або логічних елементах. Способи даного розкриття можуть бути реалізовані в широкій різноманітності пристроїв або апаратів, включаючи бездротову телефонну трубку, інтегральну схему (IC, ІС) або набір IC (наприклад, мікропроцесорний набір). Різні компоненти, модулі або блоки описані в даному описі, щоб підкреслити функціональні аспекти пристроїв, що конфігуруються, щоб виконувати розкриті способи, але не обов'язково вимагати реалізації різними блоками апаратного забезпечення. Замість цього, як описано вище, різні блоки можуть бути об'єднані в блоці апаратного забезпечення кодека або надані колекцією взаємодіючих блоків апаратного забезпечення, включаючи один або більше процесорів, як описано вище, в з'єднанні з підходящим програмним забезпеченням і/або програмно-апаратними засобами. Були описані різні приклади. Ці та інші приклади знаходяться в рамках нижченаведеної формули винаходу. Посилальні позиції 10 система кодування і декодування відео 12 пристрій-джерело 14 пристрій призначення 16 комунікаційний канал 18 відео джерело 20 відео кодер 22 модулятор/демодулятор (модем) 24 передавач 26 приймач 28 модем 30 відео декодер 32 пристрій відображення 40 блок вибору режиму 42 блок оцінки руху 44 блок компенсації руху 45 блок квантування 46 блок внутрішнього прогнозування 50 суматор 52 блок обробки перетворення 54 блок квантування 56 блок ентропійного кодування 58 оберненого квантування 60 блок оберненого перетворення 62 суматор 25 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 64 пам'ять опорних кадрів 70 блок ентропійного декодування 72 блок компенсації руху 74 блок внутрішнього прогнозування 76 блок оберненого квантування 78 блок оберненого перетворення 80 суматор 82 пам'ять опорних кадрів ФОРМУЛА ВИНАХОДУ 1. Спосіб ентропійного кодування відеоданих, причому спосіб включає: коли абсолютне значення х-компоненти значення різниці векторів руху для поточного блока більше ніж нуль, і коли абсолютне значення у-компоненти значення різниці векторів руху для поточного блока більше ніж нуль, ентропійне кодування інформації, що представляє значення різниці векторів руху, причому ентропійне кодування інформації, що представляє значення різниці векторів руху, містить: перемежовування інформації, що представляє те, чи більше згадане абсолютне значення хкомпоненти значення різниці векторів руху для згаданого поточного блока відеоданих ніж нуль, і інформації, що представляє те, чи більше згадане абсолютне значення у-компоненти значення різниці векторів руху ніж нуль; і перемежовування інформації, що представляє абсолютне значення х-компоненти значення різниці векторів руху, інформації, що представляє абсолютне значення у-компоненти значення різниці векторів руху, знака х-компоненти значення різниці векторів руху і знака у-компоненти значення різниці векторів руху. 2. Спосіб за п. 1, в якому ентропійне кодування містить контекстно-адаптивне двійкове арифметичне кодування (САВАС), причому спосіб додатково містить: обчислення вектора руху для поточного блока відеоданих; і обчислення значення різниці векторів руху як різниці між вектором руху для поточного блока відеоданих і прогнозувальника вектора руху, визначеного для поточного блока відеоданих. 3. Спосіб за п. 1, в якому ентропійне кодування містить декодування згідно з контекстноадаптивним двійковим арифметичним кодуванням (САВАС), причому спосіб додатково містить: визначення прогнозувальника вектора руху для поточного блока відеоданих; і обчислення вектора руху для поточного блока відеоданих як суми значення різниці векторів руху і прогнозувальника вектора руху. 4. Спосіб за п. 1, який додатково містить: кодування значення, що представляє те, чи має вектор руху поточного блока відеоданих першу субпіксельну точність або другу субпіксельну точність, в якому друга субпіксельна точність більше, ніж перша субпіксельна точність; і коли вектор руху має другу субпіксельну точність, коли х-компонента значення різниці векторів руху не дорівнює нулю, і коли у-компонента значення різниці векторів руху не дорівнює нулю, то кодування інформації, що представляє абсолютне значення х-компоненти значення різниці векторів руху і кодування інформації, що представляє абсолютне значення у-компоненти значення різниці векторів руху, містить кодування спільно кодованого значення, що представляє як х-компоненту значення різниці векторів руху, так і у-компоненту значення різниці векторів руху. 5. Спосіб за п. 4, який додатково містить визначення, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, містить: визначення порогового значення, асоційованого з вектором руху; і визначення, що вектор руху має першу субпіксельну точність, коли і х-компонента значення різниці векторів руху, і у-компонента значення різниці векторів руху більше, ніж поріг. 6. Спосіб за п. 5, в якому визначення, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, містить, коли щонайменше одна з х-компоненти значення різниці векторів руху і у-компоненти значення різниці векторів руху менше ніж або дорівнює порогу, визначення, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, на основі значення прапора дозволу вектора руху. 7. Спосіб за п. 4, в якому кодування значення, що представляє те, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, містить кодування значення для прапора дозволу вектора руху. 26 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 8. Спосіб за п. 1, в якому кодування інформації, що представляє абсолютне значення хкомпоненти значень різниці векторів руху, містить кодування абсолютного значення хкомпоненти значень різниці векторів руху як mvd _ x / 2 1 , в якому mvd _ x містить хкомпоненту значення різниці векторів руху; і в якому кодування інформації, що представляє абсолютне значення у-компоненти значень різниці векторів руху, містить кодування абсолютного значення у-компоненти значень різниці векторів руху як mvd _ y / 2 1, в якому mvd _ y містить у-компоненту значення різниці векторів руху. 9. Пристрій для ентропійного кодування даних відео, причому пристрій містить ентропійний кодувач відео, сконфігурований, щоб, коли абсолютне значення х-компоненти значення різниці векторів руху більше ніж нуль і коли абсолютне значення у-компоненти значення різниці векторів руху більше ніж нуль, ентропійно кодувати інформацію, що представляє значення різниці векторів руху, причому, щоб ентропійно кодувати інформацію, що представляє значення різниці векторів руху, пристрій для ентропійного кодування сконфігурований, щоб: перемежовувати інформацію, що представляє те, чи більше абсолютне значення згаданої хкомпоненти згаданого значення різниці векторів руху для поточного блока відеоданих ніж нуль, і інформації, що представляє те, чи більше абсолютне значення згаданої у-компоненти згаданого значення різниці векторів руху ніж нуль, і перемежовувати інформацію, що представляє абсолютне значення х-компоненти значення різниці векторів руху, інформацію, що представляє абсолютне значення у-компоненти значення різниці векторів руху, знак х-компоненти значення різниці векторів руху і знак у-компоненти значення різниці векторів руху. 10. Пристрій за п. 9, в якому ентропійний кодувач відео містить відеокодер згідно з контекстноадаптивним двійковим арифметичним кодуванням (САВАС), і в якому відеокодер САВАС також сконфігурований, щоб обчислювати вектор руху для поточного блока відеоданих і обчислювати значення різниці векторів руху як різницю між вектором руху для поточного блока відеоданих і прогнозувальником вектора руху, визначеним для поточного блока відеоданих. 11. Пристрій за п. 9, в якому ентропійний кодувач відео містить відеодекодер згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС), і в якому відеодекодер САВАС також сконфігурований, щоб визначати прогнозувальника вектора руху для поточного блока відеоданих і обчислювати вектор руху для поточного блока відеоданих як суму значення різниці векторів руху і прогнозувальника вектора руху. 12. Пристрій за п. 9, в якому кодувач відео сконфігурований, щоб кодувати значення, що представляє те, чи має вектор руху поточного блока відеоданих першу субпіксельну точність або другу субпіксельну точність, в якому друга субпіксельна точність більше, ніж перша субпіксельна точність, і в якому кодувач відео сконфігурований, щоб кодувати спільно закодоване значення, що представляє і х-компоненту значення різниці векторів руху, і укомпоненту значення різниці векторів руху, коли вектор руху має другу субпіксельну точність, коли х-компонента значення різниці векторів руху не дорівнює нулю і коли у-компонента значення різниці векторів руху не дорівнює нулю. 13. Пристрій за п. 12, в якому, щоб визначити, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, кодувач відео сконфігурований, щоб визначити порогове значення, асоційоване з вектором руху, і визначати, що вектор руху має першу субпіксельну точність, коли як х-компонента значення різниці векторів руху, так і у-компонента значення різниці векторів руху більше, ніж поріг. 14. Пристрій за п. 13, в якому, щоб визначити, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, кодувач відео сконфігурований, щоб, коли щонайменше одна з х-компоненти значення різниці векторів руху і у-компоненти значення різниці векторів руху менше ніж або дорівнює порогу, визначити, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, на основі значення прапора дозволу вектора руху. 15. Пристрій за п. 12, в якому, щоб визначити, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, кодувач відео сконфігурований, щоб визначити, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, на основі значення прапора дозволу вектора руху. 16. Пристрій за п. 9, в якому, щоб кодувати інформацію, що представляє абсолютне значення хкомпоненти значень різниці векторів руху, кодувач відео сконфігурований, щоб кодувати абсолютне значення х-компоненти значень різниці векторів руху як mvd _ x / 2 1, в якому mvd _ x містить х-компоненту значення різниці векторів руху; і в якому, щоб закодувати інформацію, що представляє абсолютне значення у-компоненти значень різниці векторів руху, 27 UA 110981 C2 5 10 15 20 25 30 35 40 45 50 55 60 кодувач відео сконфігурований, щоб закодувати абсолютне значення у-компоненти значень різниці векторів руху як mvd _ y / 2 1, в якому mvd _ y містить у-компоненту значення різниці векторів руху. 17. Пристрій за п. 9, в якому пристрій містить щонайменше одне з: інтегральної схеми; мікропроцесора і пристрою бездротового зв'язку, який включає в себе кодувач відео. 18. Пристрій для ентропійного кодування даних відео, причому пристрій містить: засіб для ентропійного кодування інформації, що представляє значення різниці векторів руху, коли абсолютне значення х-компоненти згаданого значення різниці векторів руху більше ніж нуль і коли абсолютне значення у-компоненти значення різниці векторів руху більше ніж нуль, причому засіб для ентропійного кодування інформації, що представляє значення різниці векторів руху, містить: засіб для перемежовування інформації, що представляє те, чи більше абсолютне значення х-компоненти значення різниці векторів руху для поточного блока відеоданих ніж нуль, і інформації, що представляє те, чи більше абсолютне значення у-компоненти значення різниці векторів руху ніж нуль; засіб для перемежовування інформації, що представляє абсолютне значення х-компоненти значення різниці векторів руху, інформації, що представляє абсолютне значення у-компоненти значення різниці векторів руху, коли абсолютне значення у-компоненти значення різниці векторів руху більше ніж нуль, знака х-компоненти значення різниці векторів руху і знака укомпоненти значення різниці векторів руху. 19. Пристрій за п. 18, в якому засіб для ентропійного кодування містить засіб для виконання кодування згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС), причому пристрій додатково містить: засіб для обчислення вектора руху для поточного блока відеоданих; і засіб для обчислення значення різниці векторів руху як різниці між вектором руху для поточного блока відеоданих і прогнозувальником вектора руху, визначеного для поточного блока відеоданих. 20. Пристрій за п. 18, в якому засіб для ентропійного кодування містить засіб для виконання декодування згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС), причому пристрій додатково містить: засіб для визначення прогнозувальника вектора руху для поточного блока відеоданих; і засіб для обчислення вектора руху для поточного блока відеоданих як суми значення різниці векторів руху і прогнозувальника вектора руху. 21. Пристрій за п. 18, який додатково містить: засіб для кодування значення, що представляє те, чи має вектор руху поточного блока відеоданих першу субпіксельну точність або другу субпіксельну точність, в якому друга субпіксельна точність більше, ніж перша субпіксельна точність; і засіб для кодування спільно закодованого значення, що представляє як х-компоненту значення різниці векторів руху, так і у-компоненту значення різниці векторів руху, коли вектор руху має другу субпіксельну точність, коли х-компонента значення різниці векторів руху не дорівнює нулю і коли у-компонента значення різниці векторів руху не дорівнює нулю. 22. Пристрій за п. 21, який додатково містить засіб для визначення, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, містить: засіб для визначення порогового значення, асоційованого з вектором руху; і засіб для визначення, що вектор руху має першу субпіксельну точність, коли і х-компонента значення різниці векторів руху і у-компонента значення різниці векторів руху більше, ніж поріг. 23. Пристрій за п. 22, в якому засіб для визначення, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, містить засіб для визначення, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, на основі значення прапора дозволу вектора руху, коли щонайменше одна з х-компоненти значення різниці векторів руху і укомпоненти значення різниці векторів руху менше ніж або дорівнює порогу. 24. Пристрій за п. 21, в якому засіб для кодування значення, що представляє те, чи має вектор руху першу субпіксельну точність або другу субпіксельну точність, містить засіб для кодування значення для прапора дозволу вектора руху. 25. Пристрій за п. 18, в якому засіб для кодування інформації, що представляє абсолютне значення х-компоненти значень різниці векторів руху, містить засіб для кодування абсолютного значення х-компоненти значень різниці векторів руху як mvd _ x / 2 1, в якому mvd _ x містить х-компоненту значення різниці векторів руху; і в якому засіб для кодування інформації, що представляє абсолютне значення у-компоненти значень різниці векторів руху, містить засіб для кодування абсолютного значення у-компоненти 28
ДивитисяДодаткова інформація
Назва патенту англійськоюVideo coding using adaptive motion vector resolution
Автори англійськоюChien, Wei-Jung, Chen, Peisong, Karczewicz, Marta
Автори російськоюЧиень Вей-Цзюн, Чень Пейсун, Карчевич Марта
МПК / Мітки
МПК: H04N 19/513, H04N 19/61, H04N 19/13, H04N 19/70, H04N 19/52
Мітки: кодування, використовуючи, вектора, розрізнення, відео, адаптивне, руху
Код посилання
<a href="https://ua.patents.su/39-110981-koduvannya-video-vikoristovuyuchi-adaptivne-rozriznennya-vektora-rukhu.html" target="_blank" rel="follow" title="База патентів України">Кодування відео, використовуючи адаптивне розрізнення вектора руху</a>
Попередній патент: Спосіб одержання сірчаної кислоти з використанням сульфіду водню, а також теплообмінник для такого способу
Наступний патент: Резистивний матеріал для товстоплівкових елементів
Випадковий патент: Спосіб одержання імуноглобуліну