Фільтр з внутрішнім згладжуванням для кодування відео

Є ще 32 сторінки.

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

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

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

визначення розміру блока, асоційованого з поточним блоком відеоданих, причому розмір блока визначений з множини розмірів блока, які включають в себе розмір блока 4×4, розмір блока 8×8, розмір блока 16×16 і розмір блока 32×32;

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

вибір фільтра з таблиці фільтрів для застосування до поточного блока на основі розміру блока і режиму кодування, причому на основі згаданого вибору фільтрування не застосовується до розміру блока 4×4, тільки плоский режим, верхні ліві діагональні режими, верхній правий діагональний режим і нижній лівий діагональний режим фільтруються для розміру блока 8×8, плоский режим фільтрується і всі режими з прогнозуванням, за винятком горизонтального режиму, вертикального режиму, режиму DC і режимів, безпосередньо суміжних з горизонтальним режимом або вертикальним режимом для розміру блока 16×16, і плоский режим фільтрується і всі режими з прогнозуванням, за винятком горизонтального режиму, вертикального режиму і режиму DC для розміру блока 32×32; і

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

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

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

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

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

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

використання вибраного фільтра для фільтрування вибірок прогнозування;

використання вибраного фільтра для фільтрування вибірок прогнозування;

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

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

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

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

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

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

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

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

9. Спосіб за пунктом 1, який додатково включає:

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

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

10. Спосіб за пунктом 1, в якому поточний блок містить блок прогнозування, закодований згідно з внутрішнім прогнозуванням на короткій відстані (SDIP).

11. Спосіб за пунктом 10, який додатково містить:

визначення розмірності, асоційованої з поточним блоком; і

визначення розміру блока на основі цієї розмірності, використовуючи набір правил визначення розмірності.

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

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

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

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

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

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

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

використання вибраного фільтра для фільтрування вибірок прогнозування;

використання вибраного фільтра для фільтрування вибірок прогнозування;

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

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

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

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

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

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

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

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

21. Пристрій за пунктом 12, в якому процесор додатково сконфігурований для:

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

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

22. Пристрій за пунктом 12, в якому поточний блок містить блок прогнозування, закодований згідно з внутрішнім прогнозуванням на короткій відстані (SDIP).

23. Пристрій за пунктом 22, в якому процесор додатково сконфігурований для:

визначення розмірності, асоційованої з поточним блоком; і

визначення розміру блока на основі цієї розмірності, використовуючи набір правил визначення розмірності.

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

засіб для визначення розміру блока, асоційованого з поточним блоком відеоданих, причому розмір блока визначений з множини розмірів блока, що включають в себе розмір блока 4×4, розмір блока 8×8, розмір блока 16×16 і розмір блока 32×32;

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

засіб для вибору фільтра з таблиці фільтрів для застосування до поточного блока на основі розміру блока і режиму кодування, причому на основі згаданого вибору фільтрування не застосовується до розміру блока 4×4, тільки плоский режим, верхні ліві діагональні режими, верхній правий діагональний режим і нижній лівий діагональний режим фільтруються для розміру блока 8×8, плоский режим фільтрується і всі режими з прогнозуванням, за винятком горизонтального режиму, вертикального режиму, режиму DC і режимів, безпосередньо суміжних з горизонтальним режимом або вертикальним режимом для розміру блока 16×16, і плоский режим фільтрується і всі режими з прогнозуванням, за винятком горизонтального режиму, вертикального режиму і режиму DC для розміру блока 32×32; і

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

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

26. Пристрій за пунктом 24, в якому засіб для вибору фільтра містить:

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

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

27. Пристрій за пунктом 26, в якому засіб для визначення, чи вибрати фільтр з першої таблиці фільтрів або другої таблиці фільтрів, містить:

засіб для використання вибраного фільтра для фільтрування вибірок прогнозування;

засіб для використання вибраного фільтра для фільтрування вибірок прогнозування;

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

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

28. Пристрій за пунктом 27, який додатково містить засіб для кодування індикації фільтрування, коли вибраний фільтр вибраний з другої таблиці фільтрів.

29. Пристрій за пунктом 26, який додатково містить засіб для зберігання першої таблиці фільтрів і другої таблиці фільтрів.

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

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

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

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

32. Пристрій за пунктом 31, в якому набір фільтрів містить щонайменший два фільтри, і при цьому один з фільтрів містить всепропускний фільтр.

33. Пристрій за пунктом 24, який додатково містить:

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

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

34. Пристрій за пунктом 24, в якому поточний блок містить блок прогнозування, закодований згідно з внутрішнім прогнозуванням на короткій відстані (SDIP).

35. Пристрій за пунктом 34, який додатково містить:

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

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

визначити розмір блока, асоційований з поточним блоком відеоданих, причому розмір блока визначений з множини розмірів блока, що включають в себе розмір блока 4×4, розмір блока 8×8, розмір блока 16×16 і розмір блока 32×32;

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

вибрати фільтр з таблиці фільтрів для застосування до поточного блока на основі розміру блока і режиму кодування, причому на основі згаданого вибору фільтрування не застосовується до розміру блока 4×4, тільки плоский режим, верхні ліві діагональні режими, верхній правий діагональний режим і нижній лівий діагональний режим фільтруються для розміру блока 8×8, плоский режим фільтрується і всі режими з прогнозуванням, за винятком горизонтального режиму, вертикального режиму, режиму DC і режимів, безпосередньо суміжних з горизонтальним режимом або вертикальним режимом для розміру блока 16×16, і плоский режим фільтрується і всі режими з прогнозуванням, за винятком горизонтального режиму, вертикального режиму і режиму DC для розміру блока 32×32; і

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

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

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

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

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

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

використовувати вибраний фільтр для фільтрування вибірок прогнозування;

використовувати вибраний фільтр для фільтрування вибірок прогнозування;

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

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

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

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

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

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

42. Зчитуваний комп'ютером запам'ятовуючий носій за пунктом 36, в якому таблиця фільтрів містить записи, що відповідають різним комбінаціям розмірів блока і режимів кодування, і при цьому кожен з записів містить фільтр, вибраний з набору фільтрів.

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

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

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

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

45. Зчитуваний комп'ютером запам'ятовуючий носій за пунктом 36, в якому поточний блок містить блок прогнозування, закодований згідно з внутрішнім прогнозуванням на короткі відстані (SDIP).

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

визначити розмірність, асоційовану з поточним блоком; і

визначити розмір блока на основі цієї розмірності, використовуючи набір правил визначення розмірності.

Текст

