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

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

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

Автори: Чень Пейсун, Карчевіч Марта, Панчал Рахул П.

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

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

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

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

генерують блок прогнозування на основі інтерпольованих значень субцілих пікселів,

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

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

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

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

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

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

5. Спосіб кодування відеоданих, що містить етапи, на яких:

генерують блок прогнозування на основі інтерпольованих значень субцілих пікселів,

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

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

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

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

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

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

9. Пристрій для декодування відеоданих, що містить:

пам'ять, у якій зберігаються відеодані; і

один або більше процесорів, виконаних з можливістю:

генерувати блок прогнозування на основі інтерпольованих значень субцілих пікселів,

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

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

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

застосовувати залишковий блок до блока прогнозування для відтворення вихідного блока.

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

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

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

13. Пристрій для кодування відеоданих, що містить: пам'ять, у якій зберігаються відеодані; і

один або більше процесорів, виконаних з можливістю:

генерувати блок прогнозування на основі інтерпольованих значень субцілих пікселів,

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

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

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

віднімати блок прогнозування з кодованого блока для генерування залишкового блока.

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

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

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

17. Пристрій для декодування відеоданих, що містить:

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

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

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

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

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

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

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

21. Пристрій для кодування відеоданих, що містить:

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

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

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

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

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

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

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

25. Машиночитаний носій даних, на якому збережені команди, які при їхньому виконанні пропонують процесору пристрою відеодекодування:

генерувати блок прогнозування на основі інтерпольованих значень субцілих пікселів,

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

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

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

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

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

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

29. Машиночитаний носій даних, на якому збережені команди, які при їхньому виконанні пропонують процесору пристрою відеокодування:

генерувати блок прогнозування на основі інтерпольованих значень субцілих пікселів,

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

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

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

віднімати блок прогнозування з кодованого блока для генерування

залишкового блока.

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

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

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

Текст

