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

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

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

Автори: Кобан Мухаммед Зейд, Карчевіч Марта, Чень Пейсун, Чіень Вей-Цзюн

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

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

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

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

визначають просторові вектори руху-кандидати, пов'язані з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок поточного відеокадру, прилеглих до поточної ділянки;

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

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

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

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

сигналізують індекс в бітовому потоці.

2. Спосіб за пунктом 1,

в якому поточна ділянка містить поточну одиницю кодування (CU),

в якому ділянка опорного кадру містить CU опорного кадру.

3. Спосіб за пунктом 1, який додатково включає генерування прогнозуючої одиниці (PU), яка включає в себе дані прогнозування, що містять щонайменше вибраний вектор руху-кандидат,

при цьому сигналізація вибраного вектора руху-кандидата містить сигналізацію PU в бітовому потоці.

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

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

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

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

виконання аналізу спотворення залежно від швидкості передачі відносно кожного з часового вектора руху-кандидата і просторових векторів руху-кандидатів, що залишилися після зрізування; і

вибір часового вектора руху-кандидата або одного з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраного вектора руху-кандидата на основі аналізу спотворення залежно від швидкості передачі.

7. Спосіб за пунктом 1, який додатково включає визначення, чи був кожний з визначених просторових векторів руху-кандидатів просторово прогнозований або часово прогнозований,

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

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

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

визначення, чи був кожний з визначених просторових векторів руху-кандидатів просторово прогнозований або часово прогнозований; і

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

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

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

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

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

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

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

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

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

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

засіб для сигналізації індексу в бітовому потоці.

11. Пристрій за пунктом 10, який додатково містить засіб для визначення, чи був кожний з визначених просторових векторів руху-кандидатів просторово прогнозований або часово прогнозований,

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

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

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

засіб для визначення, чи був кожний з визначених просторових векторів руху-кандидатів просторово прогнозований або часово прогнозований; і

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

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

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

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

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

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

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

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

15. Пристрій за пунктом 14,

в якому поточна ділянка містить поточну одиницю кодування (CU),

в якому ділянка опорного кадру містить CU опорного кадру.

16. Пристрій за пунктом 14, в якому блок компенсації руху додатково генерує прогнозуючу одиницю (PU), яка включає в себе дані прогнозування, що містять щонайменше вибраний вектор руху-кандидат,

при цьому блок ентропійного кодування сигналізує PU в бітовому потоці.

17. Пристрій за пунктом 14, в якому блок ентропійного кодування сигналізує індекс як індекс предиктора вектора руху (MVP), який ідентифікує місцеположення вибраного вектора руху-кандидата в списку з часового вектора руху-кандидата і просторових векторів руху-кандидатів, які залишилися після зрізування.

18. Пристрій за пунктом 14,

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

19. Пристрій за пунктом 14, в якому блок вибору режиму виконує аналіз спотворення залежно від швидкості передачі відносно кожного з часового вектора руху-кандидата і просторових векторів руху-кандидатів, що залишилися після зрізування, і вибирає часовий вектор руху-кандидат або один з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраний вектор руху-кандидат на основі аналізу спотворення залежно від швидкості передачі.

20. Пристрій за пунктом 14,

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

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

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

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

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

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

визначення просторових векторів руху-кандидатів, пов'язаних з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок поточного відеокадру, прилеглих до поточної ділянки;

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

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

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

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

сигналізації індексу в бітовому потоці.

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

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

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

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

виконують компенсацію руху на основі вибраного вектора руху-кандидата.

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

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

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

декодування кодованого індексу MVP для визначення індексу MVP.

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

визначення того, що часовий вектор руху-кандидат для поточної ділянки поточного кадру недоступний; і

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

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

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

визначення, чи був опорний кадр intra-кодований; і

коли опорний кадр визначений як intra-кодований, витягання інформації вектора руху за умовчанням на основі просторових векторів руху, визначених для ділянки опорного кадру.

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

визначення того, що один з просторових векторів руху-кандидатів недоступний; і

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

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

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

30. Спосіб за пунктом 29, в якому визначення інформації вектора руху за умовчанням включає визначення амплітуди вектора руху без визначення напряму прогнозування, ідентифікуючого, чи передує або чи іде за поточним кадром опорний кадр тимчасово, або індексу опори, ідентифікуючого опорний кадр, коли режимом прогнозування вектора руху є режим адаптивного прогнозування вектора руху (AMVP).

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

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

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

визначення того, що один з просторових векторів руху-кандидатів недоступний; і

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

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

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

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

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

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

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

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

засіб для виконання компенсації руху на основі вибраного вектора руху-кандидата.

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

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

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

засіб для декодування кодованого індексу MVP для визначення індексу MVP.

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

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

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

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

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

засіб для визначення, чи був опорний кадр intra-кодований; і

коли опорний кадр визначений як intra-кодований, засіб для витягання інформації вектора руху за умовчанням на основі просторових векторів руху,

визначених для ділянки опорного кадру.

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

засіб для визначення того, що один з просторових векторів руху-кандидатів недоступний; і

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

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

при цьому засіб для вибору містить засіб для вибору часового вектора руху-кандидата, одного з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраного вектора руху-кандидата, містить засіб для вибору часового вектора руху-кандидата або одного з просторових векторів руху-кандидатів, визначеного як недоступний, або одного з просторових векторів руху-кандидатів, що залишилися після зрізування, на основі індексу предиктора вектора руху (MVP), сигналізованого в бітовому потоці.

41. Пристрій за пунктом 40, в якому засіб для визначення інформації вектора руху за умовчанням містить засіб для визначення амплітуди вектора руху без визначення напряму прогнозування, ідентифікуючого, чи передує або чи іде за поточним кадром опорний кадр тимчасово, або індексу опори, ідентифікуючого опорний кадр, коли режимом прогнозування вектора руху є режим адаптивного прогнозування вектора руху (AMVP).

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

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

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

засіб для визначення того, що один з просторових векторів руху-кандидатів недоступний; і

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

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

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

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

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

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

47. Пристрій за пунктом 46,

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

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

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

визначення того, що часовий вектор руху-кандидат для поточної ділянки поточного кадру недоступний; і

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

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

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

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

52. Пристрій за пунктом 51, в якому блок компенсації руху визначає амплітуду вектора руху без визначення напряму прогнозування, ідентифікуючого, чи передує або чи іде за поточним кадром опорний кадр тимчасово, або індексу опори, ідентифікуючого опорний кадр, коли режимом прогнозування вектора руху є режим адаптивного прогнозування вектора руху (AMVP).

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

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

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

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

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

визначення просторових векторів руху-кандидатів, пов'язаних з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок поточного відеокадру, прилеглих до поточної ділянки;

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

вибору одного з часового вектора руху-кандидата або одного з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраного вектора руху-кандидата для процесу прогнозування вектора руху, на основі індексу предиктора вектора руху (MVP), що сигналізується в бітовому потоці; і

виконання компенсації руху на основі вибраного вектора руху-кандидата.

Текст

