Определение значений уровня границы фильтрования удаления блочности для кодирования видео
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в уменьшении появления визуальных артефактов. Способ кодирования видео данных содержит ассоциирование, без определения того, является ли край между первым блоком видео и вторым блоком видео краем единицы кодирования (CU), первого значения уровня границы с краем в ответ на определение, что первый блок видео или второй блок видео ассоциированы с внутренне предсказанной CU; ассоциирование второго значения уровня границы с краем в ответ на определение, что первый блок видео и второй блок видео не ассоциированы с внутренне предсказанной CU, и что первый блок видео или второй блок видео ассоциированы с единицей преобразования (TU) с ненулевым уровнем коэффициента преобразования; ассоциирование или второго значения уровня границы, или третьего значения уровня границы с краем, когда первый блок видео и второй блок видео не ассоциированы с внутренне предсказанной CU, и первый блок видео и второй блок видео не ассоциированы с TU с ненулевым уровнем коэффициента преобразования; применение одного или более фильтров удаления блочности к выборкам, ассоциированным с краем, когда упомянутый край ассоциирован с первым значением уровня границы или вторым значением уровня границы, но не третьим значением уровня границы. 4 н. и 30 з.п. ф-лы, 19 ил., 1 табл.
Реферат
[0001] Настоящая заявка испрашивает приоритет предварительной заявки на патент США №61/551,325, поданной 25 октября 2011 года, предварительной заявки на патент США №61/554,887, поданной 2 ноября 2011 года, предварительной заявки на патент США №61/579,488, поданной 22 декабря 2011 года, и предварительной заявки на патент США №61/589,143, поданной 20 января 2012 года, все содержимое которых тем самым включено по ссылке.
ОБЛАСТЬ ТЕХНИКИ
[0002] Настоящее раскрытие относится к кодированию видео и, более подробно, к фильтрованию декодированных видео данных.
УРОВЕНЬ ТЕХНИКИ
[0003] Цифровые способности видео могут быть включены в широкий диапазон устройств, включая цифровые телевизоры, цифровые системы прямого вещания, беспроводные системы вещания, персональные цифровые помощники (PDA), портативные или настольные компьютеры, цифровые камеры, цифровые устройства регистрации, цифровые медиаплееры, устройства видео игр, пульты видеоигр, сотовые или спутниковые радио-телефоны, устройства организации видео телеконференций и т.п. Цифровые видео устройства реализуют способы сжатия видео, такие как описанные в стандартах, определенных MPEG-2, MPEG-4, ITU-T H.263 или ITU-T H.264/MPEG-4, Часть 10, Усовершенствованное видео кодирование (AVC), высокоэффективное кодирование видео (HEVC) и расширения таких стандартов, чтобы передавать и принимать цифровую видео информацию более эффективно.
[0004] Способы сжатия видео выполняют пространственное (внутри картинки) предсказание и/или временное (между картинками) предсказание, чтобы уменьшить или удалить избыточность, присущую видео последовательностям. Для основанного в отношении блоков кодирования видео вырезка (слайс) видео может быть разделена отношении блоков видео, которые могут также называться как блоки дерева, единицы кодирования (единицы CU) и/или узлы кодирования. Блоки видео во внутренне кодированной (I) вырезке картинки кодируют, используя пространственное предсказание относительно опорных выборок в соседних блоках в той же самой картинке. Блоки видео во внешне кодированной (P или B) вырезке картинки могут использовать пространственное предсказание относительно опорных выборок в соседних блоках в той же самой картинке или временное предсказание относительно опорных выборок в других опорных картинках. Картинки могут называться как кадры, и опорные картинки могут называться как опорные кадры.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0005] В целом, настоящее раскрытие описывает способы для применения фильтра удаления блочности к краю, который имеет место между первым блоком видео и вторым блоком видео. Применение фильтра удаления блочности к краю может уменьшить появление визуальных артефактов, вызванных основанным в отношении блока кодированием. Как описано здесь, кодировщик видео может ассоциировать первое значение уровня границы с краем в ответ на определение, что первый блок видео или второй блок видео ассоциированы с внутренне предсказанной единицей кодирования (CU), где край имеет место на границе между первым блоком видео и вторым блоком видео. Кодировщик видео может ассоциировать второе или третье значение уровня границы с краем, когда ни первый блок видео, ни второй блок видео не ассоциированы с внутренне предсказанной CU. Кодировщик видео может применить один или более фильтров удаления блочности к выборкам, ассоциированным с краем, когда край ассоциирован с первым значением уровня границы или вторым значением уровня границы. Третье значение уровня границы указывает, что фильтры удаления блочности выключены для выборок, ассоциированных с краем.
[0006] Настоящее раскрытие описывает способ кодирования видео данных. Способ содержит ассоциирование первого значения уровня границы с краем в ответ на определение, что первый блок видео или второй блок видео ассоциированы с внутренне предсказанной единицей кодирования (CU), причем край имеет место на границе между первым блоком видео и вторым блоком видео. Способ также содержит ассоциирование второго значения уровня границы с краем в ответ на определение, что первый блок видео и второй блок видео не ассоциированы с внутренне предсказанной CU и что одно или более дополнительных условий удовлетворены. Кроме того, способ содержит ассоциирование третьего значения уровня границы с краем в ответ на определение, что первый блок видео и второй блок видео не ассоциированы с внутренне предсказанной CU и что одно или более дополнительных условий не удовлетворены. Способ также содержит применение одного или более фильтров удаления блочности к выборкам, ассоциированным с краем, когда край ассоциирован с первым значением уровня границы или вторым значением уровня границы, но не третьим значением уровня границы.
[0007] Кроме того, настоящее раскрытие описывает устройство кодирования видео, содержащее один или более процессоров, сконфигурированных, чтобы ассоциировать первое значение уровня границы с краем в ответ на определение, что первый блок видео или второй блок видео ассоциированы с внутренне предсказанной единицей кодирования (CU), причем край имеет место на границе между первым блоком видео и вторым блоком видео. Один или более процессоров сконфигурированы, чтобы ассоциировать второе значение уровня границы с краем в ответ на определение, что первый блок видео и второй блок видео не ассоциированы с внутренне предсказанной CU и что одно или более дополнительных условий удовлетворены. Один или более процессоров сконфигурированы, чтобы ассоциировать третье значение уровня границы с краем в ответ на определение, что первый блок видео и второй блок видео не ассоциированы с внутренне предсказанной CU и что одно или более дополнительных условий не удовлетворены. Кроме того, один или более процессоров сконфигурированы, чтобы применять фильтр удаления блочности к выборкам, ассоциированным с краем, когда край ассоциирован с первым значением уровня границы или вторым значением уровня границы, но не третьим значением уровня границы.
[0008] Настоящее раскрытие также описывает устройство кодирования видео, которое содержит средство для ассоциирования первого значения уровня границы с краем в ответ на определение, что первый блок видео или второй блок видео ассоциированы с внутренне предсказанной единицей кодирования (CU), причем край имеет место на границе между первым блоком видео и вторым блоком видео. Устройство кодирования видео также содержит средство для ассоциирования второго значения уровня границы с краем в ответ на определение, что первый блок видео и второй блок видео не ассоциированы с внутренне предсказанной CU и что одно или более дополнительных условий удовлетворены. Кроме того, устройство кодирования видео содержит средство для ассоциирования третьего значения уровня границы с краем в ответ на определение, что первый блок видео и второй блок видео не ассоциированы с внутренне предсказанной CU и что одно или более дополнительных условий не удовлетворены. Устройство кодирования видео также содержит средство для применения одного или более фильтров удаления блочности к выборкам, ассоциированным с краем, когда край ассоциирован с первым значением уровня границы или вторым значением уровня границы, но не третьим значением уровня границы.
[0009] Настоящее раскрытие также описывает компьютерный программный продукт, который содержит один или более считываемых компьютером запоминающих носителей, которые хранят выполняемые компьютером инструкции, которые, когда выполняются, заставляют один или более процессоров ассоциировать первое значение уровня границы с краем в ответ на определение, что первый блок видео или второй блок видео ассоциированы с внутренне предсказанной единицей кодирования (CU). Край имеет место на границе между первым блоком видео и вторым блоком видео. Инструкции также заставляют один или более процессоров ассоциировать второе значение уровня границы с краем в ответ на определение, что первый блок видео и второй блок видео не ассоциированы с внутренне предсказанной CU и что одно или более дополнительных условий удовлетворены. Инструкции также заставляют один или более процессоров ассоциировать третье значение уровня границы с краем в ответ на определение, что первый блок видео и второй блок видео не ассоциированы с внутренне предсказанной CU и что одно или более дополнительных условий не удовлетворены. Кроме того, инструкции вынуждают один или более процессоров применять один или более фильтров удаления блочности к выборкам, ассоциированным с краем, когда край ассоциирован с первым значением уровня границы или вторым значением уровня границы, но не третьим значением уровня границы.
[0010] Подробности одного или более примеров сформулированы в сопровождающих чертежах и описании ниже. Другие признаки, задачи и преимущества будут очевидны из описания и чертежей, и из формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0011] Фиг. 1 является блок-схемой, иллюстрирующей примерную систему кодирования видео, которая может использовать способы настоящего раскрытия.
[0012] Фиг. 2 является блок-схемой, иллюстрирующей примерный кодер видео, который может реализовать способы настоящего раскрытия.
[0013] Фиг. 3 является блок-схемой, иллюстрирующей примерный декодер видео, который может реализовать способы настоящего раскрытия.
[0014] Фиг. 4 является последовательностью операций, которая иллюстрирует примерную операцию удаления блочности, чтобы уменьшить артефакты блокирования, ассоциированные с единицей кодирования.
[0015] Фиг. 5 является последовательностью операций, которая иллюстрирует примерную операцию, чтобы ассоциировать значение уровня границы с краем яркости между двумя блоками видео.
[0016] Фиг. 6 является последовательностью операций, которая иллюстрирует примерную операцию, чтобы ассоциировать значение уровня границы с краем цветности между двумя блоками видео.
[0017] Фиг. 7 является последовательностью операций, которая иллюстрирует примерную операцию, чтобы удалить блочность краев яркости единицы кодирования.
[0018] Фиг. 8 является последовательностью операций, которая иллюстрирует примерную операцию удаления блочности, выполненную кодировщиком видео в отношении индивидуального края яркости.
[0019] Фиг. 9 является концептуальной диаграммой, которая указывает примерные метки выборок на вертикальном краю между первым блоком видео “A” и вторым блоком видео "B".
[0020] Фиг. 10 является последовательностью операций, которая иллюстрирует примерную операцию, чтобы определить, применить ли сильный или слабый фильтр удаления блочности к сегменту края яркости.
[0021] Фиг. 11 является последовательностью операций, которая иллюстрирует примерную операцию, чтобы удалить блочность края цветности единицы кодирования.
[0022] Фиг. 12 является последовательностью операций, которая иллюстрирует примерную операцию удаления блочности, выполненную кодировщиком видео в отношении выборок Cb или Cr, ассоциированных с индивидуальным краем цветности.
[0023] Фиг. 13A-13D являются концептуальными диаграммами, которые иллюстрируют примерные графики значения выборки.
[0024] Фиг. 14A-C являются концептуальными диаграммами, которые иллюстрируют примерные графики значения выборки.
ДЕТАЛЬНОЕ ОПИСАНИЕ
[0025] Приложенные чертежи иллюстрируют примеры. Элементы, обозначенные ссылочными позициями в приложенных чертежах, соответствуют элементам, обозначенным подобными ссылочными позициями в нижеследующем описании. В этом раскрытии элементы, имеющие названия, которые начинаются с порядковых слов (например, “сначала”, "второй", "третий", и так далее) необязательно подразумевают, что элементы имеют конкретный порядок. Вместо этого такие порядковые слова просто используются для обращения к различным элементам одного и того же или подобного типа.
[0026] Край может иметь место на границе между первым блоком видео и вторым блоком видео. В этом раскрытии термин "блок видео" может быть использован для ссылки на двумерный (2D) блок выборок. Например, первый и второй блоки видео могут быть декодированными блоками видео, ассоциированными с соседними единицами кодирования (единицами CU), или единицами преобразования (TU) или единицами предсказания (PU) единицы CU. Кодировщик видео может ассоциировать первое значение уровня границы с краем в ответ на определение, что первый блок видео или второй блок видео ассоциированы с внутренне предсказанной CU. Кодировщик видео может ассоциировать второе или третье значение уровня границы с краем, когда ни первый, ни второй блок видео не ассоциированы с внутренне предсказанной CU. Когда край ассоциирован с первым значением уровня границы или вторым значением уровня границы, кодировщик видео может применить один или более фильтров удаления блочности к выборкам, ассоциированным с краем. Выборки, ассоциированные с краем, могут включать в себя выборки в линии выборок, которые идут перпендикулярно к краю. Фильтры удаления блочности могут уменьшить видимость артефактов блочности, ассоциированных с краем. Артефакты блочности могут включать в себя резкие неоднородности в яркости (сигнале яркости) и/или цвете (насыщенности цвета) выборки, которые первоначально не присутствовали в блоках видео. Как используется здесь, термин "выборка" может быть использован взаимозаменяемо с термином "пиксель".
[0027] Ассоциирование края с первым значением уровня границы в ответ на определение, что первый блок видео или второй блок видео ассоциированы с внутренне предсказанной CU, может упростить процесс ассоциирования значения уровня границы с краем, и таким образом может уменьшить сложность и увеличить производительность кодировщика видео. Напротив, если кодировщик видео должен сделать дополнительные определения о том, какое значение уровня границы ассоциировать с краем после определения, что первый блок видео или второй блок видео ассоциированы с внутренне предсказанной CU, кодировщик видео может быть более сложным и может иметь более низкую производительность.
[0028] Фиг. 1 является блок-схемой, которая иллюстрирует примерную систему 10 кодирования видео, которая может использовать способы настоящего раскрытия. Как используется описано здесь, термин "кодировщик видео" относится в общем и к видео кодерам и к видео декодерам. В этом раскрытии термины "кодирование видео" или "кодирование" могут относиться в общем к кодированию видео и декодированию видео.
[0029] Как показано на Фиг. 1, система 10 кодирования видео включает в себя устройство-источник 12 и устройство 14 назначения. Устройство-источник 12 генерирует закодированные видео данные. Устройство 14 назначения может декодировать закодированные видео данные, генерируемые устройством-источником 12. Устройство-источник 12 и устройство 14 назначения может содержать широкий диапазон устройств, включая настольные компьютеры, портативный компьютер (например, ноутбук) компьютеры, планшетные компьютеры, телевизионные приставки, телефонные трубки, такие как так называемые "смарт-"телефоны, так называемые "смарт-"клавиатуры, телевизоры, камеры, устройства отображения, цифровые медиаплееры, пульты видео игр, находящиеся внутри автомобиля компьютеры, мобильное вычислительное устройство, или подобное. В некоторых примерах устройство-источник 12 и устройство 14 назначения может быть оборудовано для беспроводной связи.
[0030] Устройство 14 назначения может принимать закодированные видео данные от устройства-источника 12 через канал 16. Канал 16 может содержать любой тип носителя или устройства, способного к перемещению закодированных видео данных от устройства-источника 12 к устройству 14 назначения. В одном примере канал 16 может содержать коммуникационный носитель, который позволяет исходному устройству 12 передать закодированные видео данные непосредственно к устройству 14 назначения в реальном времени. В этом примере устройство-источник 12 может модулировать закодированные видео данные согласно стандарту связи, такому как протокол беспроводной связи, и может передать модулированные видео данные к устройству 14 назначения. Коммуникационный носитель может содержать беспроводной или проводной коммуникационный носитель, такой как радиочастотный (РЧ, RF) спектр или одну или более физических линий передачи. Коммуникационный носитель может являться частью основанной на пакетной передаче сети, такой как локальная сеть, региональная сеть, или глобальная сеть, такая как Интернет. Коммуникационный носитель может включать в себя маршрутизаторы, переключателей, базовые станции, или другое оборудование, которое облегчает связь от устройства-источника 12 к устройству 14 назначения.
[0031] В другом примере канал 16 может соответствовать запоминающему носителю, который хранит закодированные видео данные, генерируемые устройством-источником 12. В этом примере устройство 14 назначения может получить доступ к запоминающему носителю через доступ к диску или доступ к карте. Запоминающий носитель может включать в себя множество локально доступных запоминающих носителей, таких как диски Blu-ray, DVD, CD-ROM, флэш-память, или другие подходящие цифровые носители данных для того, чтобы хранить закодированные видео данные. В другом примере канал 16 может включать в себя файловый сервер или другое промежуточное устройство хранения, которое хранит закодированное видео, генерируемое устройством-источником 12. В этом примере устройство 14 назначения может получить доступ к закодированным видео данным, хранящимся в файловом сервере или другом промежуточном устройстве хранения через потоковую передачу или загрузку. Файловый сервер может быть типом сервера, способного к тому, чтобы хранить закодированные видео данные и передавать закодированные видео данные к устройству 14 назначения. Примерные файловые серверы включают в себя web-серверы (например, для вебсайта), серверы FTP, сетевые запоминающие устройства (NAS), и локальные дисководы. Устройство 14 назначения может получить доступ к закодированным видео данным через любое стандартное соединение данных, включая интернет-соединение. Примерные типы соединений данных могут включать в себя беспроводные каналы (например, соединения Wi-Fi), проводные соединения (например, DSL, кабельный модем, и т.д.), или комбинацию обоих, которые являются подходящими для того, чтобы получить доступ к закодированным видео данным, хранящимся на файловом сервере. Передача закодированных видео данных от файлового сервера может быть потоковой передачей, передачей загрузки, или комбинацией обоих.
[0032] Способы настоящего раскрытия не ограничены беспроводными приложениями или параметрами настройки. Эти способы могут быть применены к кодированию видео в поддержку любого множества мультимедийных приложений, таких как эфирное телевидение, передачи кабельного телевидения, передачи спутникового телевидения, потоковые передачи видео, например, через Интернет, кодирование цифрового видео для хранения на запоминающем носителе данных, декодирование цифрового видео, сохраненного на запоминающем носителе данных, или другие приложения. В некоторых примерах система 10 кодирования видео может конфигурироваться, чтобы поддерживать одностороннюю или двухстороннюю передачу видео, чтобы поддерживать приложения, такие как потоковая передача видео, воспроизведение видео, вещание видео, и/или видео телефония.
[0033] В примере согласно Фиг. 1, устройство-источник 12 включает в себя видео источник 18, видео кодер 20, и выходной интерфейс 22. В некоторых случаях выходной интерфейс 22 может включать в себя модулятор/демодулятор (модем) и/или передатчик. В исходном устройстве 12 видео источник 18 может включать в себя источник, такой как устройство захвата видео, например, видео камера, видео архив, содержащий ранее захваченные видео данные, интерфейс подачи видео, чтобы принимать видео данные от поставщика видео контента, и/или систему компьютерной графики для того, чтобы генерировать видео данные, или комбинацию таких источников.
[0034] Видео кодер 20 может закодировать захваченные, предварительно захваченные, или машинно-генерируемые видео данные. Закодированные видео данные могут быть переданы непосредственно к устройству 14 назначения через выходной интерфейс 22 из устройства-источника 12. Закодированные видео данные могут также храниться на запоминающем носителе или файловом сервере для более позднего доступа устройством 14 назначения для декодирования и/или воспроизведения.
[0035] В примере на Фиг. 1 устройство 14 назначения включает в себя интерфейс 28 ввода, видео декодер 30, и устройство 32 отображения. В некоторых случаях интерфейс 28 ввода может включать в себя приемник и/или модем. Интерфейс 28 ввода из устройства 14 назначения принимает закодированные видео данные по каналу 16. Закодированные видео данные могут включать в себя множество элементов синтаксиса, генерируемых видео кодером 20, которые представляют видео данные. Такие элементы синтаксиса могут быть включены с закодированными видео данными, переданными на коммуникационном носителе, сохранены на носителе данных, или сохранены на файловом сервере.
[0036] Устройство 32 отображения может быть интегрированным с или может быть внешним к устройству 14 назначения. В некоторых примерах устройство 14 назначения может включать в себя интегрированное устройство отображения и может также конфигурироваться, чтобы взаимодействовать с внешним устройством отображения. В других примерах устройство 14 назначения может быть устройством отображения. Вообще, устройство 32 отображения отображает декодированные видео данные пользователю. Устройство 32 отображения может содержать любое из множества устройств отображения, таких как жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED), или другой тип устройства отображения.
[0037] Видео кодер 20 и видео декодер 30 могут работать согласно стандарту сжатия видео, такому как стандарт высокоэффективного кодирования видео (HEVC), находящегося в настоящее время в развитии, и могут соответствовать Тестовой Модели HEVC (HM). Альтернативно, видео кодер 20 и видео декодер 30 могут работать согласно другим составляющим собственность стандартам или стандартам промышленности, таким стандарт как ITU-T H.264, альтернативно названный MPEG-4, Часть 10, Усовершенствованное видео кодирование (AVC), или расширениям таких стандартов. Способы настоящего раскрытия, однако, не ограничены никаким конкретным стандартом кодирования. Другие примеры стандартов сжатия видео включают в себя MPEG-2 и ITU-T H.263.
[0038] Хотя не показано в примере на Фиг. 1, видео кодер 20 и видео декодер 30 могут каждый интегрироваться с аудио кодером и декодером, и могут включать в себя соответствующие блоки MUX-DEMUX (мультиплексоров - демультиплексоров), или другое аппаратное обеспечение и программное обеспечение, чтобы выполнять кодирование как аудио так и видео в общем потоке данных или отдельных потоках данных. Если применимо, блоки MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223, или другим протоколам, таким как протокол дейтаграмм пользователя (UDP).
[0039] Снова Фиг. 1 является просто примером, и способы настоящего раскрытия могут относиться к параметрам настройки кодирования видео (например, кодированию видео или декодированию видео), которые необязательно включают в себя какую-либо передачу данных между устройствами кодирования и декодирования. В других примерах данные могут быть извлечены из локальной памяти, переданы потоком по сети, или подобному. Устройство кодирования может закодировать и хранить данные в памяти, и/или устройство декодирования может извлечь и декодировать данные из памяти. Во многих примерах кодирование и декодирование выполняются устройствами, которые не обмениваются друг с другом, но просто кодируют данные в память и/или извлекают и декодируют данные из памяти.
[0040] Видео кодер 20 и видео декодер 30 каждый может быть реализован как любая из множества подходящих схем кодера, таких как один или более микропроцессоров, цифровых сигнальных процессоров (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретной логики, программного обеспечения или любые их комбинации. Когда способы реализуются частично в программном обеспечении, устройство может сохранять инструкции для программного обеспечения в подходящем не временном считываемом компьютером носителе и выполнять инструкции в аппаратном обеспечении, используя один или более процессоров, чтобы выполнить способы настоящего раскрытия. Каждый из видео кодера 20 и видео декодера 30 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрированным как часть объединенного кодера/декодера (кодек) в соответствующем устройстве.
[0041] Как упомянуто кратко выше, видео кодер 20 кодирует видео данные. Видео данные могут содержать одну или более картинок. Каждая из картинок является неподвижным изображением, являющимся частью видео. В некоторых случаях картинка может называться как видео "кадр". Когда видео кодер 20 кодирует видео данные, видео кодер 20 может генерировать поток битов. Поток битов может включать в себя последовательность битов, которые формируют закодированное представление видео данных. Поток битов может включать в себя закодированные картинки и ассоциированные данные. Закодированная картинка является закодированным представлением картинки.
[0042] Чтобы генерировать поток битов, видео кодер 20 может выполнить операции кодирования в отношении каждой картинки в видео данных. Когда видео кодер 20 выполняет операции кодирования в отношении картинок, видео кодер 20 может генерировать ряд закодированных картинок и ассоциированные данные. Ассоциированные данные могут включать в себя наборы параметров последовательности, наборы параметров картинки, наборы параметров адаптации, и другие структуры синтаксиса. Набор параметров последовательности (SPS) может содержать параметры, применимые к нулю или более последовательностям картинок. Набор параметров картинки (PPS) может содержать параметры, применимые к нулю или более картинкам. Набор параметров адаптации (APS) может содержать параметры, применимые к нулю или более картинкам.
[0043] Чтобы генерировать закодированную картинку, видео кодер 20 может разделить картинку в блоки видео одинакового размера. Каждый из блоков видео ассоциирован с блоком дерева. В некоторых случаях блок дерева может также называться как наибольшая единица кодирования (LCU). Блоки дерева HEVC могут в широком смысле аналогичны макроблокам предыдущих стандартов, таких как H.264/AVC. Однако, блок дерева необязательно ограничен конкретным размером и может включать в себя одну или более единиц кодирования (единицы CU). Видео кодер 20 может использовать «квадродеревное» разделение, чтобы разделить блоки видео блоков дерева отношении блоков видео, ассоциированные с единицами CU, поэтому называемые "блоки дерева".
[0044] В некоторых примерах видео кодер 20 может разделить картинку во множество вырезок (слайсов). Каждая из вырезок может включать в себя целое число единиц CU. В некоторых случаях вырезка содержит целое число блоков дерева. В других случаях граница вырезки может быть в пределах блока дерева.
[0045] Как часть выполнения операции кодирования в отношении картинки, видео кодер 20 может выполнить операции кодирования в отношении каждой вырезки картинки. Когда видео кодер 20 выполняет операцию кодирования в отношении вырезки, видео кодер 20 может генерировать закодированные данные, ассоциированные с вырезкой. Закодированные данные, ассоциированные с вырезкой, могут называться как “закодированная вырезка».
[0046] Чтобы генерировать закодированную вырезку, видео кодер 20 может выполнить операции кодирования в отношении каждого блока дерева в вырезке. Когда видео кодер 20 выполняет операцию кодирования в отношении блока дерева, видео кодер 20 может генерировать закодированный блок дерева. Закодированный блок дерева может содержать данные, представляющие закодированную версию блока дерева.
[0047] Чтобы генерировать закодированный блок дерева, видео кодер 20 может рекурсивно выполнить «квадродеревное» разделение для блока видео этого блока дерева, чтобы разделить блок видео на прогрессивно меньшие блоки видео. Каждый из меньших блоков видео может быть ассоциирован с различной CU. Например, видео кодер 20 может разделить блок видео блока дерева на четыре суб-блока одинакового размера, разделить один или более суб-блоков на четыре суб-суб-блока одинакового размера, и так далее. Один или более элементов синтаксиса в потоке битов могут указывать максимальное количества раз, сколько кодер видео 20 может разделить блок видео блока дерева. Блок видео из CU может быть квадратным по форме. Размер блока видео в CU (то есть размер CU) может ранжироваться от 8×8 пикселей до размера блока видео блока дерева (то есть размера блока дерева) с максимумом 64×64 пикселей или больше.
[0048] Видео кодер 20 может выполнить операции кодирования в отношении каждой неразделенной CU блока дерева. Не разделенная CU является CU, блок видео которой не разделен в блоки видео для других единиц CU. В качестве части выполнения операции кодирования в отношении неразделенной CU, видео кодер 20 может генерировать один или более единиц предсказания (PUs) для CU. Каждая из единиц PU в CU может быть ассоциирована с различным блоком видео в пределах блока видео этой CU. Видео кодер 20 может генерировать предсказанный блок видео для каждой PU в CU. Предсказанный блок видео в PU может быть блоком выборок. Видео кодер 20 может использовать внутреннее предсказание или внешнее предсказание, чтобы генерировать предсказанный блок видео для PU.
[0049] Когда видео кодер 20 использует внутреннее предсказание, чтобы генерировать предсказанный блок видео для PU, видео кодер 20 может генерировать предсказанный блок видео для PU на основании декодированных выборок картинки, ассоциированной с PU. Когда видео кодер 20 использует внешнее предсказание, чтобы генерировать предсказанный блок видео для PU, видео кодер 20 может генерировать предсказанный блок видео для PU на основании декодированных значений картинок кроме картинки, ассоциированные с этой PU. Если видео кодер 20 использует внутреннее предсказание, чтобы генерировать предсказанные блоки видео единиц PU для CU, CU является внутренне предсказанной CU.
[0050] Когда видео кодер 20 использует внешнее предсказание, чтобы генерировать предсказанный блок видео для PU, видео кодер 20 может генерировать информацию движения для PU. Информация движения для PU может указывать часть другой картинки, которая соответствует этому блоку видео этой PU. Другими словами, информация движения для PU может указывать "опорную выборку" для PU. Видео кодер 20 может генерировать предсказанный блок видео для PU на основании частей других картинок, которые обозначены информацией движения для PU. Если видео кодер 20 использует внешнее предсказание, чтобы генерировать предсказанные блоки видео для единиц PU для CU, CU является внешне предсказанной CU.
[0051] После того, как видео кодер 20 генерирует предсказанные блоки видео для одной или более единиц PU для CU, видео кодер 20 может генерировать остаточные данные для CU на основании предсказанных блоков видео для единиц PU для CU. Остаточные данные для CU могут указывать различия между выборками в предсказанных блоках видео для единиц PU для CU и первоначальном блоке видео CU.
[0052] Кроме того, в качестве части выполнения операции кодирования в отношении неразделенной CU, видео кодер 20 может выполнить рекурсивное «квадродеревное» разделение в отношении остаточных данных CU, чтобы разделить остаточные данные CU в один или более блоков остаточных данных (то есть остаточные блоки видео), ассоциированных с единицами преобразования (TU) для CU. Каждая TU упомянутой CU может быть ассоциирована с различным остаточным блоком видео. Кодировщик видео 20 может выполнить операции преобразования в отношении каждой TU упомянутой CU.
[0053] Когда видео кодер 20 выполняет операцию преобразования в отношении TU, видео кодер 20 может применить одно или более преобразований к остаточному блоку видео, ассоциированному с TU, чтобы генерировать один или более блоков коэффициентов преобразования (то есть блоков коэффициентов преобразования), ассоциированных с TU. Концептуально, блок коэффициентов преобразования может быть двумерной (2D) матрицей коэффициентов преобразования.
[0054] После генерирования блока коэффициентов преобразования видео кодер 20 может выполнить операцию квантования в отношении блока коэффициента преобразования. Квантование в целом относится к процессу, в котором коэффициенты преобразования квантуются, чтобы можно было уменьшить величину данных, использованных для представления коэффициентов преобразования, обеспечивая дальнейшее сжатие. Процесс квантования может уменьшить битовую глубину, ассоциированную с некоторыми или всеми коэффициентами преобразования. Например, n-битовый коэффициент преобразования может быть округлен в меньшую сторону до m-битового коэффициента преобразования во время квантования, где n больше чем m.
[0055] Видео кодер 20 может ассоциировать каждую CU с значением параметра квантования (QP). Значение QP, ассоциированное с CU, может определить, как видео кодер 20 квантует блоки коэффициентов преобразования, ассоциированные с CU. Видео кодер 20 может настроить степень квантования, примененную к блокам коэффициентов преобразования, ассоциированным с CU, посредством настройки значения QP, ассоциированного с CU.
[0056] После того, как видео кодер 20 квантует блок коэффициентов преобразования, видео кодер 20 может сканировать квантованные коэффициенты преобразования, чтобы сформировать одномерный вектор уровней коэффициента преобразования. Видео кодер 20 может энтропийно кодировать этот одномерный вектор. Видео кодер 20 может также энтропийно кодировать другие элементы синтаксиса, ассоциированные с видео данными.
[0057] Поток битов, генерируемый видео кодером 20, может включать в себя ряд единиц Уровня Абстракции Сети (NAL). Каждая из единиц NAL может быть структурой синтаксиса, содержащей индикацию типа данных в единице NAL и байты, содержащие данные. Например, единица NAL может содержать данные, представляющие набор параметров последовательности, набор параметров картинки, закодированную вырезку, дополнительную информацию расширения (SEI), разделитель блока доступа, данные заполнения, или другой тип данных. Данные в единице NAL могут включать в себя энтропийно кодированные структуры синтаксиса, такие как энтропийно кодированные блоки коэффициентов преобразования, информацию движения, и так далее.
[0058] Видео декодер 30 может принимать поток битов, генерируемый видео кодером 20. Поток битов может включать в себя закодированное представление видео данных, закодированных видео кодером 20. Когда видео декодер 30 принимает поток битов, видео декодер 30 может выполнить операцию синтаксического разбора в отношении потока битов. Когда видео декодер 30 выполняет операцию синтаксического разбора, видео декодер 30 может извлечь элементы синтаксиса из потока битов. Видео декодер 30 может восстановить картинки видео данных на основании элементов синтаксиса, извлеченных из потока битов. Процесс, чтобы восстановить видео данные на основании элементов синтаксиса, может быть в целом обратным к процессу, выполненному видео кодером 20, чтобы генерировать элементы синтаксиса.
[0059] После того как видео декодер 30 извлечет элементы синтаксиса, ассоциированные с CU, видео декодер 30 может генерировать предсказанные блоки видео для единиц PU для CU на основании этих элементов синтаксиса. Кроме того, видео декодер 30 может обратно квантовать блоки коэффициентов преобразования, ассоциированных с единицами TU из CU. Видео декодер 30 может выполнить обратные преобразования в отношении блоков коэффициентов преобразования, чтобы восстановить остаточные блоки видео, ассоциированные с единицами TU из CU. После генерирования предсказанных блоков видео и восстановления остаточных блоков видео, видео декодер 30 может восстановить блок видео CU на основании предсказанных блоков видео и остаточных блоков видео. Таким образом, видео декодер 30 может определить блоки видео единиц CU на основании элементов синтаксиса в пот