Реферат: Винахід описує методики обчислення значень для субцілих пікселів, що застосовуються кодером і декодером, щоб кодувати блоки відеоданих. В одному прикладі відеокодер виконаний з можливістю приймати значення для положень повного цілого пікселя з контрольної вибірки, застосовувати інтерполяційний фільтр відносно першої групи значень для положень повного цілого пікселя, щоб обчислити значення для першого субцілого пікселя одного з положень повного цілого пікселя, застосовувати інтерполяційний фільтр відносно другої, іншої, групи значень для положень повного цілого пікселя, щоб обчислити значення для другого, іншого, субцілого пікселя одного з положень повного цілого пікселя, кодувати поточний блок пікселів з використанням вектора руху, який вказує на один з першого субцілого пікселя і другого субцілого пікселя. UA 109923 C2 (12) UA 109923 C2 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 За даною заявкою заявляється пріоритет попередньої заявки на патент США № 61/422,051, поданої 10 грудня 2010 року, повний зміст якої включений сюди в повному обсязі за допомогою посилання. ГАЛУЗЬ ТЕХНІКИ, ДО ЯКОЇ НАЛЕЖИТЬ ВИНАХІД Дане розкриття належить до сфери кодування відеосигналу, наприклад, кодування і декодування відеоданих. РІВЕНЬ ТЕХНІКИ Можливості цифрового відео можуть бути використані для широкого діапазону пристроїв, включаючи цифрові телевізійні системи, цифрові системи прямого мовлення, пристрої бездротового зв'язку, такі як радіотелефонні трубки, бездротові системи мовлення, персональні цифрові помічники (PDA), лептопи або настільні комп'ютери, цифрові камери, цифрові записуючі пристрої, пристрої для відеоігор, ігрові відеоконсолі тощо. Цифрові відеопристрої задіють методики стиснення відеосигналу, такі як, щоб більш ефективно передавати і приймати цифрове відео. Методики стиснення відеосигналу мають на увазі просторове або часове прогнозування, щоб знизити або усунути надмірність, властиву відеопослідовностями. СУТЬ ВИНАХОДУ Це розкриття описує методики фільтрації, які можуть застосовуватися кодером і декодером під час стадії міжкадрового прогнозування в процесі кодування і/або декодування відеосигналу. Описані методики фільтрації можуть підвищити точність даних прогнозування, що використовуються при фракційній піксельній інтерполяції, і в деяких випадках можуть підвищити ефективність кодування. Існує декілька аспектів даного розкриття, що включають в себе методики інтерполяції значень для положень субпікселя на основі застосування інтерполяційного фільтра відносно різних комбінацій положень повного пікселя. Значення, відносно яких застосовується інтерполяційний фільтр, звичайно іменуються "підтримкою". Дані методики також включають в себе вибір підтримки, відносно якої належить застосувати інтерполяційний фільтр для положення субпікселя на основі таких факторів, як, наприклад, кодовані раніше кадри або поточне кодування кадрів. В одному аспекті спосіб кодування відеоданих містить прийом значень для положень повного цілого пікселя з контрольної вибірки. Спосіб також включає в себе застосування інтерполяційного фільтра відносно першої групи значень для положень повного цілого пікселя, щоб обчислити значення для першого субцілого пікселя одного з положень повного цілого пікселя. Крім того, спосіб також містить застосування інтерполяційного фільтра відносно другої, іншої, групи значень для положень повного цілого пікселя, щоб обчислити значення для другого, іншого, субцілого пікселя одного з положень повного цілого пікселя. Спосіб додатково містить кодування блока пікселів з використанням вектора руху, який вказує на один з першого субцілого пікселя і другого субцілого пікселя. В іншому аспекті пристрій містить відеокодер, який виконаний з можливістю приймати значення для положень повного цілого пікселя з контрольної вибірки. Відеокодер також виконаний з можливістю застосовувати інтерполяційний фільтр відносно першої групи значень для положень повного цілого пікселя, щоб обчислити значення для першого субцілого пікселя одного з положень повного цілого пікселя. Подібним чином, відеокодер виконаний з можливістю застосовувати інтерполяційний фільтр відносно другої, іншої, групи значень для положень повного цілого пікселя, щоб обчислити значення для другого, іншого, субцілого пікселя одного з положень повного цілого пікселя. Відеокодер додатково виконаний з можливістю кодувати блок пікселів з використанням вектора руху, який вказує на один з першого субцілого пікселя і другого субцілого пікселя. В іншому аспекті машинозчитуваний носій даних містить команди, які під час виконання в пристрої кодування відеосигналів ініціюють кодування пристроєм відеоблоків. Зокрема, команди ініціюють прийом пристроєм значень для положень повного цілого пікселя з контрольної вибірки і застосування інтерполяційного фільтра відносно першої групи значень для положень повного цілого пікселя, щоб обчислити значення для першого субцілого пікселя одного з положень повного цілого пікселя. Команди також ініціюють застосування пристроєм інтерполяційного фільтра відносно другої, іншої, групи значень для положень повного цілого пікселя, щоб обчислити значення для другого, іншого, субцілого пікселя одного з положень повного цілого пікселя. Команди додатково ініціюють кодування пристроєм блока пікселів з використанням вектора руху, який вказує на один з першого субцілого пікселя і другого субцілого пікселя. В іншому аспекті пристрій передбачений таким чином, що містить засіб прийому значень для положень повного цілого пікселя з контрольної вибірки. Пристрій додатково містить засіб застосування інтерполяційного фільтра відносно першої групи значень для положень повного цілого пікселя, щоб обчислити значення для першого субцілого пікселя одного з положень 1 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 повного цілого пікселя. Також пристрій містить засіб застосування інтерполяційного фільтра відносно другої, іншої, групи значень для положень повного цілого пікселя, щоб обчислити значення для другого, іншого, субцілого пікселя одного з положень повного цілого пікселя, і засіб кодування блока пікселів з використанням вектора руху, який вказує на один з першого субцілого пікселя і другого субцілого пікселя. У ще одному аспекті спосіб декодування відеоданих містить прийом контрольної вибірки, що містить положення повного цілого пікселя. Спосіб також включає в себе прийом індикації групи положень повного цілого пікселя з контрольної вибірки, що використовується для інтерполяції значення для субцілого пікселя з контрольної вибірки. Крім того, спосіб також включає в себе застосування інтерполяційного фільтра відносно групи положень повного цілого пікселя, щоб обчислити значення субцілого пікселя з контрольної вибірки. Спосіб додатково містить декодування блока пікселів відносно обчисленого значення субцілого пікселя. В іншому аспекті пристрій містить відеодекодер, який виконаний з можливістю приймати контрольну вибірку, що містить положення повного цілого пікселя. Відеодекодер також виконаний з можливістю приймати індикацію групи положень повного цілого пікселя з контрольної вибірки, що використовується для інтерполяції значення для субцілого пікселя з контрольної вибірки. Подібним чином, відеодекодер виконаний з можливістю застосовувати інтерполяційний фільтр відносно групи положень повного цілого пікселя, щоб обчислити значення субцілого пікселя з контрольної вибірки. Відеодекодер додатково виконаний з можливістю декодувати блок пікселів відносно обчисленого значення субцілого пікселя. В іншому аспекті машинозчитуваний носій даних містить команди, які під час виконання в пристрої кодування відеосигналів ініціюють кодування пристроєм відеоблоків. Зокрема, команди ініціюють прийом пристроєм контрольної вибірки, що містить положення повного цілого пікселя, і прийом індикації групи положень повного цілого пікселя з контрольної вибірки, що використовується для інтерполяції значення для субцілого пікселя з контрольної вибірки. Команди також ініціюють застосування пристроєм інтерполяційного фільтра відносно групи положень повного цілого пікселя, щоб обчислити значення субцілого пікселя з контрольної вибірки. Команди додатково ініціюють декодування пристроєм блока пікселів відносно обчисленого значення субцілого пікселя. В іншому аспекті пристрій містить засіб прийому контрольної вибірки, яка містить положення повного цілого пікселя, і засіб прийому індикації групи положень повного цілого пікселя з контрольної вибірки, щоб використовувати для інтерполяції значення для субцілого пікселя з контрольної вибірки. Пристрій додатково містить засіб обчислення значення субцілого пікселя з контрольної вибірки з використанням групи положень повного цілого пікселя. Пристрій додатково включає в себе засіб декодування блока пікселів відносно обчисленого значення субцілого пікселя. Методики, описані в даному розкритті, можуть застосовуватися відносно апаратного забезпечення, програмного забезпечення, програмно-апаратного забезпечення або будь-якої їх комбінації. При застосуванні відносно програмного забезпечення програмне забезпечення може реалізовуватися процесором, який може відноситися до одного або декількох процесорів, таких як мікропроцесор, спеціалізована інтегральна схема (ASIC), програмована користувачем вентильна матриця (FPGA) або процесор цифрових сигналів (DSP), або іншого інтегрованого еквіваленту або дискретних логічних схем. Програмне забезпечення, що містить команди для реалізації методик, може спочатку зберігатися на машинозчитуваному носії і завантажуватися та виконуватися процесором. Відповідно, розкриття також розглядає машинозчитуваний носій, що містить команди для ініціації реалізації процесором будь-якої з множини методик, як описується в даному розкритті. У деяких випадках машинозчитуваний носій даних може формувати частину комп'ютерного програмного продукту, який може бути проданий виробникам і/або використаний в пристрої. Комп'ютерний програмний продукт може включати в себе машинозчитуваний носій даних і в деяких випадках може також включати в себе пакувальні матеріали. Розкриття може також використовувати інформацію про перенесення електромагнітних сигналів. Наприклад, електромагнітний сигнал може містити інформацію, що відноситься до підтримки повного пікселя, яка використовується для інтерполяції значення для субцілого пікселя з контрольної вибірки. У деяких прикладах сигнал може генеруватися від пристрою або передаватися їм із застосуванням методик, описаних тут. В інших прикладах це розкриття може застосовуватися відносно сигналів, які можуть бути прийняті пристроєм, що реалізовує методики, описані тут. 2 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 Деталі одного або декількох аспектів розкриття викладені в прикладених кресленнях і описі, представлених нижче. Інші ознаки, цілі та переваги методик, описаних в даному розкритті, будуть зрозумілі з опису і креслень, а також формули винаходу. КОРОТКИЙ ОПИС КРЕСЛЕНЬ Фіг. 1 являє собою блок-схему, що ілюструє один приклад системи кодування і декодування відеосигналів, яка може використовуватися для реалізації однієї або декількох методик цього розкриття. Фіг. 2 являє собою блок-схему, що ілюструє приклад відеокодера, продемонстрованого на фіг. 1, з додатковими деталями. Фіг. 3 являє собою концептуальну діаграму, що ілюструє приклад положень цілого пікселя, зв'язаних з даними прогнозування, і положень субпікселя, зв'язаного з інтерпольованими даними прогнозування. Фіг. 4 являє собою концептуальну діаграму, що ілюструє приклад підтримки діагонального шестипіксельного фільтра відносно місцеположення субцілого пікселя. Фіг. 5 являє собою концептуальну діаграму, що ілюструє приклад підтримки х-подібного дванадцятипіксельного фільтра відносно місцеположення субцілого пікселя. Фіг. 6 являє собою концептуальну діаграму, що ілюструє приклад підтримки дванадцятипіксельного фільтра відносно трьох горизонтальних положень субпікселя і трьох вертикальних положень субпікселя. Фіг. 7 являє собою концептуальну діаграму, що ілюструє приклад підтримки дванадцятипіксельного фільтра відносно місцеположення субпікселя. Фіг. 8 являє собою концептуальну діаграму, що ілюструє приклад підтримки квадратного чотирипіксельного фільтра відносно положення субцілого пікселя. Фіг. 9 являє собою концептуальну діаграму, що ілюструє приклад підтримки прямокутного шестипіксельного фільтра відносно положення субцілого пікселя. Фіг. 10 являє собою блок-схему, що ілюструє приклад відеодекодера, продемонстрованого на фіг. 1, з додатковими деталями. Фіг. 11 являє собою блок-схему послідовності операцій, що ілюструє зразкове функціонування відеокодера, який використовує підтримку піксельного фільтра, сумісну з цим розкриттям. Фіг. 12 являє собою блок-схему послідовності операцій, що ілюструє інше зразкове функціонування відеокодера, який використовує підтримку піксельного фільтра, сумісну з цим розкриттям. Фіг. 13 являє собою блок-схему послідовності операцій, що ілюструє приклад способу визначення підтримки фільтра для субцілого пікселя, сумісної з цим розкриттям. Фіг. 14 являє собою блок-схему послідовності операцій, що ілюструє інший приклад способу визначення підтримки фільтра для субцілого пікселя, сумісної з цим розкриттям. Фіг. 15 являє собою блок-схему послідовності операцій, що ілюструє зразкове функціонування відеодекодера, який використовує підтримку фільтра, сумісну зцим розкриттям. Фіг. 16 являє собою блок-схему послідовності операцій, що ілюструє інше зразкове функціонування відеодекодера, який використовує підтримку фільтра, сумісну з цим розкриттям. ДОКЛАДНИЙ ОПИС Це розкриття описує методики фільтрації, які можуть застосовуватися кодером і декодером під час стадії міжкадрового прогнозування в процесі кодування і/або декодування відеосигналу. Описані методики фільтрації можуть підвищити точність даних прогнозування, що використовуються при фракційній піксельній інтерполяції, і в деяких випадках можуть підвищити ефективність кодування. У розкритті використовуються терміни "субпіксель", "субцілий піксель", "частковий піксель" і "субпел" взаємозамінно. Існують аспекти даного розкриття, які включають в себе методики інтерполяції положень субпікселя на основі будь-якої комбінації будь-якої кількості положень повного пікселя, і методики вибору підтримки для інтерполяційних фільтрів для положень субпікселя на основі кодованих раніше кадрів або поточного кодування кадрів. Ці та інші методики детально описуються нижче. Міжкадрове кодування на основі блоків являє собою методику кодування, яка покладається на часове прогнозування, щоб знизити або усунути часову надмірність між відеоблоками послідовних кодованих елементів відеопослідовності. Кодовані елементи можуть містити відеокадри, фрагменти (слайси) відеокадрів, групи зображень або інший визначений елемент з кодованих відеоблоків. Для міжкадрового кодування відеокодер виконує оцінку руху і компенсацію руху, щоб оцінити рух між відеоблоками двох або більше суміжних кодованих 3 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 елементів. Використовуючи методики оцінки руху, відеокодер генерує вектори руху, які можуть відображати зміщення відеоблоків по відношенню до відповідних відеоблоків прогнозування в одному або декількох опорних кадрах або інших кодованих елементах. Використовуючи методики компенсації руху, відеокодер може використовувати вектори руху, щоб генерувати відеоблоки прогнозування з одного або декількох опорних кадрів або інших кодованих елементів. Після компенсації руху відеокодер може обчислювати залишкові відеоблоки, віднімаючи відеоблоки прогнозування з числа вихідних відеоблоків, що піддаються кодуванню. Відеокодер також може здійснювати процеси кодування з перетворенням, квантуванням та ентропійного кодування, щоб додатково знизити бітрейт, що відноситься до зв'язку залишкових блоків. Методики перетворення можуть містити дискретні косинусні перетворення (DCT) або концептуально схожі процеси. Як альтернатива можуть використовуватися вейвлетні перетворення, перетворення цілого або перетворення інших типів. У процесі DCT, наприклад, група значень пікселя може бути перетворена в коефіцієнти перетворення, які можуть відображати енергію значень пікселя в частотній ділянці. Відеокодер також може квантувати коефіцієнти перетворення, що загалом може включати процес, який знижує кількість бітів, що відносяться до відповідного коефіцієнта перетворення. Ентропійне кодування може включати в себе один або декілька процесів, які спільно стискають дані для виведення в бітовий потік, де стиснуті дані можуть включати в себе, наприклад, послідовність режимів кодування, інформацію про рух, шаблони кодованих блоків і квантовані коефіцієнти перетворення. Приклади ентропійного кодування включають в себе адаптивне до контексту кодування із змінною довжиною (CAVLC) та адаптивне до контексту двійкове арифметичне кодування (CABAC), але не обмежуються цим. Кодований відеоблок може бути представлений інформацією про прогнозування, яка може використовуватися для створення або ідентифікації блока прогнозування, і залишковим блоком даних, який може застосовуватися відносно блока прогнозування, щоб відтворити вихідний блок. Інформація про прогнозування може містити один або декілька векторів руху, які використовуються для ідентифікації блока прогнозування даних. Використовуючи вектори руху, декодер може відновлювати блоки прогнозування, які були використані для кодування залишкових блоків. Так, маючи групу залишкових блоків і групу векторів руху (і, можливо, деякий додатковий синтаксис), декодер може відновлювати відеокадр, який був спочатку кодований. Міжкадрове кодування на основі оцінки руху і компенсації руху може сприяти відносно великим об'ємам стиснення без надмірної втрати даних, оскільки послідовні відеокадри або інші типи кодованих елементів часто схожі. Кодована відеопослідовність може містити блоки залишкових даних, вектори руху (коли міжкадрове прогнозування кодоване), позначення режимів міжкадрового прогнозування для внутрішньокадрового прогнозування і, можливо, інші дані, такі як типи синтаксису. Методики інтерполяції субцілих пікселів були розроблені з метою збільшити точність прогнозування для рівня стиснення, яка може досягатися при міжкадровому кодуванні. У цьому випадку дані прогнозування, що генеруються під час компенсації руху, які використовуються для кодування відеоблока, можуть відповідати субцілим пікселям, значення яких можуть бути інтерпольовані від значень для цілих пікселів відеоблоків опорного відеокадру або іншого кодованого елемента, до якого відноситься вектор руху. Відеокодер може обчислювати значення для положень субцілого пікселя, використовуючи методики інтерполяції, наприклад, застосовуючи інтерполяційні фільтри відносно групи підтримки, наприклад, значення для повного цілого пікселя і/або кодовані раніше значення інших положень субцілого пікселя. Положення субцілого пікселя можуть мати різні ступені розрізнення в різних прикладах, як то розрізнення в півпікселя, розрізнення в чверть пікселя, розрізнення в одну восьму пікселя, розрізнення в одну шістнадцяту пікселя або інші розрізнення. Відповідно, відеокодер може обчислювати вектор руху під час оцінки руху, яка має точність до субпікселя. Фіг. 1 являє собою блок-схему, що ілюструє один приклад системи 10 кодування і декодування відеосигналів, яка може використовуватися для реалізації однієї або декількох методик цього розкриття. Як показано на фіг. 1, система 10 включає в себе пристрій-джерело 12, який передає кодоване відео до пристрою-адресата 16 за допомогою каналу 15 зв'язку. Пристрій-джерело 12 і пристрій-адресат 16 можуть містити будь-який з широкого діапазону пристроїв. У деяких випадках будь-який з пристрою-джерела 12 і пристрою-адресата 16 може містити пристрої бездротового зв'язку, такі як бездротові радіотелефонні трубки, так звані стільникові або супутникові радіотелефони або будь-які бездротові пристрої, які можуть передавати відеоінформацію через канал 15 зв'язку, при цьому в такому випадку канал 15 зв'язку є бездротовим. Однак методики цього розкриття, які стосуються фільтрації і генерацій даних прогнозування під час кодування з прогнозуванням, не обов'язково повинні обмежуватися 4 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 бездротовими додатками або установками. Методики також можуть бути актуальні для широкого діапазону інших установок і пристроїв, включаючи пристрої, які здійснюють зв'язок за допомогою фізичних проводів, оптоволокон або інших фізичних або бездротових носіїв. Крім того, методики кодування або декодування також можуть застосовуватися відносно автономного пристрою, який не обов'язково здійснює зв'язок з яким-небудь іншим пристроєм. У прикладі, продемонстрованому на фіг. 1, пристрій-джерело 12 може включати в себе джерело 20 відеосигналу, відеокодер 22, модулятор/демодулятор (модем) 23 та передавач 24. Пристрій-адресат 16 може включати в себе приймач 26, модем 27, відеодекодер 28 і пристрій 30 відображення. Відповідно до даного розкриття відеокодер 22 пристрою-джерела 12 може бути виконаний з можливістю застосовувати одну або декілька методик даного розкриття як частину процесу кодування відеосигналу. Подібним чином відеодекодер 28 пристрою-адресата 16 може бути виконаний з можливістю застосовувати одну або декілька методик даного розкриття як частину процесу декодування відеосигналу. Знов варто згадати, що система 10, продемонстрована на фіг. 1 є тільки одним прикладом. Різні методики цього розкриття можуть реалізовуватися будь-яким кодуючим пристроєм, який підтримує кодування з прогнозуванням на основі блоків, або будь-яким декодуючим пристроєм, який підтримує кодування з прогнозуванням на основі блоків. Пристрій-джерело 12 і пристрійадресат 16 - це тільки приклади таких кодуючих пристроїв, в яких пристрій-джерело 12 генерує кодовані відеодані для передачі до пристрою-адресата 16. У деяких випадках пристрої 12, 16 можуть функціонувати по суті симетрично, так, що кожний з пристроїв 12, 16 включає в себе компоненти для кодування і декодування відеосигналу. Отже, система 10 може підтримувати односторонню або двосторонню передачу відеосигналів між відеопристроями 12, 16, наприклад, для потокового відео, відтворення відео, телевізійного мовлення або відеотелефонії. Джерело 20 відеосигналу пристрою-джерела 12 може включати в себе пристрій захоплення відеозображень, такий як відеокамера, відеоархів, що містить записане раніше відео, або джерело відеосигналу від провайдера відеоконтенту. Як додаткова альтернатива джерело 20 відеосигналу може генерувати дані на основі комп'ютерної графіки як вихідне відео або комбінацію "живого" відео, архівного відео і/або генерованого комп'ютером відео. У деяких випадках, якщо джерело 20 відеосигналу являє собою відеокамеру, пристрій-джерело 12 і пристрій-адресат 16 можуть формувати так звані камерофони або відеофони або інші мобільні пристрої, виконані з можливістю керувати відеоданими, як то планшетні обчислювальні пристрої. У такому випадку захоплене, заздалегідь захоплене або генероване комп'ютером відео може кодуватися відеокодером 22. Кодована відеоінформація потім може модулюватися модемом 23 відповідно до стандарту зв'язку, наприклад, такого як множинний доступ з кодовим розділенням каналів (CDMA) або іншого стандарту зв'язку, і передаватися до пристроюадресата 16 за допомогою передавача 24 і каналу 15 зв'язку. Модем 23 може включати в себе різні блоки змішування, фільтри, підсилювачі або інші компоненти, призначені для модуляції сигналів. Передавач 24 може включати в себе схеми, призначені для передачі даних, включаючи підсилювачі, фільтри, а також одну або декілька антен. Приймач 26 пристрою-адресата 16 приймає інформацію по каналу 15 зв'язку, а модем 27 демодулює дану інформацію. Подібно до передавача 24, приймач 26 може включати в себе схеми, призначені для прийому даних, включаючи підсилювачі, фільтри, а також одну або декілька антен. У деяких випадках передавач 24 і/або приймач 26 можуть бути об'єднані в межах одного такого, що передає компоненти, який включає в себе як приймальні, так і передавальні схеми. Модем 27 може включати в себе різні блоки змішування, фільтри, підсилювачі або інші компоненти, призначені для демодуляції сигналів. У деяких випадках модеми 23 та 27 можуть включати в себе компоненти для здійснення і модуляції, і демодуляції. Знову процес кодування відеосигналу, що виконується відеокодером 22, може задіяти одну або декілька методик, описаних тут, під час процесу кодування міжкадрового прогнозування, який може включати в себе оцінку руху і компенсацію руху. Процес декодування відеосигналу, що виконується відеодекодером 28, також може реалізовувати подібні методики під час стадії компенсації руху процесу декодування. Термін "кодер" використовується тут відносно спеціального комп'ютерного пристрою або апаратури, який або яка здійснює кодування або декодування відеосигналу. Термін "кодер" загалом відноситься до будь-якого відеокодеру або відеодекодеру або комбінованого кодеру/декодеру (кодек). Термін "кодування" відноситься до кодування або декодування. Пристрій 30 відображення відображає декодовані відеодані користувачеві і може містити будь-яке різноманіття пристроїв відображення, як то електроннопроменева трубка (CRT), рідкокристалічний дисплей (LCD), плазмовий дисплей, дисплей на органічних світлодіодах (OLED) або інший тип пристрою відображення. 5 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 У прикладі, продемонстрованому на фіг. 1, канал 15 зв'язку може містити будь-який бездротовий або дротовий засіб зв'язку, такий як радіочастотний (RF) спектр або одна або декілька фізичних ліній зв'язку, або будь-яка комбінація бездротових і дротових засобів. Канал 15 зв'язку може формувати частину мережі на основі пакетів, такої як локальна мережа, широкомасштабна мережа або глобальна мережа, така як Інтернет. Канал 15 зв'язку загалом являє собою будь-який підходящий засіб зв'язку або сукупність різних засобів зв'язку для передачі відеоданих від пристрою-джерела 12 до пристрою-адресата 16. Канал 15 зв'язку може включати в себе маршрутизатори, перемикачі, базові станції або будь-яке інше обладнання, яке може бути корисним для спрощення зв'язку пристрою-джерела 12 з пристроєм-адресатом 16. Відеокодер 22 і відеодекодер 28 можуть функціонувати відповідно до стандарту стиснення відеосигналу, такого як стандарт ITU-T H.264, що, як альтернатива, описується як MPEG-4, частина 10, вдосконалене кодування відеосигналу (AVC). Методики, представлені в цьому розкритті, однак не обмежуються яким-небудь конкретним стандартом кодування відеосигналу. Хоча це і не показано на фіг. 1, в деяких аспектах кожний з відеокодера 22 і відеодекодера 28 може інтегруватися з аудіокодером або аудіодекодером і може включати в себе відповідні MUXDEMUX елементи або інше апаратне і програмне забезпечення, щоб здійснювати кодування і аудіо-, і відеосигналу в загальному потоку даних або окремих потоках даних. Якщо це є релевантним, MUX-DEMUX елементи можуть відповідати протоколу мультиплексування ITU H.223 або іншим протоколам, таким як протокол дейтаграм користувача (UDP). Кожний з відеокодера 22 і відеодекодера 28 може бути реалізований як один або декілька мікропроцесорів, процесорів обробки цифрових сигналів (DSP), спеціалізованих інтегральних схем (ASIC) програмованих користувачем вентильних матриць (FPGA), дискретна логіка, програмне забезпечення, апаратне забезпечення, програмно-апаратне забезпечення або будьяка їх комбінація. Коли будь-яка з методик цього розкриття або вони всі реалізовані у вигляді програмного забезпечення, пристрій реалізації може додатково включати в себе апаратне забезпечення для зберігання і/або виконання команд для програмного забезпечення, наприклад, блок пам'яті для зберігання команд і один або декілька блоків обробки для виконання команд. Кожний з відеокодера 22 і відеодекодера 28 може бути включений в один або декілька кодерів або декодерів, кожний з яких може бути інтегрований як частина комбінованого кодека, який забезпечує можливості кодування і декодування у відповідному мобільному пристрої, абонентському пристрої, пристрої мовлення, сервері тощо. Відеопослідовність звичайно включає в себе серію відеокадрів, що також іменуються відеозображеннями. Відеокодер 22 функціонує на відеоблоках всередині окремих відеокадрів, щоб кодувати відеодані. Відеоблоки можуть мати фіксовані розміри або розміри, що змінюються, і можуть розрізнюватися за розміром відповідно до визначеного стандарту кодування. Кожний відеокадр включає в себе серію фрагментів. У стандарті ITU-T H.264, наприклад, кожний фрагмент може включати в себе серію макроблоків, які можуть бути організовані в субблоки. Стандарт H.264 підтримує внутрішньокадрове прогнозування в різних розмірах блоків, як то 16 на 16, 8 на 8 або 4 на 4 для компонентів яскравості і 8 на 8 для компонентів кольоровості, як і внутрішньокадрове прогнозування в різних розмірах блоків, як то 16 на 16, 16 на 8, 8 на 16, 8 на 8, 8 на 4, 4 на 8 або 4 на 4 для компонентів яскравості та відповідних обчислених розмірів для компонентів кольоровості. Відеоблоки можуть містити блоки піксельних даних або блоки коефіцієнтів перетворення, наприклад, після такого процесу перетворення, як дискретне конусне перетворення (DCT), або концептуально подібного до процесу перетворення. Менші відеоблоки можуть забезпечувати краще розрізнення і можуть використовуватися для місцеположень відеокадру, які включають в себе високий ступінь деталізування. Загалом, макроблоки та різні субблоки можуть розглядатися як відеоблоки. Крім того, фрагмент може розглядатися як серія відеоблоків, таких як макроблоки і/або субблоки. Кожний фрагмент може бути незалежно декодованим елементом відеокадру. Як альтернатива, самі кадри можуть бути декодованими елементами або інші частини кадру можуть бути визначені як декодовані елементи. Термін "кодований елемент" відноситься до будь-якого незалежно декодованого елемента відеокадру, такого як цілий кадр, фрагмент кадру, блока відеоданих, або іншого незалежно декодованого елемента, визначеного відповідно до методик кодування, що використовуються. Щоб кодувати відеоблоки, відеокодер 22 виконує внутрішньокадрове прогнозування або міжкадрове прогнозування, щоб генерувати блок прогнозування. Відеокодер 22 віднімає блоки прогнозування від вихідних відеоблоків, що підлягають кодуванню, щоб генерувати залишкові блоки. Таким чином, залишкові блоки можуть відображати різницю в піксель на піксель між блоками, що піддаються кодуванню, і блоками прогнозування. Відеокодер 22 може виконувати 6 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 перетворення відносно залишкових блоків, щоб генерувати блоки коефіцієнтів перетворення. Застосувавши методики кодування і перетворення на основі внутрішньокадрового або міждкадрового прогнозування, відеокодер 22 може квантувати коефіцієнти перетворення. Квантизація загалом відноситься до процесу, в якому коефіцієнти квантуються, щоб по можливості зменшити кількість даних, що використовуються для відображення коефіцієнтів. Після квантизації ентропійне кодування може виконуватися відповідно до методології ентропійного кодування, як то адаптивне до контексту кодування із змінною довжиною (CAVLC) і адаптивне до контексту двійкове арифметичне кодування (CABAC). Додаткові деталі процесу кодування, що виконується відеокодером 22, описуються нижче з посиланням на фіг. 2. У цей час робляться спроби розробити новий стандарт кодування відеосигналу, який зараз іменується високоефективним кодуванням відеосигналу (HEVC). Новий майбутній стандарт також іменується Н.265. Спроби стандартизації основані на моделі пристрою кодування відеосигналу, який іменується тестовою моделлю HEVC (HM). НМ передбачає деякі можливості пристроїв кодування відеосигналу за допомогою пристроїв відповідно до, наприклад, ITU-T H.264/AVC. Наприклад, тоді як Н.264 передбачає дев'ять режимів кодування внутрішньокадрового прогнозування, НМ передбачає не менше тридцяти трьох режимів кодування внутрішньокадрового прогнозування. НМ відноситься до блока відеоданих як модуль кодування (CU). Синтаксичні дані в межах бітового потоку можуть визначати найбільший модуль кодування (LCU), який є найбільшим модулем кодування з точки зору кількості пікселів. Загалом CU має схоже призначення з макроблоком Н.264, за винятком того, що CU не має відмінності за розміром. Так, CU може бути розділений на декілька суб-CU. Загалом, посилання в цьому розкритті на CU можуть відноситися до найбільшого модуля кодування зображення або суб-CU LCU. LCU може бути розділений на декілька суб-CU, і кожний суб-CU може бути розділений на декілька суб-CU. Синтаксичні дані для бітового потоку можуть визначати максимальну кількість часових відрізків, на які може бути розділений LCU, що іменується глибиною CU. Відповідно, бітовий потік також може визначати найменший модуль кодування (SCU). Це розкриття також використовує термін "блок" відносно будь-якого з CU, модуля прогнозування (PU), модуля перетворення (TU). LCU може бути зв'язаний зі структурою даних квадрадерева. Загалом, структура даних квадрадерева включає в себе один вузол на CU, де кореневий вузол відповідає LCU. Якщо CU розділений на чотири суб-CU, вузол, що відповідає CU, включає в себе чотири кінцевих вершини, кожна з яких відповідає одному з суб-CU. Кожний вузол зі структури даних квадрадерева може забезпечувати синтаксичні дані для відповідного CU. Наприклад, вузол в квадрадереві може включати в себе прапорець розділення, який вказує, чи розділений CU, що відповідає вузлу, на суб-CU. Синтаксичні модулі для CU можуть бути визначені рекурсивно і можуть залежати від того, чи розділений CU на суб-CU. CU, який не розділений, може включати в себе один або декілька модулів прогнозування (PU). Загалом, PU відображає всі або частину відповідних CU і включає в себе дані для відновлення контрольної вибірки для PU. Наприклад, коли PU кодований в режимі внутрішньокадрового кодування, PU може включати в себе дані, що описують режим внутрішньокадрового прогнозування для PU. Як інший приклад, коли PU кодований в режимі міжкадрового кодування, PU може включати в себе дані, що визначають вектор руху для PU. Дані, що визначають вектор руху, можуть описувати, наприклад, горизонтальний компонент вектора руху, вертикальний компонент вектора руху, розрізнення для вектора руху (наприклад, з точністю до чверті пікселя або з точністю до однієї восьмої пікселя), опорний кадр, на який вказує вектор руху, і/або список посилань (наприклад, список 0 або список 1) для вектора руху. Дані для CU, що визначають PU, можуть також описувати, наприклад, розділення CU на один або декілька PU. Режими розділення можуть розрізнюватися залежно від того, чи кодований CU, кодований в режимі внутрішньокадрового кодування або кодований в режимі міжкадрового кодування. CU, що має один або декілька PU, також може включати в себе один або декілька модулів перетворення (TU). Виконавши прогнозування з використанням PU, відеокодер може обчислювати залишкове значення для частини CU, що відповідає PU. Залишкове значення може бути перетворене, розгорнуте і квантоване. TU не обов'язково повинен обмежуватися розміром PU. Таким чином, TU може бути більше або менше відповідного PU для одного і того самого CU. У деяких прикладах максимальний розмір TU може відповідати розміру відповідного CU. Як було згадано вище, внутрішньокадрове прогнозування включає в себе прогнозування PU поточного CU зображення виходячи з раніше кодованих CU того самого зображення. Точніше, відеокодер може здійснювати внутрішньокадрове прогнозування поточного CU зображення, 7 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 використовуючи конкретний режим внутрішньокадрового прогнозування. НМ-кодер може бути виконаний з можливістю функціонування в режимах внутрішньокадрового прогнозування в кількості до тридцяти трьох. Отже, щоб підтримувати однозначну відповідність між направленими режимами внутрішньокадрового прогнозування і направленими перетвореннями, НМ-кодери і декодери повинні зберігати 66 матриць для кожної величини перетворення,що підтримується. Крім того, розміри блоків, для яких підтримуються всі тридцять три режими внутрішньокадрового прогнозування, можуть бути відносно великими блоками, наприклад, 3232 пікселі, 6464 пікселі або навіть більше. У пристрої-адресаті 16 відеодекодер 28 приймає кодовані відеодані. Відеодекодер 28 здійснює ентропійне декодування прийнятих відеоданих відповідно до методології ентропійного кодування, як то CAVLC або CABAC, щоб одержати квантовані коефіцієнти. Відеодекодер 28 реалізовує функції оберненої квантизації (деквантизації) та оберненого перетворення, щоб відновити залишковий блок в піксельну ділянку. Відеодекодер 28 також генерує блок прогнозування на основі інформації керування або синтаксичної інформації (наприклад, режим кодування, вектори руху, синтаксис, який визначає коефіцієнти фільтра, тощо), включеної в кодовані відеодані. Відеодекодер 28 може обчислювати суму блока прогнозування і відновленого залишкового блока, щоб створити відновлений відеоблок для відображення. Додаткові деталі зразкового процесу декодування, що виконується відеодекодером 28, описані нижче з посиланням на фіг. 10. Як описується тут, Y може відображати яскравість, а Cb та Cr можуть відображати два різних значення кольоровості трьохмірного колірного простору YCbCr. Місцеположення кожного пікселя може фактично визначати три значення пікселя для трьохмірного колірного простору. Методики з даного розкриття, однак, можуть відноситися до прогнозування відносно одного вимірювання з метою спрощення. Тоді як методики описуються відносно значень пікселя в одному вимірюванні, подібні методики можуть бути запропоновані і для інших вимірювань. Відповідно до методик за даним розкриттям, відеокодер 22 і відеодекодер 28 можуть використовувати одну або декілька методик інтерполяційної фільтрації під час компенсації руху. Зокрема, відповідно до одного аспекту даного розкриття, відеокодер 22 і/або відеодекодер 28 можуть одержувати блок пікселів, при цьому блок пікселів включає в себе значення цілого пікселя, які відповідають положенням цілого пікселя в межах блока пікселів. Відеокодер 22 і/або відеодекодер 28 можуть обчислювати значення для положень субпікселя, зв'язаних з блоком пікселів, на основі значень цілого пікселя, при цьому обчислення значень субпікселя містить застосування інтерполяційного фільтра відносно різних груп підтримки фільтра, де кожна з груп підтримки фільтра відповідає групі з одного або декількох положень цілого пікселя в блоці пікселів. Відеокодер 22 і/або відеодекодер 28 також можуть генерувати блок прогнозування на основі щонайменше деяких із значень субпікселя, щоб кодувати або декодувати блок пікселів. Відповідно до аспекту даного розкриття відеокодер 22 і/або відеодекодер 28 можуть застосовувати інтерполяційний фільтр для підтримки фільтра, що містить будь-яку комбінацію положень повного цілого пікселя. Відеокодер 22 може визначати множину груп коефіцієнтів фільтра для деякої кількості (наприклад, п'ятнадцять) різних положень субпікселя, зв'язаних з положенням повного цілого пікселя, і виведенням п'ятнадцяти груп коефіцієнтів фільтра до іншого пристрою як частини кодованого бітового потоку. Таким чином, множину груп коефіцієнтів фільтра може визначати всі коефіцієнти фільтра для всіх п'ятнадцяти положень півпікселя і чверті пікселя. У деяких прикладах групи коефіцієнтів фільтра для кожного півпікселя і чверті-пікселя, зв'язаного з положенням повного цілого пікселя, можуть бути унікальними. В інших прикладах деякі або всі з груп коефіцієнтів фільтра для півпікселя або чверті-пікселя, зв'язаних з положенням повного цілого пікселя, можуть бути однаковими. Відеодекодер 28 пристрою-адресата 16 може приймати одну або декілька груп коефіцієнтів фільтра як частину кодованого бітового відеопотоку і генерувати п'ятнадцять груп коефіцієнтів фільтра, що відповідають п'ятнадцяти різним положенням субпікселя, на основі однієї або декількох груп коефіцієнтів фільтра. Відеодекодер 28 також може генерувати значення субпікселя для декодування відеосигналу на основі однієї або декількох груп коефіцієнтів фільтра, при цьому інтерпольовані дані прогнозування відповідають одному з п'ятнадцяти різних положень субпікселя, і декодувати один або декілька відеоблоків на основі інтерпольованих даних прогнозування. Відповідно до іншого аспекту даного розкриття, відеокодер 22 може приймати значення для множини положень повного цілого пікселя з контрольної вибірки, застосовувати інтерполяційний фільтр відносно першої групи значень для множини положень повного цілого пікселя, щоб обчислити значення для першого субцілого пікселя одного з множини положень повного цілого пікселя, застосовувати той самий інтерполяційний фільтр відносно другої, іншої, групи значень 8 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 для множини положень повного цілого пікселя, щоб обчислити значення для другого, іншого, субцілого пікселя одного з множини положень повного цілого пікселя, і кодувати поточний блок пікселів, використовуючи вектор руху, який вказує на один з першого субцілого пікселя і другого субцілого пікселя. У деяких прикладах інтерполяційний фільтр є першим інтерполяційним фільтром, і відеокодер 22 може додатково застосовувати другий, інший, інтерполяційний фільтр відносно третьої групи значень для множини положень повного цілого пікселя, щоб обчислити значення для третього субцілого пікселя одного з множини положень повного цілого пікселя. В інших прикладах додаткові фільтри або групи значень для множини положень повного цілого пікселя використовуються, щоб обчислити додаткові значення для положень субцілого пікселя. Відеокодер 22 може забезпечувати індикацію інтерполяційного фільтра, що використовується для обчислення значення для першого субцілого пікселя. Індикація може містити виражену індикацію підтримки. Як альтернатива, індикація може відповідати покажчику або іншому ідентифікатору, коли відеокодер 22 і відеодекодер 28 заздалегідь виконані з групами підтримки. Індикація може бути забезпечена на рівні модуля прогнозування, рівні модуля кодування, рівні кадру, рівні фрагмента або рівні послідовності, при цьому кожний рівень зв'язаний з поточним блоком пікселів. У деяких прикладах індикація може бути забезпечена в групі параметрів послідовності (SPS) або групі параметрів зображення (PPS). Відеокодер 22 може виводити індикацію до іншого пристрою як частину кодованого бітового потоку. У деяких прикладах інтерполяційний фільтр є інтерполяційним фільтром ITU-T H.264, фіксованим інтерполяційним фільтром (наприклад, вибраним з групи інтерполяційних фільтрів) або адаптивним інтерполяційним фільтром. Більше того, відеокодер 22 може забезпечувати індикацію підтримки для кожного з підцілого пікселя повного пікселя, використовуючи методики, подібні до тих, що були описані вище. Інтерполяційний фільтр може бути віддільним фільтром або нероздільним фільтром. Нероздільний фільтр є інтерполяційним фільтром, в якому підтримка фільтра може бути змінена, щоб відразу генерувати субпіксель, не виконуючи проміжного етапу фільтрації. На відміну від нероздільного фільтра, віддільний фільтр - такий, в якому фільтрація може залежати від іншого етапу фільтрації. Наприклад, під час білінійної фільтрації фільтр може спочатку застосовуватися в горизонтальному напрямку, щоб генерувати значення для положення першого субпікселя. Потім фільтр може бути переміщений і застосований упоперек положення першого субпікселя у вертикальному напрямку, щоб генерувати значення для положення другого субпікселя. В іншому прикладі спосіб може містити прийом контрольної вибірки, що містить множину положень повного цілого пікселя, прийом індикації про групу положень повного цілого пікселя з контрольної вибірки, що використовується для інтерполяції значення для субцілого пікселя з контрольної вибірки, застосування інтерполяційного фільтра відносно групи положень повного цілого пікселя, щоб обчислити значення субцілого пікселя з контрольної вибірки, і декодування поточного блока пікселів відносно обчисленого значення субцілого пікселя. Фіг. 2 являє собою блок-схему, що ілюструє приклад відеокодера 22, продемонстрованого на фіг. 1, з додатковими деталями. Відеокодер 22, який може реалізовувати методики міжкадрового прогнозування, є відповідним даному розкриттю. Відеокодер 22 - це один приклад спеціалізованого комп'ютерного відеопристрою або апаратури, що іменується тут "кодером". Як показано на фіг. 2, відеокодер 22 відповідає відеокодеру 22 пристрою 20. Однак в інших прикладах відеокодер 22 може відповідати і іншому пристрою. У додаткових прикладах інші модулі (такі як, наприклад, інший кодер/декодер (CODECS)) також можуть реалізовувати методики подібно до відеокодера 22. Відеокодер 22 може здійснювати внутрішньокадрове і міжкадрове кодування блоків в межах відеокадрів, хоча компоненти внутрішньокадрового кодування не показані на фіг. 2 для простоти демонстрації. Внутрішньокадрове кодування основується на просторовому прогнозуванні, щоб знизити або усунути просторову надмірність відеосигналу в межах заданого відеокадру. Міжкадрове кодування основується на часовому прогнозуванні, щоб знизити або усунути часову надмірність відеосигналу в межах сусідніх кадрів відеопослідовності. Інтрарежим (I-mode) може відноситися до режиму просторового стиснення. Інтер-режими, такі як режим прогнозування (P-mode) або двонаправлений режим (B-mode), можуть відноситися до режимів часового стиснення. Методики за даним розкриттям застосовуються під час міжкадрового кодування, і, отже, модулі внутрішньокадрового кодування, такі як модуль просторового прогнозування, не проілюстровані на фіг. 2 для спрощення ілюстрації. Як показано на фіг. 2, відеокодер 22 приймає відеоблок в межах відеокадру, що підлягає кодуванню. У прикладі, продемонстрованому на фіг. 2, відеокодер 22 включає в себе модуль 32 кодування з прогнозуванням (MCU), блок пам'яті 34, суматор 48, модуль перетворення 38, 9 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 модуль 40 квантизації і модуль 46 ентропійного кодування. Для відновлення відеоблока відеокодер також включає в себе модуль 42 оберненої квантизації, модуль 44 оберненого перетворення і суматор 51. У деяких прикладах деблокуючий фільтр може також бути включений в межі блока фільтрів, щоб усунути дефекти блочності з відновленого відео. За бажанням деблокуючий фільтр міг би стандартним чином фільтрувати вихід суматора 51. У одному прикладі, як показано на фіг. 2, модуль 38 перетворення може бути функціональним блоком, не "TU" з точки зору HEVC. Модуль 32 прогнозування може включати в себе модуль 35 оцінки руху (МЕ) і модуль 37 компенсації руху (МС). Один або декілька інтерполяційних фільтрів 39 (що іменуються тут "фільтром 39") можуть бути включені в модуль 32 прогнозування і можуть запускатися одним з модуля 35 МЕ і модуля 37 МС або ними обома, щоб здійснити інтерполяцію як частину оцінки руху і/або компенсації руху відповідно до даного розкриття. Можуть бути включені і інші методики, в яких значення для субпікселя обчислюється на основі значень для сусідніх повних пікселів і/або раніше обчислених значень для сусідніх субпікселів. Фільтр 39 може фактично відображати множину різних фільтрів, щоб спростити різні численні типи інтерполяції та фільтрації інтерполяційного типу, як описується тут. Таким чином, модуль 32 прогнозування може включати в себе множину інтерполяційних фільтрів і подібних до інтерполяційних фільтрів. У процесі кодування відеокодер 22 приймає відеоблок, що підлягає кодуванню (позначений "VIDEO BLOCK" на фіг. 2), а модуль 32 прогнозування виконує кодування з міжкадровим прогнозуванням, щоб генерувати блок прогнозування (позначений "PREDICTION BLOCK" на фіг. 2). Точніше, модуль 35 МЕ може здійснювати оцінку руху, щоб ідентифікувати блок прогнозування в блоці 34 пам'яті, а модуль 37 МС може здійснювати компенсацію руху, щоб генерувати блок прогнозування. Оцінка руху звичайно розглядається як процес генерації векторів руху, які оцінюють рух відеоблоків. Вектор руху, наприклад, може відображати зміщення блока прогнозування в межах прогнозування або опорного кадру (або іншого кодованого елемента, наприклад, фрагмента) відносно блока, що підлягає кодуванню в межах поточного кадру (або іншого кодованого елемента). Відповідно до методик даного розкриття вектор руху може мати точність до субцілого пікселя. Наприклад, як горизонтальний, так і вертикальний компоненти вектора руху можуть мати відповідні повні цілі компоненти і субцілі компоненти. Опорний кадр (або частина кадру) може бути часово розташований до або після відеокадру (або частини відеокадру), до якого відноситься поточний відеоблок. Компенсація руху звичайно розглядається як процес вибірки або генерації блока прогнозування з блока 34 пам'яті, який може включати в себе інтерполяцію або генерацію іншим способом даних прогнозування на основі вектора руху, визначеного під час оцінки руху. Модуль 35 МЕ обчислює вектор руху для відеоблока, що підлягає кодуванню за допомогою порівняння відеоблока з опорними блоками одного або декількох опорних кадрів (наприклад, попереднього і/або наступного кадру). Дані для опорних блоків можуть зберігатися в блоці 34 пам'яті. Модуль 35 МЕ може здійснювати оцінку руху з точністю до часткового пікселя, що іноді іменується оцінкою руху часткового пікселя, часткового пела, субцілого або субпікселя. По суті, терміни оцінка руху часткового пікселя, часткового пела, субцілого або субпікселя можуть використовуватися взаємозамінно. Під час оцінки руху часткового пікселя модуль 35 МЕ може обчислювати векторруху, який відображає зміщення до місцеположення відмінного від місцеположення цілого пікселя. Таким чином, вектор руху може мати точність до часткового пікселя, наприклад, точність до півпікселя, точність до чверті пікселя, точність до однієї восьмої пікселя або іншу точність до часткового пікселя. Таким чином, оцінка руху часткового пікселя дозволяє модулю 32 прогнозування оцінювати рух з більш високою точністю, ніж місцеположення цілого пікселя (або повного пікселя), і, так, модуль 32 прогнозування може генерувати більш точний блок прогнозування. Оцінка руху часткового пікселя може мати точність до півпікселя, точність до чверті пікселя, точність до однієї восьмої пікселя або будьякий більш високий ступінь точності до субпікселя. Модуль 35 МЕ може запускати фільтр(-и) 39 для будь-яких необхідних інтерполяцій під час процесу оцінки руху. У деяких прикладах блок 34 пам'яті може зберігати інтерпольовані значення для субцілих пікселів, які можуть бути обчислені, наприклад, суматором 51 з використанням фільтра (фільтрів) 39. Наприклад, суматор 51 може застосовувати фільтр(-и) 39 відносно відновлених блоків, які не зберігаються в блоці 34 пам'яті. Щоб виконати компенсацію руху часткового пікселя, модуль 37 МС може здійснювати інтерполяцію (що іноді іменується інтерполяційною фільтрацією), щоб генерувати дані з розрізненням субпікселя (що називається тут значеннями субпікселя або часткового пікселя). Модуль 37 МС може запускати фільтр(-и) 39 для такої інтерполяції. Модуль 32 прогнозування 10 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 може здійснювати інтерполяцію (або подібну до інтерполяції фільтрацію цілих пікселів), використовуючи методики, описані тут. Таким чином, модуль 32 прогнозування може обчислювати значення для положень субцілого пікселя опорного блока, які потім можуть бути використані для створення блока прогнозування з відеоданих. Коли вектор руху для відеоблока, що підлягає кодуванню, обчислений модулем 35 МЕ, модуль 37 МС генерує відеоблок прогнозування, зв'язаний з цим вектором руху. Модуль 37 МС може виділити блок прогнозування з блока 34 пам'яті на основі вектора руху, визначеного модулем 35 МС. У випадку якщо вектор руху - з точністю до часткового пікселя, модуль 37 МС може фільтрувати дані з блока 34 пам'яті, щоб інтерполювати такі дані до розрізнення в субпіксель, наприклад, запускаючи фільтр(-и) 39 для цього процесу. У деяких випадках положення повного цілого пікселя, які відповідають коефіцієнтам фільтра, що використовуються для інтерполяції таких даних до розрізнення в субпіксель, можуть бути позначені як один або декілька інтерполяційних синтаксичних елементів для модуля 46 ентропійного кодування для включення в кодований бітовий потік. Подібним чином методика інтерполяційної фільтрації або режим, який використовувався для генерації даних прогнозування субпікселя, також може бути позначений як один або декілька інтерполяційних синтаксичних елементів для модуля 46 ентропійного кодування для включення в кодований бітовий потік. Коли модуль 32 прогнозування згенерував блок прогнозування, відеокодер 22 формує залишковий відеоблок (позначений "RESID. BLOCK" на фіг. 2), віднімаючи блок прогнозування від вихідного відеоблока, що піддається кодуванню. Суматор 48 відображає компонент або компоненти, які здійснюють дану операцію віднімання. Модуль 38 перетворення виконує перетворення, таке як дискретне косинусне перетворення (DCT) або концептуально подібне перетворення, відносно залишкового блока, створюючи відеоблок, що містить залишкові коефіцієнти блока перетворення. Модуль 38 перетворення, наприклад, може виконувати і інші перетворення, такі як ті, що визначаються стандартом Н.264, концептуально подібні до DCT. Такі перетворення можуть включати в себе, наприклад, направлені перетворення (такі як перетворення за теоремою Карунена-Лоеве), вейвлетні перетворення, перетворення цілого, перетворення піддіапазону або перетворення інших типів. У будь-якому випадку, модуль 38 перетворення здійснює перетворення відносно залишкового блока, утворюючи блок залишкових коефіцієнтів перетворення. Перетворення може переводити залишкову інформацію з піксельної ділянки в частотну ділянку. Модуль 40 квантизації квантує залишкові коефіцієнти перетворення, щоб додатково знизити бітрейт. Процес квантизації може знизити бітову глибину, зв'язану з деякими або усіма з коефіцієнтів. Після квантизації модуль 46 ентропійного кодування здійснює ентропійне кодування відносно квантованих коефіцієнтів перетворення. Наприклад, модуль 46 ентропійного кодування може реалізовувати CAVLC, CABAC або іншу методологію ентропійного кодування. Модуль 46 ентропійного кодування також може кодувати один або декілька векторів руху та інформацію підтримки, одержану від модуля 32 прогнозування або іншого компонента відеокодера 22. Один або декілька синтаксичних елементів прогнозування можуть включати в себе режим кодування, дані для одного або декількох векторів руху (наприклад, горизонтальні та вертикальні компоненти, ідентифікатори списку посилань, покажчики списку і/або сигнальна інформація про розрізнення вектора руху), індикацію методики інтерполяції, яка використовувалася для генерації даних субпікселя, групу або підгрупу коефіцієнтів фільтра, групу положень повного або субцілого пікселя, що використовуються як підтримка фільтра, або іншу інформацію, зв'язану з генерацією блока прогнозування. Після ентропійного кодування, що виконується модулем 46 ентропійного кодування, кодоване відео і синтаксичні елементи можуть бути передані до іншого пристрою або заархівовані (наприклад, в блоці 34 пам'яті) для більш пізньої передачі або пошуку. Модуль 42 оберненої квантизації і модуль 44 оберненого перетворення здійснюють обернену квантизацію і обернене перетворення відповідно, щоб відновити залишковий блок в піксельній ділянці, наприклад, для використання надалі як опорний блок. Відновлений залишковий блок (позначений "RECON. RESID. BLOCK" на фіг. 2) може відображати відновлену версію залишкового блока, надану модулю 38 перетворення. Відновлений залишковий блок може відрізнятися від залишкового блока, згенерованого суматором 48, внаслідок втрати деталей, викликаної операціями квантизації та оберненої квантизації. Суматор 51 додає відновлений залишковий блок до блока прогнозування компенсованого руху, створеного модулем 32 прогнозування, щоб створити відновлений відеоблок для зберігання в блоці 34 пам'яті. Відновлений відеоблок може використовуватися модулем 32 прогнозування як опорний 11 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 блок, який може бути використаний для послідовного кодування блока в наступному відеокадрі або наступному кодованому елементі. Як було описано вище, модуль 32 прогнозування може здійснювати оцінку руху з точністю до часткового пікселя (або субпікселя). Коли модуль 32 прогнозування використовує оцінку руху часткового пікселя, він може генерувати дані з розрізненням до субпікселя (наприклад, значення субпікселя або часткового пікселя), використовуючи процедури інтерполяції, описані в даному розкритті. Іншими словами, процедури інтерполяції можуть використовуватися, щоб обчислити значення на позиціях між положеннями цілого пікселя. Положення субпікселя, розташовані на відстані, наполовину менше відстані між положеннями цілого пікселя, можуть іменуватися положеннями половини пікселя (половини пела), положення субпікселя, розташовані на відстані, наполовину менше відстані між положенням цілого пікселя і положенням половини пікселя, можуть називатися положеннями чверті пікселя (чверті пела), положення субпікселя, розташовані на відстані, наполовину менше відстані між положенням цілого пікселя і положенням цілого пікселя (або положенням половини пікселя) і положенням чверті пікселя, називаються положеннями восьмої частини пікселя (восьмої частини пела) тощо. Відповідно до методик даного розкриття, один і той самий з інтерполяційних фільтрів 39 може застосовуватися відносно двох або більше різних груп підтримки, щоб обчислити значення для двох субцілих пікселів одного і того самого повного пікселя. Як описується більш детально нижче, модуль 32 прогнозування, наприклад, може застосовувати один з фільтрів 39 відносно першої групи підтримки, щоб обчислити значення для першого субцілого пікселя з повного пікселя, і може застосовувати той самий інтерполяційний фільтр відносно другої, іншої, групи підтримки, щоб обчислити значення для другого субцілого пікселя з того самого повного пікселя. Крім того, групи підтримки можуть мати різні форми, наприклад, лінійну (горизонтальну, вертикальну, діагональну з нахилом з верхньої лівої частини в нижню праву, діагональну з нахилом з верхньої правої частини в нижню ліву тощо), Х-подібну з перетином на повному пікселі, форму кола (наприклад, пікселі в формі кола близько повного пікселя), форму матриці (наприклад, два або більше пікселів у множині рядків повних пікселів) і інші форми. Таким чином, відеокодер 22 демонструє приклад відеокодера, виконаного з можливістю приймати значення для множини положень повного цілого пікселя з контрольної вибірки, застосовувати інтерполяційний фільтр відносно першої групи значень для множини положень повного цілого пікселя, щоб обчислити значення для першого субцілого пікселя одного з множини положень повного цілого пікселя, застосовувати той самий інтерполяційний фільтр відносно другої, іншої, групи значень для множини положень повного цілого пікселя, щоб обчислити значення для другого, іншого, субцілого пікселя одного з положень повного цілого пікселя, кодувати поточний блок пікселів з використанням вектора руху, який вказує на один з першого субцілого пікселя і другого субцілого пікселя. Фіг. 3 являє собою концептуальну діаграму, що ілюструє положення цілого пікселя (або повного пікселя), зв'язані з даними прогнозування, і положення субпікселя (або часткового пікселя), зв'язані з інтерпольованими даними прогнозування. На концептуальній ілюстрації, представленій на фіг. 3, різні чарунки відображають положення пікселя і положення субпікселя в межах кадру або блока кадру. Заголовні букви з цифрами (в чарунках із суцільними лініями) відображають місцеположення цілого пікселя, тоді як малі букви (в чарунках з пунктирними лініями) відображають положення субпікселя. Зокрема, положення пікселя A1-A6, B1-B6, C1-C6, D1-D6, E1-E6 демонструють сітку 6 на 6 з місцеположень цілого пікселя в межах кадру, фрагмента або іншого кодованого елемента. Положення субпікселя "а»-«о" відображають п'ятнадцять положень субпікселя, зв'язаних з цілим пікселем С3, наприклад, між положеннями цілого пікселя С3, С4, D3 та D4. Подібні положення субпікселя можуть існувати для кожного положення цілого пікселя. Положення субпікселя "а»-«о" відображають положення половини пікселя і чверті пікселя, зв'язані з цілим пікселем С3. Як описується більш детально нижче, один і той самий інтерполяційний фільтр може використовуватися для обчислення двох і більше субпікселів а-о, наприклад, шляхом застосування одного і того самого інтерполяційного фільтра відносно різних груп підтримки. Положення цілого пікселя можуть бути зв'язані з фізичним сенсорним елементом, таким як фотодіод, коли відеодані були спочатку згенеровані. Фотодіод може вимірювати яскравість джерела світла в місці розташування сенсора і зв'язувати значення яскравості пікселя з положенням цілого пікселя. Знову кожне положення цілого пікселя може мати відповідну групу з п'ятнадцяти положень субпікселя (або, можливо, більше або менше). Кількість положень субпікселя, зв'язаних з положеннями цілого пікселя, може залежати від бажаної точності. У прикладі, проілюстрованому на фіг. 3, бажана точність - це точність до чверті пікселя. У цьому 12 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 випадку кожне з положень цілого пікселя відноситься до п'ятнадцяти різних положень субпікселя. Більша або менша кількість положень субпікселя може бути зв'язана з кожним положенням цілого пікселя на основі бажаної точності. Для точності до півпікселя, наприклад, кожне положення цілого пікселя може відповідати трьом положенням субпікселя. Як інший приклад кожне з положень цілого пікселя може відповідати шістдесяти трьом положенням субпікселя для точності до однієї восьмої пікселя. Кожне положення пікселя може визначати одне або декілька значень пікселя, наприклад, одне або декілька значень яскравості та кольоровості. У прикладі з фіг. 3 положення субпікселя, зв'язані з цілим пікселем "С3", проілюстровані для точності до чверті пікселя. П'ятнадцять положень субпікселя, зв'язані з пікселем С3, позначені як "а", "b", "с", "d", "е", "f", "g", "h", "i", "j", "k", "l", "m", "n" та "о". Більшість інших часткових положень, зв'язаних з іншими положеннями цілого пікселя, не показані для простоти опису (відмінні від тих використовуються для генерації одного або декількох з 15 різних часткових положень, зв'язаних з положенням пікселя С3, як описується більш детально нижче). Положення субпікселя "b", "h" та "j" можуть іменуватися положеннями половини пікселя, а положення субпікселя "а", "с", "d", "е", "f", "g", "i", "k", "l", "m", "n" та "о" можуть називатися положеннями чверті пікселя. Модуль 32 прогнозування відеокодера 40 може визначати значення пікселя для положень субпікселя від "а" до "о" з використанням інтерполяційної фільтрації за допомогою модуля 37 МС. Модуль 32 прогнозування може застосовувати інтерполяційний фільтр відносно всіх 36 положень цілого пікселя для кожного з положень субпікселя. В інших прикладах підгрупи положень повного цілого пікселя використовуються як підтримка фільтра, щоб інтерполювати значення для положень субпікселя. В одному прикладі модуль 32 прогнозування відеокодера 40 може визначати значення пікселя для положень субпікселя від "а" до "о" з використанням інтерполяційної фільтрації за допомогою модуля 37 МС, використовуючи інтерполяційний фільтр, сумісний зі стандартом ITUT H.264. Сумісний зі стандартом ITU-T H.264, наприклад, модуль 32 прогнозування може визначати значення пікселя для положень половини пікселя, використовуючи 6-ланковий інтерполяційний фільтр, такий як фільтр Вінера. У випадку стандарту H.264 коефіцієнти фільтра для 6-ланкового інтерполяційного фільтра звичайно [1, -5, 20, 20, -5, 1], хоча можуть використовуватися і інші коефіцієнти. Модуль 32 прогнозування може застосовувати інтерполяційний фільтр відносно будь-якої групи з шести положень повного цілого пікселя. В одному прикладі для положення половини пікселя "b" ланки 6-ланкового фільтра можуть відповідати B3. B4, C3, C4, D3 та D4. В інших прикладах ланки 6-ланкового фільтра для положення половини пікселя "b" можуть бути іншою групою з шести положень повного цілого пікселя. Подібним чином в одному прикладі для положення половини пікселя "h" ланки 6ланкового фільтра можуть відповідати С2, C3, C4, D2, D3 та D4. Наприклад, значення пікселя для положення субпікселя "j" можуть бути обчислені з використанням рівнянь (1) та (2): j=((A1-5*B2+20*C3+20*D4-5*E5+F6)+16)/32 (1) j=((A6-5*B5+20*C4+20*D3-5*E2+F1)+16_/32 (2) Рівняння 1 та 2, представлені вище, ілюструють один приклад того, як значення положень повного цілого пікселя можуть бути зв'язані з різними коефіцієнтами 6-ланкового фільтра. В інших прикладах значення положень повного цілого пікселя можуть відповідати різним коефіцієнтам 6-ланкового фільтра. В одному прикладі положення повного цілого пікселя в підтримці фільтра для положення субцілого пікселя, які є найближчими до положення субпікселя, зважуються з більш високими коефіцієнтами в фільтрі, тоді як положення повного цілого пікселя, які далі від положення субпікселя, одержують більш низьку вагу. В інших прикладах використовуються інші способи визначення того, яке положення повного цілого пікселя яким з коефіцієнтів відповідає. Різні субпікселі одного і того самого повного пікселя можуть бути обчислені з використанням різної підтримки. Наприклад, в той час як деякі положення субпікселя (такі як "b" та "h", зв'язані з положенням повного пікселя С3, що описано вище) можуть бути обчислені з тими самими або різними підгрупами положень повного цілого пікселя, положення субпікселя може бути визначене на основі інших положень субпікселя. Наприклад, положення половини пікселя "j", також зв'язане з положенням повного пікселя С3, може бути обчислене з використанням білінійного інтерполяційного фільтра, який залежить від положень субпікселя. Для положення половини пікселя "j" ланки 6-ланкового фільтра відповідають їх інтерполяції горизонтально між положеннями С1-С6 та D1-D6 або вертикально між положеннями A3-F3 A4-F4. Положення половини пікселя "j" може бути обчислене за допомогою 6-ланкового фільтра, який 13 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 використовує раніше інтерпольовані значення пікселя з положень половини пікселя, наприклад, відповідно до одного з рівнянь (3) або (4): j=((aa-5*bb+20*b+20*hh-5*ii+jj)-16)/32 (3) j=((cc-5*dd+20*h+20*ee-5*ff+gg)+16)/32 (4), де (як проілюстровано на фіг. 3) аа відповідає інтерполяції між А3 та А4, bb відповідає інтерполяції між В3 та В4, b відповідає інтерполяції між С3 та С4, hh відповідає інтерполяції між D3 та D4, ii відповідає інтерполяції між Е3 та Е4, а jj відповідає інтерполяції між F3 та F4. У рівнянні 4 сс відповідає інтерполяції між С1 та D1, dd відповідає інтерполяції між С2 та D2, h відповідає інтерполяції між С3 та D3, її відповідає інтерполяції між С4 та D4, ff відповідає інтерполяції між С5 та D5 і gg відповідає інтерполяції між С6 та D6. Сумісний зі стандартом Н.264 модуль 32 прогнозування може визначати деякі значення пікселя в положеннях чверті пікселя "а", "с", "d", "е", "f", "g", "i", "k", "l", "m", "n" та "о" з використанням білінійного інтерполяційного фільтра і значень пікселя, оточуючих положень цілого пікселя і половини пікселя. Наприклад, модуль 32 прогнозування може визначати значення пікселя, зв'язане з положенням субпікселя "а" з використанням значень пікселя С3 та "b", визначати значення пікселя, зв'язане з положенням субпікселя "с" з використанням значень пікселя "b" та С4 тощо. Існуючий фільтр, який застосовується модулем 37 МС, щоб генерувати інтерпольовані дані в положеннях субпікселя, може бути підданий широкій різноманітності реалізацій. Як один приклад модуль 32 прогнозування може використовувати адаптивну інтерполяційну фільтрацію (AIF), як описується нижче, щоб визначити інтерпольовані значення. Комітет ITU-T SG16/Q.6/VSEG (експертна група в ділянці кодування відео) вивчав технології кодування, які передбачають більш високу ефективність кодування, ніж Н.264 і зокрема AIF. AIF передбачає високу ефективність кодування при інтерполяційній фільтрації, що використовується в стандарті Н.264, особливо у відношенні відеопослідовностей з високим розрізненням (наприклад, 720 i/р або 180 i/р). У AIF інтерполяційний фільтр для кожного положення субпікселя аналітично обчислюється для кожного відеокадру шляхом мінімізації енергії помилки прогнозування. Це допомагає вживати заходів відносно спотворень, помилок квантизації та оцінки руху, перешкод камери та інших дефектів, що містяться у вихідному та опорному відеокадрах. Аналітично виведені адаптивні коефіцієнти фільтра для кожного кадру можуть потім бути прогнозовані, квантовані, кодовані і відправлені в бітовий відеопотік. Деякі з методик даного розкриття могли б діяти в межах схеми AIF, як і багатьох інших схем інтерполяції. Існує множина різних типів схем AIF, сумісних з аспектами даного розкриття. Наприклад, перша схема - двомірна нероздільна AIF (NS-AIF), друга - віддільна AIF (S-AIF), а третя - AIF з направленими фільтрами (D-AIF). Хоча кожна з цих схем AIF використовує різні методики інтерполяції і підтримку, всі три схеми AIF можуть використовувати схожі аналітичні процеси, щоб вивести коефіцієнти фільтра, що пояснюється нижче з використанням нероздільної AIF як приклад. Кожна з цих схем AIF може бути використана з різними положеннями повного цілого пікселя для будь-якого заданого положення субпікселя. SP Припустимо, що двомірний нероздільний фільтр 6 на 6 має коефіцієнти h i, j, де i, j=0…5, а SP відображає одне з 15 положень субпікселя ("а" - "о"), показаних на фіг. 3. Потрібно зазначити, що 6 з 15 положень субпікселя, тобто "а", "b", "с", "d", "h" та "l", є одномірними (1D) положеннями субпікселя, а модуль 32 прогнозування може використовувати 6-ланковий інтерполяційний фільтр, щоб інтерполювати такі дані. Положення субпікселя "а", "b", "с", "d", "h" та "l" є 1D в тому плані, що розташовані на горизонтальній або вертикальній лінії між двома положеннями цілого пікселя. Також припустимо, що пікселі прогнозування в положеннях цілого пікселя (A1-F6 на фіг. 3) в опорному кадрі приймають значення пікселя Pi, j, де i, j=0…5. Тобто А1 приймає значення Р0,0,… А6 приймає значення Р5,0, F1 приймає значення Р5,0, а F6 приймає SP значення Р5,5. Потім інтерпольоване значення p в положенні субпікселя SP, SP ϵ {а, …,о}, може бути обчислено модулем 32 прогнозування з використанням наступного рівняння: (5) Припустимо, що Sx, y є значенням пікселя в поточному відеокадрі в положенні (х, у). 14 UA 109923 C2 де (mvx, mvy) - вектор руху, 5 10 15 20 25 30 35 - цілий компонент вектора руху, а FO зміщення фільтра. Значення - відповідне положення пікселя в опорних кадрах. Наприклад, у випадку із 6-ланковим фільтром FO=6/2-1=2. Для кожного положення субпікселя SP 2 SP енергія помилки прогнозування (e ) між дійсним значенням пікселя в поточному кадрі та інтерпольованим значенням може бути акумульована модулем 32 прогнозування для всіх пікселів, які мають точність вектора руху, що відповідає положенню субпікселя SP. Енергія SP 2 помилки прогнозування (e ) може бути обчислена модулем 32 прогнозування з використанням наступного рівняння: (6) Для кожного з положень субпікселя з а по о модуль 37 МС може встановлювати SP 2 SP індивідуальну групу рівнянь шляхом обчислення похідної від (e ) по коефіцієнтах фільтра h i, Кількість рівнянь в цьому випадку дорівнює кількості коефіцієнтів фільтра, що j. використовуються для поточного положення субпікселя SP. Для кожного положення субпікселя модуль 32 прогнозування може використовувати ланковий одномірний інтерполяційний фільтр 6 на 6 (наприклад, одномірний 6-ланковий фільтр). В інших прикладах модуль 32 прогнозування може використовувати різні ланкові (наприклад, одномірний 12-ланковий фільтр). У випадку з одномірним 6-ланковим фільтром система з шести рівнянь може бути вирішена модулем 37 МС. (7) Фільтр(-и) 39 може (можуть) відображати один фільтр або групу з множини різних фільтрів, які можуть бути використані модулем 37 МС, щоб генерувати дані прогнозування. Таким чином, один зразковий процес виведення і застосування фільтрів AIF може містити наступні етапи, які можуть бути виконані модулем 32 прогнозування: 1. Оцінити вектори руху (mvx, mvy) для кожного відеоблока, що підлягає кодуванню. Під час оцінки може застосовуватися фіксований інтерполяційний фільтр (наприклад, процес інтерполяції H.264/AVC). 2. Використати ці вектори руху, акумулювати енергію помилки прогнозування для кожного положення субпікселя SP за поточним відеокадром. Потім обчислити коефіцієнти адаптивного SP фільтра h i, j для кожного положення субпікселя SP незалежно шляхом мінімізації енергії помилки прогнозування, як в двох рівняннях енергії прогнозування, представлених вище. 3. Оцінити нові вектори руху. Під час цього процесу оцінки руху можуть застосовуватися адаптивні інтерполяційні фільтри, обчислені на етапі 2. Під час використання адаптивних інтерполяційних фільтрів помилки оцінки руху (викликані спотвореннями, перешкодами камери тощо) можуть бути зменшені, і досягається краще прогнозування руху. Різні схеми AIF можуть використовувати той самий аналітичний процес, що вказаний вище. Відмінності між різними схемами здебільшого відносяться до числа унікальних коефіцієнтів фільтра, що використовуються, роздільних і нероздільних, і підтримки фільтра, що використовується, (як то положення цілого пікселя, що використовуються для інтерполяції 15 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 щонайменше частини положень субпікселя). У кожній з цих схем можуть застосовуватися різні групи положень повного цілого пікселя для різних положень субпікселя. Для NS-AIF, наприклад, модуль 37 МС модуля 32 прогнозування може інтерполювати одномірні положення субпікселя "а", "b", "с", "d", "h" та "l", використовуючи одномірний 6ланковий інтерполяційний фільтр (що також іменується 6-позиційним фільтром, оскільки кожна його ланка відповідає положенню цілого пікселя), який вимагає шести коефіцієнтів. Кожні з шести коефіцієнтів 6-позиційних фільтрів, що використовуються для інтерполяції субпікселів, відповідають одному з положень цілого пікселя, проілюстрованих на фіг. 3. Наприклад, для положень субпікселя "а" шість положень цілого пікселя, що відповідають коефіцієнтам, можуть бути С1, С2, С3, С4, С5 та С6. В інших прикладах будь-яка 6-членна підгрупа з положення повного цілого пікселя може використовуватися, щоб обчислити значення для положення субпікселя "а". Ці положення цілого пікселя відображають приклади "підтримки фільтра" інтерполяційного фільтра. У деяких прикладах підтримка фільтра може включати в себе раніше обчислені значення для інших субцілих пікселів. В іншій схемі AIF, тобто S-AIF, модуль 32 прогнозування може використовувати роздільні інтерполяційні фільтри із застосуванням будь-якої підгрупи положень повного цілого пікселя, замість нероздільних інтерполяційних фільтрів, що використовуються в NS-AIF. Наприклад, для одномірних положень субпікселя модуль 32 прогнозування (наприклад, модуль 37 МС модуля 32 прогнозування) застосовує тільки горизонтальні направлені фільтри, тільки вертикальні направлені фільтри, тільки діагональні фільтри (див. фіг. 4 та фіг. 5), тільки комбінований горизонтальний і вертикальний направлений фільтр (див. фіг. 5), тільки прямокутні фільтри (див. фіг. 7 та фіг. 8) або будь-яку іншу комбінацію підтримки фільтра, залежно від місцеположення субпікселя. В одному прикладі діагональний фільтр містить 6-позиційний (або 6-ланковий) фільтр. Модуль 32 прогнозування застосовує діагональні фільтри для положень субпікселя "е", "j" та "о" з положеннями цілого пікселя А1, В2, С3, D4, Е5 та F6 (див. фіг. 4) як підтримку фільтра і застосовує вертикальні направлені фільтри для положень субпікселя "d", "h" та "l" з положеннями цілого пікселя А3, В3, С3, D3, Е3 та F3 (див. фіг. 6) як підтримку фільтра. Для положень субпікселя, що залишилися, тобто двомірних положень субпікселя, модуль 32 прогнозування може застосовувати діагональну фільтрацію, за якою піде вертикальна фільтрація, або вертикальну фільтрацію, за якою піде діагональна фільтрація. Знову коефіцієнти фільтра, що використовуються для роздільних діагональних і вертикальних фільтрів, можуть бути обчислені відповідно до рівняння (7), наведеного вище, в прикладах, що стосуються адаптивної інтерполяційної фільтрації. В інших прикладах будь-яка підгрупа і форма підтримки фільтра може використовуватися, щоб обчислити значення для положень субпікселя. Модуль 37 МС модуля 32 прогнозування може використовувати одну або декілька методик інтерполяції, описаних тут, що може збільшити ефективність кодування під час інтерполяції значень для положень субпікселя і/або розширити різноманітність підтримки фільтра, що використовується для інтерполяції положень субпікселя. Це розкриття нижче більш детально описує інші приклади груп підтримки фільтра, які можуть використовуватися для інтерполяції (як то діагональна підтримка або дванадцятипіксельна підтримка фільтра з радіальною формою). Крім того, також описуються методики здійснення вибору між інтерполяційними фільтрами, методики здійснення вибору підтримки фільтра і методики кодування з прогнозуванням відносно коефіцієнтів фільтра. Фіг. 4 являє собою концептуальну діаграму, що ілюструє підтримку діагонального шестипіксельного фільтра відносно місцеположення субцілого пікселя. Відповідно до цього розкриття модуль 37 МС може обчислити значення субпікселя для будь-якого з положень субпікселя від "а" до "о" на основі значень затіненого цілого пікселя. У цьому випадку обчислення будь-якого із значень субпікселя містить застосування інтерполяційного фільтра, який задіє діагональну сітку положень підтримки фільтра, що відповідають групі з шести (або, можливо, більше) положень цілого пікселя, як проілюстровано на фіг. 4. Положення підтримки фільтра показані із затіненням і заголовними буквами, а положення субпікселя показані як чарунки з пунктирними лініями і малими буквами. Модуль 37 МС може інтерполювати пікселі таким чином тільки для підгрупи пікселів у відеоблоці і може генерувати блок прогнозування на основі інтерполяції значень субпікселя. В інших прикладах модуль 37 МС може інтерполювати пікселі таким чином для кожного пікселя відеоблока. Підтримка шестипозиційного фільтра має діагональну форму в цьому прикладі. Однак в інших прикладах підтримка будь-якого іншого шестипозиційного фільтра може мати будь-яку іншу форму. Група з шести або більше положень цілого пікселя, які йдуть по діагоналі через положення субпікселя, показана із затіненням на фіг. 4. Підтримка фільтра може включати в себе два з чотирьох положень цілого пікселя, оточуючих положення субпікселя, С3 та D4, як і 16 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 чотири положення цілого пікселя А1, В2, Е5 та F6 вздовж діагональної лінії через С3 та D4. Така фільтрація може формувати частину компенсації руху під час процесу кодування відеосигналу відеокодером 22 (фіг. 2) або під час процесу декодування відеосигналу декодером 28 (фіг. 10). Під час процесу кодування відеосигналу модуль 32 прогнозування може пересилати множину груп значень коефіцієнтів до модуля 46 ентропійного кодування як частину синтаксичних елементів прогнозування. Як показано на фіг. 4, група з шести або більше положень цілого пікселя, які оточують положення субпікселя, має діагональну форму. В іншому прикладі підтримка фільтра може включати в себе два з чотирьох положень цілого пікселя, оточуючих положення субпікселя С4 та D3, як і чотири положення цілого пікселя А6, В5, Е2 та F1 вздовж діагональної лінії через С4 та D3. У деяких прикладах тільки підгрупа положень субпікселя "а»-«о" визначається з використанням діагональної підтримки фільтра. В інших прикладах всі положення субпікселя від "а" до "о" визначаються з використанням діагональної підтримки фільтра. Модуль 46 ентропійного кодування може кодувати групи значень коефіцієнтів і виводити значення коефіцієнтів інтерполяційного фільтра як частину кодованого бітового потоку, який потім може бути переданий до іншого пристрою. Кожна з множини груп значень коефіцієнтів, визначених відносно кожного різного положення субпікселя, показаного на фіг. 4, може визначати різні зважування для шести або більше положень цілого пікселя. Модуль 46 ентропійного кодування також може кодувати групи підтримки фільтра і виводити групи підтримки фільтра як частину кодованого бітового потоку, який потім може бути переданий до іншого пристрою. Різні групи положень субцілого пікселя можуть мати різні групи підтримки фільтра. Крім того, різні групи підтримки фільтра можуть застосовуватися відносно однакових або різних інтерполяційних фільтрів. Фіг. 5 являє собою концептуальну діаграму, що ілюструє підтримку х-подібного дванадцятипіксельного фільтра відносно місцеположення субцілого пікселя. Відповідно до цього розкриття модуль 37 МС може обчислити значення субпікселя для будь-якого з положень субпікселя від "а" до "о" на основі значень затіненого цілого пікселя. У цьому випадку обчислення будь-якого із значень субпікселя містить застосування інтерполяційного фільтра, який визначає х-подібну сітку положень підтримки фільтра, що відповідають групі з дванадцяти (або, можливо, більше) положень цілого пікселя, які розташовані по діагоналі з чотирма положеннями повного цілого пікселя, оточуючими положення субпікселя, як проілюстровано на фіг. 5. Положення підтримки фільтра показані із затіненням і заголовними буквами, а положення субпікселя показані як чарунки з пунктирними лініями і малими буквами. Модуль 37 МС може інтерполювати пікселі таким чином тільки для підгрупи пікселів у відеоблоці і може генерувати блок прогнозування на основі інтерполяції значень субпікселя. В інших прикладах модуль 37 МС може інтерполювати пікселі таким чином для кожного пікселя відеоблока. Підтримка дванадцятипозиційного фільтра має х-подібну форму. Однак в інших прикладах підтримка будь-якого іншого дванадцятипозиційного фільтра для будь-якого з положень субпікселя може мати будь-яку іншу форму. Група з дванадцяти або більше положень цілого пікселя, які йдуть х-подібно через положення субпікселя, показані із затіненням на фіг. 5. Підтримка фільтра може включати в себе чотири положення цілого пікселя, оточуючих положення субпікселя, С3, С4, D3 та D4, як і чотири положення цілого пікселя А1, В2, Е5 та F6 вздовж діагональної лінії через С3 та D4, і чотири положення цілого пікселя А6, В5, Е2 та F1 вздовж діагональної лінії через С4 та D3. Така фільтрація може формувати частину компенсації руху під час процесу кодування відеосигналу відеокодером 22 (фіг. 2) або під час процесу декодування відеосигналу декодером 28 (фіг. 10). Під час процесу кодування відеосигналу модуль 32 прогнозування може пересилати множину груп значень коефіцієнтів до модуля 46 ентропійного кодування як частину синтаксичних елементів прогнозування. У деяких прикладах тільки підгрупа положень субпікселя "а»-«о" визначається з використанням х-подібної підтримки фільтра. В інших прикладах всі положення субпікселя від "а" до "о" визначаються з використанням х-подібної підтримки фільтра. Модуль 46 ентропійного кодування може кодувати групи значень коефіцієнтів і виводити значення коефіцієнтів інтерполяційного фільтра як частину кодованого бітового потоку, який потім може бути переданий до іншого пристрою. Кожна з множини груп значень коефіцієнтів, визначених відносно кожного різного положення субпікселя, показаного на фіг. 5, може визначати різні зважування для дванадцяти або більше положень цілого пікселя. Модуль 46 ентропійного кодування також може кодувати групи підтримки фільтра і виводити групи підтримки фільтра як частину кодованого бітового потоку, який потім може бути переданий до іншого пристрою. 17 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 Фіг. 6 являє собою концептуальну діаграму, що ілюструє хрестоподібну підтримку дванадцятипіксельного фільтра відносно щонайменше одного положення субпікселя. Відповідно до цього розкриття модуль 37 МС може обчислити значення субпікселя для будьякого з положень субпікселя, зв'язаних з положенням повного пікселя, на основі значень затіненого цілого пікселя. У цьому випадку обчислення будь-якого із значень субпікселя містить застосування інтерполяційного фільтра, який визначає t-подібну сітку положень підтримки фільтра, що відповідають групі з дванадцяти (або, можливо, більше) положень цілого пікселя, які можуть включати в себе чотири положення цілого пікселя, оточуючих положення субпікселя (наприклад, С3, С4, D3 та D4), як і вертикальні положення цілого пікселя (наприклад, А3, В3, Е3 та F3) і горизонтальні положення цілого пікселя (наприклад, С1, С2, С5 та С6). Положення підтримки фільтра показані із затіненням і заголовними буквами, а деякі положення субпікселя показані як чарунки з пунктирними лініями і малими буквами. Модуль 37 МС може інтерполювати пікселі таким чином тільки для підгрупи пікселів у відеоблоці і може генерувати блок прогнозування на основі інтерполяції значень субпікселя. В інших прикладах модуль 37 МС може інтерполювати пікселі таким чином для кожного пікселя відеоблока. Як показано на фіг. 6, відносно трьох горизонтальних положень субпікселя "а", "b" та "с" і трьох вертикальних положень субпікселя "d", "h" та "l" може бути виконане прогнозування з підтримкою дванадцятипіксельного фільтра. Однак в інших прикладах будь-яке положення субпікселя, зв'язане з положенням повного пікселя (таким як С3, показане на фіг. 6), може бути прогнозоване з використанням підтримки дванадцятипіксельного фільтра, показаної на фіг. 6. Подібним чином модуль 46 ентропійного кодування може кодувати групи значень коефіцієнтів і виводити значення коефіцієнтів інтерполяційного фільтра як частину кодованого бітового потоку, який потім може бути переданий до іншого пристрою. Кожна з множини груп значень коефіцієнтів, визначених відносно кожного різного положення субпікселя, показаного на фіг. 6, може визначати різні зважування для дванадцяти або більше положень цілого пікселя. Модуль 46 ентропійного кодування також може кодувати групи підтримки фільтра і виводити групи підтримки фільтра як частину кодованого бітового потоку, який потім може бути переданий до іншого пристрою. Фіг. 7 являє собою концептуальну діаграму, що ілюструє приклад колової (що також іменується радіальною) підтримки дванадцятипіксельного фільтра відносно місцеположення субпікселя. Подібно до того, як відбувається в прикладах різної підтримки фільтра, описаних вище, модуль 37 МС може обчислити значення субпікселя для будь-якого положення субпікселя на основі значень затіненого цілого пікселя. У цьому випадку обчислення значень субпікселя містить застосування інтерполяційного фільтра, який визначає двомірну сітку положень підтримки фільтра, що відповідають групі з дванадцяти (або, можливо, більше) положень цілого пікселя, які оточують положення субпікселя, як проілюстровано на фіг. 7. Положення підтримки фільтра показані із затіненням і заголовними буквами, а положення субпікселя показані як чарунки з пунктирними лініями і малими буквами. Модуль 37 МС може інтерполювати пікселі таким чином для будь-якого пікселя з відеоблока і може генерувати блок прогнозування на основі інтерпольованого значення субпікселя. Підтримка 12-позиційного фільтра має радіальну форму і має схожу з підтримкою 36-позиційного фільтра, що використовується в NS-AIF, частотну характеристику, але з менше складною в плані інтерполяції. Група з дванадцяти або більше положень цілого пікселя, які оточують положення субпікселя, показана із затемненням на фіг. 4 і може включати в себе чотири положення цілого пікселя С3, С4, D3 та D4, оточуючих п'ятнадцять значень половини пікселя і чверті пікселя, і вісім положень цілого пікселя B3, B4, C2, C5, D2, D5, E3 та E4, оточуючих чотири положення цілого пікселя. Кожне з положень підтримки фільтра в двомірній сітці положень підтримки фільтра, показаних на фіг. 7, знаходиться в межах двох положень цілого пікселя відносно положень субпікселя. Така фільтрація може формувати частину компенсації руху під час процесу кодування відеосигналу відеокодером 22 (фіг. 2) або під час процесу декодування відеосигналу декодером 28 (фіг. 10). Під час процесу кодування відеосигналу модуль 32 прогнозування може пересилати множину груп значень коефіцієнтів до модуля 46 ентропійного кодування як частину синтаксичних елементів прогнозування. Як показано на фіг. 4, група з дванадцяти положень цілого пікселя, які оточують положення субпікселя, має радіальну форму і може містити групу положень цілого пікселя, просторово найближчих до значень субпікселя, визначених інтерполяційним фільтром (наприклад, фільтром (фільтрами) 39 на фіг. 2). В інших прикладах радіальна форма, показана на фіг. 7, може бути зміщена, наприклад, на один повний піксель ліворуч або праворуч. У ще декількох 18 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 інших прикладах будь-яка група з будь-яким числом положень повного цілого пікселя використовується для прогнозування положення субпікселя з інтерполяційним фільтром. Фіг. 8 являє собою концептуальну діаграму, що ілюструє приклад підтримки квадратного чотирипіксельного фільтра відносно щонайменше одного положення субцілого пікселя. Відповідно до цього розкриття модуль 37 МС може обчислити значення субпікселя для будьяких положень субпікселя, зв'язаних з положенням повного пікселя, на основі значень затіненого цілого пікселя. У цьому випадку обчислення будь-якого із значень субпікселя містить застосування інтерполяційного фільтра, який визначає квадратну сітку положень підтримки фільтра, що відповідають групі з чотирьох положень цілого пікселя. У прикладі, продемонстрованому на фіг. 8, чотири положення цілого пікселя включають в себе чотири положення повного цілого пікселя, оточуючих положення субпікселя, а саме С3, С4, D3 та D4. Положення підтримки фільтра показані із затіненням і заголовними буквами, а деякі положення субпікселя показані як чарунки з пунктирними лініями і малими буквами. Модуль 37 МС може інтерполювати пікселі таким чином тільки для підгрупи пікселів у відеоблоці і може генерувати блок прогнозування на основі інтерполяції значень субпікселя. В інших прикладах модуль 37 МС може інтерполювати пікселі таким чином для кожного пікселя відеоблока. Модуль 37 МС може використовувати інтерполяційний фільтр підходящого типу для прогнозування положення субпікселя з використанням цих чотирьох положень цілого пікселя. В інших прикладах модуль 37 МС може інтерполювати положення субпікселя з використанням будь-якої групи з чотирьох положень повного цілого пікселя. Фіг. 9 являє собою концептуальну діаграму, що ілюструє приклад підтримки прямокутного шестипіксельного фільтра відносно положення субцілого пікселя. У цьому прикладі модуль 37 МС може обчислити значення субпікселя для будь-яких положень субпікселя, зв'язаних з положенням повного пікселя, на основі значень затіненого цілого пікселя. Положення підтримки фільтра показані із затіненням і заголовними буквами, а деякі положення субпікселя показані як чарунки з пунктирними лініями і малими буквами. У цьому випадку обчислення будь-якого із значень субпікселя містить застосування інтерполяційного фільтра, який визначає прямокутну сітку положень підтримки фільтра, що відповідають групі з шести положень цілого пікселя. У прикладі, продемонстрованому на фіг. 8, шість положень цілого пікселя включають в себе чотири положення повного цілого пікселя, оточуючих положення субпікселя, як і два додаткових положення повного цілого пікселя по сусідству з чотирма положеннями повного цілого пікселя, оточуючими положення субпікселя. Коли положення субпікселя "f" прогнозоване на фіг. 9, підтримка фільтра включає в себе чотири положення повного пікселя, розташованих навколо субпікселя "f", С3, С4, D3 та D4, як сусідні положення повного пікселя В3 та В4. В інших прикладах сусідні положення повного пікселя можуть включати в себе С2 та D2, C5 та D5 або E3 та E4. В інших прикладах модуль 37 МС може інтерполювати положення субпікселя з використанням групи з шести положень повного цілого пікселя. Для прогнозування положення субцілого пікселя може використовуватися будь-який підходящий шестиланковий інтерполяційний фільтр. Модуль 46 ентропійного кодування може кодувати групи значень коефіцієнтів і виводити значення коефіцієнтів інтерполяційного фільтра як частину кодованого бітового потоку, який потім може бути переданий до іншого пристрою. Кожна з множини груп значень коефіцієнтів, визначених відносно кожного різного положення субпікселя, показаного на фіг. 9, може визначати різні зважування для дванадцяти або більше положень цілого пікселя. Модуль 46 ентропійного кодування також може кодувати групи підтримки фільтра і виводити групи підтримки фільтра як частину кодованого бітового потоку, який потім може бути переданий до іншого пристрою. З посиланням на фіг. 3 різні групи положень субцілого пікселя в межах одного елемента прогнозування могли застосовувати один і той самий інтерполяційний фільтр відносно різних груп підтримки фільтра від одного і того самого кадру зображення. Крім того, однакові або різні інтерполяційні фільтри можуть застосовуватися відносно різних груп підтримки фільтра в межах одного елемента прогнозування. Наприклад, положення субпікселя "е" може бути прогнозоване з використанням 6 діагональної підтримки, як показано на фіг. 4. Підтримка фільтра для субпікселя "е" може включати в себе положення повного цілого пікселя А1, В2, С3, D4, E5 та F6. Інтерполяційний фільтр, що використовується для субпікселя "е", може бути шестиланковим фільтром Вінера. У межах одного і того самого елемента прогнозування положення субпікселя "j" може бути передбачене з використанням дванадцяти положень повного цілого пікселя, розташованих х-подібно, як показано на фіг. 5. Підтримка фільтра для субпікселя "j" може включати в себе положення повного цілого пікселя А1, А6, В2, В5, С3, С4, D3, D4, Е2, E5, F1 та 19 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 F6. Інтерполяційний фільтр, що використовується для субпікселя "е", може бути дванадцятиланковим фільтром Вінера. Додатково положення субцілого пікселя "h" може бути прогнозоване з використанням хрестоподібної підтримки, показаної на фіг. 6. Підтримка фільтра для субпікселя "h" може включати в себе положення повного цілого пікселя, включаючи А3, В3, С1, С2, С3, С4, С5, С6, D3, D4, Е3 та F3. Інтерполяційний фільтр, що використовується для прогнозування субпікселя "h", може бути дванадцятиланковим роздільним або нероздільним фільтром. Інше положення субпікселя, "k", може бути прогнозоване, як показано на фіг. 7. Підтримка фільтра в формі кола для субпікселя "k" може включати в себе дванадцять положень повного цілого пікселя, включаючи В3, В4, С2, С3, С4, С5, D2, D3, D4, Е3 та Е4. Інтерполяційний фільтр, що використовується для прогнозування субпікселя "h", може бути дванадцятиланковим фільтром. Крім того, як показано на фіг. 8, положення субцілого пікселя "m" може бути прогнозоване з використанням чотирьох найближчих до субпікселю "m" положень повного цілого пікселя. Чотириланковий інтерполяційний фільтр може бути використаний з підтримкою фільтра, включаючи С3, С4, D3 та D4 для субпікселя "m". Як інший приклад положення субцілого пікселя "f" може бути прогнозоване з використанням прямокутної підтримки, як показано на фіг. 9. Підтримка фільтра для субпікселя "f" може включати в себе шість положень повного цілого пікселя, включаючи В3, В4, С3, С4, D3 та D4. Інтерполяційний фільтр, що використовується прогнозування субпікселя "f", може бути дванадцятиланковим роздільним або нероздільним фільтром. Описане вище - це лише декілька прикладів різних груп підтримки фільтра, що використовуються для прогнозування положень субпікселя для елемента прогнозування. Як описується тут, кожне з положень субпікселя "е", "j", "h", "k", "m" та "f" прогнозується з використанням різної підтримки фільтра. Деякі з цих положень субпікселя можуть бути прогнозовані з використанням одного і того самого інтерполяційного фільтра. Наприклад, обидва субпікселя "е" та "f" можуть бути прогнозовані з використанням шестиланкового фільтра Вінера. Інші положення субпікселя можуть бути прогнозовані з використанням інтерполяційних фільтрів, відмінних від тих, що для інших положень субпікселя. В інших прикладах деякі положення повного цілого пікселя можуть повторюватися при обчисленні значення положення субпікселя. Наприклад, якщо використовується одномірний шестиланковий інтерполяційний фільтр, підтримка для положення субпікселя може містити групу з менш ніж шести положень повного цілого пікселя. В одному прикладі ті положення повного цілого пікселя, що є найближчими до положення субпікселя, - такі, що повторюються. Подібним чином, в одному прикладі для положення половини пікселя "е" ланки шестиланкового фільтра можуть відповідати В3, С3, С4, та D3 D4. Наприклад, значення пікселя для положення субпікселя "е" можуть бути обчислені за допомогою рівняння (8): c=((b3-5*C4+20*C3+20*C3-5*D3+D4)+16)/32 (8) Як описується в цих конкретних прикладах, ніяке положення субпікселя не залежить від положення іншого субпікселя. Однак в інших прикладах положення субпікселя може залежати від положення іншого субпікселя. Множина інших прикладів представляється можливою, включаючи будь-яку комбінацію підтримки фільтра і будь-якого з інтерполяційних фільтрів для кожного положення субпікселя. Багато інших розмірів і форм фільтра можуть бути використані відповідно до фільтрації субпікселя. Фіг. 10 являє собою блок-схему, що ілюструє приклад відеодекодера 28, який може декодувати відеопослідовність, яка кодована способом, описаним тут. Відеодекодер 28 - це один приклад спеціалізованого комп'ютерного відеопристрої або апаратури, що іменуються тут "кодером". Як показано на фіг. 10, відеодекодер 28 відповідає відеодекодеру 28 пристрою 20. Однак в інших прикладах відеодекодер 28 може відповідати і іншому пристрою. У додаткових прикладах інші модулі (такі, наприклад, як інші кодери/декодери (CODECS)) також можуть реалізовувати методики, подібні до тих, що використовує відеодекодер 28. Відеодекодер 28 включає в себе модуль 52 ентропійного декодування, який здійснює ентропійне декодування прийнятого бітового потоку, щоб генерувати квантовані коефіцієнти і синтаксичні елементи прогнозування. Синтаксичні елементи прогнозування можуть включати в себе режим кодування, один або декілька векторів руху, методику ідентифікації та інтерполяції інформації, що використовується, щоб генерувати дані субпікселя, коефіцієнти для використання при інтерполяційній фільтрації і/або іншу інформацію, зв'язану з генерацією блока прогнозування. Синтаксичні елементи прогнозування, наприклад, коефіцієнти, направляються до модуля 55 прогнозування. Якщо прогнозування використовується, щоб кодувати коефіцієнти відносно коефіцієнтів фіксованого фільтра або відносно один одного, модуль 53 прогнозування 20 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 коефіцієнта і оберненої квантизації може декодувати синтаксичні елементи, щоб визначити діючі коефіцієнти. Також, якщо квантизація здійснюється відносно будь-якого синтаксису прогнозування, модуль 53 прогнозування коефіцієнта та оберненої квантизації також може усунути таку квантизацію. Коефіцієнти фільтра, наприклад, можуть бути кодовані з прогнозуванням і квантовані відповідно до цього розкриття, і в цьому випадку модуль 53 прогнозування коефіцієнта та оберненої квантизації може використовуватися відеодекодером 28, щоб декодувати з прогнозуванням і деквантувати такі коефіцієнти. Модуль 55 прогнозування може генерувати дані прогнозування на основі синтаксичних елементів прогнозування і одного або декількох раніше декодованих блоків, які зберігаються в блоці 62 пам'яті, здебільшого таким саме чином, як було описано вище з посиланням на модуль 32 прогнозування відеокодера 22. Зокрема, модуль 55 прогнозування може реалізовувати одну або декілька методик інтерполяційної фільтрації з цього розкриття під час компенсації руху, щоб генерувати блок прогнозування з конкретною точністю, такою як точність до чверті пікселя. Як такі одна або декілька методик з цього розкриття можуть використовуватися відеодекодером 28 при генерації блока прогнозування. Модуль 55 прогнозування може включати в себе модуль компенсації руху, який містить фільтри, що використовуються для методик інтерполяції і методик, подібних до інтерполяції, з цього розкриття. Компонент компенсації руху не показаний на фіг. 10 для простоти демонстрації. Модуль 56 оберненої квантизації здійснює обернену квантизацію, тобто деквантує, квантовані коефіцієнти. Процес оберненої квантизації може бути процесом, визначеним для декодування Н.264 або будь-якого іншого стандарту декодування. Модуль 58 оберненого перетворення здійснює обернене перетворення, наприклад, обернене DCT або концептуально подібний процес оберненого перетворення, відносно коефіцієнтів перетворення з метою створити залишкові блоки в піксельній ділянці. Суматор 64 підсумовує залишковий блок з відповідним блоком прогнозування, генерованим модулем 55 прогнозування, щоб сформувати відновлену версію вихідного блока, кодованого відеокодером 22. За бажанням деблокуючий фільтр також може застосовуватися, щоб фільтрувати декодовані блоки з метою усунути дефекти блочності. Декодовані відеоблоки потім зберігаються в блоці 62 пам'яті, які надає опорні блоки для подальшої компенсації руху, а також створює декодований відеосигнал, щоб приводити в дію пристрій відображення (такий як пристрій 28, продемонстрований на фіг. 1). Використовуючи методики інтерполяційної фільтрації з даного розкриття, відеодекодер 28 може обчислювати значення пікселя для положень субпікселя, використовуючи інтерполяційний фільтр, що має підтримку фільтра будь-якого розміру і будь-якої форми. В одному прикладі відеодекодер 28 використовує методики NS-AIF, щоб обчислити значення пікселя для субпікселя з використанням підтримки 36-позиційного фільтра (тобто підтримки 2D 6 × 6 фільтра, як показано на фіг. 3). Як інший приклад S-AIF може використовувати роздільні положення цілого пікселя як підтримку фільтра для інтерполяційної фільтрації. У ще одному прикладі D-AIF обчислює положення субпікселя з використанням інтерполяційного фільтра, що має або підтримку шестипозиційного фільтра, або підтримку дванадцятипозиційного діагонального фільтра. Інші інтерполяційні фільтри, такі як інтерполяційний фільтр ITU-T H.264, можуть використовувати, щоб обчислити положення субпікселя. Будь-який підходящий інтерполяційний фільтр, відомий сьогодні або розглянутий у майбутньому, може використовуватися, щоб кодувати або декодувати положення субпікселя. Крім того, відеодекодер 28 може використовувати інтерполяційні фільтри, які є фіксованими інтерполяційними фільтрами, комутованими інтерполяційними фільтрами або адаптивними інтерполяційними фільтрами або їх комбінацією. Інтерполяційні фільтри можуть додатково бути роздільними або нероздільними. В одному прикладі відеодекодер 28 може приймати індикацію фільтра, щоб застосувати, як і індикацію групи підтримки фільтра, до якої застосовується фільтр, в прийнятому бітовому потоку (наприклад, від відеокодера 22). У деяких випадках підтримка фільтра може бути вибрана на основі можливої кореляції із заданим субпікселем. Наприклад, одним недоліком використання підтримки діагонального фільтра, як в D-AIF, є те, що положення цілого пікселя, які використовуються при фільтрації, далекі від поточного положення, що підлягає інтерполяції. По мірі того, як відстань між поточним положенням, що підлягає інтерполяції, і положеннями пікселів, що використовуються як підтримка фільтра, збільшується, знижується просторова піксельна кореляція. Як така підтримка діагонального фільтра, що використовується в D-AIF, є менш підходящою для формування точного прогнозування. З метою забезпечити кращий прогнозування з використанням пікселів з більш високою кореляцією з положенням, що підлягає інтерполяції (тобто положення, які ближче або на меншій відстані від положення, що підлягає інтерполяції), при підтримці такої самої невисокої 21 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 складності, що пропонується і D-AIF, для субпікселя може використовуватися більш підходяща підтримка фільтра (наприклад, підтримка чотирьохпозиційного фільтра, показана на фіг. 8, може використовуватися для інтерполяції). Положення цілого пікселя, що використовуються в підтримці чотирьохпозиційного фільтра, описаній в цьому розкритті, включають в себе чотири положення цілого пікселя, оточуючі положення субпікселя, тобто положення цілого пікселя С3, С4, D3 та D4, які можуть іменуватися "кутовими" положеннями цілого пікселя, оскільки вони розташовуються поблизу кутів положень субпікселя. Додатково до кутових положень цілого пікселя одне або декілька положень цілого пікселя, що безпосередньо сусідують з кутовими положеннями цілого пікселя, також можуть використовуватися для підтримки фільтра, як показано на фіг. 9. Положення цілого пікселя, що безпосередньо сусідують з кутовими положеннями цілого пікселя, можуть включати в себе положення цілого пікселя, розташовані прямо над (у напрямку вгору або на північ) або прямо під (у напрямку вниз і на південь) кутовими положеннями цілого пікселя, як і положення цілого пікселя, розташовані прямо наліво (або на захід) або прямо праворуч (або на схід) від кутових положень цілого пікселя. Всі ці положення цілого пікселя розташовуються в межах двох положень цілого пікселя субпікселя, що підлягає інтерполяції, в цих конкретних прикладах. Підтримка фільтра відповідно до методик даного винаходу може, однак, включати в себе додаткові місцеположення цілого пікселя. Наприклад, підтримка фільтра може включати в себе місцеположення цілого пікселя, які розташовуються в межах трьох положень цілого пікселя положення субпікселя, що підлягає інтерполяції, які формують радіальну форму. Додатково підтримка фільтра може включати в себе положення цілого пікселя в межах чотирьох і більше положень цілого пікселя положення субпікселя. У деяких прикладах підтримка фільтра може включати в себе будь-яку підгрупу положень повного цілого пікселя в заданому кодованому блоці. Навіть положення чверті пікселя або більш високого розрізнення можуть бути інтерпольовані на основі положень цілого пікселя, розташованих в межах щонайменше двох положень цілого пікселя. Також підтримка фільтра може бути вибрана на основі кореляції положень повного цілого пікселя з положенням субпікселя. Таким чином, методики підтримки фільтра з даного розкриття забезпечують більш довершене прогнозування інтерполяції з використанням цілих пікселів з більш високою кореляцією з положенням, що підлягає інтерполяції. Додатково можна здійснити прогнозування або декодування будь-якого субпікселя, без необхідності прогнозувати або декодувати інший субпіксель, від якого він залежить. Фіг. 11 являє собою блок-схему послідовності операцій, що ілюструє зразкове функціонування відеокодера, який використовує підтримку піксельного фільтра, сумісну з цим розкриттям. Методика, продемонстрована на фіг. 11, буде описана з точки зору відеокодера 22, представленого на фіг. 2, хоча і інші пристрої можуть реалізовувати подібні методики. Відеокодер 22 може приймати значення для множини положень повного цілого пікселя з контрольної вибірки (102). Відеокодер 22 може застосувати інтерполяційний фільтр відносно першої групи значень для множини положень повного цілого пікселя, щоб обчислити значення для першого субцілого пікселя одного з множини положень повного цілого пікселя (104). Відеокодер 22 може застосувати інтерполяційний фільтр відносно другої, іншої, групи значень для множини положень повного цілого пікселя, щоб обчислити значення для другого, іншого, субцілого пікселя одного з положень повного цілого пікселя (106). На основі обчислених значень відеокодер 22 може кодувати поточний блок пікселів з використанням вектора руху, який вказує на один з першого субцілого пікселя і другого субцілого пікселя. Методики, подібні до того, що характерно для зразкового функціонування відеокодера 22, описаного з посиланням на фіг. 11, будуть пояснені далі за допомогою фіг. 12 та фіг. 13. Фіг. 12 являє собою блок-схему послідовності операцій, що ілюструє інше зразкове функціонування відеокодера, який використовує підтримку піксельного фільтра, сумісну з цим розкриттям. Методика, продемонстрована на фіг. 12, буде описана з точки зору відеокодера 22, представленого на фіг. 2, хоча і інші пристрої можуть реалізовувати подібні методики. Як продемонстровано на фіг. 12, модуль 37 МС модуля 32 прогнозування одержує блок пікселів від блока 34 пам'яті, які включають в себе значення цілого пікселя, що відповідають положенням цілого пікселя (112). Для кожного положення субпікселя відеокодер 22 визначає підтримку фільтра, яка містить групу положень повного цілого пікселя в блоці пікселів (114). Способи визначення підтримки фільтра будуть пояснені далі за допомогою фіг. 12 та фіг. 13. Способи визначення підтримки фільтра можуть залежати від особливих характеристик кодера, що використовується, такого як відеокодер 22. 22 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 Фільтр(-и) 39 обчислює (обчислюють) значення субпікселя на основі групи підтримки фільтра, яка містить будь-яку кількість положень повного цілого пікселя, які оточують положення субпікселя (116). Як було пояснено більш детально вище, підтримка фільтра може використовуватися, щоб генерувати будь-які можливі інтерполяції субпікселя. Коли підтримка фільтра визначена, модуль 37 МС потім генерує блок прогнозування на основі обчислених значень субпікселя (118). Зокрема, модуль 37 МС може генерувати і виводити інтерпольований блок прогнозування, що містить інтерпольовані значення субпікселя. Суматор 48 після цього може кодувати відеоблок на основі інтерпольованого блока прогнозування (120), наприклад, шляхом віднімання інтерпольованого блока прогнозування від кодованого відеоблока, що кодується, щоб генерувати залишковий блок. Залишковий блок потім може бути перетворений і квантований модулем 38 перетворення і модулем 40 квантизації відповідно. Після ентропійного кодування за допомогою модуля 46 ентропійного кодування відеокодер 22 може вивести кодований бітовий відеопотік та інформацію про фільтр (122). Інформація про фільтр, як описується тут, може містити індикацію того, яка підтримка фільтра використовувалася, щоб кодувати кожне положення субпікселя. Інформація про фільтр також може включати в себе індикацію того, який інтерполяційний фільтр використовувався для конкретного положення субпікселя. Інформація про фільтр може бути виведена один раз на кодований елемент або, можливо, декілька разів на кодований елемент, якщо різні ділянки кодованого елемента задіють різні типи інтерполяції субпікселя. Фіг. 13 являє собою блок-схему послідовності операцій, що ілюструє приклад способу визначення підтримки фільтра для субцілого пікселя, сумісної з цим розкриттям. Методика, продемонстрована на фіг. 12, буде описана з точки зору відеокодера 22, представленого на фіг. 2, хоча і інші пристрої можуть реалізовувати подібні методики. Відеокодер 22 може задіяти багатопрохідні методики, щоб визначити, яку підтримку фільтра використовувати для кожного положення субпікселя в блоці пікселів. Як показано на фіг. 13, відеокодер 22 обчислює перший вектор руху для блока пікселів на основі положення субпікселя, інтерпольованого з використанням першої групи положень повного цілого пікселя (132). Вектор руху може бути обчислений для кадру з використанням, наприклад, традиційного способу оцінки руху. Як було описано вище, будь-яка форма і будь-яка кількість положень повного цілого пікселя можуть використовуватися для прогнозування положення субпікселя. Відеокодер 22 може обчислити перше значення помилки для першого вектора руху (134). В одному прикладі відеокодер 22 може обчислити перше значення помилки з використанням середньоквадратичної помилки прогнозування для положення субпікселя. Відеокодер 22 може обчислити другий вектор руху для блока пікселів на основі положення субпікселя, інтерпольованого з використанням другої групи положень повного цілого пікселя (136). Перша група положень повного цілого пікселя може бути відмінною від другої групи положень повного цілого пікселя. Відеокодер 22 може обчислити друге значення помилки для другого вектора руху (138). Подібним чином, друге значення помилки може бути обчислене з використанням обчислення середньоквадратичної помилки. На основі порівняння першого і другого значень помилки кодер 22 може вибрати одну з першої і другої групи положень повного цілого пікселя (140). Наприклад, група положень повного цілого пікселя може бути вибрана як підтримка фільтра для положення субпікселя, оскільки група положень повного цілого пікселя призводить до меншої помилки для положення субпікселя. Методика, продемонстрована на фіг. 13, може застосовуватися для кожного положення субпікселя в блоці пікселів. В інших прикладах методика, продемонстрована на фіг. 13, може бути застосована один раз на блок пікселів для одного положення субпікселя. В одному прикладі дане визначення може бути здійснене субпіксель за субпікселем. Далі цей зразковий метод може бути реалізований для кожного з множини різних інтерполяційних фільтрів. У такому прикладі підтримка фільтра і інтерполяційний фільтр можуть бути вибрані для заданого фактора, такого як забезпечення найменшої помилки. Для всіх блоків, які вказують на субпіксель, наприклад, субпіксель "b", кодер 22 передбачає субпіксель "b" з використанням множини груп положень повного цілого пікселя. Кодер 22 потім може обчислити середньоквадратичну помилку для різних прогнозувань субпікселя "b" і вибрати групу положень повного цілого пікселя, які відповідають прогнозуванню субпікселя "b", яке передбачає найменшу помилку. Відеокодер 22 може повторювати цей процес для кожного положення субпікселя. В інших прикладах відеокодер 22 застосовує подібні групи підтримки фільтра у відношенні схожим чином розташованих положень субпікселя. Фіг. 14 являє собою блок-схему послідовності операцій, що ілюструє інший приклад способу визначення підтримки фільтра для субцілого пікселя, сумісної з цим розкриттям. У цьому прикладі підтримка фільтра визначається для кожного положення субпікселя в першому, раніше 23 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 кодованому кадрі (152). В одному прикладі підтримка фільтра визначається для першого кадру, як описується з посиланням на фіг. 13. Відеокодер 22 може застосовувати ті самі групи підтримки фільтра у відношенні кожного субпікселя у другому, наступному кадрі, коли групи підтримки фільтра були застосовані у відношенні відповідного субпікселя в попередньому кадрі (154). Зразковий спосіб уникає багатопрохідних методик. Інші способи вибору підтримки фільтра для положення субпікселя можуть включати в себе вибір підгрупи з будь-якої кількості положень повного цілого пікселя, які оточують положення субпікселя. Положення повного цілого пікселя можуть бути вибрані на основі будь-якого числа факторів, включаючи місцезнаходження положення субпікселя, що підлягає прогнозуванню, кореляцію положення повного цілого пікселя з положенням субпікселя або близькість положення повного цілого пікселя до положення субпікселя. Деякі зразкові групи підтримки фільтра для значення субпікселя можуть бути основані на групі підтримки фільтра, яка містить дванадцять або більше положень, які оточують положення субпікселя, як показано на фіг. 3 та фіг. 7. В іншому прикладі фільтр(-и) 39 обчислює (обчислюють) значення субпікселя на основі групи підтримки фільтра, яка містить шість або більше положень, які включають в себе положення повного цілого пікселя, зв'язане з положенням субпікселя, як показано на фіг. 4 - фіг. 7 та фіг. 9. У ще одному прикладі фільтр(-и) 39 обчислює (обчислюють) значення субпікселя на основі групи підтримки фільтра, яка містить чотири або більше положень, які оточують положення субпікселя, як показано на фіг. 8. Фіг. 15 являє собою блок-схему послідовності операцій, що ілюструє зразкове функціонування відеодекодера, який використовує підтримку фільтра, сумісну з цим розкриттям. Так, процес, продемонстрований на фіг. 15 може бути розглянутий як обернений процес декодування по відношенню до процесу кодування, продемонстрованого на фіг. 11. Фіг. 14 буде описана з точки зору відеодекодера 28, представленого на фіг. 10, хоча і інші пристрої можуть реалізовувати подібні методики. Відеодекодер 28 може приймати контрольну вибірку, що містить множину положень повного цілого пікселя (172). В одному прикладі відеодекодер 28 приймає контрольну вибірку від відеокодера, такого як відеокодер 22. Відеодекодер 28 може приймати індикацію групи положень повного цілого пікселя з контрольної вибірки (174). Група положень повного цілого пікселя могла б використовуватися для інтерполяції значення для субцілого пікселя з контрольної вибірки. Інтерполяційний фільтр може бути застосований відносно групи положень повного цілого пікселя відеодекодером 28, щоб обчислити значення субцілого пікселя з контрольної вибірки (176). Відеодекодер 28 також може декодувати поточний блок пікселів відносно обчисленого значення субцілого пікселя (178). Методики, подібні до того, що характерно для зразкового функціонування відеодекодера 28, описаного з посиланням на фіг. 15, будуть пояснені далі за допомогою фіг. 16. Фіг. 16 являє собою блок-схему послідовності операцій, що ілюструє інше зразкове функціонування відеодекодера, який використовує підтримку фільтра, сумісну з цим розкриттям. Так, процес, продемонстрований на фіг. 16, може розглядатися як обернений процес декодування по відношенню до процесу кодування, продемонстрованого на фіг. 12. Фіг. 14 буде описана з точки зору відеодекодера 28, представленого на фіг. 10, хоча і інші пристрої можуть реалізовувати подібні методики. Як показано на фіг. 14, відеодекодер 28 приймає кодовані відеоблоки та інформацію про фільтр (202). Модуль 52 ентропійного декодування може здійснювати ентропійне декодування цієї прийнятої інформації. Модуль 55 прогнозування здійснює компенсацію руху з інтерполяцією відповідно до методик даного розкриття. Зокрема, модуль 55 прогнозування одержує блок пікселів від блока 62 пам'яті, який включає в себе значення цілого пікселя, що відповідають положенням цілого пікселя (204). Модуль 55 прогнозування може використовувати прийняті вектори руху, щоб визначити, як здійснювати інтерполяцію. На основі векторів руху модуль 55 прогнозування може обчислити субпіксель на основі групи підтримки фільтра і типу інтерполяційного фільтра (206). У деяких прикладах тип інтерполяційного фільтра залишається однаковим для деяких положень субпікселя. В одному прикладі індикація групи положень повного цілого пікселя, що використовується, щоб кодувати поточний блок пікселів, здійснюється декодером 28 на щонайменше рівні елемента прогнозування, рівні елемента кодування, рівні кадру, рівні фрагмента або рівні послідовності поточного блока пікселів. Таким чином, модуль 55 прогнозування використовує інтерполяцію, щоб генерувати блок прогнозування (208). Блок прогнозування може бути використаний, щоб декодувати залишковий відеоблок, запускаючи суматор 54, додати блок прогнозування до залишкового блока (210). Різні аспекти інтерполяції, описані тут, включаючи використання 24 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 різних груп підтримки фільтра для положень субпікселя, можуть поліпшити процес відеокодування, забезпечивши дані інтерполяції більш високого в порівнянні з традиційними методиками якості. Методики, описані в даному розкритті, можуть застосовуватися в апаратному забезпеченні, програмному забезпеченні, програмно-апаратному забезпеченні або їх комбінації. Будь-які ознаки, описані як модулі або компоненти, можуть бути реалізовані разом у вбудованому логічному пристрої або окремо як окремі, але при цьому такі, що мають можливість взаємодіяти логічні пристрої. При застосуванні в програмному забезпеченні методики можуть бути реалізовані щонайменше частково машинозчитуваним носієм даних, що містить на собі команди, які під час виконання задіють один або декілька способів, описаних вище. Машинозчитуваний носій даних може формувати частину комп'ютерного програмного продукту, який може включати в себе пакувальні матеріали. Машинозчитуваний носій даних може містити оперативний запам'ятовуючий пристрій (RAM), такий як синхронний динамічний оперативний запам'ятовуючий пристрій (SDRAM), постійний запам'ятовуючий пристрій (ROM), енергонезалежний оперативний запам'ятовуючий пристрій (NVRAM), електрично стираний програмований постійний запам'ятовуючий пристрій (EEPROM), FLASH-пам'ять, магнітні та оптичні носії даних тощо. Методики додатково або як альтернатива можуть бути реалізовані щонайменше частково машинозчитуваним засобом зв'язку, який передає або повідомляє код у формі команд або структур даних і доступ до якого, зчитування з якого і/або реалізація якого може здійснюватися комп'ютером. Код може реалізовуватися одним або декількома процесорами, такими як один або декілька процесорів обробки цифрових сигналів (DSP), мікропроцесорів загального призначення, спеціалізованих інтегральних схем (ASIC), програмованих користувачем вентильних матриць (FPGA) або інших еквівалентних вбудованих або окремих логічних схем. Відповідно, термін "процесор", як використовується тут, може відноситися до будь-якого з вищезазначених структур або будь-якої структури, підходящої для здійснення методик, описаних тут. Крім того, в деяких аспектах функціональність, описана тут, може бути забезпечена в спеціалізованих елементах програмного забезпечення або елементах апаратного забезпечення, виконаних з можливістю кодування і декодування або вбудованих в комбінований кодер-декодер відеосигналу (CODEC). Опис різних ознак як елементів направлений на освітлення різних функціональних аспектів проілюстрованих пристроїв і необов'язково припускає, що такі елементи повинні бути реалізовані у вигляді компонентів апаратного або програмного забезпечення. Швидше, функціональність, зв'язана з одним або декількома елементами, може бути інтегрована в межах загальних або роздільних компонентів апаратного або програмного забезпечення. Різні приклади з цього розкриття були описані. Ці та інші приклади - в межах обсягу наступної формули винаходу. Посилальні позиції 10 система кодування і декодування відеосигналів 12 пристрій-джерело 15 канал зв'язку 16 пристрій-адресат 20 джерело відеосигналу 22 відеокодер 23 модулятор/демодулятор (модем) 24 передавач 26 приймач 27 модем 28 відеодекодер 30 пристрій відображення 32 модуль кодування з прогнозуванням (MCU) 34 блок пам'яті 35 модуль оцінки руху (МЕ) 37 модуль компенсації руху (МС) 38 модуль перетворення 39 інтерполяційний фільтр 40 модуль квантизації 42 модуль оберненої квантизації 44 модуль оберненого перетворення 46 модуль ентропійного кодування 25 UA 109923 C2 5 48, 51 суматор 53 модуль прогнозування коефіцієнта та оберненої квантизації 55 модуль прогнозування 58 модуль оберненого перетворення 62 блок пам'яті 64 суматор ФОРМУЛА ВИНАХОДУ 10 15 20 25 30 35 40 45 50 55 1. Спосіб декодування відеоданих, що включає етапи, на яких: генерують блок прогнозування на основі інтерпольованих значень субцілих пікселів, при цьому значення конкретного субцілого пікселя є одним з інтерпольованих значень субцілих пікселів, причому місцеположення субцілого пікселя цього конкретного субцілого пікселя є одним з п'ятнадцяти різних місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, при цьому кожне з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, має набір підтримки фільтра, який відрізняється від інших, при цьому при генеруванні блока прогнозування обчислюють значення згаданого конкретного субцілого пікселя на основі інтерполяційного фільтра і набору підтримки фільтра для згаданого місцеположення субцілого пікселя; і застосовують залишковий блок до блока прогнозування для відтворення вихідного блока. 2. Спосіб за п. 1, у якому для кожного відповідного місцеположення субцілого пікселя з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, набір підтримки фільтра для цього відповідного місцеположення субцілого пікселя має горизонтальну або вертикальну форму. 3. Спосіб за п. 1, у якому для кожного з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, використовується різний інтерполяційний фільтр. 4. Спосіб за п. 1, який додатково містить етап, на якому вибирають, на основі раніше закодованих кадрів, набір підтримки фільтра, на якому основується значення згаданого конкретного субцілого пікселя. 5. Спосіб кодування відеоданих, що містить етапи, на яких: генерують блок прогнозування на основі інтерпольованих значень субцілих пікселів, при цьому значення конкретного субцілого пікселя є одним з інтерпольованих значень субцілих пікселів, причому місцеположення субцілого пікселя цього конкретного субцілого пікселя є одним з п'ятнадцяти різних місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, при цьому кожне з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, має набір підтримки фільтра, який відрізняється від інших, при цьому при генеруванні блока прогнозування обчислюють значення згаданого конкретного субцілого пікселя на основі інтерполяційного фільтра і набору підтримки фільтра для згаданого місцеположення субцілого пікселя; і віднімають блок прогнозування з кодованого блока для генерування залишкового блока. 6. Спосіб за п. 5, у якому для кожного відповідного місцеположення субцілого пікселя з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, набір підтримки фільтра для цього відповідного місцеположення субцілого пікселя має горизонтальну або вертикальну форму. 7. Спосіб за п. 5, у якому для кожного з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, використовується різний інтерполяційний фільтр. 8. Спосіб за п. 5, що додатково містить етап, на якому вибирають, на основі раніше закодованих кадрів, набір підтримки фільтра, на якому основується значення згаданого конкретного субцілого пікселя. 9. Пристрій для декодування відеоданих, що містить: пам'ять, у якій зберігаються відеодані; і один або більше процесорів, виконаних з можливістю: генерувати блок прогнозування на основі інтерпольованих значень субцілих пікселів, при цьому значення конкретного субцілого пікселя є одним з інтерпольованих значень субцілих пікселів, причому місцеположення субцілого пікселя цього конкретного субцілого пікселя є одним з п'ятнадцяти різних місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, при 26 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 60 цьому кожне з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, має набір підтримки фільтра, який відрізняється від інших, при цьому при генеруванні блока прогнозування один або більше процесорів обчислюють значення згаданого конкретного субцілого пікселя на основі інтерполяційного фільтра і набору підтримки фільтра для згаданого місцеположення субцілого пікселя; і застосовувати залишковий блок до блока прогнозування для відтворення вихідного блока. 10. Пристрій за п. 9, у якому для кожного відповідного місцеположення субцілого пікселя з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, набір підтримки фільтра для цього відповідного місцеположення субцілого пікселя має горизонтальну або вертикальну форму. 11. Пристрій за п. 9, у якому для кожного з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, використовується різний інтерполяційний фільтр. 12. Пристрій за п. 9, у якому один або більше процесорів виконано з можливістю вибирати, на основі раніше закодованих кадрів, набір підтримки фільтра, на якому основується значення згаданого конкретного субцілого пікселя. 13. Пристрій для кодування відеоданих, що містить: пам'ять, у якій зберігаються відеодані; і один або більше процесорів, виконаних з можливістю: генерувати блок прогнозування на основі інтерпольованих значень субцілих пікселів, при цьому значення конкретного субцілого пікселя є одним з інтерпольованих значень субцілих пікселів, причому місцеположення субцілого пікселя цього конкретного субцілого пікселя є одним з п'ятнадцяти різних місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, при цьому кожне з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, має набір підтримки фільтра, який відрізняється від інших, при цьому при генеруванні блока прогнозування один або більше процесорів обчислюють значення згаданого конкретного субцілого пікселя на основі інтерполяційного фільтра і набору підтримки фільтра для згаданого місцеположення субцілого пікселя; і віднімати блок прогнозування з кодованого блока для генерування залишкового блока. 14. Пристрій за п. 13, у якому для кожного відповідного місцеположення субцілого пікселя з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, набір підтримки фільтра для цього відповідного місцеположення субцілого пікселя має горизонтальну або вертикальну форму. 15. Пристрій за п. 13, у якому для кожного з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, використовується різний інтерполяційний фільтр. 16. Пристрій за п. 13, у якому один або більше процесорів виконано з можливістю вибирати, на основі раніше закодованих кадрів, набір підтримки фільтра, на якому основується значення згаданого конкретного субцілого пікселя. 17. Пристрій для декодування відеоданих, що містить: засіб для генерування блока прогнозування на основі інтерпольованих значень субцілих пікселів, при цьому значення конкретного субцілого пікселя є одним з інтерпольованих значень субцілих пікселів, причому місцеположення субцілого пікселя цього конкретного субцілого пікселя є одним з п'ятнадцяти різних місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, при цьому кожне з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, має набір підтримки фільтра, який відрізняється від інших, при цьому при генеруванні блока прогнозування обчислюється значення згаданого конкретного субцілого пікселя на основі інтерполяційного фільтра і набору підтримки фільтра для згаданого місцеположення субцілого пікселя; і засіб для застосування залишкового блока до блока прогнозування для відтворення вихідного блока. 18. Пристрій за п. 17, у якому для кожного відповідного місцеположення субцілого пікселя з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, набір підтримки фільтра для цього відповідного місцеположення субцілого пікселя має горизонтальну або вертикальну форму. 19. Пристрій за п. 17, у якому для кожного з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, використовується різний інтерполяційний фільтр. 20. Пристрій за п. 17, який додатково містить засіб для вибору, на основі раніше закодованих кадрів, набору підтримки фільтра, на якому основується значення згаданого конкретного субцілого пікселя. 21. Пристрій для кодування відеоданих, що містить: 27 UA 109923 C2 5 10 15 20 25 30 35 40 45 50 55 засіб для генерування блока прогнозування на основі інтерпольованих значень субцілих пікселів, при цьому значення конкретного субцілого пікселя є одним з інтерпольованих значень субцілих пікселів, причому місцеположення субцілого пікселя цього конкретного субцілого пікселя є одним з п'ятнадцяти різних місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, при цьому кожне з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, має набір підтримки фільтра, який відрізняється від інших, при цьому при генеруванні блока прогнозування обчислюється значення згаданого конкретного субцілого пікселя на основі інтерполяційного фільтра і набору підтримки фільтра для згаданого місцеположення субцілого пікселя; і засіб для вирахування блока прогнозування з кодованого блока для генерування залишкового блока. 22. Пристрій за п. 21, у якому для кожного відповідного місцеположення субцілого пікселя з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, набір підтримки фільтра для цього відповідного місцеположення субцілого пікселя має горизонтальну або вертикальну форму. 23. Пристрій за п. 21, у якому для кожного з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, використовується різний інтерполяційний фільтр. 24. Пристрій за п. 21, що додатково містить засіб для вибору, на основі раніше закодованих кадрів, набору підтримки фільтра, на якому основується значення згаданого конкретного субцілого пікселя. 25. Машиночитаний носій даних, на якому збережені команди, які при їхньому виконанні пропонують процесору пристрою відеодекодування: генерувати блок прогнозування на основі інтерпольованих значень субцілих пікселів, при цьому значення конкретного субцілого пікселя є одним з інтерпольованих значень субцілих пікселів, причому місцеположення субцілого пікселя цього конкретного субцілого пікселя є одним з п'ятнадцяти різних місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, при цьому кожне з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, має набір підтримки фільтра, який відрізняється від інших, при цьому при генеруванні блока прогнозування обчислюється значення згаданого конкретного субцілого пікселя на основі інтерполяційного фільтра і набору підтримки фільтра для згаданого місцеположення субцілого пікселя; і застосовувати залишковий блок до блока прогнозування для відтворення вихідного блока. 26. Машиночитаний носій даних за п. 25, при цьому для кожного відповідного місцеположення субцілого пікселя з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, набір підтримки фільтра для цього відповідного місцеположення субцілого пікселя має горизонтальну або вертикальну форму. 27. Машиночитаний носій даних за п. 25, при цьому для кожного з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, використовується різний інтерполяційний фільтр. 28. Машиночитаний носій даних за п. 25, у якому команди додатково пропонують процесору вибирати, на основі раніше закодованих кадрів, набір підтримки фільтра, на якому основується значення згаданого конкретного субцілого пікселя. 29. Машиночитаний носій даних, на якому збережені команди, які при їхньому виконанні пропонують процесору пристрою відеокодування: генерувати блок прогнозування на основі інтерпольованих значень субцілих пікселів, при цьому значення конкретного субцілого пікселя є одним з інтерпольованих значень субцілих пікселів, причому місцеположення субцілого пікселя цього конкретного субцілого пікселя є одним з п'ятнадцяти різних місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, при цьому кожне з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, має набір підтримки фільтра, який відрізняється від інших, при цьому при генеруванні блока прогнозування обчислюють значення згаданого конкретного субцілого пікселя на основі інтерполяційного фільтра і набору підтримки фільтра для згаданого місцеположення субцілого пікселя; і віднімати блок прогнозування з кодованого блока для генерування залишкового блока. 30. Машиночитаний носій даних за п. 29, при цьому для кожного відповідного місцеположення субцілого пікселя з місцеположень субцілого пікселя, пов'язаних з повним цілим пікселем, набір 28

Дивитися

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

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

Adaptive support for interpolating values of sub-pixels for video coding

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

Panchal, Rahul, P., Karczewicz, Marta, Chen, Peisong

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

Адаптивная поддержка интерполяционных значений субпикселя для кодирования видеосигнала

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

Панчал Рахул П., Карчевич Марта, Чень Пейсун

МПК / Мітки

МПК: H04N 7/00

Мітки: підтримка, відеосигналу, адаптивна, інтерполяційних, субпікселя, кодування, значень

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

<a href="https://ua.patents.su/38-109923-adaptivna-pidtrimka-interpolyacijjnikh-znachen-subpikselya-dlya-koduvannya-videosignalu.html" target="_blank" rel="follow" title="База патентів України">Адаптивна підтримка інтерполяційних значень субпікселя для кодування відеосигналу</a>

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