Реферат: Описані методики для виконання прогнозування вектора руху для відеокодування. Пристрій, що містить блок компенсації руху, може реалізувати згадані методики. Блок компенсації руху визначає просторові вектори руху-кандидати (MVP), пов'язані з поточною ділянкою відеокадру, і зрізує просторові вектори руху-кандидати для видалення дублікатів, без видалення часового вектора руху-кандидата. Блок компенсації руху вибирає один з часового вектора рухукандидата або один з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраний вектор руху-кандидат на основі індексу предиктора вектора руху (MVP), сигналізованого в бітовому потоці, і виконує компенсацію руху на основі вибраного вектора руху-кандидата. UA 107152 C2 (12) UA 107152 C2 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 Ця заявка вимагає пріоритет попередньої заявки на патент США № 61/436,997, поданої 27 січня 2011 року, попередньої заявки на патент США № 61/449,985, поданої 7 березня 2011 року і попередньої заявки на патент США № 61/561,601, поданої 18 листопада 2011 року, кожна з яких у всій своїй повноті включена в даний документ за допомогою посилання. Галузь техніки Це розкриття стосується відеокодування і, більш конкретно, аспектів компенсації руху відеокодування. Рівень техніки Можливості цифрового відео можуть бути включені в широкий діапазон пристроїв, в тому числі засоби цифрового телебачення, системи цифрового прямого мовлення, системи бездротового мовлення, персональні цифрові помічники (PDA), переносні або настільні комп'ютери, цифрові камери, цифрові пристрої запису, цифрові медіапрогравачі, ігрові відеопристрої, консолі відеоігор, стільникові або супутникові радіотелефони, пристрої відеоконференцзв'язку і подібне. Цифрові відеопристрої реалізовують методики стиснення відео, наприклад такі, які описані в стандартах, визначених за допомогою MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, Вдосконаленого Відеокодування (Advanced Video Coding, AVC) і розширень таких стандартів, для більш ефективної передачі і прийому цифрової відеоінформації. Розробляються нові стандарти відеокодування, наприклад стандарт Високоефективного Відеокодування (High Efficiency Video Coding, HEVC), розроблюваний "Об'єднаною Командою по Відеокодуванню" (Joint Collaborative Team-Video Coding, JCT-VC), який являє собою спільну роботу між MPEG і ITU-T. Стандарт HEVC, що розвивається, іноді називають як H.265, хоч таке позначення формально не було прийняте. Суть винаходу Загалом, це розкриття описує методики для задавання предикторів вектора руху (MVP). MVP звичайно застосовуються у відеокодуванні як спосіб поліпшення ефективності, з якою виконується компенсація руху. Замість того, щоб виконувати пошук блоків в опорних кадрах, які відповідають поточному блоку, відеокодер може вибирати вектор руху для поточного блока зі списку MVP. У деяких прикладах список MVP може включати в себе вектори руху з чотирьох блоків, які є просторовими сусідами відносно поточного блока, і вектор руху зі спільно розміщеного блока з опорного кадру знаходиться тимчасово до або після поточного кадру. Вибраний один з MVP потім використовується для поточного блока, скорочуючи, якщо не усуваючи, процес компенсації руху. У одному прикладі спосіб кодування відеоданих включає визначення просторових векторів руху-кандидатів, пов'язаних з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок поточного відеокадру, прилеглих до поточної ділянки, зрізування просторових векторів руху-кандидатів для видалення щонайменше одного з просторових векторів руху-кандидатів і визначення часового вектора руху-кандидата, пов'язаного з поточною ділянкою поточного відеокадру. Часовий вектор руху-кандидат містить вектор руху, визначений для ділянки опорного відеокадру. Спосіб також включає вибір часового вектора руху-кандидата або одного з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраного вектор руху-кандидата і здійснення сигналізації вибраного вектора руху-кандидата в бітовому потоці. У іншому прикладі пристрій для кодування відеоданих містить засіб для визначення просторових векторів руху-кандидатів, пов'язаних з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок поточного відеокадру, прилеглих до поточної ділянки, засіб для зрізування просторових векторів руху-кандидатів для (видалення) щонайменше одного з просторових векторів рухукандидатів і засіб для визначення часового вектора руху-кандидата, пов'язаного з поточною ділянкою поточного відеокадру. Часовий вектор руху-кандидат містить вектор руху, визначений для ділянки опорного відеокадру. Пристрій додатково містить засіб для вибору часового вектора руху-кандидата або одного з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраного вектор руху-кандидата і засіб для сигналізації вибраного вектора руху-кандидата в бітовому потоці. У іншому прикладі пристрій для кодування відеоданих містить блок компенсації руху, який визначає просторові вектори руху-кандидати, пов'язані з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок поточного відеокадру, прилеглих до поточної ділянки, зрізує просторові вектори руху-кандидати для видалення щонайменше одного з просторових векторів руху-кандидатів і визначає часовий вектор руху-кандидат, пов'язаний з поточною ділянкою поточного відеокадру. Часовий вектор руху-кандидат містить вектор руху, визначений для ділянки опорного 1 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 відеокадру. Пристрій також містить блок вибору режиму, який вибирає часовий вектор рухукандидат або один з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраний вектор руху-кандидат, і блок ентропійного кодування, який сигналізує вибраний вектор руху-кандидат в бітовому потоці. У іншому прикладі постійний зчитуваний комп'ютером носій містить інструкції, які, коли виконуються, спонукають один або більше процесорів до визначення просторових векторів руху-кандидатів, пов'язаних з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок поточного відеокадру, прилеглих до поточної ділянки, зрізування просторових векторів руху-кандидатів для видалення щонайменше одного з просторових векторів руху-кандидатів, визначення часового вектора руху-кандидата, пов'язаного з поточною ділянкою поточного відеокадру, при цьому часовий вектор руху-кандидат містить вектор руху, визначений для ділянки опорного відеокадру, вибору часового вектора руху-кандидата або одного з просторових векторів рухукандидатів, що залишилися після зрізування, як вибраного вектора руху-кандидата і сигналізації вибраного вектора руху-кандидата в бітовому потоці. У іншому прикладі спосіб декодування відеоданих включає визначення просторових векторів руху-кандидатів, пов'язаних з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок поточного відеокадру, прилеглих до поточної ділянки, зрізування просторових векторів рухукандидатів для видалення щонайменше одного з просторових векторів руху-кандидатів без видалення часового вектора руху-кандидата, визначеного для поточної ділянки поточного відеокадру. Часовий вектор руху-кандидат містить вектор руху, визначений для ділянки опорного відеокадру, спільно розміщеної в тому ж самому положенні опорного відеокадру, що і поточна ділянка, яка знаходиться в поточному відеокадрі. Спосіб також включає вибір одного з часового вектора руху-кандидата або одного з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраного вектора руху-кандидата на основі індексу предиктора вектора руху (MVP), сигналізованого в бітовому потоці, і виконання компенсації руху на основі вибраного вектора руху-кандидата. У іншому прикладі пристрій для декодування відеоданих містить засіб для визначення просторових векторів руху-кандидатів, пов'язаних з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок поточного відеокадру, прилеглих до поточної ділянки, засіб для зрізування просторових векторів руху-кандидатів для видалення щонайменше одного з просторових векторів рухукандидатів без видалення часового вектора руху-кандидата, визначеного для поточної ділянки поточного відеокадру. Часовий вектор руху-кандидат містить вектор руху, визначений для ділянки опорного відеокадру. Пристрій також містить засіб для вибору одного з часового вектора руху-кандидата або одного з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраного вектора руху-кандидата на основі індексу предиктора вектора руху (MVP), сигналізованого в бітовому потоці, і засіб для виконання компенсаціїруху на основі вибраного вектора руху-кандидата. У іншому прикладі пристрій для декодування відеоданих містить блок компенсації руху, який визначає просторові вектори руху-кандидати, пов'язані з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок поточного відеокадру, прилеглих до поточної ділянки, зрізує просторові вектори руху-кандидати для видалення щонайменше одного з просторових векторів руху-кандидатів без видалення часового вектора руху-кандидата, визначеного для поточної ділянки поточного відеокадру, при цьому часовий вектор руху-кандидат містить вектор руху, визначений для ділянки опорного відеокадру, вибирає один з часового вектора руху-кандидата або один з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраний вектор руху-кандидат на основі індексу предиктора вектора руху (MVP), сигналізованого в бітовому потоці, і виконує компенсацію руху на основі вибраного вектора руху-кандидата. У іншому прикладі постійний зчитуваний комп'ютером носій містить інструкції, які, коли виконуються, спонукають один або більше процесорів до визначення просторових векторів руху-кандидатів, пов'язаних з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок поточного відеокадру, прилеглих до поточної ділянки, зрізування просторових векторів руху-кандидатів для видалення щонайменше одного з просторових векторів руху-кандидатів без видалення часового вектора руху-кандидата, визначеного для поточної ділянки поточного відеокадру, при цьому часовий вектор руху-кандидат містить вектор руху, визначений для ділянки опорного відеокадру, вибору одного з часового вектора руху-кандидата або одного з просторових 2 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 векторів руху-кандидатів, що залишилися після зрізування, як вибраного вектора рухукандидата на основі індексу предиктора вектора руху (MVP), сигналізованого в бітовому потоці, і виконання компенсації руху на основі вибраного вектора руху-кандидата. Подробиці одного або більше прикладів визначені в супровідних кресленнях і описі нижче по тексту. Інші ознаки, об'єкти і переваги будуть очевидні з опису і креслень, а також з формули винаходу. Короткий опис креслень Фіг. 1 являє собою блок-схему, що ілюструє зразкову систему відеокодування і декодування, яка може бути сконфігурована для застосування методик, описаних в цьому розкритті, для задавання предикторів вектора руху (MVP). Фіг. 2 являє собою блок-схему, що ілюструє приклад відеокодера, який може реалізувати методики, описані в цьому розкритті, для задавання предикторів вектора руху. Фіг. 3 являє собою блок-схему, що ілюструє приклад відеодекодера, який реалізовує методики прогнозування вектора руху, описані в цьому розкритті. Фіг. 4 являє собою блок-схему послідовності операцій, що ілюструє зразкову роботу відеокодера при реалізації методик прогнозування вектора руху, описаних в цьому розкритті. Фіг. 5 являє собою блок-схему послідовності операцій, що ілюструє зразкову роботу відеодекодера при реалізації методик прогнозування вектора руху, описаних в цьому розкритті. Фіг. 6 являє собою схему, що ілюструє зразкове компонування суміжних сусідніх одиниць прогнозування (PU) і тимчасової спільно розміщеної PU для поточної PU. Докладний опис Варіанти здійснення методик, описаних в цьому розкритті, дозволяють відеокодерам задавати MVP надійним, але ефективним чином, за допомогою зрізування надмірних просторових MVP без включення тимчасово спільно розміщеного MVP під час процесу зрізування. Іншими словами, методики формують проміжний список MVP, який включає в себе тільки просторові MVP, виконують зрізування відносно цього проміжного списку MVP і потім додають тимчасово спільно розміщений MVP до зрізаного проміжного списку MVP для формування зрізаного списку MVP. Таким чином, втрата опорного кадру, що задає тимчасово спільно розміщений MVP, може не перешкоджати синтаксичному аналізу бітового потоку, що є звичайним в традиційних системах, і посилення ефективності кодування, доступні за допомогою застосування процесу зрізування, все ще можуть бути збережені. Фіг. 1 являє собою блок-схему, що ілюструє зразкову систему 10 відеокодування і декодування, яка може бути сконфігурована для застосування методик, описаних в цьому розкритті, для задавання предикторів вектора руху (MVP). Як показано в прикладі за Фіг. 1, система 10 включає в себе пристрій-джерело 12, який генерує кодоване відео для декодування за допомогою пристрою-адресата 14. Пристрій-джерело 12 може передавати кодоване відео пристрою-адресату 14 через канал 16 зв'язку або може зберігати кодоване відео на носії 34 зберігання або файловому сервері 36 так, що до кодованого відео може бути здійснений доступ за допомогою пристрою-адресата 14 за бажанням. Пристрій-джерело 12 і пристрій-адресат 14 можуть містити будь-який з широкого вибору пристроїв, в тому числі настільні комп'ютери, переносні (тобто портативні) комп'ютери, планшетні комп'ютери, телевізійні префікси, телефонні трубки (в тому числі стільникові телефони або трубки і так звані інтелектуальні телефони), телевізори, камери, пристрої відображення, цифрові медіапрогравачі, консолі відеогри і т. п. У багатьох випадках такі пристрої можуть бути обладнані для бездротового зв'язку. Отже, канал 16 зв'язку може містити бездротовий канал. Як альтернатива, канал 16 зв'язку може містити дротовий канал, комбінацію бездротового і дротового каналів або будь-який інший тип каналу зв'язку або комбінації каналів зв'язку, придатний для передачі кодованих відеоданих, таких як радіочастотний (РЧ) спектр, або одну або більше фізичних ліній передачі. У деяких прикладах канал 16 зв'язку може формувати частину пакетної мережі, такої як локальна мережа (LAN), широкомасштабна мережа (WAN) або глобальна мережа, така як Інтернет. Канал 16 зв'язку, отже, загалом представляє будь-який придатний носій зв'язку, або сукупність різних носіїв зв'язку, для передачі відеоданих з пристрою-джерела 12 пристрою-адресату 14, в тому числі будь-яку придатну комбінацію дротових або бездротових носіїв. Канал 16 зв'язку може включати в себе роутери, комутатори, базові станції або будь-яке інше обладнання, яке може бути придатним для сприяння передачі від пристрою-джерела 12 пристрою-адресату 14. Як додатково показано в прикладі за Фіг. 1, пристрій-джерело 12 включає в себе відеоджерело 18, відеокодер 20, модулятор/демодулятор 22 ("модем 22") і передавач 24. У пристрої-джерелі 12 відеоджерело 18 може включати в себе джерело, таке як пристрій відеозахоплення. Пристрій відеозахоплення, як приклад, може включати в себе одне або 3 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 більше з відеокамери, відеоархіву, що містить раніше захоплене відео, інтерфейсу зовнішнього відеосигналу для прийому відео від постачальника відеоконтенту і/або систему комп'ютерної графіки для генерування даних комп'ютерної графіки як відеоджерела. Як один приклад, якщо відеоджерело 18 являє собою відеокамеру, пристрій-джерело 12 і пристрій-адресат 14 можуть формувати так звані телефони-камери або відеотелефони. Методики, описані в цьому розкритті, однак, не обмежені бездротовими застосуваннями або установками, а можуть бути застосовані до пристроїв, які не є бездротовими, що включають в себе можливості відеокодування і/або -декодування. Пристрій-джерело 12 і пристрій-адресат 14, отже, являють собою лише приклади пристроїв кодування, які можуть підтримувати методики, описані в даному документі. Відеокодер 20 може кодувати захоплене, попередньо захоплене або згенероване комп'ютером відео. Як тільки кодоване, відеокодер 20 може виводити це кодоване відео модему 22. Модем 22 потім може модулювати кодоване відео згідно зі стандартом зв'язку, таким як протокол бездротового зв'язку, тоді як передавач 24 може передати модульовані кодовані відеодані пристрою-адресату 14. Модем 22 може включати в себе різні змішувачі, фільтри, підсилювачі або інші компоненти, розроблені для модуляції сигналів. Передавач 24 може включати в себе схеми, розроблені для передачі даних, що включають в себе підсилювачі, фільтри і одну або більше антен. Захоплене, попередньо захоплене або згенероване комп'ютером відео, яке кодується відеокодером 20, також може бути збережене на носій 34 зберігання або файловий сервер 36 для подальшого витягання, декодування і споживання. Носій 34 зберігання може включати в себе диски Blu-ray, DVD, CD-ROM, флеш-пам'ять або будь-які інші придатні цифрові носії зберігання для зберігання кодованого відео. Пристрій-адресат 14 може здійснювати доступ до кодованого відео, що зберігається на носії 34 зберігання або файловому сервері 36, декодувати це кодоване відео для генерування декодованого відео і програвати це декодоване відео. Файловий сервер 36 може являти собою будь-який тип сервера, здатного зберігати кодоване відео і передавати це кодоване відео пристрою-адресату 14. Зразкові файлові сервери включають в себе веб-сервер (наприклад, для веб-сайта), FTP-сервер, пристрої зберігання, що підключаються до мережі (NAS), накопичувач на локальному диску або будьякий інший тип пристрою, здатного зберігати кодовані відеодані і передавати їх пристроюадресату. Передача кодованих відеоданих від файлового сервера 36 може являти собою потокову передачу, передачу завантаження або їх комбінацію. Пристрій-адресат 14 може здійснювати доступ до файлового сервера 36 відповідно до будь-якого стандарту з'єднання для даних, в тому числі Інтернет-з'єднання. Це з'єднання може включати в себе бездротовий канал (наприклад Wi-Fi-з'єднання або бездротове стільникове з'єднання для даних), дротове з'єднання (наприклад DSL, кабельний модем і т. д.), комбінацію дротового і бездротового каналів або будь-який інший тип каналу зв'язку, придатного для здійснення доступу до кодованих відеоданих, що зберігаються на файловому сервері. Пристрій-адресат 14, в прикладі за Фіг. 1, включає в себе приймач 26, модем 28, відеодекодер 30, пристрій 32 відображення. Приймач 26 пристрою-адресата 14 приймає інформацію по каналу 16 і модем 28 демодулює інформацію для вироблення демодульованого бітового потоку для відеодекодера 20. Інформація, що передається по каналу 16, може включати в себе різноманітність інформації синтаксису, згенерованої відеокодером 20 для використання відеодекодером 30 при декодуванні пов'язаних кодованих відеоданих. Такий синтаксис також може бути включений в кодовані відеодані, що зберігаються на носії 34 зберігання або файловому сервері 36. Кожен з відеокодера 20 і відеодекодера 30 може формувати частину відповідного кодера-декодера (CODEC), який здатний кодувати або декодувати відеодані. Пристрій 32 відображення пристрою-адресата 14 представляє будь-який тип засобу відображення, здатного представляти відеодані для споживання спостерігачем. Незважаючи на те, що показаний як об'єднаний з пристроєм-адресатом 14, пристрій 32 відображення може бути об'єднаний з пристроєм-адресатом 14 або бути зовнішнім відносно нього. У деяких прикладах пристрій-адресат 14 може включати в себе інтегрований пристрій відображення і також може бути сконфігурований для сполучення із зовнішнім пристроєм відображення. У інших прикладах пристрій-адресат 14 може являти собою пристрій відображення. Загалом, пристрій 32 відображення відображає декодовані відеодані користувачу і може містити будь-який з різноманіття пристроїв відображення, наприклад рідкокристалічний пристрій відображення (LCD), плазмовий пристрій відображення, пристрій відображення на органічних світлодіодах (OLED) або інший тип пристрою відображення. 4 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 Загалом, це розкриття може стосуватися відеокодера 20, "сигналізуючого" інформацію синтаксису іншому пристрою, такому як відеодекодер 30. Потрібно розуміти, однак, що відеокодер 20 може сигналізувати інформацію за допомогою зв'язку елементів синтаксису з різними кодованими ділянками відеоданих. Таким чином, відеокодер 20 може "сигналізувати" дані шляхом збереження деяких елементів синтаксису в заголовки різних кодованих ділянок відеоданих. У деяких випадках такі елементи синтаксису можуть бути кодовані і збережені (наприклад збережені на носій 34 зберігання або файловий сервер 36) перед їх прийомом і декодуванням відеодекодером 30. Таким чином, термін "сигналізують" загалом може стосуватися передачі синтаксису або інших даних, використовуваних для декодування стиснених відеоданих незалежно від того, чи відбувається така передача в реальному або близькому до реального часі або протягом проміжку часу, як це може відбуватися при збереженні елементів синтаксису на носій під час кодування, які потім можуть бути витягнуті пристроєм декодування в будь-який час після їх збереження на цей носій. Відеокодер 20 і відеодекодер 30 можуть працювати згідно зі стандартом стиснення відео, таким як розроблюваний на даний час стандарт Високоефективного Відеокодування (HEVC), і можуть відповідати Тестовій Моделі HEVC (HM). Як альтернатива, відеокодер 20 і відеодекодер 30 можуть працювати згідно з іншими приватними або промисловими стандартами, такими як стандарт ITU-T H.264, як альтернатива званий MPEG-4, Частина 10, Вдосконалене Відеокодування (AVC), або розширеннями таких стандартів. Методики цього розкриття, однак, не обмежені яким-небудь конкретним стандартом кодування. Інші приклади включають в себе MPEG-2 і ITU-T H.263. HM посилається на блок відеоданих як одиницю кодування (CU). Загалом CU має призначення, аналогічне макроблоку, кодованому згідно з H.264, за винятком того, що CU не має відмінності по розміру, пов'язаної з макроблоками з H.264. Таким чином, CU може бути розбита на суб-CU (субодиниці кодування). Загалом, посилання в цьому розкритті на CU можуть посилатися на найбільшу одиницю кодування (LCU) графічного зображення або на суб-CU з LCU. Наприклад, дані синтаксису в межах бітового потоку можуть визначати LCU, яка є найбільшою одиницею кодування, виходячи з числа пікселів. LCU може бути розбита на суб-CU, і кожна суб-CU може бути розбита на суб-CU. Дані синтаксису для бітового потоку можуть визначати максимальне число разів можливого розбиття LCU, зване максимальною глибиною CU. Відповідно, бітовий потік також може визначати найменшу одиницю кодування (SCU). LCU може бути пов'язана з ієрархічною структурою даних дерева квадрантів. Загалом, структура даних дерева квадрантів включає в себе один вузол на кожну CU, де кореневий вузол відповідає LCU. Якщо CU розбита на чотири суб-CU, вузол, відповідний CU, включає в себе опору для кожного з чотирьох вузлів, які відповідають суб-CU. Кожний вузол структури даних дерева квадрантів може забезпечувати дані синтаксису для відповідної CU. Наприклад, вузол в дереві квадрантів може включати в себе прапор розбиття, який вказує, чи розбивається CU, відповідна вузлу, на суб-CU. Елементи синтаксису для CU можуть бути визначені рекурсивно і можуть залежати від того, чи розбита CU на суб-CU. CU, яка не розбита, може включати в себе одну або більше одиниць прогнозування (PU). Загалом PU представляє всю або ділянку відповідної CU і включає в себе дані для витягання опорної вибірки для PU. Наприклад, коли PU кодована в intra-режимі, PU може включати в себе дані, що описують режим intra-прогнозування для PU. Як інший приклад, коли PU кодована в inter-режимі, PU може включати в себе дані, що визначають один або більше векторів руху для PU. Вектор руху звичайно ідентифікує спільно розміщену CU в одному або більше опорних кадрах, де термін "опорний кадр" стосується кадру, який виникає у часі до або після кадру, в якому розміщена PU. Дані для CU, що визначають PU (або декілька PU), також можуть бути описані, наприклад ділення CU на одну або більше PU. Режими ділення можуть відрізнятися залежно від того, чи є CU некодованою, кодується в режимі intra-прогнозування або кодується в режимі inter-прогнозування. Дані, що визначають вектор руху, можуть описувати, наприклад, горизонтальну складову вектора руху, вертикальну складову вектора руху, розрізнення для вектора руху (наприклад, точність однієї четвертої піксела або точність однієї восьмої піксела), опорний кадр, на який вказує вектор руху, напрям прогнозування, який ідентифікує, чи знаходиться ідентифікований опорний кадр до або після поточного кадру, і/або опорний список (наприклад, список 0 або список 1) для вектора руху. Як альтернатива, дані, що визначають вектор руху, можуть описувати вектор руху в показниках того, що називається предиктор вектора руху (MVP). Предиктор вектора руху може включати в себе вектор руху сусідньої PU або тимчасово спільно розміщеної PU. Звичайно, список з п'яти MVP формується визначуваним чином (наприклад, перелік MVP починається з тих, які мають найбільшу амплітуду, до тих, які мають найменшу 5 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 амплітуду, тобто найбільше або найменше зміщення між поточною PU, яка повинна бути кодована, і опорною PU, або перелік MVP на основі місцеположення, тобто блоки зверху, блоки зліва, блоки кута, часові блоки), де чотири з п'яти MVP являють собою просторові MVP, вибрані з чотирьох сусідніх PU, і п'ятий MVP являє собою тимчасово спільно розміщений MVP, вибраний з тимчасово спільно розміщеної PU в опорному кадрі. Хоч звичайно часовий вектор руху-кандидат є спільно розміщеним в тій же самій ділянці опорного кадру, що і такий поточної ділянки в поточному кадрі, методики не повинні бути обмежені суворо спільно розміщеними часовими векторами руху-кандидатами. Замість цього, методики можуть бути реалізовані відносно будь-якого часового вектора руху-кандидата незалежно від того, чи спільно розміщений він, чи ні. У деяких випадках відеокодер може ідентифікувати часовий вектор руху-кандидат, який не є спільно розміщеним з поточним блоком або ділянкою поточного кадру, і вибирати цей часовий вектор руху-кандидат як тимчасовий MVP. Звичайно відеокодер може сигналізувати, що використовується тимчасовий MVP, що не є спільно розміщеним, або, в деяких випадках, даний контекст може вказувати, що використовується тимчасовий MVP, що не є спільно розміщеним (в цьому випадку відеокодер може не сигналізувати те, чи був вибраний тимчасовий MVP, що не є спільно розміщеним). Після формування списку з п'яти MVP, відеокодер 20 може оцінити кожний з цихMVP для визначення того, який забезпечує кращі характеристики швидкості передачі і спотворення, які краще усього придатні для заданого профілю швидкості передачі і спотворення, вибраного для кодування відео. Відеокодер 20 може виконувати процедуру оптимізації швидкість передачіспотворення (RDO) відносно кожного з п'яти MVP, вибираючи той з MVP, який має найкращі результати RDO. Як альтернатива, відеокодер 20 може вибирати один з п'яти MVP, збережених в список, який виконує найкращу апроксимацію вектора руху, визначеного для поточної PU. У будь-якому випадку, відеокодер 20 може задавати вектор руху, використовуючи дані, які містять індекс, ідентифікуючий вибраний один з MVP в списку з п'яти MVP, один або більше опорних кадрів, на які вказує вектор руху (часто у формі списку), і напрям прогнозування, ідентифікуючий, чи є прогнозування однонаправленим або двонаправленим. Як альтернатива, дані, що визначають вектор руху, можуть лише задавати індекс вибраного MVP в списку з п'яти MVP без задавання опорного кадру і напряму прогнозування, який сигналізує відеодекодерам, що вибраний один з MVP повинен бути використаний в своїй повноті для поточної PU. На доповнення до наявності однієї або більше PU, які визначають один або більше векторів руху, CU може включати в себе одну або більше одиниць перетворення (TU). Після прогнозування з використанням PU, відеокодер може обчислити залишкове значення для ділянки CU, відповідної PU, де це залишкове значення також може називатися залишковими даними. Залишкове значення може бути перетворене, квантоване і скановане. TU необов'язково обмежена розміром PU. Таким чином, TU можуть бути більше або менше, ніж відповідні PU для тієї ж самої CU. У деяких прикладах максимальний розмір TU може являти собою розмір відповідної CU. Це розкриття також використовує термін "блок" для посилання на будь-яку з CU, PU і/або TU або їх комбінацію. Загалом, кодовані відеодані можуть включати в себе дані прогнозування і залишкові дані. Відеокодер 20 може виробляти дані прогнозування під час режиму intra-прогнозування або режиму inter-прогнозування. Intra-прогнозування загалом приводить до прогнозування піксельних значень в блоці графічного зображення відносно опорних вибірок в сусідніх, раніше кодованих блоках того ж самого графічного зображення. Inter-прогнозування загалом приводить до прогнозування піксельних значень в блоці графічного зображення відносно даних раніше кодованого графічного зображення. Після intra- або inter-прогнозування, відеокодер 20 може обчислити залишкові піксельні значення для блока. Залишкові значення звичайно відповідають різницям між прогнозованими даними піксельних значень для блока і істинними даними піксельних значень блока. Наприклад, залишкові значення можуть включати в себе піксельні різницеві значення, що вказують різниці між кодованими пікселями і пікселами прогнозування. У деяких прикладах кодовані піксели можуть бути пов'язані з блоком пікселів, який повинен бути кодований, і піксели прогнозування можуть бути пов'язані з одним або більше блоками пікселів, використовуваними для прогнозування кодованого блока. Щоб додатково стиснути залишкове значення блока, залишкове значення може бути перетворене в набір коефіцієнтів перетворення, який ущільнює якомога більше даних (також іменується "енергією") в якомога менше коефіцієнтів. Методики перетворення можуть включати процес дискретного косинусного перетворення (DCT) або концептуально аналогічний процес, цілочислові перетворення, вейвлет-перетворення або інші типи перетворень. Перетворення конвертує залишкові значення пікселів з просторової області в область перетворення. 6 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 Коефіцієнти перетворення відповідають двовимірній матриці коефіцієнтів, яка звичайно того ж розміру, що і вихідний блок. Іншими словами, існує стільки ж коефіцієнтів перетворення, скільки пікселів у вихідному блоці. Однак, внаслідок перетворення, багато які коефіцієнти перетворення можуть мати значення, що дорівнюють нулю. Відеокодер 20 потім може квантувати коефіцієнти перетворення, щоб додатково стиснути відеодані. Квантування звичайно приводить до відображення значень в межах відносно великого діапазону на значення у відносно малому діапазоні, тим самим зменшуючи кількість даних, необхідних для представлення квантованих коефіцієнтів перетворення. Більш конкретно, квантування може бути застосоване згідно з параметром квантування (QP), який може бути визначений на рівні LCU. Відповідно, той же самий рівень квантування може бути застосований до всіх коефіцієнтів перетворення в TU, пов'язаних з різними PU з CU в межах LCU. Однак, замість того, щоб сигналізувати сам QP, може бути здійснена сигналізація зміни (тобто дельти) в QP з LCU. Дельта QP визначає зміну в параметрі квантування для LCU відносно деякого опорного QP, такого як QP раніше переданої LCU. Після квантування, відеокодер 20 може сканувати коефіцієнти перетворення, виробляючи одновимірний вектор з двовимірної матриці, що включає в себе квантовані коефіцієнти перетворення. Відеокодер 20 потім може виконувати статистичне кодування без втрат (яке звичайно називають помилково застосовуваним терміном "ентропійне кодування"), щоб кодувати одержуваний масив, щоб ще додатково стиснути дані. Загалом, ентропійне кодування містить один або більше процесів, які спільно стискають послідовність квантованих коефіцієнтів перетворення і/або іншу інформацію синтаксису. Наприклад, елементи синтаксису, такі як дельта QP, вектори прогнозування, режими кодування, фільтри, зміщення або інша інформація, також можуть бути включені в ентропійно кодований бітовий потік. Проскановані коефіцієнти потім ентропійно кодують разом з будь-якою інформацією синтаксису, наприклад, за допомогою контекстно-залежного адаптивного кодування із змінною довжиною кодового слова (CAVLC), контекстно-залежного адаптивного двійкового арифметичного кодування (CABAC) або будьякого іншого процесу статистичного кодування без втрат. Як указано вище по тексту, дані, що визначають вектори руху для PU, можуть приймати деяке число форм. Відеокодер 20 може реалізувати різні методи, за допомогою яких вектори руху можуть бути виражені для стиснення даних вектора руху. Відеокодер 20 може реалізувати те, що називається режимом злиття для вираження векторів руху як індексу, ідентифікуючого MVP, який зберігається в списку MVP, створеному певним чином. Відеодекодер 30 при реалізації перетворення цього режиму злиття приймає цей індекс, реконструює список з п'яти MVP певним чином і вибирає один з п'яти MVP в списку, вказаний індексом. Відеодекодер 30 потім реалізовує вибраний один з MVP як вектор руху для пов'язаної PU з тим же самим розрізненням вибраного одного з MVP і який вказує на той же самий опорний кадр, на який вказує вибраний один з MVP. При реалізації режиму злиття відеокодер 20 може не потребувати виконання оцінки руху, повною мірою необхідної для одержання вектора руху, задавання горизонтальної і вертикальної складових вектора руху, розрізнення вектора руху, напряму вектора руху (що означає, чи вказує вектор руху на кадр часово до або після поточного кадру) або індексу опорного кадру, тим самим потенційно скорочуючи цикли процесора, необхідні для визначення вектора руху, і стискаючи дані вектора руху. Відеокодер 20 також може реалізувати режим адаптивного прогнозування вектора руху (AMVP), який, аналогічно режиму злиттів, включає в себе вираження векторів руху як індексу, ідентифікуючого MVP, який зберігатися в списку MVP, створеному певним чином. Однак, на протилежність режиму злиття відеокодер 20 також може задавати напрям прогнозування і опорний кадр, ефективно заміщуючи ці ділянки вибраного одного з MVP. При реалізації режиму AMVP відеокодер 20 може не потребувати виконання оцінки руху, повною мірою необхідної для одержання вектора руху, задавання горизонтальної і вертикальної складових вектора руху, розрізнення вектора руху, тим самим потенційно скорочуючи цикли процесора, необхідні для визначення вектора руху, і стискаючи дані вектора руху. З розвитком різних стандартів кодування ще більш ефективні представлення векторів руху були розроблені. Наприклад, пропозиції до стандартів HEVC, що розвиваються, запропонували методи, за допомогою яких індекс MVP може бути стиснений за допомогою процесу, званого "зрізування" або "зрізування MVP". При виконанні цього процесу зрізування відеокодер 20 створює список з п'яти MVP певним чином і потім зрізує або видаляє будь-які надмірні MVP. Таким чином, відеокодер 20 може видаляти будь-які MVP, які мають одну і ту ж амплітуду по обох складових X і Y і спираються на один і той же опорний кадр, причому ці MVP розглядаються в цьому розкритті як "надмірні MVP". Як альтернатива, відеокодер 20 може лише додавати MVP до списку, який є "унікальним", що означає, що ці MVP мають амплітуди в 7 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 напрямі X і Y, відмінні від кожного іншого MVP, вже включеного в список, і/або спираються на інший опорний кадр. Залежно від того, чи виконане зрізування після додавання до списку або зрізування при створенні списку, процес зрізування може зменшувати розмір списку з тим результатом, що менше бітів може бути використано для сигналізації або інакше задавання вибраного одного з MVP, оскільки більш короткий список звичайно вимагає меншого числа бітів для вираження більшого значення індексу. Наприклад, передбачимо для цілей ілюстрації, що жоден з п'яти MVP не зрізаний. У цьому випадку відеокодер може сигналізувати індекс в цей список з п'яти MVP, щоб указати конкретний MVP, який повинен бути вибраний, використовуючи зрізаний унарний код, який містить не більше чотирьох бітів. У пропозиціях, зрізаний унарний код, використовуваний для сигналізації вибору п'ятого MVP в списку з п'яти MVP, являє собою 1111, четвертого MVP в списку з п'яти MVP, являє собою 1110, третього MVP в списку з п'яти MVP, являє собою 110, другого MVP в списку з п'яти MVP, являє собою 10, і першого MVP в списку з п'яти MVP, являє собою 0. Якщо, однак, список MVP може бути зрізаний до трьох MVP (що означає, що два MVP надмірні), відеокодер 20 може використовувати зрізаний унарний код, який споживає не більш двох бітів (наприклад, де третій MVP може бути сигналізований з використанням коду 11), зберігаючи потенційно один біт на екземплярах, де зрізування не застосовується або неможливе (наприклад, коли відсутні надмірні MVP), і вибирається п'ятий або четвертий MVP в списку з п'яти MVP. До деякої міри, таким чином, код залежить від розміру списку MVP, де менший список MVP (що означає список з меншою кількістю MVP) має результатом менший код (що означає, що коду потрібно менше бітів для вираження вибраного MVP зі зрізаного списку MVP). Тоді як зрізування може поліпшити ефективність кодування за допомогою зменшення довжин кодів, використовуваних для сигналізації індексу вибраного MVP в списку MVP, це зрізування також може впливати на можливість відеодекодера 30 успішно синтаксично проаналізувати бітовий потік. Оскільки код залежить від розміру зрізаного списку MVP, відеодекодеру 30 необхідно знати кількість MVP, які знаходяться в зрізаному списку MVP. Однак, коли з опорного кадру втрачений тимчасово спільно розміщений MVP, цей тимчасово спільно розміщений MVP недоступний і відеодекодер 30 не може визначити, чи є цей MVP унікальним або надмірним. У результаті, відеодекодер 30 не може визначити, чи включив в себе зрізаний список цей тимчасово спільно розміщений MVP, і, отже, не може визначити розмір зрізаного списку MVP. Не здатний визначити розмір зрізаного списку MVP, відеодекодер 30 потім не може визначити максимальну довжину для коду, що в свою чергу перешкоджає можливості відеодекодера 30 синтаксично проаналізувати код з бітового потоку. Відповідно до методик, описаних в цьому розкритті, відеокодер 20 може задавати MVP потенційно надійним, але ефективним чином за допомогою зрізування надмірних просторових MVP без включення тимчасово спільно розміщеного MVP під час процесу зрізування. Іншими словами, відеокодер 20 може реалізовувати методики, описані в цьому розкритті, для формування проміжного списку MVP, який включає в себе тільки просторові MVP, виконання зрізання відносно цього проміжного списку MVP і, потім, об'єднання тимчасово спільно розміщеного MVP зі зрізаним проміжним списком MVP для формування зрізаного списку MVP. Таким чином, втрата опорного кадру, що задає тимчасово спільно розміщений MVP, може не перешкоджати синтаксичному аналізу бітового потоку, що звичайно має місце в традиційних системах, все ще зберігаючи щонайменше деякі посилення ефективності кодування, доступні за допомогою застосування процесу зрізування. Щоб проілюструвати, відеокодер 20 спочатку визначає просторові вектори руху-кандидати, пов'язані з поточною ділянкою, наприклад CU, поточного відеокадру. Знов просторові вектори руху-кандидати включають в себе сусідні вектори руху, визначені для сусідніх PU, прилеглих до поточної PU, пов'язаної з відповідною CU. Типово, ці сусідні PU розташовані суміжно з поточною PU зліва, зверху і зліва, безпосередньо зверху і зверху і справа, що показано більш детально відносно прикладу за Фіг. 6. Відеокодер 20 використовує ці просторові вектори руху-кандидати як ці просторові вектори руху-кандидати вже визначені для цих блоків. Для будь-яких блоків, розташованих безпосередньо справа або знизу поточної PU, відеокодер 20 повинен лише обчислити вектор руху для цих блоків, враховуючи, що відеокодер 20 звичайно виконує оцінку/компенсацію руху зверху вниз, зліва направо. Однак, незважаючи на те, що описано відносно цих просторових векторів руху, методики можуть бути реалізовані у відеокодерах 20, які виконують оцінку/компенсацію руху в іншому порядку (зверху вниз, справа наліво). На доповнення, методики можуть бути реалізовані відносно більшої або меншої кількості просторових або часових векторів руху. 8 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 Після визначення цих просторових векторів руху, відеокодер 20 потім зрізує просторові вектори руху-кандидати для видалення з просторових векторів руху-кандидатів тих, що дублюються. Відеокодер 20 може ідентифікувати просторові вектори руху-кандидати, що дублюються, як будь-які з просторових векторів руху-кандидатів, які мають одну і ту ж амплітуду для складових і по осі х і по осі у векторів руху-кандидатів і які виходять з одного і того ж опорного кадру. Відеокодер 20 виконує зрізування за допомогою або видалення дублікатів з того, що може називатися проміжним списком просторових векторів руху-кандидатів, або лише додавання просторового вектора руху-кандидата до цього проміжного списку після визначення того, що просторовий вектор руху-кандидат, який повинен бути доданий до цього списку, не є дублікатом. Після зрізування просторових векторів руху-кандидатів таким чином, відеокодер 20 може потім визначати часовий вектор руху-кандидат для поточної PU поточного відеокадру. Знов, часовий вектор руху-кандидат містить вектор руху, визначений для PU опорного відеокадру, спільно розміщеної в тому ж самому місцеположенні, що і поточна PU в поточному відеокадрі. Відеокодер 20 потім може вибирати часовий вектор руху-кандидат або один з просторових векторів руху-кандидатів, що залишилися після виконання процесу зрізування, як вибраний вектор руху-кандидат. Відеокодер 20 потім сигналізує вибраний вектор руху-кандидат в бітовому потоці. У деяких випадках відеокодер 20 може визначити, чи є кожний з визначених просторових векторів руху-кандидатів або просторово прогнозованим, або часово прогнозованим. Іншими словами, визначені просторові вектори руху-кандидати самі можуть бути часово (у часі) прогнозованими зі спільно розміщеного блока в опорному кадрі або просторово прогнозованими з блока, прилеглого до блока, для якого визначений кожний з просторових векторів рухукандидатів. Відеокодер 20 може у відповідь на це визначення додатково видалити один або більше визначених просторових векторів руху-кандидатів з процесу зрізування. Відеокодер 20 може, наприклад, видаляти ті з просторових векторів руху-кандидатів, які визначені як такі, що самі є часово прогнозованими, з процесу зрізування, оскільки ці часово прогнозовані просторові вектори руху-кандидати можуть бути недоступні декодеру, чи повинна ділянка опорного кадру, з якої прогнозовані ці часово прогнозовані просторові вектори руху-кандидати, бути втраченою. Відеокодер 20 потім може вибирати часові вектори руху-кандидати, один з часово прогнозованих просторових векторів руху-кандидатів або один з просторово прогнозованих просторових векторів руху-кандидатів, що залишилися після зрізування, і сигналізувати цей вибраний вектор руху-кандидат в бітовому потоці. Як альтернатива, відеокодер 20 може, замість того, щоб видаляти часово прогнозовані просторові вектори руху з процесу зрізування, заміняти ці часово прогнозовані просторові вектори руху-кандидати векторами руху-кандидатами за умовчанням, що визначають інформацію руху за умовчанням. Ця інформація вектора руху за умовчанням може містити, наприклад, амплітуду вектора руху, напрям прогнозування, ідентифікуючий, чи передує або чи іде за поточним кадром опорний кадр тимчасово, і індекс опори, ідентифікуючий опорний кадр. Відеокодер 20 може визначати цю інформацію вектора руху за умовчанням, за допомогою одержання середнього цих доступних просторово прогнозованих просторових векторів рухукандидатів, взяття першого доступного просторово прогнозованого просторового вектора рухукандидата або використання інформації вектора руху за умовчанням, яка статистично конфігурується і у відеокодері 20, і у відеодекодері 30, щоб назвати декілька прикладів. За допомогою видалення тих з просторових векторів руху-кандидатів, які можуть бути втрачені або недоступні для відеодекодера 30 (наприклад, внаслідок помилок в передачі стиснених відеоданих або помилок зберігання або у відеокодері 20, або у відеодекодері 30) з процесу зрізування, відеокодер 20 може сигналізувати вибраний вектор руху-кандидат таким чином, щоб дозволити відеодекодеру 30 належним чином синтаксично аналізувати бітовий потік у випадку, коли ці часово прогнозовані просторові вектори руху-кандидати втрачаються або стають недоступними. Аналогічно, в згаданій альтернативі, за допомогою заміни часово прогнозованих просторових векторів руху-кандидатів вектором руху-кандидатом за умовчанням, відеокодер 20 може сигналізувати вибраний вектор руху-кандидат таким чином, який дозволяє відеодекодеру 30 належним чином синтаксично аналізувати бітовий потік у випадку, коли ці часово прогнозовані просторові вектори руху-кандидати втрачаються або стають недоступними. Типово, відеокодер 20 сигналізує вибраний вектор руху-кандидат з використанням унарного коду вибраного вектора руху-кандидата, що представляє індекс як розміщений в списку. Відеокодер 20 може розміщувати часовий вектор руху-кандидат і просторові вектори рухукандидати, що залишилися після виконання процесу зрізування, в наборі або певним чином (наприклад, з найбільшої амплітуди до найменшої амплітуди, з найменшої амплітуди до 9 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 найбільшої амплітуди, часовий вектор руху, відразу за яким ідуть просторові вектори руху, що залишилися, впорядковані або з найбільшої до найменшої амплітуди, або з найменшої до найбільшої амплітуди і т. д.) формуючи список векторів руху-кандидатів. Як альтернатива, відеокодер 20 може сигналізувати деякий ідентифікатор, що вказує, як вектори руху розміщені в списку. Незалежно від кодування індексу вибраного одного з векторів руху-кандидатів як збереженого в цей список, з використанням унарного коду вищеописаним чином, відеокодер 20 потім ідентифікує один з векторів руху-кандидатів, збережених в цей список. Відеодекодер 30 приймає цей бітовий потік, декодує індекс і формує проміжний список просторових векторів руху-кандидатів, якщо доступні. Як відмічено вище по тексту, один або більше з просторових векторів руху-кандидатів можуть не бути доступними у випадках, де відеокодер 20 застосовував прогнозування вектора руху для кодування вектора руху для сусіднього блока і вибирав часовий вектор руху, де опорний кадр, що визначає цей часовий вектор руху, був втрачений (наприклад, внаслідок пошкодження пам'яті, помилки шини або помилки передачі). Як альтернатива, один або більше просторових векторів руху-кандидатів можуть не бути доступні, коли відеокодер 20 застосовував прогнозування вектора руху для кодування вектора руху для цієї сусідньої PU і вибирав один з просторових векторів руху, які самі були векторами руху, прогнозованими з часового вектора руху, де опорний кадр, що визначає цей часовий вектор руху, був втрачений (наприклад, внаслідок пошкодження пам'яті, помилки шини або помилки передачі). Відеодекодер 30 може вирішувати цю проблему або видаляючи недоступні часово прогнозовані вектори руху-кандидати з процесу зрізування, або, як альтернатива, замінюючи ці недоступні часово прогнозовані просторові вектори рухукандидати вектором руху-кандидатом за умовчанням. Відеодекодер 30 в цьому відношенні реалізовує методики, описані вище по тексту відносно відеокодера 20, по суті аналогічним чином так, щоб належним чином синтаксично проаналізувати вибраний вектор руху-кандидат з бітового потоку. У будь-якому випадку, навіть передбачаючи, що один або більше векторів руху-кандидатів втрачені, методики дозволяють сигналізувати MVP таким чином, який сприяє синтаксичному аналізу бітового потоку. За допомогою забезпечення того, що часовий вектор руху-кандидат завжди присутній в списку після зрізування, відеокодер 20 забезпечує те, що відеодекодер 30 може визначати число доступних векторів руху і таким чином синтаксично аналізувати індекс з бітового потоку. Аналогічно, за допомогою забезпечення того, що часово прогнозовані просторові вектори руху-кандидати завжди в списку або замінені векторами руху-кандидатами за умовчанням, які відеодекодер 30 завжди може відтворювати, відеокодер 20 забезпечує те, що відеодекодер 30 може визначати число доступних векторів руху і таким чином синтаксично аналізувати індекс з бітового потоку. Таким чином, навіть якщо зріз, що зберігає часовий вектор руху-кандидат і/або часово прогнозований просторовий вектор руху-кандидат, втрачений, відеодекодер 30 все ще синтаксично аналізує бітовий потік незалежно від того, чи використовуються унарні коди. Зокрема, відеодекодер 30 може синтаксично аналізувати бітовий потік зі знанням того, що часовий вектор руху-кандидат і/або часово прогнозовані просторові вектори руху-кандидати завжди включені в список MVP і ніколи не зрізуються зі списку MVP. У згаданій альтернативі, де часово прогнозовані просторові вектори руху-кандидати замінюються векторами руху-кандидатами за умовчанням, відеокодер 20 ефективно гарантує те, що такі часово прогнозовані просторові вектори руху-кандидати не можуть бути втрачені, оскільки відеодекодер 30 сконфігурований таким чином, щоб завжди бути здатним визначати ці вектори руху з використанням тих же методик, які виконує відеокодер 20 для визначення цього вектора руху-кандидата за умовчанням. Щоб проілюструвати випадок, де часовий вектор руху-кандидат втрачений, розглянемо випадок, де амплітуди просторових векторів руху-кандидатів становлять 1, 1, 1 і 1 і амплітуда часового вектора руху-кандидата становить -1. Відеодекодер 30 може реалізувати методики для формування списку, який може називатися списком MVP, тільки з просторовими векторами руху-кандидатами спочатку так, що список MVP являє собою 1, 1, 1 і 1. Декодер потім зрізує цей список тільки просторових MVP так, що цей список MVP визначається як 1. Декодер потім додає часовий вектор руху-кандидат до списку MVP так, що список MVP визначається як -1 і 1. Кодер потім може сигналізувати mvp_idx або 0, або 1, щоб указати, що один з цих векторів руху був вибраний (або mvp_idx з 0 і 10, якщо не використовується зрізаний унарний код). Відносно унарних кодів, описаних вище по тексту, методики цього розкриття усувають можливість висновку того, що тільки один вектор руху-кандидат був доступний після зрізування, оскільки завжди буде щонайменше один просторовий вектор руху-кандидат і тимчасовий просторовий вектор руху-кандидат. 10 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 Таким чином, методики дозволяють відеокодерам задавати MVP потенційно надійним, але ефективним чином за допомогою зрізування надмірних просторових MVP без розгляду тимчасово спільно розміщеного MVP під час процесу зрізування. Іншими словами, методики формують проміжний список MVP, який включає в себе тільки просторові MVP, виконують зрізування відносно цього проміжного списку MVP і потім додають тимчасово спільно розміщений MVP до зрізаного проміжного списку MVP для формування зрізаного списку MVP. Таким чином, втрата опорного кадру, що визначає тимчасово спільно розміщений MVP, може не перешкоджати синтаксичному аналізу бітового потоку, що має місце в традиційних системах, при цьому все ще зберігаючи посилення ефективності кодування, доступні за допомогою застосування процесу зрізування. У деяких випадках, методики можуть бути застосовані в інших контекстах. Наприклад, четверта версія Тестової Моделі HEVC (HM 4.0) пропонує зрізування MVP і потім додавання додаткових MVP, якщо загальне число MVP, що залишилися після зрізування, становить менше п'яти. Іншими словами, HM 4.0 зрізала б п'ять MVP (тобто один тимчасовий і чотири просторових) для вироблення зрізаного списку MVP. Якщо число MVP в цьому зрізаному списку MVP менше п'яти, HM 4.0. додає MVP, що не є надмірними, доти, поки загальне число MVP в зрізаному списку не буде дорівнює п'яти. Ці MVP, що не є надмірними, можуть бути вибрані з інших просторових або часових блоків або можуть бути згенеровані на основі MVP в зрізаному списку MVP (наприклад, вибирають у-складову одного MVP в зрізаному списку MVP і х-складову з іншого відмінного MVP в зрізаному списку MVP). У цьому контексті відеокодер може реалізувати методики, описані в цьому розкритті, щоб вибрати додаткові MVP, що не є надмірними, так, що тільки просторові MVP вибираються і/або використовуються, щоб генерувати ці додаткові MVP, що не є надмірними. Вибираючи тільки просторові MVP, або використовуючи існуючі просторові MVP, що залишилися після зрізування, щоб генерувати ці додаткові MVP, що не є надмірними, відеокодер може гарантувати те, що відеодекодер може належним чином визначати вибраний один з MVP. Таким чином, завжди маючи п'ять MVP відеокодер гарантує те, що відеодекодер завжди може синтаксично проаналізувати індекс MVP з бітового потоку, але, чи повинен тимчасовий MVP бути втрачений, відеодекодер може не бути здатний точно створити список MVP, оскільки MVP не може визначити порядок MVP один відносно одного, коли тимчасовий MVP втрачений. Методики, описані в цьому розкритті, можуть скорочувати або потенційно усувати вплив від втрати тимчасових MVP, не вибираючи будь-які тимчасові MVP або просторові MVP, які самі були прогнозовані з тимчасових MVP, як додаткові MVP, що не є надмірними. Методики для задавання прогнозувань вектора руху, описані відносно прикладів цього розкриття, можуть бути застосовані до відеокодування при підтриманні будь-яких з ряду мультимедійних додатків, таких як ефірне телевізійне мовлення, передачі кабельного телебачення, передачі супутникового телебачення, передачі потокового відео, наприклад через Інтернет, кодування цифрового відео для зберігання на носії зберігання даних, декодування цифрового відео, збереженого на носії зберігання даних, або інші додатки. У деяких прикладах, система 10 може бути сконфігурована, щоб підтримувати однонаправлену або двонаправлену передачу відео для додатків, таких як потокова передача відео, відтворення відео, мовлення відео і/або відеотелефонія. Незважаючи на те, що не показано на Фіг. 1, в деяких аспектах, кожний з відеокодера 20 і відеодекодера 30 може бути об'єднаний з аудіокодером і -декодером і може включати в себе належні блоки MUX-DEMUX або інше апаратне забезпечення або програмне забезпечення, щоб обробляти кодування і аудіо, і відео в загальному потоці даних або роздільних потоках даних. Якщо застосовно, в деяких прикладах, блоки MUX-DEMUX можуть відповідати протоколу мультиплексора ITU H.223 або іншим протоколам, таким як протокол користувацьких дейтаграм (UDP). Кожний з відеокодера 20 і відеодекодера 30 може бути реалізований як будь-яка з ряду придатних схем кодера, наприклад один або більше мікропроцесорів, цифрових сигнальних процесорів (DSP), інтегральних схем спеціального призначення (ASIC), програмованих користувачем вентильних матриць (FPGA), дискретної логіки, програмного забезпечення, апаратного забезпечення, програмно-апаратного забезпечення або будь-яких їх комбінацій. Коли методики реалізовуються частково в програмному забезпеченні, пристрій може зберігати інструкції для програмного забезпечення у придатному, постійному зчитуваному комп'ютером носії і виконувати інструкції в апаратному забезпеченні з використанням одного або більше процесорів для виконання методик цього розкриття. Кожний з відеокодера 20 і відеодекодера 30 11 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 може бути включений в один або більше кодерів або декодерів, будь-які з яких можуть бути інтегровані як частина об'єднаного кодера/декодера (CODEC) у відповідному пристрої. Фіг. 2 являє собою блок-схему, що ілюструє приклад відеокодера 20, який може реалізовувати методики для задавання предикторів вектора руху. Відеокодер 20 може виконувати intra- і inter-кодування блоків в межах відеокадрів, що включають в себе макроблоки або розділи або підрозділи макроблоків. Intra-кодування покладається на просторове прогнозування, щоб скоротити або видалити просторову надмірність у відео в межах заданого відеокадру. Inter-кодування покладається на часове прогнозування, щоб скоротити або видалити часову надмірність у відео в межах суміжних кадрів відеопослідовності. Intra-режим (Iрежим) може належати до будь-якого з декількох просторово-основаних режимів стиснення, і inter-режими, наприклад однонаправлене прогнозування (Р-режим) або двонаправлене прогнозування (В-режим), можуть належати до будь-кого з декількох часово-основаних режимів стиснення. Незважаючи на те, що компоненти для кодування в inter-режимі вказані на Фіг. 2, потрібно розуміти, що відеокодер 20 може додатково включати в себе компоненти для кодування в intra-режимі. Однак такі компоненти не проілюстровані з метою стислості і ясності. Як показано на Фіг. 2, відеокодер 20 приймає поточний відеоблок в межах відеокадру, який повинен бути кодований. У прикладі за Фіг. 2, відеокодер 20 включає в себе блок 44 компенсації руху, блок 42 оцінки руху, пам'ять 64, суматор 50, блок 52 перетворення, блок 54 квантування і блок 56 ентропійного кодування. Для відновлення відеоблока, відеокодер 20 також включає в себе блок 58 зворотного квантування, блок 60 зворотного перетворення і суматор 62. Фільтр видалення блочності (не показаний на Фіг. 2) також може бути включений в склад для фільтрації границь блоків для видалення артефактів блочності з відновленого відео. Якщо бажано, фільтр видалення блочності звичайно буде фільтрувати виведення суматора 62. Хоч описаний як такий, що включає в себе пам'ять 64, яка звичайно називається оперативною пам'яттю (RAM), динамічною оперативною пам'яттю (DRAM), статичною оперативною пам'яттю (SRAM), флеш-пам'яттю або іншим постійним або непостійним носієм зберігання на чипі, будьякий тип постійного зчитуваного комп'ютером носія може бути використаний, в тому числі жорсткі диски, накопичувачі на оптичних дисках, накопичувачі на дисках і т. п. Під час процесу кодування відеокодер 20 приймає відеокадр або зріз, який повинен бути кодований. Кадр або зріз може бути розділений на численні відеоблоки. Блок 42 оцінки руху і блок 44 компенсації руху виконують кодування з inter-прогнозуванням прийнятого відеоблока відносно одного або більше блоків в одному або більше опорних кадрах, щоб забезпечити тимчасове стиснення. Блок 46 intra-прогнозування також може виконувати кодування з intraпрогнозуванням прийнятого відеоблока відносно одного або більше сусідніх блоків в одному і тому ж кадрі або зрізі як блока, який повинен бути кодований, щоб забезпечити просторове стиснення. Як додатково показано в прикладі за Фіг. 2, відеокодер 20 також включає в себе блок 40 вибору режиму. Блок 40 вибору режиму може вибирати один з режимів кодування, intra або inter, наприклад на основі результатів помилки, і забезпечує одержуваний intra- або interкодований блок суматору 50, щоб генерувати залишкові дані блока, і суматору 62, щоб відновити кодований блок для використання як опорного кадру. Блок 42 оцінки руху і блок 44 компенсації руху можуть бути глибоко інтегрованими, але проілюстровані окремо в концептуальних цілях. Оцінка руху являє собою процес генерування векторів руху, який оцінює рух для відеоблоків. Вектор руху, наприклад, може вказувати зміщення блока прогнозування в межах опорного кадру прогнозування (або іншої кодованої одиниці) відносно поточного блока, кодованого в межах поточного кадру (або іншої одиниці кодування). Блок прогнозування являє собою блок, який знайдений для найбільшої відповідності блоку, який повинен бути кодований, в показниках піксельної різниці, яка може бути визначена за допомогою суми абсолютної різниці (SAD), суми квадратів різниці (SSD) або інших метрик різниці. Вектор руху також може вказувати зміщення розділу макроблока. Компенсація руху може залучати вибірку і генерування блока прогнозування на основі вектора руху, визначеного оцінкою руху. Знов, блок 42 оцінки руху і блок 44 компенсації руху можуть бути функціонально інтегровані в деяких прикладах. Блок 42 оцінки руху обчислює вектор руху для відеоблока inter-кодованого кадру за допомогою порівняння відеоблока з відеоблоками опорного кадру в пам'яті 64. Блок 44 компенсації руху також може інтерполювати субцілі піксели опорного кадру, наприклад I-кадру або Р-кадру. Стандарт HEVC, що розвивається (і стандарт ITU H.264), зберігає опорні кадри за допомогою однієї або більше структур даних списку, які звичайно називають "списками". Отже, дані, що зберігаються в пам'яті 64, також можуть бути розглянуті як списки. Блок 42 оцінки руху порівнює блоки одного або більше опорних кадрів (або списків) з пам'яті 64 з блоком, який 12 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 повинен бути кодований, поточного кадру, наприклад Р-кадру або В-кадру. Коли опорні кадри в пам'яті 64 включають в себе значення для субцілих пікселів, вектор руху, обчислюваний блоком 42 оцінки руху, може стосуватися положення субцілих пікселів опорного кадру. Блок 42 оцінки руху відправляє обчислений вектор руху блоку 56 ентропійного кодування і блоку 44 компенсації руху. Блок опорного кадру (який може містити CU), ідентифікований вектором руху, може бути названий блоком прогнозування. Блок 44 компенсації руху обчислює значення помилки для блока прогнозування опорного кадру. Блок 44 компенсації руху може обчислювати дані прогнозування, основані на блоці прогнозування. Відеокодер 20 формує залишковий відеоблок за допомогою віднімання даних прогнозування з блока 44 компенсації руху з кодованого вихідного відеоблока. Суматор 50 представляє компонент або компоненти, які виконують цю операцію віднімання. Блок 52 перетворення застосовує перетворення, таке як дискретне косинусне перетворення (DCT) або концептуально аналогічне перетворення, до залишкового блока, виробляючи відеоблок, що містить залишкові значення коефіцієнтів перетворення. Блок 52 перетворення може виконувати інші перетворення, наприклад такі, як визначені стандартом H.264, які є концептуально аналогічними DTC. Хвильові перетворення, цілочислові перетворення, перетворення піддіапазону або інші типи перетворень також можуть бути використані. У будь-якому випадку блок 52 перетворення застосовує перетворення до залишкового блока, виробляючи блок залишкових коефіцієнтів перетворення. Перетворення може конвертувати залишкову інформацію з піксельного значення області в область перетворення, таку як частотна область. Блок 54 квантування квантує залишкові коефіцієнта перетворення для додаткового скорочення швидкості передачі в бітах. Процес квантування може скоротити бітову глибину, пов'язану з деякими або всіма коефіцієнтами. Міра квантування може бути модифікована за допомогою регулювання параметра квантування. Після квантування, блок 56 ентропійного кодування ентропійно кодує квантовані коефіцієнти перетворення. Наприклад, блок 56 ентропійного кодування може виконати контекстно-залежне адаптивне кодування із змінною довжиною кодового слова (CAVLC), контекстно-залежне адаптивне двійкове арифметичне кодування (CABAC) або іншу методику ентропійного кодування. Після ентропійного кодування блоком 56 ентропійного кодування, кодоване відео може бути передане іншому пристрою або поміщене в архів для передачі або витягання в майбутньому. У випадку контекстно-залежного адаптивного двійкового арифметичного кодування контекст може бути оснований на сусідніх макроблоках. У деяких випадках, блок 56 ентропійного кодування або інший блок відеокодера 20 може бути сконфігурований для виконання функцій іншого кодування, на доповнення до ентропійного кодування. Наприклад, блок 56 ентропійного кодування може бути сконфігурований для визначення значень CBP для макроблоків або розділів. Також, в деяких випадках, блок 56 ентропійного кодування може виконувати кодування по довжинах серій коефіцієнтів в макроблоці або його розділі. Зокрема, блок 56 ентропійного кодування може застосовувати зигзагоподібне сканування або інший шаблон сканування для сканування коефіцієнтів перетворення в макроблоці або розділі і кодувати серії нулів для додаткового стиснення. Блок 56 ентропійного кодування також може створити інформацію заголовка з належними елементами синтаксису для передачі в кодованому бітовому потоці відео. Блок 58 зворотного квантування і блок 60 зворотного перетворення застосовують зворотне квантування і зворотне перетворення, відповідно, для відновлення залишкового блока в піксельній області, наприклад, для використання в майбутньому як опорного блока. Блок 44 компенсації руху може обчислювати опорний блок за допомогою додавання залишкового блока до блока прогнозування одного з кадрів опорного кадру, що зберігається в пам'яті 64. Блок 44 компенсації руху також може застосовувати один або більше фільтрів інтерполяції до відновленого залишкового блока для обчислення субцілих піксельних значень для використання в оцінці руху. Суматор 62 додає відновлений залишковий блок до блока прогнозування з компенсованим рухом, виробленого блоком 44 компенсації руху, для вироблення відновленого відеоблока для зберігання в сховищі опорних кадрів пам'яті 64. Відновлений відеоблок може бути використаний блоком 42 оцінки руху і блоком 44 компенсації руху як опорний блок для inter-кодування блока в подальшому відеокадрі. Як відмічено вище по тексу, блок 42 оцінки руху, в деяких випадках, не обчислює вектор руху, а замість цього визначає список предикторів вектора руху, чотири з яких є просторовими векторами руху-кандидатами і один з яких є часовим вектором руху-кандидатом. Звичайно, блок 42 компенсації руху утримується від обчислення вектора руху для того, щоб скоротити складність обчислень оцінки руху і тим самим поліпшити швидкість, з якою відеодані можуть бути кодовані, при одночасному скороченні споживання живлення. Відповідно до методик, 13 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 описаних в цьому розкритті, блок 42 оцінки руху може визначати проміжний список з чотирьох просторових векторів руху-кандидатів (або менше, після визначення того, що один або більше з просторових векторів руху-кандидатів самі є часово прогнозованими, де такі часово прогнозовані просторові вектори руху-кандидати видаляються з процесу зрізування), зрізати цей список з (потенційно тільки просторово прогнозованих) просторових векторів рухукандидатів і додавати часовий вектор руху-кандидат (і потенційно часово прогнозований просторовий вектор руху-кандидат) до зрізаного списку з (потенційно тільки просторово прогнозованих) просторових векторів руху-кандидатів. Як альтернатива, блок 42 оцінки руху може визначати проміжний список з чотирьох (при заміні цих часово прогнозованих просторових векторів руху-кандидатів векторами руху-кандидатами за умовчанням) просторових векторів руху-кандидатів, зрізати цей список з просторових векторів руху-кандидатів (що включають в себе один або більше з визначених векторів руху-кандидатів за умовчанням) і додавати часовий вектор руху-кандидат до зрізаного списку з просторових векторів руху-кандидатів. Блок 42 оцінки руху може виводити цей список, який включає в себе руху-кандидата часового вектора руху і зрізаний просторовий вектор руху-кандидат, до блока 44 компенсації руху. Блок 44 компенсації руху потім може ідентифікувати блок опорного кадру (який, знов, може називатися блоком прогнозування) для кожного з векторів руху-кандидатів, включених в список. Блок 44 компенсації руху потім може обчислювати дані прогнозування на основі блока прогнозування, визначеного для кожного з векторів руху-кандидатів. Відеокодер 20 потім може визначати залишкові дані для кожних даних прогнозування, обчислених для відповідного одного з векторів руху-кандидатів, перетворювати залишкові дані, квантувати транскодовані залишкові дані і потім ентропійно кодувати квантовані залишкові дані вищеописаним чином. Відеокодер 20 потім може виконувати зворотні операції для декодування цих ентропійно кодованих залишкових даних, згенерованих відносно кожного з векторів руху-кандидатів, що залишилися після зрізування, для відтворення опорних даних у формі відновлених відеоблоків. Блок 40 вибору режиму може аналізувати кожний з відновлених відеоблоків, згенерованих відносно кожного з векторів руху-кандидатів, для вибору одного з векторів руху-кандидатів. Блок 40 вибору режиму може вибирати один з векторів руху-кандидатів, який забезпечує найкраще співвідношення швидкість передачі-спотворення через процес звичайно званий "оптимізація швидкості передачі-спотворення", який звичайно позначається абревіатурою "RDO". RDO звичайно приводить до порівняння відновленого кадру, зрізу або блока, стисненого для досягнення деякої швидкості передачі (яка звичайно називається швидкістю передачі в бітах, з якою стиснені відеодані, які включають в себе стиснений кадр, зріз або блок, можуть бути відправлені) з вихідним кадром, зрізом або блоком і визначення величини спотворення між вихідним кадром, зрізом або блоком і відновленим кадром, зрізом або блоком при заданій швидкості передачі. Блок 40 вибору режиму може кодувати ті ж самі відеодані з використанням численних різних метрик, які досягають або намагаються досягнути заданої швидкості передачі, виконуючи процес оптимізації спотворення відносно цих різних метрик. У цьому випадку блок 40 вибору режиму може порівнювати виведення RD кожного відновленого відеоблока і вибирати те, яке забезпечує менше спотворення при цільовій швидкості передачі. Блок 40 вибору режиму потім може вказувати цей вибір блоку 42 оцінки руху, який починає взаємодію з блоком 56 ентропійного кодування для інформування блока 56 ентропійного кодування про вибір. Звичайно, блок 42 оцінки руху взаємодіє з блоком 56 ентропійного кодування, щоб указати, що прогнозування вектора руху було виконане разом з індексом, ідентифікуючим вибраний вектор руху-кандидат. Як відмічено вище по тексту, блок 42 оцінки руху може розміщувати вектори руху-кандидати певним чином, наприклад від найбільшої амплітуди до найменшої амплітуди або від найменшої амплітуди до найбільшої амплітуди, або будь-яким іншим певним чином. Як альтернатива, блок 42 оцінки руху також може сигналізувати блоку 56 ентропійного кодування спосіб, за допомогою якого вектори руху-кандидати були розміщені в цьому списку, який також може бути названий списком MVP. Блок 56 ентропійного кодування потім може кодувати цей індекс, використовуючи або унарний, або зрізаний унарний код, разом з будь-якою іншою інформацією, яка може бути необхідна для указання того, що MVP був виконаний, щоб кодувати дані руху. Блок 56 ентропійного кодування може виводити кодований індекс як елемент синтаксису (який може бути позначений як "mvp_idx") в бітовому потоці, який може бути збережений або переданий вищеописаним чином відносно прикладу за Фіг. 1. У деяких випадках, блок 56 ентропійного кодування виконує форму ентропійного кодування, звану контекстно-залежне адаптивне двійкове арифметичне кодування (CABAC). При виконанні CABAC блок 56 ентропійного кодування може вибирати один з множини так званих контекстів (які являють собою різні кодові таблиці, задані для інших контекстів для того, щоб більш 14 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 ефективно стискати відеодані, пов'язані з відповідним контекстом) і кодує стиснені залишкові дані згідно з кодовою таблицею, визначеною для вибраного контексту. Блок 56 ентропійного кодування може вибирати один з контекстів на основі інформації контексту, яка може включати в себе опорний індекс, визначений при виконанні прогнозування вектора руху, число унікальних векторів руху-кандидатів і напрям прогнозування, визначений при виконанні прогнозування вектора руху. Фіг. 3 являє собою блок-схему, що ілюструє приклад відеодекодера 30, який декодує кодовану відеопослідовність. У прикладі за Фіг. 3, відеодекодер 30 включає в себе блок 70 ентропійного кодування, блок 72 компенсації руху, блок 74 intra-прогнозування, блок 76 зворотного квантування, блок 78 зворотного перетворення, пам'ять 82 і суматор 80. Відеодекодер 30 може, в деяких прикладах, виконувати прохід декодування, загалом зворотний проходу кодування, описаному відносно відеокодера, такого як відеокодер 20, показаний в прикладах за Фіг. 1 і 2. Незважаючи на те, що загалом зворотний, відеокодер 30 може, в деяких випадках, виконувати методики, аналогічні таким, виконуваним відеокодером 20. Іншими словами, відеодекодер 30 може виконувати процеси, по суті аналогічні таким, виконуваним відеокодером 20. Більше того, як описано вище по тексту, відеокодер 20 може виконувати відеодекодування в процесі виконання відеокодування. Щоб проілюструвати, блок 58 зворотного квантування, блок 60 зворотного перетворення і суматор 62 відеокодера 20 можуть виконувати операції по суті аналогічно блоку 76 зворотного квантування, блоку 78 зворотного перетворення і суматору 80 відеодекодера 30. Як показано в прикладі за Фіг. 3, блок 70 ентропійного декодування приймає кодований бітовий потік, який для цілей ілюстрації мається на увазі як такий, що включає в себе кодований унарним або зрізаним унарним кодом індекс, ідентифікуючий вибраний вектор руху-кандидат (де, знов, ці вектори руху-кандидати можуть називатися предикторами вектора руху або MVP). Блок 70 ентропійного декодування може, при виконанні процесу загалом зворотного блоку 56 ентропійного кодування відеокодера 20, приймати елемент синтаксису або інші дані кодування для поточної PU, які вказують, що прогнозування вектора руху було виконане, для визначення вектора руху для поточної PU. У відповідь на цей елемент синтаксису або інші дані кодування, блок 70 ентропійного декодування реалізовує методики, описані в цьому розкритті, для визначення числа векторів руху-кандидатів, що залишилися після зрізування, з тим, щоб належним чином синтаксично проаналізувати унарний або зрізаний унарний код з бітового потоку. Щоб визначити число векторів руху-кандидатів, блок 70 ентропійного кодування може взаємодіяти з блоком 72 компенсації руху, інструктуючи блоку 72 компенсації руху визначення числа векторів руху-кандидатів відповідно до методик, описаних в цьому розкритті. Блок 72 компенсації руху витягує просторові вектори руху-кандидати для PU, прилеглих до поточної PU, і часовий вектор руху-кандидат для спільно розміщеної PU в опорному кадрі. Блок 70 ентропійного кодування може забезпечувати блок 72 компенсації руху опорним кадром, ідентифікованим для поточної PU (звичайно як інший елемент синтаксису в бітовому потоці). Як альтернатива, блок 72 компенсації руху може бути сконфігурований відносно або AMVP, або режиму злиття, щоб витягувати часовий вектор руху-кандидат з опорного кадру, ідентифікованого встановленим чином (наприклад один, два або будь-яке інше число позаду або спереду від поточного кадру, в якому розміщена поточна PU). Блок 72 компенсації руху потім може створювати проміжний список, який включає в себе чотири просторові вектори руху-кандидати (або менше, після визначення того, що один або більше з просторових векторів руху-кандидатів самі є часово прогнозованими, де такі часово прогнозовані просторові вектори руху-кандидати видаляються з процесу зрізування), зрізати цей список з (потенційно тільки просторово прогнозованих) просторових векторів рухукандидатів і об'єднувати часовий вектор руху-кандидат (і потенційно часово прогнозовані просторові вектори руху-кандидати) з цим зрізаним списком з (потенційно тільки просторово прогнозованих) просторових векторів руху-кандидатів чином, по суті, аналогічним такому, описаному вище по тексту відносно блока 44 компенсації руху відеокодера 20. Як альтернатива, блок 72 компенсації руху може визначати проміжний список з чотирьох просторових векторів руху-кандидатів (замінюючи часово прогнозовані просторові вектори руху-кандидати векторами руху-кандидатами за умовчанням), зрізати цей список з просторових векторів руху-кандидатів (що включають в себе один або більше з визначених векторів руху-кандидатів за умовчанням) і об'єднувати часовий вектор руху-кандидат зі зрізаним списком просторових векторів рухукандидатів чином, знов, по суті, аналогічним такому, описаному вище по тексту відносно блока 44 компенсації руху відеокодера 20. У кожному випадку, блок 72 компенсації руху виводить цей список векторів руху-кандидатів, визначених після виконання зрізування, як зрізаний список 15 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 MVP. Після генерування цього зрізаного списку MVP, блок 72 компенсації руху підраховує число векторів руху-кандидатів в цьому списку і сигналізує це число блоку 70 ентропійного кодування. Блок 70 ентропійного кодування потім може належним чином синтаксично проаналізувати кодований унарним або зрізаним унарним кодом індекс із забезпеченого бітового потоку для вищеописаних цілей. Після синтаксичного аналізу кодованого унарним або зрізаним унарним кодом індексу, блок 70 ентропійного кодування може потім декодувати кодований унарним або зрізаним унарним кодом індекс, щоб генерувати індекс в список MVP. Блок 70 ентропійного кодування потім пересилає цей індекс до блока 72 компенсації руху, який потім вибирає один з векторів рухукандидатів зі зрізаного списку MVP, ідентифікований індексом. Для inter-кодованого блока, блок 72 компенсації руху може потім генерувати дані inter-прогнозування на основі ідентифікованого вектора руху. Блок 72 компенсації руху може використовувати цей вектор руху, щоб ідентифікувати блок прогнозування в опорних кадрах, збережених в пам'ять 82. Для intraкодованих блоків, блок 74 intra-прогнозування може використовувати режими intraпрогнозування, прийняті в бітовому потоці, для формування блока прогнозування з просторово суміжних блоків. Блок 76 зворотного квантування зворотно квантує, тобто деквантує, квантовані коефіцієнти блока, забезпечені в бітовому потоці і декодовані блоком 70 ентропійного декодування. Процес зворотного квантування може включати в себе традиційний процес, наприклад, як визначений за допомогою стандарту декодування H.264. Процес зворотного квантування також може включати в себе використання параметра QPY квантування, обчисленого суматором 50 для кожного макроблока, щоб визначити міру квантування і аналогічно міру зворотного квантування, яка повинна бути застосована. Блок 60 зворотного перетворення застосовує зворотне перетворення, наприклад зворотне DCT, зворотне цілочислове перетворення або концептуально аналогічний процес зворотного перетворення, до коефіцієнтів перетворення для того, щоб виробити залишкові блоки в пікселній області. Блок 72 компенсації руху виробляє блоки з компенсованим рухом, можливо виконуючи інтерполяцію на основі фільтрів інтерполяції. Ідентифікатори для фільтрів інтерполяції, які повинні бути використані для оцінки руху з субпікселною точністю, можуть бути включені в елементи синтаксису. Блок 72 компенсації руху може використовувати фільтри інтерполяції, як використовуються відеокодером 20 під час кодування відеоблока, щоб обчислити інтерпольовані значення для субцілих пікселів опорного блока. Блок 72 компенсації руху може визначати фільтри інтерполяції, використовувані відеокодером 20, згідно з прийнятою інформацією синтаксису і використовувати фільтри інтерполяції, щоб виробити блоки прогнозування. Блок 72 компенсації руху використовує деяке з інформації синтаксису для визначення розмірів CU, використовуваних для кодування кадру(ів) кодованої відеопослідовності, інформації розділу, яка описує, як кожна CU кадру кодованої відеопослідовності підрозділена, режимів, що вказують як кожна CU кодується, одного або більше опорних кадрів (або списків) для кожної inter-кодованої CU і іншої інформації, щоб декодувати кодовану відеопослідовність. Суматор 80 підсумовує залишкові блоки з відповідними блоками прогнозування, згенерованими блоком 72 компенсації руху або блоком intra-прогнозування, для формування декодованих блоків. Якщо бажано, фільтр видалення блочності також може бути застосований для фільтрації декодованих блоків для того, щоб видалити артефакти блочності. Декодовані відеоблоки потім зберігаються в сховищі опорних кадрів в пам'яті 82, яке можна називати буфером декодованих графічних зображень в стандарті HEVC, який забезпечує опорні блоки для подальшої компенсації руху і також виробляє декодоване відео для представлення на пристрої відображення (такому як пристрій 32 відображення за Фіг. 1). У деяких випадках, часовий вектор руху-кандидат може не бути доступним, наприклад, коли зріз, який задає часовий вектор руху-кандидат, втрачений, тобто не відновлений або не прийнятий в кодованому бітовому потоці, як один приклад. Коли цей часовий вектор рухукандидат недоступний, блок 72 компенсації руху може встановлювати цей часовий вектор рухукандидат на значення за умовчанням або інакше визначати інформацію вектора руху за умовчанням для цього часового вектора руху-кандидата. У деяких випадках, ця інформація вектора руху за умовчанням для часового вектора руху-кандидата може бути відновлена залежно від того, чи був опорний кадр intra-кодований. Коли опорний кадр визначений як intraкодований, блок 72 компенсації руху може одержувати інформацію вектора руху за умовчанням для вектора руху-кандидата за умовчанням на основі просторових векторів руху, визначених для ділянки опорного кадру, спільно розміщеного в тому ж самому місцеположенні опорного кадру, що і поточна ділянка, що знаходиться в поточному кадрі. Аналогічно, один або більше з часово прогнозованих просторових векторів руху-кандидатів можуть бути недоступні або 16 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 втрачені і можуть одержати інформацію вектора руху за умовчанням для вектора рухукандидата за умовчанням на основі просторових векторів руху, визначених для ділянки опорного кадру, спільно розміщеної в тому ж самому місцеположенні опорного кадру, що і поточна ділянка, що знаходиться в поточному кадрі. Різні аспекти методик, викладених в цьому розкритті, також можуть вирішувати проблеми, які виникають при виконанні CABAC або будь-якого іншого процесу контекстно-залежного статистичного кодування без втрат внаслідок просторових векторів руху-кандидатів, які самі були прогнозовані з втрачених або пропущених часових векторів руху. Блок 70 ентропійного кодування може відповідно до цих аспектів методик вирішувати цю проблему за допомогою відключення втраченого просторового вектора руху-кандидата. Як альтернатива, блок 70 ентропійного кодування може замінювати цей втрачений просторовий вектор руху-кандидат інформацією руху за умовчанням. Блок 70 ентропійного кодування може взаємодіяти з блоком 72 компенсації руху, щоб визначати цю інформацію руху за умовчанням. Ця інформація руху за умовчанням може задавати вектор руху за умовчанням, напрям прогнозування і опорний індекс. У деяких випадках, блок 72 компенсації руху генерує цю інформацію руху заміщення на основі типу зрізу (який вказує, чи є поточний зріз intra- або inter-прогнозованим і т. д.), глибини поточної CU (як в глибині CU у вищевідміченій ієрархії дерева квадрантів, в якій зберігається поточна PU), розміру поточної PU або будь-якої іншої доступної інформації. Блок 72 компенсації руху потім може забезпечувати цю інформацію руху за умовчанням блоку 70 ентропійного кодування. За допомогою використання цієї інформації руху за умовчанням блок 70 ентропійного кодування все ще може виконувати процес CABAC. Методики, описані в цьому розкритті, в деяких прикладах, також можуть вирішувати проблеми, які виникають, коли блок 72 компенсації руху нездатний визначати, чи був просторовий вектор руху-кандидат сам прогнозований з просторового вектора руху-кандидата або часового вектора руху-кандидата (наприклад, коли його часовий вектор руху-кандидат був втрачений). У цих випадках, коли один з просторових векторів руху-кандидатів недоступний, блок 72 компенсації руху може реалізувати методики цього розкриття, щоб відключити просторове прогнозування вектора руху (і тим самим використовувати спільно розміщений часовий вектор руху-кандидат незалежно від того, що було просигналізовано кодером). Як альтернатива, блок 72 компенсації руху може визначати інформацію руху за умовчанням вищеописаним чином. Методики додатково можуть вирішувати проблеми, які виникають, коли блок 72 компенсації руху нездатний визначати, чи був просторовий вектор руху-кандидат сам прогнозований з часового вектора руху-кандидата (наприклад, коли його часовий вектор руху-кандидат був втрачений). У цих випадках, коли один з просторових векторів руху-кандидатів недоступний, блок 72 компенсації руху може реалізувати методики цього розкриття, щоб відключити просторове прогнозування вектора руху (і тим самим використовувати спільно розміщений часовий вектор руху-кандидат незалежно від того, що було просигналізовано кодером). Як альтернатива, блок 72 компенсації руху може визначати інформацію руху за умовчанням вищеописаним чином, або виконуючи зрізування відносно цієї інформації руху за умовчанням вектора руху-кандидата за умовчанням, або видаляючи цей вектор руху-кандидат за умовчанням з зрізування повністю (але задаючи його окремо, щоб дозволити синтаксично проаналізувати бітовий потік). Як відмічено вище по тексту, є два типи прогнозування вектора руху: режим злиття і AMVP. Для режиму злиття блок 72 компенсації руху визначає амплітуду вектора руху, напрям прогнозування і опорний індекс, при визначенні інформації руху за умовчанням. Для AMVP, блок 72 компенсації руху визначає амплітуду вектора руху, але відсутня необхідність у визначенні напряму прогнозування і опорного індексу, оскільки вони сигналізуються окремо в бітовому потоці, для поточної PU. Таким чином блок 72 компенсації руху може визначати інформацію руху за умовчанням на основі режиму, сигналізованого для виконання прогнозування вектора руху, тобто, чи є сигналізованим типом прогнозування вектора руху режим злиття або AMVP для поточної PU. Фіг. 4 являє собою блок-схему послідовності операцій, що ілюструє зразкову роботу відеокодера, такого як відеокодер 20, показаний в прикладі за Фіг. 2, при виконанні методик прогнозування вектора руху, описаних в цьому розкритті. Спочатку блок 42 оцінки руху може, як описано вище по тексту, визначати просторові вектори руху-кандидати для поточної PU, відповідної поточній CU (90). Блок 42 оцінки руху може реалізовувати те, що може називатися проміжним списком або проміжним списком просторових MVP, який зберігає ці просторові вектори руху-кандидати. Блок 42 оцінки руху потім може зрізати надмірні просторові вектори руху-кандидати одним з вищеописаних методів (92). У цьому розумінні, блок 42 компенсації 17 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 руху може генерувати проміжний список просторових MVP з просторових векторів рухукандидатів, що залишилися. Після генерування цього проміжного списку просторових MVP з просторових векторів рухукандидатів, що залишилися, блок 42 оцінки руху може визначити часовий вектор руху-кандидат для поточної PU зі спільно розміщеної PU в опорному кадрі, знов, як описано вище по тексту (94). Потім блок 42 оцінки руху може формувати список MVP для включення в нього просторових векторів руху-кандидатів, що залишилися, і часового вектора руху-кандидата (96). Блок 42 оцінки руху може забезпечувати цей список MVP блоку 44 компенсації руху, який виконує компенсацію руху вищеописаним чином відносно кожного з векторів руху-кандидатів, включених в список MVP. Відеокодер 20 потім генерує залишкові дані на основі даних прогнозування, згенерованих за допомогою компенсації руху, виконаної відносно кожного з векторів руху-кандидатів, включених в список MVP. Відеокодер 20 застосовує одне або більше перетворень до залишкових даних, квантує перетворені залишкові дані і потім відновлює залишкові дані. Відновлені залишкові дані потім доповнюються даними прогнозування, згенерованими на основі кожного з векторів руху-кандидатів, включених в список MVP, щоб генерувати відновлені відеодані. Блок 40 вибору режиму потім вибирає один з векторів руху-кандидатів зі списку MVP для поточної PU на основі відновлених відеоданих (98). Наприклад, блок 40 вибору режиму формує аналіз швидкості передачі-спотворення на відновлених відеоданих, відновлених відносно кожного з векторів руху-кандидатів в списку MVP, і вибирає той з векторів руху-кандидатів зі списку, який забезпечує найкращу метрику швидкість передача-спотворення. Блок 40 вибору режиму потім може взаємодіяти з блоком 42 оцінки руху, щоб указати свій вибір вектора рухукандидата. Блок 42 оцінки руху потім може визначити індекс в список MVP, ідентифікуючий вибраний один з векторів руху-кандидатів, як описано вище по тексту (100). Блок 42 оцінки руху потім може забезпечити цей індекс блоку 56 ентропійного кодування. Блок 56 ентропійного кодування потім може кодувати індекс, ідентифікуючий вибраний один з векторів рухукандидатів в списку MVP, як додатково описано вище по тексту (102). Блок 56 ентропійного кодування потім вставляє кодований індекс в бітовий потік (104). Фіг. 5 являє собою блок-схему послідовності операцій, що ілюструє зразкову роботу відеодекодера, такого як відеодекодер 30, показаний в прикладі за Фіг. 3, при реалізації методик прогнозування вектора руху, описаних в цьому розкритті. Як описано вище по тексту, блок 70 ентропійного декодування відеодекодера 30 спочатку приймає бітовий потік, який включає в себе кодований індекс, який звичайно позначають за допомогою імені його елемента синтаксису "mvp_idx" або "MVP index" (110). Блок 70 ентропійного декодування також декодує інші елементи синтаксису до або після цього індексу MVP, що вказує те, що поточна PU має вектори руху, виражені як предиктори вектора руху. Для синтаксичного аналізу цього індексу MVP з бітового потоку, блок 70 ентропійного декодування спочатку повинен визначити число векторів руху-кандидатів, що залишилися після виконання процесу зрізування. Для визначення числа векторів руху-кандидатів, блок 70 ентропійного декодування взаємодіє з блоком 72 компенсації руху, запитуючи блок 72 компенсації руху забезпечити це число векторів руху-кандидатів для поточної PU. У відповідь на цей запит, блок 72 компенсації руху визначає просторові вектори рухукандидати для поточної PU вищеописаним чином (112). Якщо один або більше з просторових векторів руху-кандидатів недоступні по причинах, викладених більш детально вище по тексту ("ТАК" 114), блок 72 компенсації руху може генерувати інформацію руху (таку як інформація руху за умовчанням) будь-яким з методів, описаних вище по тексту, і виконувати компенсацію руху на основі згенерованої інформації руху (116, 118). Якщо всі з просторових векторів рухукандидатів доступні ("НІ" 114), блок 72 компенсації руху зрізує надмірні просторові вектори рухукандидати, як додатково описано вище по тексту (120). Після зрізування надмірних просторових векторів руху-кандидатів блок 72 компенсації руху потім визначає часовий вектор руху-кандидат для поточної PU зі спільно розміщеної PU в опорному кадрі, як описано вище по тексту (122). Якщо цей часовий вектор руху-кандидат недоступний по причинах, описаних вище по тексту ("ТАК" 124), блок 72 компенсації руху генерує інформацію руху і виконує компенсацію руху на основі згенерованої інформації руху (116, 118). Однак, якщо часовий вектор руху-кандидат доступний ("НІ" 124), блок 72 компенсації руху формує список MVP, щоб включити в його склад просторові вектори руху-кандидати, що залишилися, і часовий вектор руху-кандидат (126). Блок 72 компенсації руху потім може визначити число векторів руху-кандидатів в списку MVP (128), пересилаючи це число блоку 70 ентропійного декодування. 18 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 Блок 70 ентропійного кодування потім може синтаксично проаналізувати індекс MVP з бітового потоку на основі визначеного числа (130). Блок 70 ентропійного декодування потім декодує кодований індекс MVP (131). Блок 70 ентропійного декодування пересилає декодований індекс MVP блоку 72 компенсації руху, який вибирає один з векторів рухукандидатів зі списку MVP на основі декодованого індексу MVP, як описано вище по тексту (132). Блок 72 компенсації руху потім виконує компенсацію руху вищеописаним чином на основі вибраного одного з векторів руху-кандидатів (134). Блок 72 компенсації руху може виконувати компенсацію руху згідно з або режимом злиття, або AMVP, залежно від того, який режим або сигналізований в бітовому потоці, або визначений блоком 72 компенсації руху. Фіг. 6 являє собою схему, що ілюструє зразкове компонування суміжних сусідніх PU 140A140D і тимчасової спільно розміщеної PU 142A для поточної PU 144. Як показано в прикладі за Фіг. 6, поточна PU 144 включена в межі поточного кадру 146A. Тимчасово, поточному кадру 146A передує спочатку опорний кадр 146B і потім опорний кадр 146C. Суміжна сусідня PU 140A знаходиться просторово суміжно з лівою частиною поточної PU 144. Суміжна сусідня PU 140B знаходиться просторово суміжно з верхньою лівою частиною поточної PU 144. Суміжна сусідня PU 140С знаходиться просторово суміжно з верхньою частиною поточної PU 144. Суміжна сусідня PU 140D знаходиться просторово суміжно з верхньою правою частиною поточної PU 144. Тимчасово спільно розміщена PU 142A тимчасово передує поточній PU 144 і розміщена в межах опорного кадру 146B в тому ж самому місцеположенні, що і поточна PU 144, розміщена в межах поточного кадру 146A. Кожна з суміжних сусідніх PU 140A-140D зберігає або іншим чином забезпечує просторовий вектор руху-кандидат для поточної PU 144, тоді як тимчасово спільно розміщена PU 142A зберігає або іншим чином забезпечує часовий вектор руху-кандидат для поточної PU 144. Блоки компенсації руху відеодекодерів, такі як блок 72 компенсації руху відеодекодера 30, показаного в прикладі за Фіг. 2, можуть витягувати ці просторові і часові вектори руху-кандидати, відповідно з PU 140A-140D і 142A. Оскільки тимчасово спільно розміщена PU 142A включена в опорний кадр 146B, відмінний від такого поточної PU 144, ця тимчасово спільно розміщена PU 142A типово пов'язана з іншою незалежно декодованою ділянкою (що звичайно називається зріз в стандарті HEVC, що розвивається). Цей зріз опорного кадру 146B може бути втрачений (наприклад, при передачі або внаслідок пошкодження в пам'яті або пристрої зберігання) і блок 72 компенсації руху може не бути здатний витягнути цю тимчасово спільно розміщену PU 142A, що зберігає часовий вектор руху-кандидат для поточної PU 144. Втрата цього часового вектора руху-кандидата може перешкоджати блоку 70 ентропійного декодування синтаксично проаналізувати бітовий потік для вищевідмічених цілей. Методики, описані в цьому розкритті, можуть дозволяти блоку 72 компенсації руху долати цю проблему за допомогою не включення часового вектора руху-кандидата в процес зрізування. Аналогічно, просторові вектори руху-кандидати для поточної PU 144 можуть бути втрачені при виконанні MVP, щоб визначити вектор руху для однієї з суміжних сусідніх PU 140A-140D, з результатом, що вибирають часовий вектор руху-кандидат і втрачають його тимчасово спільно розміщену PU, що зберігає часовий вектор руху-кандидат. Для ілюстрації, розглянемо суміжну сусідню PU 140A, тимчасово спільно розміщена PU якої ідентифікована в прикладі за Фіг. 6 як тимчасово спільно розміщена PU 142B. Якщо PU 142B втрачена і вектор руху для просторової сусідньої PU 140A вибраний як часовий вектор руху-кандидат, пов'язаний з PU 142B, відсутня інформація вектора руху для PU 140A. В результаті, просторовий вектор руху-кандидат для поточної PU 144 також втрачається. Щоб потенційно подолати цю втрату просторового вектора руху-кандидата, методики дозволяють блоку 72 компенсації руху генерувати інформацію руху (таку як інформація руху за умовчанням), яка може бути використана як просторовий вектор руху-кандидат для поточної PU 144. Більше того, цей втрачений просторовий вектор руху-кандидат (або, для цієї мети, часовий вектор руху-кандидат) може виникнути при виконанні MVP і часовий вектор руху-кандидат вибирається для декількох тимчасово спільно розміщених PU. Щоб проілюструвати, передбачимо, що MVP виконується для визначення вектора руху для PU 142B, яка є тимчасово спільно розміщеною з PU 140A, і її тимчасово спільно розміщена PU, тобто PU 142C в прикладі за Фіг. 6, втрачена. Ця втрата, відсутність методик, описаних в цьому розкритті, не буде потенційно перешкоджати синтаксичному аналізу індексу MVP з бітового потоку, але також має результатом втрату вектора руху для PU 142B. Втрата вектора руху для PU 142B, відсутність методик, описаних в цьому розкритті, приводить до втрати вектора руху для PU 140A, передбачаючи, що MVP було виконано для визначення вектора руху для PU 140A, і була вибрана тимчасово спільно розміщена PU 142B. Втрата цього вектора руху негативно впливає на поточну PU 144 так, що просторовий вектор руху-кандидат недоступний. З цієї причини, 19 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 методики дозволяють блоку 72 компенсації руху згенерувати інформацію руху (або в деяких випадках повторно генерувати втрачену інформацію руху) так, щоб перешкоджати тому, що може називатися ефектом множинної втрати. Хоч приклади, описані вище по тексту, стосуються видалення просторових векторів рухукандидатів, що дублюються, методики можуть необов'язково вимагати того, що тільки просторові вектори руху-кандидати, що дублюються, будуть видалені. Методики можуть бути реалізовані для виконання зрізування для того, щоб загалом видалити щонайменше один з просторових векторів руху-кандидатів. Наприклад, відеокодер може сигналізувати на рівні графічного зображення, кадру, зрізу або блока, що просторовий вектор руху-кандидат з, для указання декількох прикладів, найбільшою амплітудою або найменшою амплітудою повинен бути зрізаний. Як альтернатива, відеокодер може сигналізувати в бітовому потоці будь-які критерії, такі як поріг, за допомогою яких MVP можуть бути задані як критерії для зрізування. У деяких варіантах здійснення, відеокодер і відеодекодер можуть домовлятися на деякому профілі або іншій конфігурації, за допомогою якої вектори руху-кандидати можуть бути зрізані. У деяких випадках, відеодекодер може прогнозувати, коли деякі вектори руху-кандидати повинні бути зрізані, на основі контексту або іншої інформації. Методики отже не повинні бути суворо обмежені виконанням зрізування тільки для видалення просторових векторів руху-кандидатів, що дублюються, але повинні охоплювати будь-які методики, які можуть бути реалізовані для зрізування щонайменше одного просторового вектора руху-кандидата. У одному або більше прикладах, описані функції можуть бути реалізовані в апаратному забезпеченні, програмному забезпеченні, апаратно-програмному забезпеченні або будь-якій їх комбінації. Якщо реалізовані в програмному забезпеченні, функції можуть бути збережені або передані як одна або більше інструкцій або код на зчитуваному комп'ютером носії. Зчитувані комп'ютером носії можуть включати в себе носій зберігання даних комп'ютера або носії зв'язку, що включають в себе будь-який носій, який сприяє перенесенню комп'ютерної програми з одного місця в інше. Носії зберігання даних можуть бути будь-якими доступними носіями, до яких може бути здійснений доступ одним або більше комп'ютерами або одним або більше процесорами для витягання інструкцій, коду і/або структур даних для реалізації методик, описаних в цьому розкритті. За допомогою прикладу, а не обмеження, такі зчитувані комп'ютером носії можуть містити RAM, ROM, EEPROM, CD-ROM або інше сховище на оптичному диску, сховище на магнітному диску або інші магнітні пристроїзберігання, флешпам'ять або будь-який інший носій, який може бути використаний для перенесення або зберігання бажаного програмного коду у формі інструкцій або структур даних і до якого може бути здійснений доступ комп'ютером. Також будь-яке з'єднання належним чином називається зчитуваним комп'ютером носієм. Наприклад, якщо програмне забезпечення передається з вебсайта, сервера або іншого віддаленого джерела з використанням коаксіального кабелю, волоконно-оптичного кабелю, цифрової абонентської лінії зв'язку (DSL) або бездротових технологій, наприклад інфрачервоної, радіохвильової і мікрохвильової, то коаксіальний кабель, волоконно-оптичний кабель, вита пара, DSL або інші технології, наприклад інфрачервона, радіохвильова і мікрохвильова, включені у визначення носія. Магнітний диск і диск, як використовується в даному документі, включають в себе компакт-диск (CD), лазерний диск, оптичний диск, цифровий універсальний диск (DVD), флопі-диск і диск blu-ray, де магнітні диски звичайно відтворюють дані магнітним чином, тоді як диски відтворюють дані оптичним чином за допомогою лазерів. Комбінації вищеописаного також повинні бути включені в обсяг зчитуваних комп'ютером носіїв. Код може бути використаний одним або більше процесорами, наприклад одним або більше процесорами цифрових сигналів (DSP), мікропроцесорами загального призначення, спеціалізованими інтегральними схемами (ASIC), програмованими вентильними матрицями (FPGA) або іншими еквівалентними інтегральними або дискретними логічними схемами. Відповідно, термін "процесор", як використовується в даному документі, може стосуватися будьякої з вищезгаданих структур або будь-якої іншої структури, придатної для реалізації методик, описаних в даному документі. На доповнення, в деяких аспектах, функціональність, описана в даному документі, може бути забезпечена в рамках спеціалізованого апаратного забезпечення і/або модулів програмного забезпечення, сконфігурованих для кодування і декодування або включених в об'єднаний кодек. Також технології можуть бути повністю реалізовані в одній або більше схемах або елементах логіки. Методики цього розкриття можуть бути реалізовані в широкому різноманітті приладів і пристроїв, в тому числі в бездротовій телефонній трубці, інтегрованій схемі (ІС) або наборі ІС (наприклад, наборі інтегральних схем). Різні компоненти, модулі або блоки описані в цьому розкритті для виділення функціональних аспектів пристроїв, сконфігурованих для виконання 20 UA 107152 C2 5 розкритих технологій, але не обов'язково вимагають реалізації різними блоками апаратного забезпечення. Навпаки, як описано вище по тексту, різні блоки можуть бути об'єднані в блоці апаратного забезпечення кодека або забезпечені сукупністю взаємодіючих блоків апаратного забезпечення, що включає в себе один або більше процесорів, як описано вище по тексту, в зв'язку з придатним програмним забезпеченням і/або апаратно-програмним забезпеченням. Різні приклади були описані. Ці і інші приклади знаходяться в рамках обсягу нижченаведеної формули винаходу. ФОРМУЛА ВИНАХОДУ 10 15 20 25 30 35 40 45 50 55 60 1. Спосіб кодування відеоданих, причому спосіб включає етапи, на яких: визначають просторові вектори руху-кандидати, пов'язані з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок поточного відеокадру, прилеглих до поточної ділянки; визначають часовий вектор руху-кандидат, пов'язаний з поточною ділянкою поточного відеокадру, при цьому часовий вектор руху-кандидат містить вектор руху, визначений для ділянки опорного відеокадру; зрізують тільки просторові вектори руху-кандидати для видалення з просторових векторів рухукандидатів тих, що дублюються, без розгляду часового вектора руху-кандидата під час процесу зрізування; вибирають часовий вектор руху-кандидат або один з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраний вектор руху-кандидат для процесу прогнозування вектора руху; визначають індекс, який ідентифікує місцеположення вибраного одного з векторів рухукандидатів в списку з часового вектора руху-кандидата і просторових векторів руху-кандидатів, які залишилися після зрізування; і сигналізують індекс в бітовому потоці. 2. Спосіб за пунктом 1, в якому поточна ділянка містить поточну одиницю кодування (CU), в якому ділянка опорного кадру містить CU опорного кадру. 3. Спосіб за пунктом 1, який додатково включає генерування прогнозуючої одиниці (PU), яка включаєв себе дані прогнозування, що містять щонайменше вибраний вектор руху-кандидат, при цьому сигналізація вибраного вектора руху-кандидата містить сигналізацію PU в бітовому потоці. 4. Спосіб за пунктом 1, в якому сигналізація індексу містить сигналізацію індексу предиктора вектора руху (MVP), який ідентифікує місцеположення вибраного вектора руху-кандидата в списку з часового вектора руху-кандидата і просторових векторів руху-кандидатів, які залишилися після зрізування. 5. Спосіб за пунктом 1, який додатково включає кодування індексу з використанням одного з унарного коду або зрізаного унарного коду для генерування закодованого індексу, при цьому сигналізація індексу містить сигналізацію закодованого індексу в бітовому потоці. 6. Спосіб за пунктом 1, в якому вибір часового вектора руху-кандидата або одного з просторових векторів руху-кандидатів, що залишилися після зрізування, включає: виконання аналізу спотворення залежно від швидкості передачі відносно кожного з часового вектора руху-кандидата і просторових векторів руху-кандидатів, що залишилися після зрізування; і вибір часового вектора руху-кандидата або одного з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраного вектора руху-кандидата на основі аналізу спотворення залежно від швидкості передачі. 7. Спосіб за пунктом 1, який додатково включає визначення, чи був кожний з визначених просторових векторів руху-кандидатів просторово прогнозований або часово прогнозований, при цьому зрізування тільки просторових векторів руху-кандидатів для видалення з просторових векторів руху-кандидатів тих, що дублюються, включає зрізування тільки тих з визначених просторових векторів руху-кандидатів, які були визначені як просторово прогнозовані, без зрізування яких-небудь з тих визначених просторових векторів руху-кандидатів, які були визначені як часово прогнозовані, і при цьому вибір часового вектора руху-кандидата або одного з просторових векторів рухукандидатів, що залишилися після зрізування, як вибраного вектора руху-кандидата включає вибір часового вектора руху-кандидата, одного з просторових векторів руху-кандидатів, який був визначений як часово прогнозований, або одного з просторових векторів руху-кандидатів, 21 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 визначених як просторово прогнозовані, що залишилися після зрізування, як вибраного вектора руху-кандидата. 8. Спосіб за пунктом 1, який додатково включає: визначення, чи був кожний з визначених просторових векторів руху-кандидатів просторово прогнозований або часово прогнозований; і заміну будь-якого з просторових векторів руху-кандидатів, які були визначені як часово прогнозовані, вектором руху-кандидатом за умовчанням, при цьому вектор руху-кандидат за умовчанням включає в себе інформацію вектора руху за умовчанням, при цьому інформація вектора руху за умовчанням містить амплітуду вектора руху, напрям прогнозування, ідентифікуючий, чи передує або чи іде за поточним кадром опорний кадр тимчасово, і індекс опори, ідентифікуючий опорний кадр, і при цьому зрізування тільки просторових векторів руху-кандидатів для видалення з просторових векторів руху-кандидатів тих, що дублюються, включає зрізування тільки просторових векторів руху-кандидатів, які включають в себе один або більше векторів руху-кандидатів за умовчанням, для видалення з просторових векторів руху-кандидатів тих, що дублюються. 9. Спосіб за пунктом 1, який додатково включає визначення одного або більше додаткових просторових векторів руху-кандидатів, які не є часово прогнозованими і які відрізняються від якого-небудь з часового вектора руху-кандидата і просторових векторів руху-кандидатів, що залишилися після зрізування, при цьому вибір часового вектора руху-кандидата або одного з просторових векторів рухукандидатів, що залишилися після зрізування, включає вибір часового вектора руху-кандидата, одного з просторових векторів руху-кандидатів, що залишилися після зрізування, або одного з додаткових просторових векторів руху-кандидатів як вибраного вектора руху-кандидата. 10. Пристрій для кодування відеоданих, причому пристрій містить: засіб для визначення просторових векторів руху-кандидатів, пов'язаних з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок для поточного відеокадру, прилеглих до поточної ділянки; засіб для визначення часового вектора руху-кандидата, пов'язаного з поточною ділянкою поточного відеокадру, при цьому часовий вектор руху-кандидат містить вектор руху, визначений для ділянки опорного відеокадру; засіб для зрізування тільки просторових векторів руху-кандидатів для видалення з просторових векторів руху-кандидатів тих, що дублюються, без розгляду часового вектора руху-кандидата під час процесу зрізування; засіб для вибору часового вектора руху-кандидата або одного з просторових векторів рухукандидатів, що залишилися після зрізування, як вибраного вектора руху-кандидата для процесу прогнозування вектора руху; засіб для визначення індексу, який ідентифікує місцеположення вибраного одного з векторів руху-кандидатів в списку з часового вектора руху-кандидата і просторових векторів рухукандидатів, які залишилися після зрізування; і засіб для сигналізації індексу в бітовому потоці. 11. Пристрій за пунктом 10, який додатково містить засіб для визначення, чи був кожний з визначених просторових векторів руху-кандидатів просторово прогнозований або часово прогнозований, при цьому засіб для зрізування тільки просторових векторів руху-кандидатів для видалення з просторових векторів руху-кандидатів тих, що дублюються, містить засіб для зрізування тільки тих з визначених просторових векторів руху-кандидатів, які були визначені як просторово прогнозовані, без зрізування яких-небудь з тих визначених просторових векторів рухукандидатів, які були визначені як часово прогнозовані, і при цьому засіб для вибору часового вектора руху-кандидата або одного з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраного вектора руху-кандидата, містить засіб для вибору часового вектора руху-кандидата, одного з просторових векторів рухукандидатів, який був визначений як часово прогнозований, або одного з просторових векторів руху-кандидатів, визначених як просторово прогнозовані, що залишилися після зрізування, як вибраного вектора руху-кандидата. 12. Пристрій за пунктом 10, який додатково містить: засіб для визначення, чи був кожний з визначених просторових векторів руху-кандидатів просторово прогнозований або часово прогнозований; і засіб для заміни якого-небудь з просторових векторів руху-кандидатів, які були визначені як часово прогнозовані, вектором руху-кандидатом за умовчанням, при цьому вектор рухукандидат за умовчанням включає в себе інформацію вектора руху за умовчанням, при цьому 22 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 інформація вектора руху за умовчанням містить амплітуду вектора руху, напрям прогнозування, ідентифікуючий, чи передує або чи іде за поточним кадром опорний кадр тимчасово, і індекс опори, ідентифікуючий опорний кадр, і при цьому засіб для зрізування тільки просторових векторів руху-кандидатів для видалення з просторових векторів руху-кандидатів тих, що дублюються, містить засіб для зрізування тільки просторових векторів руху-кандидатів, які включають в себе один або більше векторів рухукандидатів за умовчанням, для видалення з просторових векторів руху-кандидатів тих, що дублюються. 13. Пристрій за пунктом 10, який додатково містить засіб для визначення одного або більше додаткових просторових векторів руху-кандидатів, які не є часово прогнозованими і які відрізняються від якого-небудь з часового вектора руху-кандидата і просторових векторів рухукандидатів, що залишилися після зрізування, при цьому засіб для вибору часового вектора руху-кандидата або одного з просторових векторів руху-кандидатів, що залишилися після зрізування, містить засіб для вибору часового вектора руху-кандидата, одного з просторових векторів руху-кандидатів, що залишилися після зрізування, або одного з додаткових просторових векторів руху-кандидатів як вибраного вектора руху-кандидата. 14. Пристрій для кодування відеоданих, причому пристрій містить: блок компенсації руху, який визначає просторові вектори руху-кандидати, пов'язані з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок для поточного відеокадру, прилеглих до поточної ділянки, визначає часовий вектор руху-кандидат, пов'язаний з поточною ділянкою поточного відеокадру, при цьому часовий вектор руху-кандидат містить вектор руху, визначений для ділянки опорного відеокадру, і зрізує тільки просторові вектори руху-кандидати для видалення з просторових векторів руху-кандидатів тих, що дублюються, без розгляду часового вектора руху-кандидата під час процесу зрізування; блок вибору режиму, який вибирає часовий вектор руху-кандидат або один з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраний вектор руху-кандидат для процесу прогнозування вектора руху, і визначає індекс, який ідентифікує місцеположення вибраного одного з векторів руху-кандидатів в списку з часового вектора руху-кандидата і просторових векторів руху-кандидатів, які залишилися після зрізування; і блок ентропійного кодування, який сигналізує індекс в бітовому потоці. 15. Пристрій за пунктом 14, в якому поточна ділянка містить поточну одиницю кодування (CU), в якому ділянка опорного кадру містить CU опорного кадру. 16. Пристрій за пунктом 14, в якому блок компенсації руху додатково генерує прогнозуючу одиницю (PU), яка включає в себе дані прогнозування, що містять щонайменше вибраний вектор руху-кандидат, при цьому блок ентропійного кодування сигналізує PU в бітовому потоці. 17. Пристрій за пунктом 14, в якому блок ентропійного кодування сигналізує індекс як індекс предиктора вектора руху (MVP), який ідентифікує місцеположення вибраного вектора рухукандидата в списку з часового вектора руху-кандидата і просторових векторів руху-кандидатів, які залишилися після зрізування. 18. Пристрій за пунктом 14, в якому блок ентропійного кодування кодує індекс з використанням одного з унарного коду або зрізаного унарного коду для генерування закодованого індексу і сигналізує закодований індекс в бітовому потоці. 19. Пристрій за пунктом 14, в якому блок вибору режиму виконує аналіз спотворення залежно від швидкості передачі відносно кожного з часового вектора руху-кандидата і просторових векторів руху-кандидатів, що залишилися після зрізування, і вибирає часовий вектор рухукандидат або один з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраний вектор руху-кандидат на основі аналізу спотворення залежно від швидкості передачі. 20. Пристрій за пунктом 14, в якому блок компенсації руху додатково визначає, чи був кожний з визначених просторових векторів руху-кандидатів просторово прогнозований або часово прогнозований, і зрізує тільки ті з визначених просторових векторів руху-кандидатів, які були визначені як просторово прогнозовані, без зрізування якого-небудь з тих визначених просторових векторів рухукандидатів, які були визначені як часово прогнозовані, і в якому блок вибору режиму вибирає часовий вектор руху-кандидат, один з просторових векторів руху-кандидатів, який був визначений як часово прогнозований, або один з 23 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 просторових векторів руху-кандидатів, визначених як просторово прогнозовані, що залишилися після зрізування, як вибраний вектор руху-кандидат. 21. Пристрій за пунктом 14, в якому блок компенсації руху визначає, чи був кожний з визначених просторових векторів руху-кандидатів просторово прогнозований або часово прогнозований, замінює який-небудь з просторових векторів руху-кандидатів, які були визначені як часово прогнозовані, вектором руху-кандидатом за умовчанням, при цьому вектор руху-кандидат за умовчанням включає в себе інформацію вектора руху за умовчанням, при цьому інформація вектора руху за умовчанням містить амплітуду вектора руху, напрям прогнозування, ідентифікуючий, чи передує або чи іде за поточним кадром опорний кадр тимчасово, і індекс опори, ідентифікуючий опорний кадр, і зрізує тільки просторові вектори руху-кандидати, які включають в себе один або більше векторів руху-кандидатів за умовчанням, для видалення з просторових векторів руху-кандидатів тих, що дублюються. 22. Пристрій за пунктом 14, в якому блок компенсації руху додатково визначає один або більше додаткових просторових векторів руху-кандидатів, які не є часово прогнозованими і які відрізняються від якого-небудь з часового вектора руху-кандидата і просторових векторів рухукандидатів, що залишилися після зрізування, при цьому блок вибору режиму вибирає часовий вектор руху-кандидат, один з просторових векторів руху-кандидатів, що залишилися після зрізування, або один з додаткових просторових векторів руху-кандидатів як вибраний вектор руху-кандидат. 23. Постійний зчитуваний комп'ютером носій, який містить інструкції, які, коли виконуються, спонукають один або більше процесорів до: визначення просторових векторів руху-кандидатів, пов'язаних з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок поточного відеокадру, прилеглих до поточної ділянки; визначення часового вектора руху-кандидата, пов'язаного з поточною ділянкою поточного відеокадру, при цьому часовий вектор руху-кандидат містить вектор руху, визначений для ділянки опорного відеокадру; зрізування тільки просторових векторів руху-кандидатів для видалення з просторових векторів руху-кандидатів тих, що дублюються, без розгляду часового вектора руху-кандидата під час процесу зрізування; вибору часового вектора руху-кандидата або одного з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраного вектора руху-кандидата для процесу прогнозування вектора руху; визначення індексу, який ідентифікує місцеположення вибраного одного з векторів рухукандидатів в списку з часового вектора руху-кандидата і просторових векторів руху-кандидатів, які залишилися після зрізування; і сигналізації індексу в бітовому потоці. 24. Спосіб декодування відеоданих, причому спосіб включає етапи, на яких: визначають просторові вектори руху-кандидати, пов'язані з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять сусідні вектори руху, визначені для просторово сусідніх ділянок, прилеглих до поточної ділянки в межах поточного відеокадру; зрізують тільки просторові вектори руху-кандидати для видалення з просторових векторів рухукандидатів тих, що дублюються, без розгляду часового вектора руху-кандидата, визначеного для поточної ділянки поточного відеокадру, під час процесу зрізування, при цьому часовий вектор руху-кандидат містить вектор руху, визначений для ділянки опорного відеокадру; вибирають часовий вектор руху-кандидат або один з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраний вектор руху-кандидат для процесу прогнозування вектора руху, на основі індексу предиктора вектора руху (MVP), що сигналізується в бітовому потоці; і виконують компенсацію руху на основі вибраного вектора руху-кандидата. 25. Спосіб за пунктом 24, який додатково включає: визначення деякого числа векторів руху-кандидатів як часовий вектор руху-кандидата плюс вектори з просторових векторів руху-кандидатів, що залишилися після зрізування; синтаксичний аналіз кодованого індексу MVP з бітового потоку на основі визначеного числа векторів руху-кандидатів, при цьому кодований індекс MVP містить одне з унарного кодованого індексу MVP і зрізаного унарного кодованого індексу MVP; і декодування кодованого індексу MVP для визначення індексу MVP. 26. Спосіб за пунктом 24, який додатково включає: 24 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 визначення того, що часовий вектор руху-кандидат для поточної ділянки поточного кадру недоступний; і у відповідь на визначення того, що часовий вектор руху-кандидат недоступний, визначення інформації вектора руху за умовчанням для часового вектора руху-кандидата, при цьому інформація вектора руху за умовчанням містить амплітуду вектора руху, напрям прогнозування, ідентифікуючий, чи передує або чи іде за поточним кадром опорний кадр тимчасово, і індекс опори, ідентифікуючий опорний кадр. 27. Спосіб за пунктом 26, який додатково включає визначення контексту для виконання контекстного адаптивного статистичного декодування без втрат на основі визначеної інформації вектора руху за умовчанням, при цьому контекст ідентифікує таблицю кодування для використання для декодування відеоданих. 28. Спосіб за пунктом 26, в якому визначення інформації вектора руху за умовчанням включає: визначення, чи був опорний кадр intra-кодований; і коли опорний кадр визначений як intra-кодований, витягання інформації вектора руху за умовчанням на основі просторових векторів руху, визначених для ділянки опорного кадру. 29. Спосіб за пунктом 24, який додатково включає: визначення того, що один з просторових векторів руху-кандидатів недоступний; і у відповідь на визначення того, що один з просторових векторів руху-кандидатів недоступний, визначення вектора руху-кандидата за умовчанням, який включає в себе інформацію вектора руху за умовчанням для одного з просторових векторів руху-кандидатів, на основі режиму прогнозування вектора руху, і при цьому зрізування тільки просторових векторів руху-кандидатів для видалення з просторових векторів руху-кандидатів тих, що дублюються, включає зрізування тільки просторових векторів руху-кандидатів, які включають в себе один або більше векторів руху-кандидатів за умовчанням, для видалення з просторових векторів руху-кандидатів тих, що дублюються, і при цьому вибір часового вектора руху-кандидата включає вибір часового вектора рухукандидата, одного з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраного вектора руху-кандидата, включає вибір часового вектора руху-кандидата або одного з просторових векторів руху-кандидатів, визначеного як недоступний, або одного з просторових векторів руху-кандидатів, що залишилися після зрізування, на основі індексу предиктора вектора руху (MVP), який сигналізується в бітовому потоці. 30. Спосіб за пунктом 29, в якому визначення інформації вектора руху за умовчанням включає визначення амплітуди вектора руху без визначення напряму прогнозування, ідентифікуючого, чи передує або чи іде за поточним кадром опорний кадр тимчасово, або індексу опори, ідентифікуючого опорний кадр, коли режимом прогнозування вектора руху є режим адаптивного прогнозування вектора руху (AMVP). 31. Спосіб за пунктом 29, в якому визначення інформації вектора руху за умовчанням включає визначення амплітуди вектора руху, напряму прогнозування, ідентифікуючого, чи передує або чи іде за поточним кадром опорний кадр тимчасово, і індексу опори, ідентифікуючого опорний кадр, коли режимом прогнозування вектора руху є режим злиття. 32. Спосіб за пунктом 29, який додатково включає визначення контексту для виконання контекстного адаптивного статистичного декодування без втрат на основі визначеної інформації вектора руху за умовчанням, при цьому контекст ідентифікує таблицю кодування для використання для декодування відеоданих. 33. Спосіб за пунктом 24, який додатково включає: визначення того, що один з просторових векторів руху-кандидатів недоступний; і у відповідь на визначення того, що один з просторових векторів руху-кандидатів недоступний, видалення одного з просторових векторів руху-кандидатів, який визначений як недоступний, з процесу зрізування, при цьому зрізування тільки просторових векторів руху-кандидатів включає зрізування тільки тих з просторових векторів руху-кандидатів, які були визначені як доступні, для видалення з просторових векторів руху-кандидатів тих, що дублюються, без видалення часового вектора руху-кандидата, визначеного для поточної ділянки поточного відеокадру, або одного з просторових векторів руху-кандидатів, який визначений як недоступний. 34. Спосіб за пунктом 24, який додатково включає визначення одного або більше додаткових просторових векторів руху-кандидатів, які не є часово прогнозованими і які відрізняються від якого-небудь з часового вектора руху-кандидата і просторових векторів руху-кандидатів, що залишилися після зрізування, при цьому вибір часового вектора руху-кандидата або одного з просторових векторів рухукандидатів, що залишилися після зрізування, включає вибір часового вектора руху-кандидата, 25 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 одного з просторових векторів руху-кандидатів, що залишилися після зрізування, або одного з додаткових просторових векторів руху-кандидатів як вибраного вектора руху-кандидата. 35. Пристрій для декодування відеоданих, причому пристрій містить: засіб для визначення просторових векторів руху-кандидатів, пов'язаних з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок поточного відеокадру, прилеглих до поточної ділянки; засіб для зрізування тільки просторових векторів руху-кандидатів для видалення з просторових векторів руху-кандидатів тих, що дублюються, без розгляду часового вектора руху-кандидата, визначеного для поточної ділянки поточного відеокадру, під час процесу зрізування, при цьому часовий вектор руху-кандидат містить вектор руху, визначений для ділянки опорного відеокадру; засіб для вибору одного з часового вектора руху-кандидата або одного з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраного вектора руху-кандидата для процесу прогнозування вектора руху, на основі індексу предиктора вектора руху (MVP), який сигналізується в бітовому потоці; і засіб для виконання компенсації руху на основі вибраного вектора руху-кандидата. 36. Пристрій за пунктом 35, який додатково містить: засіб для визначення деякого числа векторів руху-кандидатів як часовий вектор руху-кандидат плюс вектори з просторових векторів руху-кандидатів, що залишилися після зрізування; засіб для синтаксичного аналізу кодованого індексу MVP з бітового потоку на основі визначеного числа векторів руху-кандидатів, при цьому кодований індекс MVP містить одне з унарного кодованого індексу MVP і зрізаного унарного кодованого індексу MVP; і засіб для декодування кодованого індексу MVP для визначення індексу MVP. 37. Пристрій за пунктом 35, який додатково містить: засіб для визначення того, що часовий вектор руху-кандидат для поточної ділянки поточного кадру недоступний; і у відповідь на визначення того, що часовий вектор руху-кандидат недоступний, засіб для визначення інформації вектора руху за умовчанням для часового вектора руху-кандидата, при цьому інформація вектора руху за умовчанням містить амплітуду вектора руху, напрям прогнозування, ідентифікуючий, чи передує або чи іде за поточним кадром опорний кадр тимчасово, і індекс опори, ідентифікуючий опорний кадр. 38. Пристрій за пунктом 37, який додатково містить засіб для визначення контексту для виконання контекстного адаптивного статистичного декодування без втрат на основі визначеної інформації вектора руху за умовчанням, при цьому контекст ідентифікує таблицю кодування для використання для декодування відеоданих. 39. Пристрій за пунктом 37, в якому засіб для визначення інформації вектора руху за умовчанням містить: засіб для визначення, чи був опорний кадр intra-кодований; і коли опорний кадр визначений як intra-кодований, засіб для витягання інформації вектора руху за умовчанням на основі просторових векторів руху, визначених для ділянки опорного кадру. 40. Пристрій за пунктом 35, який додатково містить: засіб для визначення того, що один з просторових векторів руху-кандидатів недоступний; і у відповідь на визначення того, що один з просторових векторів руху-кандидатів недоступний, засіб для визначення вектора руху-кандидата за умовчанням, який включає в себе інформацію вектора руху за умовчанням для одного з просторових векторів руху-кандидатів на основі режиму прогнозування вектора руху, і при цьому засіб для зрізування тільки просторових векторів руху-кандидатів для видалення з просторових векторів руху-кандидатів тих, що дублюються, містить засіб для зрізування тільки просторових векторів руху-кандидатів, які включають в себе один або більше векторів рухукандидатів за умовчанням, для видалення з просторових векторів руху-кандидатів тих, що дублюються, і при цьому засіб для вибору містить засіб для вибору часового вектора руху-кандидата, одного з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраного вектора руху-кандидата, містить засіб для вибору часового вектора руху-кандидата або одного з просторових векторів руху-кандидатів, визначеного як недоступний, або одного з просторових векторів руху-кандидатів, що залишилися після зрізування, на основі індексу предиктора вектора руху (MVP), сигналізованого в бітовому потоці. 41. Пристрій за пунктом 40, в якому засіб для визначення інформації вектора руху за умовчанням містить засіб для визначення амплітуди вектора руху без визначення напряму 26 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 прогнозування, ідентифікуючого, чи передує або чи іде за поточним кадром опорний кадр тимчасово, або індексу опори, ідентифікуючого опорний кадр, коли режимом прогнозування вектора руху є режим адаптивного прогнозування вектора руху (AMVP). 42. Пристрій за пунктом 40, в якому засіб для визначення інформації вектора руху за умовчанням містить засіб для визначення амплітуди вектора руху, напряму прогнозування, ідентифікуючого, чи передує або чи іде за поточним кадром опорний кадр тимчасово, і індексу опори, ідентифікуючого опорний кадр, коли режимом прогнозування вектора руху є режим злиття. 43. Пристрій за пунктом 40, який додатково містить засіб для визначення контексту для виконання контекстного адаптивного статистичного декодування без втрат на основі визначеної інформації вектора руху за умовчанням, при цьому контекст ідентифікує таблицю кодування для використання для декодування відеоданих. 44. Пристрій за пунктом 35, який додатково містить: засіб для визначення того, що один з просторових векторів руху-кандидатів недоступний; і у відповідь на визначення того, що один з просторових векторів руху-кандидатів недоступний, засіб для видалення одного з просторових векторів руху-кандидатів, який визначений як недоступний, з процесу зрізування, при цьому засіб для зрізування тільки просторових векторів руху-кандидатів містить засіб для зрізування тільки тих з просторових векторів руху-кандидатів, які були визначені як доступні, для видалення з просторових векторів руху-кандидатів тих, що дублюються, без видалення часового вектора руху-кандидата, визначеного для поточної ділянки поточного відеокадру, або одного з просторових векторів руху-кандидатів, який визначений як недоступний. 45. Пристрій за пунктом 35, який додатково містить засіб для визначення одного або більше додаткових просторових векторів руху-кандидатів, які не є часово прогнозованими і які відрізняються від якого-небудь з часового вектора руху-кандидата і просторових векторів рухукандидатів, що залишилися після зрізування, при цьому засіб для вибору часового вектора руху-кандидата або одного з просторових векторів руху- кандидатів, що залишилися після зрізування, містить засіб для вибору часового вектора руху-кандидата, одного з просторових векторів руху-кандидатів, що залишилися після зрізування, або одного з додаткових просторових векторів руху-кандидатів як вибраного вектора руху-кандидата. 46. Пристрій для декодування відеоданих, причому пристрій містить: блок компенсації руху, який визначає просторові вектори руху-кандидати, пов'язані з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять сусідні вектори руху, визначені для сусідніх ділянок, прилеглих до поточної ділянки, зрізує тільки просторові вектори руху-кандидати для видалення з просторових векторів руху-кандидатів тих, що дублюються, без розгляду часового вектора руху-кандидата, визначеного для поточної ділянки поточного відеокадру, під час процесу зрізування, при цьому часовий вектор рухукандидат містить вектор руху, визначений для ділянки опорного відеокадру, вибирає один з часового вектора руху-кандидата або один з просторових векторів руху-кандидатів, що залишилися після зрізування, як вибраний вектор руху-кандидат для процесу прогнозування вектора руху, на основі індексу предиктора вектора руху (MVP), що сигналізується в бітовому потоці, і виконує компенсацію руху на основі вибраного вектора руху-кандидата. 47. Пристрій за пунктом 46, в якому блок компенсації руху визначає деяке число векторів руху-кандидатів як часовий вектор руху-кандидат плюс вектори з просторових векторів руху-кандидатів, що залишилися після зрізування; і в якому пристрій додатково містить блок ентропійного декодування, який синтаксично аналізує кодований індекс MVP з бітового потоку на основі визначеного числа векторів руху-кандидатів, при цьому кодований індекс MVP містить одне з унарного кодованого індексу MVP і зрізаного унарного кодованого індексу MVP, і декодує кодований індекс MVP для визначення індексу MVP. 48. Пристрій за пунктом 46, який додатково містить: визначення того, що часовий вектор руху-кандидат для поточної ділянки поточного кадру недоступний; і у відповідь на визначення того, що часовий вектор руху-кандидат недоступний, визначення інформації вектора руху за умовчанням для часового вектора руху-кандидата, при цьому інформація вектора руху за умовчанням містить амплітуду вектора руху, напрям прогнозування, ідентифікуючий, чи передує або чи іде за поточним кадром опорний кадр тимчасово, і індекс опори, ідентифікуючий опорний кадр. 27 UA 107152 C2 5 10 15 20 25 30 35 40 45 50 55 60 49. Пристрій за пунктом 48, який додатково містить блок ентропійного декодування, який визначає контекст для виконання контекстного адаптивного статистичного декодування без втрат на основі певної інформації вектора руху за умовчанням, при цьому контекст ідентифікує таблицю кодування для використання для декодування відеоданих. 50. Пристрій за пунктом 48, в якому блок компенсації руху додатково визначає, чи був опорний кадр intra-кодований, і, коли опорний кадр визначений як intra-кодований, витягує інформацію вектора руху за умовчанням на основі просторових векторів руху, визначених для ділянки опорного кадру, спільно розміщеного в тому ж самому місцеположенні опорного кадру, що і поточна ділянка, яка знаходиться в поточному кадрі. 51. Пристрій за пунктом 46, в якому блок компенсації руху визначає те, що один з просторових векторів руху-кандидатів недоступний, у відповідь на визначення того, що один з просторових векторів руху-кандидатів недоступний, визначає вектор руху-кандидат за умовчанням, який включає в себе інформацію вектора руху за умовчанням для одного з просторових векторів руху-кандидатів на основі режиму прогнозування вектора руху, зрізує тільки просторові вектори руху-кандидати, які включають в себе один або більше векторів руху-кандидатів за умовчанням, для видалення з просторових векторів руху-кандидатів тих, що дублюються, і вибирає один з часових векторів руху-кандидатів, один з просторових векторів руху-кандидатів, визначений як недоступний, або один з просторових векторів руху-кандидатів, що залишилися після зрізування, на основі індексу предиктора вектора руху (MVP), сигналізованого в бітовому потоці. 52. Пристрій за пунктом 51, в якому блок компенсації руху визначає амплітуду вектора руху без визначення напряму прогнозування, ідентифікуючого, чи передує або чи іде за поточним кадром опорний кадр тимчасово, або індексу опори, ідентифікуючого опорний кадр, коли режимом прогнозування вектора руху є режим адаптивного прогнозування вектора руху (AMVP). 53. Пристрій за пунктом 51, в якому блок компенсації руху визначає амплітуду вектора руху, напрям прогнозування, ідентифікуючий, чи передує або чи іде за поточним кадром опорний кадр тимчасово, і індекс опори, ідентифікуючий опорний кадр, коли режимом прогнозування вектора руху є режим злиття. 54. Пристрій за пунктом 51, який додатково містить блок ентропійного декодування, який визначає контекст для виконання контекстного адаптивного статистичного декодування без втрат на основі визначеної інформації вектора руху за умовчанням, при цьому контекст ідентифікує таблицю кодування для використання для декодування відеоданих. 55. Пристрій за пунктом 46, в якому блок компенсації руху визначає те, що один з просторових векторів руху-кандидатів недоступний, у відповідь на визначення того, що один з просторових векторів руху-кандидатів недоступний, видаляє один з просторових векторів руху-кандидатів, який визначений як недоступний, з процесу зрізування, і зрізує тільки ті з просторових векторів руху-кандидатів, які були визначені як доступні, для видалення з просторових векторів рухукандидатів тих, що дублюються, без видалення часового вектора руху-кандидата, визначеного для поточної ділянки поточного відеокадру, або одного з просторових векторів руху-кандидатів, який визначений як недоступний. 56. Пристрій за пунктом 46, в якому блок компенсації руху додатково визначає один або більше додаткових просторових векторів руху-кандидатів, які не є часово прогнозованими і які відрізняються від якого-небудь з часового вектора руху-кандидата і просторових векторів рухукандидатів, що залишилися після зрізування, і вибирає часовий вектор руху-кандидат, один з просторових векторів руху-кандидатів, що залишилися після зрізування, або один з додаткових просторових векторів руху-кандидатів як вибраний вектор руху-кандидат. 57. Постійний зчитуваний комп'ютером носій, який містить інструкції, які, коли виконуються, спонукають один або більше процесорів до: визначення просторових векторів руху-кандидатів, пов'язаних з поточною ділянкою поточного відеокадру, при цьому просторові вектори руху-кандидати містять вектори руху, визначені для сусідніх ділянок поточного відеокадру, прилеглих до поточної ділянки; зрізування тільки просторових векторів руху-кандидатів для видалення з просторових векторів руху-кандидатів тих, що дублюються, без розгляду часового вектора руху-кандидата, визначеного для поточної ділянки поточного відеокадру, під час процесу зрізування, при цьому часовий вектор руху-кандидат містить вектор руху, визначений для ділянки опорного відеокадру; вибору одного з часового вектора руху-кандидата або одного з просторових векторів рухукандидатів, що залишилися після зрізування, як вибраного вектора руху-кандидата для процесу прогнозування вектора руху, на основі індексу предиктора вектора руху (MVP), що сигналізується в бітовому потоці; і 28

Дивитися

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

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

Performing motion vector prediction for video coding

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

Chien, Wei-Jung, Chen, Peisong, Coban, Muhammed Zeyd, Karczewicz, Marta

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

Чиень Вэй-Цзюн, Чень Пейсун, Кобан Мухаммед Зейд, Карчевич Марта

МПК / Мітки

МПК: H04N 7/00

Мітки: виконання, прогнозування, відеокодування, вектора, руху

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

<a href="https://ua.patents.su/33-107152-vikonannya-prognozuvannya-vektora-rukhu-dlya-videokoduvannya.html" target="_blank" rel="follow" title="База патентів України">Виконання прогнозування вектора руху для відеокодування</a>

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