Реферат: Дане рішення стосується способів для зменшення кількості додаткових даних, закодованих з блоком, закодованим, використовуючи кодування з внутрішнім прогнозуванням. Зокрема, способи забезпечують пристрій і способи застосування фільтра згладжування до вибірок прогнозування, що використовуються при кодуванні з внутрішнім прогнозуванням. Наприклад, у фіксованому, залежному від режиму, кодуванні з внутрішнім прогнозуванням відеокодер може визначити тип фільтра згладжування, застосованого до вибірок прогнозування, на основі комбінації розміру блока і режиму з внутрішнім прогнозуванням, асоційованої з поточним UA 106936 C2 (12) UA 106936 C2 блоком, де комбінація використана для пошуку фільтра в першій таблиці фільтрів. В адаптивному, залежному від режиму, кодуванні з внутрішнім прогнозуванням кодер використовує два фільтри, один з першої таблиці фільтрів і інший з другої таблиці фільтрів, застосовує обидва фільтри і визначає, який призводить до кращих результатів. Коли фільтр другої таблиці фільтрів призводить до кращих результатів, кодер кодує індикацію фільтрування. Коли використаний фільтр з першої таблиці фільтрів, ніяка індикація фільтрування не кодується. UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 60 ГАЛУЗЬ ТЕХНІКИ Дане розкриття належить до кодування відео і, більш конкретно, до кодування відео з внутрішнім прогнозуванням. ПОПЕРЕДНІЙ РІВЕНЬ ТЕХНІКИ Можливості цифрового відео можуть бути включені в широкий діапазон пристроїв, що включають в себе цифрові телевізори, цифрові системи прямого мовлення, системи бездротового мовлення, персональні цифрові асистенти (асистенти PDA), ноутбук або настільні комп'ютери, цифрові фотокамери, цифрові записуючі пристрої, цифрові медіа плеєри, відеоігрові пристрої, відеоігрові консолі, стільникові або супутникові радіотелефони, відеопристрої організації телеконференцій тощо. Цифрові відеопристрої реалізовують способи стиснення відео, такі як способи, описані в стандартах, визначених за допомогою MPEG-2, MPEG-4, ITU-T H.263 або ITU-T H.264/MPEG-4, Частина 10, вдосконалене кодування відео (AVC) і розширення таких стандартів, щоб більш ефективно передавати і приймати цифрову відеоінформацію. Нові стандарти відео, такі як стандарт кодування відео з високою ефективністю (HEVC), розвинений за допомогою "Joint Collaboration Team - Video Coding" (JCTVC), яка є співпрацею між MPEG та ITU-T, продовжують з'являтися і розвиватися. Цей новий стандарт HEVC також іноді називається H.265. Способи стиснення відео виконують просторове прогнозування і/або часове прогнозування, щоб зменшити або видалити надмірність, характерну для відеопослідовностей. Для основаного на блоці кодування відеокадр або вирізка відео можуть бути розділені на блоки, які називаються блоком кодування (блоками CU). В цілому, CU має аналогічне призначення для макроблока стандарту H.264, за винятком того, що CU не має відмінності в розмірах. Блоки CU в кадрі або вирізці з внутрішнім кодуванням (I) кодуються, використовуючи просторове прогнозування відносно сусідніх блоків CU в одному і тому самому кадрі або вирізці. Блоки CU в кадрі або вирізці із зовнішнім кодуванням (Р або В) можуть використовувати просторове прогнозування відносно сусідніх блоків CU в одному і тому самому кадрі або вирізці або часове прогнозування відносно інших опорних кадрів. СУТЬ ВИНАХОДУ В цілому, дане розкриття описує способи для застосування фільтра згладжування до пікселів, що оточують вибірки прогнозування, в кодуванні з внутрішнім прогнозуванням відеоданих. Зокрема, способи забезпечують спосіб визначення і застосування фільтра згладжування до вибірок прогнозування, що використовуються в кодуванні з внутрішнім прогнозуванням. У деяких прикладах способи можуть включати в себе вибір фільтра згладжування, щоб застосувати до пікселів, що оточують вибірки прогнозування, на основі комбінації розміру блока і режиму з внутрішнім прогнозуванням, асоційованого з поточним блоком. У фіксованому, залежному від режиму внутрішньому згладжуванні відеокодер може визначити тип фільтра згладжування, що відноситься до вибірок прогнозування, на основі комбінації розміру блока і режиму з внутрішнім прогнозуванням, асоційованого з поточним блоком. Комбінація розміру блока і режиму з внутрішнім прогнозуванням може бути використана для пошуку фільтра в таблиці фільтрів. У цьому випадку не може бути службових витрат, надісланих на декодер, щоб сигналізувати тип фільтра, що використовується для згладжування, оскільки Таблиця фільтрів буде доступна на стороні декодера, і комбінація розміру блока і режиму з внутрішнім прогнозуванням може бути використана аналогічним способом на боці декодера. В адаптивному, залежному від режиму внутрішньому згладжуванні відеокодер може вибрати фільтр згладжування з двох опцій фільтра, один з першої таблиці фільтрів, і інший з другої таблиці фільтрів, застосувати обидва фільтри і визначити, який призводить до кращих результатів. У цьому випадку синтаксис, що вказує вибраний фільтр, може бути закодований з відео і надісланий на декодер, щоб сигналізувати вибраний тип фільтра. В одному прикладі, якщо фільтр з другої таблиці фільтрів призводить до кращих результатів, відеокодер кодує індикацію фільтрування. Коли використовується фільтр з першої таблиці фільтрів, не кодується ніяка індикація фільтрування. Ці способи можуть зменшити кількість додаткових даних, закодованих з блоком, закодованим, використовуючи кодування з внутрішнім прогнозуванням, і тому кількість даних, переданих на декодер. Відеодекодер, що приймає закодовані блоки з внутрішнім прогнозуванням, може застосувати фільтр згладжування під час декодування, використовуючи першу таблицю фільтрів, якщо індикація фільтрування не закодована з блоком. Якщо індикація фільтрування закодована з блоком, то відеодекодер може застосувати фільтр згладжування під час декодування, використовуючи фільтр, який вказаний індикацією фільтрування. 1 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 В одному прикладі дане розкриття направлене на спосіб, що містить визначення розміру блока, асоційованого з поточним блоком відеоданих, визначення режиму кодування з внутрішнім прогнозуванням, асоційованого з поточним блоком, вибір фільтра з таблиці фільтрів, щоб застосувати до поточного блока, на основі розміру блока і режиму кодування, і кодування з внутрішнім прогнозуванням поточного блока, використовуючи вибраний фільтр. В іншому прикладі дане розкриття направлене на пристрій для кодування відеоданих, причому пристрій містить процесор, сконфігурований для визначення розміру блока, асоційованого з поточним блоком відеоданих, визначення режиму кодування з внутрішнім прогнозуванням, асоційованого з поточним блоком, вибору фільтра з таблиці фільтрів, щоб застосувати до поточного блока, на основі розміру блока і режиму кодування, і кодування з внутрішнім прогнозуванням поточного блока, використовуючи вибраний фільтр. В іншому прикладі дане розкриття направлене на пристрій для кодування відеоданих, причому пристрій містить засіб для визначення розміру блока, асоційованого з поточним блоком відеоданих, засіб для визначення режиму кодування з внутрішнім прогнозуванням, асоційованого з поточним блоком, засіб для вибору фільтра з таблиці фільтрів, щоб застосувати до поточного блока, на основі розміру блока і режиму кодування, і засіб для кодування з внутрішнім прогнозуванням поточного блока, використовуючи вибраний фільтр. У додатковому прикладі дане розкриття направлене на запам'ятовуючий зчитуваний комп’ютером носій, що містить команди для кодування відеоданих, які після виконання в процесорі змушують процесор визначити розмір блока, асоційований з поточним блоком відеоданих, визначити режим кодування з внутрішнім прогнозуванням, асоційований з поточним блоком, вибрати фільтр з таблиці фільтрів, щоб застосувати до поточного блока, на основі розміру блока і режиму кодування, і кодувати з внутрішнім прогнозуванням поточний блок, використовуючи вибраний фільтр. КОРОТКИЙ ОПИС КРЕСЛЕНЬ Фіг. 1 є блок-схемою, що ілюструє зразкову систему кодування і декодування відео, яка може використовувати способи даного розкриття, щоб підтримувати внутрішнє згладжування. Фіг. 2A є концептуальною діаграмою, що ілюструє графік, який зображає зразковий набір напрямків прогнозування, асоційованих з різними режимами з внутрішнім прогнозуванням. Фіг. 2B є концептуальною діаграмою, що ілюструє інший графік, який зображає зразковий набір напрямків прогнозування, асоційованих з різними режимами з внутрішнім прогнозуванням. Фіг. 3 є концептуальною діаграмою, що ілюструє зразковий набір напрямків прогнозування, асоційованих з різними режимами з внутрішнім прогнозуванням. Фіг. 4 є блок-схемою, що ілюструє приклад відеокодера, який може реалізувати способи, щоб підтримувати внутрішнє згладжування. Фіг. 5 є блок-схемою, що ілюструє приклад відеодекодера, який декодує закодовану відеопослідовність. Фіг. 6 є послідовністю операцій, що ілюструє зразковий спосіб для кодування відеоданих відповідно до способів даного розкриття. Фіг. 7 є послідовністю операцій, що ілюструє зразковий спосіб для декодування відеоданих відповідно до способів даного розкриття. Фіг. 8 є послідовністю операцій, що ілюструє інший зразковий спосіб для кодування відеоданих відповідно до способів даного розкриття. Фіг. 9 є послідовністю операцій, що ілюструє інший зразковий спосіб для декодування відеоданих відповідно до способів даного розкриття. ДОКЛАДНИЙ ОПИС В цілому, дане розкриття описує способи для визначення і застосування фільтра згладжування до пікселів, що оточують вибірки прогнозування, які використовуються в кодуванні з внутрішнім прогнозуванням відеоданих. Способи можуть включати в себе визначення, чи застосувати фільтр згладжування до поточного блока відеоданих, який кодується. Наприклад, визначення, чи застосувати фільтр згладжування, може бути основане на розмірі поточного закодованого блока і режимі кодування, асоційованого з поточним блоком. Режим кодування поточного блока може бути оснований на напрямку, асоційованому з кодуванням з внутрішнім прогнозуванням поточного блока, або напрямку поточного блока відносно блока, від якого передбачений поточний блок. Таблиці рішень фільтрування можуть бути згенеровані і використані для прийняття рішень відносно того, чи застосувати фільтрування з внутрішнім згладжуванням до поточного блока, і/або тип фільтра з внутрішнім згладжуванням, щоб застосувати до поточного блока. Тому рішення фільтрування може бути функцією розміру блока і режиму з внутрішнім прогнозуванням, асоційованого з поточним блоком. 2 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 60 У відеокодуванні прогнозування може бути використане для підвищення ефективності та зменшення кількості закодованих відеоданих, і, отже, кількості відеоданих, переданих або збережених для подальшого витягання і відображення. У сучасних системах кодування відео часто використовуються два типи прогнозування: зовнішнє прогнозування і внутрішнє прогнозування. При зовнішньому прогнозуванні поточний відеоблок прогнозується з відеоблока в іншому кадрі у відеопослідовності. При внутрішньому прогнозуванні поточний відеоблок прогнозується з відеоблока в одному і тому самому кадрі. Як зазначено вище, кодування з внутрішнім прогнозуванням включає кодування пікселів поточного блока кадру відносно пікселів раніше закодованих блоків одного і того самого кадру за допомогою виконання направленої екстраполяції пікселів, що оточують поточний блок. У цьому способі оточуючі пікселі використовуються як вибірки прогнозування, щоб сформувати пікселі для поточного блока. В цілому, пікселі використовуються для формування поточного блока вздовж вказаного напрямку. Коли розмір поточного блока збільшується, може бути погіршена точність прогнозування пікселів поточного блока, які знаходяться далі від вибірок прогнозування. Щоб подолати погіршення кодування з внутрішнім прогнозуванням, застосовується згладжування до оточуючих вибірок прогнозування. Процес кодування відео може застосувати фільтр згладжування до пікселів прогнозування, виконати і порівняти прогнозування, використовуючи як фільтровані, так і нефільтровані пікселі, і визначити і сигналізувати, чи використовувати фільтровані або нефільтровані пікселі на основі результату порівняння. Використання цього способу, який може називатися адаптивним внутрішнім згладжуванням (AIS), призводить до підвищення складності кодера, оскільки це вимагає застосування фільтра згладжування до кожного блока і порівняння результату з нефільтрованим блоком. Крім того, використання цього способу, який явно сигналізує, чи повинен бути застосований конкретний фільтр згладжування, додається до інформації службових витрат, асоційованої з кожним блоком кодування. Додатково, статистичне кодування і декодування даних AIS (наприклад, сигнал, фільтр згладжування тощо) додають складності до процесу кодування і декодування. Інший спосіб виконання AIS полягає в тому, щоб використовувати таблицю індикатора фільтрів у кодері і декодері, де значення індикатора залежить від розміру блока і режиму з внутрішнім прогнозуванням, який вказує напрямок прогнозування. Таблиця може бути згенерована під час стадії конструювання, таким чином, уникаючи підвищення обчислювальної складності кодера, оскільки рішення відносно того, чи фільтровані пікселі, не виконується під час процесу кодування. Однак деякі зміни у відеокодері/декодері можуть вимагати генерування нової таблиці, щоб замінити поточну таблицю. Способи даного розкриття пропонують спрощену схему AIS або залежне від режиму внутрішнє згладжування (MDIS), яке основане на правилі, де правила відносно того, чи застосувати фільтр згладжування, основані на розмірі поточного блока і режимі прогнозування, або напрямку. MDIS може упорядкувати режими прогнозування в ієрархії, яка може бути відображена в різні розміри блока, де для збільшення розмірів блока фільтруються більше режимів, згідно з цією ієрархією. У деяких прикладах визначення, чи застосувати фільтр згладжування, може додатково відрізнятися між великими блоками і меншими блоками, де спосіб визначення, чи застосувати фільтр згладжування, може змінюватися на основі розміру блока. Додатково, для деяких відеопослідовностей, наприклад, таких з направленою структурою, застосування фільтра згладжування може не забезпечити практично ніякої вигоди. Способи даного розкриття можуть також змушувати визначення фільтра згладжування вирішити ці питання. Інформація внутрішнього прогнозування і фільтра згладжування може бути закодована в заголовках відповідних блоків і декодована відеодекодером, щоб застосувати відповідний фільтр згладжування під час декодування. Фіг. 1 є блок-схемою, що ілюструє зразкову систему 10 кодування і декодування відео, яка може використовувати способи даного розкриття, щоб застосувати фільтр згладжування під час кодування з внутрішнім прогнозуванням. Як показано на Фіг. 1, система 10 включає в себе вихідний пристрій 12, який передає закодоване відео на приймальний пристрій 14 через канал 16 зв'язку. Вихідний пристрій 12 і приймальний пристрій 14 можуть містити будь-який з широкого діапазону пристроїв. У деяких прикладах вихідний пристрій 12 і приймальний пристрій 14 можуть містити пристрої бездротового зв’язку, такі як бездротові телефонні трубки, так звані стільникові або супутникові радіотелефони, або будь-які бездротові пристрої, які можуть передавати відеоінформацію через канал 16 зв'язку, коли канал 16 зв'язку є бездротовим. Однак способи даного розкриття, які в цілому відносяться до способів для кодування з внутрішнім прогнозуванням, необов'язково обмежені бездротовими додатками або параметрами настройки. Наприклад, ці способи також можуть бути використані в широкому 3 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 60 діапазоні інших параметрів настройки і пристроїв, що включають в себе пристрої, які зв'язуються за допомогою фізичних проводів, оптичних волокон або інших фізичних або бездротових носіїв, можуть відноситися до телевізійних мовлень через повітрю, кабельні телепередачі, супутникові телепередачі, передачі відео через Інтернет, закодоване цифрове відео, яке закодоване на носій даних, або інші сценарії. Наприклад, закодоване відео може бути збережене на пристрої зберігання для подальшого витягання, декодування і відображення за допомогою приймального пристрою 14. Додатково, способи кодування або декодування також можуть застосовуватися в автономному пристрої, який необов'язково зв'язується з будь-яким іншим пристроєм. Відповідно, канал 16 зв'язку може містити будь-яку комбінацію бездротових або дротових носіїв, підходящих для передачі закодованих відеоданих, або інших запам'ятовуючих носіїв, і пристрої 12, 14 можуть містити будь-який з множини дротових або бездротових пристроїв зберігання даних, таких як мобільні телефони, смартфони, цифрові медіа- плеєри, телевізійні приставки, телевізори, дисплеї, настільні комп'ютери, портативні комп'ютери, комп'ютерні планшети, ігрові консолі, портативні ігрові пристрої або подібне. У прикладі на Фіг. 1 вихідний пристрій 12 включає в себе джерело 18 відео, відеокодер 20, модулятор/демодулятор (модем) 22 і передавач 24. Приймальний пристрій 14 включає в себе приймач 26, модем 28, відеодекодер 30 і пристрій 32 відображення. В інших прикладах вихідний пристрій і приймальний пристрій можуть включати в себе інші компоненти або компонування. Наприклад, вихідний пристрій 12 може приймати відеодані від зовнішнього джерела 18 відео, такого як зовнішня камера, архів зберігання відео, джерело комп'ютерної графіки або подібне. Аналогічно, приймальний пристрій 14 може зв'язуватися із зовнішнім пристроєм відображення замість включення інтегрованого пристрою відображення. Ілюстрована система 10 на Фіг. 1 є просто одним прикладом. Способи для застосування фільтра згладжування в кодуванні з внутрішнім прогнозуванням можуть бути виконані будь-яким цифровим пристроєм кодування і/або декодування відео. Хоча в цілому способи даного розкриття виконуються пристроєм кодування відео, способи також можуть бути виконані відеокодером/декодером, який звичайно називається "кодеком". Крім того, способи даного розкриття також можуть бути виконані процесором попередньої обробки відео. Вихідний пристрій 12 і приймальний пристрій 14 є просто прикладами таких пристроїв кодування, в яких вихідний пристрій 12 генерує закодовані відеодані для передачі на приймальний пристрій 14. У деяких прикладах пристрою 12, 14 можуть працювати по суті симетричним способом таким чином, щоб кожний з пристроїв 12, 14 включав в себе компоненти кодування і декодування відео. Отже, система 10 може підтримувати одно- або двосторонню передачу відео між відеопристроями 12, 14, наприклад, для потокової передачі відео, відтворення відео, мовлення відео або відеотелефонії. Джерело 18 відеовихідного пристрою 12 може включати в себе пристрій захоплення відео, такий як відеокамера, відеоархів, що містить раніше захоплене відео, і/або зовнішній відеосигнал від постачальника відеоконтенту. Як додаткова альтернатива, джерело 18 відео може генерувати основані на комп'ютерних графічних пристроях дані, такі як вихідне відео або комбінація "живого" відео, архівованого відео і згенерованого машиною відео. У деяких випадках, якщо джерело 18 відео є відеокамерою, вихідний пристрій 12 і приймальний пристрій 14 можуть формувати так звані камерофони або відеофони. Однак, як згадано вище, способи, описані в даному розкритті, можуть застосовуватися до кодування відео в цілому і можуть застосовуватися до бездротових і/або дротових додатків. У кожному випадку захоплене, заздалегідь захоплене або згенероване машиною відео може бути закодоване відеокодером 20. Закодована відеоінформація потім може модулюватися модемом 22 згідно зі стандартом зв'язку і передаватися на приймальний пристрій 14 за допомогою передавача 24. Модем 22 може включати в себе різні змішувачі, фільтри, підсилювачі або інші компоненти, сконструйовані для модуляції сигналу. Передавач 24 може включати в себе схеми, сконструйовані для передачі даних, що включають в себе підсилювачі, фільтри і одну або більше антен. Приймач 26 приймального пристрою 14 приймає інформацію через канал 16, і модем 28 демодулює цю інформацію. Знову, процес кодування відео може реалізувати один або більше способів, описаних в даному описі, щоб застосувати фільтр згладжування під час кодування з внутрішнім прогнозуванням поточного блока. Інформація, передана через канал 16, може включати в себе інформацію синтаксису, визначену відеокодером 20, яка також використовується відеодекодером 30, який включає в себе елементи синтаксису, які описують характеристики і/або обробку блоків прогнозування (блоків PU), блоків кодування (блоків CU) або інших блоків закодованого відео, наприклад, відеовирізок, відеокадрів і відеопослідовностей або груп картинок (картинок GOP). Пристрій 32 відображення відображає декодовані відеодані користувачу і може містити будь-яку множину пристроїв відображення, 4 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 таких як електронно-променева трубка (CRT), рідкокристалічний дисплей (LCD), плазмовий дисплей, дисплей на органічних світлодіодах (OLED) або інший тип пристрою відображення. У прикладі на Фіг. 1 канал 16 зв'язку може містити будь-який дротовий або бездротвоий комунікаційний носій, такий як радіочастотний (RF, РЧ) спектр або одна або більше фізичних ліній передачі, або будь-яка комбінація бездротових або дротових носіїв. Канал 16 зв'язку може бути частиною мережі пакетної передачі, такою як локальна мережа, широкомасштабна мережа або глобальна мережа, така як Інтернет. Канал 16 зв'язку в цілому представляє будь-який підходящий комунікаційний носій або колекцію різних комунікаційних носіїв для передачі відеоданих від вихідного пристрою 12 на приймальний пристрій 14, включаючи будь-яку підходящу комбінацію дротових або бездротових носіїв. Канал 16 зв'язку може включати в себе маршрутизатори, перемикачі, базові станції або будь-яке інше обладнання, яке може бути використане для полегшення зв'язку від вихідного пристрою 12 до приймального пристрою 14. Відеокодер 20 і відеодекодер 30 можуть працювати згідно зі стандартом стиснення відео, таким як стандарт кодування відео з високою ефективністю (HEVC), що з'являється, або стандарт ITU-T H.264, альтернативно названий MPEG-4, Частина 10, вдосконалене кодування відео (AVC). Однак способи даного розкриття не обмежені ніяким конкретним стандартом кодування. Інші приклади включають в себе MPEG-2 та ITU-T H.263. Хоча не показано на Фіг. 1, в деяких аспектах відеокодер 20 і відеодекодер 30 можуть інтегруватися з аудіо кодером і декодером і можуть включати в себе відповідні блоки MUX-DEMUX (мультиплексордемультиплексор), або інше апаратне забезпечення і програмне забезпечення, що виконати кодування як аудіо, так і відео в загальному потоці даних або окремих потоках даних. При необхідності, блоки MUX-DEMUX можуть бути пристосовані до протоколу мультиплексора ITU H.223 або інших протоколів, таких як протокол дейтаграм користувача (UDP). Стандарт ITU-T H.264/MPEG-4 (AVC) був сформульований групою експертів з кодування відео ITU-T (VCEG) разом з групою експертів з рухомих зображень ISO/IEC (MPEG) як продукт колективного товариства, відомого як об'єднана команда відео (JVT). У деяких аспектах способи, описані в даному розкритті, можуть застосовуватися до пристроїв, які в цілому відповідають стандарту H.264. Стандарт H.264 описаний в рекомендації H.264 ITU-T, Вдосконалене Кодування Відео для звичайних аудіовізуальних послуг, за допомогою групи з вивчення ITU-T від березня 2005, яка в даному описі може називатися стандартом H.264 або специфікацією H.264, або стандартом H.264/AVC або специфікацією. Об'єднана команда відео (JVT) продовжує працювати над розширеннями до H.264/AVC і розвивати нові стандарти, наприклад, для HEVC. Зусилля зі стандартизації HEVC основані на моделі пристрою кодування відео, названою випробувальною моделлю HEVC (HM). HM передбачає декілька додаткових можливостей пристрою кодування відео відносно існуючих пристроїв згідно з, наприклад, ITU-T H.264/AVC. Наприклад, тоді як H.264 забезпечує дев'ять режимів кодування з внутрішнім прогнозуванням, HM забезпечує цілих тридцять п'ять режимів кодування з внутрішнім прогнозуванням. HM відноситься до блока відеоданих як блок кодування (CU). Дані синтаксису в межах бітового потоку можуть визначити найбільший блок кодування (LCU), який є найбільшим блоком кодування відносно кількості пікселів. В цілому, CU має аналогічне призначення для макроблока стандарту H.264, за винятком того, що CU не має відмінності в розмірах. Таким чином, CU може бути розбитий на під-блоки CU. В цілому, посилання в даному розкритті на CU можуть відноситися до найбільшого блока кодування картинки або під-CU в LCU. LCU може бути розбитий на під-блоки CU, і кожний під-CU може бути додатково розбитий на під-блоки CU. Дані синтаксису для бітового потоку можуть визначити максимальну кількість разів, скільки LCU може бути розбитий, що називається, глибиною CU. Відповідно, бітовий потік може також визначити найменший блок кодування (SCU). Дане розкриття також використовує термін "блок" для посилання на будь-який з: CU, PU або TU. Крім того, коли дане розкриття відноситься до прикладів, що включають блок кодування або CU, повинне бути зрозуміло, що інші приклади можуть бути забезпечені відносно макроблоків, замінених блоками кодування. LCU може бути асоційований зі структурою даних квадродерева. В цілому, структура даних квадродерева включає в себе один вузол для кожного CU, де кореневий вузол відповідає LCU. Якщо CU розбитий на чотири під-блоки CU, вузол, що відповідає CU, включає в себе чотири кінцевих вузли, кожний з яких відповідає одному з під-блоків CU. Кожний вузол структури даних квадродерева може видати дані синтаксису для відповідного CU. Наприклад, вузол в квадродереві може включати в себе прапор розбиття, який вказує, чи розбитий CU, що відповідає вузлу, на під-блоки CU. Елементи синтаксису для CU можуть бути визначені рекурсивно і можуть залежати від того, чи розбитий CU на під-блоки CU. 5 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 60 CU, який не розбитий (наприклад, відповідний кінцевому вузлу в структурі даних квадродерева), може включати в себе один або більше блоків прогнозування (блоків PU). В цілому, PU представляє все або частину з відповідного CU і включає в себе дані для витягання опорної вибірки для PU. Наприклад, коли PU закодований з внутрішнім режимом, PU може включати в себе дані, що описують режим з внутрішнім прогнозуванням для PU. Дані, що описують режим з внутрішнім прогнозуванням, можуть визначити, наприклад, напрямок, асоційований з режимом з внутрішнім прогнозуванням для PU (компоненти яскравості і насиченості кольору), і розмір блока, асоційований з PU. Як інший приклад, коли PU закодований із зовнішнім режимом, PU може включати в себе дані, що визначають вектор руху для PU. Дані, що визначають вектор руху, можуть описати, наприклад, горизонтальний компонент вектора руху, вертикальний компонент вектора руху, розрізнення для вектора руху (наприклад, точність в одну чверть пікселя або точність в одну восьму пікселя), опорний кадр, до якого направлений вектор руху, і/або список опорних кадрів (наприклад, список 0 або список 1) для вектора руху і індекс прогнозувальника вектора напрямку. Дані для CU, що визначає PU (блоки PU), можуть також описати, наприклад, розділення CU на один або більше блоків PU. Режими розділення можуть відрізнятися між: чи є CU незакодованим, закодованим в режимі з внутрішнім прогнозуванням або закодованим в режимі із зовнішнім прогнозуванням. CU, що має один або більше блоків PU, може також включати в себе один або більше блоків перетворення (блоки TU). Після прогнозування, використовуючи PU, відеокодер може обчислити залишкове значення для частини CU, що відповідає PU. Залишкове значення відповідає значенням різниці пікселів, які можуть бути перетворені в коефіцієнти перетворення, квантовані і скановані, щоб сформувати впорядковані коефіцієнти перетворення для статистичного кодування. Розмір TU необов'язково обмежений розміром PU. Зокрема, блоки TU можуть бути того самого розміру або менше, ніж відповідні блоки PU для CU. У деяких прикладах максимальним розміром TU може бути розмір відповідного CU. В цілому, блоки TU можуть містити структури даних, які включають в себе залишкові коефіцієнти перетворення, асоційованих із заданим CU. Відеокодер 20 і відеодекодер 30 можуть бути реалізовані як будь-яка з множини підходящих схем кодера, наприклад, одного або більше мікропроцесорів, цифрових сигнальних процесорів (процесорів DSP), спеціалізованих інтегральних схем (схем ASIC), програмованих користувачем вентильних матриць (матриць FPGA), дискретної логіки, програмного забезпечення, апаратного забезпечення, програмно-апаратного забезпечення або будь-якої їх комбінації. Кожний відеокодер 20 і відеодекодер 30 може бути включений в один або більше кодерів або декодерів, будь-який з яких може інтегруватися як частина об'єднаного кодера/декодера (кодека) у відповідній камері, комп'ютері, мобільному пристрої, пристрої абонента, пристрої мовлення, телевізійній приставці, сервері або подібному. Відеопослідовність звичайно включає в себе послідовність відеокадрів. Група картинок (GOP), в цілому, містить послідовність з одного або більше відеокадрів. GOP може включати дані синтаксису в заголовок GOP, заголовок одного або більше кадрів GOP або в інше місце, яке описує ряд кадрів, включених в GOP. Кожний кадр може включати в себе дані синтаксису кадру, які описують режим кодування для відповідного кадру. Відеокодер 20 звичайно оперує над відеоблоками в межах індивідуальних відеокадрів, щоб закодувати відеодані. Відеоблок може відповідати блоку кодування (CU) або блоку розділення (PU) CU. Відеоблоки можуть мати фіксовані або змінні розміри і можуть відрізнятися за розміром згідно з вказаним стандартом кодування. Кожний кадр відео може включати в себе множину вирізок. Кожна вирізка може включати в себе множину блоків CU, які можуть включати в себе один або більше блоків PU. Як приклад випробувальна модель HEVC (HM) підтримує прогнозування в CU різних розмірів. Розмір LCU може бути визначений інформацією синтаксису. Припустимо, що розмір конкретного CU становить 2N2N, HM підтримує внутрішнє прогнозування в розмірах 2N2N або NN і зовнішнє прогнозування в симетричних розмірах 2N2N, 2NN, N2N або NN. HM також підтримує асиметричне розбиття для зовнішнього прогнозування 2NnU, 2NnD, nL2N та nR2N. При асиметричному розбитті один напрямок CU не розділений, в той час як інший напрямок розділений на 25% та 75%. Фрагмент CU, що відповідає 25%-ому розбиттю, вказаний за допомогою "n", що супроводжується індикацією "Верхній", "Нижній", "Лівий" або "Правий". Таким чином, наприклад, "2NnU" відноситься до CU 2N2N, який розділений горизонтально з PU 2N0.5N зверху і PU 2N1.5N знизу. У даному розкритті "NN" та "N на N" можуть бути використані взаємозамінно, щоб відноситися до піксельної розмірності відеоблока (наприклад, CU, PU або TU) відносно вертикальної і горизонтальної розмірності, наприклад, 1616 пікселів або 16 на 16 пікселів. В цілому, блок 1616 буде мати 16 пікселів у вертикальному напрямку (у=16) і 16 пікселів в 6 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 60 горизонтальному напрямку (х=16). Аналогічно, блок NN, в цілому, має N пікселів у вертикальному напрямку і N пікселів у горизонтальному напрямку, де N представляє ненегативне ціле значення. Пікселі в блоці можуть бути скомпоновані в рядах і колонках. Крім того, блоки необов'язково повинні мати ту саму кількість пікселів в горизонтальному напрямку, як у вертикальному напрямку. Наприклад, блоки можуть містити NM пікселів, де М необов'язково рівне N. Як зазначено вище, CU може бути закодований, використовуючи кодування із зовнішнім прогнозуванням або кодування з внутрішнім прогнозуванням. При внутрішньому прогнозуванні поточний блок може бути передбачений відносно блока в тому самому кадрі, який був вже закодований. Звичайно блоки кадру кодуються зліва направо і зверху вниз або в деяких прикладах в порядку сканування у вигляді букви "z". Тому поточний блок може бути передбачений відносно блоків десь вище його або наліво від поточного блока. Розміри блока при кодуванні з внутрішнім прогнозуванням можуть змінюватися від відносно невеликого розміру, наприклад, 22, до відносно великого розміру, наприклад, 128128. Напрямок прогнозування або напрямок від вже закодованого блока до поточного блока може визначити режим з внутрішнім прогнозуванням. НМ передбачає до 34 режимів, які включають в себе 33 різних режимів напрямку з внутрішнім прогнозуванням, що відповідають напрямку екстраполяції і одному режиму DC. Кожний з 33 режимів напрямку з внутрішнім прогнозуванням відповідає куту між 0 та 180 (або між 45 та -135 градусами від горизонтальної лінії, рухаючись за годинниковою стрілкою, в прикладі на Фіг. 2A), з кутовим розрізненням близько 5,625, яке вказує напрямком екстраполяції пікселів від блока, що використовується для прогнозування пікселів поточного блока. Ненаправлений режим (позначений режимом 2) відповідає DC, де формування вибірок сусідніх пікселів використовується для прогнозування пікселів поточного блока. У деяких прикладах НМ може забезпечити 35-ий режим (режим 34), що відповідає плоскому режиму, де значення пікселів можуть бути пристосовані, використовуючи функцію градієнта, розглянуту більш детально нижче. Під час кодування з внутрішнім прогнозуванням на якість точності прогнозування може бути наданий вплив і погіршено. Наприклад, коли розмір PU збільшується, може бути погіршена точність прогнозування пікселів далі від пікселів прогнозувальника. Погіршення точності прогнозування може призвести до більшої кількості залишкових даних, що може призвести до більшої кількості даних, які повинні бути закодовані, передані або збережені. Фільтр згладжування може бути застосований до пікселів прогнозувальника, що використовуються для прогнозування блока, щоб підвищити точність прогнозування. У деяких випадках, однак, кращі результати досягаються без використання фільтра згладжування. Як зазначено вище, сучасні стандарти використовують способи адаптивного внутрішнього згладжування (AIS). Способи даного розкриття пропонують спрощену схему AIS, яка основана на правилі, де правила відносно того, чи застосувати фільтр згладжування, головним чином основані на розмірі поточного блока і режимі прогнозування або напрямку. У НМ розміри блока змінюються від невеликого розміру, наприклад, 22, до такого великого розміру, як 128128, наприклад. Режими з внутрішнім прогнозуванням, доступні для кожного блока, можуть змінюватися на основі розміру, який пояснений більш детально нижче. Для кожного розміру блока може бути необхідний фільтр згладжування, коли прогнозування застосовується в деяких напрямках, але не інших напрямках, де напрямки відповідають різним режимам з внутрішнім прогнозуванням. В одному прикладі комбінації розмірів і режимів з внутрішнім прогнозуванням, для яких застосований фільтр згладжування, можуть бути заздалегідь визначені в таблиці пошуку (LUT). Тому визначення, чи застосувати фільтр згладжування, може бути загальним і залишається одним і тим самим незалежно від змін в кодері і/або декодері, і сигналізація визначення фільтрування може не бути необхідна. Додатково, виконання визначення, чи застосувати фільтр згладжування, не передбачає істотну складність кодера. У деяких прикладах визначення, чи застосувати фільтр згладжування, може додатково відрізнятися для великих блоків і менших блоків, де спосіб визначення, чи застосувати фільтр згладжування, може змінюватися на основі розміру блока. Наприклад, для деяких розмірів блока кодер може виконати прогнозування, використовуючи як фільтровані, так і нефільтровані пікселі, і порівняти результати для визначення, чи використовувати фільтр згладжування. Кодер може потім сигналізувати режим фільтрування, тобто, чи використовується фільтр згладжування при кодуванні блока. В одному прикладі може бути сигналізований режим фільтрування, якщо він відрізняється від рішення, яке буде одержане на основі LUT, тобто рішення фільтрування за умовчанням. В одному прикладі можуть бути визначені один або більше фільтрів згладжування (наприклад, фільтри-кандидати). Для кожної комбінації розмірів блока і режимів з внутрішнім 7 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 прогнозуванням Таблиця може визначити відповідний фільтр для використання. Для комбінацій, для яких не використовується ніякий фільтр згладжування, визначений фільтр може бути всепропускаючим фільтром. Первинна Таблиця може включати в себе найбільш вірогідний фільтр згладжування для кожної відповідної комбінації режиму з внутрішнім прогнозуванням і розміру блока. У деяких прикладах вторинна Таблиця (або декілька додаткових таблиць) можуть бути визначені, щоб включати в себе другий найбільш вірогідний фільтр згладжування (або декілька можливих фільтрів згладжування у випадку декількох додаткових таблиць) для кожної відповідної комбінації режиму з внутрішнім прогнозуванням і розміру блока. В одному прикладі може бути використана інформація про найбільш вірогідний фільтр згладжування, якщо не вказане інше. Інформація, асоційована з кодуванням з внутрішнім прогнозуванням (наприклад, розмір блока і режим з внутрішнім прогнозуванням), і інформація фільтра згладжування (наприклад, режим фільтрування і Таблиця(і) вірогідного фільтра згладжування) можуть бути закодовані у заголовках (або інших структурах даних, таких як примітки) відповідних блоків і декодована відеодекодером, щоб застосувати відповідний фільтр згладжування під час декодування. Після кодування з внутрішнім прогнозуванням або зовнішнім прогнозуванням, щоб сформувати прогнозуючі дані (наприклад, PU для CU), відеокодер 20 може обчислити залишкові дані, щоб сформувати один або більше блоків перетворення (блоків TU) для CU. Блоки PU в CU можуть містити дані пікселя в просторовій ділянці (яка також називається піксельною ділянкою), в той час як блоки TU в CU можуть містити коефіцієнти в перетвореній ділянці, наприклад, після застосування перетворення, такого як дискретне косинусне перетворення (DCT), цілочисельне перетворення, вейвлет-перетворення або концептуально аналогічне перетворення, до залишкових відеоданих. Залишкові дані можуть відповідати піксельним різницям між пікселями незакодованої картинки і значеннями прогнозування PU в CU. Відеокодер 20 може сформувати один або більше блоків TU, що включають в себе залишкові дані для CU. Відеокодер 20 може потім перетворити блоки TU. Після будь-яких перетворень, щоб сформувати коефіцієнти перетворення, може бути виконано квантування коефіцієнтів перетворення. Квантування в цілому відноситься до процесу, в якому квантуються коефіцієнти перетворення, щоб, можливо, зменшити кількість даних, що використовуються для представлення коефіцієнтів. Процес квантування може зменшити глибину в бітах, асоційовану з деякими або усіма коефіцієнтами. Наприклад, значення n-bit може бути округлене в меншу сторону до значення m-bit під час квантування, де n більше, ніж m. У деяких прикладах відеокодер 20 може використовувати заздалегідь заданий порядок сканування для сканування квантованих коефіцієнтів перетворення, щоб сформувати впорядкований вектор, який може бути статистично закодований. В інших прикладах відеокодер 20 може виконати адаптивне сканування. Після сканування квантованих коефіцієнтів перетворення, щоб сформувати одномірний вектор, відеокодер 20 може статистично кодувати одномірний вектор, наприклад, згідно з контекстно-адаптивним кодуванням із змінною довжиною коду (CAVLC), контекстно-адаптивним двійковим арифметичним кодуванням (CABAC), основаним на синтаксисі контекстно-адаптивним двійковим арифметичним кодуванням (SBAC) або іншим способом статистичного кодування. Блок обробки, сконфігурований для статистичного кодування, або інший блок обробки може виконати інші функції обробки, такі як кодування з нульовою довжиною серій квантованих коефіцієнтів і/або генерування інформації синтаксису, такою як значення кодованого шаблона блока (CBP), тип макроблока, режим кодування, розмір LCU або подібне. Відеодекодер 30 приймального пристрою 14 може бути сконфігурований для виконання способів, аналогічних і, в цілому, симетричних будь-яким із способів відеокодера 20 даного розкриття. Наприклад, відеодекодер 30 може прийняти статистично кодовані блоки CU відеокадру. Ці прийняті дані можуть включати в себе елементи синтаксису, що вказують, чи використовувалося кодування з внутрішнім прогнозуванням, щоб закодувати CU у відеокодері 20. Відповідно до способів даного розкриття, елементи синтаксису, асоційовані з кодуванням з внутрішнім прогнозуванням, можуть включати в себе таку інформацію як, наприклад, режим з внутрішнім прогнозуванням або напрямок прогнозування, розмір блока та іншу інформацію, асоційовану з фільтром згладжування, коли застосовно. Наприклад, відеодекодер 30 може визначити, що CU закодований, використовуючи кодування з внутрішнім прогнозуванням, і декодувати елементи синтаксису, включені в закодований CU, щоб визначити режим з внутрішнім прогнозуванням CU. Відеокодер 30 може також визначити розмір блока, що використовується при кодуванні з внутрішнім прогнозуванням, і, використовуючи інформацію 8 UA 106936 C2 5 10 15 20 25 30 35 40 про розмір блока і режим з внутрішнім прогнозуванням, відеодекодер 30 може визначити, чи застосувати фільтр згладжування до пікселів прогнозувальника при прогнозуванні блока. В одному прикладі відеодекодер 30 може визначити, чи застосувати фільтр згладжування на основі комбінації розміру блока і режиму з внутрішнім прогнозуванням, що використовується для кодування блока. Якщо не вказане інше, відеодекодер 30 може використовувати найбільш вірогідний фільтр згладжування, асоційований з комбінацією розміру блока і режиму з внутрішнім прогнозуванням. Якщо фільтр згладжування, що використовується для комбінації розміру блока і режиму з внутрішнім прогнозуванням, відрізняється від найбільш вірогідного фільтра згладжування для цієї комбінації, індикація може бути декодована відеодекодером 30 з елементів синтаксису, асоційованих з блоком, і фільтр згладжування з другого (або більше) найбільш вірогідного фільтра згладжування для цієї комбінації вибирається і використовується за допомогою відеодекодера 30. У цьому способі обсяг інформації, закодованої для вказівки, чи застосований фільтр згладжування при кодуванні з внутрішнім прогнозуванням, мінімізується і в деяких випадках усувається. Наприклад, коли рішення про застосування фільтра згладжування є найбільш вірогідним для комбінації розміру блока і режиму з внутрішнім прогнозуванням, сигналізація відносно фільтра згладжування не кодується, і відеодекодер 30 здатний зробити визначення, не запитуючи додаткової інформації, крім розміру блока і режиму з внутрішнім прогнозуванням. Відеокодер 20 і відеодекодер 30 можуть бути реалізовані як будь-яка з множини підходящих схем кодера або декодера, залежно від конкретного випадку, наприклад, одного або більше мікропроцесорів, цифрових сигнальних процесорів (процесорів DSP), спеціалізованих інтегральних схем (схем ASIC), програмованих користувачем вентильних матриць (матриць FPGA), дискретних логічних схем, програмного забезпечення, апаратного забезпечення, програмно-апаратного забезпечення або будь-якої їх комбінації. Кожний відеокодер 20 і відеодекодер 30 може бути включений в один або більше кодерів або декодерів, будь-який з яких може інтегруватися як частина об'єднаного відеокодера/декодера (кодека). Пристрій, що включає в себе відеокодер 20 і/або відеодекодер 30, може містити інтегральну схему, мікропроцесор і/або пристрій бездротового зв’язку, такий як стільниковий телефон. Фіг. 2A є концептуальною діаграмою, що ілюструє графік, який зображає зразковий набір напрямків прогнозування, асоційованих з різними режимами з внутрішнім прогнозуванням. Як зазначено вище, НМ забезпечує не менше тридцяти трьох направлених режимів кодування з внутрішнім прогнозуванням. Кодер HM (наприклад, відеокодер 20) може бути сконфігурований таким чином, щоб доступний набір режимів з внутрішнім прогнозуванням для блока міг залежати від розміру блока або PU. Таким чином, розмір блока може визначити кількість режимів з внутрішнім прогнозуванням, доступних для блока, з яких кодер може вибрати режим з внутрішнім прогнозуванням, щоб прогнозувати блок. ТАБЛИЦЯ 1, представлена нижче, ілюструє один приклад відповідності між розмірами блока і режимами з внутрішнім прогнозуванням, доступними для блоків цього розміру. Напрямки, асоційовані з режимами з внутрішнім прогнозуванням, ілюстровані на Фіг. 3. Режим 2, не показаний на Фіг. 3, відповідає режиму DC, де формування вибірок сусідніх пікселів використовується для прогнозування пікселів поточного блока. ТАБЛИЦЯ 1 PU або розмір блока 22 44 88 1616 3232 6464 128128 45 Режим з внутрішнім прогнозуванням 0~3 0~16 0~33 0~33 0~33 0~5 0~5 У прикладі на Фіг. 2A блок 106 (позначений пунктирною лінією) може бути прогнозований із сусідніх пікселів 100A-100AG (сусідніх пікселів 100) залежно від вибраного режиму з внутрішнім прогнозуванням. Стрілки 102A-102AG (стрілки 102) представляють напрямки або кути, асоційовані з різними режимами з внутрішнім прогнозуванням. Приклад на Фіг. 2A представляє режими з внутрішнім прогнозуванням, забезпечені за допомогою НМ. Однак в інших прикладах може бути забезпечено більше або менше режимів з внутрішнім прогнозуванням. Хоча 9 UA 106936 C2 5 10 15 20 25 прикладом блока 106 є блок пікселів 88, в цілому, блок може мати будь-яку кількість пікселів, наприклад, 44, 88, 1616, 3232, 6464, 128128 тощо. Хоча прикладом блока 106 є квадрат, способи даного розкриття можуть також застосовуватися до інших розмірів блока, наприклад, блоків NM, де N необов'язково рівне М. Режим з внутрішнім прогнозуванням може бути визначений згідно з кутом напрямку прогнозування відносно, наприклад, горизонтальної осі, яка перпендикулярна вертикальним бокам блока 106. Таким чином, кожна зі стрілок 102 може представляти конкретний кут напрямку прогнозування відповідного режиму з внутрішнім прогнозуванням. У деяких прикладах режим напрямку з внутрішнім прогнозуванням може бути визначений парою цілих чисел (dx, dy), яка може представляти напрямок, який використовує відповідний режим з внутрішнім прогнозуванням для екстраполяції пікселя контексту. Таким чином, кут режиму з внутрішнім прогнозуванням може бути обчислений як dy/dx. Іншими словами, кут може бути представлений згідно з горизонтальним зміщенням dx і вертикальним зміщенням dy. Піксельне значення в місцеположенні (х, у) в блоці 106 може бути визначене з одного або більше сусідніх пікселів 100, через які проходить лінія, яка також проходить через місцеположення (х, у) з кутом dy/dx. Фіг. 2B є концептуальною діаграмою, що ілюструє графік, який зображає інший зразковий набір напрямків прогнозування, асоційованих з різними режимами з внутрішнім прогнозуванням. У прикладі на Фіг. 2B показані тридцять три направлених режими кодування з внутрішнім прогнозуванням, аналогічні режимам на Фіг. 2A. В цьому прикладі, додатково до 33 направлених режимів, є два додаткових режими: режим 2, що відповідає режиму DC, і режим 34, що відповідає плоскому режиму. У прикладі на Фіг. 2B кодер і/або декодер можуть бути сконфігуровані таким чином, щоб доступний набір режимів з внутрішнім прогнозуванням для блока міг залежати від розміру блока, наприклад, PU, CU або TU. Таким чином, розмір блока може визначити кількість режимів з внутрішнім прогнозуванням, доступних для блока, з яких кодер може вибрати режим з внутрішнім прогнозуванням, щоб прогнозувати блок. ТАБЛИЦЯ 2, представлена нижче, ілюструє інший приклад відповідності між розмірами блока і режимами з внутрішнім прогнозуванням, доступними для блоків цього розміру. ТАБЛИЦЯ 2 PU або розмір блока 44 88 1616 3232 6464 Режим з внутрішнім прогнозуванням 0~16, 34 0~34 0~34 0~34 0~2,34 30 35 40 45 50 Фіг. 3 є концептуальною діаграмою, що ілюструє зразковий набір напрямків прогнозування, асоційованих з різними режимами з внутрішнім прогнозуванням. Кожний з 33 направлених режимів з внутрішнім прогнозуванням, забезпечених за допомогою НМ, відповідає напрямку з вказаним кутом. Наприклад, режим 1 відповідає горизонтальному напрямку екстраполяції або під кутом 0 від горизонтальної лінії, де блок, закодований, використовуючи режим 1, прогнозований з пікселів, направлених до його лівого боку. Як інший приклад, режим 0 відповідає вертикальному напрямку екстраполяції або під кутом 90 від горизонтальної лінії, де блок, закодований, використовуючи режим 0, прогнозований з пікселів безпосередньо вище його. Як інший приклад, режими 3, 6 і 9 відповідають діагональному напрямку екстраполяції при кутовому розрізненні 45°. Режими 0, 1 та 3-33 відповідають напрямкам прогнозування, які охоплюють 180 (між режимами 6 та 9) з кутовим розрізненням близько 5,625. Режим 2 в прикладі НМ відповідає режиму DC, де використовується формування вибірок з восьми сусідніх пікселів, щоб прогнозувати пікселі поточного блока. Режим 34 відповідає плоскому режиму, де може бути включена лінійна плоска функція, яка відповідає блоку цілей прогнозування. Плоский режим може працювати добре в ділянках з яскравістю, що плавно змінюється. Плоский режим може бути ефективним для прогнозування великих блоків, але може бути менш ефективним, коли використовується для прогнозування менших блоків. Кола на Фіг. 3 представляють кутове розрізнення направлених режимів з внутрішнім прогнозуванням, асоційованих з кожним колом. Наприклад, для кола 0 розрізнення між режимами в колі (режими 0 та 1) становить 90, розрізнення між режимами в колі 1 (режими 3, 6 та 9) становить 45, розрізнення між режимами всередині кола 2 (режими 4, 5, 7 та 8) становить 22,5 тощо. 10 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 60 Фіг. 4 є блок-схемою, що ілюструє приклад відеокодера 20, який може реалізувати способи для застосування фільтра згладжування до пікселів, що оточують вибірки прогнозування, які використовуються при кодуванні з внутрішнім прогнозуванням відеоданих. Відеокодер 20 може виконати внутрішнє і зовнішнє прогнозування відеоблоків у відеокадрах, включаючи блоки LCU, блоки CU і блоки PU, і обчислити залишкові значення, які можуть бути закодовані як блоки TU. Внутрішнє кодування основане на просторовому прогнозуванні, щоб зменшити або видалити просторову надмірність у відео в заданому відеокадрі. Зовнішнє кодування основане на часовому прогнозуванні, щоб зменшити або видалити часову надмірність у відео в суміжних кадрах відеопослідовності. Внутрішній режим (I-режим) може відноситися до будь-якого з декількох, основаних на просторі режимів стиснення. Зовнішні режими, такі як однонаправлене прогнозування (Р-режим), двонаправлене прогнозування (В-режим) або узагальнене прогнозування Р/В (GPB-режим), можуть відноситися до будь-якого з декількох, основаних на часі режимів стиснення. Модуль 42 оцінки руху і модуль 44 компенсації руху можуть виконати кодування із зовнішнім прогнозуванням, в той час як модуль 46 внутрішнього прогнозування може виконати кодування з внутрішнім прогнозуванням. Як показано на Фіг. 4, відеокодер 20 приймає поточний відеоблок у відео або вирізці кадру, яка повинна бути закодована. У прикладі Фіг. 4 відеокодер 20 включає в себе модуль 40 вибору режиму, модуль 41 прогнозування, сховище 64 опорних кадрів, модуль 50 підсумовування, модуль 52 перетворення, модуль 54 квантування і модуль 56 статистичного кодування. Модуль 41 прогнозування включає в себе модуль 42 оцінки руху, модуль 44 компенсації руху і модуль 46 внутрішнього прогнозування. Для відновлення відеоблока відеокодер 20 також включає в себе модуль 58 оберненого квантування, модуль 60 оберненого перетворення і модуль 62 підсумовування. Фільтр видалення блоковості (не показаний на Фіг. 4) також може бути включений для фільтрування меж блока, щоб видалити артифакти блоковості з відновленого відео. За бажанням, фільтр деблокування, як правило, буде фільтрувати вихідний сигнал модуля 62 підсумовування. Під час процесу кодування відеокодер 20 приймає кадр або вирізку відео, яка повинна бути закодована. Кадр або вирізка можуть бути розділені на множинні відеоблоки або блоки CU. Модуль 42 оцінки руху і модуль 44 компенсації руху виконують кодування із зовнішнім прогнозуванням прийнятого відеоблока відносно одного або більше блоків в одному або більше опорних кадрах, щоб забезпечити часове стиснення. Модуль 46 внутрішнього прогнозування може виконати кодування з внутрішнім прогнозуванням прийнятого відеоблока відносно одного або більше сусідніх блоків у тому самому кадрі або вирізці, що і блок, який повинен бути закодований, щоб забезпечити просторове стиснення. Модуль 40 вибору режиму може вибрати один з режимів кодування з внутрішнім або зовнішнім кодуванням, наприклад, на основі результатів помилок, і видає вибір режиму кодування до модуля 41 прогнозування. Модуль 41 прогнозування потім формує блок з внутрішнім або зовнішнім кодуванням і забезпечує цей закодований блок модулю 50 підсумовування, щоб генерувати залишкові дані блока, і модулю 62 підсумовування, щоб відновити закодований блок для використання як опорний кадр. Коли модуль 40 вибору режиму вибирає кодування з внутрішнім прогнозуванням для блока, модуль 46 внутрішнього прогнозування може вибрати режим з внутрішнім прогнозуванням для блока. Наприклад, вибраний режим з внутрішнім прогнозуванням може бути одним з 35 режимів, забезпечених за допомогою НМ. Кількість режимів з внутрішнім прогнозуванням, з яких вибирається режим з внутрішнім прогнозуванням для даного блока, може залежати від розміру блока, як показано в прикладі ТАБЛИЦІ 1, представленої вище. В одному прикладі, коли модуль 40 вибору режиму вибирає кодування із зовнішнім прогнозуванням, модуль 42 оцінки руху і модуль 44 компенсації руху можуть виконати обробку, асоційовану з кодуванням із зовнішнім прогнозуванням, щоб генерувати блок із зовнішнім кодуванням. Модуль 42 оцінки руху і модуль 44 компенсації руху можуть бути високо інтегрованими, але ілюстровані окремо в концептуальних цілях. Оцінка руху, виконана модулем 42 оцінки руху, є процесом генерування векторів руху, який оцінює руху для відеоблоків. Вектор руху, наприклад, може вказати зміщення прогнозуючого блока або PU в прогнозуючому опорному кадрі (або іншому закодованому блоці) відносно поточного блока, закодованого в поточному кадрі (або іншому закодованому блоці). Прогнозуючий блок є блоком, який, як вважається, близько відповідає відеоблоку або PU, який повинен бути закодований відносно піксельної різниці, яка може бути визначена сумою абсолютної різниці (SAD), сумою різниці квадратів (SSD) або іншими різницевими показниками. Вектор руху може також вказати зміщення фрагмента макроблока. Компенсація руху може включати вибір або генерування прогнозуючого блока на основі вектора руху, визначеного за 11 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 60 допомогою оцінки руху. У деяких прикладах відеокодер 20 може обчислити значення для субцілочисельних піксельних позицій опорних кадрів, збережених в сховищі 64 опорних кадрів. Наприклад, відеокодер 20 може обчислити значення однієї четвертої піксельної позиції, однієї восьмої піксельної позиції або інші фракційні піксельні позиції опорного кадру. Тому модуль 42 оцінки руху може виконати пошук руху відносно повних піксельних позицій і фракційних піксельних позицій і вивести вектор руху з фракційною піксельною точністю. Модуль 42 оцінки руху обчислює вектор руху для відеоблока або PU кадру із зовнішнім кодуванням за допомогою порівняння PU з блоками опорного кадру в сховищі 64 опорних кадрів. Модуль 44 компенсації руху може також інтерполювати суб-цілочисельні пікселі опорного кадру, наприклад, I-кадру або Р-кадру. НМ, як приклад, описує два списки: список 0, який включає в себе опорні кадри, що мають порядок відображення раніше, ніж поточний кадр, що кодується, і список 1, який включає в себе опорні кадри, що мають порядок відображення пізніше, ніж поточний кадр, що кодується. Тому дані, збережені в сховищі 64 опорних кадрів, можуть бути організовані згідно з цими списками. У деяких випадках модуль 42 оцінки руху може додатково обчислити значення різниці векторів руху (MVD) для вектора руху і передати значення MVD, а не вектор руху безпосередньо, в модуль 56 статистичного кодування. В одному прикладі, коли модуль 40 вибору режиму вибирає кодування з внутрішнім прогнозуванням, модуль 46 внутрішнього прогнозування може виконати обробку, асоційовану з кодуванням з внутрішнім прогнозуванням, щоб генерувати блок з внутрішнім кодуванням. Як зазначено вище, на основі розміру блока може бути визначена кількість режимів з внутрішнім прогнозуванням, доступних для блока. Приклад відповідності між розміром блока і кількістю режимів з внутрішнім прогнозуванням, доступних для блоків цього розміру, показаний в ТАБЛИЦІ 1 і ТАБЛИЦІ 2, представлених вище. Модуль 46 внутрішнього прогнозування може кодувати з внутрішнім прогнозуванням поточний відеоблок відносно сусідніх, раніше закодованих блоків, наприклад, блоків вище, вище і праворуч, вище і зліва, або зліва від поточного блока, приймаючи порядок кодування або блоків зліва-направо, зверху-вниз. Модуль 46 внутрішнього прогнозування може використовувати сусідній блок на основі вибраного режиму з внутрішнім прогнозуванням для поточного блока. Модуль 46 внутрішнього прогнозування може визначити підходящий режим з внутрішнім прогнозуванням для блока за допомогою вибору одного з доступних режимів з внутрішнім прогнозуванням. Модуль 46 внутрішнього прогнозування може вибрати режим з внутрішнім прогнозуванням, наприклад, за допомогою обчислення значень помилки для різних режимів з внутрішнім прогнозуванням, асоційованих з розміром блока, і вибору режиму, який приводить до найнижчого значення помилки. Режими направленого прогнозування можуть включати в себе функції для комбінування значень просторово сусідніх пікселів і застосування комбінованих значень до однієї або більше піксельних позицій в блоці прогнозування (PU). Як тільки значення для всіх піксельних позицій в PU будуть обчислені, модуль 46 внутрішнього прогнозування може обчислити значення помилки для режиму прогнозування на основі піксельних різниць між PU і поточним блоком, який повинен бути закодований. Модуль 46 внутрішнього прогнозування може продовжити перевіряти режими з внутрішнім прогнозуванням, асоційовані з розміром блока поточного блока, доти, доки не буде виявлений режим з внутрішнім прогнозуванням, який забезпечує прийнятне значення помилки. Режим з внутрішнім прогнозуванням, що приводить до найнижчого значення помилки, може потім бути використаний для генерування PU для поточного блока. Модуль 46 внутрішнього прогнозування може сигналізувати вибраний режим з внутрішнім прогнозуванням таким чином, щоб він був закодований з елементами синтаксису, асоційованими із закодованим блоком. Відповідно до даного розкриття, відеокодер 20 може визначати, чи застосувати фільтр згладжування до пікселів навколо вибірок прогнозування поточного блока, який закодований, використовуючи кодування з внутрішнім прогнозуванням. Визначення може бути основане на розмірі блока і режимі з внутрішнім прогнозуванням, що використовується при кодуванні поточного блока. В одному прикладі згідно зі способами даного розкриття не застосовується фільтр згладжування, коли використовуються режими 0, 1 або 2, які відповідають вертикальному, горизонтальному і DC режимам, відповідно, оскільки кожний з цих режимів забезпечує відносно точні результати прогнозування без застосування згладжування. Тому, коли напрямок прогнозування є повністю горизонтальним, вертикальним, або режим з внутрішнім прогнозуванням є режимом DC, фільтр згладжування не застосовується. Визначення, чи застосувати фільтр згладжування для інших режимів (тобто діагональних режимів), залежить від розміру блока прогнозування і режиму з внутрішнім прогнозуванням. ТАБЛИЦЯ 3, представлена нижче, показує зразкове співвідношення комбінацій розміру блока і режиму з внутрішнім прогнозуванням, для якого застосований фільтр згладжування. Комбінації 12 UA 106936 C2 розміру блока і режиму з внутрішнім прогнозуванням, для яких може бути застосовано фільтрування, можуть бути основані на офлайновому навчанні і статистичних результатах. ТАБЛИЦЯ 3 не представляє єдиний тип співвідношень, які можуть бути визначені, але просто забезпечує на прикладі, сумісному з даним розкриттям. 5 ТАБЛИЦЯ 3 Розмір блока 22 44 88 1616 3232 6464 128128 10 15 20 25 30 35 Режими, які фільтруються Немає фільтрування для всіх режимів Режим 3,6 і 9 Режим 3,4,5,6,7,8 і 9 Режим 3-17 Режим 3-33 Режим 3-4 Режим 3-4 Показано на Фіг. 3 Ні Режими між циклом 0 і циклом 1 Режими між циклом 0 і циклом 2 Режими між циклом 0 і циклом 3 Режими між циклом 0 і циклом 4 Режими між циклом 0 і циклом 4 Режими між циклом 0 і циклом 4 Як ілюструє ТАБЛИЦЯ 3, визначення, чи застосувати фільтр згладжування, є загальним і залишається одним і тим самим на основі розміру блока і режиму з внутрішнім прогнозуванням, блока, що використовується для кодування. В одному прикладі комбінації розмірів і режимів з внутрішнім прогнозуванням, показані вище в ТАБЛИЦІ 3, і для яких застосований фільтр згладжування, можуть бути заздалегідь визначені в таблиці пошуку (LUT). LUT може бути або доступна в обох - кодері або декодері, або кодер може надіслати її на декодер. Тому визначення, чи застосувати фільтр згладжування, може бути загальним і залишається одним і тим самим незалежно від змін в кодері і/або декодері, і сигналізація визначення фільтрування може не бути необхідна. Додатково, створення визначення, чи застосувати фільтр згладжування, не викликає істотної складності кодера. В одному прикладі під час кодування з внутрішнім прогнозуванням блока кодер може визначити, чи застосувати фільтр згладжування до прогнозуючих вибірок на основі комбінації розміру блока, що використовується, і режиму з внутрішнім прогнозуванням згідно з комбінаціями, визначеними в LUT. Ці комбінації можуть бути асоційовані з опцією найбільш вірогідного фільтрування, як вказано в таблиці найбільш вірогідних фільтрів. Наприклад, Таблиця найбільш вірогідних фільтрів може бути складена, щоб вказати для кожної комбінації розміру блока і режиму з внутрішнім прогнозуванням, яку опцію фільтрування використовувати. В одному прикладі фільтр згладжування може бути вибраний зі списку фільтрів-кандидатів для кожної комбінації режиму з внутрішнім прогнозуванням і розміру блока. Ніяка опція фільтрування не може бути узагальнена в фільтр згладжування, який є всепропускаючим фільтром. У деяких прикладах можуть бути використані один або більше фільтрів згладжування, де, наприклад, один фільтр згладжування може працювати краще для деяких комбінацій розмірів блока і режимів з внутрішнім прогнозуванням, і другий фільтр згладжування може працювати краще для інших комбінацій розмірів блока і режимів з внутрішнім прогнозуванням. Кількість фільтрів в наборі фільтрів-кандидатів згладжування може змінюватися від однієї системи до іншої. В одному прикладі опції фільтра для комбінації розміру блока і режиму з внутрішнім прогнозуванням можуть бути основані на офлайновому навчанні з різними учбовими відеоданими. Для простоти кількість фільтрів може бути така, що дорівнює 3, фільтр 0, фільтр 1 і фільтр 2, де фільтр 0 вказує всепропускаюче фільтрування (тобто відсутність фільтрування). Використовуючи фільтри-кандидати, Таблиця найбільш вірогідних фільтрів може бути згенерована згідно з наступною таблицею, яка представлена в псевдокоді: 13 UA 106936 C2 Таблиця найбільш вірогідних фільтрів 5 10 15 20 25 30 35 У прикладі, представленому вище, найбільш вірогідний фільтр згладжування може бути визначений для кожного розміру блока і режиму з внутрішнім прогнозуванням. Індекс таблиці фільтрів згладжування для конкретної комбінації може бути визначений як [S, М], що відповідають розміру і режиму. Розмір блока може варіюватися від 1 до 7, відповідаючи розмірам блока 22, 44, 88, 1616, 3232, 6464 та 128128, наприклад. Режим з внутрішнім прогнозуванням може варіюватися від 1 до 40, наприклад. Однак в прикладі даного розкриття визначені тільки 35 режимів, і тому інша частина режимів заповнена 0, вказуючи фільтр 0 або всепропускаючий фільтр. Приклад таблиці, представленої вище, показує кожний запис в таблиці фільтрів згладжування із зразкового набору фільтрів (0, 1, 2). Режими з внутрішнім прогнозуванням, для яких застосований фільтр згладжування 1 або 2, відповідають комбінаціям, визначеним в ТАБЛИЦІ 3, представленій вище. В одному прикладі під час кодування відеокодер 20 може реалізувати фіксоване залежне від режиму кодування з внутрішнім прогнозуванням, де відеокодер 20 вибирає найбільш вірогідний фільтр згладжування для кожної комбінації розміру блока і режиму з внутрішнім прогнозуванням, як визначено таблицею, представленою вище. У цьому прикладі відеокодер 20 може вказати фіксоване, залежне від режиму кодування з внутрішнім прогнозуванням без необхідності кодувати, який фільтр згладжування використовується для блока. Під час декодування, якщо вказане фіксоване, залежне від режиму кодування з внутрішнім прогнозуванням, декодер (наприклад, відеодекодер 30) може визначити, який застосувати фільтр згладжування, використовуючи інформацію з таблиці, представленої вище, на основі інформації про розмір блока і режим з внутрішнім прогнозуванням, що використовується як індекс для таблиці. Наприклад, блок 8x8, закодований, використовуючи режим з внутрішнім прогнозуванням, може відповідати фільтру 1 ([3,6]), який є фільтром згладжування 2. Фільтр 1 може вказати, що інформація одержана з таблиці, яка відповідає таблиці найбільш вірогідних фільтрів. У деяких випадках використання фіксованого, залежного від режиму кодування з внутрішнім прогнозуванням може не забезпечити найкращі результати для деяких з великих розмірів блока, наприклад, 6464 та 128128. В одному прикладі під час кодування з внутрішнім прогнозуванням блока відеокодер 20 може визначити, чи застосувати фільтр згладжування до прогнозуючих вибірок, використовуючи адаптивне, залежне від режиму кодування з внутрішнім прогнозуванням. Для блоків, менших, ніж пороговий розмір, наприклад, 6464, відеокодер 20 може використовувати таблицю найбільш вірогідних фільтрів, показаних вище. Для блоків, великих або рівних порогу, наприклад, блоків 6464 і більше, відеокодер 20 може оцінити результати для застосування різних фільтрів згладжування, що не включають в себе фільтр, до прогнозуючих вибірок, і визначити, який призводить до кращих результатів. Результати можуть бути визначені на основі метрики якості або метрики спотворення швидкості передачі. Частина швидкості передачі згаданої метрики може вказувати швидкість кодування поточного блока, і 14 UA 106936 C2 5 10 15 20 частина спотворення згаданої метрики може вказувати величину спотворення в поточному блоці. Метрика "спотворення - швидкість передачі" може бути основана на швидкості передачі, спотворенні або їх комбінації. В одному прикладі оцінка застосування різних фільтрів згладжування може бути основана на швидкості кодування, асоційованій із застосуванням кожного з фільтрів до поточного блока. Швидкість кодування може бути пропорційна величині залишкових даних, що відповідають поточному блоку, коли використовується фільтр згладжування. Чим більше величина залишкових даних, тим вище швидкість кодування для поточного блока. Фільтр згладжування, який призводить до меншої величини залишкових даних і, отже, до кращої швидкості кодування, може вважатися фільтром, який призводить до кращих результатів. В іншому прикладі оцінка застосування різних фільтрів згладжування може бути основана на величині спотворення, асоційованого із застосуванням кожного з фільтрів до поточного блока. В одному прикладі ступінь спотворення може бути визначена на основі середньоквадратичного значення помилки між блоком прогнозування і первинним блоком. Блок прогнозування може бути результатом використання вибірок прогнозування, одержаних за допомогою застосування вибраного фільтра згладжування. Фільтр згладжування, який призводить до найменшого середньоквадратичного значення помилки і, отже, меншого спотворення, може вважатися фільтром, який призводить до кращих результатів. В одному прикладі відеокодер 20 може порівняти результати застосування фільтра, визначеного таблицею найбільш вірогідних фільтрів, показаною вище, з фільтрами, визначеними другою таблицею найбільш вірогідних фільтрів, показаною нижче, яка представлена в псевдокоді: Друга Таблиця найбільш вірогідних фільтрів 25 30 35 У деяких прикладах може бути використано більше таблиць для визначення інших фільтрів. У простому прикладі використання таблиці найбільш вірогідних фільтрів і другої таблиці найбільш вірогідних фільтрів, записи, що відповідають фільтрам, відмінним від нуля, наприклад, фільтрам 1 та 2 в першій таблиці, можуть бути замінені фільтром 0 у другій таблиці, і навпаки. У цьому способі порівняння між найбільш вірогідним і другим найбільш вірогідним фільтром зроблене між фільтруванням і нефільтруванням. Якщо опція фільтрування, яка призводить до кращого результату, є опцією, визначеною в таблиці найбільш вірогідних фільтрів, то відеокодеру 20 немає необхідності вказувати що-небудь, оскільки декодер передбачає, що використовується найбільш вірогідний фільтр, якщо не визначене інше. Якщо опція фільтрування, яка призводить до кращого результату, є опцією, визначеною у другій таблиці найбільш вірогідних фільтрів, відеокодер 20 може сигналізувати режим фільтрування для вказівки, що фільтр, відмінний від найбільш вірогідного фільтра, повинен бути застосований під час декодування. Таблиці фільтрів можуть бути збережені в блоці пам'яті (не показаний), асоційованому з відеокодером 20, і доступні за допомогою блока 46 внутрішнього прогнозування під час кодування. 15 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 Сигналізація режиму фільтрування може бути зроблена декількома способами. В одному прикладі відеокодер 20 може використовувати прапор режиму фільтрування, щоб сигналізувати, чи використовується фільтрування, крім того, що визначено в таблиці найбільш вірогідних фільтрів для деякого блока. У прикладах, де є більше, ніж дві таблиці фільтрів, що використовуються, наприклад, є третя (або більше) Таблиця найбільш вірогідних фільтрів, відеокодер 20 може вказати, яка з: другої або третьої (або більше) таблиць найбільш вірогідних фільтрів використовується для деякого блока. У ще одному прикладі сигналізація може бути основана на комбінації контекстної інформації, такій як, розмір блока поточного блока, режим прогнозування і режим фільтрування сусідніх блоків. Контекстна інформація може бути використана, щоб скласти таблицю VLC або таблицю CABAC, яка статистично кодує сигнал відносно того, чи використовувалося фільтрування для поточного блока. У цьому способі декодер може визначити на основі контекстної інформації, чи повинне бути використане фільтрування з блоком, і використовувати таблицю VLC або інформацію CABAC, щоб визначити режим фільтрування. В інших прикладах інші способи можуть бути використані для визначення, чи застосувати фільтр згладжування. Способи фільтра згладжування даного розкриття можуть забезпечити рішення режиму фільтрування з внутрішнім згладжуванням (фільтрувати чи ні) на основі статистики метрики невеликого спотворення залежно від швидкості передачі як функції комбінації режиму з внутрішнім прогнозуванням і розміру блока. Знову посилаючись на Фіг. 2B, вона ілюструє комбінації режимів з внутрішнім прогнозуванням і розміру PU, які є кандидатами для фільтрування з внутрішнім згладжуванням, на основі порівняння між статистикою фільтрованих і нефільтрованих режимів з внутрішнім згладжуванням. Наприклад, статистичні дані вказують, що вертикальний (режим 0) і горизонтальний (режим 1) напрямки прогнозування є кандидатами для фільтрування з внутрішнім згладжуванням для PU розміру 3232, і головні діагональні напрямки з внутрішнім прогнозуванням (режими 3, 6, 9) є кандидатами для фільтрування з внутрішнім згладжуванням для PU розмірів 3232, 1616, 88 та 44. Статистика може також вказувати, що напрямки з внутрішнім прогнозуванням між горизонтальним або вертикальним напрямками з внутрішнім прогнозуванням і головними діагональними напрямками є кандидатами для фільтрування з внутрішнім згладжуванням в прогресивно менших розмірах PU. Для режиму DC статистика може вказати, що режим 2, режим DC, не є кандидатом для фільтрування з внутрішнім згладжуванням, в той час як плоский режим (режим 34) є кандидатом для фільтрування з внутрішнім згладжуванням в деяких розмірах PU, наприклад, 88, 1616 та 3232. Хоча статистика може вказати, які режими з внутрішнім прогнозуванням і які розміри PU є кандидатами для фільтрування з внутрішнім згладжуванням, експерименти ефективності кодування можуть демонструвати, що призначення кандидата для фільтрування з внутрішнім згладжуванням, показане на Фіг. 2B, може не бути оптимальним в значенні спотворення залежно від швидкості передачі. Тому кандидати з внутрішнім згладжуванням на Фіг. 2B можуть бути "шаблоном моделі" для одержання "шаблона піднабору" з більш високою ефективністю кодування. В одному прикладі "шаблон піднабору" визначений за допомогою вибору кандидатів для фільтрування з внутрішнім згладжуванням з "шаблона моделі" для кожного режиму з внутрішнім прогнозуванням і для кожного розміру PU, або альтернативно- ніякого фільтрування з внутрішнім згладжуванням для будь-якого розміру PU, що відповідає деякому режиму з внутрішнім прогнозуванням. ТАБЛИЦІ 4-7, представлені нижче, забезпечують деякі приклади шаблонів піднабору. ТАБЛИЦІ 4-7 можуть, в цілому, називатися Таблицями рішень фільтрування. У кожній з ТАБЛИЦЬ 4-7 "1" може вказувати, що фільтрування з внутрішнім згладжуванням застосовується до відповідного режиму з внутрішнім прогнозуванням і розміру блока. Тому "1" в конкретній позиції колонки і ряду вказує, що внутрішнє згладжування застосовується у випадку режиму з внутрішнім прогнозуванням і розміру блока, які відображені в ці позиції колонки і ряду, відповідно. В одному прикладі ТАБЛИЦЯ 4 може відповідати "шаблону моделі", і кожна з ТАБЛИЦЬ 5-7 може відповідати різному "шаблону піднабору". В іншому прикладі ТАБЛИЦЯ 7 може відповідати "шаблону моделі", і кожна з ТАБЛИЦЬ 4-6 може відповідати різному "шаблону піднабору". "Шаблон моделі" може відповідати Фіг. 2B і ілюстрований ТАБЛИЦЕЮ 4, наприклад, яка також показує розмір PU 6464 для узагальнення. ТАБЛИЦІ 5-7 можуть представляти "шаблони піднабору". В одному прикладі даного розкриття ТАБЛИЦЯ 7 може представити "шаблон піднабору", який підходить для загальних відеопослідовностей на основі експериментів ефективності кодування. 16 UA 106936 C2 ТАБЛИЦЯ 4 PU/ 0 1 2 3 4 5 6 7 режим 1 1 44 1 1 1 1 1 88 1 1 1 1 1 1616 1 1 1 1 1 3232 1 1 1 1 1 1 1 6464 1 1 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ТАБЛИЦЯ 5 PU/ 0 12345 режим 44 1 88 111 1616 111 3232 6464 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 1 1 1 1 1 1 1 1 1 1 1 1111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ТАБЛИЦЯ 6 PU/ 012345 режим 44 1 88 111 1616 111 3232 6464 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 1 1 1 1 1 1 1 1 1111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ТАБЛИЦЯ 7 PU/ 012345 режим 44 1 88 111 1616 111 3232 6464 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 1 1 1 1111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 10 15 20 Після того, як модуль 41 прогнозування генерує прогнозуючий блок або PU для поточного відеоблока (із зовнішнім або внутрішнім кодуванням), відеокодер 20 формує залишковий відеоблок за допомогою віднімання прогнозуючого блока з поточного відеоблока. Модуль 50 підсумовування представляє компонент або компоненти, які виконують цю операцію віднімання. Модуль 52 перетворення може формувати один або більше блоків перетворення (блоки TU) із залишкового блока. Модуль 52 перетворення застосовує перетворення, таке як дискретне косинусне перетворення (DCT) або концептуально аналогічне перетворення, до TU, формуючи відеоблок, що містить залишкові коефіцієнти перетворення. Перетворення може перетворити залишковий блок з ділянки пікселя в ділянку перетворення, таку як частотна ділянка. Модуль 52 перетворення може виконувати інші перетворення, такі як перетворення, визначені за допомогою НМ, які концептуально аналогічні DCT. Можуть бути також використані вейвлет-перетворення, цілочисельні перетворення, перетворення частотного піддіапазону або інші типи перетворень. У будь-якому випадку модуль 52 перетворення застосовує перетворення до залишкового блока, виробляючи блок залишкових коефіцієнтів перетворення. Перетворення може перетворити залишкову інформацію з ділянки піксельного значення в ділянку перетворення, таку як частотна ділянка. 17 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 60 Модуль 52 перетворення може надіслати коефіцієнти перетворення на модуль 54 квантування, що вийшли в результаті. Модуль 54 квантування квантує перетворені коефіцієнти, щоб додатково зменшити швидкість передачі бітів. Процес квантування може зменшити глибину в бітах, асоційовану з деякими або усіма коефіцієнтами. Ступінь квантування може бути змінений за допомогою регулювання параметра квантування. У деяких прикладах модуль 54 квантування потім може виконати сканування матриці, що включає в себе квантовані коефіцієнти перетворення. Альтернативно, модуль 56 статистичного кодування може виконати сканування. Після квантування модуль 56 статистичного кодування статистично кодує квантовані коефіцієнти перетворення. Наприклад, модуль 56 статистичного кодування може виконати контекстно-адаптивне кодування із змінною довжиною коду (CAVLC), контекстно-адаптивне двійкове арифметичне кодування (CABAC) або інший спосіб статистичного кодування. Після статистичного кодування за допомогою блока 56 статистичного кодування закодоване відео може бути передане на інший пристрій (наприклад, відеодекодер 30) або заархівоване для більш пізньої передачі або витягання. У деяких випадках модуль 56 статистичного кодування або інший блок відеокодера 20 може бути сконфігурований для виконання інших функцій кодування додатково до статистичного кодування. Наприклад, модуль 56 статистичного кодування може бути сконфігурований для визначення значень CBP для макроблоків і фрагментів. Крім того, у деяких випадках модуль 56 статистичного кодування може виконати кодування змінної довжини коду коефіцієнтів у макроблоці або його фрагменті. Зокрема, модуль 56 статистичного кодування може застосувати зигзагоподібне сканування або інший шаблон сканування для сканування коефіцієнтів перетворення в макроблоці або фрагменті і закодувати серії нулів для додаткового стиснення. Модуль 56 статистичного кодування може також сконструювати інформацію заголовка, яка включає в себе відповідні елементи синтаксису, для передачі в закодованому відеобітовому потоці. Щоб статистично кодувати елементи синтаксису, модуль 56 статистичного кодування може виконати CABAC і перетворити в двійкову форму елементи синтаксису в один або більше двійкових бітів на основі контекстної моделі. Модуль 56 статистичного кодування може також виконати CAVLC і закодувати елементи синтаксису як ключові слова згідно з імовірностями на основі контексту. Відповідно до способів даного розкриття, модуль 56 статистичного кодування може бути сконфігурований для кодування індикації, що фільтр згладжування, відмінний від найбільш вірогідного фільтра, застосований до вибірок прогнозування під час кодування з внутрішнім прогнозуванням. Коли рішення фільтрування для блока є таким самим, як рішення, визначене в таблиці найбільш вірогідних фільтрів, відеокодер 20 може не посилати індикацію на декодер, і тому ніяка додаткова інформація не повинна бути закодована. Коли індикація є необхідною, наприклад, коли рішення фільтрування для блока визначене у другій (або більше) таблиці найбільш вірогідних фільтрів, відеокодер 20 може закодувати індикацію відносно фільтрування. Додатково, відеокодер 20 може закодувати режим з внутрішнім прогнозуванням, що використовується при кодуванні блока. Модуль 56 статистичного кодування може закодувати індикацію (наприклад, режим з внутрішнім прогнозуванням і рішення фільтрування, коли застосовно), використовуючи CABAC. Крім того, модуль 56 статистичного кодування може використовувати інформацію контексту для виконання CABAC, щоб закодувати індикацію, яка вказує режим з внутрішнім прогнозуванням для блока, і інформацію фільтрування, коли другий (або більше), найбільш вірогідний фільтр застосований до вибірок прогнозування. Модуль 58 оберненого квантування і модуль 60 оберненого перетворення застосовують обернене квантування і обернене перетворення, відповідно, щоб відновити залишковий блок в піксельній ділянці для більш пізнього використання як опорний блок опорного кадру. Модуль 44 компенсації руху може обчислити опорний блок за допомогою підсумовування залишкового блока до прогнозуючого блока одного з кадрів сховища 64 опорних кадрів. Модуль 44 компенсації руху може також застосувати один або більше фільтрів інтерполяції до відновленого залишкового блока, щоб обчислити суб-цілочисельні піксельні значення для використання в оцінці руху. Модуль 62 підсумовування підсумовує відновлений залишковий блок з блоком прогнозування з компенсацією руху, зробленому модулем 44 компенсації руху, щоб сформувати відновлений відеоблок для зберігання в сховищі 64 опорних кадрів. Відновлений відеоблок може бути використаний модулем 42 оцінки руху і модулем 44 компенсації руху як опорний блок, щоб зовні прогнозувати блок в подальшому відеокадрі. Фіг. 5 є блок-схемою, що ілюструє приклад відеодекодера 30, який декодує закодовану відеопослідовність. У прикладі Фіг. 5 відеодекодер 30 включає в себе модуль 70 статистичного декодування, модуль 71 прогнозування, модуль 76 оберненого квантування, модуль 78 18 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 60 оберненого перетворення, сховище 82 опорних кадрів і блок 80 підсумовування. Модуль 71 прогнозування включає в себе модуль 72 компенсації руху і модуль 74 внутрішнього прогнозування. Відеодекодер 30 в деяких прикладах може виконувати прохід декодування, в цілому, обернений проходу кодування, описаному відносно відеокодера 20 (Фіг. 4). Модуль 71 прогнозування може генерувати дані прогнозування на основі інформації, прийнятої від модуля 70 статистичного декодування. Коли вказано кодування із зовнішнім прогнозуванням, модуль 72 компенсації руху може генерувати дані прогнозування на основі векторів руху, прийнятих від модуля 70 статистичного декодування. Коли вказане кодування з внутрішнім прогнозуванням, модуль 74 внутрішнього прогнозування може генерувати дані прогнозування для поточного блока поточного кадру на основі вказаного режиму з внутрішнім прогнозуванням і дані від раніше декодованих блоків поточного кадру. Відеодекодер 30 може прийняти закодований відеобітовий потік, наприклад, за допомогою мережі, мовлення або від фізичного носія. Закодований бітовий потік може включати в себе статистично закодовані відеодані. Модуль 70 статистичного декодування відеодекодера 30 статистично декодує бітовий потік, щоб генерувати квантовані коефіцієнти, вектори руху і дані прогнозування. Модуль 70 статистичного декодування відправляє вектори руху і дані прогнозування на модуль 71 прогнозування. Відповідно до способів даного розкриття, статистично закодовані відеодані можуть включати в себе статистично закодовану індикацію режиму з внутрішнім прогнозуванням, поточного блока, що використовується при кодуванні. Статистично закодовані відеодані також можуть включати в себе статистично закодовану індикацію фільтрування, що вказує рішення фільтра згладжування. В одному прикладі індикація фільтрування може бути використана для вказівки, що Таблиця найбільш вірогідних фільтрів не була використана для вибору фільтра згладжування під час кодування з внутрішнім прогнозуванням поточного блока. Коли статистично закодовані відеодані не включають в себе індикацію фільтрування, відсутність індикації має на увазі, що Таблиця найбільш вірогідного фільтра була використана для вибору фільтра згладжування під час кодування з внутрішнім прогнозуванням поточного блока. Статистично закодовані відеодані можуть також включати в себе інформацію про розмір блока, яку модуль 70 статистичного декодування може використовувати нарівні з режимом з внутрішнім прогнозуванням як інформацію контексту при статистичному декодування індикації фільтрування для закодованого з внутрішнім прогнозуванням блока. У цьому способі модуль 70 статистичного декодування може декодувати індикацію фільтрування (наприклад, чи застосований фільтр згладжування) і посилати індикацію на модуль 74 внутрішнього прогнозування. Модуль 72 компенсації руху може використовувати вектори руху, прийняті в бітовому потоку, щоб ідентифікувати блок прогнозування в опорних кадрах в сховищі 82 опорних кадрів. Модуль 74 внутрішнього прогнозування може використовувати режими з внутрішнім прогнозуванням, прийняті в бітовому потоці, щоб сформувати блок прогнозування з просторово суміжних блоків. Модуль 76 оберненого квантування обернено квантує, тобто деквантує, квантовані коефіцієнти блока, забезпечені в бітовому потоці і декодовані блоком 70 дестатистиного кодування. Процес оберненого квантування може включати в себе звичайний процес, наприклад, як визначено стандартом декодування H.264. Процес оберненого квантування може також включати в себе використання параметра квантування QPY, обчисленого відеокодером 20 для кожного відеоблока або CU, щоб визначити ступінь квантування і, аналогічно, ступінь оберненого квантування, яке повинне бути застосоване. Модуль 78 оберненого перетворення застосовує обернене перетворення, наприклад, обернене DCT, обернене цілочисельне перетворення або концептуально аналогічний процес оберненого перетворення до коефіцієнтів перетворення, щоб сформувати залишкові блоки в піксельній ділянці. Модуль 72 компенсації руху може також виконати інтерполяцію на основі фільтрів інтерполяції. Модуль 72 компенсації руху може використовувати фільтри інтерполяції, які використовуються відеокодером 20 під час кодування відеоблока, щоб обчислити інтерпольовані значення для суб-цілочисельних пікселів опорного блока. Модуль 72 компенсації руху може визначити фільтри інтерполяції, що використовуються відеокодером 20, від прийнятих елементів синтаксису і використати фільтри інтерполяції, щоб сформувати прогнозуючі блоки. Модуль 72 компенсації руху використовує деяке з: інформації синтаксису, щоб визначити розміри блоків LCU і блоків CU, що використовуються для кодування кадру(ів) і/або вирізки(вирізок) закодованої відеопослідовності, інформації розділення, яка описує, як розділений кожний макроблок кадру закодованої відеопослідовності, режимів, що вказують, як кожний фрагмент кодований, одного або більше опорних кадрів (і списків опорних кадрів) для 19 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 кожного ззовні закодованого CU, і іншої інформації, щоб декодувати закодовану відеопослідовність. Модуль 74 внутрішнього прогнозування може також визначити, чи застосовувати фільтр згладжування до вибірок прогнозування при виконанні блока прогнозування. Модуль 74 внутрішнього прогнозування може виконати визначення відносно того, чи застосовувати фільтр згладжування на основі розміру блока і відповідного режиму з внутрішнім прогнозуванням. Якщо індикація фільтрування не сигналізована, модуль 74 внутрішнього прогнозування може визначити фільтрування на основі того, що визначено в таблиці найбільш вірогідних фільтрів (показаній вище) для комбінації розміру блока і режиму з внутрішнім прогнозуванням. Якщо індикація фільтрування сигналізована, модуль 74 внутрішнього прогнозування може визначити, що рішення фільтрування не основане на таблиці найбільш вірогідних фільтрів і може визначити фільтрування на основі того, що визначено у другій таблиці найбільш вірогідних фільтрів (показаній вище) для комбінації розміру блока і режиму з внутрішнім прогнозуванням. В одному прикладі може бути забезпечена більш ніж одна додаткова Таблиця фільтрів, наприклад, друга, третя або більше таблиць найбільш вірогідних фільтрів. У цьому прикладі індикація фільтрування може також вказувати, яка з таблиць повинна бути використана для визначення, який фільтр згладжування застосувати. Таблиці фільтрів можуть бути збережені в блоці пам'яті (не показаний) у відеодекодері 30. Модуль 74 внутрішнього прогнозування може одержати доступ до Таблиць фільтрів з пам'яті під час декодування. Блок 80 підсумовування підсумовує залишкові блоки з відповідними блоками прогнозування, згенерованими модулем 72 компенсації руху або модулем 74 внутрішнього прогнозування, щоб сформувати декодовані блоки. Якщо необхідно, фільтр видалення блоковості може також застосовуватися для фільтрування декодованих блоків, щоб видалити артифакти блоковості. Декодовані відеоблоки потім зберігаються в сховищі 82 опорних кадрів, яке забезпечує опорні блоки для подальшої компенсації руху, а також формує декодоване відео для представлення на пристрої відображення (такому як пристрій 32 відображення на Фіг. 1). Фіг. 6 є послідовністю операцій, що ілюструє зразковий спосіб для кодування відеоданих відповідно до способів даного розкриття. Хоча описано відносно відеокодера 20 (Фіг. 1 та 4) з метою прикладу, повинне бути зрозуміло, що способи згідно з Фіг. 6 можуть бути виконані будьяким модулем кодування відео. Крім того, етапи, ілюстровані на Фіг. 6, можуть бути виконані в різному порядку, деякі етапи можуть бути опущені, і додаткові етапи можуть бути додані, не відступаючи від способів даного розкриття. Відеокодер 20 може приймати блок (наприклад, CU) відеоданих, які повинні бути закодовані. Коли поточний блок визначається як блок, який повинен бути закодований, використовуючи кодування з внутрішнім кодуванням, відеокодер 20 може визначити, чи застосувати фільтр згладжування до вибірок прогнозування, і визначити фільтр згладжування, якщо такий повинен бути застосований. Фільтр згладжування в деяких випадках може бути застосований до вибірок прогнозування або прогнозувальників, які використовуються для прогнозування блока в одному і тому самому кадрі при кодуванні з внутрішнім прогнозуванням. Застосування фільтра згладжування в деяких випадках забезпечує більш точне прогнозування і мінімізує блоковість у відновленому передбаченому кадрі. Відеокодер 20 може визначити, чи працювати в фіксованому залежному від режиму кодуванні з внутрішнім прогнозуванням або адаптивному залежному від режиму кодуванні з внутрішнім прогнозуванням (етап 602). В одному прикладі визначення може бути зроблене на рівні послідовності або картинки на основі контенту або на основі розміру блока. Наприклад, для великих блоків може бути використане адаптивне, залежне від режиму кодування з внутрішнім прогнозуванням, і для маленьких блоків може бути використане фіксоване, залежне від режиму кодування з внутрішнім прогнозуванням. У результаті, коли використовуються великі блоки, є менше блоків для кодування в межах картинки, таким чином, менший обсяг інформації службових витрат, ніж тоді, коли використовуються маленькі блоки. Однак фіксоване, залежне від режиму кодування з внутрішнім прогнозуванням додає трохи або не додає додаткової інформації службових витрат, тоді як адаптивне, залежне від режиму кодування з внутрішнім прогнозуванням запитує додаткову інформацію службових витрат. У цьому способі вибраний режим може забезпечити компроміс між інформацією службових витрат і продуктивністю. Якщо відеокодер 20 повинен працювати в фіксованому, залежному від режиму кодуванні з внутрішнім прогнозуванням, відеокодер 20 може визначити, чи застосувати фільтр згладжування на основі фільтра, визначеного в таблиці фільтрів, наприклад, таблиці найбільш вірогідних фільтрів, вибраній на основі комбінації розміру блока і режиму з внутрішнім прогнозуванням, і застосувати вказаний фільтр (етап 604). 20 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 60 В одному прикладі для кожного з доступних режимів з внутрішнім прогнозуванням, наприклад, 35 режимів, визначених за допомогою НМ, чи застосувати фільтр згладжування, залежить від розміру блока. ТАБЛИЦЯ 3, представлена вище, показує комбінації розміру блока і режиму з внутрішнім прогнозуванням, для яких застосований фільтр згладжування. Таблиця найбільш вірогідних фільтрів (показана вище) може бути згенерована на основі комбінацій розміру блока і режиму з внутрішнім прогнозуванням. Кожні із записів таблиці можуть вказувати фільтр, який повинен бути застосований для відповідного індексу, де індекс асоційований з розміром блока і режимом з внутрішнім прогнозуванням. Кожний з фільтрів, визначених в таблиці, може бути з набору фільтрів, де набір фільтрів може змінюватися від одного потоку до іншого, однієї групи кадрів до іншої, одного кадру або вирізки до іншого, тощо. Для простоти всепропускаючий фільтр може бути ідентифікований для записів, де не повинен бути застосований ніякий фільтр згладжування. Якщо відеокодер 20 повинен працювати в адаптивному, залежному від режиму кодуванні з внутрішнім прогнозуванням, відеокодер 20 може визначити, чи рівний розмір блока або вище порогового розміру блока, наприклад, 6464 (етап 606). Якщо розмір блока менше, ніж пороговий розмір блока, то відеокодер 20 може застосувати фільтр, визначений таблицею найбільш вірогідних фільтрів, і визначити, чи застосувати фільтр згладжування на основі розміру блока і режиму з внутрішнім прогнозуванням (етап 604). Якщо розмір блока рівний або більше, ніж пороговий розмір блока, відеокодер 20 може визначити, чи призводить застосування фільтра згідно з таблицею найбільш вірогідних фільтрів до кращих результатів, ніж застосування фільтра згідно з другою таблицею найбільш вірогідних фільтрів (етап 608). Тому відеокодер 20 може застосувати відповідний фільтр з першої таблиці до блока, застосувати відповідний фільтр з другої таблиці до блока та оцінити результати застосування двох фільтрів за допомогою порівняння їх один з одним, щоб визначити, який призводить до кращих результатів. В одному прикладі для кожної комбінації розміру блока і режиму з внутрішнім прогнозуванням застосування фільтра згідно з однією з таблиць може бути тим самим, як не застосування фільтра в цілому, або, в цьому прикладі, застосування всепропускающего фільтра. Тому, насправді, порівняння застосування фільтра згідно з таблицею найбільш вірогідних фільтрів і застосування фільтра згідно з другою таблицею найбільш вірогідних фільтрів може бути тим самим, як порівняння результатів застосування фільтра або не застосування фільтра. Якщо застосування фільтра згідно з таблицею найбільш вірогідних фільтрів призводить до кращих результатів, відеокодер 20 може визначити і застосувати фільтр, визначений таблицею найбільш вірогідних фільтрів, на основі комбінації розміру блока і режиму з внутрішнім прогнозуванням, асоційованої з поточним блоком (етап 604). Якщо застосування фільтра згідно з другою таблицею найбільш вірогідних фільтрів призводить до кращих результатів, відеокодер 20 може визначити і застосувати фільтр, визначений другою таблицею найбільш вірогідних фільтрів на основі комбінації розміру блока і режиму з внутрішнім прогнозуванням, асоційованої з поточним блоком (етап 610). У деяких прикладах, коли є більше, ніж 2 таблиці найбільш вірогідних фільтрів, наприклад, третя або більше, порівняння серед результатів застосування всіх можливих фільтрів може бути зроблене для визначення, яку таблицю фільтрів використовувати для вибору фільтра згладжування, щоб застосувати до вибірок прогнозування. У деяких прикладах може бути використана множина таблиць рішень фільтрування, наприклад. ТАБЛИЦІ 4-7, представлені вище, де одна Таблиця може вважатися "шаблоном моделі", і таблиці, що залишилися, можуть вважатися альтернативними Таблицями або "шаблонами піднабору", що забезпечують альтернативну опцію фільтрування, як описано вище. Відеокодер 20 може потім кодувати поточний блок за допомогою застосування вибраного фільтра згладжування до вибірок прогнозування і виконання кодування з внутрішнім прогнозуванням згідно з режимом з внутрішнім прогнозуванням, асоційованим з поточним блоком (етап 612). Відеокодер 20 може також кодувати елементи синтаксису, асоційовані з кодуванням з внутрішнім прогнозуванням з поточним блоком (етап 614), наприклад, один або більше елементів синтаксису, які ідентифікують режим з внутрішнім прогнозуванням. Іншими прикладами елементів синтаксису, асоційованих з кодуванням з внутрішнім прогнозуванням, яке може бути закодоване з блоком, може бути тип фрагмента, асоційований з блоком, розмір PU, розмір TU, CBP і квантовані коефіцієнти. Якщо застосоване рішення фільтра згладжування не було основане на таблиці найбільш вірогідних фільтрів або "шаблоні моделі", наприклад, рішення фільтрування було прийняте, використовуючи другу таблицю найбільш вірогідних фільтрів або інші "шаблони піднабору", відеокодер 20 може також кодувати елементи синтаксису, що вказують, що Таблиця найбільш вірогідних фільтрів не була використана для 21 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 сигналізації, що блок не був закодований, використовуючи фіксоване, залежне від режиму кодування з внутрішнім прогнозуванням. Наприклад, якщо ТАБЛИЦЯ 7, представлена вище, є "шаблоном моделі" і ТАБЛИЦІ 4-6 є "шаблонами піднабору", відеокодер може кодувати елементи синтаксису, які вказують таблицю "шаблона, що використовується піднабору", коли вона використовується замість таблиці "шаблона моделі". Відеокодер 20 може потім передати закодований відеоблок в закодованому відеокадрі і з елементами синтаксису на відеодекодер (етап 616). Фіг. 7 є послідовністю операцій, що ілюструє зразковий спосіб для декодування відеоданих відповідно до способів даного розкриття. Хоча описано відносно відеодекодера 30 (Фіг. 1 та 5) з метою прикладу, повинне бути зрозуміло, що способи згідно з Фіг. 7 можуть бути виконані будьяким блоком кодування відео. Крім того, етапи, ілюстровані на Фіг. 7, можуть бути виконані в різному порядку, деякі етапи можуть бути опущені, і додаткові етапи можуть бути додані, не відступаючи від способів даного розкриття. Відеодекодер 30 може прийняти закодований блок (наприклад, CU) відеоданих, які повинні бути декодовані (етап 702). Відеодекодер 30 може декодувати закодований відеоблок і елементи синтаксису для визначення, що блок закодований, використовуючи кодування з внутрішнім прогнозуванням (етап 704). На основі елементів синтаксису відеодекодер 30 може також визначити режим з внутрішнім прогнозуванням блока (етап 706). Відеодекодер 30 може визначити, чи включають в себе елементи синтаксису індикацію фільтрування (етап 708). Якщо немає індикації фільтрування, відеодекодер 30 може потім декодувати блок, використовуючи кодування з внутрішнім прогнозуванням, і застосувати вибір фільтра згладжування, як визначено таблицею найбільш вірогідних фільтрів (етап 710). Якщо є індикація фільтрування, відеодекодер 30 може потім декодувати блок, використовуючи кодування з внутрішнім прогнозуванням і застосування вибору фільтра згладжування, як визначено другою таблицею найбільш вірогідних фільтрів (етап 712). У будь-якому випадку, чи використовувати таблицю найбільш вірогідних фільтрів або другу таблицю найбільш вірогідних фільтрів, відеодекодер 30 може визначити фільтр на основі комбінації розміру блока і режиму з внутрішнім прогнозуванням, асоційованої з поточним блоком. У деяких прикладах множинні таблиці можуть визначити другий(або більше) вірогідний фільтр, або можуть бути множинні фільтри "шаблона піднабору", і індикація фільтрування може вказувати таблицю "шаблона піднабору", що альтернативно використовується для таблиці найбільш вірогідних фільтрів або таблиці "шаблона піднабору". У цьому способі відеодекодеру 30 немає необхідності робити які-небудь визначення, відносно яких опції фільтрування забезпечують кращі результати. Якщо індикація не сигналізована за допомогою кодера, то відеодекодер 30 передбачає, що Таблиця найбільш вірогідних фільтрів або Таблиця "шаблона моделі" була використана, інакше, будь-який тип сигналізації вказує, що друга Таблиця найбільш вірогідних фільтрів була використана. У деяких прикладах, в яких використовуються більше, ніж дві таблиці фільтрів, наприклад, третя (або більше) Таблиця найбільш вірогідних фільтрів або "шаблони піднабору", індикація фільтрування може ідентифікувати, яка з додаткових таблиць була використана під час вибору фільтра згладжування. Як розглянуто вище, фільтрування з внутрішнім згладжуванням може бути використане для великих розмірів PU, як ілюстровано за допомогою Фіг. 2B і ТАБЛИЦЕЮ 4, наприклад. Фільтрування з внутрішнім згладжуванням може також бути використане для більшості розмірів PU для режимів з внутрішнім прогнозуванням, що відповідають істинним діагональним напрямкам (тобто±45 і ±135 градусів), або режимів 3, 6, 9, в той час як фільтрування з внутрішнім згладжуванням не може бути використане для менших розмірів PU у випадку вертикального (режим 0) і горизонтального (режим 1) напрямку. Для напрямків з внутрішнім прогнозуванням між діагональними напрямками і, відповідно, горизонтальним або вертикальним напрямками, фільтрування з внутрішнім прогнозуванням може бути менш ймовірно використане для маленьких розмірів PU, коли напрямок близький до горизонтального або вертикального напрямків, в той час як більш ймовірно використано для маленьких розмірів PU, коли напрямок близький до діагональних напрямків, як ілюстровано на Фіг. 2B та ТАБЛИЦІ 4. В одному прикладі кодер і декодер згідно зі способами даного розкриття можуть застосувати фільтрування з внутрішнім згладжуванням згідно з "шаблонами піднабору", визначеними ТАБЛИЦЕЮ 7, показаною вище. В одному прикладі для режиму DC (режим 2) фільтрування з внутрішнім згладжуванням може не бути використане ні для якого розміру PU. Крім того, для плоского режиму (режим 34) фільтрування з внутрішнім згладжуванням може бути використане з великими розмірами PU. 22 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 Кодер і декодер можуть застосовувати фільтрування з внутрішнім згладжуванням згідно з "шаблоном піднабору", який одержаний з "шаблона моделі" (ТАБЛИЦЯ 4), який визначає для кожного розміру PU і комбінації режиму з внутрішнім прогнозуванням, чи виконане фільтрування з внутрішнім згладжуванням. "Шаблон піднабору" може бути одержаний за допомогою вибору кандидатів для фільтрування з внутрішнім згладжуванням з "шаблона моделі" для кожного режиму з внутрішнім прогнозуванням і для кожного розміру PU, або альтернативно ніякого фільтрування з внутрішнім згладжуванням для будь-якого розміру PU, що відповідає цьому режиму з внутрішнім прогнозуванням. "Шаблон піднабору", одержаний з "шаблона моделі", може мати деякі характеристики, такі як, наприклад, для кожного режиму з внутрішнім прогнозуванням фільтрування з внутрішнім згладжуванням не застосовується для щонайменше одного з розмірів PU, таким чином, кодер має опцію виконання внутрішнього прогнозування без внутрішнього згладжування. "Шаблон піднабору" може також мати деякі характеристики, такі як, наприклад, для кожного режиму з внутрішнім прогнозуванням, якщо фільтрування з внутрішнім згладжуванням не застосоване в деякому розмірі PU, фільтрування з внутрішнім згладжуванням може не бути застосоване ні в яких менших розмірах PU для цього режиму з внутрішнім прогнозуванням. Обчислення вибірок прогнозування для кожного режиму з внутрішнім прогнозуванням і комбінації розміру PU може підлягати правилам округлення, таким як округлення в меншу сторону, округлення у велику сторону або округлення до найближчого цілого числа. Правила округлення можуть бути змінені в кодері і декодері на основі місцеположення вибірки прогнозування детермінованим чином, наприклад, на основі режиму з внутрішнім прогнозуванням розміру PU, такому як перемежування вибірок прогнозування з різними правилами округлення, щоб підвищити ефективність кодування. У прикладі фільтрування з внутрішнім згладжуванням опорних вибірок для внутрішнього прогнозування фільтрування з внутрішнім згладжуванням може бути пропущене для деяких місцеположень опорної вибірки, наприклад, опорної вибірки у верхньому лівому кутку або інших місцеположеннях опорної вибірки детермінованим чином (наприклад, на основі режиму з внутрішнім прогнозуванням розміру PU), щоб збільшити ефективність кодування. В одному прикладі кодер і/або декодер можуть зберегти "шаблон піднабору" як таблицю пошуку (LUT) і одержати доступ до цієї LUT, щоб визначити, чи застосовувати фільтрування з внутрішнім згладжуванням чи ні для розміру PU, і комбінацію режиму з внутрішнім прогнозуванням, асоційовану з поточним блоком. В іншому прикладі кодер і/або декодер можуть представити "шаблон піднабору" за допомогою набору умов, що використовуються для визначення, чи застосувати фільтрування з внутрішнім згладжуванням для введення: розміру PU і режиму з внутрішнім прогнозуванням. В іншому прикладі кодер і/або декодер можуть представити "шаблон піднабору" за допомогою одного або більше математичних рівнянь, які обчислюють, чи застосовувати фільтрування з внутрішнім згладжуванням для введення: розміру PU і режиму з внутрішнім прогнозуванням. В іншому прикладі кодер і/або декодер можуть представити "шаблон піднабору" за допомогою комбінації LUT, набору умов і/або набору математичних рівнянь. В одному прикладі "шаблон моделі" (наприклад, ТАБЛИЦЯ 4) або "шаблони піднабору" (наприклад, ТАБЛИЦІ 5-7) можуть бути розширені, щоб включати в себе множинні типи фільтрів з внутрішнім згладжуванням, які можуть бути, можливо, використані для кожної комбінації розміру PU і режиму з внутрішнім прогнозуванням. Наприклад, для кожної комбінації, де застосовано фільтрування з внутрішнім згладжуванням, число в таблиці може вказати тип фільтра для використання. В одному прикладі два фільтри з внутрішнім згладжуванням можуть бути визначені і представлені за допомогою "1" та "2". Запис в таблиці, що відповідає деякій позиції ряду/колонки, може не мати ніякого запису, тобто ніякий фільтр, або "1" або "2", не застосовується для вказівки, що застосовано фільтрування з внутрішнім згладжуванням, і використовується фільтр з внутрішнім згладжуванням, тобто - або фільтр "1", або фільтр "2". У деяких прикладах HEVC може підтримувати блоки PU внутрішнього прогнозування на короткій відстані (SDIP), які можуть мати різні прямокутні розміри для кожного блока кодування (CU). В одному прикладі способи даного розкриття можуть застосовуватися до квадратних і прямокутних блоків PU, таких як такі, що використовуються у внутрішньому прогнозуванні на короткій відстані (SDIP). ТАБЛИЦЯ 8, представлена нижче, ілюструє приклади прямокутних розмірів PU (в пікселях) для кожного розміру CU SDIP. 23 UA 106936 C2 ТАБЛИЦЯ 8 Розмір CU CU 3232 CU 1616 CU 88 5 10 15 20 25 30 35 40 45 50 Можливий розмір PU 832, 328 416, 164, 116, 161 28, 82 Додатково до способів, розглянутих вище, способи даного розкриття можуть включати в себе способи для поліпшення застосування MDIS до прямокутних розділень SDIP. Наприклад, застосування фільтрування з внутрішнім згладжуванням може залежати від ширини і/або висоти прямокутного розділення SDIP. Способи для визначення розмірності фрагмента SDIP або правила визначення розмірності можуть бути використані для визначення розмірності або розмірності фрагмента. Наприклад, такі способи для визначення розмірності фрагмента SDIP можуть включати в себе визначення мінімальної або максимальної розмірності фрагмента, математичні рівняння, які обчислюють розмірності фрагмента на основі інших відомих змінних, асоційованих з фрагментом, або умовні перевірки, які можуть застосовуватися до ширини і висоти фрагмента SDIP, щоб визначити розмірність фрагмента. В одному прикладі визначена розмірність фрагмента, що одержується в результаті може бути використана для визначення, чи застосувати фільтрування з внутрішнім згладжуванням, наприклад, використовуючи одну з таблиць рішень фільтрування, описаних вище. Наприклад, способи можуть використовувати розмірність для визначення, чи виконувати фільтрування чи ні. Якщо в одному ілюстративному прикладі мінімальна розмірність становить 8 пікселів, рішення фільтрування може бути визначене на основі запису таблиці, асоційованої з блоками 3232, і відповідного режиму з внутрішнім прогнозуванням, асоційованого в цей час з розділенням, що обробляється. В одному прикладі застосування фільтрування з внутрішнім згладжуванням може бути основане на напрямку з внутрішнім прогнозуванням, асоційованому з розділенням SDIP, і/або на ширині і/або висоті фрагмента SDIP. Наприклад, коли вибраний вертикальний напрямок прогнозування, висота фрагмента може бути використана в одній з таблиць рішень фільтрування, описаних вище, і у випадку горизонтального напрямку ширина може бути використана в одній з таблиць рішень фільтрування, описаних вище. В іншому прикладі горизонтальний, вертикальний і діагональний напрямки можуть бути окремо розглянуті, щоб визначити розмірність, яка повинна бути використана. В одному прикладі, коли плоский режим використовується для фрагмента SDIP, способи визначення розмірності, як описано вище, можуть бути використані для визначення розмірності фрагмента SDIP. Визначена розмірність може бути використана для визначення, чи застосувати фільтрування з внутрішнім згладжуванням чи ні, наприклад, за допомогою одержання доступу до однієї з таблиць рішень фільтрування, описаних вище. Фіг. 8 є послідовністю операцій, що ілюструє інший зразковий спосіб для кодування відеоданих відповідно до способів даного розкриття. Хоча описано відносно відеокодера 20 з метою прикладу, повинне бути зрозуміло, що способи згідно з Фіг. 8 можуть бути виконані будьяким блоком кодування відео. Крім того, етапи, ілюстровані на Фіг. 8, можуть бути виконані в іншому порядку, деякі етапи можуть бути опущені, і додаткові етапи можуть бути додані, не відступаючи від способів даного розкриття. Відеокодер 20 може прийняти блок (наприклад, CU) відеоданих, які повинні бути закодовані. Коли поточний блок визначається як поточний блок, який повинен бути закодований, використовуючи кодування з внутрішнім прогнозуванням, відеокодер 20 може визначити поточний розмір блока і режим з внутрішнім прогнозуванням, що використовується для кодування поточного блока (етап 802). Відеокодер може потім визначити і застосувати фільтр згладжування, використовуючи таблицю фільтрів, наприклад, ТАБЛИЦЮ 7, представлену вище, на основі розміру блока і режиму з внутрішнім прогнозуванням (етап 804), як розглянуто вище. Відеокодер 20 може потім закодувати поточний блок за допомогою застосування вибраного фільтра згладжування до вибірок прогнозування і виконання кодування з внутрішнім прогнозуванням згідно з режимом з внутрішнім прогнозуванням, асоційованим з поточним блоком (етап 612). Відеокодер 20 може також закодувати елементи синтаксису, асоційовані з кодуванням з внутрішнім прогнозуванням з поточним блоком (етап 614), наприклад, один або більше елементів синтаксису, які ідентифікують режим з внутрішнім прогнозуванням. Іншими прикладами елементів синтаксису, асоційованих з кодуванням з внутрішнім прогнозуванням, які можуть бути закодовані з блоком, може бути тип фрагмента, асоційований з блоком, розмір PU, 24 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 60 розмір TU, CBP і квантовані коефіцієнти. Відеокодер 20 може потім передати закодований відеоблок в закодованому відеокадрі і з елементами синтаксису на відеодекодер (етап 616). Фіг. 9 є послідовністю операцій, що ілюструє інший зразковий спосіб для декодування відеоданих відповідно до способів даного розкриття. Хоча описано відносно відеодекодера 30 з метою прикладу, повинне бути зрозуміло, що способи Фіг. 9 можуть бути виконані будь-яким блоком кодування відео. Крім того, етапи, ілюстровані на Фіг. 9, можуть бути виконані в іншому порядку, деякі етапи можуть бути опущені, і додаткові етапи можуть бути додані, не відступаючи від способів даного розкриття. Відеодекодер 30 може прийняти закодований блок (наприклад, CU) відеоданих, які повинні бути декодовані (етап 902). Відеодекодер 30 може декодувати закодований відеоблок і елементи синтаксису, щоб визначити, що блок закодований, використовуючи кодування з внутрішнім прогнозуванням (етап 904). На основі елементів синтаксису відеодекодер 30 може також визначити режим з внутрішнім прогнозуванням блока (етап 906). Відеодекодер 30 може потім декодувати блок, що використовує кодування з внутрішнім прогнозуванням, і застосувати фільтр згладжування, вибраний з тієї самої таблиці фільтрування, наприклад, ТАБЛИЦІ 7, що використовується під час кодування, на основі розміру блока і режиму з внутрішнім прогнозуванням (етап 908). У цьому способі відеодекодеру 30 немає необхідності робити будьякі визначення відносно опцій фільтрування, крім вибору фільтра з таблиці фільтрів. В одному або більше прикладах описані функції можуть бути реалізовані в апаратному забезпеченні, програмному забезпеченні, програмно-апаратному забезпеченні або будь-якій їх комбінації. Якщо реалізовано в програмному забезпеченні, функції можуть бути збережені на або передані як одна або більше команд або код за допомогою зчитуваного комп'ютером носія і виконані на основі апаратного забезпечення за допомогою блока обробки. Зчитувані комп'ютером носії можуть включати в себе запам'ятовуючі зчитувані комп'ютером носії, які відповідають матеріальному носію, такому як запам'ятовуючі носії даних, або комунікаційні носії, що включають в себе будь-який носій, який полегшує передачу комп'ютерної програми від одного місця до іншого, наприклад, згідно з протоколом зв'язку. У цьому способі зчитуваний комп'ютером носій в цілому може відповідати (1) матеріальним зчитуваним комп'ютером запам'ятовуючим носіям, які є нетимчасовими, або (2) комунікаційному носію, такому як сигнал або несуча. Запам'ятовуючі носії даних можуть бути будь-якими доступними носіями, які можуть бути доступні за допомогою одного або більше комп'ютерів або одного або більше процесорів, щоб витягнути команди, код і/або структури даних для реалізації способів, описаних в даному розкритті. Комп'ютерний програмний продукт може включати в себе зчитуваний комп'ютером носій. За допомогою прикладу, а не обмеження, такі зчитувані комп'ютером носії можуть містити RAM, ROM, EEPROM, CD-ROM або інший запам'ятовуючий пристрій на оптичних дисках, запам'ятовуючий пристрій на магнітних дисках або інші магнітні запам'ятовуючі пристрої, флешпам'ять або будь-який інший носій, який може бути використаний, щоб зберігати бажаний програмний код в формі команд або структур даних, і який може бути доступним за допомогою комп'ютера. Крім того, будь-яке з'єднання належно називається зчитуваним комп'ютером носієм. Наприклад, якщо команди передаються від вебсайта, сервера або іншого віддаленого джерела, використовуючи коаксіальний кабель, волоконно-оптичний кабель, виту пару, абонентську цифрову лінію (DSL) або бездротові технології, такі як інфрачервоне випромінювання, радіо і мікрохвилі, то цей коаксіальний кабель, волоконно-оптичний кабель, вита пара, DSL або бездротові технології, такі як інфрачервоне випромінювання, радіо і мікрохвилі, включаються у визначення носія. Однак повинне бути зрозуміло, що запам'ятовуючі зчитувані комп'ютером носії і запам'ятовуючі носії даних не включають в себе з'єднання, несучі, сигнали або інші тимчасові носії, але замість цього направлені на нетимчасові, матеріальні запам'ятовуючі носії. Диск (disk) і диск (disc), як використовуються в даному описі, включають в себе компакт-диск (CD), лазерний диск, оптичний диск, універсальний цифровий диск (DVD), дискету і диск blue-ray, де диски (disks) звичайно відтворюють дані магнітним способом, в той час як диски (discs) відтворюють дані оптичним чином за допомогою лазерів. Комбінації вищезазначеного повинні бути також включені в поняття зчитуваних комп'ютером носіїв. Команди можуть бути виконані одним або більше процесорами, наприклад, одним або більше цифровими сигнальними процесорами (процесорами DSP), мікропроцесорами загального призначення, спеціалізованими інтегральними схемами (схемами ASIC), програмованими користувачем вентильними матрицями (матрицями FPGA) або іншою еквівалентною інтегрованою або дискретною логічною схемою. Відповідно, термін, що використовується в даному описі "процесор" може відноситися до будь-якої попередньої структури або будь-якої іншої структури, підходящої для реалізації способів, описаних в даному 25 UA 106936 C2 5 10 15 20 25 30 35 40 45 описі. Додатково, в деяких аспектах функціональні можливості, описані в даному описі, можуть бути забезпечені в межах спеціалізованих модулів апаратного забезпечення і/або програмного забезпечення, сконфігурованих для кодування і декодування або об'єднаних в об'єднаний кодек. Крім того, способи можуть бути повністю реалізовані в одній або більше схемах або логічних елементах. Способи даного розкриття можуть бути реалізовані в широкій різноманітності пристроїв або приладів, що включають в себе бездротову телефонну трубку, інтегральну схему (IC) або набір схем IC (наприклад, набір мікросхем). Різні компоненти, модулі або блоки описані в даному розкритті, щоб підкреслити функціональні аспекти пристроїв, сконфігурованих для виконання розкритих способів, але необов'язково вимагати реалізації за допомогою різних блоків апаратного забезпечення. Замість цього, як описано вище, різні блоки можуть бути об'єднані в блоці апаратного забезпечення кодека або забезпечені колекцією взаємодіючих блоків апаратного забезпечення, що включають в себе один або більше процесорів, як описано вище в з'єднанні з підходящим програмним забезпеченням і/або програмно-апаратним забезпеченням. Посилальні позиції 10 система кодування і декодування відео 12 вихідний пристрій 14 приймальний пристрій 16 канал зв'язку 18 джерело відео 20 відеокодер 22 модулятор/демодулятор (модем) 24 передавач 26 приймач 28 модем 30 відеодекодер 32 пристрій відображення 40 модуль вибору режиму 41 модуль прогнозування 42 модуль оцінки 44 модуль компенсації руху 46 модуль внутрішнього прогнозування 50, 62 модуль підсумовування 52 модуль перетворення 54 модуль квантування 56 модуль статистичного кодування 58 модуль оберненого квантування 60 модуль оберненого перетворення 64 сховище опорних кадрів 70 модуль статистичного декодування 71 модуль прогнозування 72 модуль компенсації руху 74 модуль внутрішнього прогнозування 76 модуль оберненого квантування 78 модуль оберненого перетворення 80 блок підсумовування 82 сховище опорних кадрів ФОРМУЛА ВИНАХОДУ 50 55 1. Спосіб кодування відеоданих, причому спосіб включає: визначення розміру блока, асоційованого з поточним блоком відеоданих, причому розмір блока визначений з множини розмірів блока, які включають в себе розмір блока 4×4, розмір блока 8×8, розмір блока 16×16 і розмір блока 32×32; визначення режиму кодування з внутрішнім прогнозуванням, асоційованого з поточним блоком відеоданих, причому режим кодування з внутрішнім прогнозуванням визначений з множини режимів кодування з внутрішнім прогнозуванням, що включають в себе горизонтальний режим, вертикальний режим, плоский режим, множину діагональних режимів, включаючи верхній лівий діагональний режим і верхній правий діагональний режим, нижній лівий діагональний режим і 26 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 60 режим DC, і при цьому множина діагональних режимів включає в себе множину режимів, які є безпосередньо суміжними з горизонтальним режимом або вертикальним режимом; вибір фільтра з таблиці фільтрів для застосування до поточного блока на основі розміру блока і режиму кодування, причому на основі згаданого вибору фільтрування не застосовується до розміру блока 4×4, тільки плоский режим, верхні ліві діагональні режими, верхній правий діагональний режим і нижній лівий діагональний режим фільтруються для розміру блока 8×8, плоский режим фільтрується і всі режими з прогнозуванням, за винятком горизонтального режиму, вертикального режиму, режиму DC і режимів, безпосередньо суміжних з горизонтальним режимом або вертикальним режимом для розміру блока 16×16, і плоский режим фільтрується і всі режими з прогнозуванням, за винятком горизонтального режиму, вертикального режиму і режиму DC для розміру блока 32×32; і кодування з внутрішнім прогнозуванням поточного блока, причому кодування з внутрішнім прогнозуванням поточного блока включає використання вибраного фільтра для фільтрування пікселів, що використовуються для прогнозування поточного блока. 2. Спосіб за пунктом 1, в якому етап вибору фільтра включає вибір з першої таблиці фільтрів фільтра, що відповідає розміру блока і режиму кодування. 3. Спосіб за пунктом 1, в якому етап вибору фільтра включає: вибір з першої таблиці фільтрів фільтра, що відповідає розміру блока і режиму кодування, коли розмір блока менший, ніж пороговий розмір блока; і визначення, чи вибрати фільтр, що відповідає розміру блока і режиму кодування, з першої таблиці фільтрів або другої таблиці фільтрів, коли розмір блока дорівнює або більший, ніж пороговий розмір блока. 4. Спосіб за пунктом 3, в якому етап визначення, чи вибрати фільтр з першої таблиці фільтрів або другої таблиці фільтрів, включає: використання вибраного фільтра для фільтрування вибірок прогнозування; використання вибраного фільтра для фільтрування вибірок прогнозування; оцінювання першого результату застосування фільтра з першої таблиці фільтрів і другого результату застосування фільтра з другої таблиці фільтрів, щоб визначити, який призводить до кращих результатів; і вибір фільтра з першої таблиці фільтрів або другої таблиці фільтрів на основі цього визначення. 5. Спосіб за пунктом 4, який додатково включає кодування індикації фільтрування, коли вибраний фільтр вибраний з другої таблиці фільтрів. 6. Спосіб за пунктом 1, в якому етап кодування поточного блока включає етап декодування поточного блока, при цьому поточний блок містить блок відеоданих, закодованих, використовуючи кодування з внутрішнім прогнозуванням, причому спосіб додатково включає: визначення, чи включає в себе закодований поточний блок індикацію фільтрування, при цьому етап вибору фільтра включає вибір з першої таблиці фільтрів фільтра, що відповідає розміру блока і режиму кодування, коли закодований поточний блок не включає в себе індикацію фільтрування, і при цьому етап вибору фільтра включає вибір з другої таблиці фільтрів фільтра, що відповідає розміру блока і режиму кодування, коли закодований поточний блок включає в себе індикацію фільтрування. 7. Спосіб за пунктом 1, в якому таблиця фільтрів містить записи, що відповідають різним комбінаціям розмірів блока і режимів кодування, і при цьому кожен з записів містить фільтр, вибраний з набору фільтрів. 8. Спосіб за пунктом 7, в якому набір фільтрів містить щонайменший два фільтри, і при цьому один з фільтрів містить всепропускний фільтр. 9. Спосіб за пунктом 1, який додатково включає: визначення, чи застосовувати фільтрування до поточного блока на основі розміру блока і режиму кодування, використовуючи таблицю рішень фільтрування; і вибір фільтра з таблиці фільтрів, якщо фільтрування повинне бути застосоване до поточного блока. 10. Спосіб за пунктом 1, в якому поточний блок містить блок прогнозування, закодований згідно з внутрішнім прогнозуванням на короткій відстані (SDIP). 11. Спосіб за пунктом 10, який додатково містить: визначення розмірності, асоційованої з поточним блоком; і визначення розміру блока на основі цієї розмірності, використовуючи набір правил визначення розмірності. 12. Пристрій для кодування відеоданих, причому пристрій містить: процесор, сконфігурований для визначення розміру блока, асоційованого з поточним блоком відеоданих, причому розмір блока визначений з множини розмірів блока, що включають в себе 27 UA 106936 C2 5 10 15 20 25 30 35 40 45 50 55 60 розмір блока 4×4, розмір блока 8×8, розмір блока 16×16 і розмір блока 32×32, визначення режиму кодування з внутрішнім прогнозуванням, асоційованого з поточним блоком відеоданих, причому режим кодування з внутрішнім прогнозуванням визначений з множини режимів кодування з внутрішнім прогнозуванням, що включають в себе горизонтальний режим, вертикальний режим, плоский режим, множину діагональних режимів, включаючи верхній лівий діагональний режим і верхній правий діагональний режим, нижній лівий діагональний режим і режим DC, і при цьому множина діагональних режимів включають в себе множину режимів, які є безпосередньо суміжними з горизонтальним режимом або вертикальним режимом, вибору фільтра з таблиці фільтрів для застосування до поточного блока на основі розміру блока і режиму кодування, причому на основі згаданого вибору фільтрування не застосовується до розміру блока 4×4, тільки плоский режим, верхні ліві діагональні режими, верхній правий діагональний режим і нижній лівий діагональний режим фільтруються для розміру блока 8×8, плоский режим фільтрується і всі режими з прогнозуванням, за винятком горизонтального режиму, вертикального режиму, режиму DC і режимів, безпосередньо суміжних з горизонтальним режимом або вертикальним режимом для розміру блока 16×16, і плоский режим фільтрується і всі режими з прогнозуванням, за винятком горизонтального режиму, вертикального режиму та режиму DC для розміру блока 32×32, і кодування з внутрішнім прогнозуванням поточного блока, причому кодування з внутрішнім прогнозуванням поточного блока включає використання вибраного фільтра для фільтрування пікселів, що використовуються для прогнозування поточного блока. 13. Пристрій за пунктом 12, в якому, щоб вибрати фільтр, процесор сконфігурований для вибору з першої таблиці фільтрів фільтра, що відповідає розміру блока і режиму кодування. 14. Пристрій за пунктом 12, в якому, щоб вибрати фільтр, процесор додатково сконфігурований для: вибору з першої таблиці фільтрів фільтра, що відповідає розміру блока і режиму кодування, коли розмір блока менший, ніж пороговий розмір блока; і визначення, чи вибрати фільтр, що відповідає розміру блока і режиму кодування, з першої таблиці фільтрів або другої таблиці фільтрів, коли розмір блока дорівнює або більший, ніж пороговий розмір блока. 15. Пристрій за пунктом 14, в якому, щоб визначити, чи вибрати фільтр з першої таблиці фільтрів або другої таблиці фільтрів, процесор додатково сконфігурований для: використання вибраного фільтра для фільтрування вибірок прогнозування; використання вибраного фільтра для фільтрування вибірок прогнозування; оцінювання першого результату застосування фільтра з першої таблиці фільтрів і другого результату застосування фільтра з другої таблиці фільтрів, щоб визначити, який призводить до кращих результатів; і вибору фільтра з першої таблиці фільтрів або другої таблиці фільтрів на основі цього визначення. 16. Пристрій за пунктом 15, в якому процесор додатково сконфігурований для кодування індикації фільтрування, коли вибраний фільтр вибраний з другої таблиці фільтрів. 17. Пристрій за пунктом 14, який додатково містить пам'ять, сконфігуровану для зберігання першої таблиці фільтрів і другої таблиці фільтрів. 18. Пристрій за пунктом 12, в якому пристрій містить відеодекодер, при цьому поточний блок містить блок відеоданих, закодований, використовуючи кодування з внутрішнім прогнозуванням, причому процесор додатково сконфігурований для: визначення, чи включає в себе закодований поточний блок індикацію фільтрування, при цьому, щоб вибрати фільтр, процесор додатково сконфігурований для вибору з першої таблиці фільтрів фільтра, що відповідає розміру блока і режиму кодування, коли закодований поточний блок не включає в себе індикацію фільтрування, і при цьому, щоб вибрати фільтр, процесор додатково сконфігурований для вибору з другої таблиці фільтрів фільтра, що відповідає розміру блока і режиму кодування, коли закодований поточний блок включає в себе індикацію фільтрування. 19. Пристрій за пунктом 12, в якому таблиця фільтрів містить записи, що відповідають різним комбінаціям розмірів блока і режимам кодування, і при цьому кожен з записів містить фільтр, вибраний з набору фільтрів. 20. Пристрій за пунктом 19, в якому набір фільтрів містить щонайменший два фільтри, і при цьому один з фільтрів містить всепропускний фільтр. 21. Пристрій за пунктом 12, в якому процесор додатково сконфігурований для: визначення, чи застосовувати фільтрування до поточного блока на основі розміру блока і режиму кодування, використовуючи таблицю рішень фільтрування; і 28

Дивитися

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

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

Intra smoothing filter for video coding

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

Van Der Auwera, Geert, Wang, Xianglin, Coban, Muhammed, Zeyd, Karczewicz, Marta, Zheng, Yunfei

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

Ван Дер Аувера Герт, Ван Сянлинь, Кобан Мухаммед Зейд, Карчевич Марта, Чжен Юньфей

МПК / Мітки

МПК: H04N 7/00

Мітки: відео, фільтр, згладжуванням, внутрішнім, кодування

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

<a href="https://ua.patents.su/40-106936-filtr-z-vnutrishnim-zgladzhuvannyam-dlya-koduvannya-video.html" target="_blank" rel="follow" title="База патентів України">Фільтр з внутрішнім згладжуванням для кодування відео</a>

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