Визначення контекстів для кодування даних коефіцієнтів перетворення при кодуванні відео
Номер патенту: 112674
Опубліковано: 10.10.2016
Автори: Сєрьогін Вадім, Карчєвіч Марта, Соле Рохальс Хоель
Формула / Реферат
1. Спосіб декодування відеоданих, що включає етапи, на яких:
- визначають, що перший коефіцієнт перетворення першого відеоблока є DC-коефіцієнтом перетворення, при цьому перший відеоблок містить множину підблоків;
- визначають перший контекст для ентропійного декодування першого коефіцієнта перетворення на основі того, що перший коефіцієнт перетворення є DC-коефіцієнтом перетворення, без урахування першого розміру першого відеоблока;
- визначають, що другий коефіцієнт перетворення першого відеоблока не є DC-коефіцієнтом перетворення,
- на основі того, що другий коефіцієнт перетворення не є DC-коефіцієнтом перетворення, визначають другий контекст для ентропійного декодування другого коефіцієнта перетворення на основі, щонайменше частково, того, який з підблоків включає в себе другий коефіцієнт перетворення;
- визначають, чи є третій коефіцієнт перетворення другого відеоблока DC-коефіцієнтом перетворення, при цьому другий відеоблок має другий розмір, відмітний від першого розміру першого відеоблока;
- коли третій коефіцієнт перетворення визначений як DC-коефіцієнт перетворення другого відеоблока, визначають перший контекст для ентропійного декодування третього коефіцієнта перетворення на основі того, що третій коефіцієнт перетворення є DC-коефіцієнтом перетворення другого відеоблока, без урахування другого розміру;
- ентропійно декодують перший коефіцієнт перетворення з використанням першого контексту;
- ентропійно декодують другий коефіцієнт перетворення з використанням другого контексту; і
- ентропійно декодують третій коефіцієнт перетворення з використанням першого контексту.
2. Спосіб за п. 1, в якому визначення першого контексту включає етап, на якому вибирають перший контекст з даних, які відображають DC-коефіцієнт перетворення на перший контекст для множини різних розмірів відеоблоків.
3. Спосіб за п. 2, в якому множина різних розмірів відеоблоків включає в себе відеоблоки 4×4 і відеоблоки 8×8.
4. Спосіб за п. 1, в якому ентропійне декодування першого коефіцієнта перетворення включає етап, на якому ентропійно декодують перший коефіцієнт перетворення з використанням першого контексту згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС).
5. Пристрій для декодування відеоданих, який містить:
пам'ять, виконану з можливістю збереження відеоданих; та
відеодекодер, виконаний з можливістю
- визначення, що перший коефіцієнт перетворення першого відеоблока з відеоданих є DC-коефіцієнтом перетворення, при цьому перший відеоблок містить множину підблоків,
- визначення першого контексту для ентропійного декодування першого коефіцієнта перетворення на основі того, що перший коефіцієнт перетворення є DC-коефіцієнтом перетворення, без урахування першого розміру першого відеоблока,
- визначення, що другий коефіцієнт перетворення першого відеоблока не є DC-коефіцієнтом перетворення;
- на основі того, що другий коефіцієнт перетворення не є DC-коефіцієнтом перетворення, визначення другого контексту для ентропійного декодування другого коефіцієнта перетворення на основі, щонайменше частково, того, який з підблоків включає в себе другий коефіцієнт перетворення;
- визначення, чи є третій коефіцієнт перетворення другого відеоблока DC-коефіцієнтом перетворення, при цьому другий відеоблок має другий розмір, відмінний від першого розміру першого відеоблока;
- коли третій коефіцієнт перетворення визначений як DC-коефіцієнт перетворення другого відеоблока, визначення першого контексту для ентропійного декодування третього коефіцієнта перетворення на основі того, що третій коефіцієнт перетворення є DC-коефіцієнтом перетворення другого відеоблока, без урахування другого розміру;
- ентропійного декодування першого коефіцієнта перетворення з використанням першого контексту;
ентропійного декодування другого коефіцієнта перетворення з використанням другого контексту;
- ентропійного декодування третього коефіцієнта перетворення з використанням першого контексту.
6. Пристрій за п. 5, в якому, коли коефіцієнт перетворення містить DC-коефіцієнт перетворення, відеодекодер виконаний з можливістю вибирати перший контекст з даних, які відображають DC-коефіцієнт перетворення на перший контекст для множини різних розмірів відеоблоків.
7. Пристрій за п. 6, в якому множина різних розмірів відеоблоків включає в себе відеоблоки 4×4 і відеоблоки 8×8.
8. Пристрій за п. 5, в якому, для того, щоб ентропійно декодувати перший коефіцієнт перетворення, відеодекодер виконаний з можливістю ентропійно декодувати перший коефіцієнт перетворення з використанням першого контексту згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС).
9. Пристрій для декодування відеоданих, який містить:
- засіб для визначення, що коефіцієнт перетворення першого відеоблока є DC-коефіцієнтом перетворення, при цьому перший відеоблок містить множину підблоків;
- засіб для визначення першого контексту для ентропійного декодування першого коефіцієнта перетворення на основі того, що перший коефіцієнт перетворення є DC-коефіцієнтом перетворення, без урахування першого розміру першого відеоблока; і
- засіб для визначення, що другий коефіцієнт перетворення першого відеоблока не є DC-коефіцієнтом перетворення;
- засіб для визначення на основі того, що другий коефіцієнт перетворення не є DC-коефіцієнтом перетворення, другого контексту для ентропійного декодування другого коефіцієнта перетворення на основі, щонайменше частково, того, який з підблоків включає в себе другий коефіцієнт перетворення;
- засіб для визначення, чи є третій коефіцієнт перетворення другого відеоблока DC-коефіцієнтом перетворення, при цьому другий відеоблок має другий розмір, відмітний від першого розміру першого відеоблока;
- засіб для визначення, коли третій коефіцієнт перетворення визначений як DC-коефіцієнт перетворення другого відеоблока, першого контексту для ентропійного декодування третього коефіцієнта перетворення на основі того, що третій коефіцієнт є DC-коефіцієнтом перетворення другого відеоблока, без урахування другого розміру;
- засіб для ентропійного декодування першого коефіцієнта перетворення з використанням першого контексту;
- засіб для ентропійного декодування другого коефіцієнта перетворення з використанням другого контексту; і
- засіб для ентропійного декодування третього коефіцієнта перетворення з використанням першого контексту.
10. Пристрій за п. 9, в якому засіб для визначення першого контексту містить засіб для вибору першого контексту з даних, які відображають DC-коефіцієнт перетворення на перший контекст для множини різних розмірів відеоблоків.
11. Пристрій за п. 10, в якому множина різних розмірів відеоблоків перетворення включає в себе відеоблоки 4×4 і відеоблоки 8×8.
12. Пристрій за п. 9, в якому засіб для ентропійного декодування першого коефіцієнта перетворення включає засіб для ентропійного декодування першого коефіцієнта перетворення з використанням першого контексту згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС).
13. Зчитуваний комп'ютером носій даних, який зберігає інструкції, які при виконанні спонукають процесор:
- визначати, що перший коефіцієнт перетворення першого відеоблока є DC-коефіцієнтом перетворення, при цьому перший відеоблок містить множину підблоків;
- визначати перший контекст для ентропійного декодування першого коефіцієнта перетворення на основі того, що перший коефіцієнт перетворення є DC-коефіцієнтом перетворення, без урахування першого розміру першого блока;
- визначати, що другий коефіцієнт перетворення першого відеоблока не є DC-коефіцієнтом перетворення;
- на основі того, що другий коефіцієнт перетворення не є DC-коефіцієнтом перетворення, визначати другий контекст для ентропійного декодування другого коефіцієнту перетворення на основі, щонайменше частково, того, який з підблоків включає в себе другий коефіцієнт перетворення;
- визначати, чи є третій коефіцієнт перетворення другого відеоблока DC-коефіцієнтом перетворення, при цьому другий відеоблок має другий розмір, відмітний від першого розміру першого відеоблока;
- коли третій коефіцієнт перетворення визначений як DC-коефіцієнт перетворення другого відеоблока, визначати перший контекст для ентропійного декодування другого коефіцієнта перетворення на основі того, що третій коефіцієнт перетворення є DC-коефіцієнтом перетворення другого відеоблока, без урахування другого розміру; і
- ентропійно декодувати коефіцієнт перетворення з використанням першого контексту;
- ентропійно декодувати другий коефіцієнт перетворення з використанням другого контексту; і
- ентропійно декодувати третій коефіцієнт перетворення з використанням першого контексту.
14. Зчитуваний комп'ютером носій даних за п. 13, в якому інструкції, які спонукають процесор визначати перший контекст, містять інструкції, які спонукають процесор вибирати перший контекст з даних, які відображають DC-коефіцієнт перетворення на перший контекст для множини різних розмірів відеоблоків.
15. Зчитуваний комп'ютером носій даних за п. 14, в якому множина різних розмірів відеоблоків включає в себе відеоблоки 4×4 і відеоблоки 8×8.
16. Зчитуваний комп'ютером носій даних за п. 13, в якому інструкції, які спонукають процесор ентропійно декодувати перший коефіцієнт перетворення, містять інструкції, які спонукають процесор ентропійно декодувати перший коефіцієнт перетворення з використанням першого контексту згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС).
17. Спосіб кодування відеоданих, який включає етапи, на яких:
- визначають, що перший коефіцієнт перетворення першого відеоблока є DC-коефіцієнтом перетворення, при цьому перший відеоблок включає множину підблоків;
- визначають перший контекст для ентропійного кодування першого коефіцієнта перетворення на основі того, що перший коефіцієнт перетворення є DC-коефіцієнтом перетворення, без урахування першого розміру першого відеоблока;
- визначають, що другий коефіцієнт перетворення першого відеоблока не є DC-коефіцієнтом перетворення;
- на основі того, що другий коефіцієнт перетворення не є DC-коефіцієнтом перетворення, визначають другий контекст для ентропійного кодування другого коефіцієнта перетворення на основі, щонайменше частково, того, який з підблоків включає в себе другий коефіцієнт перетворення;
- визначають, чи є третій коефіцієнт перетворення другого відеоблока DC-коефіцієнтом перетворення, при цьому другий відеоблок має другий розмір, відмітний від першого розміру першого відеоблока;
- коли третій коефіцієнт перетворення визначений як DC-коефіцієнт перетворення другого відеоблока, визначають перший контекст для ентропійного кодування третього коефіцієнта перетворення на основі того, що третій коефіцієнт перетворення є DC-коефіцієнтом перетворення другого відеоблока, без урахування другого розміру;
- ентропійно кодують перший коефіцієнт перетворення з використанням першого контексту;
- ентропійно кодують другий коефіцієнт перетворення з використанням другого контексту;
- ентропійно кодують третій коефіцієнт перетворення з використанням першого контексту.
18. Спосіб за п. 17, в якому визначення першого контексту включає етап, на якому вибирають перший контекст з даних, які відображають DC-коефіцієнт перетворення на перший контекст для множини різних розмірів відеоблоків.
19. Спосіб за п. 18, в якому множина різних розмірів відеоблоків включає в себе відеоблоки 4×4 і відеоблоки 8×8.
20. Спосіб за п. 17, в якому ентропійне кодування першого коефіцієнта перетворення включає етап, на якому ентропійно кодують перший коефіцієнт перетворення з використанням першого контексту згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС).
21. Пристрій для кодування відеоданих, який містить:
пам'ять, виконану з можливістю зберігання відеоданих; та
відеокодер, виконаний з можливістю:
- визначення, що перший коефіцієнт перетворення першого відеоблока з відеоданих є DC-коефіцієнтом перетворення, при цьому відеоблок містить множину підблоків,
- визначення першого контексту для ентропійного кодування першого коефіцієнта перетворення на основі того, що перший коефіцієнт перетворення є DC-коефіцієнтом перетворення, без врахування першого розміру першого відеоблока,
- визначення, що другий коефіцієнт перетворення першого відеоблока не є DC-коефіцієнтом перетворення;
- на основі того, що другий коефіцієнт перетворення не є DC-коефіцієнтом перетворення, визначення другого контексту для ентропійного кодування другого коефіцієнта перетворення на основі, щонайменше частково, того, який з підблоків включає в себе коефіцієнт перетворення;
- визначення, чи є третій коефіцієнт перетворення другого відеоблока DC-коефіцієнтом перетворення, при цьому другий відеоблок має другий розмір, відмітний від першого розміру першого відеоблока,
- коли третій коефіцієнт перетворення визначено як DC-коефіцієнт перетворення другого відеоблока, визначення першого контексту для ентропійного кодування третього коефіцієнта перетворення на основі того, що третій коефіцієнт перетворення є DC-коефіцієнтом перетворення другого відеоблока, без урахування другого розміру;
ентропійного кодування першого коефіцієнта перетворення з використанням першого контексту;
ентропійного кодування другого коефіцієнта перетворення з використанням другого контексту; і
ентропійного кодування третього коефіцієнта перетворення з використанням першого контексту.
22. Пристрій за п. 21, в якому, коли коефіцієнт перетворення містить DC-коефіцієнт перетворення, відеокодер виконаний з можливістю вибирати перший контекст з даних, які відображають DC-коефіцієнт перетворення на перший контекст для множини різних розмірів відеоблоків.
23. Пристрій за п. 22, в якому множина різних розмірів відеоблоків включає в себе відеоблоки 4×4 і відеоблоки 8×8.
24. Пристрій за п. 21, в якому, для того, щоб ентропійно кодувати перший коефіцієнт перетворення, відеокодер виконаний з можливістю ентропійно кодувати перший коефіцієнт перетворення з використанням першого контексту згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС).
25. Пристрій для кодування відеоданих, який містить:
- засіб для визначення, що коефіцієнт перетворення першого відеоблока є DC-коефіцієнтом перетворення, при цьому перший відеоблок містить множину подблоків;
- засіб для визначення першого контексту для ентропійного кодування першого коефіцієнта перетворення на основі того, що перший коефіцієнт перетворення є DC-коефіцієнтом перетворення, без урахування першого розміру першого відеоблока;
- засіб для визначення, що другий коефіцієнт перетворення першого відеоблока не є DC-коефіцієнтом перетворення;
- засіб для визначення контексту на основі того, що другий коефіцієнт перетворення не є DC-коефіцієнтом перетворення, другого контексту для ентропійного кодування другого коефіцієнта перетворення на основі, щонайменше частково, того, який з підблоків включає в себе другий коефіцієнт перетворення;
- засіб для визначення, чи є третій коефіцієнт перетворення другого відеоблока DC-коефіцієнтом перетворення, при цьому другий відеоблок має другий розмір, відмітний від першого розміру першого відеоблока;
- засіб для визначення, коли третій коефіцієнт перетворення визначено як DC-коефіцієнт перетворення другого відеоблока, першого контексту для ентропійного кодування третього коефіцієнта перетворення на основі того, що третій коефіцієнт перетворення є DC-коефіцієнтом перетворення другого відеоблока, без урахування другого розміру;
- засіб для ентропійного кодування першого коефіцієнта перетворення з використанням першого контексту;
- засіб для ентропійного кодування другого коефіцієнта перетворення з використанням другого контексту; і
- засіб для ентропійного кодування третього коефіцієнта перетворення з використанням першого контексту.
26. Пристрій за п. 25, в якому засіб для визначення першого контексту містить засіб для вибору першого контексту з даних, які відображають DC-коефіцієнт перетворення на перший контекст для множини різних розмірів відеоблоків.
27. Пристрій за п. 26, в якому множина різних розмірів відеоблоків включає в себе відеоблоки 4×4 і відеоблоки 8×8.
28. Пристрій за п. 25, в якому засіб для ентропійного кодування першого коефіцієнта перетворення включає засіб для ентропійного кодування першого коефіцієнта перетворення з використанням першого контексту згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС).
29. Зчитуваний комп'ютером носій даних, який зберігає інструкції, які при виконанні спонукають процесор:
- визначати, що перший коефіцієнт перетворення першого відеоблока є DC-коефіцієнтом перетворення, при цьому перший відеоблок містить множину підблоків;
- визначати перший контекст для ентропійного кодування першого коефіцієнта перетворення на основі того, що перший коефіцієнт перетворення є DC-коефіцієнтом перетворення, без урахування першого розміру першого відеоблока;
- визначати, що другий коефіцієнт перетворення першого відеоблока не є DC-коефіцієнтом перетворення;
- на основі того, що другий коефіцієнт перетворення не є DC-коефіцієнтом перетворення, визначати другий контекст для ентропійного кодування другого коефіцієнта перетворення на основі, щонайменше частково, того, який з підблоків включає в себе другий коефіцієнт перетворення;
- визначати, чи є третій коефіцієнт перетворення другого відеоблока DC-коефіцієнтом перетворення, при цьому другий відеоблок має другий розмір, відмітний від першого розміру першого відеоблока;
- коли третій коефіцієнт перетворення визначено як DC-коефіцієнт перетворення другого відеоблока, визначати перший контекст для ентропійного кодування другого коефіцієнта перетворення на основі того, що третій коефіцієнт перетворення є DC-коефіцієнтом перетворення другого відеоблока, без урахування другого розміру;
- ентропійно кодувати коефіцієнт перетворення з використанням першого контексту;
- ентропійно кодувати другий коефіцієнт перетворення з використанням другого контексту; і
- ентропійно кодувати третій коефіцієнт перетворення з використанням першого контексту.
30. Зчитуваний комп'ютером носій даних за п. 29, в якому інструкції, які спонукають процесор визначати перший контекст, містять інструкції, які спонукають процесор вибирати перший контекст з даних, які відображають DC-коефіцієнт перетворення на перший контекст для множини різних розмірів відеоблоків.
31. Зчитуваний комп'ютером носій даних за п. 30, в якому множина різних розмірів відеоблоків перетворення включає в себе відеоблоки 4×4 і відеоблоки 8×8.
32. Зчитуваний комп'ютером носій даних за п. 29, в якому інструкції, які спонукають процесор ентропійно кодувати перший коефіцієнт перетворення, містять інструкції, які спонукають процесор ентропійно кодувати коефіцієнт перетворення з використанням першого контексту згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС).
Текст
Реферат: У одному прикладі, пристрій для кодування відеоданих включає в себе відеокодер, виконаний з можливістю визначати те, являє собою чи ні коефіцієнт перетворення відеоблока DCкоефіцієнт перетворення, коли визначається те, що коефіцієнт перетворення являє собою DCкоефіцієнт перетворення відеоблока, визначати контекст для кодування коефіцієнта перетворення на основі того, що коефіцієнт перетворення являє собою DC-коефіцієнт перетворення, без урахування розміру відеоблока, і ентропійно кодувати коефіцієнт перетворення з використанням визначеного контексту. UA 112674 C2 (12) UA 112674 C2 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 Дана заявка вимагає пріоритет попередньої заявки на патент (США) порядковий номер 61/586668, поданої 13 січня 2012 року, попередньої заявки на патент (США) порядковий номер 61/588595, поданої 19 січня 2012 року, і попередньої заявки на патент (США) порядковий номер 61/597097, поданої 9 лютого 2012 року, кожна з яких цим повністю міститься в даному документі по посиланню. Галузь техніки, до якої належить винахід Дане розкриття суті стосується кодування відео. Рівень техніки Підтримка цифрового відео може бути включена в широкий діапазон пристроїв, що включають в себе цифрові телевізійні приймачі, системи цифрової прямої широкомовної передачі, бездротові широкомовні системи, персональні цифрові пристрої (PDA), переносні або настільні комп'ютери, планшетні комп'ютери, пристрої для читання електронних книг, цифрові камери, цифрові пристрої запису, цифрові мультимедійні програвачі, пристрої відеоігор, консолі для відеоігор, стільникові або супутникові радіотелефони, так звані "смартфони", пристрої відеоконференцзв'язку, пристрої потокової передачі відео і т. п. Цифрові відеопристрої реалізовують такі технології стиснення відео, як технології стиснення відео, описані в стандартах, заданих за допомогою розроблюваних на даний час стандартів MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, частина 10, вдосконалене кодування відео (AVC), стандарту високоефективного кодування відео (HEVC), і розширень таких стандартів. Відеопристрої можуть передавати, приймати, кодувати, декодувати і/або зберігати цифрову відеоінформацію більш ефективно за допомогою реалізації таких технологій стиснення відео. Технології стиснення відео виконують просторове (внутрішньокадрове) прогнозування і/або часове (міжкадрове) прогнозування для того, щоб зменшувати або видаляти надмірність, властиву внутрішньо відеопослідовностям. Для блокового кодування відео слайс (вирізка) (тобто відеокадр або частина відеокадру) може бути сегментований на відеоблоки, які також можуть згадуватися як деревовидні блоки, одиниці кодування (CU) і/або вузли кодування. Відеоблоки у кодованому внутрішньо (інтра) (I) слайсі зображення кодуються з використанням просторового прогнозування відносно опорних вибірок в сусідніх блоках в ідентичному зображенні. Відеоблоки у кодованому зовнішньо (інтер) (Р або В) слайсі зображення можуть використовувати просторове прогнозування відносно опорних вибірок в сусідніх блоках в ідентичному зображенні або часове прогнозування відносно опорних вибірок в інших опорних зображеннях. Зображення можуть згадуватися як кадри, і опорні зображення можуть згадуватися як опорні кадри. Просторове або часове прогнозування приводить в результаті до прогнозного блока для блока, який повинен бути кодований. Залишкові дані представляють пікселні різниці між вихідним блоком, який повинен бути кодований, і прогнозним блоком. Кодований зовнішньо блок кодується згідно з вектором руху, який вказує на блок опорних вибірок, що формують прогнозний блок, і залишковими даними, що вказують різницю між кодованим блоком і прогнозним блоком. Кодований внутрішньо блок кодується згідно з режимом внутрішнього кодування і залишковими даними. Для додаткового стиснення залишкові дані можуть бути перетворені з пікселної області в область перетворення, приводячи до залишкових коефіцієнтів перетворення, які потім можуть бути квантовані. Квантовані коефіцієнти перетворення, початково розміщувані в двовимірному масиві, можуть скануватися для того, щоб формувати одновимірний вектор коефіцієнтів перетворення, і може застосовуватися ентропійне кодування з тим, щоб досягати ще більшого стиснення. Суть винаходу Загалом, це розкриття суті описує технології, пов'язані з визначенням контекстів для ентропійного кодування, наприклад з використанням контекстно-адаптивного двійкового арифметичного кодування (CABAC), відеоданих. САВАС-кодування, загалом, включає в себе визначення контексту при кодуванні перетворених в двійкову форму представлень різних елементів синтаксису. Приклади елементів синтаксису включають в себе дані для коефіцієнтів перетворення, наприклад дані, що вказують те, є чи ні коефіцієнти перетворення значущими, знаки коефіцієнтів перетворення, які є значущими, і значення рівня для коефіцієнтів перетворення, які є значущими. Коефіцієнти перетворення, загалом, відповідають коефіцієнтам блока перетворення, такого як одиниця перетворення (TU). Це розкриття суті описує технології для визначення контекстів для кодування коефіцієнтів перетворення, основуючись на областях блока перетворення, в яких виникають коефіцієнти перетворення. У одному прикладі, спосіб кодування відеоданих включає в себе визначення контексту для кодування коефіцієнта перетворення відеоблока, основуючись на області відеоблока, в якій 1 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 60 виникає коефіцієнт перетворення, і ентропійне кодування коефіцієнта перетворення з використанням визначеного контексту. У іншому прикладі, пристрій для кодування відеоданих включає в себе відеокодер, сконфігурований з можливістю визначати контекст для кодування коефіцієнта перетворення відеоблока, основуючись на області відеоблока, в якій виникає коефіцієнт перетворення, і ентропійно кодувати коефіцієнт перетворення з використанням визначеного контексту. У іншому прикладі, пристрій для кодування відеоданих включає в себе засіб для визначення контексту для кодування коефіцієнта перетворення відеоблока, основуючись на області відеоблока, в якій виникає коефіцієнт перетворення, і засіб для ентропійного кодування коефіцієнта перетворення з використанням визначеного контексту. У іншому прикладі, зчитуваний комп'ютером носій даних має збережені інструкції, які при виконанні спонукають процесор визначати контекст для кодування коефіцієнта перетворення відеоблока, основуючись на області відеоблока, в якій виникає коефіцієнт перетворення, і ентропійно кодувати коефіцієнт перетворення з використанням визначеного контексту. У іншому прикладі, спосіб декодування відеоданих включає в себе визначення того, являє собою чи ні коефіцієнт перетворення відеоблока DC-коефіцієнт перетворення, коли визначається те, що коефіцієнт перетворення являє собою DC-коефіцієнт перетворення відеоблока, визначення контексту для декодування коефіцієнта перетворення на основі того, що коефіцієнт перетворення являє собою DC-коефіцієнт перетворення, без урахування розміру відеоблока, і ентропійне декодування коефіцієнта перетворення з використанням визначеного контексту. У іншому прикладі, пристрій для декодування відеоданих включає в себе відеодекодер, сконфігурований з можливістю визначати те, являє собою чи ні коефіцієнт перетворення відеоблока DC-коефіцієнт перетворення, коли визначається те, що коефіцієнт перетворення являє собою DC-коефіцієнт перетворення відеоблока, визначати контекст для декодування коефіцієнта перетворення на основі того, що коефіцієнт перетворення являє собою DCкоефіцієнт перетворення, без урахування розміру відеоблока, і ентропійно декодувати коефіцієнт перетворення з використанням визначеного контексту. У іншому прикладі, пристрій для декодування відеоданих включає в себе засіб для визначення того, являє собою чи ні коефіцієнт перетворення відеоблока DC-коефіцієнт перетворення, засіб для визначення, коли визначається те, що коефіцієнт перетворення являє собою DC-коефіцієнт перетворення відеоблока, контексту для декодування коефіцієнта перетворення на основі того, що коефіцієнт перетворення являє собою DC-коефіцієнт перетворення, без урахування розміру відеоблока, і засіб для ентропійного декодування коефіцієнта перетворення з використанням визначеного контексту. У іншому прикладі, зчитуваний комп'ютером носій даних має збережені інструкції, які при виконанні спонукають процесор визначати те, являє собою чи ні коефіцієнт перетворення відеоблока DC-коефіцієнт перетворення, коли визначається те, що коефіцієнт перетворення являє собою DC-коефіцієнт перетворення відеоблока, визначати контекст для декодування коефіцієнта перетворення на основі того, що коефіцієнт перетворення являє собою DCкоефіцієнт перетворення, без урахування розміру відеоблока, і ентропійно декодувати коефіцієнт перетворення з використанням визначеного контексту. У іншому прикладі, спосіб кодування відеоданих включає в себе визначення того, являє собою чи ні коефіцієнт перетворення відеоблока DC-коефіцієнт перетворення, коли визначається те, що коефіцієнт перетворення являє собою DC-коефіцієнт перетворення відеоблока, визначення контексту для кодування коефіцієнта перетворення на основі того, що коефіцієнт перетворення являє собою DC-коефіцієнт перетворення, без урахування розміру відеоблока, і ентропійне кодування коефіцієнта перетворення з використанням визначеного контексту. У іншому прикладі, пристрій для кодування відеоданих включає в себе відеокодер, сконфігурований з можливістю визначати те, являє собою чи ні коефіцієнт перетворення відеоблока DC-коефіцієнт перетворення, коли визначається те, що коефіцієнт перетворення являє собою DC-коефіцієнт перетворення відеоблока, визначати контекст для кодування коефіцієнта перетворення на основі того, що коефіцієнт перетворення являє собою DCкоефіцієнт перетворення, без урахування розміру відеоблока, і ентропійно кодувати коефіцієнт перетворення з використанням визначеного контексту. У іншому прикладі, пристрій для кодування відеоданих включає в себе засіб для визначення того, являє собою чи ні коефіцієнт перетворення відеоблока DC-коефіцієнт перетворення, засіб для визначення, коли визначається те, що коефіцієнт перетворення являє собою DC-коефіцієнт перетворення відеоблока, контексту для кодування коефіцієнта перетворення на основі того, 2 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 що коефіцієнт перетворення являє собою DC-коефіцієнт перетворення, без урахування розміру відеоблока, і засіб для ентропійного кодування коефіцієнта перетворення з використанням визначеного контексту. У іншому прикладі, зчитуваний комп'ютером носій даних має збережені інструкції, які при виконанні спонукають процесор визначати те, являє собою чи ні коефіцієнт перетворення відеоблока DC-коефіцієнт перетворення, коли визначається те, що коефіцієнт перетворення являє собою DC-коефіцієнт перетворення відеоблока, визначати контекст для кодування коефіцієнта перетворення на основі того, що коефіцієнт перетворення являє собою DCкоефіцієнт перетворення, без урахування розміру відеоблока, і ентропійно кодувати коефіцієнт перетворення з використанням визначеного контексту. У іншому прикладі, спосіб декодування відеоданих включає в себе визначення значень для прапорів кодованих субблоків одного або більше сусідніх субблоків відносно поточного субблока, визначення контексту для декодування коефіцієнта перетворення поточного субблока на основі значень для прапорів кодованих субблоків і ентропійне декодування коефіцієнта перетворення з використанням визначеного контексту. У іншому прикладі, пристрій для декодування відеоданих включає в себе відеодекодер, сконфігурований з можливістю визначати значення для прапорів кодованих субблоків одного або більше сусідніх субблоків відносно поточного субблока, визначати контекст для декодування коефіцієнта перетворення поточного субблока на основі значень для прапорів кодованих субблоків і ентропійно декодувати коефіцієнт перетворення з використанням визначеного контексту. У іншому прикладі, пристрій для декодування відеоданих включає в себе засіб для визначення значень для прапорів кодованих субблоків одного або більше сусідніх субблоків відносно поточного субблока, засіб для визначення контексту для декодування коефіцієнта перетворення поточного субблока на основі значень для прапорів кодованих субблоків і засіб для ентропійного декодування коефіцієнта перетворення з використанням визначеного контексту. У іншому прикладі, зчитуваний комп'ютером носій даних має збережені інструкції, які при виконанні спонукають процесор визначати значення для прапорів кодованих субблоків одного або більше сусідніх субблоків відносно поточного субблока, визначати контекст для декодування коефіцієнта перетворення поточного субблока на основі значень для прапорів кодованих субблоків і ентропійно декодувати коефіцієнт перетворення з використанням визначеного контексту. У іншому прикладі, спосіб кодування відеоданих включає в себе визначення значень для прапорів кодованих субблоків одного або більше сусідніх субблоків відносно поточного субблока, визначення контексту для кодування коефіцієнта перетворення поточного субблока на основі значень для прапорів кодованих субблоків і ентропійне кодування коефіцієнта перетворення з використанням визначеного контексту. У іншому прикладі, пристрій для кодування відеоданих включає в себе відеокодер, сконфігурований з можливістю визначати значення для прапорів кодованих субблоків одного або більше сусідніх субблоків відносно поточного субблока, визначати контекст для кодування коефіцієнта перетворення поточного субблока на основі значень для прапорів кодованих субблоків і ентропійно кодувати коефіцієнт перетворення з використанням визначеного контексту. У іншому прикладі, пристрій для кодування відеоданих включає в себе засіб для визначення значень для прапорів кодованих субблоків одного або більше сусідніх субблоків відносно поточного субблока, засіб для визначення контексту для кодування коефіцієнта перетворення поточного субблока на основі значень для прапорів кодованих субблоків і засіб для ентропійного кодування коефіцієнта перетворення з використанням визначеного контексту. У іншому прикладі, зчитуваний комп'ютером носій даних має збережені інструкції, які при виконанні спонукають процесор визначати значення для прапорів кодованих субблоків одного або більше сусідніх субблоків відносно поточного субблока, визначати контекст для кодування коефіцієнта перетворення поточного субблока на основі значень для прапорів кодованих субблоків і ентропійно кодувати коефіцієнт перетворення з використанням визначеного контексту. Подробиці одного або більше прикладів викладені на прикладених кресленнях і в нижченаведеному описі. Інші ознаки, цілі і переваги повинні ставати очевидними з опису і креслень і з формули винаходу. Короткий опис креслень 3 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 60 Фіг. 1 є блок-схемою, що ілюструє зразкову систему кодування і декодування відео, яка може використовувати технології зовнішнього прогнозування, описані в цьому розкритті суті. Фіг. 2 є блок-схемою, що ілюструє зразковий відеокодер, який може реалізовувати технології зовнішнього прогнозування, описані в цьому розкритті суті. Фіг. 3 є блок-схемою, що ілюструє зразковий відеодекодер, який може реалізовувати технології, описані в цьому розкритті суті. Фіг. 4 є концептуальною схемою, яка ілюструє взаємозв'язок між коефіцієнтами перетворення у відеоблоці і карті значущості, асоційованій з відеоблоком. Фіг. 5A-5D є концептуальними схемами, які ілюструють приклади блоків відеоданих, сканованих з використанням зигзагоподібного порядку сканування, горизонтального порядку сканування, вертикального порядку сканування і діагонального порядку сканування. Фіг. 6 є концептуальною схемою, яка ілюструє зразковий відеоблок, розділений на субблоки для кодування коефіцієнтів перетворення. Фіг. 7 є концептуальною схемою, яка ілюструє зразкову п'ятиточкову підтримку, використовувану для того, щоб задавати контекстну модель для карти значущості коефіцієнтів у відеоблоці, сканованому з використанням зворотного діагонального порядку сканування. Фіг. 8A і 8B є концептуальними схемами, які ілюструють залежність від контексту в п'ятиточковій підтримці. Фіг. 9A і 9B є концептуальними схемами, які ілюструють зразкові розділення відеоблока на дві або більше областей. Фіг. 10 є концептуальною схемою, яка ілюструє зразкове призначення контекстів на основі оточення або позиції для кожної області відеоблока. Фіг. 11 є концептуальною схемою, яка ілюструє зразкове призначення зміщень контексту для кожної області відеоблока. Фіг. 12 є концептуальною схемою, яка ілюструє зразкове вбудоване розділення відеоблока на дві або більше областей на основі TU-розмірів, які корелюються з існуючими контекстними моделями. Фіг. 13A і 13B є концептуальними схемами, які ілюструють зразкові розділення відеоблока на дві або більше областей. Фіг. 14A і 14B є концептуальними схемами, які ілюструють зразкове призначення зміщень контексту для кожної області відеоблока. Фіг. 15 є блок-схемою послідовності операцій, що ілюструє зразковий спосіб для кодування поточного блока. Фіг. 16 є блок-схемою послідовності операцій, що ілюструє зразковий спосіб для декодування поточного блока відеоданих. Докладний опис винаходу Загалом, це розкриття суті описує технології, пов'язані з визначенням контекстів для ентропійного кодування, наприклад з використанням контекстно-адаптивного двійкового арифметичного кодування (CABAC), відеоданих. САВАС-кодування, загалом, включає в себе визначення контексту при кодуванні перетворених в двійкову форму представлень різних елементів синтаксису. Елементи синтаксису включають в себе, наприклад, дані для коефіцієнтів перетворення, наприклад дані, що вказують те, є чи ні коефіцієнти перетворення значущими, знаки коефіцієнтів перетворення, які є значущими, і значення рівня для коефіцієнтів перетворення, які є значущими. Коефіцієнти перетворення, загалом, відповідають коефіцієнтам блока перетворення, такого як одиниця перетворення (TU). Це розкриття суті описує технології для визначення контекстів для кодування коефіцієнтів перетворення, основуючись на областях блока перетворення, в яких виникають коефіцієнти перетворення. Загалом, відповідно до технологій цього розкриття суті, відеокодер може бути сконфігурований з можливістю визначати контекст для кодування коефіцієнта перетворення, основуючись на області, в якій виникає коефіцієнт перетворення, і потім ентропійно кодувати коефіцієнт перетворення з використанням визначеного контексту. Відеоблок може бути розділений на області множиною способів. Фіг. 9A і 11 ілюструють приклади, в яких відеоблок розділяється на першу область, що включає в себе один або більше верхніх лівих субблоків (наприклад, субблоків 4×4), і другу область, що включає в себе субблоки за межами першої області. Фіг. 9B ілюструє приклад, в якому відеоблок розділяється на області вздовж діагонального напрямку. Фіг. 10 ілюструє приклад, в якому відеоблок розділяється на квартилі, і верхній лівий квартиль додатково розділяється на першу підобласть, що включає в себе субблоки верхньої лівої частини верхнього лівого квартиля, і другу підобласть, що включає в себе субблоки верхнього лівого квартиля, зовнішнього для першої підобласті. Фіг. 12 ілюструє приклад, в якому відеоблок розділяється на області, які відповідають розмірам відеоблоків 4 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 60 (наприклад, 4×4, 8×8, 16×16 і 32×32). Фіг. 13A ілюструє приклад, в якому відеоблок розділяється на горизонтальні прямокутні області. Фіг. 13B ілюструє приклад, в якому відеоблок розділяється на вертикальні прямокутні області. Ці креслення детальніше описуються нижче. У різних прикладах, відеокодер може бути сконфігурований з можливістю визначати контекст для кодування коефіцієнта перетворення різними способами, наприклад, основуючись на області, в якій виникає коефіцієнт перетворення. Наприклад, відеокодер може бути сконфігурований з можливістю визначати контекст з використанням контекстної інформації на основі позиції для деяких областей або контекстної інформації на основі оточення для інших областей. У деяких прикладах, всі коефіцієнти перетворення в конкретній області можуть бути кодовані з використанням ідентичного контексту, визначеного, основуючись на області. У інших прикладах, контексти для коефіцієнтів перетворення в області можуть бути визначені на основі оточення контексту. У ще одних інших прикладах, відеокодер може визначати зміщення, яке повинно застосовуватися до контексту, основуючись на області, в якій виникає коефіцієнт перетворення. Іншими словами, кожна з областей може бути асоційована з конкретним зміщенням, яке повинно застосовуватися до контексту. Технології цього розкриття суті можуть зменшувати споживання смуги пропускання, приводячи до економії бітів при кодуванні елементів синтаксису для коефіцієнтів перетворення. Такі елементи синтаксису можуть включати в себе будь-що з прапора значущого коефіцієнта (який вказує те, є чи ні відповідний коефіцієнт перетворення значущим, тобто ненульовим), знака значущих коефіцієнтів, індикатора відносно того, має чи ні значущий коефіцієнт абсолютне значення, що перевищує 1, індикатора відносно того, має чи ні значущий коефіцієнт з абсолютним значенням, що перевищує 1, абсолютне значення, що перевищує 2, і/або значення, що залишилося, рівня для коефіцієнтів, що мають абсолютні значення, що перевищують 2. Фіг. 1 є блок-схемою, що ілюструє зразкову систему 10 кодування і декодування відео, яка може використовувати технології, описані в цьому розкритті суті. Як показано на фіг. 1, система 10 включає в себе пристрій-джерело 12, який формує кодовані відеодані, які повинні бути декодовані надалі за допомогою пристрою-адресата 14. Пристрій-джерело 12 і пристрійадресат 14 можуть містити будь-які з широкого діапазону пристроїв, що включають в себе настільні комп'ютери, ноутбуки (тобто переносні комп'ютери), планшетні комп'ютери, абонентські приставки, телефонні трубки, наприклад так звані смартфони, так звані інтелектуальні сенсорні панелі, телевізійні приймачі, камери, пристрої відображення, цифрові мультимедійні програвачі, консолі для відеоігор, пристрої потокової передачі відео і т. п. В деяких випадках, пристрій-джерело 12 і пристрій-адресат 14 можуть бути оснащені можливостями бездротового зв'язку. Пристрій-адресат 14 може приймати кодовані відеодані, які повинні бути декодовані, через лінію 16 зв'язку. Лінія 16 зв'язку може містити будь-який тип носія або пристрою, що допускає переміщення кодованих відеоданих з пристрою-джерела 12 в пристрій-адресат 14. У одному прикладі, лінія 16 зв'язку може містити середовище зв'язку, щоб забезпечувати можливість пристрою-джерелу 12 передавати кодовані відеодані безпосередньо в пристрій-адресат 14 в реальному часі. Кодовані відеодані можуть бути модульовані згідно зі стандартом зв'язку, таким як протокол бездротового зв'язку, і передані в пристрій-адресат 14. Середовище зв'язку може містити будь-яке бездротове або дротове середовище зв'язку, таке як радіочастотний (RF) спектр або одна або більше фізичних ліній передачі. Середовище зв'язку може формувати частину мережі з комутацією пакетів, такої як локальна обчислювальна мережа, глобальна обчислювальна мережа або глобальна мережа, така як Інтернет. Середовище зв'язку може включати в себе маршрутизатори, комутатори, базові станції або будь-яке інше обладнання, яке може бути корисним для того, щоб спрощувати передачу з пристрою-джерела 12 в пристрійадресат 14. Альтернативно, кодовані дані можуть виводитися з інтерфейсу 22 виведення в пристрій 34 зберігання даних. Аналогічно, до кодованих даних може здійснюватися доступ з пристрою 34 зберігання даних за допомогою інтерфейсу введення. Пристрій 34 зберігання даних може включати в себе будь-які з множини носіїв зберігання даних з розподіленим або локальним доступом, такі як жорсткий диск, Blu-Ray-диски, DVD, CD-ROM, флеш-пам'ять, енергозалежний або енергонезалежний запам'ятовуючий пристрій або будь-які інші придатні цифрові носії даних для зберігання кодованих відеоданих. У додатковому прикладі, пристрій 34 зберігання даних може відповідати файловому серверу або іншому проміжному пристрою зберігання даних, який може зберігати кодоване відео, сформоване за допомогою пристрою-джерела 12. Пристрійадресат 14 може здійснювати доступ до збережених відеоданих з пристрою 34 зберігання даних через потокову передачу або завантаження. Файловий сервер може бути будь-яким типом 5 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 60 сервера, що допускає збереження кодованих відеоданих і передачу цих кодованих відеоданих в пристрій-адресат 14. Зразкові файлові сервери включають в себе веб-сервер (наприклад, для веб-вузла), FTP-сервер, пристрої системи зберігання даних з підключенням по мережі (NAS) або локальний накопичувач на дисках. Пристрій-адресат 14 може здійснювати доступ до кодованих відеоданих через будь-яке стандартне підключення для передачі даних, що включає в себе Інтернет-підключення. Воно може включати в себе бездротовий канал (наприклад, Wi-Fiпідключення), дротове підключення (наприклад, DSL, кабельний модем і т. д.) або комбінацію зазначеного, яка є придатною для того, щоб здійснювати доступ до кодованих відеоданих, збережених на файловому сервері. Передача кодованих відеоданих з пристрою 34 зберігання даних може являти собою потокову передачу, передачу на основі завантаження або комбінацію вищезазначеного. Технології цього розкриття суті не обов'язково обмежені додатками або настройками бездротового зв'язку. Технології можуть застосовуватися до кодування відео в підтримання будь-яких з множини мультимедійних додатків, таких як широкомовні телепередачі по радіоінтерфейсу, кабельні телепередачі, супутникові телепередачі, потокові передачі відео, наприклад через Інтернет, кодування цифрового відео для зберігання на носії зберігання даних, декодування цифрового відео, збереженого на носії зберігання даних, або інші додатки. У деяких прикладах, система 10 може бути сконфігурована з можливістю підтримувати односторонню або двосторонню передачу відео, щоб підтримувати такі додатки, як потокова передача відео, відтворення відео, широкомовна передача відео і/або відеотелефонія. У прикладі за фіг. 1, пристрій-джерело 12 включає в себе відеоджерело 18, відеокодер 20 і інтерфейс 22 виведення. У деяких випадках, інтерфейс 22 виведення може включати в себе модулятор/демодулятор (модем) і/або передавальний пристрій. У пристрої-джерелі 12 відеоджерело 18 може включати в себе джерело, таке як пристрій відеозахоплення, наприклад відеокамера, відеоархів, що містить раніше захоплене відео, інтерфейс прямих відеотрансляцій, щоб приймати відео від постачальника відеоконтенту, і/або комп'ютерну графічну систему для формування комп'ютерних графічних даних як вихідного відео, або комбінацію таких джерел. Як один приклад, якщо відеоджерелом 18 є відеокамера, пристрійджерело 12 і пристрій-адресат 14 можуть формувати так звані камерофони або відеофони. Проте, технології, описані в цьому розкритті суті, можуть бути застосовними до кодування відео загалом і можуть застосовуватися до бездротових і/або дротових варіантів застосування. Захоплене, попередньо захоплене або машиногенероване відео може бути кодоване за допомогою відеокодера 20. Кодовані відеодані можуть бути передані безпосередньо в пристрійадресат 14 через інтерфейс 22 виведення пристрою-джерела 12. Кодовані відеодані також (або альтернативно) можуть зберігатися на пристрій 34 зберігання даних для подальшого доступу за допомогою пристрою-адресата 14 або інших пристроїв для декодування і/або відтворення. Пристрій-адресат 14 включає в себе інтерфейс 28 введення, відеодекодер 30 і пристрій 32 відображення. У деяких випадках, інтерфейс 28 введення може включати в себе приймальний пристрій і/або модем. Інтерфейс 28 введення пристрою-адресата 14 приймає кодовані відеодані по лінії 16 зв'язку. Кодовані відеодані, що передаються по лінії 16 зв'язку або надані на пристрої 34 зберігання даних, можуть включати в себе множину елементів синтаксису, сформованих за допомогою відеокодера 20 для використання за допомогою відеодекодера, такого як відеодекодер 30, при декодуванні відеоданих. Такі елементи синтаксису можуть бути включені з кодованими відеоданими, що передаються на середовищі зв'язку, зберігаються на носії зберігання даних або зберігаються на файловому сервері. Пристрій 32 відображення може бути інтегрованим або зовнішнім для пристрою-адресата 14. У деяких прикладах, пристрій-адресат 14 може включати в себе інтегрований пристрій відображення, а також сконфігурований з можливістю взаємодіяти із зовнішнім пристроєм відображення. У інших прикладах, пристрій-адресат 14 може бути пристроєм відображення. Загалом, пристрій 32 відображення відображає декодовані відеодані користувачу і може містити будь-який з множини пристроїв відображення, таких як рідкокристалічний дисплей (LCD), плазмовий дисплей, дисплей на органічних світлодіодах (OLED) або інший тип пристрою відображення. Відеокодер 20 і відеодекодер 30 можуть працювати згідно з таким стандартом стиснення відео, як стандарт високоефективного кодування відео (HEVC), розроблюваний на даний час, і можуть відповідати тестовій моделі HEVC (HM). Альтернативно, відеокодер 20 і відеодекодер 30 можуть працювати згідно з іншими власними або галузевими стандартами, такими як стандарт ITU-T H.264, альтернативно називаний "MPEG-4, частина 10, вдосконалене кодування відео (AVC)", або розширеннями таких стандартів. Розширення стандартів включають в себе, наприклад, масштабоване кодування відео (SVC), кодування багатовидового відео (MVC), 6 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 60 тривимірний, наприклад, кодування інформації глибини і т. п. Проте, технології цього розкриття суті не обмежені яким-небудь конкретним стандартом або розширенням стандарту кодування. Інші приклади стандартів стиснення відео включають в себе MPEG-2 і ITU-T H.263. Хоч не показано на фіг. 1, в деяких аспектах, відеокодер 20 і відеодекодер 30 можуть бути інтегровані з аудіокодером і аудіодекодером, відповідно, і можуть включати в себе відповідні модулі мультиплексора-демультиплексора або інші апаратні засоби і програмне забезпечення для того, щоб обробляти кодування як аудіо, так і відео в загальному потоці даних або в окремих потоках даних. Якщо застосовно, в деяких прикладах блоки мультиплексорадемультиплексора можуть відповідати протоколу мультиплексора ITU H.223 або іншим протоколам, таким як протокол користувацьких дейтаграм (UDP). Відеокодер 20 і відеодекодер 30 можуть бути реалізовані як будь-яка з множини належних схем кодера, наприклад один або більше мікропроцесорів, процесори цифрових сигналів (DSP), спеціалізовані інтегральні схеми (ASIC), програмовані користувачем вентильні матриці (FPGA), дискретна логіка, програмне забезпечення, апаратні засоби, мікропрограмне забезпечення або будь-які комбінації вищезазначеного. Коли технології реалізовуються частково в програмному забезпеченні, пристрій може зберігати інструкції для програмного забезпечення на придатному енергонезалежному зчитуваному комп'ютером носії і виконувати інструкції в апаратних засобах з використанням одного або більше процесорів, щоб здійснювати технології цього розкриття суті. Кожний з відеокодера 20 і відеодекодера 30 може бути включений в один або більше кодерів або декодерів, будь-який з яких може бути інтегрований як частина комбінованого кодера/декодера (кодека) у відповідному пристрої. JCT-VC проводить роботи з розробки HEVC-стандарту. Робота по стандартизації HEVC основана на вдосконаленій моделі пристрою кодування відео, називаній "тестова модель HEVC (HM)". HM передбачає декілька додаткових можливостей пристроїв кодування відео відносно існуючих пристроїв згідно, наприклад, з ITU-T H.264/AVC. Наприклад, тоді як H.264 надає дев'ять режимів внутрішнього прогнозуючого кодування, HM може надавати цілих тридцять три режими внутрішнього прогнозуючого кодування. Загалом, робоча модель HM описує, що відеокадр або зображення може бути розділено на послідовність деревовидних блоків або найбільших одиниць кодування (LCU), які включають в себе вибірки як сигналу яскравості, так і сигналу кольоровості. Деревовидний блок має призначення, аналогічне призначенню макроблока по стандарту H.264. Слайс включає в себе визначене число послідовних деревовидних блоків в порядку кодування. Відеокадр або зображення може бути сегментовано на один або більше слайсів. Кожний деревовидний блок може розбиватися на одиниці кодування (CU) згідно з деревом квадрантів. Наприклад, деревовидний блок, як кореневий вузол дерева квадрантів, може розбиватися на чотири дочірніх вузли, і кожний дочірній вузол, в свою чергу, може бути батьківським вузлом і розбиватися ще на чотири дочірніх вузли. Кінцевий, нерозбитий дочірній вузол, як кінцевий вузол дерева квадрантів, містить вузол кодування, тобто кодований відеоблок. Синтаксичні дані, асоційовані з кодованим потоком бітів, можуть задавати максимальне число разів, яке може розбиватися деревовидний блок, і також може задавати мінімальний розмір вузлів кодування. CU включає в себе вузол кодування і одиниці прогнозування (PU) і одиниці перетворення (TU), асоційований з вузлом кодування. Розмір CU відповідає розміру вузла кодування і повинен мати квадратну форму. Розмір CU може коливатися від 8×8 пікселів аж до розміру деревовидного блока максимум в 64×64 пікселів або більше. Кожна CU може містити одну або більше PU і одну або більше TU. Синтаксичні дані, асоційовані з CU, можуть описувати, наприклад, сегментування CU на одну або більше PU. Режими сегментування можуть відрізнятися між тим, є CU кодованою в режимі пропуску або прямому режимі, кодованою в режимі внутрішнього прогнозування або кодованою в режимі зовнішнього прогнозування. PU можуть бути сегментовані таким чином, що вони мають неквадратну форму. Синтаксичні дані, асоційовані з CU, також можуть описувати, наприклад, сегментування CU на одну або більше TU згідно з деревом квадрантів. TU може мати квадратну або неквадратну форму. HEVC-стандарт забезпечує можливість перетворень згідно з TU, які можуть відрізнятися для різних CU. Розміри NU типово задаються на основі розміру PU в даній CU, заданого для сегментованої LCU, хоч це може не завжди мати місце. TU типово має ідентичний розмір або менше, ніж PU. У деяких прикладах, залишкові вибірки, відповідні CU, можуть підрозділятися на менші одиниці з використанням структури у вигляді дерева квадрантів, відомої як "залишкове дерево квадрантів" (RQT). Кінцеві вузли RQT можуть називатися "одиницями перетворення (TU)". Значення пікселних різниць, асоційовані з TU, можуть бути перетворені, щоб формувати коефіцієнти перетворення, які можуть бути квантовані. 7 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 60 Загалом, PU включає в себе дані, пов'язані з процесом прогнозування. Наприклад, коли PU кодується у внутрішньому режимі, PU може включати в себе дані, що описують режим внутрішнього прогнозування для PU. Як інший приклад, коли PU кодується у зовнішньому режимі, PU може включати в себе дані, що задають вектор руху для PU. Дані, що задають вектор руху для PU, можуть описувати, наприклад, горизонтальний компонент вектора руху, вертикальний компонент вектора руху, розрізнення для вектора руху (наприклад, точність в одну чверть піксела або точність в одну восьму піксела), опорне зображення, на яке вказує вектор руху, і/або список опорних зображень для вектора руху. Загалом, TU використовується для процесів перетворення і квантування. Дана CU, що має одну або більше PU, також може включати в себе одну або більше TU. Після прогнозування відеокодер 20 може обчислювати залишкові значення, відповідні PU. Залишкові значення містять значення пікселних різниць, які можуть бути перетворені в коефіцієнти перетворення, квантовані і скановані з використанням TU, щоб формувати перетворені в послідовну форму коефіцієнти перетворення для ентропійного кодування. Це розкриття суті типово використовує термін "відеоблок" для того, щоб позначати вузол кодування CU. У деяких конкретних випадках це розкриття суті також може використовувати термін "відеоблок" для того, щоб позначати деревовидний блок, тобто LCU або CU, яка включає в себе вузол кодування і PU і TU. Відеопослідовність типово включає в себе серії відеокадрів або зображень. Група зображень (GOP), загалом, містить послідовність з одного або більше відеозображень. GOP може включати в себе в заголовку GOP, в заголовку одного або більше зображень або в іншому місці синтаксичні дані, які описують число зображень, включених в GOP. Кожний слайс зображення може включати в себе синтаксичні дані слайсу, які описують режим кодування для відповідного слайсу. Відеокодер 20 типово оперує з відеоблоками в межах окремих слайсів, щоб кодувати відеодані. Відеоблок може відповідати вузлу кодування в CU. Відеоблоки можуть мати фіксовані або варійовані розміри і можуть відрізнятися за розміром згідно з вказаним стандартом кодування. Як приклад, HM підтримує прогнозування для різних PU-розмірів. При умові, що розмір конкретної CU становить 2N×2N, HM підтримує внутрішнє прогнозування для PU-розмірів 2N×2N або N×N і зовнішнє прогнозування для симетричних PU-розмірів 2N×2N, 2N×N, N×2N або N×N. HM також підтримує асиметричне сегментування для зовнішнього прогнозування для PUрозмірів 2N×nU, 2N×nD, nL×2N і nR×2N. При асиметричному сегментуванні один напрямок CU не сегментується, в той час як інший напрямок сегментується на 25 % і 75 %. Частина CU, відповідна 25 %-ому сегменту, вказується за допомогою "n", після чого йде індикатор відносно "вверх (Up)", "вниз (Down)", "ліворуч (Left)" або "праворуч (Right)". Таким чином, наприклад, "2N×nU" посилається на CU 2N×2N, яка сегментується горизонтально з PU 2N×0,5N вверху і PU 2N×1,5N внизу. У цьому розкритті суті, "N×N" і "N на N" можуть бути використані взаємозамінно для того, щоб позначати розміри в пікселах відеоблока з точки зору розмірів по вертикалі і горизонталі, наприклад 16×16 пікселів або 16 на 16 пікселів. Загалом, блок 16×16 повинен мати 16 пікселів у вертикальному напрямку (у=16) і 16 пікселів в горизонтальному напрямку (х=16). Аналогічно, блок N×N, загалом, має N пікселів у вертикальному напрямку і N пікселів в горизонтальному напрямку, при цьому N представляє ненегативне цілочислове значення. Піксели в блоці можуть розміщуватися в рядках і стовпцях. Крім того, блок не обов'язково повинен мати співпадаюче число пікселів в горизонтальному напрямку і у вертикальному напрямку. Наприклад, блоки можуть містити N×M пікселів, причому M не обов'язково дорівнює N. Після внутрішнього прогнозуючого кодування або зовнішнього прогнозуючого кодування з використанням PU CU, відеокодер 20 може обчислювати залишкові дані для TU CU. PU можуть містити пікселні дані в просторовій області (також називаній "пікселною областю"), і TU можуть містити коефіцієнти в області перетворення після застосування перетворення, наприклад дискретного косинусного перетворення (DCT), цілочислового перетворення, вейвлетперетворення або концептуально аналогічного перетворення до залишкових відеоданих. Залишкові дані можуть відповідати пікселним різницям між пікселами некодованого зображення і прогнозними значеннями, відповідними PU. Відеокодер 20 може формувати TU, що включає в себе залишкові дані для CU, і потім перетворювати TU таким чином, щоб формувати коефіцієнти перетворення для CU. Після перетворень, щоб формувати коефіцієнти перетворення, відеокодер 20 може виконувати квантування коефіцієнтів перетворення. Квантування, загалом, означає процес, в якому коефіцієнти перетворення квантуються, щоб, можливо, зменшувати об'єм даних, використовуваних для того, щоб представляти коефіцієнти, забезпечуючи додаткове стиснення. Процес квантування може зменшувати бітову глибину, асоційовану з деякими або всіма 8 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 коефіцієнтами. Наприклад, n-бітове значення може бути округлене в меншу сторону до mбітового значення в ході квантування, при цьому n більше m. У деяких прикладах, відеокодер 20 і відеодекодер 30 можуть використовувати попередньо заданий порядок сканування для того, щоб сканувати квантовані коефіцієнти перетворення, так щоб формувати перетворений в послідовну форму вектор, який може ентропійно кодуватися. У інших прикладах, відеокодер 20 і відеодекодер 30 можуть виконувати адаптивне сканування. Після сканування квантованих коефіцієнтів перетворення, щоб формувати одновимірний вектор, або в ході сканування, відеокодер 20 може ентропійно кодувати одновимірний вектор, наприклад, згідно з контекстно-адаптивним кодуванням змінної довжини (CAVLC), контекстноадаптивним двійковим арифметичним кодуванням (CABAC), синтаксичним контекстноадаптивним двійковим арифметичним кодуванням (SBAC), ентропійним кодуванням на основі сегментування на інтервали імовірності (PIPE) або іншою технологією ентропійного кодування. Відеодекодер 30 може ентропійно декодувати коефіцієнти, виконувати процес зворотного квантування і процес зворотного перетворення, щоб відтворювати залишкові дані, і комбінувати залишкові дані з прогнозуючими даними, щоб формувати декодовані відеодані. Відеокодер 20 також може ентропійно кодувати елементи синтаксису, асоційовані з кодованими відеоданими, для використання за допомогою відеодекодера 30 при декодуванні відеоданих. Щоб виконувати CABAC, відеокодер 20 і відеодекодер 30 можуть призначати контекст в контекстній моделі символу, який повинен бути кодований. Контекст може бути пов'язаний, наприклад, з тим, є сусідні значення символу ненульовими чи ні. Відповідно до технологій цього розкриття суті, відеокодер 20 і/або відеодекодер 30 можуть бути сконфігуровані з можливістю визначати контекст для ентропійного кодування (наприклад, ентропійного кодування або ентропійного декодування) коефіцієнта перетворення, основуючись на області відеоблока, в якій виникає коефіцієнт перетворення. Відеокодер 20 і відеодекодер 30 можуть бути сконфігуровані з задаваннями різних областей для відеоблоків (наприклад, одиниць перетворення). Наприклад, відеокодер 20 і відеодекодер 30 можуть бути сконфігуровані із задаваннями областей для різних розмірів відеоблоків. У деяких прикладах, відеокодер 20 може визначати спосіб, за допомогою якого можна розділяти відеоблок на області і кодувати дані, що представляють те, як повинен бути розділений блок. Кожна з областей може бути асоційована з відповідним значенням і/або технологією для визначення контексту для коефіцієнтів перетворення, виникаючих у відповідній області. Наприклад, конкретна область відеоблока може бути асоційована зі схемою визначення контекстів на основі оточення, в той час як інша область відеоблока може бути асоційована зі схемою визначення контекстів на основі позиції. Як інший приклад, область відеоблока може бути асоційована зі зміщенням, яке повинно застосовуватися до контексту, визначеного для коефіцієнтів перетворення, розташованих в цій області. Різні області ідентичного відеоблока можуть бути асоційовані з різними значеннями зміщення і/або різними технологіями для обчислення контексту. Як один приклад, відеоблок може включати в себе дві різних області: першу область, що включає в себе один або більше субблоків (наприклад, субблоків коефіцієнтів перетворення 4×4) у верхньому лівому куті відеоблока, і другу область, що включає в себе інші субблоки відеоблока, які не включаються в першу область. Більш конкретно, відеокодер 20 і відеодекодер 30 можуть визначати координати X і Y субблока і визначати те, знаходиться субблок в першій області або у другій області, за допомогою порівняння суми X і Y з пороговим значенням. Якщо сума X і Y менше порогового значення, відеокодер 20 і відеодекодер 30 можуть визначати те, що субблок знаходиться в першій області, а в іншому випадку, відеокодер 20 і відеодекодер 30 можуть визначати те, що субблок знаходиться у другій області. Відеокодер 20 і відеодекодер 30 можуть визначати контекст для коефіцієнтів відеоблока на основі того, знаходяться коефіцієнти в субблоці першої області або субблоці другої області. Наприклад, в деяких областях, контекст може бути фіксованим контекстом, в якому відеокодер 20 і відеодекодер 30 кодують коефіцієнти перетворення в таких областях з використанням фіксованого контексту. Іншими словами, відеокодер 20 і відеодекодер 30 можуть застосовувати ідентичний контекст до всіх коефіцієнтів перетворення в області. Альтернативно, кожний з субблоків в області може бути асоційований з ідентичним способом визначення контексту (наприклад, способом на основі фіксованих контекстів), але різні субблоки в області можуть мати різні фіксовані контексти. Відеокодер 20 і відеодекодер 30 можуть визначати фіксований контекст для субблока на основі позиції субблока в області. Як ще один інший приклад, фіксовані контексти можуть призначатися окремим позиціям коефіцієнтів перетворення в області. Іншими словами, відеокодер 20 і відеодекодер 30 можуть визначати 9 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 60 контекст для кодування коефіцієнта перетворення в області на основі позиції коефіцієнта перетворення у відеоблоці, субблоці і/або області. Як інший приклад, в деяких областях, контекстна модель може бути задана згідно з сусідніми субблоками. Наприклад, відеокодер 20 і відеодекодер 30 можуть бути сконфігуровані з наборами контекстів для кожного субблока в конкретній області. Іншими словами, кожним субблок в області може бути асоційований з відповідним набором контекстів. Відеокодер 20 і відеодекодер 30 можуть вибирати належний контекст з набору контекстів для кожного коефіцієнта перетворення у відповідному субблоці. Набір контекстів для одного субблока може відрізнятися від набору контекстів для іншого субблока. Як ще один інший приклад, для кожного субблока в області можуть бути кодовані окремі прапори, що представляють те, існують чи ні які-небудь значущі (тобто ненульові) коефіцієнти у відповідному субблоці. Ці прапори можуть згадуватися як "прапори кодованих субблоків". Такі прапори можуть бути використані для вибору контексту для кодування коефіцієнтів перетворення в субблоках. Наприклад, відеокодер 20 і відеодекодер 30 можуть визначати контекст для кодування коефіцієнтів перетворення в субблоці на основі значень прапорів одного або більше сусідніх субблоків. Наприклад, прапори можуть мати двійкові значення в 0 або 1, і відеокодер 20 і відеодекодер 30 можуть визначати контекст для кодування коефіцієнтів перетворення в поточному субблоці на основі суми значень прапора для правого сусіднього субблока і нижнього сусіднього субблока (також називаного "нижнім сусіднім субблоком"). Інші формули також можуть бути використані для обчислення контексту для субблока. Відеокодер 20 і відеодекодер 30 можуть бути сконфігуровані з можливістю реалізовувати будь-які з технологій цього розкриття суті, окремо або в будь-якій комбінації. Одна зразкова комбінація цих технологій полягає в тому, що відеокодер 20 і відеодекодер 30 можуть бути сконфігуровані з можливістю розділяти одиницю перетворення на субблоки (наприклад, пікселні субблоки 4×4) і потім визначати контекст для кодування даних конкретного коефіцієнта перетворення субблока як на основі позиції коефіцієнта перетворення в субблоці, так і на основі прапорів кодованих блоків для одного або більше сусідніх субблоків, наприклад лівого сусіднього субблока і нижнього сусіднього субблока. Відеокодер 20 і відеодекодер 30 можуть бути сконфігуровані з можливістю кодувати один або більше елементів синтаксису, що представляють коефіцієнти перетворення, з використанням контекстів, визначених в цих різних прикладах. Коефіцієнти перетворення можуть включати в себе різні типи елементів синтаксису. Наприклад, коефіцієнт перетворення може включати в себе прапор значущого коефіцієнта (significant_coeff_flag), що вказує те, має чи ні коефіцієнт перетворення ненульове значення (тобто є чи ні значущим). Якщо коефіцієнт перетворення є значущим, коефіцієнт перетворення може включати в себе значення знака (наприклад, coeff_sign_flag), що вказує те, значення коефіцієнта перетворення більше або менше 0, і значення, що вказує те, перевищує чи ні абсолютне значення коефіцієнта перетворення 1 (наприклад, coeff_abs_level_greater1_flag). Якщо коефіцієнт перетворення має абсолютне значення, що перевищує 1, коефіцієнт перетворення може включати в себе значення, що вказує те, має чи ні коефіцієнт перетворення абсолютне значення, що перевищує 2 (наприклад, coeff_abs_level_greater2_flag). Якщо коефіцієнт перетворення має абсолютне значення, що перевищує 2, коефіцієнт перетворення може включати в себе значення, що вказує абсолютне значення коефіцієнта перетворення мінус два (наприклад, coeff_abs_level_remaining). САВАС-кодер відеокодера 20 і відеодекодера 30 може кодувати будь-які з цих значень з використанням контекстів, визначених відповідно до технологій цього розкриття суті. Крім цього або альтернативно, відеокодер 20 і відеодекодер 30 можуть кодувати дані, що вказують позицію останнього значущого коефіцієнта (наприклад, last_significant_coeff_x_prefix, last_significant_coeff_x_suffix, last_significant_coeff_y_prefix і last_significant_coeff_y_suffix) з використанням контексту, визначеного відповідно до технологій цього розкриття суті. Відеокодер 20 і відеодекодер 30 можуть бути сконфігуровані з можливістю здійснювати будь-яку одну або більше технологій, описаних в цьому розкритті суті, окремо або в будь-якій комбінації. Нижче описуються різні технології для визначення контексту для кодування коефіцієнта перетворення відеоблока, основуючись на області відеоблока, в якій виникає коефіцієнт перетворення, і ентропійного кодування коефіцієнта перетворення з використанням визначеного контексту. Приклади таких технологій описуються відносно фіг. 9-14 нижче. Загалом, кодування коефіцієнта перетворення з використанням визначеного контексту включає в себе кодування одного або більше елементів синтаксису коефіцієнта перетворення з використанням визначеного контексту. Визначення контексту, загалом, включає в себе визначення області, в якій виникає коефіцієнт перетворення, і визначення контексту, 10 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 60 основуючись на області. Наприклад, область може бути асоційована з конкретним контекстом або набором контекстів і/або асоційована з однією або більше технологіями для визначення контексту. Фіг. 2 є блок-схемою, що ілюструє зразковий відеокодер 20, який може реалізовувати технології, описані в цьому розкритті суті. Відеокодер 20 може виконувати внутрішнє і зовнішнє кодування відеоблоків в слайсах. Внутрішнє кодування основане на просторовому прогнозуванні, щоб зменшувати або видаляти просторову надмірність відео в даному відеокадрі або зображенні. Зовнішнє кодування основане на часовому прогнозуванні, щоб зменшувати або видаляти часову надмірність відео в суміжних кадрах або зображеннях відеопослідовності. Внутрішній режим (I-режим) може означати будь-який з декількох режимів просторового стиснення. Зовнішні режими, наприклад однонаправлене прогнозування (Р-режим) або біпрогнозування (В-режим), можуть означати будь-який з декількох режимів часового стиснення. У прикладі за фіг. 2, відеокодер 20 включає в себе модуль 35 вибору режиму, процесор 41 прогнозування, запам'ятовуючий пристрій 64 опорних зображень, суматор 50, процесор 52 перетворення, модуль 54 квантування і модуль 56 ентропійного кодування. Процесор 41 прогнозування включає в себе модуль 42 оцінки руху, модуль 44 компенсації руху і модуль 46 внутрішнього прогнозування. Для відновлення відеоблоків відеокодер 20 також включає в себе модуль 58 зворотного квантування, модуль 60 зворотного перетворення і суматор 62. Фільтр видалення блоковості (не показаний на фіг. 2) також може бути включений з можливістю фільтрувати границі блоків, щоб видаляти артефакти блоковості з відновленого відео. Якщо потрібно, фільтр видалення блоковості типово повинен фільтрувати виведення суматора 62. Додаткові контурні фільтри (внутрішньоконтурні або постконтурні) також можуть бути використані на доповнення до фільтра видалення блоковості. Як показано на фіг. 2, відеокодер 20 приймає відеодані, і модуль 35 вибору режиму сегментує дані на відеоблоки. Це сегментування також може включати в себе сегментування на слайси, плитки або інші більші одиниці, а також сегментування відеоблока, наприклад, згідно зі структурою у вигляді дерева квадрантів LCU і CU. Відеокодер 20, загалом, ілюструє компоненти, які кодують відеоблоки у відеослайсі, який повинен бути кодований. Слайс може бути розділений на декілька відеоблоків (і можливо на набори відеоблоків, називаних "плитками"). Процесор 41 прогнозування може вибирати один з множини можливих режимів кодування, наприклад один з множини режимів внутрішнього кодування або один з множини режимів зовнішнього кодування, для поточного відеоблока на основі результатів помилки (наприклад, швидкості кодування і рівня спотворення). Процесор 41 прогнозування може надавати результуючий кодований внутрішньо або зовнішньо блок в суматор 50, щоб формувати залишкові блокові дані, і в суматор 62, щоб відновлювати кодований блок для використання як опорного зображення. Модуль 46 внутрішнього прогнозування в процесорі 41 прогнозування може виконувати внутрішнє прогнозуюче кодування поточного відеоблока відносно одного або більше сусідніх блоків в кадрі або слайсі, ідентичному кадру або слайсу поточного блока, який повинен бути кодований, щоб надавати просторове стиснення. Модуль 42 оцінки руху і модуль 44 компенсації руху в процесорі 41 прогнозування виконують зовнішнє прогнозуюче кодування поточного відеоблока відносно одного або більше прогнозних блоків в одному або більше опорних зображень, щоб надавати часове стиснення. Модуль 42 оцінки руху може бути сконфігурований з можливістю визначати режим зовнішнього прогнозування для відеослайсу згідно із попередньо визначеним шаблоном для відеопослідовності. Попередньо визначений шаблон може означати слайси в послідовності як Р-слайси, В-слайси або GPB-слайси. Модуль 42 оцінки руху і модуль 44 компенсації руху можуть мати високу міру інтеграції, але проілюстровані окремо в концептуальних цілях. Оцінка руху, виконувана за допомогою модуля 42 оцінки руху, є процесом формування векторів руху, які оцінюють рух для відеоблоків. Вектор руху, наприклад, може вказувати зміщення PU відеоблока в поточному відеокадрі або зображенні відносно прогнозного блока в опорному зображенні. Прогнозний блок є блоком, для якого виявляється, що він практично співпадає з відеоблоком, який повинен бути кодований, з точки зору пікселної різниці, яка може бути визначена за допомогою суми абсолютних різниць (SAD), суми квадратів різниць (SSD) або інших різницевих показників. У деяких прикладах, відеокодер 20 може обчислювати значення для субцілочислових пікселних позицій опорних зображень, збережених в запам'ятовуючому пристрої 64 опорних зображень. Наприклад, відеокодер 20 може інтерполювати значення позицій в одну чверть піксела, позицій в одну восьму піксела або інших дробовопікселних позицій опорного зображення. Отже, модуль 42 оцінки руху може виконувати пошук руху 11 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 відносно повнопікселних позицій і дробовопікселних позицій і виводити вектор руху з дробовопікселною точністю. Модуль 42 оцінки руху обчислює вектор руху для PU відеоблока у кодованому зовнішньо слайсі за допомогою порівняння позиції PU з позицією прогнозного блока опорного зображення. Опорне зображення може бути вибране з першого списку опорних зображень (списку 0) або другого списку опорних зображень (списку 1), кожний з яких ідентифікує одне або більше опорних зображень, збережених в запам'ятовуючому пристрої 64 опорних зображень. Модуль 42 оцінки руху відправляє обчислений вектор руху в модуль 56 ентропійного кодування і модуль 44 компенсації руху. Компенсація руху, виконувана за допомогою модуля 44 компенсації руху, може включати в себе вибірку або формування прогнозного блока на основі вектора руху, визначеного за допомогою оцінки руху, можливо виконання інтерполяції в субпікселну точність. При прийомі вектора руху для PU поточного відеоблока модуль 44 компенсації руху може знаходити прогнозний блок, на який вказує вектор руху в одному зі списків опорних зображень. Модуль 44 компенсації руху також може формувати елементи синтаксису, асоційовані з відеоблоками і відеослайсом, для використання за допомогою відеодекодера 30 при декодуванні відеоблоків відеослайсу. Модуль 46 внутрішнього прогнозування може внутрішньо прогнозувати поточний блок, як альтернативу зовнішньому прогнозуванню, виконуваному за допомогою модуля 42 оцінки руху і модуля 44 компенсації руху, як описано вище. Зокрема, модуль 46 внутрішнього прогнозування може визначати режим внутрішнього прогнозування для використання для того, щоб кодувати поточний блок. У деяких прикладах, модуль 46 внутрішнього прогнозування може кодувати поточний блок з використанням різних режимів внутрішнього прогнозування, наприклад під час окремих проходів кодування, і модуль 46 внутрішнього прогнозування (або модуль 35 вибору режиму в деяких прикладах) може вибирати належний режим внутрішнього прогнозування для використання з тестованих режимів. Наприклад, модуль 46 внутрішнього прогнозування може обчислювати значення спотворення залежно від швидкості передачі з використанням аналізу спотворення залежно від швидкості передачі для різних тестованих режимів внутрішнього прогнозування і вибирати режим внутрішнього прогнозування, що має найкращі характеристики спотворення залежно від швидкості передачі, з тестованих режимів. Аналіз спотворення залежно від швидкості передачі, загалом, визначає величину спотворення (або помилки) між кодованим блоком і вихідним некодованим блоком, який кодований для того, щоб формувати кодований блок, а також швидкість передачі бітів (тобто число бітів), використовувану для того, щоб формувати кодований блок. Модуль 46 внутрішнього прогнозування може обчислювати відношення зі спотворень і швидкостей для різних кодованих блоків, щоб визначати те, який режим внутрішнього прогнозування демонструє найкраще значення спотворення залежно від швидкості передачі для блока. У будь-якому випадку, після вибору режиму внутрішнього прогнозування для блока, модуль 46 внутрішнього прогнозування може надавати інформацію, що вказує вибраний режим внутрішнього прогнозування для блока, в модуль 56 ентропійного кодування. Модуль 56 ентропійного кодування може кодувати інформацію, що вказує вибраний режим внутрішнього прогнозування, відповідно до технологій цього розкриття суті. Відеокодер 20 може включати в потік бітів, що передається, конфігураційні дані, які можуть включати в себе множину індексних таблиць режиму внутрішнього прогнозування і множину модифікованих індексних таблиць режиму внутрішнього прогнозування (також називаних "таблицями відображення кодових слів"), визначення контекстів кодування для різних блоків і індикатори відносно найбільш імовірного режиму внутрішнього прогнозування, індексної таблиці режиму внутрішнього прогнозування і модифікованої індексної таблиці режиму внутрішнього прогнозування, які потрібно використовувати для кожного з контекстів. Після того, як процесор 41 прогнозування формує прогнозний блок для поточного відеоблока через зовнішнє прогнозування або внутрішнє прогнозування, відеокодер 20 формує залишковий відеоблок за допомогою віднімання прогнозного блока з поточного відеоблока. Суматор 50 представляє модуль, який виконує це обчислення. Залишкові відеодані в залишковому блоці можуть включатися в одну або більше TU і застосовуватися до процесора 52 перетворення. Процесор 52 перетворення, загалом, перетворює залишкові відеодані з пікселної області в область перетворення, наприклад в частотну область. Процесор 52 перетворення може перетворювати залишкові відеодані в залишкові коефіцієнти перетворення з використанням перетворення, такого як дискретне косинусне перетворення (DCT) або концептуально аналогічне перетворення. Альтернативно, процесор 52 перетворення може 12 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 застосовувати двовимірне перетворення (в горизонтальному і вертикальному напрямку) до залишкових даних в TU. Процесор 52 перетворення може відправляти результуючі коефіцієнти перетворення в модуль 54 квантування. Модуль 54 квантування квантує коефіцієнти перетворення, щоб додатково зменшувати швидкість передачі бітів. Процес квантування може зменшувати бітову глибину, асоційовану з деякими або всіма коефіцієнтами. Міра квантування може бути модифікована за допомогою регулювання параметра квантування. Після квантування, модуль 56 ентропійного кодування ентропійно кодує квантовані коефіцієнти перетворення. Наприклад, модуль 56 ентропійного кодування може виконувати контекстно-адаптивне кодування змінної довжини (CAVLC), контекстно-адаптивне двійкове арифметичне кодування (CABAC), синтаксичне контекстно-адаптивне двійкове арифметичне кодування (SBAC), ентропійне кодування на основі сегментування на інтервали імовірності (PIPE) або іншу технологію ентропійного кодування. Таке ентропійне кодування, загалом, включає в себе сканування квантованих коефіцієнтів перетворення (загалом, називаних в даному документі просто "коефіцієнтами перетворення" скорочено) один або більше разів і ентропійне кодування елементів синтаксису для коефіцієнтів перетворення в ході кожного сканування, наприклад елементів синтаксису, що вказують те, є чи ні відповідні коефіцієнти перетворення значущими, мають абсолютне значення, що перевищує 1 або 2, абсолютне значення (або його частину, наприклад, частину, що перевищує 2) і знак значущих коефіцієнтів. Відповідно до технологій цього розкриття суті, модуль 56 ентропійного кодування може визначати контекст для кодування (тобто ентропійного кодування) коефіцієнта перетворення відеоблока (наприклад, одиниці перетворення), основуючись на області відеоблока, в якій виникає коефіцієнт перетворення. Наприклад, в ході сканування, модуль 56 ентропійного кодування може визначати позицію коефіцієнта перетворення у відеоблоці і визначати те, в якій області виникає позиція. Крім цього, модуль 56 ентропійного кодування може включати в себе області задавання конфігураційних даних для відеоблока. Наприклад, модуль 56 ентропійного кодування може бути сконфігурований з пороговим значенням. У цьому прикладі, модуль 56 ентропійного кодування може визначати те, мають чи ні координати X і Y, що задають позицію коефіцієнта перетворення, суму (тобто X+Y), яка перевищує порогове значення. Перша область, в цьому прикладі, відповідає коефіцієнтам перетворення, для яких сума значень координат X і Y менше порогового значення, і друга область відповідає коефіцієнтам перетворення, для яких сума значень координат X і Y перевищує або дорівнює пороговому значенню. Альтернативно, декілька порогових значень можуть бути використані для того, щоб задавати декілька областей. Приклад областей, заданих таким чином, показується на фіг. 9B, що детальніше описується нижче. Як інший приклад, модуль 56 ентропійного кодування може бути сконфігурований з можливістю визначати позицію субблока, що включає в себе коефіцієнт перетворення, у відеоблоці. Субблок може відповідати субблоку коефіцієнтів перетворення 4×4. Іншими словами, відеоблок може включати в себе множину субблоків, що не перекриваються, які мають ідентичний розмір, наприклад, коефіцієнтів перетворення 4×4. Щоб визначати область для субблока, модуль 56 ентропійного кодування може порівнювати суму координат X і Y субблока (наприклад, конкретний коефіцієнт перетворення субблока, наприклад верхній лівий коефіцієнт перетворення субблока) з пороговим значенням. Те, менше чи ні сума координат X і Y порогового значення, може служити ознакою того, включаються коефіцієнти перетворення субблока в першу область або у другу область. Наприклад, нехай Cij представляє позицію субблока, що має верхній лівий коефіцієнт перетворення в позиції (i, j), де х=i і у=j. Додатково, нехай Т задає порогове значення. Модуль 56 ентропійного кодування може визначати область, в якій виникають коефіцієнти перетворення субблока, з використанням наступного псевдокоду: (i+j=порогове значення) є істинною, то відеокодер може визначати те, що відповідний коефіцієнт виникає в області R2; в іншому випадку, якщо умова не є істинною, відеокодер визначає те, що відповідний коефіцієнт виникає в області R1. Аналогічно, координати можуть призначатися областям на основі субблоків 4×4. Для субблока з координатами (X, Y), області можуть бути задані згідно з позицією субблока 4×4. Наприклад, якщо умова (X+Y>=порогове значення) є істинною, то відеокодер може визначати те, що відповідний коефіцієнт виникає в області R2; в іншому випадку відеокодер може визначати те, що відповідний коефіцієнт виникає в області R1. Порогове значення може задаватися фіксовано рівним деякому попередньо заданому значенню, наприклад цілому числу, що дорівнює 4, 5, 6, 7 або 8, або може залежати від розміру відеоблока, наприклад TU. Таким чином, фіг. 10 представляє приклад, в якому відеокодер може бути сконфігурований з можливістю визначати контекст для кодування коефіцієнта перетворення, основуючись на області, в якій виникає коефіцієнт перетворення, з використанням однієї з контекстної інформації на основі позиції і контекстної інформації на основі оточення, основуючись на області. Зокрема, якщо коефіцієнт перетворення знаходиться в першій області, відеокодер може використовувати перший підхід до визначення контекстів для того, щоб визначати контекст для кодування коефіцієнта перетворення. Якщо коефіцієнт перетворення знаходиться у другій області, відеокодер може використовувати другий підхід до визначення контекстів для того, щоб визначати контекст для кодування коефіцієнта перетворення, при цьому другий підхід до визначення контекстів відрізняється від першого підходу до визначення контекстів, а перша область відрізняється від другої області. У прикладі, перша і друга області не перекриваються. З іншого боку, приклади першого і другого підходів до визначення контекстів включають в себе 20 UA 112674 C2 5 10 15 використання контекстної інформації на основі позиції і контекстної інформації на основі оточення. Фіг. 11 є концептуальною схемою, яка ілюструє зразкове призначення зміщень контексту для кожної області відеоблока. Контекстна модель може бути окремою для різних областей, але як і раніше використовувати ідентичний спосіб для обчислення контекстів. Іншими словами, відеокодер може бути сконфігурований за допомогою одного способу для обчислення контексту для кодування коефіцієнта перетворення, але може включати в себе різні контекстні моделі, визначені, основуючись на області, в якій виникає коефіцієнт перетворення. Наприклад, контекст може бути обчислений на основі оточення, але для інших областей він використовує зміщення. Зміщення для кожної області може бути фіксованим або залежним від одного або більше з розміру відеоблока, позиції коефіцієнта у відеоблоці або субблоці і позиції субблока у відеоблоці. Область R1 за фіг. 11 представляє інший приклад області, що включає в себе один або більше верхніх лівих субблоків 4×4 коефіцієнтів перетворення відеоблока, тоді як область R2 за фіг. 11 представляє інший приклад області, що включає в себе коефіцієнти перетворення відеоблока за межами області R1. Фіг. 11 також представляє приклад, в якому множина областей містить відповідні набори з одного або більше субблоків. Для зміщення, контекст може бути обчислений згідно з рівнянням (2): Ctx offset(region) (coefp! 0) 20 25 30 35 40 45 50 55 pS (2). Альтернативно, відеокодер може обчислювати контекст згідно з функцією з використанням Ctx як введення, наприклад Ctx=(Ctx+1)>>1. Один приклад основаних на області зміщень показується на фіг. 11, при цьому області R1 і R2 задаються на основі субблоків 4×4, і зміщення відрізняються для областей R1 іR2. Значення offset1 і offset2 зміщення можуть бути будь-якими цілими числами, наприклад offset1=0, offset2=3. В іншому прикладі, інші розділення на області також є можливими, і розділення більше ніж на дві області також є можливими. Фіг. 12 є концептуальною схемою, яка ілюструє зразкове вбудоване розділення відеоблока на дві або більше областей на основі TU-розмірів, які корелюються з існуючими контекстними моделями. Оскільки існує декілька розмірів TU в поточній HM (4×4, 8×8, 16×16 і 32×32), розділення великих блоків може виконуватися для менших TU-розмірів з використанням вбудованого стилю розділення, як проілюстровано на фіг. 12. Для вбудованого розділення може бути спільно використаний спосіб обчислення контекстів, і може бути спільно використана сама контекстна модель. Наприклад, для TU-розміру 32×32, в області R1, що представляє TU 4×4, обчислення контекстів може використовувати ідентичний спосіб для обчислення контекстів, що і для фактичної TU розміру 4×4. Крім цього, контекстна модель може бути спільно використана TU розміру 4×4 і R1 TU розміру 32×32, або зміщення може застосовуватися до контекстної моделі для TU розміру 4×4. Що стосується R2, спосіб обчислення контекстів може бути спільно використаний TU розміру 8×8 і R2 TU розміру 32×32. R3 представляє область TU 16×16, в той час як R4 представляє область TU 32×32. Потенційна перевага цього способу полягає в тому, що ідентичні одиниці можуть бути використані для обчислень контекстів, і може враховуватися додаткова кореляція між вбудованими областями і TU. Альтернативно, з використанням вбудованого розділення стилю, деякі контекстні моделі карти значущості можуть бути спільно використані для виділених позицій всіма TU або деякою групою TU. Наприклад, контекстна модель, відповідна DC-коефіцієнтам, може бути спільно використана всіма TU з розмірами від 4×4 до 32×32. Як інший приклад, контекстна модель, пов'язана з високочастотними коефіцієнтами, може бути спільно використана всіма TU. У цих випадках, область R1, що представляє TU 4×4, в TU розміру 32×32 може використовувати ідентичну контекстну модель для DC-коефіцієнтів і/або високочастотних коефіцієнтів як TU, що мають будь-який з розмірів в 4×4, 8×8, 16×16, 32×32 і т. п. Як додатковий приклад, замість спільного використання всіма TU, контекстна модель коефіцієнтів, описаних вище (наприклад, DC- і/або високочастотних коефіцієнтів), може бути спільно використана тільки піднабором або групою всіх TU. Наприклад, контекстна модель коефіцієнта може бути спільно використана тільки двома розмірами TU, наприклад TU 4×4 і 8×8. У цьому випадку, область R1, що представляє TU 4×4, в TU розміру 32×32 може використовувати ідентичну контекстну модель для DC-коефіцієнтів і/або високочастотних коефіцієнтів як TU, що мають розмір 4×4 і 8×8. Таким чином, приклад за фіг. 12 представляє приклад, в якому відеокодер, наприклад відеокодер 20 або відеодекодер 30, може бути сконфігурований з можливістю визначати 21 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 60 область, в якій виникає коефіцієнт перетворення, з множини областей відеоблока, при цьому кожна з областей відповідає відповідному одному з множини розмірів одиниць перетворення (TU), при цьому відеокодер визначає контекст за допомогою вибору контексту, який спільно використовується областю і TU, що має розмір, ідентичний розміру області. Фіг. 12 також представляє приклад, в якому відеокодер, наприклад відеокодер 20 або відеодекодер 30, може бути сконфігурований з можливістю визначати область, в якій виникає коефіцієнт перетворення, з множини областей відеоблока, при цьому кожна з областей відповідає відповідному одному з множини розмірів одиниць перетворення (TU), при цьому для того, щоб визначати контекст, відеокодер вибирає спільно використовуваний контекст для виділених позицій коефіцієнтів перетворення між двома або більше TU різних розмірів, при цьому область має розмір, ідентичний розміру однієї з двох або більше TU різних розмірів. Спільно використовуваний контекст для виділених позицій коефіцієнтів перетворення може містити контекст для одного з DC-коефіцієнтів і високочастотних коефіцієнтів, спільно використовуваних двома або більше TU різних розмірів. Додатково або альтернативно, спільно використовуваний контекст для виділених позицій коефіцієнтів перетворення може містити спільно використовуваний контекст між першою TU, що має розмір коефіцієнтів перетворення 4×4, і другою TU, що має розмір коефіцієнтів перетворення 8×8. Фіг. 13A і 13B є концептуальними схемами, які ілюструють зразкові розділення відеоблока на дві або більше областей. Аналогічно описаному вище відносно прикладів, в яких області основані на квадратних субблоках, наприклад 4×4, технології цього розкриття суті також описують спосіб класифікації, щоб розділяти відеоблок, наприклад TU, на дві або більше областей на основі субблоків прямокутної форми. Наприклад, субблоки 2×8 і 8×2 можуть бути використані для відеоблока 8×8 залежно від сканування коефіцієнтів, як показано на фіг. 13A і 13B. У цьому прикладі, відеокодер застосовує горизонтальне сканування для коефіцієнтів в блоці, показаному на фіг. 13A, і вертикальне сканування до блока, показаного на фіг. 13B. В прикладах, проілюстрованих на фіг. 13A і 13B, один квадратний блок представляє усього один коефіцієнт, і розмір всього відеоблока становить 8×8. Згідно з технологіями цього розкриття суті, відеоблок може бути розділений на різні прямокутні області, наприклад R1, R2, R3 і R4. Кожна з різних прямокутних областей може мати різне призначення контексту. Наприклад, для деяких областей, може бути використаний фіксований контекст. Ці області можуть формуватися на основі прямокутних субблоків (наприклад, 2×8 або 8×2), описаних вище і показаних на фіг. 13A і 13B. Наприклад, контекст може бути заданий згідно з позицією коефіцієнта у відеоблоці або згідно з позицією прямокутного субблока, який містить цей коефіцієнт. Альтернативно, контекстна модель може бути задана згідно з сусідніми субблоками прямокутної форми. Наприклад, кожний коефіцієнт в ідентичному прямокутному субблоці може використовувати один або декілька контекстів. Крім цього, коефіцієнти сусіднього прямокутного субблока також можуть використовувати один або декілька контекстів. Проте, контексти одного прямокутного субблока можуть відрізнятися від попередніх контекстів на основі прямокутних субблоків. Також може бути використаний гібридний тип контекстів, наприклад для деяких областей контексти можуть бути основані на оточенні і для деяких областей ідентичного відеоблока вони можуть бути фіксованими або основаними на позиції. Перевага підходу на основі позиції полягає в тому, що необов'язково обчислювати контекст на основі коефіцієнтів, це може виконуватися один раз для області. Крім того, розділення може залежати від позицій коефіцієнтів або позиції прямокутного субблока, що містить цей коефіцієнт. Для коефіцієнта з координатами (X, Y), області можуть бути задані згідно з позицією коефіцієнта. Наприклад, якщо умова (X+Y>=порогове значення) є істинною, то цей коефіцієнт може призначатися області R2; в іншому випадку, він може призначатися області R1. Аналогічним чином, це може виконуватися на основі субблока прямокутної форми, для субблока з координатами (X, Y), області можуть бути задані згідно з позицією прямокутного субблока. Наприклад, якщо умова (X+Y>=порогове значення) є істинною, то цей коефіцієнт може призначатися області R2, в іншому випадку, він може призначатися R1. Порогове значення може задаватися фіксовано рівним деякому попередньо заданому значенню, наприклад цілому числу (наприклад, рівному 0 або 1), або може залежати від TU-розміру. Альтернативно, контекстна модель може відрізнятися для різних областей, але як і раніше використовувати ідентичний спосіб для обчислення контекстів. Наприклад, контекст може бути обчислений на основі оточення, але для інших областей він використовує зміщення. Зміщення може бути фіксованим, залежним від розміру відеоблока або залежним від одного або більше з наступного: позиція коефіцієнта у відеоблоці і/або прямокутному субблоці, позиція прямокутного субблока, що містить поточний коефіцієнт у відеоблоці, або будь-яка комбінація цих умов. 22 UA 112674 C2 Для зміщення, контекст може бути обчислений згідно з рівнянням (3): Ctx offset(region) (coefp ! 0) 5 10 15 20 25 30 35 40 45 50 55 pS (3). Альтернативно, контекст може бути обчислений згідно з функцією з використанням Ctx як введення, наприклад Ctx=(Ctx+1)>>1. Фіг. 14A і 14B є концептуальними схемами, які ілюструють зразкове призначення зміщень контексту для кожної області відеоблока. У цих прикладах, області R1 і R2 задаються на основі прямокутних субблоків і напрямку сканування, і зміщення відрізняються для областей R1 і R2. Значення зміщення offset1 і offset2 можуть бути будь-якими цілими числами, наприклад offset1=0, offset2=3. Інші розділення на області також є можливими. Наприклад, число областей може перевищувати два. Потрібно зазначити, що прямокутні субблоки 2×8 і 8×2, залежно від напрямків сканування коефіцієнтів, використані в цьому розкритті суті як приклад. Аналогічні способи можуть бути використані для інших субблоків прямокутної форми з розміром M×N без обмеження. Загалом, це розкриття суті описує діагональне розділення відеоблоків, розділення відеоблоків на основі квадратних, наприклад 4×4, субблоків і розділення відеоблоків на основі прямокутних, наприклад 2×8 і 8×2, субблоків. У інших прикладах, інші типи розділення є можливими, і розділення може бути гнучким на основі різних форм, наприклад прямокутної, квадратної, трикутної і т. п., з різними розмірами. Це розкриття суті також описує розділення відеоблоків на будь-яке число областей. Це розкриття суті додатково описує угрупування коефіцієнтів в області на основі квадратного субблока, прямокутних субблоків або на основі інших угрупувань, наприклад діагональних розділень відеоблока. Порогові значення і зміщення, описані вище, також надаються як приклад, інші значення або сусідні залежності можуть бути використані. Аналогічні технології, як описано в цьому розкритті суті, можуть бути використані для неквадратних одиниць перетворення або інших форм одиниць. Описані технології можуть застосовуватися до кодування на основі карти значущості і до іншого синтаксичного кодування і кодування на основі елементів вибірки коефіцієнтів перетворення без обмеження. Крім цього, це розкриття суті типово згадує відеоблоки як TU-блоки, але технології можуть застосовуватися до будь-якої з TU, PU, CU, LCU або інших груп блоків. Фіг. 15 є блок-схемою послідовності операцій, що ілюструє зразковий спосіб для кодування поточного блока. Поточний блок може містити поточну CU або частину поточної CU. Хоч описується відносно відеокодера 20 (фіг. 1 і 2), потрібно розуміти, що інші пристрої можуть бути сконфігуровані з можливістю здійснювати спосіб, аналогічний способу за фіг. 15. У цьому прикладі, відеокодер 20 спочатку прогнозує поточний блок (150). Наприклад, відеокодер 20 може обчислювати одну або більше одиниць прогнозування (PU) для поточного блока. Відеокодер 20 потім може обчислювати залишковий блок для поточного блока, наприклад, щоб формувати одиницю перетворення (TU) (152). Щоб обчислювати залишковий блок, відеокодер 20 може обчислювати різницю (тобто попікселні різниці) між вихідним некодованим блоком і прогнозованим блоком для поточного блока. Відеокодер 20 потім може перетворювати і квантувати коефіцієнти залишкового блока (154). Потім, відеокодер 20 може сканувати квантовані коефіцієнти перетворення залишкового блока (156). У ході сканування, відеокодер 20 може визначати область, в якій виникає поточний коефіцієнт, і за рахунок цього відеокодер 20 може визначати області, в яких виникають різні коефіцієнти (158). Відповідно до технологій цього розкриття суті, відеокодер 20 може визначати області, в яких виникають коефіцієнти, на основі, наприклад, позицій коефіцієнтів або позицій субблоків, в яких виникають коефіцієнти. Відеокодер 20 може визначати області з використанням будь-якої з технологій, описаних відносно фіг. 9-14, або інших аналогічних технологій. Наприклад, як показано на фіг. 9A, відеокодер 20 може бути сконфігурований з можливістю визначати те, виникає коефіцієнт в першій області, що включає в себе один або більше субблоків, або у другій області, що включає в себе субблоки за межами першої області. Відеокодер 20 додатково може визначати контексти для ентропійного кодування коефіцієнтів, основуючись на областях (160). Іншими словами, відеокодер 20 може визначати, для кожного коефіцієнта, контекст для кодування коефіцієнта, основуючись на області, в якій виникає коефіцієнт. Наприклад, як пояснено вище, відеокодер 20 може визначати контекст на основі позиції коефіцієнта в блоці, позиції субблока, що включає в себе коефіцієнт, в блоці, зміщення, яке повинно застосовуватися до обчисленого контексту, і т. п., основуючись на області, в якій виникає коефіцієнт. 23 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 60 Аналогічно, відеокодер 20 може ентропійно кодувати коефіцієнти з використанням визначених контекстів (162). Зокрема, відеокодер 20 може ентропійно кодувати один або більше елементів синтаксису, що представляють коефіцієнти, з використанням контексту. Наприклад, відеокодер 20 може ентропійно кодувати одне або більше з інформації значущості для коефіцієнтів, інформації рівня для значущих коефіцієнтів і/або інформації знаку для значущих коефіцієнтів. Інформація значущості може містити дані significant_coeff_flag. Інформація рівня може містити coeff_abs_level_greater1_flag, coeff_abs_level_greater2_flag і coeff_abs_level_remaining. Інформація знака може містити coeff_sign_flag. Відеокодер 20 потім може виводити ентропійно кодовані дані для коефіцієнтів (164). Таким чином, спосіб за фіг. 15 представляє приклад способу, який включає в себе визначення контексту для кодування коефіцієнта перетворення відеоблока, основуючись на області відеоблока, в якій виникає коефіцієнт перетворення, і ентропійне кодування коефіцієнта перетворення з використанням визначеного контексту. Крім того, область може містити одну з першої області, що містить один або більше верхніх лівих субблоків 4×4 коефіцієнтів перетворення відеоблока, і другої області, що містить коефіцієнти перетворення відеоблока за межами першої області. Фіг. 16 є блок-схемою послідовності операцій, що ілюструє зразковий спосіб для декодування поточного блока відеоданих. Поточний блок може містити поточну CU або частину поточної CU. Хоч описується відносно відеокодера 30 (фіг. 1 і 3), потрібно розуміти, що інші пристрої можуть бути сконфігуровані з можливістю здійснювати спосіб, аналогічний способу за фіг. 16. Відеодекодер 30 може прогнозувати поточний блок (200), наприклад, з використанням режиму внутрішнього або зовнішнього прогнозування для того, щоб обчислювати прогнозований блок для поточного блока. Відеодекодер 30 також може приймати ентропійно кодовані дані для поточного блока, наприклад ентропійно кодовані дані для коефіцієнтів залишкового блока, відповідного поточному блоку (202). Відповідно до технологій цього розкриття суті, відеодекодер 30 може визначати області, в яких виникають коефіцієнти (204), наприклад, в ході процесу зворотного сканування і ентропійного декодування. Іншими словами, відеодекодер 30 може визначати позицію наступного коефіцієнта перетворення на основі позиції раніше декодованого коефіцієнта перетворення і наступного значущого коефіцієнта перетворення в порядку сканування. Відеодекодер 30 додатково може визначати область блока, в якій виникає ця позиція. Відеодекодер 30 може аналогічно визначати області для кожного з коефіцієнтів аналогічним чином. Крім того, відеодекодер 30 може визначати області, в яких виникають коефіцієнти, на основі, наприклад, позицій коефіцієнтів або позицій субблоків, в яких виникають коефіцієнти. Відеодекодер 30 може визначати області з використанням будь-якої з технологій, описаних відносно фіг. 9-14, або інших аналогічних технологій. Наприклад, як показано на фіг. 9A, відеодекодер 30 може бути сконфігурований з можливістю визначати те, виникає коефіцієнт в першій області, що включає в себе один або більше субблоків, або у другій області, що включає в себе субблоки за межами першої області. Крім того, відеодекодер 30 може визначати контексти для декодування коефіцієнтів на основі визначених областей (206). Іншими словами, відеодекодер 30 може визначати, для кожного коефіцієнта, контекст для декодування коефіцієнта, основуючись на області, в якій виникає коефіцієнт. Наприклад, як пояснено вище, відеодекодер 30 може визначати контекст на основі позиції коефіцієнта в блоці, позиції субблока, що включає в себе коефіцієнт, в блоці, зміщення, яке повинно застосовуватися до обчисленого контексту, і т. п., основуючись на області, в якій виникає коефіцієнт. Відеодекодер 30 може ентропійно декодувати ентропійно кодовані дані, щоб відтворювати коефіцієнти блока з використанням визначених контекстів (208). Зокрема, відеодекодер 30 може ентропійно декодувати один або більше елементів синтаксису, що представляють коефіцієнти, з використанням контексту. Наприклад, відеодекодер 30 може ентропійно декодувати одне або більше з інформації значущості для коефіцієнтів, інформації рівня для значущих коефіцієнтів і/або інформації знака для значущих коефіцієнтів. Інформація значущості може містити дані significant_coeff_flag. Інформація рівня може містити coeff_abs_level_greater1_flag, coeff_abs_level_greater2_flag і coeff_abs_level_remaining. Інформація знака може містити coeff_sign_flag. Відеодекодер 30 потім може повторно формувати блок (наприклад, TU), який включає в себе декодовані коефіцієнти перетворення у відповідних позиціях (210). Іншими словами, як пояснено вище, відеодекодер 30 може зворотно сканувати відтворені коефіцієнти, щоб створювати блок квантованих коефіцієнтів перетворення. 24 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 60 Відеодекодер 30 потім може зворотно квантувати і зворотно перетворювати коефіцієнти, щоб формувати залишковий блок (212). Відеодекодер 30 може, зрештою, декодувати поточний блок за допомогою комбінування прогнозованого блока і залишкового блока (214). Іншими словами, відеодекодер 30 може математично комбінувати пікселні значення прогнозованого блока зі спільно розміщеними пікселними значеннями залишкового блока, щоб декодувати і відтворювати вихідний блок. Таким чином, спосіб за фіг. 16 представляє приклад способу, який включає в себе визначення контексту для кодування коефіцієнта перетворення відеоблока, основуючись на області відеоблока, в якій виникає коефіцієнт перетворення, і ентропійне кодування коефіцієнта перетворення з використанням визначеного контексту. Крім того, область може містити одну з першої області, що містить один або більше верхніх лівих субблоків 4×4 коефіцієнтів перетворення відеоблока, і другої області, що містить коефіцієнти перетворення відеоблока за межами першої області. У одному або більше прикладах, описані функції можуть бути реалізовані в апаратних засобах, програмному забезпеченні, мікропрограмному забезпеченні або будь-якій комбінації вищезазначеного. При реалізації в програмному забезпеченні, функції можуть бути збережені або передані, як одна або більше інструкцій або код, по зчитуваному комп'ютером носію і виконані за допомогою апаратного процесора. Зчитувані комп'ютером носії можуть включати в себе зчитувані комп'ютером носії даних, які відповідають матеріальному носію, такі як носії даних, або середовища зв'язку, що включають в себе будь-який носій, який спрощує перенесення комп'ютерної програми з одного місця в інше, наприклад, згідно з протоколом зв'язку. Таким чином, зчитувані комп'ютером носії, загалом, можуть відповідати (1) матеріальному зчитуваному комп'ютером носію зберігання даних, який є енергонезалежним, або (2) середовищу зв'язку, такому як сигнал або несуча. Носії даних можуть бути будь-якими доступними носіями, до яких може здійснюватися доступ за допомогою одного або більше комп'ютерів або одного або більше процесорів з тим, щоб витягувати інструкції, код і/або структури даних для реалізації технологій, описаних в цьому розкритті суті. Комп'ютерний програмний продукт може включати в себе зчитуваний комп'ютером носій. Як приклад, а не обмеження, ці зчитувані комп'ютером носії даних можуть містити RAM, ROM, EEPROM, CD-ROM або інший пристрій зберігання на оптичних дисках, пристрій зберігання на магнітних дисках або інші магнітні пристрої зберігання, флеш-пам'ять або будьякий інший носій, який може бути використаний для того, щоб зберігати необхідний програмний код у формі інструкцій або структур даних і до якого можна здійснювати доступ за допомогою комп'ютера. Так само, будь-яке підключення коректно називати зчитуваним комп'ютером носієм. Наприклад, якщо інструкції передаються з веб-вузла, сервера або іншого віддаленого джерела за допомогою коаксіального кабелю, оптоволоконного кабелю, "витої пари", цифрової абонентської лінії (DSL) або бездротових технологій, таких як інфрачервоні, радіопередавальні і мікрохвильові середовища, то коаксіальний кабель, оптоволоконний кабель, "вита пара", DSL або бездротові технології, такі як інфрачервоні, радіопередавальні і мікрохвильові середовища, включаються у визначення носія. Проте, потрібно розуміти, що зчитувані комп'ютером носії даних і носії даних не включають в себе з'єднання, несучі, сигнали або інші енергозалежні носії, а замість цього направлені на енергонезалежні матеріальні носії даних. Диск (disk) і диск (disc) при використанні в даному документі включають в себе компакт-диск (CD), лазерний диск, оптичний диск, універсальний цифровий диск (DVD), гнучкий диск і диск Blu-Ray, при цьому диски (disk) звичайно відтворюють дані магнітно, тоді як диски (disc) звичайно відтворюють дані оптично за допомогою лазерів. Комбінації вищепереліченого також потрібно включати в число зчитуваних комп'ютером носіїв. Інструкції можуть виконуватися за допомогою одного або більше процесорів, наприклад одного або більше процесорів цифрових сигналів (DSP), мікропроцесорів загального призначення, спеціалізованих інтегральних схем (ASIC), програмованих користувачем вентильних матриць (FPGA) або інших еквівалентних інтегральних або дискретних логічних схем. Відповідно, термін "процесор" при використанні в даному документі може означати будьяку вищезгадану структуру або іншу структуру, придатну для реалізації технологій, описаних в даному документі. Крім цього, в деяких аспектах функціональність, описана в даному документі, може бути надана в межах спеціалізованих програмних і/або апаратних модулів, сконфігурованих з можливістю кодування або декодування або вбудованих в комбінований кодек. Крім того, технології можуть бути повністю реалізовані в одній або більше схемах або логічних елементах. Технології цього розкриття суті можуть бути реалізовані в широкому спектрі пристроїв або приладів, в тому числі в бездротовому переносному телефоні, в інтегральній схемі (IC) або в 25 UA 112674 C2 5 10 наборі IC (наприклад, в наборі мікросхем). Різні компоненти, модулі або блоки описуються в цьому розкритті суті для того, щоб підкреслювати функціональні аспекти пристроїв, сконфігурованих з можливістю здійснювати розкриті технології, але необов'язково вимагають реалізації за допомогою різних апаратних модулів. Навпаки, як описано вище, різні модулі можуть бути комбіновані в апаратний модуль кодека або надані за допомогою набору взаємодіючих апаратних модулів, що включають в себе один або більше процесорів, як описано вище, в поєднанні з належним програмним забезпеченням і/або мікропрограмним забезпеченням. Описані різні приклади. Ці і інші приклади знаходяться в межах обсягу прикладеної формули винаходу. ФОРМУЛА ВИНАХОДУ 15 20 25 30 35 40 45 50 55 1. Спосіб декодування відеоданих, що включає етапи, на яких: - визначають, що перший коефіцієнт перетворення першого відеоблока є DC-коефіцієнтом перетворення, при цьому перший відеоблок містить множину підблоків; - визначають перший контекст для ентропійного декодування першого коефіцієнта перетворення на основі того, що перший коефіцієнт перетворення є DC-коефіцієнтом перетворення, без урахування першого розміру першого відеоблока; - визначають, що другий коефіцієнт перетворення першого відеоблока не є DC-коефіцієнтом перетворення, - на основі того, що другий коефіцієнт перетворення не є DC-коефіцієнтом перетворення, визначають другий контекст для ентропійного декодування другого коефіцієнта перетворення на основі, щонайменше частково, того, який з підблоків включає в себе другий коефіцієнт перетворення; - визначають, чи є третій коефіцієнт перетворення другого відеоблока DC-коефіцієнтом перетворення, при цьому другий відеоблок має другий розмір, відмітний від першого розміру першого відеоблока; - коли третій коефіцієнт перетворення визначений як DC-коефіцієнт перетворення другого відеоблока, визначають перший контекст для ентропійного декодування третього коефіцієнта перетворення на основі того, що третій коефіцієнт перетворення є DC-коефіцієнтом перетворення другого відеоблока, без урахування другого розміру; - ентропійно декодують перший коефіцієнт перетворення з використанням першого контексту; - ентропійно декодують другий коефіцієнт перетворення з використанням другого контексту; і - ентропійно декодують третій коефіцієнт перетворення з використанням першого контексту. 2. Спосіб за п. 1, в якому визначення першого контексту включає етап, на якому вибирають перший контекст з даних, які відображають DC-коефіцієнт перетворення на перший контекст для множини різних розмірів відеоблоків. 3. Спосіб за п. 2, в якому множина різних розмірів відеоблоків включає в себе відеоблоки 4×4 і відеоблоки 8×8. 4. Спосіб за п. 1, в якому ентропійне декодування першого коефіцієнта перетворення включає етап, на якому ентропійно декодують перший коефіцієнт перетворення з використанням першого контексту згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС). 5. Пристрій для декодування відеоданих, який містить: пам'ять, виконану з можливістю збереження відеоданих; та відеодекодер, виконаний з можливістю - визначення, що перший коефіцієнт перетворення першого відеоблока з відеоданих є DCкоефіцієнтом перетворення, при цьому перший відеоблок містить множину підблоків, - визначення першого контексту для ентропійного декодування першого коефіцієнта перетворення на основі того, що перший коефіцієнт перетворення є DC-коефіцієнтом перетворення, без урахування першого розміру першого відеоблока, - визначення, що другий коефіцієнт перетворення першого відеоблока не є DC-коефіцієнтом перетворення; - на основі того, що другий коефіцієнт перетворення не є DC-коефіцієнтом перетворення, визначення другого контексту для ентропійного декодування другого коефіцієнта перетворення на основі, щонайменше частково, того, який з підблоків включає в себе другий коефіцієнт перетворення; 26 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 60 - визначення, чи є третій коефіцієнт перетворення другого відеоблока DC-коефіцієнтом перетворення, при цьому другий відеоблок має другий розмір, відмінний від першого розміру першого відеоблока; - коли третій коефіцієнт перетворення визначений як DC-коефіцієнт перетворення другого відеоблока, визначення першого контексту для ентропійного декодування третього коефіцієнта перетворення на основі того, що третій коефіцієнт перетворення є DC-коефіцієнтом перетворення другого відеоблока, без урахування другого розміру; - ентропійного декодування першого коефіцієнта перетворення з використанням першого контексту; ентропійного декодування другого коефіцієнта перетворення з використанням другого контексту; - ентропійного декодування третього коефіцієнта перетворення з використанням першого контексту. 6. Пристрій за п. 5, в якому, коли коефіцієнт перетворення містить DC-коефіцієнт перетворення, відеодекодер виконаний з можливістю вибирати перший контекст з даних, які відображають DCкоефіцієнт перетворення на перший контекст для множини різних розмірів відеоблоків. 7. Пристрій за п. 6, в якому множина різних розмірів відеоблоків включає в себе відеоблоки 4×4 і відеоблоки 8×8. 8. Пристрій за п. 5, в якому, для того, щоб ентропійно декодувати перший коефіцієнт перетворення, відеодекодер виконаний з можливістю ентропійно декодувати перший коефіцієнт перетворення з використанням першого контексту згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС). 9. Пристрій для декодування відеоданих, який містить: - засіб для визначення, що коефіцієнт перетворення першого відеоблока є DC-коефіцієнтом перетворення, при цьому перший відеоблок містить множину підблоків; - засіб для визначення першого контексту для ентропійного декодування першого коефіцієнта перетворення на основі того, що перший коефіцієнт перетворення є DC-коефіцієнтом перетворення, без урахування першого розміру першого відеоблока; і - засіб для визначення, що другий коефіцієнт перетворення першого відеоблока не є DCкоефіцієнтом перетворення; - засіб для визначення на основі того, що другий коефіцієнт перетворення не є DC-коефіцієнтом перетворення, другого контексту для ентропійного декодування другого коефіцієнта перетворення на основі, щонайменше частково, того, який з підблоків включає в себе другий коефіцієнт перетворення; - засіб для визначення, чи є третій коефіцієнт перетворення другого відеоблока DCкоефіцієнтом перетворення, при цьому другий відеоблок має другий розмір, відмітний від першого розміру першого відеоблока; - засіб для визначення, коли третій коефіцієнт перетворення визначений як DC-коефіцієнт перетворення другого відеоблока, першого контексту для ентропійного декодування третього коефіцієнта перетворення на основі того, що третій коефіцієнт є DC-коефіцієнтом перетворення другого відеоблока, без урахування другого розміру; - засіб для ентропійного декодування першого коефіцієнта перетворення з використанням першого контексту; - засіб для ентропійного декодування другого коефіцієнта перетворення з використанням другого контексту; і - засіб для ентропійного декодування третього коефіцієнта перетворення з використанням першого контексту. 10. Пристрій за п. 9, в якому засіб для визначення першого контексту містить засіб для вибору першого контексту з даних, які відображають DC-коефіцієнт перетворення на перший контекст для множини різних розмірів відеоблоків. 11. Пристрій за п. 10, в якому множина різних розмірів відеоблоків перетворення включає в себе відеоблоки 4×4 і відеоблоки 8×8. 12. Пристрій за п. 9, в якому засіб для ентропійного декодування першого коефіцієнта перетворення включає засіб для ентропійного декодування першого коефіцієнта перетворення з використанням першого контексту згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС). 13. Зчитуваний комп'ютером носій даних, який зберігає інструкції, які при виконанні спонукають процесор: - визначати, що перший коефіцієнт перетворення першого відеоблока є DC-коефіцієнтом перетворення, при цьому перший відеоблок містить множину підблоків; 27 UA 112674 C2 5 10 15 20 25 30 35 40 45 50 55 60 - визначати перший контекст для ентропійного декодування першого коефіцієнта перетворення на основі того, що перший коефіцієнт перетворення є DC-коефіцієнтом перетворення, без урахування першого розміру першого блока; - визначати, що другий коефіцієнт перетворення першого відеоблока не є DC-коефіцієнтом перетворення; - на основі того, що другий коефіцієнт перетворення не є DC-коефіцієнтом перетворення, визначати другий контекст для ентропійного декодування другого коефіцієнту перетворення на основі, щонайменше частково, того, який з підблоків включає в себе другий коефіцієнт перетворення; - визначати, чи є третій коефіцієнт перетворення другого відеоблока DC-коефіцієнтом перетворення, при цьому другий відеоблок має другий розмір, відмітний від першого розміру першого відеоблока; - коли третій коефіцієнт перетворення визначений як DC-коефіцієнт перетворення другого відеоблока, визначати перший контекст для ентропійного декодування другого коефіцієнта перетворення на основі того, що третій коефіцієнт перетворення є DC-коефіцієнтом перетворення другого відеоблока, без урахування другого розміру; і - ентропійно декодувати коефіцієнт перетворення з використанням першого контексту; - ентропійно декодувати другий коефіцієнт перетворення з використанням другого контексту; і - ентропійно декодувати третій коефіцієнт перетворення з використанням першого контексту. 14. Зчитуваний комп'ютером носій даних за п. 13, в якому інструкції, які спонукають процесор визначати перший контекст, містять інструкції, які спонукають процесор вибирати перший контекст з даних, які відображають DC-коефіцієнт перетворення на перший контекст для множини різних розмірів відеоблоків. 15. Зчитуваний комп'ютером носій даних за п. 14, в якому множина різних розмірів відеоблоків включає в себе відеоблоки 4×4 і відеоблоки 8×8. 16. Зчитуваний комп'ютером носій даних за п. 13, в якому інструкції, які спонукають процесор ентропійно декодувати перший коефіцієнт перетворення, містять інструкції, які спонукають процесор ентропійно декодувати перший коефіцієнт перетворення з використанням першого контексту згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС). 17. Спосіб кодування відеоданих, який включає етапи, на яких: - визначають, що перший коефіцієнт перетворення першого відеоблока є DC-коефіцієнтом перетворення, при цьому перший відеоблок включає множину підблоків; - визначають перший контекст для ентропійного кодування першого коефіцієнта перетворення на основі того, що перший коефіцієнт перетворення є DC-коефіцієнтом перетворення, без урахування першого розміру першого відеоблока; - визначають, що другий коефіцієнт перетворення першого відеоблока не є DC-коефіцієнтом перетворення; - на основі того, що другий коефіцієнт перетворення не є DC-коефіцієнтом перетворення, визначають другий контекст для ентропійного кодування другого коефіцієнта перетворення на основі, щонайменше частково, того, який з підблоків включає в себе другий коефіцієнт перетворення; - визначають, чи є третій коефіцієнт перетворення другого відеоблока DC-коефіцієнтом перетворення, при цьому другий відеоблок має другий розмір, відмітний від першого розміру першого відеоблока; - коли третій коефіцієнт перетворення визначений як DC-коефіцієнт перетворення другого відеоблока, визначають перший контекст для ентропійного кодування третього коефіцієнта перетворення на основі того, що третій коефіцієнт перетворення є DC-коефіцієнтом перетворення другого відеоблока, без урахування другого розміру; - ентропійно кодують перший коефіцієнт перетворення з використанням першого контексту; - ентропійно кодують другий коефіцієнт перетворення з використанням другого контексту; - ентропійно кодують третій коефіцієнт перетворення з використанням першого контексту. 18. Спосіб за п. 17, в якому визначення першого контексту включає етап, на якому вибирають перший контекст з даних, які відображають DC-коефіцієнт перетворення на перший контекст для множини різних розмірів відеоблоків. 19. Спосіб за п. 18, в якому множина різних розмірів відеоблоків включає в себе відеоблоки 4×4 і відеоблоки 8×8. 20. Спосіб за п. 17, в якому ентропійне кодування першого коефіцієнта перетворення включає етап, на якому ентропійно кодують перший коефіцієнт перетворення з використанням першого контексту згідно з контекстно-адаптивним двійковим арифметичним кодуванням (САВАС). 21. Пристрій для кодування відеоданих, який містить: 28
ДивитисяДодаткова інформація
Автори англійськоюSeregin, Vadim, Sole Rojals, Joel, Karczewicz, Marta
Автори російськоюСерёгин Вадим, Соле Рохальс Хоель, Карчевич Марта
МПК / Мітки
МПК: H04N 7/00, H04N 19/00
Мітки: перетворення, даних, кодуванні, відео, визначення, коефіцієнтів, контекстів, кодування
Код посилання
<a href="https://ua.patents.su/40-112674-viznachennya-kontekstiv-dlya-koduvannya-danikh-koeficiehntiv-peretvorennya-pri-koduvanni-video.html" target="_blank" rel="follow" title="База патентів України">Визначення контекстів для кодування даних коефіцієнтів перетворення при кодуванні відео</a>
Попередній патент: Двигун на ефекті холла
Наступний патент: Вказівка використання паралельної хвильової обробки у кодуванні відео
Випадковий патент: Стаціонарний стельовий підйомник для мультимедійного проектора