Параметри гіпотетичного опорного декодера при кодуванні відео
Формула / Реферат
1. Спосіб обробки відеоданих, причому спосіб включає:
виконання операції гіпотетичного еталонного декодера (HRD), при цьому операція HRD визначає відповідність потоку бітів, який містить закодовані відеодані, стандарту кодування відео, або визначає відповідність відеодекодера стандарту кодування відео, при цьому виконання операції HRD містить:
вибір робочої точки, яку піддають тесту, при цьому найвищий часовий ідентифікатор піднабору потоку бітів, асоційованого з робочою точкою, яку піддають тесту, є меншим, ніж найбільший часовий ідентифікатор, присутній в потоці бітів, або цільовий набір ідентифікаторів рівня піднабору потоку бітів не включає в себе всі значення елементів синтаксису ідентифікатора рівня потоку бітів;
визначення, на основі найвищого часового ідентифікатора, першого елемента синтаксису з числа першого масиву елементів синтаксису в потоці бітів, відповідні елементи синтаксису в першому масиві елементів синтаксису задають, для відповідних значень найвищого часового ідентифікатора, максимальний необхідний розмір буфера декодованих картинок (DPB);
визначення, на основі найвищого часового ідентифікатора, другого елемента синтаксису з числа другого масиву елементів синтаксису в потоці бітів, відповідні елементи синтаксису в другому масиві елементів синтаксису задають, для відповідних значень найвищого часового ідентифікатора, максимальну дозволену кількість картинок, що передують будь-якій картинці в порядку декодування і ідуть за цією картинкою в порядку виведення;
визначення, на основі найвищого часового ідентифікатора, третього елемента синтаксису з числа третього масиву елементів синтаксису в потоці бітів, відповідні елементи синтаксису в третьому масиві елементів синтаксису задають, для відповідних значень найвищого часового ідентифікатора, кількості мінус 1 альтернативних специфікацій буфера кодованих картинок (СРВ) в потоці бітів; і
використання згаданих першого, другого і третього елементів синтаксису в операції HRD.
2. Спосіб за п. 1, при цьому виконання операції HRD включає: вибір робочої точки;
визначення цільового набору ідентифікаторів рівня робочої точки, яку піддають тесту, і найвищого часового ідентифікатора;
вибір набору параметрів гіпотетичного еталонного декодера (HRD), які можна застосувати до робочої точки, яку піддають тесту;
використання вибраного набору параметрів HRD, щоб конфігурувати HRD, який виконує процес декодування; і виконання процесу декодування.
3. Спосіб за п. 2,
при цьому виконання процесу декодування включає декодування з набору параметрів послідовності (SPS) першого масиву елементів синтаксису; і
при цьому використання першого елемента синтаксису включає визначення, що потік бітів не знаходиться у відповідності зі стандартом кодування відео, коли значення, вказане першим елементом синтаксису, більше, ніж максимальний розмір DPB.
4. Спосіб за п. 2,
при цьому виконання процесу декодування включає декодування з SPS першого масиву елементів синтаксису; і
при цьому використання першого елемента синтаксису включає виконання процесу виштовхування, який спустошує один або більше буферів зберігання картинок DPB, коли поточна картинка не є картинкою миттєвого оновлення декодування (IDR) або картинкою доступу з розірваним посиланням (BLA), і кількість картинок в DPB, позначених як необхідні для виведення, більша, ніж значення, вказане першим елементом синтаксису.
5. Спосіб за п. 2,
при цьому виконання процесу декодування включає декодування з SPS першого масиву елементів синтаксису; і
при цьому використання першого елемента синтаксису включає виконання процесу виштовхування, який спустошує один або більше буферів зберігання картинок DPB, коли поточна картинка не є картинкою IDR або картинкою BLA, і кількість картинок в DPB вказана першим елементом синтаксису.
6. Спосіб за п. 2,
при цьому виконання процесу декодування включає декодування з SPS першого масиву перших елементів синтаксису, і
при цьому кількість буферів зберігання картинок в DPB вказана першим елементом синтаксису.
7. Спосіб за п. 2,
при цьому виконання процесу декодування включає:
декодування, з SPS, активного для поточної картинки, першого масиву елементів синтаксису;
декодування, з SPS, активного для попередньої картинки, четвертого масиву елементів синтаксису, при цьому кожен елемент синтаксису в четвертому масиві елементів синтаксису вказує максимальний необхідний розмір DPB згаданого HRD; i
визначення, на основі найвищого часового ідентифікатора, четвертого елемента синтаксису в четвертому масиві; і
при цьому використання першого елемента синтаксису включає, коли поточна картинка є картинкою IDR або картинкою BLA і значення, вказане першим елементом синтаксису, є відмінним від значення, вказаного четвертим елементом синтаксису, логічне виведення значення п'ятого елемента синтаксису незалежно від значення, вказаного п'ятим елементом синтаксису, при цьому п'ятий елемент синтаксису задає, як раніше декодовані картинки в DPB обробляються після декодування картинки IDR або картинки BLA.
8. Спосіб за п. 2,
при цьому виконання процесу декодування включає декодування синтаксичної структури параметрів HRD, яка включає в себе вибраний набір параметрів HRD, при цьому вибраний набір параметрів HRD включає в себе третій масив елементів синтаксису; і
при цьому використання третього елемента синтаксису включає визначення, на основі, щонайменше частково, індексу вибору планувальника в діапазоні від 0 до значення третього елемента синтаксису, початкової затримки видалення з СРВ для СРВ в HRD.
9. Спосіб за п. 2,
при цьому виконання процесу декодування додатково включає декодування з SPS першого масиву елементів синтаксису; і
при цьому використання першого елемента синтаксису включає визначення, на основі, щонайменше частково, того, чи є кількість декодованих картинок в DPB меншою ніж або дорівнює максимуму з 0 і значення, вказаного першим елементом синтаксису мінус 1, чи відповідає потік бітів стандарту кодування відео.
10. Пристрій для обробки відеоданих, причому пристрій містить один або більше процесорів, сконфігурованих для:
виконання операції гіпотетичного еталонного декодера (HRD), при цьому операція HRD визначає відповідність потоку бітів, що містить закодовані відеодані, стандарту кодування відео, або визначає відповідність відеодекодера стандарту кодування відео, при цьому один або більше процесорів сконфігуровані так, що як частина виконання операції HRD один або більше процесорів:
вибирають робочу точку, що піддається тесту, при цьому найвищий часовий ідентифікатор піднабору потоку бітів, асоційованого з робочою точкою, яку піддають тесту, є меншим, ніж найбільший часовий ідентифікатор, присутній в потоці бітів, або цільовий набір ідентифікаторів рівня піднабору потоку бітів не включає в себе всі значення елементів синтаксису ідентифікатора рівня потоку бітів;
визначають, на основі найвищого часового ідентифікатора, перший елемент синтаксису з числа першого масиву елементів синтаксису в потоці бітів, відповідні елементи синтаксису в першому масиві елементів синтаксису задають, для відповідних значень найвищого часового ідентифікатора, максимальний необхідний розмір буфера декодованих картинок (DPB);
визначають, на основі найвищого часового ідентифікатора, другий елемент синтаксису з числа другого масиву елементів синтаксису в потоці бітів, відповідні елементи синтаксису в другому масиві елементів синтаксису задають, для відповідних значень найвищого часового ідентифікатора, максимальну дозволену кількість картинок, що передують будь-якій картинці в порядку декодування і ідуть за цією картинкою в порядку виведення;
визначають, на основі найвищого часового ідентифікатора, третій елемент синтаксису з числа третього масиву елементів синтаксису в потоці бітів, відповідні елементи синтаксису в третьому масиві елементів синтаксису задають, для відповідних значень найвищого часового ідентифікатора, кількості мінус 1 альтернативних специфікацій буфера кодованих картинок (СРВ) в потоці бітів; і використовують згадані перший, другий і третій елементи синтаксису в операції HRD.
11. Пристрій за п. 10, при цьому, коли один або більше процесорів виконують операцію HRD, згадані один або більше процесорів:
вибирають робочу точку, що піддається тесту;
визначають цільовий набір ідентифікаторів рівня для робочої точки, яку піддають тесту, і найвищий часовий ідентифікатор;
вибирають набір параметрів HRD, які можна застосувати до робочої точки, яку піддають тесту;
використовують вибраний набір параметрів HRD, щоб конфігурувати HRD, який виконує процес декодування; і
виконують процес декодування.
12. Пристрій за п. 11,
при цьому, коли один або більше процесорів виконують процес декодування, згадані один або більше процесорів декодують, з набору параметрів послідовності (SPS), перший масив елементів синтаксису; і
при цьому, коли один або більше процесорів використовують перший елемент синтаксису, згадані один або більше процесорів визначають, що потік бітів не знаходиться у відповідності зі стандартом кодування відео, коли значення, вказане першим елементом синтаксису, більше, ніж максимальний розмір DPB.
13. Пристрій за п. 11,
при цьому, коли один або більше процесорів виконують процес декодування, згадані один або більше процесорів декодують, з SPS, перший масив елементів синтаксису; і
при цьому, коли один або більше процесорів використовують перший елемент синтаксису, згадані один або більше процесорів виконують процес виштовхування, який спустошує один або більше буферів зберігання картинок DPB, коли поточна картинка не є картинкою миттєвого оновлення декодування (IDR) або картинкою доступу з розірваним посиланням (BLA), і кількість картинок в DPB, помічених як необхідні для виведення, більше, ніж значення, вказане першим елементом синтаксису.
14. Пристрій за п. 11,
при цьому, коли один або більше процесорів виконують процес декодування, згадані один або більше процесорів декодують, з SPS, перший масив елементів синтаксису; і
при цьому, коли один або більше процесорів використовують перший елемент синтаксису, згадані один або більше процесорів виконують процес виштовхування, який спустошує один або більше буферів зберігання картинок DPB, коли поточна картинка не є картинкою IDR або картинкою BLA, і кількість картинок в DPB вказана першим елементом синтаксису.
15. Пристрій за п. 11,
при цьому, коли один або більше процесорів виконують процес декодування, згадані один або більше процесорів декодують, з SPS, перший масив елементів синтаксису, і
при цьому кількість буферів зберігання картинок в DPB вказана першим елементом синтаксису.
16. Пристрій за п. 11,
при цьому, коли один або більше процесорів виконують процес декодування, згадані один або більше процесорів:
декодують, з SPS, активного для поточної картинки, перший масив елементів синтаксису;
декодують, з SPS, активного для попередньої картинки, четвертий масив елементів синтаксису, при цьому кожен елемент синтаксису в четвертому масиві елементів синтаксису вказує максимальний необхідний розмір DPB згаданого HRD; i
визначають, на основі найвищого часового ідентифікатора, четвертий елемент синтаксису в четвертому масиві; і
при цьому, коли згадані один або більше процесорів використовують перший елемент синтаксису, згадані один або більше процесорів логічно виводять, коли поточна картинка є картинкою IDR або картинкою BLA, і значення, вказане першим елементом синтаксису, є відмінним від значення, вказаного четвертим елементом синтаксису, значення п'ятого елемента синтаксису незалежно від значення, вказаного п'ятим елементом синтаксису, при цьому п'ятий елемент синтаксису задає, як раніше декодовані картинки в DPB обробляються після декодування картинки IDR або картинки BLA.
17. Пристрій за п. 11,
при цьому, коли один або більше процесорів виконують процес декодування, згадані один або більше процесорів декодують синтаксичну структуру параметрів HRD, яка включає в себе вибраний набір параметрів HRD, при цьому вибраний набір параметрів HRD включає в себе третій масив елементів синтаксису; і
при цьому, коли один або більше процесорів використовують третій елемент синтаксису, згадані один або більше процесорів визначають, на основі, щонайменше частково, індексу вибору планувальника в діапазоні від 0 до значення третього синтаксичного елемента, початкову затримку видалення з СРВ для СРВ в HRD.
18. Пристрій за п. 11,
при цьому, коли один або більше процесорів виконують процес декодування, згадані один або більше процесорів декодують, з SPS, перший масив елементів синтаксису; і
при цьому, коли один або більше процесорів використовують перший елемент синтаксису, згадані один або більше процесорів визначають, на основі, щонайменше частково, того, чи є кількість декодованих картинок в DPB меншою ніж дорівнює максимуму з 0 і значення, вказаного першим елементом синтаксису мінус 1, чи відповідає потік бітів стандарту кодування відео.
19. Пристрій для обробки відеоданих, що містить:
засіб для виконання операції гіпотетичного еталонного декодера (HRD), при цьому операція HRD визначає відповідність потоку бітів, що містить закодовані відеодані, стандарту кодування відео, або визначає відповідність відеодекодера стандарту кодування відео, при цьому засіб для виконання операції HRD містить:
засіб для вибору робочої точки, яку піддають тесту, при цьому найвищий часовий ідентифікатор піднабору потоку бітів, асоційованого з робочою точкою, яку піддають тесту, є меншим, ніж найбільший часовий ідентифікатор, присутній в потоці бітів, або цільовий набір ідентифікаторів рівня піднабору потоку бітів не включає в себе всі значення елементів синтаксису ідентифікатора рівня потоку бітів;
засіб для визначення, на основі найвищого часового ідентифікатора, першого елемента синтаксису з числа першого масиву елементів синтаксису в потоці бітів, відповідні елементи синтаксису в першому масиві елементів синтаксису задають, для відповідних значень найвищого часового ідентифікатора, максимальний необхідний розмір буфера декодованих картинок (DPB);
засіб для визначення, на основі найвищого часового ідентифікатора, другого елемента синтаксису з числа другого масиву елементів синтаксису в потоці бітів, відповідні елементи синтаксису в другому масиві елементів синтаксису задають, для відповідних значень найвищого часового ідентифікатора, максимально дозволену кількість картинок, що передують будь-якій картинці в порядку декодування і ідуть за цією картинкою в порядку виведення;
засіб для визначення, на основі найвищого часового ідентифікатора, третього елемента синтаксису з числа третього масиву елементів синтаксису в потоці бітів, відповідні елементи синтаксису в третьому масиві елементів синтаксису задають, для відповідних значень найвищого часового ідентифікатора, кількості мінус 1 альтернативних специфікацій буфера кодованих картинок (СРВ) в потоці бітів; і
засіб для використання згаданих першого, другого і третього елементів синтаксису в операції HRD.
20. Зчитуваний комп'ютером запам'ятовуючий носій, який зберігає інструкції, які, коли виконуються одним або більше процесорами пристрою, конфігурують згаданий пристрій, щоб виконати операцію гіпотетичного еталонного декодера (HRD), при цьому операція HRD визначає відповідність потоку бітів, що містить закодовані відеодані, стандарту кодування відео, або визначає відповідність відеодекодера стандарту кодування відео, при цьому виконання інструкцій конфігурує один або більше процесорів так, що як частину виконання операції HRD один або більше процесорів:
вибирають робочу точку, що піддається тесту, при цьому найвищий часовий ідентифікатор піднабору потоку бітів, асоційованого з робочою точкою, яку піддають тесту, є меншим, ніж найбільший часовий ідентифікатор, присутній в потоці бітів, або цільовий набір ідентифікаторів рівня піднабору потоку бітів не включає в себе всі значення елементів синтаксису ідентифікатора рівня потоку бітів;
визначають, на основі найвищого часового ідентифікатора, перший елемент синтаксису з числа першого масиву елементів синтаксису в потоці бітів, відповідні елементи синтаксису в першому масиві елементів синтаксису задають, для відповідних значень найвищого часового ідентифікатора, максимальний необхідний розмір буфера декодованих картинок (DPB);
визначають, на основі найвищого часового ідентифікатора, другий елемент синтаксису з числа другого масиву елементів синтаксису в потоці бітів, відповідні елементи синтаксису в другому масиві елементів синтаксису задають, для відповідних значень найвищого часового ідентифікатора, максимальну дозволену кількість картинок, що передують будь-якій картинці в порядку декодування і ідуть за цією картинкою в порядку виведення;
визначають, на основі найвищого часового ідентифікатора, третій елемент синтаксису з числа третього масиву елементів синтаксису в потоці бітів, відповідні елементи синтаксису в третьому масиві елементів синтаксису задають, для відповідних значень найвищого часового ідентифікатора, кількості мінус 1 альтернативних специфікацій буфера кодованих картинок (СРВ) в потоці бітів; і
використовують згадані перший, другий і третій елементи синтаксису в операції HRD.
Текст
Реферат: Пристрій виконує операцію гіпотетичного опорного декодера (HRD), яка визначає відповідність потоку бітів стандарту кодування відео або визначає відповідність відеодекодера стандарту кодування відео. Як частину виконання операції HRD, пристрій визначає найвищий часовий ідентифікатор піднабору потоку бітів, асоційованого з вибраною робочою точкою потоку бітів. Крім того, як частину операції HRD, пристрій визначає, на основі найвищого часового ідентифікатора, конкретний елемент синтаксису з числа масиву елементів синтаксису. Пристрій потім використовує конкретний елемент синтаксису в операції HRD. UA 113334 C2 (12) UA 113334 C2 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 60 [0001] Дана заявка вимагає пріоритет попередньої заявки на патент США № 61/705,102, поданої 24 вересня 2012, весь вміст якої включений тут по посиланню. ГАЛУЗЬ ТЕХНІКИ [0002] Дане розкриття стосується кодування і декодування відео (тобто кодування і/або декодування відеоданих). РІВЕНЬ ТЕХНІКИ [0003] Цифрові здатності відео можуть бути включені в широкий діапазон пристроїв, включаючи цифрові телевізори, цифрові системи прямого мовлення, бездротові системи мовлення, персональні цифрові помічники (PDAs), ноутбуки або настільні комп'ютери, планшетні комп'ютери, зчитувачі електронних книг, цифрові камери, пристрої цифрового запису, цифрові медіаплеєри, пристрої відеоігор, пульти відеоігор, стільникові або супутникові радіотелефони, так звані "смартфони", пристрої організації відеотелеконференцій, пристрої потокової передачі відео і т. п. Цифрові відеопристрої реалізовують способи стиснення відео, такі, як описані в стандартах, визначених за допомогою MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Частина 10, Вдосконалене відеокодування (AVC), стандарт високоефективного кодування відео (HEVC), що розвивається на даний час, і розширеннях таких стандартів. Відеопристрої можуть передавати, приймати, кодувати, декодувати і/або зберігати цифрову відеоінформацію більш ефективно, реалізовуючи такі способи стиснення відео. [0004] Способи стиснення відео виконують просторове (всередині картинки) прогнозування і/або часове (між картинками) прогнозування, щоб зменшити або видалити надмірність, властиву відеопослідовностям. Для основаного на блоках кодування відео, відеовирізка (тобто відеокадр або частина відеокадру) може бути розділена на блоки відео. Блоки відео у кодованій внутрішньо (I) вирізці картинки кодують, використовуючи просторове прогнозування відносно опорних вибірок в сусідніх блоках в тій же самій картинці. Блоки відео у кодованій зовнішньо (Р або В) вирізці картинки можуть використовувати просторове прогнозування відносно опорних вибірок в сусідніх блоках в тій же самій картинці або часове прогнозування відносно опорних вибірок в інших опорних картинках. Картинки можуть згадуватися як кадри, і опорні картинки можуть згадуватися як опорні кадри. [0005] Просторове або часове прогнозування приводить до прогнозуючого блока для блока, який повинен бути закодований. Залишкові дані представляють пікселні різниці між первинним блоком, який повинен бути закодований, і прогнозуючим блоком. Кодований зовнішньо блок кодують згідно з вектором руху, який вказує на блок опорних вибірок, що формують прогнозуючий блок, і залишкові дані вказують відмінність між закодованим блоком і прогнозуючим блоком. Кодований внутрішньо блок кодують згідно з режимом внутрішнього кодування і залишковими даними. Для подальшого стиснення залишкові дані можуть бути перетворені з пікселної області в область перетворення, приводячи до залишкових коефіцієнтів, які потім можуть бути квантовані. Квантовані коефіцієнти, спочатку розміщені в двовимірному масиві, можуть скануватися, щоб сформувати одновимірний вектор коефіцієнтів, і ентропійне кодування може бути застосоване, щоб досягнути навіть більшої міри стиснення. [0006] Потік бітів кодування множинних видів може бути згенерований за допомогою кодування видів, наприклад, з множинних перспектив. Були розвинені деякі стандарти тривимірного (3D) відео, які використовують кодування аспектів множинних видів. Наприклад, різні види можуть передати види лівого і правого очей, щоб підтримувати 3D-відео. Альтернативно, деякі процеси кодування 3D-відео можуть застосовувати так зване кодування множинних видів плюс глибина. У кодуванні множинних видів плюс глибина потік бітів 3D-відео може містити не тільки компоненти виду текстури, але також і компоненти виду глибини. Наприклад, кожний вид може містити один компонент виду текстури і один компонент виду глибини. СУТЬ ВИНАХОДУ [0007] Загалом дане розкриття описує сигналізацію і вибір параметрів гіпотетичного опорного декодера (HRD) при кодуванні відео. Більш конкретно, пристрій виконує операцію гіпотетичного опорного декодера (HRD), яка визначає відповідність потоку бітів стандарту кодування відео або визначає відповідність відеодекодера стандарту кодування відео. Як частину виконання операції HRD, пристрій визначає найвищий часовий ідентифікатор піднабору потоку бітів, асоційованого з вибраною робочою точкою потоку бітів. Крім того, як частину операції HRD, пристрій визначає, на основі найвищого часового ідентифікатора, конкретний елемент синтаксису з числа масиву елементів синтаксису. Пристрій потім використовує цей конкретний елемент синтаксису в операції HRD. [0008] У одному прикладі дане розкриття описує спосіб обробки відеоданих. Спосіб включає виконання операції HRD. Операція HRD визначає відповідність потоку бітів стандарту 1 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 60 кодування відео або визначає відповідність відеодекодера стандарту кодування відео. Виконання операції HRD включає визначення найвищого часового ідентифікатора піднабору потоку бітів, асоційованого з вибраною робочою точкою потоку бітів. Виконання операції HRD також включає визначення, на основі найвищого часового ідентифікатора, конкретного елемента синтаксису з числа масиву елементів синтаксису. Крім того, виконання операції HRD включає використання конкретного елемента синтаксису в операції HRD. [0009] У іншому прикладі дане розкриття описує пристрій, який містить один або більше процесорів, сконфігурованих, щоб виконати операцію HRD. Операція HRD визначає відповідність потоку бітів стандарту кодування відео або визначає відповідність відеодекодера стандарту кодування відео. Виконання операції HRD включає визначення найвищого часового ідентифікатора піднабору потоку бітів, асоційованого з вибраною робочою точкою потоку бітів. Виконання операції HRD також включає визначення, на основі найвищого часового ідентифікатора, конкретного елемента синтаксису з числа масиву елементів синтаксису. Крім того, виконання операції HRD включає використання конкретного елемента синтаксису в операції HRD. [0010] У іншому прикладі дане розкриття описує пристрій, який містить засіб для того, щоб виконати операцію HRD. Операція HRD визначає відповідність потоку бітів стандарту кодування відео або визначає відповідність відеодекодера стандарту кодування відео. Виконання операції HRD включає визначення найвищого часового ідентифікатора піднабору потоку бітів, асоційованого з вибраною робочою точкою потоку бітів. Виконання операції HRD також включає визначення, на основі найвищого часового ідентифікатора, конкретного елемента синтаксису з числа масиву елементів синтаксису. Крім того, виконання операції HRD включає використання конкретного елемента синтаксису в операції HRD. [0011] У іншому прикладі дане розкриття описує зчитуваний комп'ютером запам'ятовуючий носій, що має інструкції, збережені на ньому, які, коли виконуються одним або більше процесорами пристрою, конфігурують цей пристрій, щоб виконати операцію HRD. Операція HRD визначає відповідність потоку бітів стандарту кодування відео або визначає відповідність відеодекодера стандарту кодування відео. Виконання операції HRD включає визначення найвищого часового ідентифікатора піднабору потоку бітів, асоційованого з вибраною робочою точкою потоку бітів. Крім того, виконання операції HRD включає визначення, на основі найвищого часового ідентифікатора, конкретного елемента синтаксису з числа масиву елементів синтаксису. Крім того, виконання операції HRD включає використання конкретного елемента синтаксису в операції HRD. [0012] Подробиці одного або більше прикладів розкриття сформульовані в супровідних кресленнях і описі нижче. Інші ознаки, задачі і переваги будуть очевидні з опису, креслень і формули винаходу. КОРОТКИЙ ОПИС КРЕСЛЕНЬ [0013] Фіг. 1 є блок-схемою, що ілюструє зразкову систему кодування відео, яка може використовувати способи, описані в даному розкритті. [0014] Фіг. 2 є блок-схемою, що ілюструє зразковий кодер відео, який може реалізувати способи, описані в даному розкритті. [0015] Фіг. 3 є блок-схемою, що ілюструє зразковий декодер відео, який може реалізувати способи, описані в даному розкритті. [0016] Фіг. 4 є послідовністю операцій, що ілюструє зразкову операцію пристрою, відповідно до одного або більше способів даного розкриття. [0017] Фіг. 5 є послідовністю операцій, що ілюструє зразкову операцію пристрою, відповідно до одного або більше способів даного розкриття. [0018] Фіг. 6 є послідовністю операцій, що ілюструє зразкову операцію гіпотетичного опорного декодера (HRD) пристрою, відповідно до одного або більше способів даного розкриття. ДОКЛАДНИЙ ОПИС [0019] Відеокодер може генерувати потік бітів, який включає в себе закодовані відеодані. Потік бітів може містити послідовність одиниць рівня абстракції мережі (NAL). Одиниці NAL потоку бітів можуть включати в себе рівень кодування відео (VCL) одиниці NAL і одиниці NAL не-VCL. Одиниці NAL VCL можуть включати в себе закодовані вирізки картинок. Одиниця NAL не-VCL може включати в себе набір параметрів відео (VPS), набір параметрів послідовності (SPS), набір параметрів картинки (PPS), додаткову інформацію розширення (SEI) або інші типи даних. VPS є синтаксичною структурою, яка може містити елементи синтаксису, які застосовуються до нуля або більше закодованих відеопослідовностей повністю. SPS є синтаксичною структурою, яка може містити елементи синтаксису, які застосовуються до нуля 2 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 60 або більше закодованих відеопослідовностей повністю. Єдиний VPS може бути застосовним до множинних SPS. PPS є синтаксичною структурою, яка може містити елементи синтаксису, які застосовуються до нуля або більше закодованих картинок повністю. Єдиний SPS може бути застосовним до множинних PPS. Різні аспекти VPS, SPS і PPS можуть бути сформовані, загалом, як визначено по стандарту HEVC. [0020] Пристрій, такий як пристрій мережі доставки вмісту (CDN), повідомлений про медіамережевий елемент (MANE), або відеодекодер може витягнути підпотік бітів з потоку бітів. Пристрій може виконати процес витягання підпотоку бітів, видаляючи деякі одиниці NAL з потоку бітів. Результуючий підпотік бітів включає в себе невидалені одиниці NAL потоку бітів, що залишилися. Як приклади, відеодані, декодовані з підпотоку бітів, можуть мати більш низьку частоту кадрів і/або можуть представити менше видів, ніж первинний потік бітів. [0021] Стандарти кодування відео можуть включати в себе різні ознаки, щоб підтримувати процес витягання підпотоку бітів. Наприклад, відеодані потоку бітів можуть бути розділені на набір рівнів. Для кожного з рівнів дані в більш низькому рівні можуть бути декодовані незалежно від даних в будь-якому більш високому рівні. Індивідуальна одиниця NAL тільки інкапсулює дані єдиного рівня. Таким чином, одиниці NAL, що інкапсулюють дані найвищого рівня, що залишається, потоку бітів можуть бути видалені з потоку бітів, не зачіпаючи декодовність даних в більш низьких рівнях, що залишилися, потоку бітів. При масштабованому кодуванні відео (SVC) більш високі рівні можуть включати в себе дані розширення, які поліпшують якість картинок в більш низьких рівнях (масштабованість якості), збільшують просторовий формат картинок в більш низьких рівнях (просторова масштабованість) або збільшують часову швидкість передачі картинок в більш низьких рівнях (часова масштабованість). У кодуванні множинних видів (MVC) і кодуванні тривимірного відео (3DV) більш високі рівні можуть включати в себе додаткові види. [0022] Одиниці NAL можуть включати в себе заголовки і корисні дані. Заголовки одиниць NAL включають в себе елементи синтаксису nuh_reserved_zero_6bits. Елемент синтаксису nuh_reserved_zero_6bits одиниці NAL дорівнює 0, якщо одиниця NAL належить до базового рівня при кодуванні множинних видів, кодуванні 3DV або SVC. Дані в базовому рівні потоку бітів можуть бути декодовані незалежно від даних в будь-якому іншому рівні потоку бітів. Якщо одиниця NAL не належить до базового рівня при кодуванні множинних видів, 3DV або SVC, елемент синтаксису nuh_reserved_zero_6bits може мати ненульове значення. Зокрема, якщо одиниця NAL не належить до базового рівня при кодуванні множинних видів, 3DV або SVC, елемент синтаксису nuh_reserved_zero_6bits одиниці NAL задає ідентифікатор рівня одиниці NAL. [0023] Крім того, деякі картинки в межах рівня можуть бути декодовані незалежно від інших картинок в межах того ж самого рівня. Таким чином, одиниці NAL, що інкапсулюють дані деяких картинок рівня, можуть бути видалені з потоку бітів, не зачіпаючи декодовність інших картинок в цьому рівні. Наприклад, картинки з парним значенням рахунку по порядку картинки (POC) можуть бути декодованими незалежно від картинок з непарними значеннями POC. Видалення одиниць NAL, що інкапсулюють дані таких картинок, може зменшити частоту кадрів потоку бітів. Піднабір картинок в межах рівня, який може бути декодований незалежно від інших картинок в межах цього рівня, може бути згаданий тут як підрівень. [0024] Одиниці NAL можуть включати в себе елементи синтаксису temporal_id. Елемент синтаксису temporal_id одиниці NAL визначає часовий ідентифікатор одиниці NAL. Якщо часовий ідентифікатор першої одиниці NAL менше, ніж часовий ідентифікатор другої одиниці NAL, дані, інкапсульовані першою одиницею NAL, можуть бути декодовані незалежно від даних, інкапсульованих другою одиницею NAL. [0025] Кожна робоча точка потоку бітів асоційована з набором ідентифікаторів рівня (тобто набором значень nuh_reserved_zero_6bits) і часовим ідентифікатором. Набір ідентифікаторів рівня може бути позначений як OpLayerIdSet, і часовий ідентифікатор може бути позначений як TemporalID. Якщо ідентифікатор рівня одиниці NAL знаходиться в наборі ідентифікаторів рівня робочої точки, і часовий ідентифікатор одиниці NAL менше ніж або дорівнює часовому ідентифікатору робочої точки, одиниця NAL асоційована з цією робочою точкою. Представленням робочої точки є піднабір потоку бітів, який асоційований з робочою точкою. Представлення робочої точки може включати в себе кожну одиницю NAL, яка асоційована з робочою точкою. Представлення робочої точки не включає в себе одиниці NAL VCL, які не асоційовані з робочою точкою. [0026] Зовнішнє джерело може задавати набір цільових ідентифікаторів рівня для робочої точки. Наприклад, пристрій, такий як пристрій CDN або MANE, може задавати набір цільових ідентифікаторів рівня. У цьому прикладі пристрій може використовувати набір цільових 3 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 60 ідентифікаторів рівня, щоб ідентифікувати робочу точку. Пристрій може потім витягнути представлення робочої точки для робочої точки і відправити представлення робочої точки замість первинного потоку бітів до клієнтського пристрою. Витягання і відправлення представлення робочої точки клієнтському пристрою можуть зменшити частоту проходження бітів потоку бітів. [0027] Крім того, стандарти кодування відео задають моделі буферизації відео. Модель буферизації відео може також згадуватися як "гіпотетичний опорний декодер" або "HRD". HRD описує, як дані повинні бути буферизовані для декодування і як декодовані дані буферизуються для виведення. Наприклад, HRD описує операцію буфера кодованих картинок ("CPB") і буфера декодованих картинок ("DPB") у відеодекодері. CPB є буфером "перший увійшов - перший вийшов", що містить одиниці доступу в порядку декодування, заданому за допомогою HRD. DPB є буфером, що зберігає декодовані картинки для посилання, переупорядковування виведення або затримки виведення, заданих за допомогою HRD. [0028] Відеокодер може сигналізувати набір параметрів HRD. Параметри HRD керують різними аспектами HRD. Параметри HRD включають в себе початкову затримку видалення з CPB, розмір CPB, частоту проходження бітів, початкову затримку виведення з DPB і розмір DPB. Ці параметри HRD закодовані в синтаксичній структурі hrd_parameters(), заданій в VPS і/або SPS. Параметри HRD можуть також бути задані в повідомленні додаткової інформації розширення (SEI) періоду буферизації або повідомленні SEI тактування картинок. [0029] Як пояснено вище, представлення робочої точки може мати іншу частоту кадрів і/або частоту проходження бітів, ніж первинний потік бітів. Це має місце тому, що представлення робочої точки може не включати в себе деякі картинки і/або деякі з даних первинного потоку бітів. Отже, якщо відеодекодер повинен був видалити дані з CPB і/або DPB при конкретній швидкості передачі при обробці первинного потоку бітів і якщо відеодекодер повинен був видалити дані з CPB і/або DPB при одній і тій же швидкості передачі при обробці представлення робочої точки, відеодекодер може видалити дуже багато або дуже мало даних з CPB і/або DPB. Відповідно, відеокодер може сигналізувати різні набори параметрів HRD для різних робочих точок. У стандарті високоефективного кодування відео (HEVC), що розвивається, відеокодер може сигналізувати набори параметрів HRD в VPS або відеокодер може сигналізувати набори параметрів HRD в SPS. Проект стандарту HEVC, що розвивається, названого "HEVC, Робочий Проект 8", описаний в Bross et al., "High Efficiency Video Coding (HEVC) text specification draft 8", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC th JTC1/SC29/WG11, 10 Meeting, Stockholm, Sweden, липень 2012 року, який з 8 травня 2013 року доступний за адресою http://phenix.intevry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip. [0030] У деяких версіях HEVC тільки набори параметрів HRD в VPS вибирають для операцій HRD. Таким чином, хоч параметри HRD можуть бути надані в SPS, набори параметрів HRD в SPS не вибирають відеодекодерами HEVC для операцій HRD. Відеодекодери завжди синтаксично розбирають і декодують VPS потоку бітів. Отже, відеодекодери завжди синтаксично розбирають і декодують набори параметрів HRD для VPS. Це вірно незалежно від того, чи включає потік бітів в себе одиниці NAL небазового рівня. Отже, якщо потік бітів включає в себе одиниці NAL небазового рівня, може бути витратою обчислювальних ресурсів синтаксично розбирати і оперувати з наборами параметрів HRD в SPS. Крім того, якщо набори параметрів HRD присутні в VPS, набори параметрів HRD в SPS можуть бути витраченими даремно бітами. [0031] Згідно зі способами даного розкриття, відеокодер може генерувати потік бітів, який включає в себе SPS, який застосовний до послідовності картинок. SPS включає в себе набір параметрів HRD. Набір параметрів HRD застосовний до кожної робочої точки потоку бітів, який має набір ідентифікаторів рівня, які відповідають набору цільових ідентифікаторів рівня. Таким чином, набори параметрів HRD в SPS не витрачаються даремно, а замість цього можуть використовуватися для операцій HRD. Наприклад, пристрій може вибрати, з числа набору параметрів HRD в VPS і набору параметрів HRD в SPS, набір параметрів HRD, застосовних до конкретної робочої точки. Пристрій може виконувати, на основі, щонайменше частково, набору параметрів HRD, застосовних до конкретної робочої точки, тест відповідності потоку бітів, який перевіряє, чи відповідає піднабір потоку бітів, асоційований з конкретною робочою точкою, стандарту кодування відео. [0032] Пристрій, такий як відеокодер, відеодекодер або інший тип пристрою, такий як пристрій CDN або MANE, може виконати тест відповідності потоку бітів відносно представлення робочої точки для робочої точки. Тест відповідності потоку бітів може верифікувати, що представлення робочої точки відповідає стандарту кодування відео, такому як HEVC. Як 4 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 60 згадано вище, набір цільових ідентифікаторів рівня і часовий ідентифікатор можуть бути використані для ідентифікації робочої точки. Набір цільових ідентифікаторів рівня може бути позначений як "TargetDecLayerIdSet". Часовий ідентифікатор може бути позначений як "TargetDecHighestTid". Проблематично, Working Draft 8 HEVC не задає, як TargetDecLayerIdSet або TargetDecHighestTid встановлюється, виконуючи тест відповідності потоку бітів. [0033] Відповідно до одного або більше способів даного розкриття, пристрій може виконати процес декодування як частину виконання тесту відповідності потоку бітів. Виконання процесу декодування включає виконання процесу витягання потоку бітів, щоб декодувати з потоку бітів представлення робочої точки для робочої точки, визначеної цільовим набором ідентифікаторів рівня, і цільовий найвищий часовий ідентифікатор. Цільовий набір ідентифікаторів рівня (тобто TargetDecLayerIdSet) містить значення елементів синтаксису ідентифікатора рівня (наприклад, елементи синтаксису nuh_reserved_zero_6bits), присутні в представленні робочої точки. Цільовий набір ідентифікаторів рівня є піднабором значень елементів синтаксису ідентифікатора рівня потоку бітів. Цільовий найвищий часовий ідентифікатор (тобто TargetDecHighestTid) дорівнює найбільшому часовому ідентифікатору, присутньому в представленні робочої точки. Цільовий найвищий часовий ідентифікатор менше ніж або дорівнює найбільшому часовому ідентифікатору, присутньому в потоці бітів. Виконання процесу декодування може також включати декодування одиниць NAL представлення робочої точки. [0034] У HEVC SPS може включати в себе масив елементів синтаксису, позначених як sps_max_dec_pic_buffering[i], де i ранжується від 0 до максимальної кількості часових рівнів в потоці бітів. sps_max_dec_pic_buffering[i] вказує максимальний необхідний розмір DPB, коли найвищий часовий ідентифікатор (HighestTid) дорівнює i. sps_max_dec_pic_buffering[i] вказує необхідний розмір в термінах одиниць буферів зберігання картинок. [0035] Крім того, в HEVC, SPS може включати в себе масив елементів синтаксису, позначений як sps_max_num_reorder_pics[i], де i ранжується від 0 до максимальної кількості часових рівнів в потоці бітів. sps_max_num_reorder_pics[i] вказує максимальну дозволену кількість картинок, попередніх будь-якій картинці в порядку декодування і наступних за цією картинкою в порядку виведення, коли найвищий часовий ідентифікатор (HighestTid) дорівнює i. [0036] У HEVC набір параметрів HRD може включати в себе масив елементів синтаксису, позначений cpb_cnt_minus1[i], де i ранжується від 0 до максимальної кількості часових рівнів в потоці бітів. cpb_cnt_minus1[i] задає кількість альтернативних специфікацій CPB в потоці бітів закодованої відеопослідовності, коли найвищий часовий ідентифікатор (HighestTid) дорівнює i, в якому одна альтернативна специфікація CPB належить до однієї конкретної операції CPB з конкретним набором параметрів CPB. [0037] У HEVC Working Draft 8, sps_max_dec_pic_buffering[i], sps_max_num_reorder_pics[i] і cpb_cnt_minus1[i] належним чином не вибираються в операціях HRD, операціях відповідності (узгодження) потоку бітів і обмеженнях рівня. Це, щонайменше частково, є наслідком того, що HEVC Working Draft 8 не задає те, що мається на увазі під найвищим часовим ідентифікатором (HighestTid). [0038] Відповідно до одного або більше способів даного розкриття, пристрої, такі як відеокодер, відеодекодер або інший пристрій, можуть визначити найвищий часовий ідентифікатор піднабору потоку бітів, асоційованого з вибраною робочою точкою потоку бітів. Крім того, пристрій може визначити, на основі найвищого часового ідентифікатора, конкретний елемент синтаксису з числа масиву елементів синтаксису (наприклад, sps_max_dec_pic_buffering[], sps_max_num_reorder_pics[] або cpb_cnt_minus1[]). Пристрій може виконати операцію, яка використовує цей конкретний елемент синтаксису, щоб визначити відповідність потоку бітів стандарту кодування відео або визначити відповідність відеодекодера стандарту кодування відео. [0039] Фіг. 1 є блок-схемою, що ілюструє зразкову систему 10 кодування відео, яка може використовувати способи даного розкриття. Як використовується в даному описі, термін "відеокодер" стосується загалом і кодерів відео і декодерів відео. У даному розкритті терміни "кодування відео" або "кодування" можуть стосуватися загалом кодування відео або декодування відео. [0040] Як показано на фіг. 1, система 10 кодування відео включає в себе вихідний пристрій 12 і пристрій 14 призначення. Вихідний пристрій 12 генерує закодовані відеодані. Відповідно, вихідний пристрій 12 може згадуватися як пристрій кодування відео або апарат кодування відео. Пристрій 14 призначення може декодувати закодовані відеодані, генеровані вихідним пристроєм 12. Відповідно, пристрій 14 призначення може згадуватися як пристрій декодування відео або апарат декодування відео. Вихідний пристрій 12 і пристрій 14 призначення можуть бути прикладами пристроїв кодування відео або апаратів кодування відео. 5 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 [0041] Вихідний пристрій 12 і пристрій 14 призначення можуть містити широкий діапазон пристроїв, включаючи настільні комп'ютери, мобільні обчислювальні пристрої, портативні (наприклад, ноутбук) комп'ютери, планшетні комп'ютери, телевізійні приставки, телефонні трубки, такі як так звані "смарт"-телефони, телевізори, камери, пристрої відображення, цифрові медіаплеєри, пульти відеоігор, комп'ютери, що знаходяться всередині автомобіля, або подібні. [0042] Пристрій 14 призначення може прийняти закодовані відеодані від вихідного пристрою 12 через канал 16. Канал 16 може містити один або більше носіїв і пристроїв, здатних до переміщення закодованих відеоданих від вихідного пристрою 12 до пристрою 14 призначення. У одному прикладі канал 16 може містити один або більше комунікаційних носіїв, які дозволяють вихідному пристрою 12 передати закодовані відеодані безпосередньо до пристрою 14 призначення в реальному часі. У цьому прикладі вихідний пристрій 12 може модулювати закодовані відеодані згідно зі стандартом зв'язку, таким як протокол бездротового зв'язку, і може передати модульовані відеодані до пристрою 14 призначення. Один або більше комунікаційних носіїв можуть включати в себе бездротові і/або дротові комунікаційні носії, такі як радіочастотний (RF) спектр або одна або більше фізичних ліній передачі. Один або більше комунікаційних носіїв можуть бути частиною основаної на пакетній передачі мережі, такої як локальна мережа, регіональна мережа або глобальна мережа (наприклад, Інтернет). Один або більше комунікаційних носіїв можуть включати в себе маршрутизатори, комутатори, базові станції або інше обладнання, яке полегшує зв'язок від вихідного пристрою 12 до пристрою 14 призначення. [0043] У іншому прикладі канал 16 може включати в себе запам'ятовуючий носій, який зберігає закодовані відеодані, генеровані вихідним пристроєм 12. У цьому прикладі пристрій 14 призначення може одержати доступ до запам'ятовуючого носія, наприклад, через доступ до диска або доступ до карти. Запам'ятовуючий носій може включати в себе множину локально доступних запам'ятовуючих носіїв даних, таких як диски Blu-ray, DVD, CD-ROM, флеш-пам'ять, або інші придатні цифрові запам'ятовуючі носії, для того, щоб зберігати закодовані відеодані. [0044] У іншому прикладі канал 16 може включати в себе файловий сервер або інший проміжний пристрій зберігання, який зберігає закодовані відеодані, генеровані вихідним пристроєм 12. У цьому прикладі пристрій 14 призначення може одержати доступ до закодованих відеоданих, що зберігаються в файловому сервері або іншому проміжному пристрої зберігання, за допомогою потокової передачі або завантаження. Файловий сервер може бути типом сервера, здатного до того, щоб зберігати закодовані відеодані і передавати закодовані відеодані до пристрою 14 призначення. Зразкові файлові сервери включають в себе web-сервери (наприклад, для веб-сайта), сервери згідно з протоколом передачі файлів (FTP), пристрої сполучених з мережею пристроїв зберігання (NAS) і локальні дисководи. У прикладі згідно з фіг. 1 канал 16 включає в себе додатковий пристрій 21. У деяких прикладах додатковий пристрій 21 є пристроєм CDN, MANE або іншим типом пристрою. [0045] Пристрій 14 призначення може одержати доступ до закодованих відеоданих через стандартне з'єднання даних, таке як Інтернет-з'єднання. Зразкові типи з'єднань даних можуть включати в себе бездротові канали (наприклад, з'єднання Wi-Fi), дротові з'єднання (наприклад, цифрова абонентська лінія (DSL), кабельний модем і т. д.) або комбінацію обох, які є придатними для того, щоб одержати доступ до закодованих відеоданих, що зберігаються на файловому сервері. Передача закодованих відеоданих від файлового сервера може бути потоковою передачею, передачею завантаження або комбінацією обох. [0046] Способи даного розкриття не обмежені бездротовими додатками або параметрами настройки. Способи можуть бути застосовані до кодування відео на підтримання множини мультимедійних додатків, таких як ефірне телебачення, передачі кабельного телебачення, передачі супутникового телебачення, потокові передачі відео, наприклад через Інтернет, кодування відеоданих для зберігання на запам'ятовуючому носії даних, декодування відеоданих, що зберігаються на запам'ятовуючому носії даних, або інших додатків. У деяких прикладах система 10 кодування відео може бути сконфігурована, щоб підтримувати односторонню або двосторонню передачу відео, щоб підтримувати додатки, такі як потокова передача відео, відтворення відео, мовлення відео і/або відеотелефонія. [0047] Фіг. 1 є просто прикладом, і способи даного розкриття можуть стосуватися параметрів настройки кодування відео (наприклад, кодуванню відео або декодування відео), які не обов'язково включають в себе яку-небудь передачу даних між пристроями кодування і декодування. У інших прикладах дані витягують з локальної пам'яті, передають у вигляді потоку по мережі або подібному. Пристрій кодування відео може закодувати і зберігати дані в пам'яті і/або пристрій декодування відео може витягнути і декодувати дані з пам'яті. У багатьох 6 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 60 прикладах кодування і декодування виконуються пристроями, які не обмінюються один з одним, але просто кодують дані в пам'ять і/або витягують і декодують дані з пам'яті. [0048] У прикладі згідно з фіг. 1 вихідний пристрій 12 включає в себе відеоджерело 18, відеокодер 20 і інтерфейс 22 виведення. У деяких прикладах інтерфейс 22 виведення може включати в себе модулятор/демодулятор (модем) і/або передавач. Відеоджерело 18 може включати в себе пристрій захоплення відео, наприклад відеокамеру, відеоархів, що містить раніше захоплені відеодані, інтерфейс подачі відео, щоб прийняти відеодані від постачальника відеоконтенту, і/або систему комп'ютерної графіки для того, щоб генерувати відеодані, або комбінацію таких джерел відеоданих. [0049] Відеокодер 20 може закодувати відеодані з відеоджерела 18. У деяких прикладах вихідний пристрій 12 безпосередньо передає закодовані відеодані до пристрою 14 призначення через інтерфейс 22 виведення. У інших прикладах закодовані відеодані можуть також зберігатися на запам'ятовуючому носії або файловому сервері для більш пізнього доступу пристроєм 14 призначення для декодування і/або відтворення. [0050] У прикладі згідно з фіг. 1 пристрій 14 призначення включає в себе інтерфейс 28 введення, відеодекодер 30 і пристрій 32 відображення. У деяких прикладах інтерфейс 28 введення включає в себе приймач і/або модем. Інтерфейс 28 введення може прийняти закодовані відеодані по каналу 16. Пристрій 32 відображення може бути інтегрований з або може бути зовнішнім до пристрою 14 призначення. Взагалі, пристрій 32 відображення відображає декодовані відеодані. Пристрій 32 відображення може містити множину пристроїв відображення, таких як рідкокристалічний дисплей (LCD), плазмовий дисплей, дисплей на органічних світловипромінюючих (OLED) діодах або інший тип пристрою відображення. [0051] Відеокодер 20 і відеодекодер 30, кожний, можуть бути реалізовані як будь-яка з множини придатних схем, таких як один або більше мікропроцесорів, цифрові сигнальні процесори (DSPs), спеціалізовані інтегральні схеми (ASICs), програмовані користувачем вентильні матриці (FPGAs), дискретна логіка, апаратне забезпечення або будь-які їх комбінації. Якщо способи реалізовані частково в програмному забезпеченні, пристрій може зберегти інструкції для програмного забезпечення в придатному постійному зчитуваному комп'ютером запам'ятовуючому носії і може виконати інструкції в апаратному забезпеченні, використовуючи один або більше процесорів, щоб виконати способи даного розкриття. Будь-що з вищеописаного (включаючи апаратне забезпечення, програмне забезпечення, комбінацію апаратного забезпечення і програмного забезпечення і т. д.), як можуть вважати, є одним або більше процесорами. Кожний з відеокодера 20 і відеодекодера 30 може бути включений в один або більше кодерів або декодерів, будь-який з яких може бути інтегрований як частина об'єднаного кодера/декодера (кодек) у відповідному пристрої. [0052] Дане розкриття може загалом посилатися на відеокодер 20, "сигналізуючий" деяку інформацію на інший пристрій, такий як відеодекодер 30 або додатковий пристрій 21. Термін "сигналізація" може взагалі стосуватися передачі елементів синтаксису і/або інших даних, використовуваних для декодування стиснених відеоданих. Така передача може мати місце в реальному або майже реальному часі. Альтернативно, така передача може мати місце протягом проміжку часу, наприклад може відбутися при збереженні елементів синтаксису в зчитуваному комп'ютером запам'ятовуючому носії в закодованому потоці бітів під час кодування, які потім можуть бути витягнуті пристроєм декодування в будь-який час, будучи збереженими на цьому носії. [0053] У деяких прикладах відеокодер 20 і відеодекодер 30 працюють згідно зі стандартом стиснення відео, таким як ISO/IEC MPEG-4 Visual і ITU-T H.264 (також відомий як ISO/IEC MPEG-4 AVC), включаючи його розширення масштабованого кодування відео (SVC), розширення кодування відео множинних видів (MVC) і/або основане на MVC розширення 3DV. У деяких випадках будь-який потік бітів, відповідний основаному на MVC розширенню 3DV, завжди містить підпотік бітів, який сумісний з профілем MVC, наприклад профілем високоякісного стерео. Крім того, докладаються зусилля щоб згенерувати розширення кодування тривимірного відео (3DV) для H.264/AVC, а саме основане на AVC 3DV. У інших прикладах відеокодер 20 і відеодекодер 30 можуть працювати згідно з ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 або ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual і ITU-T H.264, ISO/IEC Visual. [0054] У інших прикладах відеокодер 20 і відеодекодер 30 можуть працювати згідно зі стандартом високоефективного кодування відео (HEVC), що на даний час розвивається об'єднаною командою співпраці по кодуванню відео (JCT-VC) групи експертів по кодуванню відео ITU-T (VCEG) і ISO/IEC групи експертів по рухомих зображеннях (MPEG). Проект стандарту HEVC, що розвивається, названого "HEVC, Робочий Проект 9", описаний в Bross et 7 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 al., "High Efficiency Video Coding (HEVC) text specification draft 9", Joint Collaborative Team on th Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 11 Meeting, Shanghai, China, жовтень 2012 року, який на 8 травня 2013 року доступний за адресою http://phenix.int-evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v13.zip. Крім того, докладаються зусилля для створення розширення SVC, кодування множинних видів і 3DV для HEVC. 3DV-розширення HEVC може згадуватися як основане на HEVC 3DV або 3D-HEVC. [0055] У HEVC і інших стандартах кодування відео, відеопослідовність типово включає в себе послідовність картинок. Картинки можуть також згадуватися як "кадри". Картинка може включати в себе три масиви вибірок, позначених SL, SCb і SCr. SL є двовимірним масивом (тобто блоком) вибірок яскравості. SCb є двовимірним масивом вибірок кольоровості Cb. SCr є двовимірним масивом вибірок кольоровості Cr. Вибірки кольоровості можуть також бути згадані тут як вибірки "насиченості кольору". У інших випадках картинка може бути одноколірною і може включати в себе тільки масив вибірок яскравості. [0056] Щоб генерувати закодоване представлення картинки, відеокодер 20 може генерувати набір одиниць дерева кодування (одиниць CTU). Кожна з одиниць CTU може бути блоком дерева кодування вибірок яскравості, двома відповідними блоками дерева кодування вибірок насиченості кольору і синтаксичною структурою, використовуваною для кодування вибірок блоків дерева кодування. Блок дерева кодування може бути блоком з N×N вибірок. CTU може також згадуватися як "блок дерева" або "найбільша одиниця кодування" (LCU). Одиниці CTU HEVC можуть бути широким аналогом макроблоків інших стандартів, таких як H.264/AVC. Однак, CTU не обов'язково обмежена конкретним розміром і може включати в себе одну або більше одиниць кодування (одиниць CU). Вирізка може включати в себе цілу кількість одиниць CTU, впорядкованих послідовно в растровому скануванні. [0057] Щоб згенерувати закодовану CTU, відеокодер 20 може рекурсивно виконувати розділення квадродерева відносно блоків дерева кодування одиниці CTU, щоб розділити блоки дерева кодування на блоки кодування, звідси назва "одиниці дерева кодування". Блок кодування є блоком з N×N вибірок. CU може бути блоком кодування вибірок яскравості і двох відповідних блоків кодування вибірок насиченості кольору картинки, яка має масив вибірок яскравості, масив вибірок Cb і масив вибірок Cr, і синтаксичні структури, використовувані для кодування вибірок блоків кодування. Відеокодер 20 може розділити блоки кодування одиниці CU в один або більше блоків прогнозування. Блок прогнозування може бути прямокутним (тобто квадратним або неквадратним) блоком вибірок, відносно яких застосовується одне і те ж прогнозування. Одиниця прогнозування (PU) одиниці CU може бути блоком прогнозування вибірок яскравості, двома відповідними блоками прогнозування вибірок насиченості кольору картинки і синтаксичними структурами, використаними для прогнозування вибірок блока прогнозування. Відеокодер 20 може генерувати прогнозуючі блоки яскравості, Cb і Cr для блоків прогнозування яскравості, Cb і Cr кожної PU в CU. [0058] Відеокодер 20 може використовувати внутрішнє прогнозування або зовнішнє прогнозування, щоб генерувати прогнозуючі блоки для PU. Якщо відеокодер 20 використовує внутрішнє прогнозування, щоб згенерувати прогнозуючі блоки PU, відеокодер 20 може генерувати прогнозуючі блоки PU на основі декодованих вибірок картинки, асоційованої з PU. [0059] Якщо відеокодер 20 використовує зовнішнє прогнозування, щоб генерувати прогнозуючі блоки одиниці PU, відеокодер 20 може генерувати прогнозуючі блоки PU на основі декодованих вибірок однієї або більше картинок, відмінних від картинки, асоційованої з PU. Відеокодер 20 може використовувати однонаправлене прогнозування або біпрогнозування, щоб генерувати прогнозуючі блоки одиниці PU. Коли відеокодер 20 використовує однонаправлене прогнозування, щоб генерувати прогнозуючі блоки для PU, PU може мати єдиний вектор руху. Коли відеокодер 20 використовує біпрогнозування, щоб генерувати прогнозуючі блоки для PU, PU може мати два вектори руху. [0060] Після того, як відеокодер 20 генерує прогнозуючі блоки яскравості, Cb і Cr для однієї або більше одиниць PU в CU, відеокодер 20 може генерувати залишковий блок яскравості для CU. Кожна вибірка в залишковому блоці яскравості в CU вказує різницю між вибіркою яскравості в одному з прогнозуючих блоків яскравості CU і відповідною вибіркою в первинному блоці кодування яскравості в CU. Крім того, відеокодер 20 може генерувати залишковий блок Cb для CU. Кожна вибірка в залишковому блоці Cb в CU може вказувати різницю між вибіркою Cb в одному з прогнозуючих блоків Cb в CU і відповідною вибіркою в первинному блоці кодування Cb в CU. Відеокодер 20 може також генерувати залишковий блок Cr для CU. Кожна вибірка в залишковому блоці Cr в CU може вказувати різницю між вибіркою Cr в одному з прогнозуючих блоків Cr в CU і відповідною вибіркою в первинному блоці кодування Cr в CU. 8 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 [0061] Крім того, відеокодер 20 може використовувати розділення квадродерева, щоб виконати розкладання залишкових блоків яскравості, Cb і Cr в CU в один або більше блоків перетворення яскравості, Cb і Cr. Перетворений блок може бути прямокутним блоком вибірок, відносно якого застосовується одне і те ж перетворення. Одиниця перетворення (TU) в CU може бути блоком перетворення вибірок яскравості, двома відповідними блоками перетворення вибірок насиченості кольору і синтаксичними структурами, використаними для перетворення вибірок блока перетворення. Таким чином, кожна TU в CU може бути асоційована з блоком перетворення яскравості, блоком перетворення Cb і блоком перетворення Cr. Блок перетворення яскравості, асоційований з TU, може бути субблоком залишкового блока яскравості CU. Блок перетворення Cb може бути субблоком залишкового блока Cb в CU. Блок перетворення Cr може бути субблоком залишкового блока Cr в CU. [0062] Відеокодер 20 може застосовувати одне або більше перетворень до блока перетворення яскравості в TU, щоб генерувати блок коефіцієнтів яскравості для TU. Блок коефіцієнтів може бути двовимірним масивом коефіцієнтів перетворення. Коефіцієнт перетворення може бути скалярним числом. Відеокодер 20 може застосовувати одне або більше перетворень до блока перетворення Cb в TU, щоб генерувати блок коефіцієнтів Cb для TU. Відеокодер 20 може застосовувати одне або більше перетворень до блока перетворення Cr в TU, щоб генерувати блок коефіцієнтів Cr для TU. [0063] Після генерування блока коефіцієнтів (наприклад, блока коефіцієнтів яскравості, блока коефіцієнтів Cb або блока коефіцієнтів Cr), відеокодер 20 може квантувати блок коефіцієнтів. Квантування взагалі належить до процесу, в якому коефіцієнти перетворення квантуються, щоб можливо зменшити величину даних, використаних для представлення коефіцієнтів перетворення, забезпечуючи подальше стиснення. Після того, як відеокодер 20 квантує блок коефіцієнтів, відеокодер 20 може ентропійно кодувати елементи синтаксису, що вказують квантовані коефіцієнти перетворення. Наприклад, відеокодер 20 може виконати контекстно-адаптивне двійкове арифметичне кодування (CABAC) відносно елементів синтаксису, що вказують квантовані коефіцієнти перетворення. Відеокодер 20 може вивести ентропійно кодовані елементи синтаксису в потоці бітів. [0064] Відеокодер 20 може вивести потік бітів, який включає в себе послідовність бітів, яка формує представлення закодованих картинок, і асоційовані дані. Потік бітів може містити послідовність одиниць рівня абстракції мережі (NAL). Одиниця NAL може бути синтаксичною структурою, що містить індикацію типу даних, які повинні іти, і байти, що містять ці дані в формі корисних даних необробленої послідовності байтів (RBSP), вставлених у міру необхідності з байтами запобігання емуляції. Таким чином, кожна з одиниць NAL може включати в себе заголовок одиниці NAL і інкапсулювати RBSP. Заголовок одиниці NAL може включати в себе елемент синтаксису, який вказує код типу одиниці NAL. Код типу одиниці NAL, заданий заголовком одиниці NAL для одиниці NAL, вказує тип одиниці NAL. RBSP може бути синтаксичною структурою, що містить ціле число байтів, яке інкапсульоване в межах одиниці NAL. У деяких випадках RBSP включає в себе нульові біти. [0065] Різні типи одиниць NAL можуть інкапсулювати різні типи RBSPs. Наприклад, перший тип одиниці NAL може інкапсулювати RBSP для набору параметрів картинки (PPS), другий тип одиниці NAL може інкапсулювати RBSP для закодованої вирізки, третій тип одиниці NAL може інкапсулювати RBSP для SEI і так далі. Одиниці NAL, які інкапсулюють RBSPs для даних кодування відео (на протилежність RBSPs для наборів параметрів і повідомлень SEI), можуть згадуватися як рівень кодування відео (VCL) одиниці NAL. [0066] Відеодекодер 30 може прийняти потік бітів, генерований відеокодером 20. Крім того, відеодекодер 30 може синтаксично розібрати потік бітів, щоб декодувати елементи синтаксису з потоку бітів. Відеодекодер 30 може відновити картинки відеоданих, на основі, щонайменше частково, елементів синтаксису, декодованих з потоку бітів. Процес для відновлення відеоданих може бути загалом зворотним процесу, виконаному відеокодером 20. Наприклад, відеодекодер 30 може використовувати вектора руху одиниць PU, щоб визначити прогнозуючі блоки для одиниць PU поточної CU. Крім того, відеодекодер 30 може зворотно квантувати блоки коефіцієнтів перетворення, асоційовані з одиницями TU поточної CU. Відеодекодер 30 може виконувати зворотні перетворення відносно блоків коефіцієнтів перетворення, щоб відновити блоки перетворення, асоційовані з одиницями TU поточної CU. Відеодекодер 30 може відновити блоки кодування поточної CU за допомогою підсумовування вибірок прогнозуючих блоків для одиниць PU поточної CU з відповідними вибірками перетворених блоків одиниць TU поточної CU. За допомогою відновлення блоків кодування для кожної CU картинки, відеодекодер 30 може відновити картинку. 9 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 60 [0067] При кодуванні множинних видів можуть бути множинні види однієї і тієї ж сцени з різних точок огляду. Термін "одиниця доступу" використаний для звернення до набору картинок, які відповідають одному і тому ж моменту часу. Таким чином, відеодані можуть бути зрозумілі як послідовність одиниць доступу, що з'являються протягом часу. "Компонент виду" може бути закодованим представленням виду в єдиній одиниці доступу. У даному розкритті "вид" може стосуватися послідовності компонентів виду, асоційованих з одним і тим же ідентифікатором виду. [0068] Кодування множинних відео підтримує прогнозування між видами. Прогнозування між видами подібне зовнішньому прогнозуванню, використовуваному в H.264/AVC і HEVC, і може використовувати ті ж самі елементи синтаксису. Однак, коли відеокодер виконує прогнозування між видами відносно поточного відеоблока (такого як PU), відеокодер 20 може використовувати, як опорну картинку, картинку, яка знаходиться в тій же одиниці доступу, що і поточний відеоблок, алев іншому виді. Навпаки, звичайне зовнішнє прогнозування використовує картинки тільки в різних одиницях доступу як опорні картинки. [0069] При кодуванні множинних видів вид може згадуватися як "базовий вид", якщо відеодекодер (наприклад, відеодекодер 30) може декодувати картинки у виді без посилання на картинки в будь-якому іншому виді. При кодуванні картинки в одному з небазових видів кодер відео (такий як відеокодер 20 або відеодекодер 30) може додати картинку в список опорних картинок, якщо картинка знаходиться в іншому виді, але в межах того ж самого моменту часу (тобто одиниці доступу) як картинка, яку на даний час кодує відеокодер. Подібно іншим опорним картинкам зовнішнього прогнозування, відеокодер може вставити опорну картинку прогнозування між видами в будь-якій позиції списку опорних картинок. [0070] Стандарти кодування відео визначають моделі буферизації відео. У H.264/AVC і HEVC модель буферизації згадується як "гіпотетичний опорний декодер" або "HRD". У HEVC Working Draft 8 HRD описаний в Додатку С. [0071] HRD описує, як дані повинні бути буферизовані для декодування і як декодовані дані буферизовані для виведення. Наприклад, HRD описує роботу буфера кодованих картинок ("CPB"), буфера декодованих картинок ("DPB") і відеодекодера. CPB є буфером "перший увійшов - перший вийшов", що містить одиниці доступу в порядку декодування, заданому за допомогою HRD. DPB є буфером, що зберігає декодовані картинки для посилання, переупорядковування виведення або затримки виведення, заданих за допомогою HRD. Поведінки CPB і DPB можуть бути математично задані. HRD може безпосередньо накласти обмеження на тактування, розміри буфера і частоти проходження бітів. Крім того, HRD може непрямо накласти обмеження на різні характеристики потоку бітів і статистику. [0072] У H.264/AVC і HEVC відповідність (узгодженість) потоку бітів і відповідність декодера задані як частини специфікації HRD. Іншими словами, модель HRD визначає тести, щоб визначити, чи відповідає потік бітів стандарту, і перевіряє, щоб визначити, чи відповідає декодер стандарту. Хоч HRD називають деяким типом декодера, відеокодери типово використовують HRD, щоб гарантувати відповідність потоку бітів, в той час як відеодекодери типово не мають потреби в HRD. [0073] H.264/AVC і HEVC обидва задають два типи потоку бітів або відповідності HRD, а саме Тип I і Тип II. Потік бітів Типу I є потоком одиниць NAL, що містить тільки одиниці NAL VCL і одиницю NAL даних заповнення для всіх одиниць доступу в потоці бітів. Потік бітів Типу II є потоком одиниць NAL, який містить, на доповнення до одиниць NAL VCL і одиниць NAL даних заповнення для всіх одиниць доступу в потоці бітів, щонайменше одне з наступного: додаткові одиниці NAL не-VCL, відмінні від одиниць NAL даних заповнення; і всі елементи синтаксису leading_zero_8bits, zero_byte, start_coded_prefix_one_3bytes і trailing_zero_8bits, які формують потік байтів з потоку одиниць NAL. [0074] Коли пристрій виконує тест відповідності потоку бітів, який визначає, чи відповідає потік бітів стандарту кодування відео, пристрій може вибрати робочу точку потоку бітів. Пристрій може потім визначити набір параметрів HRD, застосовних до вибраної робочої точки. Пристрій може використовувати набір параметрів HRD, застосовних до вибраної робочої точки, щоб конфігурувати поведінку HRD. Більш детально, пристрій може використовувати набір параметрів HRD, застосовний, щоб конфігурувати поведінки конкретних компонентів HRD, таких як планувальник гіпотетичного потоку (HSS), CPB, процес декодування, DPB і так далі. Потім HSS може ввести закодовані відеодані потоку бітів в CPB згаданого HRD згідно з конкретним списком. [0075] Крім того, пристрій може викликати процес декодування, який декодує закодовані відеодані в CPB. Процес декодування може вивести декодовані картинки в DPB. Коли пристрій переміщує дані через HRD, пристрій може визначити, чи залишається конкретний набір 10 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 60 обмежень задоволеним. Наприклад, пристрій може визначити, чи є умова переповнення або втрати значущості в CPB або DPB, в той час як HRD декодує представлення робочої точки вибраної робочої точки. Пристрій може вибрати і обробити кожну робочу точку потоку бітів в цьому способі. Якщо ніяка робоча точка потоку бітів не викликає порушення обмежень, пристрій може визначити, що потік бітів відповідає стандарту кодування відео. [0076] І H.264/AVC, і HEVC визначають два типи відповідності декодера, а саме відповідність декодера тактуванню виведення і відповідність декодера порядку виведення. Декодер, що вимагає відповідності конкретному профілю, ярусу і рівню, може успішно декодувати всі потоки бітів, які відповідають вимогам відповідності потоку бітів стандарту кодування відео, такого як HEVC. У даному розкритті "профіль" може стосуватися піднабору синтаксису потоку бітів. "Яруси" і "рівні" можуть бути визначені в межах кожного профілю. Рівень ярусу може бути заданим набором обмежень, накладених на значення елементів синтаксису в потоці бітів. Ці обмеження можуть бути простими межами відносно значень. Альтернативно, вони можуть прийняти форму обмежень на арифметичні комбінації значень (наприклад, ширина картинки, помножена на висоту картинки, помножена на кількість картинок, декодованих за секунду). Рівень, заданий для нижнього ярусу, є більш обмеженим, ніж рівень, заданий для більш високого ярусу. [0077] Коли пристрій виконує тест відповідності декодера, щоб визначити, чи відповідає декодер, що піддається тесту (DUT), стандарту кодування відео, пристрій може забезпечити як в HRD, так і в DUT потік бітів, який відповідає стандарту кодування відео. HRD може обробити потік бітів способом, описаним вище відносно тесту відповідності потоку бітів. Пристрій може визначити, що DUT відповідає стандарту кодування відео, якщо порядок декодованих картинок, виведених за допомогою DUT, відповідає порядку декодованих картинок, виведених за допомогою HRD. Крім того, пристрій може визначити, що DUT відповідає стандарту кодування відео, якщо тактування, з яким DUT виводить декодовані картинки, відповідає тактуванню, з яким HRD виводить декодовані картинки. [0078] На доповнення до тестів відповідності потоку бітів і тестів відповідності декодера, пристрої можуть використовувати параметри HRD в інших цілях. Як приклади початкові затримки видалення з CPB можуть бути використані для видачі команди системі встановити придатну початкову крізну затримку, і часи виведення з DPB можуть бути використані для виведення відмітки часу протоколу в реальному часі (RTP), коли відеопотік бітів даних транспортується по RTP. [0079] У моделях H.264/AVC і HEVC HRD декодування або видалення з CPB може бути основане на одиниці доступу. Тобто HRD, як передбачається, декодує повні одиниці доступу в один час і видаляє повні одиниці доступу з CPB. Крім того, в моделях H.264/AVC і HEVC HRD передбачається, що декодування картинок є миттєвим. Відеокодер 20 може сигналізувати в повідомленнях SEI тактування картинок часи декодування, щоб почати декодувати одиниць доступу. У практичних застосуваннях, якщо відповідний відеодекодер суворо додержується часів декодування, сигналізованих, щоб почати декодувати одиниці доступу, найбільш ранній час, щоб вивести конкретну декодовану картинку, дорівнює часу декодування цієї конкретної картинки плюс час, необхідний для декодування цієї конкретної картинки. Однак, в реальному світі, час, необхідний для декодування картинки, не може дорівнювати нулю. [0080] Параметри HRD можуть керувати різними аспектами HRD. Іншими словами, HRD може основуватися на параметрах HRD. Параметри HRD можуть включати в себе початкову затримку видалення з CPB, розмір CPB, частоту проходження бітів, початкову затримку виведення з DPB і розмір DPB. Відеокодер 20 може сигналізувати ці параметри HRD в синтаксичній структурі hrd_parameters(), визначеній в наборі параметрів відео (VPS) і/або наборі параметрів послідовності (SPS). Індивідуальні VPS і/або SPS можуть включати в себе множинні синтаксичні структури hrd_parameters() для різних наборів параметрів HRD. У деяких прикладах відеокодер 20 може сигналізувати параметри HRD в повідомленні SEI періоду буферизації або повідомленні SEI тактування картинок. [0081] Як пояснено вище, робоча точка потоку бітів асоційована з набором ідентифікаторів рівня (тобто набором значень nuh_reserved_zero_6bits) і часовим ідентифікатором. Представлення робочої точки може включати в себе кожну одиницю NAL, яка асоційована з робочою точкою. Представлення робочої точки може мати відмінну частоту кадрів і/або частоту проходження бітів, ніж первинний потік бітів. Це має місце тому, що представлення робочої точки може не включати в себе деякі картинки і/або деякі з даних первинного потоку бітів. Отже, якщо відеодекодер 30 повинен був видалити дані з CPB і/або DPB при конкретній швидкості передачі, обробляючи первинний потік бітів, і якщо відеодекодер 30 повинен був видалити дані з CPB і/або DPB з тією ж частотою проходження бітів при обробці представлення робочої точки, 11 UA 113334 C2 5 10 15 20 25 відеодекодер 30 може видалити дуже багато або дуже мало даних з CPB і/або DPB. Відповідно, відеокодер 20 може сигналізувати різні набори параметрів HRD для різних робочих точок. Наприклад, відеокодер 20 може включати, в VPS, множинні синтаксичні структуриhrd_parameters(), які включають в себе параметри HRD для різних робочих точок. [0082] У HEVC Working Draft 8 набір параметрів HRD необов'язково включає в себе набір інформації, який характерний для всіх підрівнів. Іншими словами, набір параметрів HRD може необов'язково включати в себе набір загальних елементів синтаксису, які застосовні до робочих точок, що включають в себе будь-які часові підрівні. Часовий підрівень є часовим масштабованим рівнем часового масштабованого потоку бітів, що складається з одиниць NAL VCL з конкретним значенням TemporalId і асоційованих одиниць NAL не-VCL. На доповнення до набору загальної інформації набори параметрів HRD можуть включати в себе набір елементів синтаксису, які є специфічними для індивідуальних часових підрівнів. Наприклад, синтаксична структура hrd_parameters() може необов'язково включати в себе набір інформації, яка характерна для всіх підрівнів і завжди включає в себе специфічну для підрівня інформацію. Оскільки набір загальної інформації є загальним для множинних наборів параметрів HRD, може бути непотрібно сигналізувати набір загальної інформації у множинних наборах параметрів HRD. Замість цього в HEVC Working Draft 8 загальна інформація може бути присутня в наборі параметрів HRD, коли набір параметрів HRD є першим набором параметрів HRD в VPS, або загальна інформація може бути присутня в наборі параметрів HRD, коли набір параметрів HRD асоційований з індексом першої робочої точки. Наприклад, HEVC, Working Draft 8 підтримує присутність загальної інформації, коли будь-яка синтаксична структура hrd_parameters() є першою синтаксичною структурою hrd_parameters() в VPS або коли синтаксична структура hrd_parameters() асоційована з першою робочою точкою. [0083] Таблиця 1, нижче, є зразковою синтаксичною структурою для синтаксичної структури hrd_parameters() в HEVC. 12 UA 113334 C2 5 10 [0084] У прикладі з Таблиці 1 вище і інших таблиць синтаксису даного розкриття, елементи синтаксису з дескриптором типу ue(v) можуть бути цілими числами змінної довжини без знака, закодованими, використовуючи експоненціальне кодування Голомба (Exp-Golomb) 0-ого порядку з першим лівим бітом. У прикладі з Таблиці 1 і наступних таблиць, елементи синтаксису, що мають дескриптори форми u(n), де n - ненегативне ціле число, є значеннями без знака довжини n. [0085] У зразковому синтаксисі з Таблиці 1, елементи синтаксису в блоці "if(commonInfPresentFlag) {…}" є загальною інформацією наборів параметрів HRD. Іншими словами, загальна інформація набору параметрів HRD може включати в себе елементи 13 UA 113334 C2 5 10 15 20 25 30 35 40 синтаксису timing_info_present_flag, num_units_in_tick, time_scale, nal_hrd_parameters_present_flag, vcl_hrd_parameters_present_flag, sub_pic_cpb_params_present_flag, tick_divisor_minus2, du_cpb_removal_delay_length_minus1, bit_rate_scale, cpb_size_scale, initial_cpb_removal_delay_length_minus1, cpb_removal_delay_length_minus1 і dpb_output_delay_length_minus1. [0086] Крім того, в прикладі з Таблиці 1 елементи синтаксису fixed_pic_rate_flag[i], pic_duration_in_tc_minus1[i], low_delay_hrd_flag[i] і cpb_cnt_minus1[i] можуть бути набором специфічних для підрівня параметрів HRD. Іншими словами, ці елементи синтаксису синтаксичної структури hrd_parameters() можуть бути застосовні тільки до робочих точок, які включають в себе конкретний підрівень. Таким чином, параметри HRD синтаксичної структури hrd_parameters() можуть включати в себе, на доповнення до необов'язково включеної загальної інформації, набір специфічних для підрівня HRD-параметрів, який є специфічним (властивим) для конкретного підрівня потоку бітів. [0087] Елемент синтаксису fixed_pic_rate_flag[i] може вказувати, що, коли HighestTid дорівнює i, часова відстань між часами виведення HRD будь-яких двох послідовних картинок в порядку виведення обмежена спеціальним чином. HighestTid може бути змінною, яка ідентифікує найвищий тимчасовий підрівень (наприклад, для робочої точки). Елемент синтаксису pic_duration_in_tc_minus1[i] може задавати, коли HighestTid дорівнює i, часову відстань, в тактах системних тактових сигналів, між часами виведення HRD будь-яких послідовних картинок в порядку виведення в закодованій відеопослідовності. Елемент синтаксису low_delay_hrd_flag[i] може задавати режим операції HRD, коли HighestTid дорівнює i, як визначено в Додатку С в HEVC Working Draft 8. Елемент синтаксису cpb_cnt_minus1[i] може задавати кількість альтернативних специфікацій CPB в потоці бітів закодованої відеопослідовності, коли HighestTid дорівнює i. [0088] Відеокодер 20 може використовувати повідомлення SEI, щоб включати в потік бітів метадані, які не вимагаються для коректного декодування значень вибірок картинок. Однак, відеодекодер 30 або інші пристрої можуть використовувати метадані, включені в повідомлення SEI, в різних інших цілях. Наприклад, відеодекодер 30 може використовувати метадані в повідомленнях SEI для тактування виведення картинок, відображення картинок, виявлення втрат і маскування помилок. [0089] Відеокодер 20 може включати одну або більше одиниць NAL SEI в одиницю доступу. Іншими словами, будь-яка кількість одиниць NAL SEI може бути асоційована з одиницею доступу. Крім того, кожна одиниця NAL SEI може містити одне або більше повідомлень SEI. Стандарт HEVC описує синтаксис і семантику для різних типів повідомлень SEI. Однак, стандарт HEVC не описує обробку повідомлень SEI, тому що повідомлення SEI не впливають на нормативний процес декодування. Одна причина мати повідомлення SEI в стандарті HEVC полягає в тому, щоб дозволити додаткові дані, інтерпретовані тотожно в різних системах, що використовують HEVC. Специфікації і системи, що використовують HEVC, можуть вимагати, щоб відеокодери генерували деякі повідомлення SEI, або можуть визначати конкретну обробку конкретних типів прийнятих повідомлень SEI. Таблиця 2 нижче перелічує повідомлення SEI, визначені в HEVC, і стисло описує їх призначення Таблиця 2 Короткий огляд повідомлень SEI Повідомлення SEI Призначення Початкові затримки для роботи гіпотетичного опорного Період буферизації декодера (HRD) Час виведення картинки і час видалення Тактування картинок картинки/субкартинки для роботи HRD Прямокутник панорамного Відображення з відмінним співвідношенням сторін картинки сканування (PAR), ніж PAR виведених картинок Регулюють частоту проходження бітів для задоволення Корисні дані заповнення конкретних обмежень Зареєстровані користувацькі дані Повідомлення SEI, які повинні бути задані зовнішніми Незареєстровані користувацькі дані об'єктами Додаткова інформація для чистого довільного доступу. Точка відновлення Поступове оновлення декодування Інформація сцени Інформація про зміни і переходи сцени 14 UA 113334 C2 Таблиця 2 Короткий огляд повідомлень SEI Повідомлення SEI Повнокадровий знімок Сегмент прогресивної деталізації Характеристики зерна плівки Переваги відображення фільтра видалення блоковості Підказки постфільтра Інформація відображення тональних сигналів Компонування упаковки кадру Орієнтація дисплея Індикація поля Хеш декодованої картинки Тактування субкартинок Набори активних параметрів Структура опису картинки 5 10 15 20 25 Призначення Індикація для помітки асоційованої декодованої картинки як нерухомого зображення відеоконтенту Вказує, що деякі послідовні картинки представляють прогресивне поліпшення якості картинки, замість рухомого зображення Дозволяє декодерам синтезувати зерно плівки Рекомендує, чи повинні відображені картинки піддаватися обробці внутрішньоконтурного фільтра видалення блоковості Забезпечує пропоновані коефіцієнти постфільтра або інформацію кореляції для побудови постфільтра Перевідображення у відмінний колірний простір, ніж той, що використовується або передбачається при кодуванні Упаковка стереоскопічного відео в потік бітів HEVC Задає перевертання і/або обертання, яке повинно бути застосоване до вихідних картинок, коли вони відображаються Забезпечує інформацію, що стосується перемежованого відеоконтенту і/або кодування полів, наприклад вказує, чи є картинка кадром прогресивної розгортки, напівкадром або кадром, що містить два перемежовувані напівкадри Контрольна сума декодованої картинки, яка може використовуватися для виявлення помилок Час видалення субкартинок для роботи HRD Забезпечує інформацію відносно активних VPS, SPS і т. д. Описує структуру часового і зовнішнього прогнозування потоку бітів [0090] Є декілька проблем або недоліків з існуючими методами для сигналізації параметрів HRD і вибору параметрів HRD і інших параметрів. Наприклад, в HEVC Working Draft 8 тільки набори параметрів HRD в VPS вибирають для операцій HRD. Тобто, хоч параметри HRD можуть бути надані в наборах SPS, набори параметрів HRD в SPS не вибираються відеодекодерами HEVC для операцій HRD. Відеодекодери завжди синтаксично розбирають і декодують VPS потоку бітів. Отже, відеодекодери завжди синтаксично розбирають і декодують набори параметрів HRD в VPS. [0091] Це вірно незалежно від того, чи включає потік бітів в себе одиниці NAL небазового рівня. Наприклад, тільки синтаксична структура hrd_parameters(), закодована в VPS, може бути вибрана для операцій HRD, і можливо присутня синтаксична структура hrd_parameters() в SPS може бути ніколи не вибрана. Це може вимагати синтаксичного розбору і обробки VPS, навіть при декодуванні потоку бітів, який не містить nuh_reserved_zero_6bits, більше ніж 0 (тобто потік бітів містить тільки базовий рівень в розширеннях множинних видів, 3DV або SVC в HEVC). [0092] Таким чином, якщо потік бітів включає в себе одиниці NAL небазового рівня, може бути витратою обчислювальних ресурсів синтаксично розібрати і оперувати з наборами параметрів HRD в SPS. Крім того, якщо набори параметрів HRD присутні в VPS, набори параметрів HRD в SPS можуть бути витраченими даремно бітами. Наприклад, якщо синтаксична структура hrd_parameters() присутня в SPS, закодовані біти для цієї синтаксичної структури можуть бути просто витратою бітів. [0093] Відповідно до одного або більше способів даного розкриття, відеокодер 20 може генерувати потік бітів, який включає в себе SPS, який застосовний до послідовності картинок. SPS включає в себе набір параметрів HRD. Набір параметрів HRD застосовний до кожної робочої точки потоку бітів, яка має набір ідентифікаторів рівня, який відповідає набору цільових ідентифікаторів рівня. Таким чином, набори параметрів HRD в SPS не витрачаються даремно, а замість цього можуть використовуватися для операцій HRD. Наприклад, операція вказує, яка синтаксична структура hrd_parameters(), закодована в SPS, може бути ясно задана, наприклад, щоб бути робочими точками, для яких тільки одне значення nuh_reserved_zero_6bits (тобто ID 15 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 60 рівня в розширенні множинних видів, 3DV або масштабованого кодування відео) присутнє в потоці бітів. [0094] Наприклад, пристрій, такий як відеокодер 20 або відеодекодер 30, може вибрати, з числа набору параметрів HRD в наборі параметрів відео і наборі параметрів HRD в SPS, набір параметрів HRD, застосовних до конкретної робочої точки. У цьому прикладі пристрій може виконувати, на основі, щонайменше частково, набору параметрів HRD, застосовних до конкретної робочої точки, тест відповідності потоку бітів, який перевіряє, чи відповідає піднабір потоку бітів, асоційований з конкретною робочою точкою, стандарту кодування відео. Тест відповідності потоку бітів може верифікувати, що представлення робочої точки відповідає стандарту кодування відео, такому як HEVC. [0095] У даному розкритті робоча точка може бути ідентифікована набором значень nuh_reserved_zero_6bits, позначеним як OpLayerIdSet, і значенням TemporalId, позначеним як OpTid. Асоційований піднабір потоку бітів, виведений як вихідний результат процесу витягання підпотоку бітів, як задано в підпункті 10.1 HEVC Working Draft 8, з OpTid і OpLayerIdSet як входами, є незалежно декодованими. Підпункт 10.1 HEVC Working Draft 8 описує операцію для того, щоб витягнути підпотік бітів (тобто представлення робочої точки) з потоку бітів. Зокрема, підпункт 10.1 HEVC Working Draft 8 забезпечує, що підпотік бітів виводять за допомогою видалення з потоку бітів всіх одиниць NAL з часовими ідентифікаторами (наприклад, TemporalID), більшими ніж tIdTarget, або ідентифікаторами рівня (наприклад, nuh_reserved_zero_6bits) не серед значень в targetDecLayerIdSet. tIdTarget і targetDecLayerIdSet є параметрами процесу витягання потоку бітів. [0096] У іншій зразковій проблемі або недоліку існуючих методів для сигналізації параметрів HRD, пристрій, такий як відеокодер, відеодекодер або інший тип пристрою, може виконати тест відповідності потоку бітів відносно представлення робочої точки для робочої точки. Як згадано вище, набір цільових ідентифікаторів рівня і часовий ідентифікатор можуть бути використані для ідентифікації робочої точки. Набір цільових ідентифікаторів рівня може бути позначений як "TargetDecLayerIdSet". Часовий ідентифікатор може бути позначений як "TargetDecHighestTid". Проблемою є те, що HEVC Working Draft 8 не задає, як TargetDecLayerIdSet або TargetDecHighestTid встановлені при виконанні тесту відповідності потоку бітів. Наприклад, коли викликається процес декодування для тесту відповідності потоку бітів, семантика елементів синтаксису явно не задана як значення TargetDecLayerIdSet, і TargetDecHighestTid належно не встановлені. [0097] Один або більше способів даного розкриття вказують, як TargetDecLayerIdSet і TargetDecHighestTid встановлюють при виконанні тесту відповідності потоку бітів. Наприклад, загальний процес декодування для потоку бітів (або представлення робочої точки) модифікують таким чином, що, якщо потік бітів (або представлення робочої точки) декодують в тесті відповідності потоку бітів, TargetDecLayerIdSet встановлюють так, як задано в підпункті C.1 стандарту HEVC. Аналогічно, загальний процес декодування для потоку бітів (або представлення робочої точки) може бути модифікований таким чином, що, якщо потік бітів (або представлення робочої точки) декодують в тесті відповідності потоку бітів, TargetDecHighestTid встановлюють так, як задано в підпункті C.1 HEVC Working Draft 8. Іншими словами, пристрій може визначити цільовий набір ідентифікаторів рівня конкретної робочі точки, який містить кожний ідентифікатор рівня, присутній в піднаборі потоку бітів, і цей набір ідентифікаторів рівня конкретної робочої точки є піднабором ідентифікаторів рівня, присутніх в потоці бітів. Крім того, пристрій може визначити цільовий часовий ідентифікатор конкретної робочої точки, який дорівнює найбільшому часовому ідентифікатору, присутньому в піднаборі потоку бітів, і цільовий часовий ідентифікатор конкретної робочої точки менше ніж або дорівнює найбільшому часовому ідентифікатору, присутньому в потоці бітів. [0098] У підпункті C.1 HEVC Working Draft 8 TargetDecLayerIdSet встановлюють в targetOpLayerIdSet. targetOpLayerIdSet містить набір значень для nuh_reserved_zero_6bits, присутнього в представленні робочої точки для робочої точки, що піддається тесту. targetOpLayerIdSet є піднабором значень для nuh_reserved_zero_6bits, присутнього в потоці бітів, що піддається тесту. [0099] Крім того, змінна TargetDecHighestTid ідентифікує найвищий тимчасовий підрівень, який повинен бути декодований. Часовим підрівнем є тимчасовий масштабований рівень часового масштабованого потоку бітів, що складається з одиниць NAL VCL з конкретним значенням TemporalId і асоційованими одиницями NAL не-VCL. У підпункті C.1 стандарту HEVC TargetDecHighestTid встановлюють в targetOpTid. targetOpTid дорівнює найбільшому temporal_id, присутньому в представленні робочої точки для робочої точки, що піддається тесту, і менше ніж або дорівнює найбільшому temporal_id, присутньому в потоці бітів, що піддається 16 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 60 тесту. Таким чином, коли процес декодування викликається для тесту відповідності потоку бітів, значення TargetDecLayerIdSet і TargetDecHighestTid встановлюють в набір значень nuh_reserved_zero_6bits і найбільше значення TemporalId, присутнє в підпотоці бітів, відповідному робочій точці, що піддається тесту для конкретного тесту відповідності потоку бітів. [0100] Таким чином, пристрій (такий як відеокодер 20, відеодекодер 30, додатковий пристрій 21 або інший пристрій), відповідно до одного або більше способів даного розкриття, може виконати процес декодування як частину виконання тесту відповідності потоку бітів. Виконання процесу декодування може включати виконання процесу витягання потоку бітів, щоб витягнути з потоку бітів представлення робочої точки для робочої точки, визначеної цільовим набором ідентифікаторів рівня, і цільовий найвищий часовий ідентифікатор. Цільовий набір ідентифікаторів рівня (тобто TargetDecLayerIdSet) містить значення елементів синтаксису ідентифікатора рівня (наприклад, елементи синтаксису nuh_reserved_zero_6bits), присутніх в представленні робочої точки. Цільовий набір ідентифікаторів рівня є піднабором значень елементів синтаксису ідентифікатора рівня потоку бітів. Цільовий найвищий часовий ідентифікатор (тобто TargetDecHighestTid) дорівнює найбільшому часовому ідентифікатору, присутньому в представленні робочої точки. Цільовий найвищий часовий ідентифікатор менше ніж або дорівнює найбільшому часовому ідентифікатору, присутньому в потоці бітів. Виконання процесу декодування також включає декодування одиниць NAL представлення робочої точки. [0101] Процес декодування не завжди виконується як частина виконання тесту відповідності потоку бітів. Замість цього процес декодування може бути загальним процесом для декодування потоку бітів. Коли процес декодування не виконується як частина тесту відповідності потоку бітів, зовнішнє джерело може визначити TargetDecLayerIdSet і TargetDecHighestTid для робочої точки. Зовнішнє джерело може бути будь-яким джерелом інформації поза потоком бітів. Наприклад, пристрій CDN може програмно визначити і задати TargetDecLayerIdSet і TargetDecHighestTid на основі конфігурації конкретного відеодекодера. Пристрій, що виконує процес декодування, може використовувати зовнішньо вказані TargetDecLayerIdSet і TargetDecHighestTid, щоб витягнути представлення робочої точки з потоку бітів. Пристрій, що виконує процес декодування, може потім декодувати одиниці NAL витягнутого представлення робочої точки. [0102] Таким чином, коли процес декодування не виконується як частина тесту відповідності потоку бітів, пристрій, що виконує процес декодування, може прийняти із зовнішнього джерела цільовий набір ідентифікаторів рівня і цільовий найвищий часовий ідентифікатор. Цільовий набір ідентифікаторів рівня містить значення елементів синтаксису ідентифікатора рівня, присутніх в представленні робочої точки. Цільовий найвищий часовий ідентифікатор дорівнює найбільшому часовому ідентифікатору, присутньому у другому представленні робочої точки. Крім того, пристрій, що виконує процес декодування, може виконати процес витягання потоку бітів, щоб витягнути з потоку бітів представлення робочої точки. Пристрій, що виконує процес декодування, може потім декодувати одиниці NAL представлення робочої точки. [0103] У інших випадках зовнішнє джерело не задає TargetDecLayerIdSet або TargetDecHighestTid. У таких випадках процес декодування може бути виконаний відносно цілого потоку бітів. Наприклад, пристрій може виконати процес витягання потоку бітів, щоб витягнути з потоку бітів представлення робочої точки. У цьому прикладі 0 є єдиним значенням елементів синтаксису ідентифікатора рівня (тобто nuh_reserved_zero_6bits), присутнім в представленні робочої точки. Крім того, в цьому прикладі найбільший часовий ідентифікатор, присутній в потоці бітів, дорівнює найбільшому часовому ідентифікатору, присутньому в представленні робочої точки. У цьому прикладі пристрій, що виконує процес декодування, може декодувати одиниці NAL представлення робочої точки. [0104] Як указано вище, SPS може включати в себе масив елементів синтаксису, позначених як sps_max_dec_pic_buffering[i], де i ранжується від 0 до максимальної кількості часових рівнів в потоці бітів. sps_max_dec_pic_buffering[i] вказує максимальний необхідний розмір DPB, коли найвищий часовий ідентифікатор (HighestTid) дорівнює i. sps_max_dec_pic_buffering[i] вказує необхідний розмір в термінах одиниць буферів зберігання картинок. Крім того, SPS може включати в себе масив елементів синтаксису, позначених sps_max_num_reorder_pics[i], де i ранжується від 0 до максимальної кількості часових рівнів в потоці бітів. sps_max_num_reorder_pics[i] вказує максимальну дозволену кількість картинок, попередніх будь-якій картинці в порядку декодування і наступних за цією картинкою в порядку виведення, коли найвищий часовий ідентифікатор (HighestTid) дорівнює i. Крім того, набір параметрів HRD може включати в себе масив елементів синтаксису, позначений cpb_cnt_minus1[i], де i ранжується від 0 до максимальної кількості часових рівнів в потоці бітів. cpb_cnt_minus1[i] задає 17 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 60 кількість альтернативних специфікацій CPB в потоці бітів закодованої відеопослідовності, коли найвищий часовий ідентифікатор (HighestTid) дорівнює i. [0105] Оскільки HEVC Working Draft 8 не задає, що позначається найвищим часовим ідентифікатором (HighestTid), HEVC Working Draft 8, sps_max_dec_pic_buffering[i], sps_max_num_reorder_pics[i] і cpb_cnt_minus1[i] належно не вибирають в операціях HRD, операціях відповідності потоку бітів і обмеженнях рівня. Іншими словами, параметри sps_max_num_reorder_pics[i], sps_max_dec_pic_buffering[i] і cpb_cnt_minus1[i] в операціях HRD, що вимагають відповідності потоку бітів і обмеження рівня, належно не вибираються. [0106] Відповідно до одного або більше способів даного розкриття, sps_max_dec_pic_buffering[i] визначений таким чином, що sps_max_dec_pic_buffering[i] вказує максимальний необхідний розмір DPB, коли TargetDecHighestTid дорівнює і. TargetDecHighestTid визначений способом, описаним вище. Це може бути в контрасті HEVC Working Draft 8, де HighestTid не визначений. Значення sps_max_dec_pic_buffering[i] повинно бути в діапазоні від 0 до MaxDpbSize (як визначено в підпункті 4 HEVC Working Draft 8), включно. Коли i буде більше ніж 0, sps_max_dec_pic_buffering[i] повинно дорівнювати або бути більше, ніж sps_max_dec_pic_buffering[і-1]. Значення sps_max_dec_pic_buffering[i] повинно бути менше ніж або дорівнювати vps_max_dec_pic_buffering[i] для кожного значення i. [0107] Аналогічно, відповідно до одного або більше способів даного розкриття, sps_max_num_reorder_pics[i] визначений таким чином, що sps_max_num_reorder_pics[i] вказує максимальну дозволену кількість картинок, попередніх будь-якій картинці в порядку декодування і наступних за цією картинкою в порядку виведення, коли TargetDecHighestTid дорівнює і. TargetDecHighestTid визначений способом, описаним вище. Значення sps_max_num_reorder_pics[i] повинно бути в діапазоні від 0 до sps_max_dec_pic_buffering[i], включно. Коли i більше ніж 0, sps_max_num_reorder_pics[i] повинно дорівнювати або бути більше, ніж sps_max_num_reorder_pics[i-1]. Значення sps_max_num_reorder_pics[i] повинно бути менше ніж або дорівнювати vps_max_num_reorder_pics[i] для кожного значення i. [0108] Крім того, відповідно до одного або більше способів даного розкриття, cpb_cnt_minus1[i] може задавати кількість альтернативних специфікацій CPB в потоці бітів закодованої відеопослідовності, коли TargetDecHighestTid дорівнює i, де i ранжується від 0 до максимальної кількості часових рівнів в потоці бітів. TargetDecHighestTid визначений способом, описаним вище. Значення cpb_cnt_minus1[i] знаходиться в діапазоні від 0 до 31, включно. Коли low_delay_hrd_flag[i] дорівнює 1, cpb_cnt_minus1[i] дорівнює 0. Коли cpb_cnt_minus1[i] не присутній, cpb_cnt_minus1[i] логічно виводиться, щоб дорівнювати 0. [0109] Таким чином, відповідно до одного або більше способів даного розкриття, пристрій може визначити, на основі найвищого часового ідентифікатора, конкретний елемент синтаксису з числа масиву елементів синтаксису. Найвищий часовий ідентифікатор визначений таким чином, що найвищий часовий ідентифікатор завжди ідентифікує найвищий тимчасовий рівень, який повинен бути декодований. Таким чином, sps_max_num_reorder_pics[i], sps_max_dec_pic_buffering[i] і cpb_cnt_minus1[i] в операціях HRD, що вимагають відповідності потоку бітів і обмеження рівня, послідовно вибирають з i, що дорівнює явно заданому значенню TargetDecHighestTid. [0110] Таким чином, пристрій (такий відеокодер 20, відеодекодер 30, додатковий пристрій 21 або інший пристрій) може виконати операцію HRD, щоб визначити відповідність потоку бітів стандарту кодування відео або визначити відповідність відеодекодера стандарту кодування відео. Як частину виконання операції HRD, пристрій може визначити найвищий часовий ідентифікатор піднабору потоку бітів, асоційований з вибраною робочою точкою потоку бітів. Крім того, пристрій може визначити, на основі найвищого часового ідентифікатора, конкретний елемент синтаксису з числа масиву елементів синтаксису (наприклад, sps_max_num_reorder_pics[i], sps_max_dec_pic_buffering[i] або cpb_cnt_minus1[i]). Крім того, пристрій може використовувати конкретний елемент синтаксису в операції HRD. [0111] Крім того, в HEVC Working Draft 8, кожна з синтаксичних структур hrd_parameters() в VPS може бути асоційована з синтаксичною структурою operation_point_layer_ids() на основі того, яка синтаксична структура hrd_parameters() вибрана для використання в операціях HRD. Відповідний кожній вибраній синтаксичній структурі hrd_parameters(), набір повідомлень SEI періоду буферизації і повідомлень SEI тактування картинок, також може бути необхідний в операціях HRD. Однак, немає способу асоціювати повідомлення SEI періоду буферизації або повідомлення SEI тактування картинок з синтаксичною структурою hrd_parameters(), для якої асоційована синтаксична структура operation_point_layer_ids() включає в себе множинні значення nuh_reserved_zero_6bits (тобто ID множинних рівнів в розширенні множинних видів, 3DV або масштабованого кодування відео HEVC). 18 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 60 [0112] Вирішення цієї проблеми може полягати в тому, щоб застосувати повідомлення SEI масштабованого вкладення кодування множинних видів, як задано в Додатку Н в H.264/AVC або подібному. Однак, повідомлення SEI масштабованого вкладення кодування множинних видів або подібні повідомлення SE можуть мати наступні недоліки. По-перше, оскільки одиниці NAL SEI в H.264/AVC мають тільки однобайтовий заголовок одиниці NAL, не може мати місце спосіб використовувати інформацію, що переноситься в nuh_reserved_zero_6bits і temporal_id_plus1 в заголовку одиниці NAL HEVC одиниці NAL SEI, для асоціації повідомлення SEI періоду буферизації або тактування картинок до робочих точок. По-друге, кожне вкладене повідомлення SEI може бути асоційоване тільки з однією робочою точкою. [0113] Один або більше способів даного розкриття можуть забезпечити механізм, щоб ясно задати робочі точки, до яких повідомлення SEI періоду буферизації, повідомлення SEI тактування картинок або повідомлення SEI тактування субкартинок застосовується, за допомогою синтаксичної структури applicable_operation_points(), яку можна передати в повідомленні SEI періоду буферизації, повідомленні SEI тактування картинок або в повідомленні SEI тактування субкартинок. Цей механізм може дозволити використання інформації, що переноситься в елементах синтаксису nuh_reserved_zero_6bits і temporal_id_plus1, в заголовку одиниці NAL одиниць NAL SEI і може дозволити спільне використання інформації, переданої в одному і тому ж повідомленні SEI періоду буферизації, тактування картинок або тактування субкартинок за допомогою множинних робочих точок. [0114] Фіг. 2 є блок-схемою, що ілюструє зразковий кодер відео 20, який може реалізувати способи даного розкриття. Фіг. 2 надана з метою пояснення і не повинна бути розглянута як така, що обмежує способи, які широко ілюструються і описані в даному розкритті. З метою пояснення дане розкриття описує відеокодер 20 в контексті кодування HEVC. Однак, способи даного розкриття можуть бути застосовними до інших стандартів або способів кодування. [0115] У прикладі згідно з фіг. 2, відеокодер 20 включає в себе модуль 100 обробки прогнозування, модуль 102 генерування залишку, модуль 104 обробки перетворення, модуль 106 квантування, модуль 108 зворотного квантування, модуль 110 обробки зворотного перетворення, модуль 112 реконструкції, модуль 114 фільтрів, буфер 116 декодованих картинок і модуль 118 ентропійного кодування. Модуль 100 обробки прогнозування включає в себе модуль 120 обробки зовнішнього прогнозування і модуль 126 обробки внутрішнього прогнозування. Модуль 120 обробки зовнішнього прогнозування включає в себе модуль 122 оцінки руху і модуль 124 компенсації руху. У інших прикладах відеокодер 20 може включати в себе більше, менше або інші функціональні компоненти. [0116] Відеокодер 20 може прийняти відеодані. Відеокодер 20 може закодувати кожну CTU у вирізці картинки відеоданих. Кожна з одиниць CTU може бути асоційована з однакового розміру блоками дерева кодування (CTB) яскравості і відповідними CTB згаданої картинки. Як частину кодування CTU, модуль 100 обробки прогнозування може виконати розділення квадродерева, щоб розділити блоки CTB в CTU в прогресивно менші блоки. Менший блок може бути блоками кодування одиниць CU. Наприклад, модуль 100 обробки прогнозування може розділити CTB, асоційований з CTU, на чотири однакового розміру субблоки, розділити один або більше субблоків на чотири однакового розміру субсубблоки і так далі. [0117] Відеокодер 20 може закодувати одиниці CU в CTU, щоб генерувати закодовані представлення одиниць CU (тобто закодовані одиниці CU). Як частину кодування CU, модуль 100 обробки прогнозування може розділити блоки кодування, асоційовані з CU серед однієї або більше одиниць PU згаданої CU. Таким чином, кожна PU може бути асоційована з блоком прогнозування яскравості і відповідними блоками прогнозування насиченості кольору. Відеокодер 20 і відеодекодер 30 можуть підтримувати одиниці PU, що мають різні розміри. Розмір CU може належати до розміру блока кодування яскравості згаданої CU, і розмір PU може належати до розміру блока прогнозування яскравості згаданої PU. Передбачаючи, що розмір конкретної CU дорівнює 2N×2N, відеокодер 20 і відеодекодер 30 можуть підтримувати розміри PU, що дорівнюють 2N×2N або N×N для внутрішнього прогнозування, і симетричні розміри PU, що дорівнюють 2N×2N, 2N×N, N×2N, N×N, або подібні для зовнішнього прогнозування. Відеокодер 20 і відеодекодер 30 можуть також підтримувати асиметричне розділення для розмірів PU, що дорівнюють 2N×nU, 2N×nD, nL×2N і nR×2N, для зовнішнього прогнозування. [0118] Модуль 120 обробки зовнішнього прогнозування може генерувати прогнозуючі дані для PU, виконуючи зовнішнє прогнозування відносно кожної PU в CU. Прогнозуючі дані для PU можуть включати в себе прогнозуючі блоки PU і інформацію руху для PU. Модуль 120 обробки зовнішнього прогнозування може виконати різні операції для PU в CU залежно від того, чи знаходиться PU в I-вирізці, Р-вирізці або В-вирізці. У I-вирізці всі одиниці PU є прогнозованими 19 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 60 внутрішньо. Отже, якщо PU знаходиться в I-вирізці, модуль 120 обробки зовнішнього прогнозування не виконує зовнішнє прогнозування відносно цієї PU. Таким чином, для блоків, закодованих в I-режимі, прогнозуючий блок формують, використовуючи просторове прогнозування з раніше закодованих сусідніх блоків в межах того ж самого кадру. [0119] Якщо PU знаходиться в Р-вирізці, модуль 122 оцінки руху може шукати опорні картинки в списку опорних картинок (наприклад, "RefPicList0") для опорної області для PU. Опорна область для PU може бути областю в межах опорної картинки, яка містить блоки вибірок, які найбільш близько відповідають блокам прогнозування згаданої PU. Модуль 122 оцінки руху може генерувати опорний індекс, який вказує позицію в RefPicList0 опорної картинки, що містить опорну область для PU. Крім того, модуль 122 оцінки руху може генерувати вектор руху, який вказує просторове зміщення між блоком прогнозування PU і опорним місцеположенням, асоційований з опорною областю. Наприклад, вектор руху може бути двовимірним вектором, який забезпечує зміщення від координат в поточній картинці до координат в опорній картинці. Модуль 122 оцінки руху може вивести опорний індекс і вектор руху як інформацію руху згаданої PU. Модуль 124 компенсації руху може генерувати прогнозуючі блоки PU на основі фактичних або інтерпольованих вибірок в опорному місцеположенні, позначеному вектором руху цієї PU. [0120] Якщо PU знаходиться в В-вирізці, модуль 122 оцінки руху може виконати однонаправлене прогнозування або біпрогнозування для PU. Щоб виконати однонаправлене прогнозування для PU, модуль 122 оцінки руху може шукати опорні картинки RefPicList0 або другого списку опорних картинок ("RefPicList1") для опорної області для PU. Модуль 122 оцінки руху може вивести, як інформацію руху PU, опорний індекс, який вказує позицію в RefPicList0 або RefPicList1 опорної картинки, яка містить опорну область, вектор руху, який вказує просторове зміщення між блоком вибірок PU і опорним місцеположенням, асоційований з опорною областю, і один або більше індикаторів напрямку прогнозування, які вказують, чи знаходиться опорна картинка в RefPicList0 або RefPicList1. Модуль 124 компенсації руху може генерувати прогнозуючі блоки PU на основі, щонайменше частково, фактичних або інтерпольованих вибірок в опорній області, позначеній вектором руху цієї PU. [0121] Щоб виконати двонаправлене зовнішнє прогнозування для PU, модуль 122 оцінки руху може шукати опорні картинки в RefPicList0 дляопорної області для PU і може також шукати опорні картинки в RefPicList1 для іншої опорної області для цієї PU. Модуль 122 оцінки руху може генерувати опорні індекси, які вказують позиції в RefPicList0 і RefPicList1 опорних картинок, які містять опорні області. Крім того, модуль 122 оцінки руху може генерувати вектори руху, які вказують просторові зміщення між опорним місцеположенням, асоційованим з опорними областями, і блоком вибірок згаданої PU. Інформація руху PU може включати в себе опорні індекси і вектори руху PU. Модуль 124 компенсації руху може генерувати прогнозуючі блоки PU на основі, щонайменше частково, фактичних або інтерпольованих вибірок в опорній області, позначеній вектором руху цієї PU. [0122] Модуль 126 обробки внутрішнього прогнозування може генерувати прогнозуючі дані для PU за допомогою виконання внутрішнього прогнозування відносно PU. Прогнозуючі дані для PU можуть включати в себе прогнозуючі блоки для PU і різні елементи синтаксису. Модуль 126 обробки внутрішнього прогнозування може виконати внутрішнє прогнозування відносно одиниць PU в I-вирізках, Р-вирізках і В-вирізках. [0123] Щоб виконати внутрішнє прогнозування відносно PU, модуль 126 обробки внутрішнього прогнозування може використовувати множинні режими внутрішнього прогнозування, щоб генерувати множинні набори прогнозуючих даних для PU. Щоб використовувати режим внутрішнього прогнозування, для генерування набору прогнозуючих даних для PU, модуль 126 обробки внутрішнього прогнозування може розширювати вибірки з блоків вибірок сусідніх одиниць PU "через" блоки вибірок PU в напрямку, асоційованому з режимом внутрішнього прогнозування. Сусідні одиниці PU можуть бути вище, вище і справа, вище і зліва або зліва від PU, приймаючи порядок кодування зліва направо, зверху вниз для одиниць PU, одиниць CU і одиниць CTU. Модуль 126 обробки внутрішнього прогнозування може використовувати різні кількості режимів внутрішнього прогнозування, наприклад 33 направлених режими внутрішнього прогнозування. У деяких прикладах кількість режимів внутрішнього прогнозування може залежати від розміру області, асоційованої з PU. [0124] Модуль 100 обробки прогнозування може вибрати прогнозуючі дані для одиниць PU в CU з числа прогнозуючих даних, генерованих модулем 120 обробки зовнішнього прогнозування для одиниць PU, або прогнозуючих даних, генерованих модулем 126 обробки внутрішнього прогнозування для одиниць PU. У деяких прикладах модуль 100 обробки прогнозування вибирає прогнозуючі дані для одиниць PU в CU на основі метрик "швидкість 20 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 60 передачі/спотворення" наборів прогнозуючих даних. Прогнозуючі блоки вибраних прогнозуючих даних можуть бути згадані тут як вибрані прогнозуючі блоки. [0125] Модуль 102 генерування залишку може генерувати, на основі блока кодування яскравості, Cb і Cr згаданої CU і вибраних прогнозуючих блоків яскравості, Cb і Cr одиниць PU в CU, залишкові блоки яскравості, Cb і Cr згаданої CU. Наприклад, модуль 102 генерування залишку може генерувати залишкові блоки згаданої CU таким чином, що кожна вибірка в залишкових блоках має значення, що дорівнює різниці між вибіркою в блоці кодування згаданої CU і відповідною вибіркою у відповідному вибраному прогнозуючому блоці PU згаданої CU. [0126] Модуль 104 обробки перетворення може виконувати розділення квадродерева, щоб розділити залишкові блоки, асоційовані з CU, в блоки перетворення, асоційовані з одиницями TU в CU. Таким чином, TU може бути асоційована з блоком перетворення яскравості і двома блоками перетворення насиченості кольору. Розміри і позиції блоків перетворення яскравості і насиченості кольору одиниці TU в CU можуть бути або можуть не бути основані на розмірах і позиціях блоків прогнозування одиниць PU в CU. Структура квадродерева, відома як "залишкове квадродерево" (RQT), може включати в себе вузли, асоційовані з кожною з областей. Одиниці TU в CU можуть відповідати листовим вузлам RQT. [0127] Модуль 104 обробки перетворення може генерувати блоки коефіцієнтів перетворення для кожної TU в CU за допомогою застосування одного або більше перетворень до блоків перетворення згаданої TU. Модуль 104 обробки перетворення може застосовувати різні перетворення до блока перетворення, асоційованого з TU. Наприклад, модуль 104 обробки перетворення може застосувати дискретне косинусне перетворення (DCT), направлене перетворення або концептуально подібне перетворення до блока перетворення. У деяких прикладах модуль 104 обробки перетворення не застосовує перетворення до блока перетворення. У таких прикладах блок перетворення можна розглядати як блок коефіцієнтів перетворення. [0128] Модуль 106 квантування може квантувати коефіцієнти перетворення в блоці коефіцієнтів. Процес квантування може зменшити бітову глибину, асоційовану з деякими або всіма коефіцієнтами перетворення. Наприклад, n-бітовий коефіцієнт перетворення може бути округлений в меншу сторону до m-бітового коефіцієнта перетворення під час квантування, де n більше, ніж m. Модуль 106 квантування може квантувати блок коефіцієнтів, асоційований з TU в CU, на основі значення параметра квантування (QP), асоційованого з CU. Відеокодер 20 може регулювати міру квантування, застосовувану до блоків коефіцієнтів, асоційованих з CU, за допомогою регулювання значення QP, асоційованого з CU. Квантування може ввести втрату інформації, таким чином квантовані коефіцієнти перетворення можуть мати більш низьку точність, ніж первинні. [0129] Модуль 108 зворотного квантування і модуль 110 обробки зворотного перетворення може застосувати зворотне квантування і зворотні перетворення до блока коефіцієнтів, відповідно, щоб відновити залишковий блок з блока коефіцієнтів. Модуль 112 реконструкції може додати відновлений залишковий блок до відповідних вибірок з одного або більше прогнозуючих блоків, генерованих модулем 100 обробки прогнозування, щоб сформувати відновлений блок перетворення, асоційований з TU. За допомогою відновлення блоків перетворення для кожної TU в CU таким чином, відеокодер 20 може відновити блоки кодування згаданої CU. [0130] Модуль 114 фільтрів може виконувати одну або більше операцій видалення блоковості, щоб зменшити артефакти блоковості в блоках кодування, асоційованих з CU. Буфер 116 декодованих картинок може зберегти відновлені блоки кодування після того, як модуль 114 фільтрів виконує одну або більше операцій видалення блоковості відносно відновлених блоків кодування. Модуль 120 зовнішнього прогнозування може використовувати опорну картинку, яка містить відновлені блоки кодування, щоб виконати зовнішнє прогнозування відносно одиниць PU інших картинок. Крім того, модуль 126 обробки внутрішнього прогнозування може використовувати відновлені блоки кодування в буфері 116 декодованих картинок, щоб виконати внутрішнє прогнозування відносно інших одиниць PU в тій же картинці, як згадана CU. [0131] Модуль 118 ентропійного кодування може прийняти дані від інших функціональних компонентів відеокодера 20. Наприклад, модуль 118 ентропійного кодування може прийняти блоки коефіцієнтів від модуля 106 квантування і може прийняти елементи синтаксису від модуля 100 обробки прогнозування. Модуль 118 ентропійного кодування може виконати одну або більше операцій ентропійного кодування відносно даних, щоб генерувати ентропійно кодовані дані. Наприклад, модуль 118 ентропійного кодування може виконати операцію контекстно-адаптивного кодування із змінною довжиною коду (CAVLC), операцію CABAC, операцію кодування з довжиною "від змінної до змінної" (V2V), основану на синтаксисі операцію 21 UA 113334 C2 5 10 15 20 25 контекстно-адаптивного двійкового арифметичного кодування (SBAC), операцію ентропійного кодування з розділенням інтервалу імовірності (PIPE), операцію експоненціального кодування по Голомбу або інший тип операції ентропійного кодування відносно даних. Відеокодер 20 може вивести потік бітів, який включає в себе ентропійно кодовані дані, генеровані блоком 118 ентропійного кодування. Наприклад, потік бітів може включати в себе дані, які представляють RQT для CU. [0132] Як указано в іншому місці в даному розкритті, відеокодер 20 може сигналізувати VPS в потоці бітів. У HEVC Working Draft 8 конкретні елементи синтаксису VPS (тобто vps_max_dec_pic_buffering[i], vps_max_num_reorder_pics[i] і vps_max_latency_increase[i]) визначені з посиланням на значення HighestTid, яке не визначене. Відповідно до одного або більше способів даного розкриття, ці елементи синтаксису VPS можуть бути визначені з посиланням на значення TargetDecHighestTid, яке визначене так, як TargetDecHighestTid, яке описане в іншому місці в даному розкритті. Таблиця 3 нижче ілюструє синтаксис VPS відповідно до одного або більше способів даного розкриття. [0133] Виділені частини Таблиці 3 і інших таблиць синтаксису або описів семантики протягом даного розкриття можуть вказувати відмінності від HEVC Working Draft 8. Відповідно до одного або більше способів даного розкриття, семантика для наступних елементів синтаксису VPS може бути змінена наступним чином. Семантика для інших елементів синтаксису VPS може залишитися такою ж, як в HEVC Working Draft 8. vps_max_dec_pic_buffering[i] задає необхідний розмір буфера декодованих картинок в одиницях буферів зберігання картинок, коли TargetDecHighestTid дорівнює i. Значення vps_max_dec_pic_buffering[i] повинно бути в діапазоні від 0 до MaxDpbSize (як визначено в підпункті 4), включно. Коли i більше ніж 0, vps_max_dec_pic_buffering[i] повинно дорівнювати або бути більше, ніж vps_max_dec_pic_buffering[i-1]. vps_max_num_reorder_pics[i] вказує максимальну дозволену кількість картинок, попередніх будь-якій картинці в порядку декодування і наступних за цією картинкою в порядку виведення, коли TargetDecHighestTid дорівнює i. Значення vps_max_num_reorder_pics[i] повинно бути в діапазоні від 0 до vps_max_dec_pic_buffering[i], включно. Коли i більше ніж 0, 22 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 vps_max_num_reorder_pics[i] повинно дорівнювати або бути більше, ніж vps_max_num_reorder_pics[i-1]. vps_max_latency_increase[i], що не дорівнює 0, використовується для обчислення значення MaxLatencyPictures[i], як задано за допомогою установлення MaxLatencyPictures[i] рівним vps_max_num_reorder_pics[i]+vps_max_latency_increase[i]. Коли vps_max_latency_increase[i] не дорівнює 0, значення MaxLatencyPictures[i] задає максимальну кількість картинок, які можуть передувати будь-якій картинці в закодованій відеопослідовності в порядку виведення і ідуть за цією картинкою в порядку декодування, коли TargetDecHighestTid дорівнює i. Коли vps_max_latency_increase[i] дорівнює 0, відповідний межа не виражена. Значення 32 vps_max_latency_increase[i] повинно бути в діапазоні від 0 до 2 -2, включно. [0134] Як показано вище, семантика vps_max_dec_buffering[i], vps_max_num_reorder_pics[i] і vps_max_latency_increase[i] може бути визначена відносно TargetDecHighestTid. Навпаки, HEVC Working Draft 8 визначає vps_max_dec_pic_buffering[i], vps_max_num_reorder_pics[i] і vps_max_latency_increase[i] з посиланнями HighestTid, де HighestTid не визначений. [0135] Як показано в зразковому синтаксисі з Таблиці 3, VPS включає в себе пари синтаксичних структур operation_point_layer_ids() і синтаксичних структур hrd_parameters(). Синтаксичні структури hrd_parameters() включають в себе елементи синтаксису, які задають набори параметрів HRD. Синтаксична структура operation_point_layer_ids() включає в себе елементи синтаксису, які ідентифікують набір робочих точок. Набір параметрів HRD, заданий в синтаксичній структурі hrd_parameters(), може бути застосовним до робочих точок, ідентифікованих елементами синтаксису у відповідній синтаксичній структурі operation_point_layer_ids(). Таблиця 4 нижче забезпечує зразковий синтаксис для синтаксичної структури operation_point_layer_ids(). [0136] Секція 7.4.4 в HEVC Working Draft 8 описує семантику синтаксичної структури op_point. Відповідно до одного або більше способів даного розкриття, секція 7.4.4 HEVC Working Draft 8 може бути змінена таким чином, щоб забезпечити семантику для синтаксичної структури operation_point_layer_ids() з Таблиці 4. Синтаксична структура operation_point_layer_ids(opIdx) задає набір значень nuh_reserved_zero_6bits, включених в OpLayerIdSet робочих точок, до яких синтаксична структура opIdx-th hrd_parameters() застосовується в наборі параметрів відео. op_num_layer_id_values_minus1[opIdx] плюс 1 задає кількість значень nuh_reserved_zero_6bits, включених в OpLayerIdSet робочих точок, до яких синтаксична структура opIdx-th hrd_parameters() застосовується в наборі параметрів відео. op_num_layer_id_values_minus1[opIdx] повинно бути менше ніж або дорівнювати 63. У потоках бітів, відповідних цій Специфікації, op_num_layer_id_values_minus1[opIdx] повинно дорівнювати 0. Хоч потрібно, щоб значення op_num_layer_id_values_minus1[opIdx] дорівнювало 0 в цій версії цієї Специфікації, декодери повинні дозволити іншим значенням з'являтися в синтаксисі op_num_layer_id_values_minus1[opIdx]. op_layer_id[opIdx][i] задає i-е значення nuh_reserved_zero_6bits, включеного в OpLayerIdSet робочих точок, до яких синтаксична структура opIdx-th hrd_parameters() застосовується в наборі параметрів відео. Ніяке значення в op_layer_id[opIdx][i] не повинно дорівнювати op_layer_id[opIdx][j], коли i не дорівнює j і обидва і i, і j не знаходяться в діапазоні від 0 до op_num_layer_id_values_minus1, включно. op_layer_id[0][0] логічно виводиться, щоб дорівнювати 0. [0137] Як указано вище, елемент синтаксису op_num_layer_id_values_minus1[opIdx] плюс 1 задає кількість значень nuh_reserved_zero_6bits, включених в OpLayerIdSet робочих точок, до яких синтаксична структура opIdx-th hrd_parameters() застосовується в наборі параметрів відео. Навпаки, HEVC Working Draft 8 забезпечує, що елемент синтаксису op_num_layer_id_values_minus1[opIdx] плюс 1 задає кількість значень nuh_reserved_zero_6bits, включених в робочу точку, ідентифіковану за допомогою opIdx. Аналогічно, в прикладі з Таблиці 4 елемент синтаксису op_layer_id[opIdx][i] задає i-е значення nuh_reserved_zero_6bits, включене 23 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 в OpLayerIdSet робочих точок, до яких синтаксична структура opIdx-th hrd_parameters() застосовується в наборі параметрів відео. Навпаки, HEVC Working Draft 8 забезпечує, що елемент синтаксису op_layer_id[opIdx][i] задає i-е значення nuh_reserved_zero_6bits, включеного в робочу точку, ідентифіковану за допомогою opIdx. [0138] Секція 7.4.2.2 в HEVC Working Draft 8 описує семантику для SPS. Відповідно до одного або більше способів даного розкриття наступні зміни можуть бути зроблені в секції 7.4.2.2 HEVC Working Draft 8. Семантика для інших елементів синтаксису SPS може бути тією ж, як в HEVC Working Draft 8. sps_max_dec_pic_buffering[i] задає максимальний необхідний розмір буфера декодованих картинок в одиницях буферів зберігання картинок, коли TargetDecHighestTid дорівнює i. Значення sps_max_dec_pic_buffering[i] повинно бути в діапазоні від 0 до MaxDpbSize (як задано в підпункті 4), включно. Коли i більше ніж 0, sps_max_dec_pic_buffering[i] повинно дорівнювати або бути більше, ніж sps_max_dec_pic_buffering[i-1]. Значення sps_max_dec_pic_buffering[i] повинно бути менше ніж або дорівнювати vps_max_dec_pic_buffering[i] для кожного значення i. sps_max_num_reorder_pics[i] вказує максимальну дозволену кількість картинок, попередніх будь-якій картинці в порядку декодування і наступних за цією картинкою в порядку виведення, коли TargetDecHighestTid дорівнює i. Значення sps_max_num_reorder_pics[i] повинно бути в діапазоні від 0 до sps_max_dec_pic_buffering[i], включно. Коли i більше ніж 0, sps_max_num_reorder_pics[i] повинно дорівнювати або бути більше, ніж sps_max_num_reorder_pics[i-1]. Значення sps_max_num_reorder_pics[i] повинно бути менше ніж або дорівнювати vps_max_num_reorder_pics[i] для кожного значення i. sps_max_latency_increase[i], що не дорівнює 0, використовується для обчислення значення MaxLatencyPictures[i], як задано за допомогою установлення MaxLatencyPictures[i] рівним sps_max_num_reorder_pics[i]+sps_max_latency_increase[i]. Коли sps_max_latency_increase[i] не дорівнює 0, значення MaxLatencyPictures[i] задає максимальну кількість картинок, які можуть передувати будь-якій картинці в закодованій відеопослідовності в порядку виведення і ідуть за цією картинкою в порядку декодування, коли TargetDecHighestTid дорівнює i. Коли sps_max_latency_increase[i] дорівнює 0, ніяка відповідна межа не виражається. Значення 32 sps_max_latency_increase[i] повинно бути в діапазоні від 0 до 2 -2, включно. Значення sps_max_latency_increase[i] повинно бути менше ніж або дорівнювати vps_max_latency_increase[i] для кожного значення i. [0139] Як показано вище, семантики sps_max_dec_pic_buffering[i], sps_max_num_reorder_pics[i] і sps_max_latency_increase[i] визначені в термінах TargetDecHighestTid. TargetDecHighestTid визначений так, як описано в іншому місці в даному розкритті. Навпаки, HEVC Working Draft 8 визначає семантику sps_max_dec_pic_buffering[i], sps_max_num_reorder_pics[i] і sps_max_latency_increase[i] з посиланням на HighestTid, який не визначений. [0140] Секція 7.4.5.1 в HEVC Working Draft 8 описує загальну семантику заголовка вирізки. Відповідно до одного або більше способів даного розкриття, наступні зміни можуть бути зроблені до секції 7.4.5.1 в HEVC Working Draft 8. Інші частини секції 7.4.5.1 HEVC Working Draft 8 можуть залишитися такими ж. no_output_of_prior_pics_flag задає, як раніше декодовані картинки в буфері декодованих картинок розглядаються після декодування картинки IDR або BLA. Див. Додаток С. Коли поточна картинка є картинкою CRA, або поточна картинка є картинкою IDR або BLA, яка є першою картинкою в потоці бітів, значення no_output_of_prior_pics_flag не має ефекту на процес декодування. Коли поточна картинка є картинкою IDR або BLA, яка не є картинкою в потоці бітів, і значення pic_width_in_luma_samples або pic_height_in_luma_samples, або sps_max_dec_pic_buffering[TargetDecHighestTid], виведене з активного набору параметрів послідовності, відрізняється від значення pic_width_in_luma_samples або pic_height_in_luma_samples, або sps_max_dec_pic_buffering[TargetDecHighestTid], виведеного з набору параметрів послідовності, активного для попередньої картинки, no_output_of_prior_pics_flag, що дорівнює 1, може (але не повинен) бути логічно виведеним декодером незалежно від фактичного значення no_output_of_prior_pics_flag. [0141] Як показано вище, семантика no_output_of_prior_pics_flag визначена з посиланнями на sps_max_dec_pic_buffering[TargetDecHighestTid]. TargetDecHighestTid визначений так, як описано в іншому місці в даному розкритті. Навпаки, HEVC Working Draft 8 визначає семантику no_output_of_prior_pics_flags з посиланнями на sps_max_dec_pic_buffering[HighestTid], де HighestTid не визначений. 24 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 60 [0142] Секція 8.1 HEVC Working Draft 8 описує загальний процес декодування. Відповідно до одного або більше способів даного розкриття, загальний процес декодування HEVC Working Draft 8 може бути змінений наступним чином. Вхідними даними цього процесу є потік бітів і вихідними даними - список декодованих картинок. Набір TargetDecLayerIdSet, який задає набір значень для nuh_reserved_zero_6bits одиниць NAL VCL, які повинні бути декодовані, заданий наступним чином: - якщо деякий зовнішній засіб, не заданий в цій Специфікації, доступний, щоб встановити TargetDecLayerIdSet, TargetDecLayerIdSet встановлюють цим зовнішнім засобом; - інакше, якщо процес декодування викликається в тесті відповідності потоку бітів, як задано в підпункті C.1, TargetDecLayerIdSet встановлюють, як визначено в підпункті C.1; - інакше, TargetDecLayerIdSet містить тільки одне значення для nuh_reserved_zero_6bits, яке дорівнює 0. Змінна TargetDecHighestTid, яка ідентифікує найвищий тимчасовий підрівень, який повинен бути декодований, задана наступним чином: - якщо деякий зовнішній засіб, не визначений в цій Специфікації, доступний, щоб встановити TargetDecHighestTid, TargetDecHighestTid встановлюють цим зовнішнім засобом; - інакше, якщо процес декодування викликається в тесті відповідності потоку бітів, як задано в підпункті C.1, TargetDecHighestTid встановлюють, як визначено в підпункті C.1; - інакше, TargetDecHighestTid встановлюють в sps_max_sub_layers_minus1. Процес витягання підпотоку бітів, як задано в підпункті 10.1, застосовують з TargetDecHighestTid і TargetDecLayerIdSet як вхідними даними, і вихідні дані призначають на потік бітів, званий BitstreamToDecode. Нижченаведене стосується кожної закодованої картинки (званої поточною картинкою, яка позначена змінною CurrPic) в BitstreamToDecode. Залежно від значення chroma_format_idc кількість масивів вибірок поточної картинки є наступною: - якщо chroma_format_idc дорівнює 0, поточна картинка складається з 1 масиву вибірок SL; - інакше (chroma_format_idc не дорівнює 0), поточна картинка складається з 3 масивів вибірок SL, SCb, SCr. Процес декодування для поточної картинки приймає елементи синтаксису і заголовні змінні з пункту 7 як вхідні дані. При інтерпретації семантики кожного елемента синтаксису в кожній одиниці NAL і "потоку бітів" або його частини (наприклад, закодованої відеопослідовності) залучені, причому потік бітів або його частина означає BitstreamToDecode або його частину. Процес декодування заданий таким чином, що всі декодери повинні виробити чисельно ідентичні результати. Будь-який процес декодування, який приводить до ідентичних результатів процесу, описаного тут, відповідає вимогам процесу декодування цієї Специфікації. Коли поточна картинка є картинкою CRA, застосовується наступне: - якщо деякий зовнішній засіб, не визначений в цій Специфікації, доступний, щоб встановити змінну HandleCraAsBlaFlag в деяке значення, HandleCraAsBlaFlag встановлюють в значення, надане зовнішнім засобом; - інакше, значення HandleCraAsBlaFlag встановлене в 0. Коли поточна картинка є картинкою CRA, і HandleCraAsBlaFlag дорівнює 1, застосовується наступне під час процесів синтаксичного розбору і декодування для кожної закодованої одиниці NAL вирізки: - значення nal_unit_type встановлене в BLA_W_LP; - значення no_output_of_prior_pics_flag встановлене в 1. ЗАУВАЖЕННЯ 1. Реалізації декодера можуть вибрати встановлювати значення no_output_of_prior_pics_flag в 0, коли установлення не зачіпає декодування поточної картинки і наступних картинок в порядку декодування, наприклад, коли завжди є буфер зберігання картинок, доступний, коли необхідно. Кожна картинка, згадана в цьому пункті, є повною закодованою картинкою. Залежно від значення separate_colour_plane_flag процес декодування структурований наступним чином. - Якщо separate_colour_plane_flag дорівнює 0, процес декодування викликається однократно з поточною картинкою, що є вихідними даними. - Інакше (separate_colour_plane_flag дорівнює 1), процес декодування викликається три рази. Вхідними даними до процесу декодування є всі одиниці NAL закодованої картинки з ідентичним значенням colour_plane_id. Процес декодування одиниць NAL з конкретним значенням colour_plane_id задається, ніби тільки закодована відеопослідовність з монохромним 25 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 форматом кольору з цим конкретним значенням colour_plane_id присутня в потоці бітів. Вихідні дані кожного з трьох процесів декодування призначаються на 3 масиви вибірок поточної картинки з одиницями NAL з colour_plane_id, що дорівнює 0, призначуваними на SL, одиницями NAL з colour_plane_id, що дорівнює 1, призначуваними на S Cb, і одиницями NAL з colour_plane_id, що дорівнює 2, призначуваними на SCr. ЗАУВАЖЕННЯ 1. Змінна ChromaArrayType виводиться як 0, коли separate_colour_plane_flag дорівнює 1 і chroma_format_idc дорівнює 3. В процесі декодування значення цієї змінної оцінюють, приводячи до операцій, ідентичних такій з монохромних картинок з chroma_format_idc, що дорівнює 0. Процес декодування оперує наступним чином для поточної картинки CurrPic. 1. Декодування одиниць NAL задане в підпункті 8.2. 2. Процеси в підпункті 8.3 задають процеси декодування, використовуючи елементи синтаксису в рівні вирізки і вище: - змінні і функції, що стосуються рахунку по порядку картинок, викликаються в підпункті 8.3.1 (який тільки необхідний, щоб бути викликаним для першої вирізки картинки); - процес декодування для набору опорних картинок в підпункті 8.3.2 викликається, в якому опорні картинки можуть бути відмічені як "невикористовувана для посилання" або "використовувана для довгострокового посилання" (який повинен бути викликаний тільки для першої вирізки картинки); - коли поточна картинка є картинкою BLA або є картинкою CRA, яка є першою картинкою в потоці бітів, процес декодування для того, щоб генерувати недоступні опорні картинки, задані в підпункті 8.3.3, викликається (який повинен бути викликаний тільки для першої вирізки картинки); - PicOutputFlag встановлюють наступним чином: - якщо поточна картинка є картинкою TFD, і попередня картинка RAP в порядку декодування є картинкою BLA або є картинкою CRA, яка є першою закодованою картинкою в потоці бітів, PicOutputFlag встановлюють рівним 0; - інакше, PicOutputFlag встановлюють рівним pic_output_flag; - на початку процесу декодування для кожної Р- або В-вирізки, процес декодування для побудови списків опорних картинок, заданих в підпункті 8.3.4, викликається для виведення списку опорних картинок 0 (RefPicList0), і при декодуванні В-вирізки, списку опорних картинок 1 (RefPicList1); - після того, як всі вирізки поточної картинки були декодовані, декодована картинка відмічена як "використовується для короткострокового посилання". 3. Процеси в підпунктах 8.4, 8.5, 8.6 і 8.7 задають процеси декодування, використовуючи елементи синтаксису в рівні кодування блока дерева і вище. [0143] Як указано в іншому місці в даному розкритті, в HEVC Working Draft 8, коли процес декодування викликається для тесту відповідності потоку бітів, семантики елементів синтаксису ясно не визначені як значення TargetDecLayerIdSet, і TargetDecHighestTid належно не встановлене. Модифікації, показані вище, загального процесу декодування можуть вирішити цю проблему. Як показано вище, коли загальний процес декодування викликається для тесту відповідності потоку бітів, значення TargetDecLayerIdSet і TargetDecHighestTid встановлені, як задано в підпункті C.1. Як описано нижче, модифікована версія підпункту C.1 може встановити TargetDecLayerIdSet в набір значень nuh_reserved_zero_6bits, присутніх в підпотоці бітів, відповідному робочій точці, що піддається тесту. Модифікована версія підпункту C.1 може встановити TargetDecHighestTid в найбільше значення TemporalId, присутнє в підпотоці бітів, відповідному робочій точці, що піддається тесту. [0144] Таким чином, пристрій, такий як відеодекодер 30, може виконати процес декодування як частину виконання тесту відповідності потоку бітів. Виконання процесу декодування може включати виконання процесу витягання потоку бітів, щоб витягнути з потоку бітів представлення робочої точки для робочої точки, визначеної цільовим набором ідентифікаторів рівня, і цільовий найвищий часовий ідентифікатор. Цільовий набір ідентифікаторів рівня може містити значення елементів синтаксису ідентифікатора рівня, присутніх в представленні робочої точки, причому цільовий набір ідентифікаторів рівня є піднабором значень елементів синтаксису ідентифікатора рівня потоку бітів. Цільовий найвищий часовий ідентифікатор може дорівнювати найбільшому часовому ідентифікатору, присутньому в представленні робочої точки, причому цільовий найвищий часовий ідентифікатор є меншим ніж або дорівнює найбільшому часовому ідентифікатору, присутньому в потоці бітів. Крім того, пристрій може декодувати одиниці NAL представлення робочої точки. 26 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 [0145] Як указано в модифікаціях до секції 8.1 вище, процес декодування не обов'язково виконується як частина тесту відповідності потоку бітів. У деяких випадках, коли процес декодування не виконується як частина тесту відповідності потоку бітів, пристрій може виконати процес витягання потоку бітів, щоб витягнути з потоку бітів представлення робочої точки для робочої точки. У цьому випадку 0 може бути єдиним значенням елементів синтаксису ідентифікатора рівня (наприклад, nuh_reserved_zero_6bits), присутніх в представленні робочої точки, і найбільший часовий ідентифікатор, присутній в потоці бітів, дорівнює найбільшому часовому ідентифікатору, присутньому в представленні робочої точки для робочої точки. Пристрій може декодувати одиниці NAL представлення робочої точки другої робочої точки. [0146] Альтернативно, пристрій може прийняти, із зовнішнього джерела, цільовий набір ідентифікаторів рівня і цільовий найвищий часовий ідентифікатор. Цільовий набір ідентифікаторів рівня може містити значення елементів синтаксису ідентифікатора рівня, присутніх в представленні робочої точки для робочої точки, яка визначена цільовим набором ідентифікаторів рівня, і цільовий найвищий часовий ідентифікатор. Цільовий найвищий часовий ідентифікатор може дорівнювати найбільшому часовому ідентифікатору, присутньому в представленні робочої точки для робочої точки. Крім того, пристрій може виконати процес витягання потоку бітів, щоб витягнути з потоку бітів представлення робочої точки для робочої точки. Крім того, пристрій може декодувати одиниці NAL представлення робочої точки для робочої точки. [0147] Крім того, відповідно до одного або більше способів даного розкриття, процес витягання підпотоку бітів, описаний в підпункті 10.1 HEVC, Working Draft 8, може бути змінений наступним чином. Є вимога відповідності потоку бітів, щоб будь-який підпотік бітів, який включений у вихідних даних процесу, заданого в цьому підпункті, з tIdTarget, що дорівнює будь-якому значенню в діапазоні від 0 до 6, включно, і з layerIdSetTarget, що містить тільки значення 0, повинен відповідати цій Специфікації. ЗАУВАЖЕННЯ. Відповідний потік бітів містить одну або більше закодованих одиниць NAL вирізки з nuh_reserved_zero_6bits, що дорівнює 0, і TemporalId, що дорівнює 0. Вхідними даними до цього процесу є змінна tIdTarget і набір layerIdSetTarget. Вихідними даними цього процесу є підпотік бітів. Підпотік бітів виводять за допомогою видалення з потоку бітів всіх одиниць NAL з TemporalId, більшим ніж tIdTarget або nuh_reserved_zero_6bits не серед значень в layerIdSetTarget. [0148] У підпункті 10.1 HEVC Working Draft 8 використовується ім'я змінної targetDecLayerIdSet, де layerIdSetTarget використовується вище. Зміни, показані вище, в підпункті 10.1 HEVC Working Draft, щоб використовувати layerIdSetTarget, можуть служити для пояснення, що може бути відмінність між набором ідентифікаторів рівня, використовуваних в процесі витягання підпотоку бітів, і targetDecLayerIdSet, який, як описано в іншому місці в даному розкритті, має конкретне визначення. [0149] Крім того, відповідно до одного або більше способів даного розкриття, загальні специфікації ярусів і рівнів секції 4.1 HEVC Working Draft 8 можуть бути змінені наступним чином. У даному розкритті "профіль" може стосуватися піднабору синтаксису потоку бітів. "Яруси" і "рівні" можуть бути задані в межах кожного профілю. Рівень ярусу може бути заданим набором обмежень, накладених на значення елементів синтаксису в потоці бітів. Ці обмеження можуть бути простими межами відносно значень. [0150] Альтернативно, обмеження можуть прийняти форму обмежень на арифметичні комбінації значень (наприклад, ширина картинки, помножена на висоту картинки, помножену на кількість картинок, декодованих за секунду). Рівень, заданий для більш низького ярусу, є більш обмеженим, ніж рівень, заданий для більш високого ярусу. Відповідно до прикладу даного розкриття, секція "загальні специфікації рівня" (тобто секція 4.1) HEVC Working Draft 8 наново названа "загальні специфікації ярусу і рівня", і текст змінений наступним чином. Таблиця А-1 може залишитися такою ж, як в HEVC Working Draft 8. З метою порівняння можливостей ярусу, ярус з general_tier_flag, що дорівнює 0, повинен розглядатися як більш низький ярус, ніж ярус з general_tier_flag, що дорівнює 1. З метою порівняння можливостей рівня, для конкретного ярусу, більш низький рівень має більш низьке значення general_level_idc. Наступне задане для того, щоб виразити обмеження в цьому додатку: - нехай одиниця доступу n є n-ою одиницею доступу в порядку декодування, з першою одиницею доступу, що є одиницею доступу 0 (тобто 0-ою одиницею доступу); 27 UA 113334 C2 5 10 15 20 25 30 35 40 45 50 55 60 - нехай картинка n є закодованою картинкою або відповідною декодованою картинкою одиниці доступу n; - нехай змінна fR встановлена в 1÷300. Потоки бітів, відповідні профілю на заданому рівні, повинні підпорядковуватися наступним обмеженням для кожного тесту відповідності потоку бітів, як визначено в Додатку С: a) номінальний час видалення одиниці доступу n (з n>0) з CPB, як задано в підпункті C.2.2, задовольняє обмеження, що tr, дорівнює або більше, ніж n(n)-tr(n-1) Max(PicSizeInSamplesY MaxLumaSR, fR) для значення PicSizeInSamplesY картинки n-1, де MaxLumaSR - значення, задане в Таблиці А-1, яка застосовується до картинки n-1; b) різниця між послідовними часами виведення з DPB, як визначено в підпункті C.3.2, задовольняє обмеження, що to, dpb(n)>=Max(PicSizeInSamplesY MaxLumaSR, fR) для значення PicSizeInSamplesY картинки n, де MaxLumaSR - значення, визначене в Таблиці А-1 для картинки n, за умови, що картинка n є картинкою, яка видається і не є останньою картинкою потоку бітів, який виводиться; c) PicSizeInSamplesY
ДивитисяДодаткова інформація
Назва патенту англійськоюHypothetical reference decoder parameters in video coding
Автори англійськоюWang, Ye-Kui
Автори російськоюВан Е-Куй
МПК / Мітки
МПК: H04N 21/2343
Мітки: опорного, гіпотетичного, параметри, декодера, відео, кодуванні
Код посилання
<a href="https://ua.patents.su/60-113334-parametri-gipotetichnogo-opornogo-dekodera-pri-koduvanni-video.html" target="_blank" rel="follow" title="База патентів України">Параметри гіпотетичного опорного декодера при кодуванні відео</a>
Попередній патент: Спосіб термічного аналізу рідкого чавуну
Наступний патент: Спосіб спиртового зброджування медового сусла з високим вмістом цукру
Випадковий патент: Упорний підшипник